Update for 2.3.0
diff --git a/apidocs/2.3.0/allclasses-frame.html b/apidocs/2.3.0/allclasses-frame.html
new file mode 100644
index 0000000..47db7db
--- /dev/null
+++ b/apidocs/2.3.0/allclasses-frame.html
@@ -0,0 +1,162 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>All Classes (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<h1 class="bar">All&nbsp;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"><span class="interfaceName">ARPESMetadata</span></a></li>
+<li><a href="org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><span class="interfaceName">AxesMetadata</span></a></li>
+<li><a href="org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset" target="classFrame"><span class="interfaceName">BinaryOperation</span></a></li>
+<li><a href="org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset" target="classFrame">BinaryOperation.Stub</a></li>
+<li><a href="org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BooleanBroadcastIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BooleanContiguousIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">BooleanDataset</a></li>
+<li><a href="org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset" target="classFrame">BooleanDatasetBase</a></li>
+<li><a href="org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BooleanIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BooleanNullIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BroadcastIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset" target="classFrame">BroadcastIteratorBase</a></li>
+<li><a href="org/eclipse/january/dataset/BroadcastPairIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BroadcastPairIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BroadcastSelfIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BroadcastSingleIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BroadcastUtils.html" title="class in org.eclipse.january.dataset" target="classFrame">BroadcastUtils</a></li>
+<li><a href="org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">ByteDataset</a></li>
+<li><a href="org/eclipse/january/dataset/CollectionStats.html" title="class in org.eclipse.january.dataset" target="classFrame">CollectionStats</a></li>
+<li><a href="org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset" target="classFrame">Comparisons</a></li>
+<li><a href="org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset" target="classFrame">Comparisons.Monotonicity</a></li>
+<li><a href="org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">ComplexDoubleDataset</a></li>
+<li><a href="org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">ComplexFloatDataset</a></li>
+<li><a href="org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">CompoundByteDataset</a></li>
+<li><a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset" target="classFrame"><span class="interfaceName">CompoundDataset</span></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"><span class="interfaceName">Dataset</span></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"><span class="interfaceName">DateDataset</span></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"><span class="interfaceName">DimensionMetadata</span></a></li>
+<li><a href="org/eclipse/january/metadata/Dirtiable.html" title="annotation in org.eclipse.january.metadata" target="classFrame">Dirtiable</a></li>
+<li><a href="org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">DoubleDataset</a></li>
+<li><a href="org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset" target="classFrame">DTypeUtils</a></li>
+<li><a href="org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata" target="classFrame">DynamicConnectionInfo</a></li>
+<li><a href="org/eclipse/january/metadata/DynamicMetadataUtils.html" title="class in org.eclipse.january.metadata" target="classFrame">DynamicMetadataUtils</a></li>
+<li><a href="org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><span class="interfaceName">ErrorMetadata</span></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"><span class="interfaceName">IDataAnalysisObject</span></a></li>
+<li><a href="org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset" target="classFrame"><span class="interfaceName">IDataListener</span></a></li>
+<li><a href="org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset" target="classFrame"><span class="interfaceName">IDataset</span></a></li>
+<li><a href="org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset" target="classFrame"><span class="interfaceName">IDatasetChangeChecker</span></a></li>
+<li><a href="org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset" target="classFrame"><span class="interfaceName">IDatasetConnector</span></a></li>
+<li><a href="org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset" target="classFrame"><span class="interfaceName">IDynamicDataset</span></a></li>
+<li><a href="org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset" target="classFrame"><span class="interfaceName">IDynamicShape</span></a></li>
+<li><a href="org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><span class="interfaceName">IExtendedMetadata</span></a></li>
+<li><a href="org/eclipse/january/dataset/IFileConnection.html" title="interface in org.eclipse.january.dataset" target="classFrame"><span class="interfaceName">IFileConnection</span></a></li>
+<li><a href="org/eclipse/january/io/ILazyAsyncSaver.html" title="interface in org.eclipse.january.io" target="classFrame"><span class="interfaceName">ILazyAsyncSaver</span></a></li>
+<li><a href="org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset" target="classFrame"><span class="interfaceName">ILazyDataset</span></a></li>
+<li><a href="org/eclipse/january/io/ILazyDynamicLoader.html" title="interface in org.eclipse.january.io" target="classFrame"><span class="interfaceName">ILazyDynamicLoader</span></a></li>
+<li><a href="org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io" target="classFrame"><span class="interfaceName">ILazyLoader</span></a></li>
+<li><a href="org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io" target="classFrame"><span class="interfaceName">ILazySaver</span></a></li>
+<li><a href="org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset" target="classFrame"><span class="interfaceName">ILazyWriteableDataset</span></a></li>
+<li><a href="org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><span class="interfaceName">IMetadata</span></a></li>
+<li><a href="org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset" target="classFrame"><span class="interfaceName">IMetadataProvider</span></a></li>
+<li><a href="org/eclipse/january/io/IMetaLoader.html" title="interface in org.eclipse.january.io" target="classFrame"><span class="interfaceName">IMetaLoader</span></a></li>
+<li><a href="org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january" target="classFrame"><span class="interfaceName">IMonitor</span></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"><span class="interfaceName">INameable</span></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/InterfaceUtils.html" title="class in org.eclipse.january.dataset" target="classFrame">InterfaceUtils</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"><span class="interfaceName">IOperation</span></a></li>
+<li><a href="org/eclipse/january/dataset/IRemoteData.html" title="interface in org.eclipse.january.dataset" target="classFrame"><span class="interfaceName">IRemoteData</span></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"><span class="interfaceName">MaskMetadata</span></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"><span class="interfaceName">MetadataType</span></a></li>
+<li><a href="org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">NullIterator</a></li>
+<li><a href="org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">ObjectDataset</a></li>
+<li><a href="org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset" target="classFrame">ObjectDatasetBase</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Addition</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Division</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.DivisionTowardsFloor</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.DivisionWithZero</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Exponentiation</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Maximum</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Minimum</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Multiplication</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Negation</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Remainder</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Subtraction</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.UseBase</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.UseIfEqualTo</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.UseIfGreaterThan</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.UseIfGreaterThanOrEqualTo</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.UseIfLessThan</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.UseIfLessThanOrEqualTo</a></li>
+<li><a href="org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><span class="interfaceName">OriginMetadata</span></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"><span class="interfaceName">PeemMetadata</span></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"><span class="interfaceName">StatisticsMetadata</span></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"><span class="interfaceName">UnaryOperation</span></a></li>
+<li><a href="org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset" target="classFrame">UnaryOperation.Stub</a></li>
+<li><a href="org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><span class="interfaceName">UnitMetadata</span></a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/allclasses-noframe.html b/apidocs/2.3.0/allclasses-noframe.html
new file mode 100644
index 0000000..31fc864
--- /dev/null
+++ b/apidocs/2.3.0/allclasses-noframe.html
@@ -0,0 +1,162 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>All Classes (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<h1 class="bar">All&nbsp;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"><span class="interfaceName">ARPESMetadata</span></a></li>
+<li><a href="org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata"><span class="interfaceName">AxesMetadata</span></a></li>
+<li><a href="org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset"><span class="interfaceName">BinaryOperation</span></a></li>
+<li><a href="org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></li>
+<li><a href="org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset">BooleanBroadcastIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset">BooleanContiguousIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></li>
+<li><a href="org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></li>
+<li><a href="org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset">BooleanNullIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></li>
+<li><a href="org/eclipse/january/dataset/BroadcastPairIterator.html" title="class in org.eclipse.january.dataset">BroadcastPairIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset">BroadcastSelfIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset">BroadcastSingleIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BroadcastUtils.html" title="class in org.eclipse.january.dataset">BroadcastUtils</a></li>
+<li><a href="org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></li>
+<li><a href="org/eclipse/january/dataset/CollectionStats.html" title="class in org.eclipse.january.dataset">CollectionStats</a></li>
+<li><a href="org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></li>
+<li><a href="org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a></li>
+<li><a href="org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></li>
+<li><a href="org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></li>
+<li><a href="org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></li>
+<li><a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="interfaceName">CompoundDataset</span></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"><span class="interfaceName">Dataset</span></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"><span class="interfaceName">DateDataset</span></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"><span class="interfaceName">DimensionMetadata</span></a></li>
+<li><a href="org/eclipse/january/metadata/Dirtiable.html" title="annotation in org.eclipse.january.metadata">Dirtiable</a></li>
+<li><a href="org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></li>
+<li><a href="org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></li>
+<li><a href="org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata">DynamicConnectionInfo</a></li>
+<li><a href="org/eclipse/january/metadata/DynamicMetadataUtils.html" title="class in org.eclipse.january.metadata">DynamicMetadataUtils</a></li>
+<li><a href="org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata"><span class="interfaceName">ErrorMetadata</span></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"><span class="interfaceName">IDataAnalysisObject</span></a></li>
+<li><a href="org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset"><span class="interfaceName">IDataListener</span></a></li>
+<li><a href="org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset"><span class="interfaceName">IDataset</span></a></li>
+<li><a href="org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset"><span class="interfaceName">IDatasetChangeChecker</span></a></li>
+<li><a href="org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset"><span class="interfaceName">IDatasetConnector</span></a></li>
+<li><a href="org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset"><span class="interfaceName">IDynamicDataset</span></a></li>
+<li><a href="org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset"><span class="interfaceName">IDynamicShape</span></a></li>
+<li><a href="org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata"><span class="interfaceName">IExtendedMetadata</span></a></li>
+<li><a href="org/eclipse/january/dataset/IFileConnection.html" title="interface in org.eclipse.january.dataset"><span class="interfaceName">IFileConnection</span></a></li>
+<li><a href="org/eclipse/january/io/ILazyAsyncSaver.html" title="interface in org.eclipse.january.io"><span class="interfaceName">ILazyAsyncSaver</span></a></li>
+<li><a href="org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset"><span class="interfaceName">ILazyDataset</span></a></li>
+<li><a href="org/eclipse/january/io/ILazyDynamicLoader.html" title="interface in org.eclipse.january.io"><span class="interfaceName">ILazyDynamicLoader</span></a></li>
+<li><a href="org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io"><span class="interfaceName">ILazyLoader</span></a></li>
+<li><a href="org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io"><span class="interfaceName">ILazySaver</span></a></li>
+<li><a href="org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset"><span class="interfaceName">ILazyWriteableDataset</span></a></li>
+<li><a href="org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata"><span class="interfaceName">IMetadata</span></a></li>
+<li><a href="org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset"><span class="interfaceName">IMetadataProvider</span></a></li>
+<li><a href="org/eclipse/january/io/IMetaLoader.html" title="interface in org.eclipse.january.io"><span class="interfaceName">IMetaLoader</span></a></li>
+<li><a href="org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january"><span class="interfaceName">IMonitor</span></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"><span class="interfaceName">INameable</span></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/InterfaceUtils.html" title="class in org.eclipse.january.dataset">InterfaceUtils</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"><span class="interfaceName">IOperation</span></a></li>
+<li><a href="org/eclipse/january/dataset/IRemoteData.html" title="interface in org.eclipse.january.dataset"><span class="interfaceName">IRemoteData</span></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"><span class="interfaceName">MaskMetadata</span></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"><span class="interfaceName">MetadataType</span></a></li>
+<li><a href="org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset">NullIterator</a></li>
+<li><a href="org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></li>
+<li><a href="org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset">Operations</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset">Operations.Addition</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Operations.Division</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset">Operations.DivisionTowardsFloor</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset">Operations.DivisionWithZero</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset">Operations.Exponentiation</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset">Operations.Maximum</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset">Operations.Minimum</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset">Operations.Multiplication</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset">Operations.Negation</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset">Operations.Remainder</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset">Operations.Subtraction</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfEqualTo</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThan</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThanOrEqualTo</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThan</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThanOrEqualTo</a></li>
+<li><a href="org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata"><span class="interfaceName">OriginMetadata</span></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"><span class="interfaceName">PeemMetadata</span></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"><span class="interfaceName">StatisticsMetadata</span></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"><span class="interfaceName">UnaryOperation</span></a></li>
+<li><a href="org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset">UnaryOperation.Stub</a></li>
+<li><a href="org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata"><span class="interfaceName">UnitMetadata</span></a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/constant-values.html b/apidocs/2.3.0/constant-values.html
new file mode 100644
index 0000000..810a87a
--- /dev/null
+++ b/apidocs/2.3.0/constant-values.html
@@ -0,0 +1,460 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Constant Field Values (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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 class="constantsSummary" 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 class="constantsSummary" 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 class="constantsSummary" 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 class="constantsSummary" 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 class="constantsSummary" 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 class="constantsSummary" 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 class="constantsSummary" 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 class="constantsSummary" 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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/deprecated-list.html b/apidocs/2.3.0/deprecated-list.html
new file mode 100644
index 0000000..38bebfe
--- /dev/null
+++ b/apidocs/2.3.0/deprecated-list.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 (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Deprecated List (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Deprecated List (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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>
+<li><a href="#constructor">Deprecated Constructors</a></li>
+</ul>
+</div>
+<div class="contentContainer"><a name="method">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<table class="deprecatedSummary" 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/Dataset.html#cast-boolean-int-int-">org.eclipse.january.dataset.Dataset.cast(boolean, int, int)</a>
+<div class="block"><span class="deprecationComment">Please use class-based method <code>Dataset#cast(int, Class, boolean))</code></span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetUtils.html#cast-org.eclipse.january.dataset.Dataset:A-int-">org.eclipse.january.dataset.DatasetUtils.cast(Dataset[], int)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="org/eclipse/january/dataset/DatasetUtils.html#cast-java.lang.Class-org.eclipse.january.dataset.Dataset...-"><code>DatasetUtils.cast(Class, Dataset...)</code></a></span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetUtils.html#cast-org.eclipse.january.dataset.IDataset-boolean-int-int-">org.eclipse.january.dataset.DatasetUtils.cast(IDataset, boolean, int, int)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="org/eclipse/january/dataset/DatasetUtils.html#cast-java.lang.Class-org.eclipse.january.dataset.IDataset-"><code>DatasetUtils.cast(Class, IDataset)</code></a></span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetUtils.html#cast-org.eclipse.january.dataset.IDataset-int-">org.eclipse.january.dataset.DatasetUtils.cast(IDataset, int)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="org/eclipse/january/dataset/DatasetUtils.html#cast-java.lang.Class-org.eclipse.january.dataset.IDataset-"><code>DatasetUtils.cast(Class, IDataset)</code></a></span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/Dataset.html#cast-int-">org.eclipse.january.dataset.Dataset.cast(int)</a>
+<div class="block"><span class="deprecationComment">Please use class-based method <a href="org/eclipse/january/dataset/Dataset.html#cast-java.lang.Class-"><code>Dataset.cast(Class)</code></a></span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-int-">org.eclipse.january.dataset.AbstractDataset.checkAxis(int, int)</a></td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#compoundZeros-int-int:A-int-">org.eclipse.january.dataset.DatasetFactory.compoundZeros(int, int[], int)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#compoundZeros-int-java.lang.Class-int...-"><code>DatasetFactory.compoundZeros(int, Class, int...)</code></a></span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetUtils.html#copy-org.eclipse.january.dataset.IDataset-int-">org.eclipse.january.dataset.DatasetUtils.copy(IDataset, int)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="org/eclipse/january/dataset/DatasetUtils.html#copy-java.lang.Class-org.eclipse.january.dataset.IDataset-"><code>DatasetUtils.copy(Class, IDataset)</code></a></span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/Dataset.html#copy-int-">org.eclipse.january.dataset.Dataset.copy(int)</a>
+<div class="block"><span class="deprecationComment">Please use class-based method <a href="org/eclipse/january/dataset/Dataset.html#copy-java.lang.Class-"><code>Dataset.copy(Class)</code></a></span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/RGBDataset.html#createBlueDataset-int-">org.eclipse.january.dataset.RGBDataset.createBlueDataset(int)</a>
+<div class="block"><span class="deprecationComment">Use <a href="org/eclipse/january/dataset/RGBDataset.html#createBlueDataset-T-"><code>RGBDataset.createBlueDataset(T)</code></a></span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#createComplexDataset-int-java.lang.Object-java.lang.Object-">org.eclipse.january.dataset.DatasetFactory.createComplexDataset(int, Object, Object)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createComplexDataset-java.lang.Class-java.lang.Object-java.lang.Object-"><code>DatasetFactory.createComplexDataset(Class, Object, Object)</code></a></span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset-int-org.eclipse.january.dataset.Dataset...-">org.eclipse.january.dataset.DatasetUtils.createCompoundDataset(int, Dataset...)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset-java.lang.Class-org.eclipse.january.dataset.Dataset...-"><code>DatasetUtils.createCompoundDataset(Class, Dataset...)</code></a></span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#createCompoundDataset-int-java.lang.Object...-">org.eclipse.january.dataset.DatasetFactory.createCompoundDataset(int, Object...)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createCompoundDataset-java.lang.Class-java.lang.Object...-"><code>DatasetFactory.createCompoundDataset(Class, Object...)</code></a></span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#createFromList-int-java.util.List-">org.eclipse.january.dataset.DatasetFactory.createFromList(int, List&lt;?&gt;)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createFromList-java.lang.Class-java.util.List-"><code>DatasetFactory.createFromList(Class, List)</code></a></span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#createFromObject-int-int-java.lang.Object-int...-">org.eclipse.january.dataset.DatasetFactory.createFromObject(int, int, Object, int...)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createFromObject-int-java.lang.Class-java.lang.Object-int...-"><code>DatasetFactory.createFromObject(int, Class, Object, int...)</code></a></span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#createFromObject-int-java.lang.Object-">org.eclipse.january.dataset.DatasetFactory.createFromObject(int, Object)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createFromObject-java.lang.Class-java.lang.Object-int...-"><code>DatasetFactory.createFromObject(Class, Object, int...)</code></a></span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#createFromObject-int-java.lang.Object-int...-">org.eclipse.january.dataset.DatasetFactory.createFromObject(int, Object, int...)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createFromObject-java.lang.Class-java.lang.Object-int...-"><code>DatasetFactory.createFromObject(Class, Object, int...)</code></a></span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/RGBDataset.html#createGreenDataset-int-">org.eclipse.january.dataset.RGBDataset.createGreenDataset(int)</a>
+<div class="block"><span class="deprecationComment">Use <a href="org/eclipse/january/dataset/RGBDataset.html#createGreenDataset-T-"><code>RGBDataset.createGreenDataset(T)</code></a></span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/RGBDataset.html#createGreyDataset-double-double-double-int-">org.eclipse.january.dataset.RGBDataset.createGreyDataset(double, double, double, int)</a>
+<div class="block"><span class="deprecationComment">Use <a href="org/eclipse/january/dataset/RGBDataset.html#createGreyDataset-java.lang.Class-double-double-double-"><code>RGBDataset.createGreyDataset(Class, double, double, double)</code></a></span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/RGBDataset.html#createGreyDataset-int-">org.eclipse.january.dataset.RGBDataset.createGreyDataset(int)</a>
+<div class="block"><span class="deprecationComment">Use <a href="org/eclipse/january/dataset/RGBDataset.html#createGreyDataset-java.lang.Class-"><code>RGBDataset.createGreyDataset(Class)</code></a></span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#createLinearSpace-double-double-int-int-">org.eclipse.january.dataset.DatasetFactory.createLinearSpace(double, double, int, int)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createLinearSpace-java.lang.Class-double-double-int-"><code>DatasetFactory.createLinearSpace(Class, double, double, int)</code></a></span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#createLogSpace-double-double-int-double-int-">org.eclipse.january.dataset.DatasetFactory.createLogSpace(double, double, int, double, int)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createLogSpace-java.lang.Class-double-double-int-double-"><code>DatasetFactory.createLogSpace(Class, double, double, int, double)</code></a></span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#createRange-double-double-double-int-">org.eclipse.january.dataset.DatasetFactory.createRange(double, double, double, int)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createRange-java.lang.Class-double-double-double-"><code>DatasetFactory.createRange(Class, double, double, double)</code></a></span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#createRange-double-int-">org.eclipse.january.dataset.DatasetFactory.createRange(double, int)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createRange-java.lang.Class-double-"><code>DatasetFactory.createRange(Class, double)</code></a></span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#createRange-int-double-double-double-int-">org.eclipse.january.dataset.DatasetFactory.createRange(int, double, double, double, int)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createRange-java.lang.Class-double-double-double-"><code>DatasetFactory.createRange(Class, double, double, double)</code></a></span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#createRange-int-double-int-">org.eclipse.january.dataset.DatasetFactory.createRange(int, double, int)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createRange-java.lang.Class-double-double-double-"><code>DatasetFactory.createRange(Class, double, double, double)</code></a></span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/RGBDataset.html#createRedDataset-int-">org.eclipse.january.dataset.RGBDataset.createRedDataset(int)</a>
+<div class="block"><span class="deprecationComment">Use <a href="org/eclipse/january/dataset/RGBDataset.html#createRedDataset-T-"><code>RGBDataset.createRedDataset(T)</code></a></span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetUtils.html#eye-int-int-int-int-">org.eclipse.january.dataset.DatasetUtils.eye(int, int, int, int)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="org/eclipse/january/dataset/DatasetUtils.html#eye-java.lang.Class-int-int-int-"><code>DatasetUtils.eye(Class, int, int, int)</code></a></span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/Maths.html#getBilinear-double:A-org.eclipse.january.dataset.CompoundDataset-double-double-">org.eclipse.january.dataset.Maths.getBilinear(double[], CompoundDataset, double, double)</a>
+<div class="block"><span class="deprecationComment">Use
+             <a href="org/eclipse/january/dataset/Maths.html#interpolate-double:A-org.eclipse.january.dataset.CompoundDataset-double-double-"><code>Maths.interpolate(double[], CompoundDataset, double, double)</code></a></span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/Maths.html#getBilinear-org.eclipse.january.dataset.IDataset-double-double-">org.eclipse.january.dataset.Maths.getBilinear(IDataset, double, double)</a>
+<div class="block"><span class="deprecationComment">Use <a href="org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-double-double-"><code>Maths.interpolate(Dataset, double, double)</code></a></span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/Maths.html#getBilinear-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.IDataset-double-double-">org.eclipse.january.dataset.Maths.getBilinear(IDataset, IDataset, double, double)</a>
+<div class="block"><span class="deprecationComment">Use <a href="org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-double-double-"><code>Maths.interpolate(Dataset, Dataset, double, double)</code></a></span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/Maths.html#getLinear-double:A-org.eclipse.january.dataset.CompoundDataset-double-">org.eclipse.january.dataset.Maths.getLinear(double[], CompoundDataset, double)</a>
+<div class="block"><span class="deprecationComment">Use <a href="org/eclipse/january/dataset/Maths.html#interpolate-double:A-org.eclipse.january.dataset.CompoundDataset-double-"><code>Maths.interpolate(double[], CompoundDataset, double)</code></a></span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/Maths.html#getLinear-org.eclipse.january.dataset.IDataset-double-">org.eclipse.january.dataset.Maths.getLinear(IDataset, double)</a>
+<div class="block"><span class="deprecationComment">Use <a href="org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-double-"><code>Maths.interpolate(Dataset, double)</code></a></span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/IDataset.html#getMetadata--">org.eclipse.january.dataset.IDataset.getMetadata()</a>
+<div class="block"><span class="deprecationComment">Use <code>getFirstMetadata(IMetadata.class)</code> instead</span></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"><span class="deprecationComment">Use <code>getFirstMetadata(IMetadata.class)</code> instead</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DTypeUtils.html#isClassSupportedAsElement-java.lang.Class-">org.eclipse.january.dataset.DTypeUtils.isClassSupportedAsElement(Class&lt;? extends Object&gt;)</a>
+<div class="block"><span class="deprecationComment">Use <a href="org/eclipse/january/dataset/InterfaceUtils.html#isElementSupported-java.lang.Class-"><code>InterfaceUtils.isElementSupported(Class)</code></a></span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#ones-org.eclipse.january.dataset.Dataset-int-">org.eclipse.january.dataset.DatasetFactory.ones(Dataset, int)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#ones-org.eclipse.january.dataset.Dataset-java.lang.Class-"><code>DatasetFactory.ones(Dataset, Class)</code></a></span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#ones-int:A-int-">org.eclipse.january.dataset.DatasetFactory.ones(int[], int)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#ones-java.lang.Class-int...-"><code>DatasetFactory.ones(Class, int...)</code></a></span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#ones-int-int:A-int-">org.eclipse.january.dataset.DatasetFactory.ones(int, int[], int)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#ones-java.lang.Class-int...-"><code>DatasetFactory.ones(Class, int...)</code></a></span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/metadata/StatisticsMetadata.html#setMaximumMinimum-T-T-boolean...-">org.eclipse.january.metadata.StatisticsMetadata.setMaximumMinimum(T, T, boolean...)</a></td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/Stats.html#typedProduct-org.eclipse.january.dataset.Dataset-int-boolean...-">org.eclipse.january.dataset.Stats.typedProduct(Dataset, int, boolean...)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based method <a href="org/eclipse/january/dataset/Stats.html#typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-boolean...-"><code>Stats.typedProduct(Class, Dataset, boolean...)</code></a></span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/Stats.html#typedProduct-org.eclipse.january.dataset.Dataset-int-int:A-boolean...-">org.eclipse.january.dataset.Stats.typedProduct(Dataset, int, int[], boolean...)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based method <a href="org/eclipse/january/dataset/Stats.html#typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-int:A-boolean...-"><code>Stats.typedProduct(Class, Dataset, int[], boolean...)</code></a></span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/Stats.html#typedProduct-org.eclipse.january.dataset.Dataset-int-int-boolean...-">org.eclipse.january.dataset.Stats.typedProduct(Dataset, int, int, boolean...)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based method <a href="org/eclipse/january/dataset/Stats.html#typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-int-boolean...-"><code>Stats.typedProduct(Class, Dataset, int, boolean...)</code></a></span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/Stats.html#typedSum-org.eclipse.january.dataset.Dataset-int-boolean...-">org.eclipse.january.dataset.Stats.typedSum(Dataset, int, boolean...)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based method <a href="org/eclipse/january/dataset/Stats.html#typedSum-java.lang.Class-org.eclipse.january.dataset.Dataset-boolean...-"><code>Stats.typedSum(Class, Dataset, boolean...)</code></a></span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/Stats.html#typedSum-org.eclipse.january.dataset.Dataset-int-int-boolean...-">org.eclipse.january.dataset.Stats.typedSum(Dataset, int, int, boolean...)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based method <code>#typedSum(Class, Dataset, axis, boolean...)</code></span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#zeros-org.eclipse.january.dataset.Dataset-int-">org.eclipse.january.dataset.DatasetFactory.zeros(Dataset, int)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#zeros-org.eclipse.january.dataset.Dataset-java.lang.Class-"><code>DatasetFactory.zeros(Dataset, Class)</code></a></span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#zeros-int:A-int-">org.eclipse.january.dataset.DatasetFactory.zeros(int[], int)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#zeros-java.lang.Class-int...-"><code>DatasetFactory.zeros(Class, int...)</code></a></span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#zeros-int-int:A-int-">org.eclipse.january.dataset.DatasetFactory.zeros(int, int[], int)</a>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#zeros-int-java.lang.Class-int...-"><code>DatasetFactory.zeros(int, Class, int...)</code></a></span></div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="constructor">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<table class="deprecatedSummary" border="0" cellpadding="3" cellspacing="0" summary="Deprecated Constructors table, listing deprecated constructors, and an explanation">
+<caption><span>Deprecated Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/LazyDataset.html#LazyDataset-java.lang.String-int-int:A-org.eclipse.january.io.ILazyLoader-">org.eclipse.january.dataset.LazyDataset(String, int, int[], ILazyLoader)</a>
+<div class="block"><span class="deprecationComment">Use <a href="org/eclipse/january/dataset/LazyDataset.html#LazyDataset-org.eclipse.january.io.ILazyLoader-java.lang.String-int-java.lang.Class-int...-"><code>LazyDataset.LazyDataset(ILazyLoader, String, int, Class, int[])</code></a></span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/LazyDataset.html#LazyDataset-java.lang.String-int-int-int:A-org.eclipse.january.io.ILazyLoader-">org.eclipse.january.dataset.LazyDataset(String, int, int, int[], ILazyLoader)</a>
+<div class="block"><span class="deprecationComment">Use <a href="org/eclipse/january/dataset/LazyDataset.html#LazyDataset-org.eclipse.january.io.ILazyLoader-java.lang.String-int-java.lang.Class-int...-"><code>LazyDataset.LazyDataset(ILazyLoader, String, int, Class, int[])</code></a></span></div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/help-doc.html b/apidocs/2.3.0/help-doc.html
new file mode 100644
index 0000000..0eda096
--- /dev/null
+++ b/apidocs/2.3.0/help-doc.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 (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>API Help (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="API Help (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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>
+<span class="emphasizedPhrase">This help file applies to API documentation generated using the standard doclet.</span></div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/index-all.html b/apidocs/2.3.0/index-all.html
new file mode 100644
index 0000000..c590fc1
--- /dev/null
+++ b/apidocs/2.3.0/index-all.html
@@ -0,0 +1,10170 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Index (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    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="#I:A">A</a>&nbsp;<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:K">K</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:Q">Q</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;<a href="#I:Z">Z</a>&nbsp;<a name="I:A">
+<!--   -->
+</a>
+<h2 class="title">A</h2>
+<dl>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#abs-java.lang.Object-org.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="typeNameLink">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="memberNameLink"><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="typeNameLink">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</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanIterator.html#aDataset">aDataset</a></span> - Variable in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#add-java.util.Collection-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#add-java.lang.Object-java.lang.Object-">add(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">add operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#add-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">add(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>
+<div class="block">add operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/metadata/AxesMetadata.html#addAxis-int-org.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="memberNameLink"><a href="org/eclipse/january/metadata/AxesMetadata.html#addAxis-int-org.eclipse.january.dataset.ILazyDataset-int...-">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>
+<div class="block">Add axis data to given dimension.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#addBinaryOperatorName-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-java.lang.String-">addBinaryOperatorName(Dataset, Dataset, Dataset, String)</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="memberNameLink"><a href="org/eclipse/january/metadata/IMetadata.html#addDataInfo-java.lang.String-int...-">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="memberNameLink"><a href="org/eclipse/january/metadata/Metadata.html#addDataInfo-java.lang.String-int...-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#addFunctionName-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-java.lang.String-">addFunctionName(Dataset, Dataset, Dataset, String)</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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#addFunctionName-org.eclipse.january.dataset.Dataset-java.lang.String-">addFunctionName(Dataset, String)</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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Addition.html#Addition--">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><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="typeNameLink">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="memberNameLink"><a href="org/eclipse/january/dataset/AggregateDataset.html#AggregateDataset-boolean-org.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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#allCloseTo-java.lang.Object-java.lang.Object-double-double-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#allTrue-org.eclipse.january.dataset.IDataset-int-">allTrue(IDataset, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Test if all items along given axis are true in the input dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#almostEqualTo-java.lang.Object-java.lang.Object-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#almostEqualTo-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-double-double-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanIterator.html#aMax">aMax</a></span> - Variable in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#angle-java.lang.Object-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#angle-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#angle-java.lang.Object-boolean-org.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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#anyTrue-org.eclipse.january.dataset.IDataset-int-">anyTrue(IDataset, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Test if any items along given axis are true in the input dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#append-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.IDataset-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/Slice.html#appendSliceToString-java.lang.StringBuilder-int-int-int-int-">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">Appends a String representation of the Slice comparable to the python
+ representation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#arccos-java.lang.Object-">arccos(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">arccos - evaluate the inverse cosine function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#arccos-java.lang.Object-org.eclipse.january.dataset.Dataset-">arccos(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">arccos - evaluate the inverse cosine function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#arccosh-java.lang.Object-">arccosh(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">arccosh - evaluate the inverse hyperbolic cosine function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#arccosh-java.lang.Object-org.eclipse.january.dataset.Dataset-">arccosh(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">arccosh - evaluate the inverse hyperbolic cosine function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#arcsin-java.lang.Object-">arcsin(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">arcsin - evaluate the inverse sine function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#arcsin-java.lang.Object-org.eclipse.january.dataset.Dataset-">arcsin(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">arcsin - evaluate the inverse sine function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#arcsinh-java.lang.Object-">arcsinh(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">arcsinh - evaluate the inverse hyperbolic sine function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#arcsinh-java.lang.Object-org.eclipse.january.dataset.Dataset-">arcsinh(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">arcsinh - evaluate the inverse hyperbolic sine function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#arctan-java.lang.Object-">arctan(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">arctan - evaluate the inverse tangent function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#arctan-java.lang.Object-org.eclipse.january.dataset.Dataset-">arctan(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">arctan - evaluate the inverse tangent function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#arctan2-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#arctan2-java.lang.Object-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#arctanh-java.lang.Object-">arctanh(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">arctanh - evaluate the inverse hyperbolic tangent function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#arctanh-java.lang.Object-org.eclipse.january.dataset.Dataset-">arctanh(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">arctanh - evaluate the inverse hyperbolic tangent function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/ShapeUtils.html#areShapesBroadcastCompatible-int:A-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/ShapeUtils.html#areShapesCompatible-int:A-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/ShapeUtils.html#areShapesCompatible-int:A-int:A-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#argMax-int-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#argMax-int-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#argMax-int-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#argMin-int-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#argMin-int-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#argMin-int-boolean...-">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="typeNameLink">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanIterator.html#aStart">aStart</a></span> - Variable in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/BooleanIterator.html#aStep">aStep</a></span> - Variable in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="typeNameLink">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="I:B">
+<!--   -->
+</a>
+<h2 class="title">B</h2>
+<dl>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="typeNameLink">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="typeNameLink">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:A-double-double-double-double-"><code>BinaryOperation.Stub.complexOperate(double[], double, double, double, double)</code></a>,
+  <a href="org/eclipse/january/dataset/BinaryOperation.Stub.html#toString-java.lang.String-java.lang.String-"><code>BinaryOperation.Stub.toString(String, String)</code></a></div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#bitwiseAnd-java.lang.Object-java.lang.Object-">bitwiseAnd(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">bitwiseAnd operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#bitwiseAnd-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">bitwiseAnd(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>
+<div class="block">bitwiseAnd operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#bitwiseInvert-java.lang.Object-">bitwiseInvert(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">bitwiseInvert - <code>~a</code>, bitwise invert (or NOT) each element</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#bitwiseInvert-java.lang.Object-org.eclipse.january.dataset.Dataset-">bitwiseInvert(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">bitwiseInvert - <code>~a</code>, bitwise invert (or NOT) each element</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#bitwiseOr-java.lang.Object-java.lang.Object-">bitwiseOr(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">bitwiseOr operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#bitwiseOr-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">bitwiseOr(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>
+<div class="block">bitwiseOr operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#bitwiseXor-java.lang.Object-java.lang.Object-">bitwiseXor(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">bitwiseXor operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#bitwiseXor-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">bitwiseXor(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>
+<div class="block">bitwiseXor operator</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a></span> - Static variable in interface org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Boolean</div>
+</dd>
+<dt><a href="org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">BooleanBroadcastIterator</span></a> - Class in <a href="org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Class to run over a pair of datasets in parallel with NumPy broadcasting to promote shapes
+ which have lower rank and outputs to a third dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/BooleanBroadcastIterator.html#BooleanBroadcastIterator-boolean-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">BooleanBroadcastIterator(boolean, Dataset, Dataset, Dataset, boolean)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset">BooleanBroadcastIterator</a></dt>
+<dd>
+<div class="block">Construct a boolean iterator that stops at every position in the choice dataset where its value matches
+ the given boolean</div>
+</dd>
+<dt><a href="org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">BooleanContiguousIterator</span></a> - Class in <a href="org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Class to run over a pair of contiguous datasets</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/BooleanContiguousIterator.html#BooleanContiguousIterator-boolean-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">BooleanContiguousIterator(boolean, Dataset, Dataset, Dataset, boolean)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset">BooleanContiguousIterator</a></dt>
+<dd>
+<div class="block">Construct a boolean iterator that stops at the position in choice dataset where its value matches
+ the given boolean</div>
+</dd>
+<dt><a href="org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">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="typeNameLink">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="typeNameLink">BooleanIterator</span></a> - Class in <a href="org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Base class for boolean iterators for pairs of dataset where the second dataset could be broadcast to the first and
+ is used to select where {<a href="org/eclipse/january/dataset/IndexIterator.html#hasNext--"><code>IndexIterator.hasNext()</code></a> returns true.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/BooleanIterator.html#BooleanIterator-boolean-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">BooleanIterator(boolean, Dataset, Dataset, Dataset)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>
+<div class="block">Construct a boolean iterator that stops at the given boolean value in choice dataset</div>
+</dd>
+<dt><a href="org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">BooleanNullIterator</span></a> - Class in <a href="org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Class to run over a single dataset with NumPy broadcasting to promote shapes
+ which have lower rank and outputs to a second dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/BooleanNullIterator.html#BooleanNullIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">BooleanNullIterator(Dataset, Dataset)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset">BooleanNullIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/BooleanNullIterator.html#BooleanNullIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">BooleanNullIterator(Dataset, Dataset, boolean)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset">BooleanNullIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/BooleanNullIterator.html#BooleanNullIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-boolean-boolean-">BooleanNullIterator(Dataset, Dataset, boolean, boolean, boolean)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset">BooleanNullIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/BinaryOperation.html#booleanOperate-long-long-">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="memberNameLink"><a href="org/eclipse/january/dataset/BinaryOperation.Stub.html#booleanOperate-long-long-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Addition.html#booleanOperate-long-long-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Division.html#booleanOperate-long-long-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Maximum.html#booleanOperate-long-long-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Minimum.html#booleanOperate-long-long-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Multiplication.html#booleanOperate-long-long-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Remainder.html#booleanOperate-long-long-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Subtraction.html#booleanOperate-long-long-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseBase.html#booleanOperate-long-long-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfEqualTo.html#booleanOperate-long-long-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#booleanOperate-long-long-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#booleanOperate-long-long-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfLessThan.html#booleanOperate-long-long-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#booleanOperate-long-long-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="typeNameLink">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="memberNameLink"><a href="org/eclipse/january/dataset/BroadcastIterator.html#BroadcastIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.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="typeNameLink">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="memberNameLink"><a href="org/eclipse/january/dataset/BroadcastIteratorBase.html#BroadcastIteratorBase-org.eclipse.january.dataset.Dataset-org.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="typeNameLink">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="memberNameLink"><a href="org/eclipse/january/dataset/BroadcastPairIterator.html#BroadcastPairIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">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="typeNameLink">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="memberNameLink"><a href="org/eclipse/january/dataset/BroadcastSelfIterator.html#BroadcastSelfIterator-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/BroadcastUtils.html#broadcastShapes-int:A...-">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="memberNameLink"><a href="org/eclipse/january/dataset/BroadcastUtils.html#broadcastShapesToMax-int:A-int:A...-">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="typeNameLink">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="memberNameLink"><a href="org/eclipse/january/dataset/BroadcastSingleIterator.html#BroadcastSingleIterator-org.eclipse.january.dataset.Dataset-org.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="typeNameLink">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="memberNameLink"><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="typeNameLink">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="I:C">
+<!--   -->
+</a>
+<h2 class="title">C</h2>
+<dl>
+<dt><span class="memberNameLink"><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 <code>A = L L^T</code></div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LinearAlgebra.html#calcConjugateGradient-org.eclipse.january.dataset.Dataset-org.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 <code>A x = v</code> by conjugate gradient method with the stopping criterion being
+ that the estimated residual <code>r = v - A x</code> satisfies <code>||r|| &lt; ||v||</code> with maximum of 100 iterations</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/LinearAlgebra.html#calcConjugateGradient-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-int-double-">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 <code>A x = v</code> by conjugate gradient method with the stopping criterion being
+ that the estimated residual <code>r = v - A x</code> satisfies <code>||r|| &lt; delta ||v||</code></div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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 <code>A = V D V^T</code></div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#calcIndexesFromPositions-java.util.List-int:A-int...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ShapeUtils.html#calcLongSize-int:A-">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="memberNameLink"><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 <code>A = P^-1 L U</code></div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#calcPositionsFromIndexes-org.eclipse.january.dataset.Dataset-int:A-">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="memberNameLink"><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="memberNameLink"><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 <code>A = Q R</code></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/ShapeUtils.html#calcShapePadding-int:A-int:A-">calcShapePadding(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">Calculate the padding difference between two shapes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/AggregateDataset.html#calcShapes-boolean-org.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="memberNameLink"><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 <code>A = U S V^T</code></div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ShapeUtils.html#calcSize-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#calcSteps-double-double-double-">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="memberNameLink"><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>
+<div class="block">Calculate absolute slice</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/BroadcastUtils.html#calculateBroadcastShapes-int:A-int-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#cast-boolean-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#cast-int-java.lang.Class-boolean-">cast(int, Class&lt;T&gt;, 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>
+<div class="block">Cast a dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#cast-boolean-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#cast-boolean-int-int-">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="memberNameLink"><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="memberNameLink"><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"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use class-based method <a href="org/eclipse/january/dataset/Dataset.html#cast-java.lang.Class-"><code>Dataset.cast(Class)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#cast-int-java.lang.Class-boolean-">cast(int, Class&lt;T&gt;, 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">Cast a dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#cast-boolean-int-int-">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"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use class-based method <code>Dataset#cast(int, Class, boolean))</code></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#cast-org.eclipse.january.dataset.IDataset-int-">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"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="org/eclipse/january/dataset/DatasetUtils.html#cast-java.lang.Class-org.eclipse.january.dataset.IDataset-"><code>DatasetUtils.cast(Class, IDataset)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#cast-java.lang.Class-org.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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#cast-org.eclipse.january.dataset.IDataset-boolean-int-int-">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"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="org/eclipse/january/dataset/DatasetUtils.html#cast-java.lang.Class-org.eclipse.january.dataset.IDataset-"><code>DatasetUtils.cast(Class, IDataset)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#cast-int-java.lang.Class-org.eclipse.january.dataset.IDataset-boolean-">cast(int, Class&lt;T&gt;, IDataset, boolean)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Cast a dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#cast-java.lang.Class-org.eclipse.january.dataset.Dataset...-">cast(Class&lt;? extends Dataset&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">Cast array of datasets to a compound dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#cast-org.eclipse.january.dataset.Dataset:A-int-">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"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="org/eclipse/january/dataset/DatasetUtils.html#cast-java.lang.Class-org.eclipse.january.dataset.Dataset...-"><code>DatasetUtils.cast(Class, Dataset...)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#cbrt-java.lang.Object-">cbrt(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">cbrt - evaluate the cube root function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#cbrt-java.lang.Object-org.eclipse.january.dataset.Dataset-">cbrt(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">cbrt - evaluate the cube root function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/BooleanIterator.html#cDataset">cDataset</a></span> - Variable in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#ceil-java.lang.Object-">ceil(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">ceil - evaluate the ceiling function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#ceil-java.lang.Object-org.eclipse.january.dataset.Dataset-">ceil(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">ceil - evaluate the ceiling function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#centralDifference-org.eclipse.january.dataset.Dataset-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#centroid-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ShapeUtils.html#checkAxes-int-int...-">checkAxes(int, int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ShapeUtils.html" title="class in org.eclipse.january.dataset">ShapeUtils</a></dt>
+<dd>
+<div class="block">Check that all axes are in range [-rank,rank)</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-int-">checkAxis(int, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ShapeUtils.html#checkAxis-int-int-">checkAxis(int, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ShapeUtils.html" title="class in org.eclipse.january.dataset">ShapeUtils</a></dt>
+<dd>
+<div class="block">Check that axis is in range [-rank,rank)</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ShapeUtils.html#checkCompatibility-org.eclipse.january.dataset.ILazyDataset-org.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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes-int:A-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#choose-org.eclipse.january.dataset.IntegerDataset-java.lang.Object:A-boolean-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanIterator.html#cIndex">cIndex</a></span> - Variable in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>
+<div class="block">Index in choice dataset</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#clip-java.lang.Object-java.lang.Object-java.lang.Object-">clip(Object, 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">clip - clip elements to limits</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#clip-java.lang.Object-org.eclipse.january.dataset.Dataset-java.lang.Object-java.lang.Object-">clip(Object, 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">clip - clip elements to limits</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Slice.html#clone--">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Creates a deep copy of the Slice.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/SliceND.html#clone--">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Creates a deep copy of the SliceND.</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#coerce-org.eclipse.january.dataset.Dataset-java.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="typeNameLink">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="memberNameLink"><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="typeNameLink">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="memberNameLink"><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="typeNameLink">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="typeNameLink">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="typeNameLink">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="memberNameLink"><a href="org/eclipse/january/dataset/BinaryOperation.html#complexOperate-double:A-double-double-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/BinaryOperation.Stub.html#complexOperate-double:A-double-double-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Addition.html#complexOperate-double:A-double-double-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Division.html#complexOperate-double:A-double-double-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.DivisionWithZero.html#complexOperate-double:A-double-double-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Exponentiation.html#complexOperate-double:A-double-double-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Maximum.html#complexOperate-double:A-double-double-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Minimum.html#complexOperate-double:A-double-double-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Multiplication.html#complexOperate-double:A-double-double-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Negation.html#complexOperate-double:A-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Remainder.html#complexOperate-double:A-double-double-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Subtraction.html#complexOperate-double:A-double-double-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseBase.html#complexOperate-double:A-double-double-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfEqualTo.html#complexOperate-double:A-double-double-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#complexOperate-double:A-double-double-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#complexOperate-double:A-double-double-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfLessThan.html#complexOperate-double:A-double-double-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#complexOperate-double:A-double-double-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/UnaryOperation.html#complexOperate-double:A-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/UnaryOperation.Stub.html#complexOperate-double:A-double-double-">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="typeNameLink">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><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#compoundCast-java.lang.Class-org.eclipse.january.dataset.Dataset...-">compoundCast(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">Cast array of datasets to a compound dataset</div>
+</dd>
+<dt><a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#compoundZeros-int-int:A-int-">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="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#compoundZeros-int-java.lang.Class-int...-"><code>DatasetFactory.compoundZeros(int, Class, int...)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#compoundZeros-int-java.lang.Class-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#concatenate-org.eclipse.january.dataset.IDataset:A-int-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#conjugate-java.lang.Object-org.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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/IDatasetConnector.html#connect-long-java.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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="typeNameLink">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ContiguousIterator.html#ContiguousIterator-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/ContiguousIterator.html#ContiguousIterator-int-int-int-">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="typeNameLink">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="memberNameLink"><a href="org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#ContiguousIteratorWithPosition-int:A-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#ContiguousIteratorWithPosition-int:A-int-int-">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="typeNameLink">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="memberNameLink"><a href="org/eclipse/january/dataset/ContiguousPairIterator.html#ContiguousPairIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">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="typeNameLink">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="memberNameLink"><a href="org/eclipse/january/dataset/ContiguousSingleIterator.html#ContiguousSingleIterator-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Slice.html#convertFromSlice-org.eclipse.january.dataset.Slice:A-int:A-int:A-int:A-int:A-">convertFromSlice(Slice[], int[], int[], int[], int[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Populates given start, stop, step arrays from given slice array</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Slice.html#convertFromString-java.lang.String-">convertFromString(String)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Converts string in a Slice array</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Slice.html#convertToSlice-int:A-int:A-int:A-">convertToSlice(int[], int[], int[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Converts a set of integer arrays in a slice array</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/SliceND.html#convertToSlice--">convertToSlice()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Converts to a slice array all the Slices of the SliceND.</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use class-based method <a href="org/eclipse/january/dataset/Dataset.html#copy-java.lang.Class-"><code>Dataset.copy(Class)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#copy-org.eclipse.january.dataset.IDataset-int-">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"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="org/eclipse/january/dataset/DatasetUtils.html#copy-java.lang.Class-org.eclipse.january.dataset.IDataset-"><code>DatasetUtils.copy(Class, IDataset)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#copy-java.lang.Class-org.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">Cast a dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#copyElements-org.eclipse.january.dataset.Dataset-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#copyElements-org.eclipse.january.dataset.Dataset-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#copyElements-org.eclipse.january.dataset.Dataset-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#copyElements-org.eclipse.january.dataset.Dataset-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#copyElements-org.eclipse.january.dataset.Dataset-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#copyElements-org.eclipse.january.dataset.Dataset-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#copyElements-org.eclipse.january.dataset.Dataset-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDatasetBase.html#copyItemsFromAxes-int:A-boolean:A-org.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="memberNameLink"><a href="org/eclipse/january/dataset/ByteDataset.html#copyItemsFromAxes-int:A-boolean:A-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#copyItemsFromAxes-int:A-boolean:A-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#copyItemsFromAxes-int:A-boolean:A-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#copyItemsFromAxes-int:A-boolean:A-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#copyItemsFromAxes-int:A-boolean:A-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#copyItemsFromAxes-int:A-boolean:A-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#copyItemsFromAxes-int:A-boolean:A-org.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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes-int:A-boolean:A-org.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="memberNameLink"><a href="org/eclipse/january/dataset/DoubleDataset.html#copyItemsFromAxes-int:A-boolean:A-org.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="memberNameLink"><a href="org/eclipse/january/dataset/FloatDataset.html#copyItemsFromAxes-int:A-boolean:A-org.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="memberNameLink"><a href="org/eclipse/january/dataset/IntegerDataset.html#copyItemsFromAxes-int:A-boolean:A-org.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="memberNameLink"><a href="org/eclipse/january/dataset/LongDataset.html#copyItemsFromAxes-int:A-boolean:A-org.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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDatasetBase.html#copyItemsFromAxes-int:A-boolean:A-org.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="memberNameLink"><a href="org/eclipse/january/dataset/ShortDataset.html#copyItemsFromAxes-int:A-boolean:A-org.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="memberNameLink"><a href="org/eclipse/january/dataset/StringDatasetBase.html#copyItemsFromAxes-int:A-boolean:A-org.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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#copyToView-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.AbstractDataset-boolean-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#cos-java.lang.Object-">cos(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">cos - evaluate the cosine function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#cos-java.lang.Object-org.eclipse.january.dataset.Dataset-">cos(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">cos - evaluate the cosine function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#cosh-java.lang.Object-">cosh(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">cosh - evaluate the hyperbolic cosine function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#cosh-java.lang.Object-org.eclipse.january.dataset.Dataset-">cosh(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">cosh - evaluate the hyperbolic cosine function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#count-int-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#count-int:A-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#count-int-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#count-int:A-boolean...-">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="memberNameLink"><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-org.eclipse.january.dataset.Dataset-boolean-boolean-java.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="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#covariance-org.eclipse.january.dataset.Dataset-boolean-boolean-java.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-org.eclipse.january.dataset.Dataset-boolean-boolean-java.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="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#covariance-org.eclipse.january.dataset.Dataset-org.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-org.eclipse.january.dataset.Dataset-boolean-boolean-java.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="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#covariance-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-boolean-java.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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.html#createBinaryOperationName-java.lang.String-java.lang.String-java.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="memberNameLink"><a href="org/eclipse/january/dataset/RGBDataset.html#createBlueDataset-T-">createBlueDataset(T)</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block">Extract blue colour channel</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/RGBDataset.html#createBlueDataset-int-">createBlueDataset(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use <a href="org/eclipse/january/dataset/RGBDataset.html#createBlueDataset-T-"><code>RGBDataset.createBlueDataset(T)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/BroadcastUtils.html#createBroadcastStrides-org.eclipse.january.dataset.Dataset-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/BroadcastUtils.html#createBroadcastStrides-int-int:A-int:A-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#createComplexDataset-int-java.lang.Object-java.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="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createComplexDataset-java.lang.Class-java.lang.Object-java.lang.Object-"><code>DatasetFactory.createComplexDataset(Class, Object, Object)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#createComplexDataset-java.lang.Class-java.lang.Object-java.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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#createCompoundDataset-int-java.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="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createCompoundDataset-java.lang.Class-java.lang.Object...-"><code>DatasetFactory.createCompoundDataset(Class, Object...)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#createCompoundDataset-java.lang.Class-java.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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset-java.lang.Class-org.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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset-int-org.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"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset-java.lang.Class-org.eclipse.january.dataset.Dataset...-"><code>DatasetUtils.createCompoundDataset(Class, Dataset...)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset-org.eclipse.january.dataset.Dataset-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#createCompoundDatasetFromLastAxis-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#createCompoundDatasetWithLastDimension-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#createCompoundDatasetWithLastDimension-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#createCompoundDatasetWithLastDimension-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#createCompoundDatasetWithLastDimension-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#createCompoundDatasetWithLastDimension-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#createCompoundDatasetWithLastDimension-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#createDatasetFromCompoundDataset-org.eclipse.january.dataset.CompoundDataset-boolean-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/RGBDataset.html#createFromHSL-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/RGBDataset.html#createFromHSV-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#createFromList-int-java.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="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createFromList-java.lang.Class-java.util.List-"><code>DatasetFactory.createFromList(Class, List)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#createFromList-java.lang.Class-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#createFromObject-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#createFromObject-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#createFromObject-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#createFromObject-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#createFromObject-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#createFromObject-int-java.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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#createFromObject-java.lang.Object-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#createFromObject-boolean-java.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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#createFromObject-int-java.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="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createFromObject-java.lang.Class-java.lang.Object-int...-"><code>DatasetFactory.createFromObject(Class, Object, int...)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#createFromObject-int-java.lang.Object-int...-">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="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createFromObject-java.lang.Class-java.lang.Object-int...-"><code>DatasetFactory.createFromObject(Class, Object, int...)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#createFromObject-int-int-java.lang.Object-int...-">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="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createFromObject-int-java.lang.Class-java.lang.Object-int...-"><code>DatasetFactory.createFromObject(int, Class, Object, int...)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#createFromObject-java.lang.Class-java.lang.Object-">createFromObject(Class&lt;T&gt;, Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block">Create a dataset from object</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#createFromObject-java.lang.Class-java.lang.Object-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#createFromObject-int-java.lang.Class-java.lang.Object-int...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable-java.io.Serializable-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.html#createFunctionName-java.lang.String-java.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="memberNameLink"><a href="org/eclipse/january/dataset/RGBDataset.html#createGreenDataset-T-">createGreenDataset(T)</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block">Extract green colour channel</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/RGBDataset.html#createGreenDataset-int-">createGreenDataset(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use <a href="org/eclipse/january/dataset/RGBDataset.html#createGreenDataset-T-"><code>RGBDataset.createGreenDataset(T)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/RGBDataset.html#createGreyDataset-java.lang.Class-">createGreyDataset(Class&lt;T&gt;)</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="memberNameLink"><a href="org/eclipse/january/dataset/RGBDataset.html#createGreyDataset-java.lang.Class-double-double-double-">createGreyDataset(Class&lt;T&gt;, double, double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block">Convert colour dataset to a grey-scale one using given RGB to luma mapping</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/RGBDataset.html#createGreyDataset-int-">createGreyDataset(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use <a href="org/eclipse/january/dataset/RGBDataset.html#createGreyDataset-java.lang.Class-"><code>RGBDataset.createGreyDataset(Class)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/RGBDataset.html#createGreyDataset-double-double-double-int-">createGreyDataset(double, double, double, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use <a href="org/eclipse/january/dataset/RGBDataset.html#createGreyDataset-java.lang.Class-double-double-double-"><code>RGBDataset.createGreyDataset(Class, double, double, double)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/BooleanIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator(Dataset, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset with a true value</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/BooleanIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator(Dataset, Dataset, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset with a true value</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/BooleanIterator.html#createIterator-boolean-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator(boolean, Dataset, Dataset, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset where its value matches
+ the given boolean</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/BooleanIterator.html#createIterator-boolean-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">createIterator(boolean, Dataset, Dataset, Dataset, boolean)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset where its value matches
+ the given boolean</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/BroadcastIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/BroadcastIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/BroadcastIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/BroadcastSelfIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LazyWriteableDataset.html#createLazyDataset-org.eclipse.january.dataset.Dataset-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#createLinearSpace-double-double-int-int-">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="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createLinearSpace-java.lang.Class-double-double-int-"><code>DatasetFactory.createLinearSpace(Class, double, double, int)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#createLinearSpace-java.lang.Class-double-double-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#createLogSpace-double-double-int-double-int-">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="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createLogSpace-java.lang.Class-double-double-int-double-"><code>DatasetFactory.createLogSpace(Class, double, double, int, double)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#createLogSpace-java.lang.Class-double-double-int-double-">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="memberNameLink"><a href="org/eclipse/january/metadata/MetadataFactory.html#createMetadata-java.lang.Class-java.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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#createRange-double-">createRange(double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block">Create dataset with items ranging from 0 up to given stop in steps of 1</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#createRange-double-double-double-">createRange(double, double, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block">Create dataset with items ranging from given start up to given stop in given steps</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#createRange-double-int-">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="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createRange-java.lang.Class-double-"><code>DatasetFactory.createRange(Class, double)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#createRange-double-double-double-int-">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="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createRange-java.lang.Class-double-double-double-"><code>DatasetFactory.createRange(Class, double, double, double)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#createRange-int-double-int-">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="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createRange-java.lang.Class-double-double-double-"><code>DatasetFactory.createRange(Class, double, double, double)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#createRange-int-double-double-double-int-">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="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createRange-java.lang.Class-double-double-double-"><code>DatasetFactory.createRange(Class, double, double, double)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#createRange-java.lang.Class-double-">createRange(Class&lt;T&gt;, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block">Create dataset with items ranging from 0 up to given stop in steps of 1</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#createRange-java.lang.Class-double-double-double-">createRange(Class&lt;T&gt;, double, double, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block">Create dataset with items ranging from given start up to given stop in given steps</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#createRange-int-java.lang.Class-double-">createRange(int, Class&lt;T&gt;, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block">Create compound dataset with items ranging from 0 up to given stop in steps of 1</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#createRange-int-java.lang.Class-double-double-double-">createRange(int, Class&lt;T&gt;, double, double, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block">Create compound dataset with items ranging from given start up to given stop in given steps</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/RGBDataset.html#createRedDataset-T-">createRedDataset(T)</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block">Extract red colour channel</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/RGBDataset.html#createRedDataset-int-">createRedDataset(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use <a href="org/eclipse/january/dataset/RGBDataset.html#createRedDataset-T-"><code>RGBDataset.createRedDataset(T)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LazyDataset.html#createSlice-int:A-int:A-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/LazyWriteableDataset.html#createSlice-int:A-int:A-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/SliceND.html#createSlice-org.eclipse.january.dataset.ILazyDataset-int:A-int:A-">createSlice(ILazyDataset, int[], int[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Creats SliceND from dataset.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/SliceND.html#createSlice-org.eclipse.january.dataset.ILazyDataset-int:A-int:A-int:A-">createSlice(ILazyDataset, int[], int[], int[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Creating SliceND from dataset.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.Dataset-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#createStrides-int-int:A-int:A-int-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-org.eclipse.january.dataset.Dataset-int:A-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-int-int:A-int:A-int-int:A-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/Slice.html#createString-int:A-int:A-int:A-int:A-">createString(int[], int[], int[], int[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Creates a string representing the slice taken from given shape</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Slice.html#createString-org.eclipse.january.dataset.Slice...-">createString(Slice...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Creates a string representation of slices.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#crossings-org.eclipse.january.dataset.Dataset-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#crossings-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#crossings-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/LinearAlgebra.html#crossProduct-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/LinearAlgebra.html#crossProduct-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-int-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#cumulativeProduct-org.eclipse.january.dataset.Dataset-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#cumulativeProduct-org.eclipse.january.dataset.Dataset-int-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#cumulativeSum-org.eclipse.january.dataset.Dataset-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#cumulativeSum-org.eclipse.january.dataset.Dataset-int-boolean...-">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="I:D">
+<!--   -->
+</a>
+<h2 class="title">D</h2>
+<dl>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="typeNameLink">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DataEvent.html#DataEvent-java.lang.String-int:A-">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="typeNameLink">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="memberNameLink"><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="typeNameLink">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="typeNameLink">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/DatasetException.html#DatasetException-java.lang.String-java.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="typeNameLink">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="memberNameLink"><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="typeNameLink">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="memberNameLink"><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="memberNameLink"><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="typeNameLink">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/8/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="typeNameLink">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#derivative-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#diag-T-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#difference-org.eclipse.january.dataset.Dataset-int-int-">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><span class="memberNameLink"><a href="org/eclipse/january/dataset/ShapeUtils.html#differsByOnes-int:A-int:A-">differsByOnes(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>&nbsp;</dd>
+<dt><a href="org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">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="typeNameLink">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/IDatasetConnector.html#disconnect--">disconnect()</a></span> - Method in interface org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset">IDatasetConnector</a></dt>
+<dd>
+<div class="block">Stops listening to the dataset changing and disconnects from the server.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#divide-java.lang.Object-java.lang.Object-">divide(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">divide operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#divide-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">divide(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>
+<div class="block">divide operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#divideTowardsFloor-java.lang.Object-java.lang.Object-">divideTowardsFloor(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">divideTowardsFloor operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#divideTowardsFloor-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">divideTowardsFloor(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>
+<div class="block">divideTowardsFloor operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#dividez-java.lang.Object-java.lang.Object-">dividez(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">dividez operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#dividez-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">dividez(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>
+<div class="block">dividez operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Division.html#Division--">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><span class="memberNameLink"><a href="org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html#DivisionTowardsFloor--">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><span class="memberNameLink"><a href="org/eclipse/january/dataset/Operations.DivisionWithZero.html#DivisionWithZero--">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><span class="memberNameLink"><a href="org/eclipse/january/dataset/LinearAlgebra.html#dotProduct-org.eclipse.january.dataset.Dataset-org.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="typeNameLink">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="memberNameLink"><a href="org/eclipse/january/dataset/BinaryOperation.html#doubleOperate-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/BinaryOperation.Stub.html#doubleOperate-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Addition.html#doubleOperate-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Division.html#doubleOperate-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.DivisionWithZero.html#doubleOperate-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Exponentiation.html#doubleOperate-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Maximum.html#doubleOperate-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Minimum.html#doubleOperate-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Multiplication.html#doubleOperate-double-double-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Remainder.html#doubleOperate-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Subtraction.html#doubleOperate-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseBase.html#doubleOperate-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfEqualTo.html#doubleOperate-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#doubleOperate-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#doubleOperate-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfLessThan.html#doubleOperate-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#doubleOperate-double-double-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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><a href="org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">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="memberNameLink"><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="typeNameLink">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="memberNameLink"><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="typeNameLink">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="memberNameLink"><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="I:E">
+<!--   -->
+</a>
+<h2 class="title">E</h2>
+<dl>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LazyDynamicDataset.html#equals-java.lang.Object-">equals(Object)</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="memberNameLink"><a href="org/eclipse/january/dataset/LazyWriteableDataset.html#equals-java.lang.Object-">equals(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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#equalTo-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#equalTo-java.lang.Object-java.lang.Object-org.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="typeNameLink">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#exp-java.lang.Object-">exp(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">exp - evaluate the exponential function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#exp-java.lang.Object-org.eclipse.january.dataset.Dataset-">exp(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">exp - evaluate the exponential function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#expm1-java.lang.Object-">expm1(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">expm1 - evaluate the exponential function - 1 on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#expm1-java.lang.Object-org.eclipse.january.dataset.Dataset-">expm1(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">expm1 - evaluate the exponential function - 1 on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Random.html#exponential-double-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Exponentiation.html#Exponentiation--">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><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#extract-org.eclipse.january.dataset.IDataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#eye-java.lang.Class-int-int-int-">eye(Class&lt;T&gt;, 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>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#eye-int-int-int-int-">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>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="org/eclipse/january/dataset/DatasetUtils.html#eye-java.lang.Class-int-int-int-"><code>DatasetUtils.eye(Class, int, int, int)</code></a></span></div>
+</div>
+</dd>
+</dl>
+<a name="I:F">
+<!--   -->
+</a>
+<h2 class="title">F</h2>
+<dl>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#fillData-java.lang.Object-int-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDatasetBase.html#fillDataset-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/ByteDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/DoubleDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/FloatDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/IntegerDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/LongDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDatasetBase.html#fillDataset-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/ShortDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/StringDatasetBase.html#fillDataset-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#findFirstOccurrences-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#findIndexEqualTo-org.eclipse.january.dataset.Dataset-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#findIndexesForValues-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#findIndexGreaterThan-org.eclipse.january.dataset.Dataset-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#findIndexGreaterThanOrEqualTo-org.eclipse.january.dataset.Dataset-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#findIndexLessThan-org.eclipse.january.dataset.Dataset-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#findIndexLessThanOrEqualTo-org.eclipse.january.dataset.Dataset-double-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Slice.html#flip--">flip()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Flips the Slice direction, after this operation, the slice begins at
+ previous end point, steps in the opposite direction, and finishes at the
+ previous start point.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/SliceND.html#flip-int-">flip(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Flips the slice direction in given dimension, this means that slice
+ begins at previous end point, steps in the opposite direction, and
+ finishes at the previous start point.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/SliceND.html#flip--">flip()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Flips slices directions in all dimensions, this means that all slices are
+ beginning at previous end point, steps are in the opposite direction, and
+ finishes are at the previous start point.</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="typeNameLink">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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#floor-java.lang.Object-">floor(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">floor - evaluate the floor function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#floor-java.lang.Object-org.eclipse.january.dataset.Dataset-">floor(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">floor - evaluate the floor function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#floorDivide-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#floorDivide-java.lang.Object-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#floorRemainder-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#floorRemainder-java.lang.Object-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/DTypeUtils.html#fromDoublesToBiggestPrimitives-double:A-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/InterfaceUtils.html#fromDoublesToBiggestPrimitives-java.lang.Class-double:A-">fromDoublesToBiggestPrimitives(Class&lt;? extends Dataset&gt;, double[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset">InterfaceUtils</a></dt>
+<dd>
+<div class="block">Convert double array to primitive array</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DTypeUtils.html#fromDoubleToBiggestNumber-double-int-">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>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/InterfaceUtils.html#fromDoubleToBiggestNumber-java.lang.Class-double-">fromDoubleToBiggestNumber(Class&lt;? extends Dataset&gt;, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset">InterfaceUtils</a></dt>
+<dd>
+<div class="block">Convert double to number</div>
+</dd>
+</dl>
+<a name="I:G">
+<!--   -->
+</a>
+<h2 class="title">G</h2>
+<dl>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDatasetBase.html#get-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ByteDataset.html#get-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexDoubleDataset.html#get-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexFloatDataset.html#get-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DoubleDataset.html#get-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/FloatDataset.html#get-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/IntegerDataset.html#get-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LongDataset.html#get-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDatasetBase.html#get-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ShortDataset.html#get-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/StringDatasetBase.html#get-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndex-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#get1DIndex-int-int-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndexFromShape-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-int:A-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#getAbs-int-byte:A-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#getAbs-int-double:A-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#getAbs-int-float:A-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#getAbs-int-int:A-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#getAbs-int-long:A-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#getAbs-int-short:A-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/metadata/StatisticsMetadata.html#getArgMaximum-int-boolean...-">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="memberNameLink"><a href="org/eclipse/january/metadata/StatisticsMetadata.html#getArgMinimum-int-boolean...-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DTypeUtils.html#getBestDType-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/InterfaceUtils.html#getBestFloatInterface-java.lang.Class-">getBestFloatInterface(Class&lt;? extends Dataset&gt;)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset">InterfaceUtils</a></dt>
+<dd>
+<div class="block">Find floating point dataset interface that best fits given types.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/InterfaceUtils.html#getBestInterface-java.lang.Class-java.lang.Class-">getBestInterface(Class&lt;? extends Dataset&gt;, Class&lt;? extends Dataset&gt;)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset">InterfaceUtils</a></dt>
+<dd>
+<div class="block">Find dataset interface that best fits given classes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#getBilinear-org.eclipse.january.dataset.IDataset-double-double-">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="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use <a href="org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-double-double-"><code>Maths.interpolate(Dataset, double, double)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#getBilinear-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.IDataset-double-double-">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="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use <a href="org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-double-double-"><code>Maths.interpolate(Dataset, Dataset, double, double)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#getBilinear-double:A-org.eclipse.january.dataset.CompoundDataset-double-double-">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="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use
+             <a href="org/eclipse/january/dataset/Maths.html#interpolate-double:A-org.eclipse.january.dataset.CompoundDataset-double-double-"><code>Maths.interpolate(double[], CompoundDataset, double, double)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/RGBDataset.html#getBlue-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDataset.html#getBoolean-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDatasetBase.html#getBoolean-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ByteDataset.html#getBoolean-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#getBoolean-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DoubleDataset.html#getBoolean-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/FloatDataset.html#getBoolean-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/IntegerDataset.html#getBoolean-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LongDataset.html#getBoolean-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDataset.html#getBoolean-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDatasetBase.html#getBoolean-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ShortDataset.html#getBoolean-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/StringDataset.html#getBoolean-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/StringDatasetBase.html#getBoolean-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#getBooleanIterator-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDataset.html#getByte-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDatasetBase.html#getByte-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ByteDataset.html#getByte-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#getByte-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DoubleDataset.html#getByte-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/FloatDataset.html#getByte-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/IntegerDataset.html#getByte-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LongDataset.html#getByte-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDataset.html#getByte-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDatasetBase.html#getByte-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ShortDataset.html#getByte-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/StringDataset.html#getByte-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/StringDatasetBase.html#getByte-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#getByteArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#getByteArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#getByteArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#getByteArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#getByteArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#getByteArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#getByteArray-int-int-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanIterator.html#getChoice--">getChoice()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexDoubleDataset.html#getComplex-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexFloatDataset.html#getComplex-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/metadata/StatisticsMetadata.html#getCount-int-boolean...-">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="memberNameLink"><a href="org/eclipse/january/metadata/StatisticsMetadata.html#getCount-int:A-boolean...-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/io/ILazyLoader.html#getDataset-org.eclipse.january.IMonitor-org.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="memberNameLink"><a href="org/eclipse/january/dataset/DTypeUtils.html#getDatasetName-org.eclipse.january.dataset.Dataset-">getDatasetName(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="memberNameLink"><a href="org/eclipse/january/dataset/DTypeUtils.html#getDatasetName-org.eclipse.january.dataset.ILazyDataset-">getDatasetName(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="memberNameLink"><a href="org/eclipse/january/dataset/DTypeUtils.html#getDatasetName-java.lang.Class-int-">getDatasetName(Class&lt;? extends Dataset&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>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DateDataset.html#getDate-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DateDatasetImpl.html#getDate-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDataset.html#getDouble-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDatasetBase.html#getDouble-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ByteDataset.html#getDouble-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#getDouble-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DoubleDataset.html#getDouble-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/FloatDataset.html#getDouble-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/IntegerDataset.html#getDouble-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LongDataset.html#getDouble-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDataset.html#getDouble-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDatasetBase.html#getDouble-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ShortDataset.html#getDouble-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/StringDataset.html#getDouble-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/StringDatasetBase.html#getDouble-int-int-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int...-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#getDoubleArray-int-int-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray-double:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray-double:A-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray-double:A-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray-double:A-int...-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#getDoubleArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#getDoubleArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#getDoubleArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#getDoubleArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#getDoubleArray-int-int-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#getDoubleArrayAbs-int-double:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#getDoubleArrayAbs-int-double:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#getDoubleArrayAbs-int-double:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#getDoubleArrayAbs-int-double:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#getDoubleArrayAbs-int-double:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#getDoubleArrayAbs-int-double:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#getDoubleArrayAbs-int-double:A-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DateDatasetImpl.html#getDType--">getDType()</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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DTypeUtils.html#getDTypeFromClass-java.lang.Class-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DTypeUtils.html#getDTypeName-int-int-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/InterfaceUtils.html#getElementalInterface-java.lang.Class-">getElementalInterface(Class&lt;? extends Dataset&gt;)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset">InterfaceUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/InterfaceUtils.html#getElementClass-java.lang.Class-">getElementClass(Class&lt;? extends Dataset&gt;)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset">InterfaceUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/InterfaceUtils.html#getElementsPerItem-java.lang.Class-">getElementsPerItem(Class&lt;? extends Dataset&gt;)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset">InterfaceUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Slice.html#getEnd--">getEnd()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Returns the last value inside of Slice.</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#getError-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#getError-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#getError-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#getErrorArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#getErrorArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanBroadcastIterator.html#getFirstShape--">getFirstShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset">BooleanBroadcastIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#getFirstValue-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#getFirstValue-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#getFirstValue-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#getFirstValue-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#getFirstValue-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#getFirstValue-int-int-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ShapeUtils.html#getFlat1DIndex-int:A-int:A-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDataset.html#getFloat-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDatasetBase.html#getFloat-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ByteDataset.html#getFloat-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#getFloat-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DoubleDataset.html#getFloat-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/FloatDataset.html#getFloat-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/IntegerDataset.html#getFloat-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LongDataset.html#getFloat-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDataset.html#getFloat-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDatasetBase.html#getFloat-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ShortDataset.html#getFloat-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/StringDataset.html#getFloat-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/StringDatasetBase.html#getFloat-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#getFloatArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#getFloatArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#getFloatArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#getFloatArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#getFloatArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#getFloatArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#getFloatArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/RGBDataset.html#getGreen-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/metadata/StatisticsMetadata.html#getHash-int:A-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexDoubleDataset.html#getImag-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexFloatDataset.html#getImag-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDataset.html#getInt-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDatasetBase.html#getInt-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ByteDataset.html#getInt-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#getInt-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DoubleDataset.html#getInt-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/FloatDataset.html#getInt-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/IntegerDataset.html#getInt-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LongDataset.html#getInt-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDataset.html#getInt-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDatasetBase.html#getInt-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ShortDataset.html#getInt-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/StringDataset.html#getInt-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/StringDatasetBase.html#getInt-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#getIntArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#getIntArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#getIntArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#getIntArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#getIntArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#getIntArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#getIntArray-int-int-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DTypeUtils.html#getInterface-int-">getInterface(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="memberNameLink"><a href="org/eclipse/january/dataset/InterfaceUtils.html#getInterface-java.lang.Object-">getInterface(Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset">InterfaceUtils</a></dt>
+<dd>
+<div class="block">Get dataset interface from an object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/LazyDataset.html#getInterface--">getInterface()</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="memberNameLink"><a href="org/eclipse/january/dataset/InterfaceUtils.html#getInterfaceFromClass-int-java.lang.Class-">getInterfaceFromClass(int, Class&lt;?&gt;)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset">InterfaceUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DTypeUtils.html#getItemBytes-int-int-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/InterfaceUtils.html#getItemBytes-int-java.lang.Class-">getItemBytes(int, Class&lt;? extends Dataset&gt;)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset">InterfaceUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DTypeUtils.html#getLargestDataset-java.lang.Class-">getLargestDataset(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>
+<div class="block">The largest dataset class suitable for a summation of around a few thousand items without changing from the "kind"
+ of dataset</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/InterfaceUtils.html#getLargestInterface-org.eclipse.january.dataset.Dataset-">getLargestInterface(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset">InterfaceUtils</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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Slice.html#getLength--">getLength()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Returns the maximum value of the slice.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#getLinear-org.eclipse.january.dataset.IDataset-double-">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="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use <a href="org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-double-"><code>Maths.interpolate(Dataset, double)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#getLinear-double:A-org.eclipse.january.dataset.CompoundDataset-double-">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="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use <a href="org/eclipse/january/dataset/Maths.html#interpolate-double:A-org.eclipse.january.dataset.CompoundDataset-double-"><code>Maths.interpolate(double[], CompoundDataset, double)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDataset.html#getLong-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDatasetBase.html#getLong-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ByteDataset.html#getLong-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#getLong-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DoubleDataset.html#getLong-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/FloatDataset.html#getLong-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/IntegerDataset.html#getLong-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LongDataset.html#getLong-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDataset.html#getLong-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDatasetBase.html#getLong-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ShortDataset.html#getLong-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/StringDataset.html#getLong-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/StringDatasetBase.html#getLong-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#getLongArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#getLongArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#getLongArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#getLongArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#getLongArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#getLongArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#getLongArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanBroadcastIterator.html#getMaskShape--">getMaskShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset">BooleanBroadcastIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum-int-boolean...-">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="memberNameLink"><a href="org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum-int:A-boolean...-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/SliceND.html#getMaxShape--">getMaxShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Returns an array of maximals shapes</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/LazyDataset.html#getMaxSliceLength-org.eclipse.january.dataset.ILazyDataset-int-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/metadata/StatisticsMetadata.html#getMean-int-boolean...-">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="memberNameLink"><a href="org/eclipse/january/metadata/StatisticsMetadata.html#getMean-int:A-boolean...-">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="memberNameLink"><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="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use <code>getFirstMetadata(IMetadata.class)</code> instead</span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><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="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use <code>getFirstMetadata(IMetadata.class)</code> instead</span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LazyDatasetBase.html#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap(ILazyDataset, boolean)</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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/metadata/StatisticsMetadata.html#getMinimum-int-boolean...-">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="memberNameLink"><a href="org/eclipse/january/metadata/StatisticsMetadata.html#getMinimum-int:A-boolean...-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ShapeUtils.html#getNDPositionFromShape-int-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/Slice.html#getNumSteps--">getNumSteps()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Returns the number of steps inside of the Slice</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Slice.html#getNumSteps-int-int-">getNumSteps(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Returns the number of steps inside of the Slice from a point to an other
+ point minus 1 because this is an exclusive index</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDatasetBase.html#getObject-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ByteDataset.html#getObject-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexDoubleDataset.html#getObject-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexFloatDataset.html#getObject-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#getObject-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#getObject-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#getObject-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#getObject-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#getObject-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#getObject-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#getObject-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DoubleDataset.html#getObject-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/FloatDataset.html#getObject-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/IntegerDataset.html#getObject-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LongDataset.html#getObject-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDatasetBase.html#getObject-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ShortDataset.html#getObject-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/StringDatasetBase.html#getObject-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanIterator.html#getOutput--">getOutput()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanContiguousIterator.html#getPos--">getPos()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset">BooleanContiguousIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/SliceIterator.html#getPos--">getPos()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Returns the current position of the iterator.</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Slice.html#getPosition-int-">getPosition(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Returns the index of the n-th step inside of the slice</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexDoubleDataset.html#getReal-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexFloatDataset.html#getReal-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/RGBDataset.html#getRed-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ShapeUtils.html#getReducedShapeKeepRank-int:A-int...-">getReducedShapeKeepRank(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">Set reduced axes to 1</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ShapeUtils.html#getRemainingAxes-int-int...-">getRemainingAxes(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>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanIterator.html#getShape--">getShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/SliceIterator.html#getShape--">getShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Returns an array of the Slices shapes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/SliceND.html#getShape--">getShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Returns an array of resulting shapes (this can change if the start, stop,
+ step arrays are changed).</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDataset.html#getShort-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDatasetBase.html#getShort-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ByteDataset.html#getShort-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#getShort-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DoubleDataset.html#getShort-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/FloatDataset.html#getShort-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/IntegerDataset.html#getShort-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LongDataset.html#getShort-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDataset.html#getShort-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDatasetBase.html#getShort-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ShortDataset.html#getShort-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/StringDataset.html#getShort-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/StringDatasetBase.html#getShort-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#getShortArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#getShortArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#getShortArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#getShortArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#getShortArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#getShortArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#getShortArray-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-int:A-int:A-int:A-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#getSlice-int:A-int:A-int:A-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AggregateDataset.html#getSlice-int:A-int:A-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/AggregateDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/AggregateDataset.html#getSlice-org.eclipse.january.IMonitor-org.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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AggregateDataset.html#getSlice-org.eclipse.january.IMonitor-org.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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#getSlice-int:A-int:A-int:A-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#getSlice-int:A-int:A-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.IMonitor-org.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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.IMonitor-org.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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/IDataset.html#getSlice-int:A-int:A-int:A-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ILazyDataset.html#getSlice-int:A-int:A-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LazyDataset.html#getSlice-int:A-int:A-int:A-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.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="memberNameLink"><a href="org/eclipse/january/dataset/LazyDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/LazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator-int:A-int:A-int:A-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#getSliceIterator-int:A-int:A-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#getSliceIterator-org.eclipse.january.dataset.SliceND-">getSliceIterator(SliceND)</a></span> - Method in interface org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView-int:A-int:A-int:A-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#getSliceView-int:A-int:A-int:A-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AggregateDataset.html#getSliceView-int:A-int:A-int:A-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#getSliceView-int:A-int:A-int:A-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#getSliceView-int:A-int:A-int:A-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/IDataset.html#getSliceView-int:A-int:A-int:A-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ILazyDataset.html#getSliceView-int:A-int:A-int:A-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LazyDataset.html#getSliceView-int:A-int:A-int:A-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LazyWriteableDataset.html#getSliceView-int:A-int:A-int:A-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/SliceND.html#getSourceShape--">getSourceShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Returns an array of shapes of the source Dataset (this can change for
+ dynamic Datasets).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Slice.html#getStart--">getStart()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Returns the starting index of the slice.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/SliceIterator.html#getStart--">getStart()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Returns an array of starts indexes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/SliceND.html#getStart--">getStart()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Returns an array of the starts values.</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Slice.html#getStep--">getStep()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Returns the step of the slice.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/SliceIterator.html#getStep--">getStep()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Returns an array of steps</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/SliceND.html#getStep--">getStep()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Returns an array of the steps values.</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Slice.html#getStop--">getStop()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Returns the stopping index of the slice.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/SliceND.html#getStop--">getStop()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Returns an array of stops values.</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDatasetBase.html#getString-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ByteDataset.html#getString-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#getString-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#getString-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#getString-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#getString-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#getString-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#getString-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#getString-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DoubleDataset.html#getString-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/FloatDataset.html#getString-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/IntegerDataset.html#getString-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LongDataset.html#getString-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDatasetBase.html#getString-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ShortDataset.html#getString-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/StringDatasetBase.html#getString-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/metadata/StatisticsMetadata.html#getSum-int-boolean...-">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="memberNameLink"><a href="org/eclipse/january/metadata/StatisticsMetadata.html#getSum-int:A-boolean...-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/metadata/UnitMetadata.html#getUnit--">getUnit()</a></span> - Method in interface org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata">UnitMetadata</a></dt>
+<dd>
+<div class="block">Get unit</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/metadata/StatisticsMetadata.html#getVariance-boolean-boolean...-">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="memberNameLink"><a href="org/eclipse/january/metadata/StatisticsMetadata.html#getVariance-int-boolean-boolean...-">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="memberNameLink"><a href="org/eclipse/january/metadata/StatisticsMetadata.html#getVariance-int:A-boolean-boolean...-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#gradient-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#greaterThan-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#greaterThan-java.lang.Object-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#greaterThanOrEqualTo-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#greaterThanOrEqualTo-java.lang.Object-java.lang.Object-org.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="I:H">
+<!--   -->
+</a>
+<h2 class="title">H</h2>
+<dl>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LazyDataset.html#hashCode--">hashCode()</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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LazyDynamicDataset.html#hashCode--">hashCode()</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="memberNameLink"><a href="org/eclipse/january/dataset/LazyWriteableDataset.html#hashCode--">hashCode()</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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanBroadcastIterator.html#hasNext--">hasNext()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset">BooleanBroadcastIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/BooleanContiguousIterator.html#hasNext--">hasNext()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset">BooleanContiguousIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/BooleanNullIterator.html#hasNext--">hasNext()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset">BooleanNullIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/SliceIterator.html#hasNext--">hasNext()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Returns <code>true</code> if there is an other element after the current
+ Slice.</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#hypot-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#hypot-java.lang.Object-java.lang.Object-org.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:I">
+<!--   -->
+</a>
+<h2 class="title">I</h2>
+<dl>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="typeNameLink">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="memberNameLink"><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="typeNameLink">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#indexSort-org.eclipse.january.dataset.Dataset-java.lang.Integer-">indexSort(Dataset, Integer)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Indirectly sort along given axis</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/metadata/DimensionMetadata.html#initialize-int:A-int:A-int:A-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/metadata/ErrorMetadata.html#initialize-org.eclipse.january.dataset.ILazyDataset-">initialize(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>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/metadata/OriginMetadata.html#initialize-org.eclipse.january.dataset.ILazyDataset-org.eclipse.january.dataset.Slice:A-int:A-java.lang.String-java.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="memberNameLink"><a href="org/eclipse/january/metadata/PeemMetadata.html#initialize-double:A-double-double-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/metadata/UnitMetadata.html#initialize-javax.measure.Unit-">initialize(Unit&lt;?&gt;)</a></span> - Method in interface org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata">UnitMetadata</a></dt>
+<dd>
+<div class="block">Initialize unit metadata with given unit</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="typeNameLink">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="typeNameLink">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="memberNameLink"><a href="org/eclipse/january/dataset/IntegerIterator.html#IntegerIterator-org.eclipse.january.dataset.Dataset-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/IntegerIterator.html#IntegerIterator-org.eclipse.january.dataset.Dataset-int-int-">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="typeNameLink">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="memberNameLink"><a href="org/eclipse/january/dataset/IntegersIterator.html#IntegersIterator-int:A-java.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="memberNameLink"><a href="org/eclipse/january/dataset/IntegersIterator.html#IntegersIterator-boolean-int:A-java.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><a href="org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">InterfaceUtils</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="memberNameLink"><a href="org/eclipse/january/dataset/InterfaceUtils.html#InterfaceUtils--">InterfaceUtils()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset">InterfaceUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IDataset-java.lang.Number-java.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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#interpolate-double:A-org.eclipse.january.dataset.CompoundDataset-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#interpolate-double:A-org.eclipse.january.dataset.CompoundDataset-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-double...-">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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-double...-">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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#interpolate-double:A-org.eclipse.january.dataset.CompoundDataset-double...-">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="typeNameLink">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="memberNameLink"><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="typeNameLink">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#iqr-org.eclipse.january.dataset.Dataset-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="typeNameLink">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="memberNameLink"><a href="org/eclipse/january/dataset/SliceND.html#isAll--">isAll()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Returns <code>true</code> if all of originals shapes are covered by positive
+ steps slices, else <code>false</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use <a href="org/eclipse/january/dataset/InterfaceUtils.html#isElementSupported-java.lang.Class-"><code>InterfaceUtils.isElementSupported(Class)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#isClose-double-double-double-double-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/InterfaceUtils.html#isComplex-java.lang.Class-">isComplex(Class&lt;? extends Dataset&gt;)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset">InterfaceUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/InterfaceUtils.html#isCompound-java.lang.Class-">isCompound(Class&lt;? extends Dataset&gt;)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset">InterfaceUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/metadata/StatisticsMetadata.html#isDirty-org.eclipse.january.dataset.Dataset-">isDirty(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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/InterfaceUtils.html#isElemental-org.eclipse.january.dataset.ILazyDataset-">isElemental(ILazyDataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset">InterfaceUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/InterfaceUtils.html#isElemental-java.lang.Class-">isElemental(Class&lt;? extends Dataset&gt;)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset">InterfaceUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/InterfaceUtils.html#isElementSupported-java.lang.Class-">isElementSupported(Class&lt;? extends Object&gt;)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset">InterfaceUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/SliceND.html#isExpanded--">isExpanded()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Returns <code>true</code> if the slice makes shape larger, else <code>false</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#isFinite-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/InterfaceUtils.html#isFloating-org.eclipse.january.dataset.ILazyDataset-">isFloating(ILazyDataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset">InterfaceUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/InterfaceUtils.html#isFloating-java.lang.Class-">isFloating(Class&lt;? extends Dataset&gt;)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset">InterfaceUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#isInfinite-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/InterfaceUtils.html#isInteger-org.eclipse.january.dataset.ILazyDataset-">isInteger(ILazyDataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset">InterfaceUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/InterfaceUtils.html#isInteger-java.lang.Class-">isInteger(Class&lt;? extends Dataset&gt;)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset">InterfaceUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#isMonotonic-java.lang.Object-org.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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#isNaN-java.lang.Object-org.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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#isNegativeInfinite-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/InterfaceUtils.html#isNumerical-java.lang.Class-">isNumerical(Class&lt;? extends Dataset&gt;)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset">InterfaceUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#isPositiveInfinite-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/Slice.html#isSliceComplete--">isSliceComplete()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Returns <code>true</code> if the slice has a maximum size equal to the current
+ size, else <code>false</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="I:K">
+<!--   -->
+</a>
+<h2 class="title">K</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/LinearAlgebra.html#kroneckerProduct-org.eclipse.january.dataset.Dataset-org.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 
+ <code>kron[k0,...,kN] = a[i0,...,iN] * b[j0,...,jN]</code>
+ where <code>kn = sn * in + jn</code> for <code>n = 0...N</code> and <code>s</code> is shape of <code>b</code></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#kurtosis-org.eclipse.january.dataset.Dataset-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#kurtosis-org.eclipse.january.dataset.Dataset-int-boolean...-">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="I: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="typeNameLink">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="memberNameLink"><a href="org/eclipse/january/dataset/LazyDataset.html#LazyDataset-org.eclipse.january.io.ILazyLoader-java.lang.String-int-java.lang.Class-int...-">LazyDataset(ILazyLoader, String, int, Class&lt;? extends Dataset&gt;, int...)</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="memberNameLink"><a href="org/eclipse/january/dataset/LazyDataset.html#LazyDataset-org.eclipse.january.io.ILazyLoader-java.lang.String-java.lang.Class-int...-">LazyDataset(ILazyLoader, String, Class&lt;? extends Dataset&gt;, int...)</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="memberNameLink"><a href="org/eclipse/january/dataset/LazyDataset.html#LazyDataset-java.lang.String-int-int-int:A-org.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"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use <a href="org/eclipse/january/dataset/LazyDataset.html#LazyDataset-org.eclipse.january.io.ILazyLoader-java.lang.String-int-java.lang.Class-int...-"><code>LazyDataset.LazyDataset(ILazyLoader, String, int, Class, int[])</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/LazyDataset.html#LazyDataset-java.lang.String-int-int:A-org.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"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use <a href="org/eclipse/january/dataset/LazyDataset.html#LazyDataset-org.eclipse.january.io.ILazyLoader-java.lang.String-int-java.lang.Class-int...-"><code>LazyDataset.LazyDataset(ILazyLoader, String, int, Class, int[])</code></a></span></div>
+</div>
+</dd>
+<dt><a href="org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">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="memberNameLink"><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="typeNameLink">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="memberNameLink"><a href="org/eclipse/january/dataset/LazyDynamicDataset.html#LazyDynamicDataset-java.lang.String-int-int-int:A-int:A-org.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><span class="memberNameLink"><a href="org/eclipse/january/dataset/LazyDynamicDataset.html#LazyDynamicDataset-org.eclipse.january.dataset.LazyDynamicDataset-">LazyDynamicDataset(LazyDynamicDataset)</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="typeNameLink">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Random.html#lazyRand-java.lang.String-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/Random.html#lazyRand-int-java.lang.String-int...-">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="typeNameLink">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="memberNameLink"><a href="org/eclipse/january/dataset/LazyWriteableDataset.html#LazyWriteableDataset-java.lang.String-int-int-int:A-int:A-int:A-org.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="memberNameLink"><a href="org/eclipse/january/dataset/LazyWriteableDataset.html#LazyWriteableDataset-java.lang.String-int-int:A-int:A-int:A-org.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="memberNameLink"><a href="org/eclipse/january/dataset/LazyWriteableDataset.html#LazyWriteableDataset-java.lang.String-java.lang.Class-int-int:A-int:A-int:A-org.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="memberNameLink"><a href="org/eclipse/january/dataset/LazyWriteableDataset.html#LazyWriteableDataset-java.lang.String-java.lang.Class-int:A-int:A-int:A-org.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="memberNameLink"><a href="org/eclipse/january/dataset/LazyWriteableDataset.html#LazyWriteableDataset-org.eclipse.january.dataset.LazyWriteableDataset-">LazyWriteableDataset(LazyWriteableDataset)</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>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#leftShift-java.lang.Object-java.lang.Object-">leftShift(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">leftShift operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#leftShift-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">leftShift(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>
+<div class="block">leftShift operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#lessThan-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#lessThan-java.lang.Object-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#lessThanOrEqualTo-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#lessThanOrEqualTo-java.lang.Object-java.lang.Object-org.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="typeNameLink">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="memberNameLink"><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="typeNameLink">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#log-java.lang.Object-">log(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">log - evaluate the logarithm function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#log-java.lang.Object-org.eclipse.january.dataset.Dataset-">log(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">log - evaluate the logarithm function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#log10-java.lang.Object-">log10(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">log10 - evaluate the logarithm function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#log10-java.lang.Object-org.eclipse.january.dataset.Dataset-">log10(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">log10 - evaluate the logarithm function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#log1p-java.lang.Object-">log1p(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">log1p - evaluate the logarithm function of 1 plus on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#log1p-java.lang.Object-org.eclipse.january.dataset.Dataset-">log1p(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">log1p - evaluate the logarithm function of 1 plus on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#log2-java.lang.Object-">log2(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">log2 - evaluate the logarithm function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#log2-java.lang.Object-org.eclipse.january.dataset.Dataset-">log2(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">log2 - evaluate the logarithm function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#logicalAnd-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#logicalAnd-java.lang.Object-java.lang.Object-org.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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#logicalNot-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#logicalOr-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#logicalOr-java.lang.Object-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#logicalXor-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#logicalXor-java.lang.Object-java.lang.Object-org.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="memberNameLink"><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="typeNameLink">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="memberNameLink"><a href="org/eclipse/january/dataset/BinaryOperation.html#longOperate-long-long-">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="memberNameLink"><a href="org/eclipse/january/dataset/BinaryOperation.Stub.html#longOperate-long-long-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Addition.html#longOperate-long-long-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Division.html#longOperate-long-long-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html#longOperate-long-long-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Maximum.html#longOperate-long-long-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Minimum.html#longOperate-long-long-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Multiplication.html#longOperate-long-long-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Remainder.html#longOperate-long-long-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Subtraction.html#longOperate-long-long-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseBase.html#longOperate-long-long-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfEqualTo.html#longOperate-long-long-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#longOperate-long-long-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#longOperate-long-long-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfLessThan.html#longOperate-long-long-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#longOperate-long-long-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#lowerClip-java.lang.Object-java.lang.Object-">lowerClip(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">lowerClip - clip elements to lower limit</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#lowerClip-java.lang.Object-org.eclipse.january.dataset.Dataset-java.lang.Object-">lowerClip(Object, 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">lowerClip - clip elements to lower limit</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="I:M">
+<!--   -->
+</a>
+<h2 class="title">M</h2>
+<dl>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#makeUnsigned-org.eclipse.january.dataset.IDataset-">makeUnsigned(IDataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Make a dataset unsigned by promoting it to a wider dataset type and unwrapping the signs
+ of its contents</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#makeUnsigned-org.eclipse.january.dataset.IDataset-boolean-">makeUnsigned(IDataset, boolean)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Make a dataset unsigned by promoting it to a wider dataset type and unwrapping the signs
+ of its contents</div>
+</dd>
+<dt><span class="memberNameLink"><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="typeNameLink">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="typeNameLink">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#max-int-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#max-int-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#max-int:A-boolean...-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#max-int-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#max-int-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#max-int:A-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LazyMaths.html#max-org.eclipse.january.dataset.ILazyDataset-int...-">max(ILazyDataset, int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/LazyMaths.html" title="class in org.eclipse.january.dataset">LazyMaths</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#maximum-java.lang.Object-java.lang.Object-">maximum(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">maximum operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#maximum-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">maximum(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>
+<div class="block">maximum operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Maximum.html#Maximum--">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><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanIterator.html#maxShape">maxShape</a></span> - Variable in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#mean-int-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#mean-int-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#mean-int:A-boolean...-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#mean-int-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#mean-int-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#mean-int:A-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LazyMaths.html#mean-int-int-org.eclipse.january.dataset.ILazyDataset-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/LazyMaths.html#mean-org.eclipse.january.dataset.ILazyDataset-int...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#median-org.eclipse.january.dataset.Dataset-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Outliers.html#medianOFTwoPrimitiveArrays-double:A-double:A-">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="memberNameLink"><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="memberNameLink"><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="typeNameLink">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="memberNameLink"><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="memberNameLink"><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="typeNameLink">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/MetadataException.html#MetadataException-java.lang.String-java.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="typeNameLink">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="typeNameLink">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#min-int-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#min-int-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#min-int:A-boolean...-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#min-int-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#min-int-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#min-int:A-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LazyMaths.html#min-org.eclipse.january.dataset.ILazyDataset-int...-">min(ILazyDataset, int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/LazyMaths.html" title="class in org.eclipse.january.dataset">LazyMaths</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#minimum-java.lang.Object-java.lang.Object-">minimum(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">minimum operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#minimum-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">minimum(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>
+<div class="block">minimum operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Minimum.html#Minimum--">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><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Multiplication.html#Multiplication--">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><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#multiply-java.util.Collection-boolean-">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>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#multiply-java.lang.Object-java.lang.Object-">multiply(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">multiply operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#multiply-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">multiply(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>
+<div class="block">multiply operator</div>
+</dd>
+</dl>
+<a name="I:N">
+<!--   -->
+</a>
+<h2 class="title">N</h2>
+<dl>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Negation.html#Negation--">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><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#negative-java.lang.Object-">negative(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">negative - negative value of each element</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#negative-java.lang.Object-org.eclipse.january.dataset.Dataset-">negative(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">negative - negative value of each element</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#norm-org.eclipse.january.dataset.CompoundDataset-boolean-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LinearAlgebra.html#norm-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/LinearAlgebra.html#norm-org.eclipse.january.dataset.Dataset-double-">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="typeNameLink">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="memberNameLink"><a href="org/eclipse/january/dataset/NullIterator.html#NullIterator-int:A-int:A-">NullIterator(int[], int[])</a></span> - Constructor for class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset">NullIterator</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:O">
+<!--   -->
+</a>
+<h2 class="title">O</h2>
+<dl>
+<dt><span class="memberNameLink"><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="typeNameLink">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="typeNameLink">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanIterator.html#oDataset">oDataset</a></span> - Variable in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>
+<div class="block">Output dataset</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanIterator.html#oIndex">oIndex</a></span> - Variable in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>
+<div class="block">Index in output dataset</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#ones-org.eclipse.january.dataset.Dataset-int-">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="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#ones-org.eclipse.january.dataset.Dataset-java.lang.Class-"><code>DatasetFactory.ones(Dataset, Class)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#ones-int:A-int-">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="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#ones-java.lang.Class-int...-"><code>DatasetFactory.ones(Class, int...)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#ones-int-int:A-int-">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="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#ones-java.lang.Class-int...-"><code>DatasetFactory.ones(Class, int...)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#ones-java.lang.Class-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#ones-int-java.lang.Class-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#ones-org.eclipse.january.dataset.Dataset-java.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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.html#operate-org.eclipse.january.dataset.UnaryOperation-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.html#operate-org.eclipse.january.dataset.BinaryOperation-java.lang.Object-java.lang.Object-org.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="typeNameLink">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="memberNameLink"><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="typeNameLink">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><a href="org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">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><a href="org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">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><a href="org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">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><a href="org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">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><a href="org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">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><a href="org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">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><a href="org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">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><a href="org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">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><a href="org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">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><a href="org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">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><a href="org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">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 <code>a &gt; b</code> else use a</div>
+</dd>
+<dt><a href="org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">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 <code>a == b</code> else use a</div>
+</dd>
+<dt><a href="org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">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 <code>a &gt; b</code> else use a</div>
+</dd>
+<dt><a href="org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">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 <code>a &gt;= b</code> else use a</div>
+</dd>
+<dt><a href="org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">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 <code>a &lt; b</code> else use a</div>
+</dd>
+<dt><a href="org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">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 <code>a &lt;= b</code> else use a</div>
+</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="typeNameLink">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanIterator.html#oStart">oStart</a></span> - Variable in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/BooleanIterator.html#oStep">oStep</a></span> - Variable in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/LinearAlgebra.html#outerProduct-org.eclipse.january.dataset.Dataset-org.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="typeNameLink">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#outlierValues-org.eclipse.january.dataset.Dataset-double-double-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#outlierValues-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-double-double-int-">outlierValues(Dataset, Dataset, boolean, double, double, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>
+<div class="block">Calculate approximate outlier values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/BooleanIterator.html#outputA">outputA</a></span> - Variable in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#overrideInternal-java.io.Serializable-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#overrideInternal-java.io.Serializable-int...-">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="I:P">
+<!--   -->
+</a>
+<h2 class="title">P</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/LazyDataset.html#padding">padding</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="memberNameLink"><a href="org/eclipse/january/dataset/BroadcastUtils.html#padShape-int:A-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#peakToPeak-int-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int:A-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#peakToPeak-int-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#peakToPeak-int-boolean...-">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><span class="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#peakToPeak-int:A-boolean...-">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="typeNameLink">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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#phaseAsComplexNumber-java.lang.Object-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#phaseAsComplexNumber-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/Random.html#poisson-double-int...-">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="memberNameLink"><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="typeNameLink">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="memberNameLink"><a href="org/eclipse/january/dataset/PositionIterator.html#PositionIterator-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/PositionIterator.html#PositionIterator-int-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/PositionIterator.html#PositionIterator-int:A-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/PositionIterator.html#PositionIterator-int:A-org.eclipse.january.dataset.Slice:A-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/PositionIterator.html#PositionIterator-int:A-int:A-int:A-int:A-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/PositionIterator.html#PositionIterator-org.eclipse.january.dataset.SliceND-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/PositionIterator.html#PositionIterator-int-org.eclipse.january.dataset.SliceND-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/LinearAlgebra.html#power-org.eclipse.january.dataset.Dataset-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#power-java.lang.Object-java.lang.Object-">power(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">power operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#power-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">power(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>
+<div class="block">power operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#product-int-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#product-int-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#product-int:A-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#product-int-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#product-int-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#product-int:A-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/LazyMaths.html#product-org.eclipse.january.dataset.ILazyDataset-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#product-org.eclipse.january.dataset.Dataset-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#product-org.eclipse.january.dataset.Dataset-int-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#product-org.eclipse.january.dataset.Dataset-int:A-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#put-T-org.eclipse.january.dataset.Dataset-java.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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#put-T-int:A-java.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="I:Q">
+<!--   -->
+</a>
+<h2 class="title">Q</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#quantile-org.eclipse.january.dataset.Dataset-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#quantile-org.eclipse.january.dataset.Dataset-double...-">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="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#quantile-org.eclipse.january.dataset.Dataset-int-double...-">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="I:R">
+<!--   -->
+</a>
+<h2 class="title">R</h2>
+<dl>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Random.html#rand-double-double-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/Random.html#randint-int-int-int:A-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Random.html#randn-double-double-int...-">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="typeNameLink">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Random.html#random_integers-int-int-int:A-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#reciprocal-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/ShapeUtils.html#reduceShape-int:A-int...-">reduceShape(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 axes from shape</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/metadata/AxesMetadata.html#refresh-int:A-">refresh(int[])</a></span> - Method in interface org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata">AxesMetadata</a></dt>
+<dd>
+<div class="block">Refresh with given shape</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/metadata/DynamicMetadataUtils.html#refreshDynamicAxesMetadata-java.util.List-int:A-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/InterpolatorUtils.html#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-">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="memberNameLink"><a href="org/eclipse/january/dataset/InterpolatorUtils.html#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-">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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#remainder-java.lang.Object-java.lang.Object-">remainder(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">remainder operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#remainder-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">remainder(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>
+<div class="block">remainder operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Remainder.html#Remainder--">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><span class="memberNameLink"><a href="org/eclipse/january/dataset/InterpolatorUtils.html#remap1D-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/InterpolatorUtils.html#remapAxis-org.eclipse.january.dataset.Dataset-int-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/InterpolatorUtils.html#remapOneAxis-org.eclipse.january.dataset.Dataset-int-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#removeNansAndInfinities-org.eclipse.january.dataset.Dataset-java.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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#repeat-T-int:A-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanBroadcastIterator.html#reset--">reset()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset">BooleanBroadcastIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/BooleanContiguousIterator.html#reset--">reset()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset">BooleanContiguousIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/BooleanNullIterator.html#reset--">reset()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset">BooleanNullIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/SliceIterator.html#reset--">reset()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Reset the Iterator to the first Slice.</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="typeNameLink">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="memberNameLink"><a href="org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata-int:A-int:A-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#residual-java.lang.Object-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDatasetBase.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/ByteDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexDoubleDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexFloatDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><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-boolean-"><code>Dataset.residual(Object o, boolean ignoreNaNs)</code></a> with ignoreNaNs = false</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/DoubleDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/FloatDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/IntegerDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/LongDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDatasetBase.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/ShortDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#residual-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/StringDatasetBase.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#resize-T-int...-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="typeNameLink">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/RGBDataset.html#RGBDataset-short:A-int...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/RGBDataset.html#RGBDataset-int:A-int:A-int:A-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/RGBDataset.html#RGBDataset-short:A-short:A-short:A-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/RGBDataset.html#RGBDataset-byte:A-byte:A-byte:A-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/RGBDataset.html#RGBDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#rightShift-java.lang.Object-java.lang.Object-">rightShift(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">rightShift operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#rightShift-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">rightShift(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>
+<div class="block">rightShift operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#rint-java.lang.Object-">rint(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">rint - round each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#rint-java.lang.Object-org.eclipse.january.dataset.Dataset-">rint(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">rint - round each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#roll-T-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#rollAxis-T-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#rootMeanSquare-int-boolean...-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int:A-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#rootMeanSquare-int-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#rootMeanSquare-int-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#rootMeanSquare-int:A-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#rotate90-T-int-">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="typeNameLink">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="memberNameLink"><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="I:S">
+<!--   -->
+</a>
+<h2 class="title">S</h2>
+<dl>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Random.html#seed-int:A-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#select-org.eclipse.january.dataset.BooleanDataset-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#select-org.eclipse.january.dataset.BooleanDataset:A-java.lang.Object:A-java.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="memberNameLink"><a href="org/eclipse/january/dataset/InterpolatorUtils.html#selectDatasetRegion-org.eclipse.january.dataset.Dataset-int-int-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDatasetBase.html#set-java.lang.Object-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDatasetBase.html#set-java.lang.Object-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDatasetBase.html#set-java.lang.Object-int...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ByteDataset.html#set-java.lang.Object-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/ByteDataset.html#set-java.lang.Object-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/ByteDataset.html#set-java.lang.Object-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexDoubleDataset.html#set-java.lang.Object-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexDoubleDataset.html#set-java.lang.Object-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexDoubleDataset.html#set-java.lang.Object-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexDoubleDataset.html#set-double-double-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexDoubleDataset.html#set-double-double-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexDoubleDataset.html#set-double-double-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexFloatDataset.html#set-java.lang.Object-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexFloatDataset.html#set-java.lang.Object-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexFloatDataset.html#set-java.lang.Object-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexFloatDataset.html#set-float-float-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexFloatDataset.html#set-float-float-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexFloatDataset.html#set-float-float-int...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#set-java.lang.Object-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#set-java.lang.Object-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#set-java.lang.Object-int...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#set-java.lang.Object-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#set-java.lang.Object-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#set-java.lang.Object-int...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#set-java.lang.Object-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#set-java.lang.Object-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#set-java.lang.Object-int...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#set-java.lang.Object-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#set-java.lang.Object-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#set-java.lang.Object-int...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#set-java.lang.Object-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#set-java.lang.Object-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#set-java.lang.Object-int...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#set-java.lang.Object-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#set-java.lang.Object-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#set-java.lang.Object-int...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-int-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DateDatasetImpl.html#set-java.lang.Object-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/DateDatasetImpl.html#set-java.lang.Object-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/DateDatasetImpl.html#set-java.lang.Object-int...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DoubleDataset.html#set-java.lang.Object-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/DoubleDataset.html#set-java.lang.Object-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/DoubleDataset.html#set-java.lang.Object-int...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/FloatDataset.html#set-java.lang.Object-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/FloatDataset.html#set-java.lang.Object-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/FloatDataset.html#set-java.lang.Object-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/IDataset.html#set-java.lang.Object-int...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/IntegerDataset.html#set-java.lang.Object-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/IntegerDataset.html#set-java.lang.Object-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/IntegerDataset.html#set-java.lang.Object-int...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LongDataset.html#set-java.lang.Object-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/LongDataset.html#set-java.lang.Object-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/LongDataset.html#set-java.lang.Object-int...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDatasetBase.html#set-java.lang.Object-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDatasetBase.html#set-java.lang.Object-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDatasetBase.html#set-java.lang.Object-int...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ShortDataset.html#set-java.lang.Object-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/ShortDataset.html#set-java.lang.Object-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/ShortDataset.html#set-java.lang.Object-int...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/StringDatasetBase.html#set-java.lang.Object-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/StringDatasetBase.html#set-java.lang.Object-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/StringDatasetBase.html#set-java.lang.Object-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDatasetBase.html#setAbs-int-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/ByteDataset.html#setAbs-int-byte-">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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexDoubleDataset.html#setAbs-int-org.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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexDoubleDataset.html#setAbs-int-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexFloatDataset.html#setAbs-int-org.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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexFloatDataset.html#setAbs-int-float-float-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#setAbs-int-byte:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#setAbs-int-byte-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#setAbs-int-double:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#setAbs-int-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#setAbs-int-float:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#setAbs-int-float-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#setAbs-int-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#setAbs-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#setAbs-int-long:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#setAbs-int-long-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#setAbs-int-short:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#setAbs-int-short-">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="memberNameLink"><a href="org/eclipse/january/dataset/DateDatasetImpl.html#setAbs-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/DoubleDataset.html#setAbs-int-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/FloatDataset.html#setAbs-int-float-">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="memberNameLink"><a href="org/eclipse/january/dataset/IntegerDataset.html#setAbs-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/LongDataset.html#setAbs-int-long-">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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDatasetBase.html#setAbs-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/ShortDataset.html#setAbs-int-short-">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="memberNameLink"><a href="org/eclipse/january/dataset/StringDatasetBase.html#setAbs-int-java.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="memberNameLink"><a href="org/eclipse/january/metadata/AxesMetadata.html#setAxis-int-org.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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDatasetBase.html#setBy1DIndex-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/ByteDataset.html#setBy1DIndex-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#setBy1DIndex-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#setBy1DIndex-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#setBy1DIndex-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#setBy1DIndex-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#setBy1DIndex-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#setBy1DIndex-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#setBy1DIndex-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#setBy1DIndex-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/DoubleDataset.html#setBy1DIndex-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/FloatDataset.html#setBy1DIndex-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/IntegerDataset.html#setBy1DIndex-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/LongDataset.html#setBy1DIndex-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDatasetBase.html#setBy1DIndex-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/ShortDataset.html#setBy1DIndex-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/StringDatasetBase.html#setBy1DIndex-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDatasetBase.html#setByBoolean-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/ByteDataset.html#setByBoolean-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#setByBoolean-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#setByBoolean-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#setByBoolean-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#setByBoolean-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#setByBoolean-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#setByBoolean-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#setByBoolean-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#setByBoolean-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/DoubleDataset.html#setByBoolean-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/FloatDataset.html#setByBoolean-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/IntegerDataset.html#setByBoolean-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/LongDataset.html#setByBoolean-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDatasetBase.html#setByBoolean-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/ShortDataset.html#setByBoolean-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/StringDatasetBase.html#setByBoolean-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDatasetBase.html#setByIndexes-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/ByteDataset.html#setByIndexes-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#setByIndexes-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#setByIndexes-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#setByIndexes-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#setByIndexes-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#setByIndexes-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#setByIndexes-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#setByIndexes-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#setByIndexes-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/DoubleDataset.html#setByIndexes-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/FloatDataset.html#setByIndexes-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/IntegerDataset.html#setByIndexes-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/LongDataset.html#setByIndexes-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDatasetBase.html#setByIndexes-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/ShortDataset.html#setByIndexes-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/StringDatasetBase.html#setByIndexes-java.lang.Object-java.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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#setDirty--">setDirty()</a></span> - Method in interface org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">This method allows anything that dirties the dataset to clear various metadata values
+ so that the other methods can work correctly.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>
+<div class="block">This method allows anything that dirties the dataset to clear various metadata values
+ so that the other methods can work correctly.</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#setElements-org.eclipse.january.dataset.Dataset-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#setElements-org.eclipse.january.dataset.Dataset-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#setElements-org.eclipse.january.dataset.Dataset-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#setElements-org.eclipse.january.dataset.Dataset-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#setElements-org.eclipse.january.dataset.Dataset-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#setElements-org.eclipse.january.dataset.Dataset-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#setElements-org.eclipse.january.dataset.Dataset-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDatasetBase.html#setItem-boolean-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDatasetBase.html#setItem-boolean-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDatasetBase.html#setItem-boolean-int...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ByteDataset.html#setItem-byte-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/ByteDataset.html#setItem-byte-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/ByteDataset.html#setItem-byte-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#setItem-byte:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#setItem-byte:A-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#setItem-byte:A-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#setItem-byte:A-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#setItem-double:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#setItem-double:A-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#setItem-double:A-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#setItem-double:A-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#setItem-float:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#setItem-float:A-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#setItem-float:A-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#setItem-float:A-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#setItem-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#setItem-int:A-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#setItem-int:A-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#setItem-int:A-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#setItem-long:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#setItem-long:A-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#setItem-long:A-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#setItem-long:A-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#setItem-short:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#setItem-short:A-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#setItem-short:A-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#setItem-short:A-int...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DateDatasetImpl.html#setItem-java.util.Date-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/DateDatasetImpl.html#setItem-java.util.Date-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/DateDatasetImpl.html#setItem-java.util.Date-int...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DoubleDataset.html#setItem-double-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/DoubleDataset.html#setItem-double-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/DoubleDataset.html#setItem-double-int...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/FloatDataset.html#setItem-float-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/FloatDataset.html#setItem-float-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/FloatDataset.html#setItem-float-int...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/IntegerDataset.html#setItem-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/IntegerDataset.html#setItem-int-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/IntegerDataset.html#setItem-int-int...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LongDataset.html#setItem-long-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/LongDataset.html#setItem-long-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/LongDataset.html#setItem-long-int...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDatasetBase.html#setItem-java.lang.Object-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDatasetBase.html#setItem-java.lang.Object-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDatasetBase.html#setItem-java.lang.Object-int...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ShortDataset.html#setItem-short-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/ShortDataset.html#setItem-short-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/ShortDataset.html#setItem-short-int...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/StringDatasetBase.html#setItem-java.lang.String-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/StringDatasetBase.html#setItem-java.lang.String-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/StringDatasetBase.html#setItem-java.lang.String-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDatasetBase.html#setItemDirect-int-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/ByteDataset.html#setItemDirect-int-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#setItemDirect-int-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#setItemDirect-int-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#setItemDirect-int-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#setItemDirect-int-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#setItemDirect-int-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#setItemDirect-int-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/DateDatasetImpl.html#setItemDirect-int-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/DoubleDataset.html#setItemDirect-int-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/FloatDataset.html#setItemDirect-int-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/IntegerDataset.html#setItemDirect-int-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/LongDataset.html#setItemDirect-int-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDatasetBase.html#setItemDirect-int-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/ShortDataset.html#setItemDirect-int-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/StringDatasetBase.html#setItemDirect-int-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDatasetBase.html#setItemsOnAxes-int:A-boolean:A-java.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="memberNameLink"><a href="org/eclipse/january/dataset/ByteDataset.html#setItemsOnAxes-int:A-boolean:A-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#setItemsOnAxes-int:A-boolean:A-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#setItemsOnAxes-int:A-boolean:A-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#setItemsOnAxes-int:A-boolean:A-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#setItemsOnAxes-int:A-boolean:A-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#setItemsOnAxes-int:A-boolean:A-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#setItemsOnAxes-int:A-boolean:A-java.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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#setItemsOnAxes-int:A-boolean:A-java.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="memberNameLink"><a href="org/eclipse/january/dataset/DoubleDataset.html#setItemsOnAxes-int:A-boolean:A-java.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="memberNameLink"><a href="org/eclipse/january/dataset/FloatDataset.html#setItemsOnAxes-int:A-boolean:A-java.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="memberNameLink"><a href="org/eclipse/january/dataset/IntegerDataset.html#setItemsOnAxes-int:A-boolean:A-java.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="memberNameLink"><a href="org/eclipse/january/dataset/LongDataset.html#setItemsOnAxes-int:A-boolean:A-java.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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDatasetBase.html#setItemsOnAxes-int:A-boolean:A-java.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="memberNameLink"><a href="org/eclipse/january/dataset/ShortDataset.html#setItemsOnAxes-int:A-boolean:A-java.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="memberNameLink"><a href="org/eclipse/january/dataset/StringDatasetBase.html#setItemsOnAxes-int:A-boolean:A-java.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="memberNameLink"><a href="org/eclipse/january/dataset/Slice.html#setLength-int-">setLength(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Sets the maximal dimensions length of the Slice.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/metadata/StatisticsMetadata.html#setMaximumMinimum-T-T-boolean...-">setMaximumMinimum(T, T, boolean...)</a></span> - Method in interface org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/metadata/StatisticsMetadata.html#setMaximumMinimumSum-T-T-T-boolean...-">setMaximumMinimumSum(T, T, T, boolean...)</a></span> - Method in interface org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/metadata/StatisticsMetadata.html#setMaximumPositions-java.util.List-boolean...-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/metadata/StatisticsMetadata.html#setMinimumPositions-java.util.List-boolean...-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDatasetBase.html#setObjectAbs-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/ByteDataset.html#setObjectAbs-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexDoubleDataset.html#setObjectAbs-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexFloatDataset.html#setObjectAbs-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#setObjectAbs-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#setObjectAbs-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#setObjectAbs-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#setObjectAbs-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#setObjectAbs-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#setObjectAbs-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#setObjectAbs-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/DoubleDataset.html#setObjectAbs-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/FloatDataset.html#setObjectAbs-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/IntegerDataset.html#setObjectAbs-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/LongDataset.html#setObjectAbs-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDatasetBase.html#setObjectAbs-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/ShortDataset.html#setObjectAbs-int-java.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="memberNameLink"><a href="org/eclipse/january/dataset/StringDatasetBase.html#setObjectAbs-int-java.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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Slice.html#setPosition-int-">setPosition(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Move the start and end to an other index keeping the same step and the
+ same gap between the two values</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DataEvent.html#setShape-int:A-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#setShapeToOriginalRank-org.eclipse.january.dataset.ILazyDataset-int:A-int...-">setShapeToOriginalRank(ILazyDataset, 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">Set shape to keep original rank</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/BooleanDatasetBase.html#setSlice-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/ByteDataset.html#setSlice-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexDoubleDataset.html#setSlice-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/ComplexFloatDataset.html#setSlice-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundByteDataset.html#setSlice-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#setSlice-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#setSlice-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html#setSlice-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundFloatDataset.html#setSlice-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html#setSlice-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundLongDataset.html#setSlice-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundShortDataset.html#setSlice-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/DoubleDataset.html#setSlice-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/FloatDataset.html#setSlice-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-int:A-int:A-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/IntegerDataset.html#setSlice-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice-org.eclipse.january.dataset.IDataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-int:A-int:A-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/LongDataset.html#setSlice-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/ObjectDatasetBase.html#setSlice-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/ShortDataset.html#setSlice-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/dataset/SliceND.html#setSlice-int-java.lang.Integer-java.lang.Integer-int-">setSlice(int, Integer, Integer, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Set slice for given dimension, if the start is <code>null</code> it will be
+ set to 0, stop is by default equal to the entire size of the set.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/SliceND.html#setSlice-int-int-int-int-">setSlice(int, int, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Set slice for given dimension, if the start is <code>null</code> it will be
+ set to 0, stop is by default equal to the entire size of the set.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/SliceND.html#setSlice-int-org.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="memberNameLink"><a href="org/eclipse/january/dataset/StringDatasetBase.html#setSlice-java.lang.Object-org.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="memberNameLink"><a href="org/eclipse/january/io/ILazySaver.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.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="memberNameLink"><a href="org/eclipse/january/io/ILazyAsyncSaver.html#setSliceAsync-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.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-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-"><code>ILazySaver.setSlice(IMonitor, IDataset, SliceND)</code></a></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/ILazyWriteableDataset.html#setSliceSync-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/LazyWriteableDataset.html#setSliceSync-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/Slice.html#setStart-java.lang.Integer-">setStart(Integer)</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Set the starting index of the slice.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/SliceIterator.html#setStart-int...-">setStart(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Set the starts indexes to new positions, <code>if null</code> the start index
+ is set by default to 0</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Slice.html#setStep-int-">setStep(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Set the step size inside of the Slice.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Slice.html#setStop-java.lang.Integer-">setStop(Integer)</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Set the stopping index of the slice.</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/metadata/PeemMetadata.html#setXYMotorPosition-double:A-">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="memberNameLink"><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="typeNameLink">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="memberNameLink"><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="typeNameLink">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="typeNameLink">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><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#signum-java.lang.Object-">signum(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">signum - sign of each element</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#signum-java.lang.Object-org.eclipse.january.dataset.Dataset-">signum(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">signum - sign of each element</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#sin-java.lang.Object-">sin(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">sin - evaluate the sine function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#sin-java.lang.Object-org.eclipse.january.dataset.Dataset-">sin(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">sin - evaluate the sine function on each element of the dataset</div>
+</dd>
+<dt><a href="org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">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="memberNameLink"><a href="org/eclipse/january/dataset/SingleInputBroadcastIterator.html#SingleInputBroadcastIterator-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/SingleInputBroadcastIterator.html#SingleInputBroadcastIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/SingleInputBroadcastIterator.html#SingleInputBroadcastIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-boolean-boolean-">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="typeNameLink">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="memberNameLink"><a href="org/eclipse/january/dataset/SingleItemIterator.html#SingleItemIterator-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#sinh-java.lang.Object-">sinh(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">sinh - evaluate the hyperbolic sine function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#sinh-java.lang.Object-org.eclipse.january.dataset.Dataset-">sinh(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">sinh - evaluate the hyperbolic sine function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#skewness-org.eclipse.january.dataset.Dataset-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#skewness-org.eclipse.january.dataset.Dataset-int-boolean...-">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="typeNameLink">Slice</span></a> - Class in <a href="org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">The <code>Slice</code> class represents the set of indices (start, stop, step), that are used to extract specifics subsets of <a href="org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><code>Dataset</code></a>.<br><br>
+ The start argument default to 0, stop argument default to the stop argument default to the end of the dimension that the slice is applied to, and the default argument for the step is 1.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Slice.html#Slice--">Slice()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Constructs a Slice object with the start and the stop value representing
+ the entirety of the sliced dimension of the Dataset.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Slice.html#Slice-java.lang.Integer-">Slice(Integer)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Constructs a Slice object with, by default the start set to 0 and with a
+ step of 1.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Slice.html#Slice-java.lang.Integer-java.lang.Integer-">Slice(Integer, Integer)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Constructs a Slice object with, by default a step of 1.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Slice.html#Slice-java.lang.Integer-java.lang.Integer-java.lang.Integer-">Slice(Integer, Integer, Integer)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Constructs a Slice object on which it is possible to chooe the start, the
+ stop and the step.</div>
+</dd>
+<dt><a href="org/eclipse/january/metadata/Sliceable.html" title="annotation in org.eclipse.january.metadata"><span class="typeNameLink">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="memberNameLink"><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="typeNameLink">SliceIterator</span></a> - Class in <a href="org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">The <code>SliceIterator</code> class is use to run over a Slice of a Dataset.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/SliceIterator.html#SliceIterator-int:A-int-int:A-">SliceIterator(int[], int, int[])</a></span> - Constructor for class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/SliceIterator.html#SliceIterator-int:A-int-int:A-int:A-">SliceIterator(int[], int, int[], int[])</a></span> - Constructor for class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/SliceIterator.html#SliceIterator-int:A-int-int:A-int-">SliceIterator(int[], int, int[], int)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/SliceIterator.html#SliceIterator-int:A-int-int:A-int:A-int-">SliceIterator(int[], int, int[], int[], int)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/SliceIterator.html#SliceIterator-int:A-int-int:A-int:A-int:A-">SliceIterator(int[], int, int[], int[], int[])</a></span> - Constructor for class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/SliceIterator.html#SliceIterator-int:A-int-org.eclipse.january.dataset.SliceND-">SliceIterator(int[], int, SliceND)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/SliceIterator.html#SliceIterator-int:A-int-int-org.eclipse.january.dataset.SliceND-">SliceIterator(int[], int, int, SliceND)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/SliceIterator.html#SliceIterator-int:A-int-int:A-int:A-int:A-int-">SliceIterator(int[], int, int[], int[], int[], int)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.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="typeNameLink">SliceND</span></a> - Class in <a href="org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">The <code>SliceND</code> class represents a slice through all dimensions of a multi-dimensional <a href="org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><code>Dataset</code></a>.<br><br>
+ A slice comprises a starting position array, a stopping position array (not included) and a stepping size array.<br>
+ If a maximum shape is specified, slicing past the original shape is supported for positive
+ steps otherwise it is ignored.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/SliceND.html#SliceND-int:A-">SliceND(int[])</a></span> - Constructor for class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Construct a nD Slice for whole of shape.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/SliceND.html#SliceND-int:A-org.eclipse.january.dataset.Slice...-">SliceND(int[], Slice...)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Construct a nD Slice from an array of 1D slices.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/SliceND.html#SliceND-int:A-int:A-org.eclipse.january.dataset.Slice...-">SliceND(int[], int[], Slice...)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Construct a nD Slice from an array of 1D slices, if the maxShape is
+ <code>null</code>, it will be set to the maximum shape of the nD Slice.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/SliceND.html#SliceND-int:A-int:A-int:A-int:A-">SliceND(int[], int[], int[], int[])</a></span> - Constructor for class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Construct a nD Slice from parameters, if the maxShape is <code>null</code>, it
+ will be set to the maximum shape of the nD Slice, the start will be set
+ to 0, stop is by default equal to the entire size of the set, step is
+ defaultly set to 1.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/SliceND.html#SliceND-int:A-int:A-int:A-int:A-int:A-">SliceND(int[], int[], int[], int[], int[])</a></span> - Constructor for class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Construct a nD Slice from parameters, if the maxShape is <code>null</code>, it
+ will be set to the maximum shape of the nD Slice, the start will be set
+ to 0, stop is by default equal to the entire size of the set, step is
+ defaultly set to 1.</div>
+</dd>
+<dt><a href="org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">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="memberNameLink"><a href="org/eclipse/january/dataset/SliceNDIterator.html#SliceNDIterator-org.eclipse.january.dataset.SliceND-int...-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LinearAlgebra.html#solve-org.eclipse.january.dataset.Dataset-org.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 <code>A x = v</code></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/LinearAlgebra.html#solveSVD-org.eclipse.january.dataset.Dataset-org.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 <code>A x = v</code> by SVD</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#sort-T-java.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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#sort-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#split-org.eclipse.january.dataset.Dataset-int-int-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#split-org.eclipse.january.dataset.Dataset-int:A-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#sqrt-java.lang.Object-">sqrt(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">sqrt - evaluate the square root function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#sqrt-java.lang.Object-org.eclipse.january.dataset.Dataset-">sqrt(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">sqrt - evaluate the square root function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#square-java.lang.Object-">square(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">square - square each element</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#square-java.lang.Object-org.eclipse.january.dataset.Dataset-">square(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">square - square each element</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/ShapeUtils.html#squeezeShape-int:A-boolean-">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="memberNameLink"><a href="org/eclipse/january/dataset/ShapeUtils.html#squeezeShape-int:A-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/LazyDataset.html#sShape">sShape</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="memberNameLink"><a href="org/eclipse/january/dataset/IDynamicShape.html#startUpdateChecker-int-org.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="memberNameLink"><a href="org/eclipse/january/dataset/LazyDynamicDataset.html#startUpdateChecker-int-org.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="typeNameLink">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="typeNameLink">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#stdDeviation-int-boolean-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-boolean-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-boolean-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-boolean-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#stdDeviation-int-boolean-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#stdDeviation-boolean-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#stdDeviation-int-boolean-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-boolean-boolean...-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="typeNameLink">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="memberNameLink"><a href="org/eclipse/january/dataset/StrideIterator.html#StrideIterator-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/StrideIterator.html#StrideIterator-int-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/StrideIterator.html#StrideIterator-int:A-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/StrideIterator.html#StrideIterator-int:A-int:A-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/StrideIterator.html#StrideIterator-int-int:A-int:A-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/StrideIterator.html#StrideIterator-int-int:A-int:A-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/StrideIterator.html#StrideIterator-int-int:A-int:A-int:A-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/StrideIterator.html#StrideIterator-int-int:A-int:A-int-int:A-int:A-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/StrideIterator.html#StrideIterator-int-int:A-int:A-int-org.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="memberNameLink"><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="typeNameLink">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="typeNameLink">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BinaryOperation.Stub.html#Stub--">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="memberNameLink"><a href="org/eclipse/january/dataset/UnaryOperation.Stub.html#Stub--">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="memberNameLink"><a href="org/eclipse/january/IMonitor.Stub.html#Stub--">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#subtract-java.lang.Object-java.lang.Object-">subtract(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">subtract operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#subtract-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">subtract(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>
+<div class="block">subtract operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Subtraction.html#Subtraction--">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><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#sum-int-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#sum-int-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#sum-int:A-boolean...-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#sum-int-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#sum-int-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#sum-int:A-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/LazyMaths.html#sum-org.eclipse.january.dataset.ILazyDataset-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/LazyMaths.html#sum-org.eclipse.january.dataset.ILazyDataset-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/LazyMaths.html#sum-org.eclipse.january.dataset.ILazyDataset-boolean-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#sum-org.eclipse.january.dataset.Dataset-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#swapAxes-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#swapAxes-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#swapAxes-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#swapAxes-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#swapAxes-org.eclipse.january.dataset.IDataset-int-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="I:T">
+<!--   -->
+</a>
+<h2 class="title">T</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#take-T-org.eclipse.january.dataset.Dataset-java.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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#take-T-int:A-java.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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#tan-java.lang.Object-">tan(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">tan - evaluate the tangent function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#tan-java.lang.Object-org.eclipse.january.dataset.Dataset-">tan(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">tan - evaluate the tangent function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#tanh-java.lang.Object-">tanh(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">tanh - evaluate the tangent hyperbolic function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#tanh-java.lang.Object-org.eclipse.january.dataset.Dataset-">tanh(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">tanh - evaluate the tangent hyperbolic function on each element of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/LinearAlgebra.html#tensorDotProduct-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-int-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/LinearAlgebra.html#tensorDotProduct-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-int:A-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#tile-org.eclipse.january.dataset.IDataset-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/InterfaceUtils.html#toBiggestNumber-java.lang.Class-java.lang.Number-">toBiggestNumber(Class&lt;? extends Dataset&gt;, Number)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset">InterfaceUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DTypeUtils.html#toByteArray-java.lang.Object-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#toDegrees-java.lang.Object-">toDegrees(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">toDegrees - convert to degrees</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#toDegrees-java.lang.Object-org.eclipse.january.dataset.Dataset-">toDegrees(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">toDegrees - convert to degrees</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DTypeUtils.html#toDoubleArray-java.lang.Object-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/DTypeUtils.html#toFloatArray-java.lang.Object-int-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DTypeUtils.html#toIntegerArray-java.lang.Object-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/DTypeUtils.html#toLong-double-">toLong(double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DTypeUtils.html#toLong-float-">toLong(float)</a></span> - Static method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#toLong-double-">toLong(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>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DTypeUtils.html#toLongArray-java.lang.Object-int-">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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#toRadians-java.lang.Object-">toRadians(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">toRadians - convert to radians</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#toRadians-java.lang.Object-org.eclipse.january.dataset.Dataset-">toRadians(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">toRadians - convert to radians</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DTypeUtils.html#toShortArray-java.lang.Object-int-">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/BinaryOperation.Stub.html#toString-java.lang.String-java.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="memberNameLink"><a href="org/eclipse/january/dataset/BinaryOperation.html#toString-java.lang.String-java.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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Addition.html#toString-java.lang.String-java.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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Division.html#toString-java.lang.String-java.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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Exponentiation.html#toString-java.lang.String-java.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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Maximum.html#toString-java.lang.String-java.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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Minimum.html#toString-java.lang.String-java.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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Multiplication.html#toString-java.lang.String-java.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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Remainder.html#toString-java.lang.String-java.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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.Subtraction.html#toString-java.lang.String-java.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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseBase.html#toString-java.lang.String-java.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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Slice.html#toString--">toString()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Returns a string construction of the slice with the python form.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/SliceND.html#toString--">toString()</a></span> - Method in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Returns a string construction of the sliceND with the python form.</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/LinearAlgebra.html#trace-org.eclipse.january.dataset.Dataset-int-int-int-">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><a href="org/eclipse/january/metadata/Transposable.html" title="annotation in org.eclipse.january.metadata"><span class="typeNameLink">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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#transpose-org.eclipse.january.dataset.IDataset-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#truncate-java.lang.Object-">truncate(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">truncate - truncate each element to integers of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#truncate-java.lang.Object-org.eclipse.january.dataset.Dataset-">truncate(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">truncate - truncate each element to integers of the dataset</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-boolean...-">typedProduct(Class&lt;? extends Dataset&gt;, 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="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#typedProduct-org.eclipse.january.dataset.Dataset-int-boolean...-">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>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based method <a href="org/eclipse/january/dataset/Stats.html#typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-boolean...-"><code>Stats.typedProduct(Class, Dataset, boolean...)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-int-boolean...-">typedProduct(Class&lt;T&gt;, 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="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-int:A-boolean...-">typedProduct(Class&lt;T&gt;, 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="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#typedProduct-org.eclipse.january.dataset.Dataset-int-int-boolean...-">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>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based method <a href="org/eclipse/january/dataset/Stats.html#typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-int-boolean...-"><code>Stats.typedProduct(Class, Dataset, int, boolean...)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#typedProduct-org.eclipse.january.dataset.Dataset-int-int:A-boolean...-">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>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based method <a href="org/eclipse/january/dataset/Stats.html#typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-int:A-boolean...-"><code>Stats.typedProduct(Class, Dataset, int[], boolean...)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#typedSum-java.lang.Class-org.eclipse.january.dataset.Dataset-boolean...-">typedSum(Class&lt;? extends Dataset&gt;, 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="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#typedSum-org.eclipse.january.dataset.Dataset-int-boolean...-">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>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based method <a href="org/eclipse/january/dataset/Stats.html#typedSum-java.lang.Class-org.eclipse.january.dataset.Dataset-boolean...-"><code>Stats.typedSum(Class, Dataset, boolean...)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#typedSum-java.lang.Class-org.eclipse.january.dataset.Dataset-int-boolean...-">typedSum(Class&lt;T&gt;, 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="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#typedSum-java.lang.Class-org.eclipse.january.dataset.Dataset-int:A-boolean...-">typedSum(Class&lt;T&gt;, 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="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#typedSum-org.eclipse.january.dataset.Dataset-int-int-boolean...-">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>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based method <code>#typedSum(Class, Dataset, axis, boolean...)</code></span></div>
+</div>
+</dd>
+</dl>
+<a name="I: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="typeNameLink">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="typeNameLink">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:A-double-double-"><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><a href="org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">UnitMetadata</span></a> - Interface in <a href="org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></dt>
+<dd>
+<div class="block">This metadata describes the unit associated with the quantity stored in a dataset</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#unsignedRightShift-java.lang.Object-java.lang.Object-">unsignedRightShift(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">unsignedRightShift operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#unsignedRightShift-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">unsignedRightShift(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>
+<div class="block">unsignedRightShift operator</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#unwrap-org.eclipse.january.dataset.Dataset-java.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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#unwrap-org.eclipse.january.dataset.Dataset-java.lang.Object-java.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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#unwrap-org.eclipse.january.dataset.Dataset-java.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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetUtils.html#unwrapUnsigned-org.eclipse.january.dataset.Dataset-int-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#upperClip-java.lang.Object-java.lang.Object-">upperClip(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">upperClip - clip elements to upper limit</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Maths.html#upperClip-java.lang.Object-org.eclipse.january.dataset.Dataset-java.lang.Object-">upperClip(Object, 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">upperClip - clip elements to upper limit</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfEqualTo.html#UseIfEqualTo-boolean-long-double-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfEqualTo.html#UseIfEqualTo-java.lang.Number-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfEqualTo.html#UseIfEqualTo-org.apache.commons.math3.complex.Complex-">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><span class="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#UseIfGreaterThan-boolean-long-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#UseIfGreaterThan-java.lang.Number-">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><span class="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#UseIfGreaterThanOrEqualTo-boolean-long-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#UseIfGreaterThanOrEqualTo-java.lang.Number-">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><span class="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfLessThan.html#UseIfLessThan-boolean-long-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfLessThan.html#UseIfLessThan-java.lang.Number-">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><span class="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#UseIfLessThanOrEqualTo-boolean-long-double-">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="memberNameLink"><a href="org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#UseIfLessThanOrEqualTo-java.lang.Number-">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><span class="memberNameLink"><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="I:V">
+<!--   -->
+</a>
+<h2 class="title">V</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/BooleanIterator.html#value">value</a></span> - Variable in class org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#variance-boolean-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html#variance-int-boolean-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#variance-boolean-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#variance-int-boolean-boolean...-">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="memberNameLink"><a href="org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-boolean-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/CompoundDataset.html#variance-int-boolean-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#variance-boolean-boolean...-">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="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#variance-int:A-">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="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#variance-int-boolean-boolean...-">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>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Dataset.html#variance-int:A-boolean-boolean...-">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="I:W">
+<!--   -->
+</a>
+<h2 class="title">W</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/Stats.html#weightedResidual-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.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="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#withinRange-java.lang.Object-java.lang.Number-java.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="memberNameLink"><a href="org/eclipse/january/dataset/Comparisons.html#withinRange-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-java.lang.Number-java.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="memberNameLink"><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="memberNameLink"><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="I:Z">
+<!--   -->
+</a>
+<h2 class="title">Z</h2>
+<dl>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#zeros-int:A-int-">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="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#zeros-java.lang.Class-int...-"><code>DatasetFactory.zeros(Class, int...)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#zeros-int-int:A-int-">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="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#zeros-int-java.lang.Class-int...-"><code>DatasetFactory.zeros(int, Class, int...)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#zeros-org.eclipse.january.dataset.Dataset-int-">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="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#zeros-org.eclipse.january.dataset.Dataset-java.lang.Class-"><code>DatasetFactory.zeros(Dataset, Class)</code></a></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#zeros-java.lang.Class-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#zeros-int-java.lang.Class-int...-">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="memberNameLink"><a href="org/eclipse/january/dataset/DatasetFactory.html#zeros-org.eclipse.january.dataset.Dataset-java.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="#I:A">A</a>&nbsp;<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:K">K</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:Q">Q</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;<a href="#I:Z">Z</a>&nbsp;</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/index.html b/apidocs/2.3.0/index.html
new file mode 100644
index 0000000..c73d0fb
--- /dev/null
+++ b/apidocs/2.3.0/index.html
@@ -0,0 +1,76 @@
+<!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 (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>The Eclipse January API Documentation</title>
+<script type="text/javascript">
+    tmpTargetPage = "" + window.location.search;
+    if (tmpTargetPage != "" && tmpTargetPage != "undefined")
+        tmpTargetPage = tmpTargetPage.substring(1);
+    if (tmpTargetPage.indexOf(":") != -1 || (tmpTargetPage != "" && !validURL(tmpTargetPage)))
+        tmpTargetPage = "undefined";
+    targetPage = tmpTargetPage;
+    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.3.0/javadoc.sh b/apidocs/2.3.0/javadoc.sh
new file mode 100755
index 0000000..e36ba39
--- /dev/null
+++ b/apidocs/2.3.0/javadoc.sh
@@ -0,0 +1 @@
+/scratch/java/jdk8u222-b10/jre/../bin/javadoc @options @packages
\ No newline at end of file
diff --git a/apidocs/2.3.0/options b/apidocs/2.3.0/options
new file mode 100644
index 0000000..689cfe6
--- /dev/null
+++ b/apidocs/2.3.0/options
@@ -0,0 +1,25 @@
+-classpath
+'/scratch/m2/repository/org/apache/commons/commons-math3/3.5/commons-math3-3.5.jar:/scratch/m2/repository/p2/osgi/bundle/org.slf4j.api/1.7.10.v20170428-1633/org.slf4j.api-1.7.10.v20170428-1633.jar:/scratch/m2/repository/org/slf4j/slf4j-api/1.7.10/slf4j-api-1.7.10.jar:/scratch/m2/repository/p2/osgi/bundle/javax.measure.unit-api/1.0.0.v20170818-1538/javax.measure.unit-api-1.0.0.v20170818-1538.jar:/scratch/m2/repository/javax/measure/unit-api/1.0/unit-api-1.0.jar:/scratch/m2/repository/p2/osgi/bundle/org.apache.commons.math3/3.5.0.v20160301-1110/org.apache.commons.math3-3.5.0.v20160301-1110.jar'
+-encoding
+'UTF-8'
+-protected
+-sourcepath
+'/scratch/work/january-release.git/org.eclipse.january/src'
+-author
+-bottom
+'Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.'
+-charset
+'UTF-8'
+-d
+'/scratch/work/january-release.git/org.eclipse.january/target/site/apidocs'
+-docencoding
+'UTF-8'
+-doctitle
+'org.eclipse.january 2.3.0 API.'
+-linkoffline
+'https://docs.oracle.com/javase/8/docs/api' '/scratch/work/january-release.git/org.eclipse.january/target/javadoc-bundle-options'
+-linksource
+-use
+-version
+-windowtitle
+'The Eclipse January API Documentation'
\ No newline at end of file
diff --git a/apidocs/2.3.0/org/eclipse/january/DatasetException.html b/apidocs/2.3.0/org/eclipse/january/DatasetException.html
new file mode 100644
index 0000000..dabe712
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/DatasetException.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 (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DatasetException (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DatasetException (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-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&nbsp;Class</li>
+<li><a href="../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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/8/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/8/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/8/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="seeLabel">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="memberSummary" 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><span class="memberNameLink"><a href="../../../org/eclipse/january/DatasetException.html#DatasetException--">DatasetException</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/eclipse/january/DatasetException.html#DatasetException-java.lang.String-">DatasetException</a></span>(<a href="https://docs.oracle.com/javase/8/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><span class="memberNameLink"><a href="../../../org/eclipse/january/DatasetException.html#DatasetException-java.lang.String-java.lang.Throwable-">DatasetException</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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><span class="memberNameLink"><a href="../../../org/eclipse/january/DatasetException.html#DatasetException-java.lang.Throwable-">DatasetException</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="seeLabel">See Also:</span></dt>
+<dd><a href="https://docs.oracle.com/javase/8/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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - </dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="https://docs.oracle.com/javase/8/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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - </dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="https://docs.oracle.com/javase/8/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/8/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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - </dd>
+<dd><code>cause</code> - </dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true#Exception-java.lang.String-java.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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-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&nbsp;Class</li>
+<li><a href="../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.java.lang.Throwable">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/IMonitor.Stub.html b/apidocs/2.3.0/org/eclipse/january/IMonitor.Stub.html
new file mode 100644
index 0000000..8199447
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/IMonitor.Stub.html
@@ -0,0 +1,341 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IMonitor.Stub (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="IMonitor.Stub (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../org/eclipse/january/IMonitor.Stub.html#Stub--">Stub</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/eclipse/january/IMonitor.Stub.html#isCancelled--">isCancelled</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/eclipse/january/IMonitor.Stub.html#subTask-java.lang.String-">subTask</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/eclipse/january/IMonitor.Stub.html#worked-int-">worked</a></span>(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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="Stub--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Stub</h4>
+<pre>public&nbsp;<a href="../../../src-html/org/eclipse/january/IMonitor.Stub.html#line.37">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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;taskName)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../org/eclipse/january/IMonitor.html#subTask-java.lang.String-">IMonitor</a></code></span></div>
+<div class="block">Starts a subtask.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/IMonitor.html b/apidocs/2.3.0/org/eclipse/january/IMonitor.html
new file mode 100644
index 0000000..78f9ea4
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/IMonitor.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 (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IMonitor (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="IMonitor (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/eclipse/january/IMonitor.Stub.html" title="class in org.eclipse.january"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_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="memberSummary" 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><span class="memberNameLink"><a href="../../../org/eclipse/january/IMonitor.Stub.html" title="class in org.eclipse.january">IMonitor.Stub</a></span></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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/eclipse/january/IMonitor.html#isCancelled--">isCancelled</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/eclipse/january/IMonitor.html#subTask-java.lang.String-">subTask</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/eclipse/january/IMonitor.html#worked-int-">worked</a></span>(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="paramLabel">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="returnLabel">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/8/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="paramLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/eclipse/january/IMonitor.Stub.html" title="class in org.eclipse.january"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/INameable.html b/apidocs/2.3.0/org/eclipse/january/INameable.html
new file mode 100644
index 0000000..56b1e1b
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/INameable.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 (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>INameable (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="INameable (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/eclipse/january/INameable.html#getName--">getName</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/eclipse/january/INameable.html#setName-java.lang.String-">setName</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/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="returnLabel">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/8/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="paramLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/MetadataException.html b/apidocs/2.3.0/org/eclipse/january/MetadataException.html
new file mode 100644
index 0000000..87760a2
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/MetadataException.html
@@ -0,0 +1,331 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>MetadataException (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MetadataException (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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/8/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/8/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="seeLabel">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="memberSummary" 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><span class="memberNameLink"><a href="../../../org/eclipse/january/MetadataException.html#MetadataException--">MetadataException</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/eclipse/january/MetadataException.html#MetadataException-java.lang.String-">MetadataException</a></span>(<a href="https://docs.oracle.com/javase/8/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><span class="memberNameLink"><a href="../../../org/eclipse/january/MetadataException.html#MetadataException-java.lang.String-java.lang.Throwable-">MetadataException</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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><span class="memberNameLink"><a href="../../../org/eclipse/january/MetadataException.html#MetadataException-java.lang.Throwable-">MetadataException</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="seeLabel">See Also:</span></dt>
+<dd><a href="https://docs.oracle.com/javase/8/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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - </dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="https://docs.oracle.com/javase/8/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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - </dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="https://docs.oracle.com/javase/8/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/8/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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - </dd>
+<dd><code>cause</code> - </dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true#Exception-java.lang.String-java.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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.java.lang.Throwable">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/class-use/DatasetException.html b/apidocs/2.3.0/org/eclipse/january/class-use/DatasetException.html
new file mode 100644
index 0000000..6a13c16
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/class-use/DatasetException.html
@@ -0,0 +1,417 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.DatasetException (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">MetadataException</a></span></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 class="useSummary" 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/8/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="typeNameLabel">IDatasetConnector.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html#connect--">connect</a></span>()</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/8/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="typeNameLabel">IDatasetConnector.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html#connect-long-java.util.concurrent.TimeUnit-">connect</a></span>(long&nbsp;time,
+       <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">IDatasetConnector.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html#disconnect--">disconnect</a></span>()</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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a></span>(<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="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a></span>(<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="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a></span>(<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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-int:A-int:A-int:A-">getSlice</a></span>(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="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-int:A-int:A-int:A-">getSlice</a></span>(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="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice-int:A-int:A-int:A-">getSlice</a></span>(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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">LazyMaths.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#max-org.eclipse.january.dataset.ILazyDataset-int...-">max</a></span>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+   int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LazyMaths.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#mean-org.eclipse.january.dataset.ILazyDataset-int...-">mean</a></span>(<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="typeNameLabel">LazyMaths.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#mean-int-int-org.eclipse.january.dataset.ILazyDataset-int...-">mean</a></span>(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="typeNameLabel">LazyMaths.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#min-org.eclipse.january.dataset.ILazyDataset-int...-">min</a></span>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+   int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LazyMaths.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#product-org.eclipse.january.dataset.ILazyDataset-int-">product</a></span>(<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="typeNameLabel">LazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSlice</a></span>(<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="typeNameLabel">ILazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-int:A-int:A-int:A-">setSlice</a></span>(<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="typeNameLabel">LazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-int:A-int:A-int:A-">setSlice</a></span>(<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="typeNameLabel">ILazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSlice</a></span>(<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="typeNameLabel">LazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSlice</a></span>(<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="typeNameLabel">ILazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSliceSync-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSliceSync</a></span>(<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"><span class="typeNameLabel">LazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSliceSync-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSliceSync</a></span>(<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>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#sliceAndConvertLazyDataset-org.eclipse.january.dataset.ILazyDataset-">sliceAndConvertLazyDataset</a></span>(<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="typeNameLabel">LazyMaths.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#sum-org.eclipse.january.dataset.ILazyDataset-boolean-int...-">sum</a></span>(<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="typeNameLabel">LazyMaths.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#sum-org.eclipse.january.dataset.ILazyDataset-int...-">sum</a></span>(<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="typeNameLabel">LazyMaths.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#sum-org.eclipse.january.dataset.ILazyDataset-int-">sum</a></span>(<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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/class-use/IMonitor.Stub.html b/apidocs/2.3.0/org/eclipse/january/class-use/IMonitor.Stub.html
new file mode 100644
index 0000000..8b12733
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/class-use/IMonitor.Stub.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.IMonitor.Stub (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/class-use/IMonitor.html b/apidocs/2.3.0/org/eclipse/january/class-use/IMonitor.html
new file mode 100644
index 0000000..380012e
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/class-use/IMonitor.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 (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.IMonitor (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/IMonitor.Stub.html" title="class in org.eclipse.january">IMonitor.Stub</a></span></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 class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a></span>(<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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a></span>(<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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a></span>(<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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a></span>(<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/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a></span>(<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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a></span>(<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="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a></span>(<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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ILazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-int:A-int:A-int:A-">setSlice</a></span>(<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="typeNameLabel">LazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-int:A-int:A-int:A-">setSlice</a></span>(<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="typeNameLabel">ILazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSlice</a></span>(<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="typeNameLabel">LazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSlice</a></span>(<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="typeNameLabel">ILazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSliceSync-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSliceSync</a></span>(<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"><span class="typeNameLabel">LazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSliceSync-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSliceSync</a></span>(<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>
+</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 class="useSummary" 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="typeNameLabel">ILazyLoader.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/io/ILazyLoader.html#getDataset-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getDataset</a></span>(<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="typeNameLabel">IMetaLoader.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/io/IMetaLoader.html#loadMetadata-org.eclipse.january.IMonitor-">loadMetadata</a></span>(<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="typeNameLabel">ILazySaver.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/io/ILazySaver.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSlice</a></span>(<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="typeNameLabel">ILazyAsyncSaver.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/io/ILazyAsyncSaver.html#setSliceAsync-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSliceAsync</a></span>(<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-org.eclipse.january.dataset.IDataset-org.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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/class-use/INameable.html b/apidocs/2.3.0/org/eclipse/january/class-use/INameable.html
new file mode 100644
index 0000000..402ef68
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/class-use/INameable.html
@@ -0,0 +1,385 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.INameable (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a></span></code>
+<div class="block">Interface for a dataset containing <a href="https://docs.oracle.com/javase/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset">IDynamicDataset</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></span></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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></span></code>
+<div class="block">Generic container class for data</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/class-use/MetadataException.html b/apidocs/2.3.0/org/eclipse/january/class-use/MetadataException.html
new file mode 100644
index 0000000..33f92e0
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/class-use/MetadataException.html
@@ -0,0 +1,215 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.MetadataException (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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;<br><a href="https://docs.oracle.com/javase/8/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="typeNameLabel">LazyDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata-java.lang.Class-">getMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/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;<br><a href="https://docs.oracle.com/javase/8/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="typeNameLabel">IMetadataProvider.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata-java.lang.Class-">getMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/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 class="useSummary" 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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">MetadataFactory.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/MetadataFactory.html#createMetadata-java.lang.Class-java.lang.Object...-">createMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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="typeNameLabel">Metadata.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/Metadata.html#getMetaNames--">getMetaNames</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/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/8/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="typeNameLabel">IMetadata.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getMetaNames--">getMetaNames</a></span>()</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/8/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="typeNameLabel">Metadata.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/Metadata.html#getMetaValue-java.lang.String-">getMetaValue</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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="typeNameLabel">IMetadata.</span><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getMetaValue-java.lang.String-">getMetaValue</a></span>(<a href="https://docs.oracle.com/javase/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/AbstractCompoundDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/AbstractCompoundDataset.html
new file mode 100644
index 0000000..4defeba
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/AbstractCompoundDataset.html
@@ -0,0 +1,3157 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:12 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractCompoundDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractCompoundDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":6,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":6,"i40":6,"i41":6,"i42":6,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":6,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":6,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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&nbsp;Class</li>
+<li><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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="seeLabel">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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#isize">isize</a></span></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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#AbstractCompoundDataset--">AbstractCompoundDataset</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMax-int-boolean...-">argMax</a></span>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Find indices of maximum values along given axis</div>
+</td>
+</tr>
+<tr id="i1" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMin-int-boolean...-">argMin</a></span>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Find indices of minimum values along given axis</div>
+</td>
+</tr>
+<tr id="i2" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast-boolean-int-int-">cast</a></span>(boolean&nbsp;repeat,
+    int&nbsp;dtype,
+    int&nbsp;isize)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr id="i3" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast-int-">cast</a></span>(int&nbsp;dtype)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr id="i4" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i6" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#flatten--">flatten</a></span>()</code>
+<div class="block">Flatten shape</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndex-int-">get1DIndex</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndex-int-int-">get1DIndex</a></span>(int&nbsp;i,
+          int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndexFromShape-int:A-">get1DIndexFromShape</a></span>(int[]&nbsp;n)</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean--">getBoolean</a></span>()</code>
+<div class="block">Get first item as a boolean.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean-int...-">getBoolean</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean-int-">getBoolean</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean-int-int-">getBoolean</a></span>(int&nbsp;i,
+          int&nbsp;j)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr id="i14" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBroadcastView-int...-">getBroadcastView</a></span>(int...&nbsp;broadcastShape)</code>&nbsp;</td>
+</tr>
+<tr id="i15" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBy1DIndex-org.eclipse.january.dataset.IntegerDataset-">getBy1DIndex</a></span>(<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 id="i16" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByBoolean-org.eclipse.january.dataset.Dataset-">getByBoolean</a></span>(<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 id="i17" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByIndexes-java.lang.Object...-">getByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i18" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte--">getByte</a></span>()</code>
+<div class="block">Get first item as a byte.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte-int...-">getByte</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte-int-">getByte</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a byte.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte-int-int-">getByte</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get an item from given positionj as a byte.</div>
+</td>
+</tr>
+<tr id="i22" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getCompoundStats--">getCompoundStats</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble--">getDouble</a></span>()</code>
+<div class="block">Get first item as a double.</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble-int...-">getDouble</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble-int-">getDouble</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble-int-int-">getDouble</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-">getDoubleArray</a></span>(double[]&nbsp;darray)</code>
+<div class="block">Get first item as a double array</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int...-">getDoubleArray</a></span>(double[]&nbsp;darray,
+              int...&nbsp;pos)</code>
+<div class="block">Get an item as a double array</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int-">getDoubleArray</a></span>(double[]&nbsp;darray,
+              int&nbsp;i)</code>
+<div class="block">Get an item as a double array</div>
+</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int-int-">getDoubleArray</a></span>(double[]&nbsp;darray,
+              int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item as a double array</div>
+</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getElementsPerItem--">getElementsPerItem</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError-int...-">getError</a></span>(int...&nbsp;pos)</code>
+<div class="block">Get the error for a given position.</div>
+</td>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError-int-">getError</a></span>(int&nbsp;i)</code>
+<div class="block">Get the error for given position.</div>
+</td>
+</tr>
+<tr id="i34" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError-int-int-">getError</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get the error for given position.</div>
+</td>
+</tr>
+<tr id="i35" class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray-int...-">getErrorArray</a></span>(int...&nbsp;pos)</code>
+<div class="block">Get the error values for a single point in the dataset</div>
+</td>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray-int-">getErrorArray</a></span>(int&nbsp;i)</code>
+<div class="block">Get the error values for given position</div>
+</td>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray-int-int-">getErrorArray</a></span>(int&nbsp;i,
+             int&nbsp;j)</code>
+<div class="block">Get the error values for given position</div>
+</td>
+</tr>
+<tr id="i38" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrors--">getErrors</a></span>()</code>
+<div class="block">Get the errors, if any.</div>
+</td>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code>protected abstract double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue--">getFirstValue</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><code>protected abstract double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue-int...-">getFirstValue</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><code>protected abstract double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue-int-">getFirstValue</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><code>protected abstract double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue-int-int-">getFirstValue</a></span>(int&nbsp;i,
+             int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i43" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat--">getFloat</a></span>()</code>
+<div class="block">Get first item as a float.</div>
+</td>
+</tr>
+<tr id="i44" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat-int...-">getFloat</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i45" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat-int-">getFloat</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr id="i46" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat-int-int-">getFloat</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr id="i47" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt--">getInt</a></span>()</code>
+<div class="block">Get first item as an int.</div>
+</td>
+</tr>
+<tr id="i48" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt-int...-">getInt</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i49" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt-int-">getInt</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr id="i50" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt-int-int-">getInt</a></span>(int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr id="i51" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getIterator-boolean-">getIterator</a></span>(boolean&nbsp;withPosition)</code>&nbsp;</td>
+</tr>
+<tr id="i52" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getIterator-int-">getIterator</a></span>(int&nbsp;element)</code>
+<div class="block">Get an iterator that picks out the chosen element from all items</div>
+</td>
+</tr>
+<tr id="i53" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong--">getLong</a></span>()</code>
+<div class="block">Get first item as a long.</div>
+</td>
+</tr>
+<tr id="i54" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong-int...-">getLong</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i55" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong-int-">getLong</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr id="i56" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong-int-int-">getLong</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr id="i57" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort--">getShort</a></span>()</code>
+<div class="block">Get first item as a short.</div>
+</td>
+</tr>
+<tr id="i58" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort-int...-">getShort</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i59" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort-int-">getShort</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr id="i60" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort-int-int-">getShort</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr id="i61" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a></span>(<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 id="i62" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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 id="i63" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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 id="i64" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-int:A-int:A-int:A-">getSlice</a></span>(int[]&nbsp;start,
+        int[]&nbsp;stop,
+        int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr id="i65" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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 id="i66" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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 id="i67" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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 id="i68" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceIterator-org.eclipse.january.dataset.SliceND-">getSliceIterator</a></span>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr id="i69" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView-int:A-int:A-int:A-">getSliceView</a></span>(int[]&nbsp;start,
+            int[]&nbsp;stop,
+            int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr id="i70" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">getSliceView</a></span>(<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 id="i71" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">getSliceView</a></span>(<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 id="i72" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getTransposedView-int...-">getTransposedView</a></span>(int...&nbsp;axes)</code>
+<div class="block">Permute copy of dataset's axes so that given order is old order:</div>
+</td>
+</tr>
+<tr id="i73" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getUniqueItems--">getUniqueItems</a></span>()</code>
+<div class="block">Get unique items</div>
+</td>
+</tr>
+<tr id="i74" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getView-boolean-">getView</a></span>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr id="i75" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i76" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#ifloorDivide-java.lang.Object-">ifloorDivide</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i77" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#max-boolean...-">max</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i78" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#max-int-boolean...-">max</a></span>(int&nbsp;axis,
+   boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i79" class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#maxItem--">maxItem</a></span>()</code>
+<div class="block">Calculate maximum values of elements over all items in dataset</div>
+</td>
+</tr>
+<tr id="i80" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#maxPos-boolean...-">maxPos</a></span>(boolean...&nbsp;ignoreNaNs)</code>&nbsp;</td>
+</tr>
+<tr id="i81" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#mean-boolean...-">mean</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i82" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#mean-int-boolean...-">mean</a></span>(int&nbsp;axis,
+    boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i83" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min-boolean...-">min</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i84" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min-int-boolean...-">min</a></span>(int&nbsp;axis,
+   boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i85" class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#minItem--">minItem</a></span>()</code>
+<div class="block">Calculate minimum values of elements over all items in dataset</div>
+</td>
+</tr>
+<tr id="i86" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#minPos-boolean...-">minPos</a></span>(boolean...&nbsp;ignoreNaNs)</code>&nbsp;</td>
+</tr>
+<tr id="i87" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#peakToPeak-int-boolean...-">peakToPeak</a></span>(int&nbsp;axis,
+          boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i88" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#product-int-boolean...-">product</a></span>(int&nbsp;axis,
+       boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i89" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#reshape-int...-">reshape</a></span>(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 id="i90" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#rootMeanSquare-boolean...-">rootMeanSquare</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i91" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#rootMeanSquare-int-boolean...-">rootMeanSquare</a></span>(int&nbsp;axis,
+              boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i92" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i93" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i94" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sort-java.lang.Integer-">sort</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i95" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeeze--">squeeze</a></span>()</code>
+<div class="block">Remove dimensions of 1 in shape of the dataset</div>
+</td>
+</tr>
+<tr id="i96" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeeze-boolean-">squeeze</a></span>(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 id="i97" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeezeEnds--">squeezeEnds</a></span>()</code>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+</td>
+</tr>
+<tr id="i98" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#stdDeviation-int-">stdDeviation</a></span>(int&nbsp;axis)</code>
+<div class="block">Standard deviation is square root of the variance</div>
+</td>
+</tr>
+<tr id="i99" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#stdDeviation-int-boolean-boolean...-">stdDeviation</a></span>(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 id="i100" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum-boolean...-">sum</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i101" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum-int-boolean...-">sum</a></span>(int&nbsp;axis,
+   boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i102" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#swapAxes-int-int-">swapAxes</a></span>(int&nbsp;axis1,
+        int&nbsp;axis2)</code>
+<div class="block">Swap two axes in dataset</div>
+</td>
+</tr>
+<tr id="i103" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#synchronizedCopy--">synchronizedCopy</a></span>()</code>
+<div class="block">This is a <b>synchronized</b> version of the clone method</div>
+</td>
+</tr>
+<tr id="i104" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#transpose-int...-">transpose</a></span>(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 id="i105" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance-boolean-boolean...-">variance</a></span>(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 id="i106" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance-int-">variance</a></span>(int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr id="i107" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance-int-boolean-boolean...-">variance</a></span>(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-double-double-">calcSteps</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-java.lang.Class-boolean-">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-int-">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-org.eclipse.january.dataset.AbstractDataset-boolean-boolean-">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.Dataset-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-int-int:A-int:A-int-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-org.eclipse.january.dataset.Dataset-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-int-int:A-int:A-int-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData-java.lang.Object-int-int:A-">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex-int...-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-int:A-">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-boolean-">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#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#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:A-int:A-int:A-">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">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#max-int:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int:A-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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData--">setData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer-java.io.Serializable-">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.lang.Object-">setItemDirect</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength-int-">setMaxLineLength</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-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int:A-boolean...-">sum</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>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-boolean-boolean...-">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:A-int...-">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-boolean-">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#getElementClass--">getElementClass</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#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName--">getName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors--">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata-int:A-int:A-">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors-java.io.Serializable-">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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-int-">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-int-">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-int-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArrayAbs-int-double:A-">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-int-">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-int-">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-int-">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-int-">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-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setElements-org.eclipse.january.dataset.Dataset-int-">setElements</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setSlice-java.lang.Object-org.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#cast-int-java.lang.Class-boolean-">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:A-boolean:A-org.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:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count-int-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.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-boolean-">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-int-">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:A-int:A-int:A-">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">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-int-">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#max-int:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product-int:A-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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare-int:A-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-int-">set</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-int-">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:A-boolean:A-java.lang.Object-">setItemsOnAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs-int-java.lang.Object-">setObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#sum-int:A-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-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int:A-boolean-boolean...-">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-int...-">set</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#setStringFormat-java.text.Format-">setStringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata-org.eclipse.january.metadata.MetadataType-">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata-java.lang.Class-">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass--">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getRank--">getRank</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape--">getShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize--">getSize</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors--">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors-java.io.Serializable-">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape-int...-">setShape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata-java.lang.Class-">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata-java.lang.Class-">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.INameable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.<a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></h3>
+<code><a href="../../../../org/eclipse/january/INameable.html#getName--">getName</a>, <a href="../../../../org/eclipse/january/INameable.html#setName-java.lang.String-">setName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="isize">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isize</h4>
+<pre>protected&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.34">isize</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractCompoundDataset--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractCompoundDataset</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.111">AbstractCompoundDataset</a>()</pre>
+<div class="block">Constructor required for serialisation.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getElementsPerItem--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementsPerItem</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.37">getElementsPerItem</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex-int-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="returnLabel">Returns:</span></dt>
+<dd>the index on the data array corresponding to that location</dd>
+</dl>
+</li>
+</ul>
+<a name="get1DIndexFromShape-int:A-">
+<!--   -->
+</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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getUniqueItems--">Dataset</a></code></span></div>
+<div class="block">Get unique items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>withPosition</code> - set true if position is needed</dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>element</code> - </dd>
+<dt><span class="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator-org.eclipse.january.dataset.SliceND-">getSliceIterator</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an slice iterator that operates like an IndexIterator</dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.115">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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/AbstractCompoundDataset.html#line.125">hashCode</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hashCode--">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="cast-boolean-int-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cast</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.130">cast</a>(boolean&nbsp;repeat,
+                            int&nbsp;dtype,
+                            int&nbsp;isize)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast-boolean-int-int-">Dataset</a></code></span></div>
+<div class="block">Cast a dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#cast-boolean-int-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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast-boolean-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast-boolean-int-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>
+<dd><code>dtype</code> - dataset type</dd>
+<dd><code>isize</code> - item size</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a converted dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="cast-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cast</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.135">cast</a>(int&nbsp;dtype)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast-int-">Dataset</a></code></span></div>
+<div class="block">Cast a dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>dtype</code> - dataset type</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a converted dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="clone--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public abstract&nbsp;<a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.140">clone</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">ILazyDataset</a></code></span></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>a (shallow) copy of dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="flatten--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>flatten</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.143">flatten</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#flatten--">Dataset</a></code></span></div>
+<div class="block">Flatten shape</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">Returns:</span></dt>
+<dd>a flattened dataset which is a view if dataset is contiguous otherwise is a copy</dd>
+</dl>
+</li>
+</ul>
+<a name="getBy1DIndex-org.eclipse.january.dataset.IntegerDataset-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBy1DIndex</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.148">getBy1DIndex</a>(<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBy1DIndex-org.eclipse.january.dataset.IntegerDataset-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy get item with an index dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>index</code> - an integer dataset</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The new selected dataset by indices</dd>
+</dl>
+</li>
+</ul>
+<a name="getByBoolean-org.eclipse.january.dataset.Dataset-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByBoolean</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.153">getByBoolean</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByBoolean-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy get item with a condition specified by a boolean dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>selection</code> - a boolean dataset of same shape to use for selecting items</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The new selected dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="getByIndexes-java.lang.Object...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByIndexes</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.158">getByIndexes</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByIndexes-java.lang.Object...-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy get item with an array of indexing objects</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>The new selected dataset by index</dd>
+</dl>
+</li>
+</ul>
+<a name="getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.163">getSlice</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                                int[]&nbsp;start,
+                                int[]&nbsp;stop,
+                                int[]&nbsp;step)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">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="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+</dl>
+</li>
+</ul>
+<a name="getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.168">getSlice</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                                <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice-org.eclipse.january.IMonitor-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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.IMonitor-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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-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>
+<dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+</dl>
+</li>
+</ul>
+<a name="getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.173">getSlice</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice-org.eclipse.january.IMonitor-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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.IMonitor-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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-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>
+<dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+</dl>
+</li>
+</ul>
+<a name="getSlice-int:A-int:A-int:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.178">getSlice</a>(int[]&nbsp;start,
+                                int[]&nbsp;stop,
+                                int[]&nbsp;step)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-int:A-int:A-int:A-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice-int:A-int:A-int:A-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice-int:A-int:A-int:A-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSlice-int:A-int:A-int:A-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-int:A-int:A-int:A-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-int:A-int:A-int:A-">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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+</dl>
+</li>
+</ul>
+<a name="getSlice-org.eclipse.january.dataset.Slice...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.183">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+</dl>
+</li>
+</ul>
+<a name="getSlice-org.eclipse.january.dataset.SliceND-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.188">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">AbstractDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+</dl>
+</li>
+</ul>
+<a name="getSlice-org.eclipse.january.dataset.SliceIterator-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public abstract&nbsp;<a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.193">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;iterator)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">AbstractDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>iterator</code> - Slice iterator</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+</dl>
+</li>
+</ul>
+<a name="getSliceView-int:A-int:A-int:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.196">getSliceView</a>(int[]&nbsp;start,
+                                    int[]&nbsp;stop,
+                                    int[]&nbsp;step)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView-int:A-int:A-int:A-">IDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a view on a selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSliceView-int:A-int:A-int:A-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceView-int:A-int:A-int:A-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView-int:A-int:A-int:A-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView-int:A-int:A-int:A-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView-int:A-int:A-int:A-">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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>The sliced view of a dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="getSliceView-org.eclipse.january.dataset.Slice...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.201">getSliceView</a>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">IDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a view on a selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The sliced view of a dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="getSliceView-org.eclipse.january.dataset.SliceND-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.206">getSliceView</a>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">AbstractDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a view on a selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an nD slice object</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>slice view</dd>
+</dl>
+</li>
+</ul>
+<a name="getTransposedView-int...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTransposedView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.211">getTransposedView</a>(int...&nbsp;axes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getTransposedView-int...-">IDataset</a></code></span></div>
+<div class="block">Permute copy of dataset's axes so that given order is old order:
+ 
+ <pre>
+  axisPerm = (p(0), p(1),...) =&gt; 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="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>axes</code> - if zero length then axes order reversed</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>remapped view of data</dd>
+</dl>
+</li>
+</ul>
+<a name="getView-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getView</h4>
+<pre>public abstract&nbsp;<a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.216">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>whole view of dataset (i.e. data buffer is shared)</dd>
+</dl>
+</li>
+</ul>
+<a name="getBroadcastView-int...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBroadcastView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.219">getBroadcastView</a>(int...&nbsp;broadcastShape)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">Returns:</span></dt>
+<dd>view of dataset that is broadcasted to given shape</dd>
+</dl>
+</li>
+</ul>
+<a name="ifloorDivide-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ifloorDivide</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.224">ifloorDivide</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloorDivide-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place floor division with object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">Returns:</span></dt>
+<dd>dividend dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="reshape-int...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reshape</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.229">reshape</a>(int...&nbsp;shape)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#reshape-int...-">Dataset</a></code></span></div>
+<div class="block">Returns new dataset with new shape but old data if possible, otherwise a copy is made</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - new shape</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>reshaped dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="setSlice-java.lang.Object-int:A-int:A-int:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.234">setSlice</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy array slice</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>The dataset with the sliced set to object</dd>
+</dl>
+</li>
+</ul>
+<a name="setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.239">setSlice</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy array slice</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setSlice-java.lang.Object-org.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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">setSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="sort-java.lang.Integer-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sort</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.244">sort</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sort-java.lang.Integer-">Dataset</a></code></span></div>
+<div class="block">In-place sort of dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>axis</code> - to sort along. If null, then the flattened view is sorted</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>sorted dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="squeezeEnds--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>squeezeEnds</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.249">squeezeEnds</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds--">ILazyDataset</a></code></span></div>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeezeEnds--">squeezeEnds</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="squeeze--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>squeeze</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.254">squeeze</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeeze--">IDataset</a></code></span></div>
+<div class="block">Remove dimensions of 1 in shape of the dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze--">squeeze</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="squeeze-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>squeeze</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.259">squeeze</a>(boolean&nbsp;onlyFromEnd)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeeze-boolean-">IDataset</a></code></span></div>
+<div class="block">Remove dimensions of 1 in shape of the dataset from ends only if true</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze-boolean-">squeeze</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="swapAxes-int-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>swapAxes</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.264">swapAxes</a>(int&nbsp;axis1,
+                                int&nbsp;axis2)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#swapAxes-int-int-">Dataset</a></code></span></div>
+<div class="block">Swap two axes in dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#swapAxes-int-int-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#swapAxes-int-int-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes-int-int-">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="returnLabel">Returns:</span></dt>
+<dd>swapped view of dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="synchronizedCopy--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>synchronizedCopy</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.269">synchronizedCopy</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#synchronizedCopy--">Dataset</a></code></span></div>
+<div class="block">This is a <b>synchronized</b> version of the clone method</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">Returns:</span></dt>
+<dd>a copy of dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="transpose-int...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>transpose</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.274">transpose</a>(int...&nbsp;axes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#transpose-int...-">Dataset</a></code></span></div>
+<div class="block">See <a href="../../../../org/eclipse/january/dataset/Dataset.html#getTransposedView-int...-"><code>Dataset.getTransposedView(int...)</code></a></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.282">getFirstValue</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>first value</dd>
+<dt><span class="simpleTagLabel">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.284">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.286">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.288">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.291">getBoolean</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean--">Dataset</a></code></span></div>
+<div class="block">Get first item as a boolean. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.296">getBoolean</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.301">getBoolean</a>(int&nbsp;i,
+                          int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-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="returnLabel">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.306">getBoolean</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.311">getByte</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte--">Dataset</a></code></span></div>
+<div class="block">Get first item as a byte. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.316">getByte</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a byte. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.321">getByte</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given positionj as a byte. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-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="returnLabel">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.326">getByte</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.331">getShort</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort--">Dataset</a></code></span></div>
+<div class="block">Get first item as a short. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.336">getShort</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a short. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.341">getShort</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a short. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-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="returnLabel">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.346">getShort</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.351">getInt</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt--">Dataset</a></code></span></div>
+<div class="block">Get first item as an int. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.356">getInt</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an int. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.361">getInt</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an int. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-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="returnLabel">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.366">getInt</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.371">getLong</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong--">Dataset</a></code></span></div>
+<div class="block">Get first item as a long. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.376">getLong</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a long. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.381">getLong</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a long. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-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="returnLabel">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.386">getLong</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.391">getFloat</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat--">Dataset</a></code></span></div>
+<div class="block">Get first item as a float. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.396">getFloat</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a float. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.401">getFloat</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a float. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-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="returnLabel">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.406">getFloat</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.411">getDouble</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble--">Dataset</a></code></span></div>
+<div class="block">Get first item as a double. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.416">getDouble</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a double. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.421">getDouble</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a double. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-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="returnLabel">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.426">getDouble</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>Item in given position as a double</dd>
+</dl>
+</li>
+</ul>
+<a name="getDoubleArray-double:A-">
+<!--   -->
+</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)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray-double:A-">CompoundDataset</a></code></span></div>
+<div class="block">Get first item as a double array</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray-double:A-">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="paramLabel">Parameters:</span></dt>
+<dd><code>darray</code> - double array must be allocated and have sufficient length</dd>
+</dl>
+</li>
+</ul>
+<a name="getDoubleArray-double:A-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)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray-double:A-int-">CompoundDataset</a></code></span></div>
+<div class="block">Get an item as a double array</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray-double:A-int-">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="paramLabel">Parameters:</span></dt>
+<dd><code>darray</code> - double array must be allocated and have sufficient length</dd>
+</dl>
+</li>
+</ul>
+<a name="getDoubleArray-double:A-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.441">getDoubleArray</a>(double[]&nbsp;darray,
+                           int&nbsp;i,
+                           int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray-double:A-int-int-">CompoundDataset</a></code></span></div>
+<div class="block">Get an item as a double array</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray-double:A-int-int-">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="paramLabel">Parameters:</span></dt>
+<dd><code>darray</code> - double array must be allocated and have sufficient length</dd>
+</dl>
+</li>
+</ul>
+<a name="getDoubleArray-double:A-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.446">getDoubleArray</a>(double[]&nbsp;darray,
+                           int...&nbsp;pos)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray-double:A-int...-">CompoundDataset</a></code></span></div>
+<div class="block">Get an item as a double array</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray-double:A-int...-">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="paramLabel">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.455">getCompoundStats</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>statistics metadata</dd>
+<dt><span class="simpleTagLabel">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.466">argMax</a>(int&nbsp;axis,
+                             boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax-int-boolean...-">Dataset</a></code></span></div>
+<div class="block">Find indices of maximum values along given axis</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax-int-boolean...-">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-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">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.472">argMin</a>(int&nbsp;axis,
+                             boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin-int-boolean...-">Dataset</a></code></span></div>
+<div class="block">Find indices of minimum values along given axis</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-int-boolean...-">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-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">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/8/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.478">max</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">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="returnLabel">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.484">max</a>(int&nbsp;axis,
+                           boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#max-int-boolean...-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-">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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max-int-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>
+<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="returnLabel">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/8/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.490">min</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">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="returnLabel">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.496">min</a>(int&nbsp;axis,
+                           boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#min-int-boolean...-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#min-int-boolean...-">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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int-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>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">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.503">maxPos</a>(boolean...&nbsp;ignoreNaNs)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">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="returnLabel">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.509">minPos</a>(boolean...&nbsp;ignoreNaNs)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">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="returnLabel">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.515">peakToPeak</a>(int&nbsp;axis,
+                                  boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#peakToPeak-int-boolean...-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int-boolean...-">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-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">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.521">maxItem</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#maxItem--">CompoundDataset</a></code></span></div>
+<div class="block">Calculate maximum values of elements over all items in dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.526">minItem</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#minItem--">CompoundDataset</a></code></span></div>
+<div class="block">Calculate minimum values of elements over all items in dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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/8/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.531">mean</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">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="returnLabel">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.536">mean</a>(int&nbsp;axis,
+                            boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#mean-int-boolean...-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#mean-int-boolean...-">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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int-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>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">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.541">product</a>(int&nbsp;axis,
+                               boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#product-int-boolean...-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#product-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int-boolean...-">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-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">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.546">rootMeanSquare</a>(int&nbsp;axis,
+                                      boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#rootMeanSquare-int-boolean...-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int-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>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">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.551">stdDeviation</a>(int&nbsp;axis)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int-">Dataset</a></code></span></div>
+<div class="block">Standard deviation is square root of the variance</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">Returns:</span></dt>
+<dd>standard deviation along axis in dataset</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int-boolean-boolean...-"><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.556">stdDeviation</a>(int&nbsp;axis,
+                                    boolean&nbsp;isWholePopulation,
+                                    boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int-boolean-boolean...-">Dataset</a></code></span></div>
+<div class="block">Standard deviation is square root of the variance</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#stdDeviation-int-boolean-boolean...-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int-boolean-boolean...-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-boolean-boolean...-">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-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>standard deviation 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/8/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.561">sum</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">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="returnLabel">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.566">sum</a>(int&nbsp;axis,
+                           boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#sum-int-boolean...-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sum-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int-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>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">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.571">variance</a>(boolean&nbsp;isWholePopulation,
+                       boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-boolean-boolean...-">Dataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-boolean-boolean...-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-boolean-boolean...-">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-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">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.576">variance</a>(int&nbsp;axis)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">Returns:</span></dt>
+<dd>sample variance along axis in dataset</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int-boolean-boolean...-"><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.581">variance</a>(int&nbsp;axis,
+                                boolean&nbsp;isWholePopulation,
+                                boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#variance-int-boolean-boolean...-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int-boolean-boolean...-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-boolean-boolean...-">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-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>sample variance along axis in dataset</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.586">rootMeanSquare</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">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="returnLabel">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.627">getErrors</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getErrors--">ILazyDataset</a></code></span></div>
+<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="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.636">getError</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getError-int-">Dataset</a></code></span></div>
+<div class="block">Get the error for given position. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.641">getError</a>(int&nbsp;i,
+                       int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getError-int-int-">Dataset</a></code></span></div>
+<div class="block">Get the error for given position. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getError-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError-int-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="returnLabel">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.646">getError</a>(int...&nbsp;pos)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getError-int...-">IDataset</a></code></span></div>
+<div class="block">Get the error for a given position.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.664">getErrorArray</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray-int-">Dataset</a></code></span></div>
+<div class="block">Get the error values for given position</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.669">getErrorArray</a>(int&nbsp;i,
+                              int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray-int-int-">Dataset</a></code></span></div>
+<div class="block">Get the error values for given position</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray-int-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="returnLabel">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.674">getErrorArray</a>(int...&nbsp;pos)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getErrorArray-int...-">IDataset</a></code></span></div>
+<div class="block">Get the error values for a single point in the dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - of the point to be referenced</dd>
+<dt><span class="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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&nbsp;Class</li>
+<li><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/AbstractDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/AbstractDataset.html
new file mode 100644
index 0000000..6ab7b80
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/AbstractDataset.html
@@ -0,0 +1,3950 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:12 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":9,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":41,"i15":10,"i16":6,"i17":10,"i18":10,"i19":9,"i20":10,"i21":10,"i22":10,"i23":9,"i24":9,"i25":9,"i26":9,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":9,"i34":10,"i35":10,"i36":10,"i37":10,"i38":6,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":9,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":6,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":6,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109":10,"i110":10,"i111":10,"i112":10,"i113":10,"i114":6,"i115":10,"i116":6,"i117":9,"i118":10,"i119":10,"i120":10,"i121":10,"i122":10,"i123":10,"i124":10,"i125":10,"i126":10,"i127":10,"i128":10,"i129":10,"i130":10,"i131":10,"i132":10,"i133":10,"i134":10,"i135":10,"i136":10,"i137":10,"i138":10,"i139":10,"i140":10,"i141":10,"i142":10,"i143":10,"i144":10,"i145":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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.38">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="seeLabel">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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#base">base</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected static char</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_CLOSE">BLOCK_CLOSE</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected static char</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_OPEN">BLOCK_OPEN</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#odata">odata</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#offset">offset</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#size">size</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stride">stride</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/text/Format.html?is-external=true" title="class or interface in java.text">Format</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stringFormat">stringFormat</a></span></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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#AbstractDataset--">AbstractDataset</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all--">all</a></span>()</code>
+<div class="block">Test if all items are true</div>
+</td>
+</tr>
+<tr id="i1" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all-int-">all</a></span>(int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any--">any</a></span>()</code>
+<div class="block">Test if any items are true</div>
+</td>
+</tr>
+<tr id="i3" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any-int-">any</a></span>(int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax-boolean...-">argMax</a></span>(boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Find absolute index of maximum value (in a flattened view)</div>
+</td>
+</tr>
+<tr id="i5" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax-int-boolean...-">argMax</a></span>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Find indices of maximum values along given axis</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-boolean...-">argMin</a></span>(boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Find absolute index of minimum value (in a flattened view)</div>
+</td>
+</tr>
+<tr id="i7" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-int-boolean...-">argMin</a></span>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Find indices of minimum values along given axis</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>protected static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps-double-double-double-">calcSteps</a></span>(double&nbsp;start,
+         double&nbsp;stop,
+         double&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast-boolean-int-int-">cast</a></span>(boolean&nbsp;repeat,
+    int&nbsp;dtype,
+    int&nbsp;isize)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr id="i10" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast-java.lang.Class-">cast</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i11" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast-int-">cast</a></span>(int&nbsp;dtype)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr id="i12" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast-int-java.lang.Class-boolean-">cast</a></span>(int&nbsp;isize,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+    boolean&nbsp;repeat)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-">checkAxis</a></span>(int&nbsp;axis)</code>
+<div class="block">Check that axis is in range [-rank,rank)</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>protected static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-int-">checkAxis</a></span>(int&nbsp;rank,
+         int&nbsp;axis)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkCompatibility-org.eclipse.january.dataset.ILazyDataset-">checkCompatibility</a></span>(<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 id="i16" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr id="i17" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy-java.lang.Class-">copy</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i18" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy-int-">copy</a></span>(int&nbsp;dtype)</code>
+<div class="block">Copy and cast a dataset</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>protected static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copyToView-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.AbstractDataset-boolean-boolean-">copyToView</a></span>(<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 id="i20" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-boolean...-">count</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int:A-boolean...-">count</a></span>(int[]&nbsp;axes,
+     boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int-boolean...-">count</a></span>(int&nbsp;axis,
+     boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.Dataset-int:A-">createStrides</a></span>(<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 id="i24" class="altColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-int-int:A-int:A-int-int:A-">createStrides</a></span>(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 id="i25" class="rowColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-org.eclipse.january.dataset.Dataset-int:A-int:A-">createStrides</a></span>(<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 id="i26" class="altColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-int-int:A-int:A-int-int:A-int:A-">createStrides</a></span>(<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 id="i27" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData-java.lang.Object-int-int:A-">fillData</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i28" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#flatten--">flatten</a></span>()</code>
+<div class="block">Flatten shape</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex-int...-">get1DIndex</a></span>(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 id="i30" class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex-int-">get1DIndex</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex-int-int-">get1DIndex</a></span>(int&nbsp;i,
+          int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-">get1DIndexFromShape</a></span>(int[]&nbsp;n)</code>&nbsp;</td>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><code>protected static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-int:A-">get1DIndexFromShape</a></span>(int[]&nbsp;shape,
+                   int[]&nbsp;n)</code>&nbsp;</td>
+</tr>
+<tr id="i34" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator-org.eclipse.january.dataset.Dataset-">getBooleanIterator</a></span>(<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 id="i35" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator-org.eclipse.january.dataset.Dataset-boolean-">getBooleanIterator</a></span>(<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 id="i36" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBroadcastView-int...-">getBroadcastView</a></span>(int...&nbsp;broadcastShape)</code>&nbsp;</td>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer--">getBuffer</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i38" class="altColor">
+<td class="colFirst"><code>protected abstract int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBufferLength--">getBufferLength</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBy1DIndex-org.eclipse.january.dataset.IntegerDataset-">getBy1DIndex</a></span>(<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 id="i40" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByBoolean-org.eclipse.january.dataset.Dataset-">getByBoolean</a></span>(<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 id="i41" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByIndexes-java.lang.Object...-">getByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i42" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementsPerItem--">getElementsPerItem</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i43" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError--">getError</a></span>()</code>
+<div class="block">Get the error for the first item.</div>
+</td>
+</tr>
+<tr id="i44" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError-int...-">getError</a></span>(int...&nbsp;pos)</code>
+<div class="block">Get the error for a given position.</div>
+</td>
+</tr>
+<tr id="i45" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError-int-">getError</a></span>(int&nbsp;i)</code>
+<div class="block">Get the error for given position.</div>
+</td>
+</tr>
+<tr id="i46" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError-int-int-">getError</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get the error for given position.</div>
+</td>
+</tr>
+<tr id="i47" class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray-int...-">getErrorArray</a></span>(int...&nbsp;pos)</code>
+<div class="block">Get the error values for a single point in the dataset</div>
+</td>
+</tr>
+<tr id="i48" class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray-int-">getErrorArray</a></span>(int&nbsp;i)</code>
+<div class="block">Get the error values for given position</div>
+</td>
+</tr>
+<tr id="i49" class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray-int-int-">getErrorArray</a></span>(int&nbsp;i,
+             int&nbsp;j)</code>
+<div class="block">Get the error values for given position</div>
+</td>
+</tr>
+<tr id="i50" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorBuffer--">getErrorBuffer</a></span>()</code>
+<div class="block">Get the (un-broadcasted) dataset that backs the (squared) error data</div>
+</td>
+</tr>
+<tr id="i51" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrors--">getErrors</a></span>()</code>
+<div class="block">Get the errors, if any.</div>
+</td>
+</tr>
+<tr id="i52" class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getFirst1DIndex--">getFirst1DIndex</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i53" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIndices--">getIndices</a></span>()</code>
+<div class="block">Generate an index dataset for current dataset</div>
+</td>
+</tr>
+<tr id="i54" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getInternalSquaredError--">getInternalSquaredError</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i55" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getItemBytes--">getItemBytes</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i56" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator--">getIterator</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i57" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator-boolean-">getIterator</a></span>(boolean&nbsp;withPosition)</code>&nbsp;</td>
+</tr>
+<tr id="i58" class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMaxLineLength--">getMaxLineLength</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i59" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNbytes--">getNbytes</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i60" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNDPosition-int-">getNDPosition</a></span>(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 id="i61" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getOffset--">getOffset</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i62" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getPositionIterator-int...-">getPositionIterator</a></span>(int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr id="i63" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRank--">getRank</a></span>()</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 id="i64" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealPart--">getRealPart</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i65" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealView--">getRealView</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i66" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShape--">getShape</a></span>()</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 id="i67" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShapeRef--">getShapeRef</a></span>()</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 id="i68" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSize--">getSize</a></span>()</code>
+<div class="block">The size of the dataset is the number of items in the array</div>
+</td>
+</tr>
+<tr id="i69" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a></span>(<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 id="i70" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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 id="i71" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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 id="i72" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-int:A-int:A-int:A-">getSlice</a></span>(int[]&nbsp;start,
+        int[]&nbsp;stop,
+        int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr id="i73" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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 id="i74" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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 id="i75" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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 id="i76" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator-int:A-int:A-int:A-">getSliceIterator</a></span>(int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr id="i77" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator-org.eclipse.january.dataset.SliceND-">getSliceIterator</a></span>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr id="i78" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">getSliceIteratorFromAxes</a></span>(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 id="i79" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView-int:A-int:A-int:A-">getSliceView</a></span>(int[]&nbsp;start,
+            int[]&nbsp;stop,
+            int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr id="i80" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">getSliceView</a></span>(<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 id="i81" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">getSliceView</a></span>(<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 id="i82" 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/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStats--">getStats</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i83" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStrides--">getStrides</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i84" 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/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStringStats--">getStringStats</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i85" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getTransposedView-int...-">getTransposedView</a></span>(int...&nbsp;axes)</code>
+<div class="block">Permute copy of dataset's axes so that given order is old order:</div>
+</td>
+</tr>
+<tr id="i86" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getView-boolean-">getView</a></span>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr id="i87" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hasFloatingPointElements--">hasFloatingPointElements</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i88" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i89" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#ifloorDivide-java.lang.Object-">ifloorDivide</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i90" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isCompatibleWith-org.eclipse.january.dataset.ILazyDataset-">isCompatibleWith</a></span>(<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 id="i91" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isComplex--">isComplex</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i92" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max-boolean...-">max</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i93" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max-int:A-boolean...-">max</a></span>(int[]&nbsp;axes,
+   boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i94" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max-int-boolean...-">max</a></span>(int&nbsp;axis,
+   boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i95" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-boolean...-">mean</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i96" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int:A-boolean...-">mean</a></span>(int[]&nbsp;axes,
+    boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i97" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int-boolean...-">mean</a></span>(int&nbsp;axis,
+    boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i98" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-boolean...-">min</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i99" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int:A-boolean...-">min</a></span>(int[]&nbsp;axes,
+   boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i100" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int-boolean...-">min</a></span>(int&nbsp;axis,
+   boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i101" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i102" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-boolean...-">peakToPeak</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i103" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a></span>(int[]&nbsp;axes,
+          boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i104" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int-boolean...-">peakToPeak</a></span>(int&nbsp;axis,
+          boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i105" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-boolean...-">product</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i106" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int:A-boolean...-">product</a></span>(int[]&nbsp;axes,
+       boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i107" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int-boolean...-">product</a></span>(int&nbsp;axis,
+       boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i108" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#reshape-int...-">reshape</a></span>(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 id="i109" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual-java.lang.Object-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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-boolean-"><code>Dataset.residual(Object o, boolean ignoreNaNs)</code></a> with ignoreNaNs = false</div>
+</td>
+</tr>
+<tr id="i110" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual-java.lang.Object-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i111" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-boolean...-">rootMeanSquare</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i112" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</a></span>(int[]&nbsp;axes,
+              boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i113" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int-boolean...-">rootMeanSquare</a></span>(int&nbsp;axis,
+              boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i114" class="altColor">
+<td class="colFirst"><code>protected abstract void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData--">setData</a></span>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr id="i115" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer-java.io.Serializable-">setErrorBuffer</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i116" class="altColor">
+<td class="colFirst"><code>protected abstract void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.lang.Object-">setItemDirect</a></span>(int&nbsp;dindex,
+             int&nbsp;sindex,
+             <a href="https://docs.oracle.com/javase/8/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 id="i117" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength-int-">setMaxLineLength</a></span>(int&nbsp;maxLineLength)</code>
+<div class="block">Set maximum line length for toString() method</div>
+</td>
+</tr>
+<tr id="i118" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape-int...-">setShape</a></span>(int...&nbsp;shape)</code>
+<div class="block">Set a compatible shape for dataset.</div>
+</td>
+</tr>
+<tr id="i119" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i120" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i121" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.SliceND-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i122" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setStringFormat-java.text.Format-">setStringFormat</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i123" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze--">squeeze</a></span>()</code>
+<div class="block">Remove dimensions of 1 in shape of the dataset</div>
+</td>
+</tr>
+<tr id="i124" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze-boolean-">squeeze</a></span>(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 id="i125" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeezeEnds--">squeezeEnds</a></span>()</code>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+</td>
+</tr>
+<tr id="i126" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation--">stdDeviation</a></span>()</code>
+<div class="block">Standard deviation is square root of the variance</div>
+</td>
+</tr>
+<tr id="i127" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-boolean-boolean...-">stdDeviation</a></span>(boolean&nbsp;isWholePopulation,
+            boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Standard deviation is square root of the variance</div>
+</td>
+</tr>
+<tr id="i128" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-">stdDeviation</a></span>(int&nbsp;axis)</code>
+<div class="block">Standard deviation is square root of the variance</div>
+</td>
+</tr>
+<tr id="i129" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-">stdDeviation</a></span>(int[]&nbsp;axes)</code>
+<div class="block">Standard deviation is square root of the variance</div>
+</td>
+</tr>
+<tr id="i130" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a></span>(int[]&nbsp;axes,
+            boolean&nbsp;isWholePopulation,
+            boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Standard deviation is square root of the variance</div>
+</td>
+</tr>
+<tr id="i131" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-boolean-boolean...-">stdDeviation</a></span>(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 id="i132" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-boolean...-">sum</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i133" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int:A-boolean...-">sum</a></span>(int[]&nbsp;axes,
+   boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i134" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int-boolean...-">sum</a></span>(int&nbsp;axis,
+   boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i135" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes-int-int-">swapAxes</a></span>(int&nbsp;axis1,
+        int&nbsp;axis2)</code>
+<div class="block">Swap two axes in dataset</div>
+</td>
+</tr>
+<tr id="i136" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#synchronizedCopy--">synchronizedCopy</a></span>()</code>
+<div class="block">This is a <b>synchronized</b> version of the clone method</div>
+</td>
+</tr>
+<tr id="i137" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString--">toString</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i138" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString-boolean-">toString</a></span>(boolean&nbsp;showData)</code>&nbsp;</td>
+</tr>
+<tr id="i139" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#transpose-int...-">transpose</a></span>(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 id="i140" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance--">variance</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i141" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-boolean-boolean...-">variance</a></span>(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 id="i142" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-">variance</a></span>(int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr id="i143" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-">variance</a></span>(int[]&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr id="i144" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-boolean-boolean...-">variance</a></span>(int[]&nbsp;axes,
+        boolean&nbsp;isWholePopulation,
+        boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i145" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-boolean-boolean...-">variance</a></span>(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:A-int...-">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-boolean-">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#getDType--">getDType</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#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#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName--">getName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors--">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata-int:A-int:A-">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors-java.io.Serializable-">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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:A-boolean:A-org.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-org.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-int-">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-int-">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-int-">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-int-">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-int-">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-int-">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-int-">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-int-">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-int-">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-org.eclipse.january.dataset.Dataset-boolean-">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-int-">set</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-int-">set</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty--">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">setItemsOnAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs-int-java.lang.Object-">setObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.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-int...-">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#getElementClass--">getElementClass</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>
+<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="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.42">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.44">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.45">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.46">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/8/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.52">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/8/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.78">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.1014">BLOCK_OPEN</a></pre>
+<dl>
+<dt><span class="seeLabel">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.1015">BLOCK_CLOSE</a></pre>
+<dl>
+<dt><span class="seeLabel">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.62">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.57">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.66">synchronizedCopy</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#synchronizedCopy--">Dataset</a></code></span></div>
+<div class="block">This is a <b>synchronized</b> version of the clone method</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>a copy of dataset</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.71">hashCode</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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.76">clone</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">ILazyDataset</a></code></span></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.81">setStringFormat</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/text/Format.html?is-external=true" title="class or interface in java.text">Format</a>&nbsp;format)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#setStringFormat-java.text.Format-">IDataset</a></code></span></div>
+<div class="block">Set string output format</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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.86">copy</a>(int&nbsp;dtype)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copy-int-">Dataset</a></code></span></div>
+<div class="block">Copy and cast a dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>dtype</code> - dataset type</dd>
+<dt><span class="returnLabel">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.91">copy</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copy-java.lang.Class-">Dataset</a></code></span></div>
+<div class="block">Copy and cast a dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - dataset subclass</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset class</dd>
+<dt><span class="returnLabel">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.96">cast</a>(int&nbsp;dtype)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast-int-">Dataset</a></code></span></div>
+<div class="block">Cast a dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>dtype</code> - dataset type</dd>
+<dt><span class="returnLabel">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.102">cast</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast-java.lang.Class-">Dataset</a></code></span></div>
+<div class="block">Cast a dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - dataset subclass</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset class</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a converted dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="cast-int-java.lang.Class-boolean-">
+<!--   -->
+</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.115">cast</a>(int&nbsp;isize,
+                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                  boolean&nbsp;repeat)</pre>
+<div class="block">Cast a dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast-int-java.lang.Class-boolean-">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="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - dataset subclass</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>isize</code> - item size</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a converted dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.3</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.123">cast</a>(boolean&nbsp;repeat,
+                    int&nbsp;dtype,
+                    int&nbsp;isize)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast-boolean-int-int-">Dataset</a></code></span></div>
+<div class="block">Cast a dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast-boolean-int-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>
+<dd><code>dtype</code> - dataset type</dd>
+<dd><code>isize</code> - item size</dd>
+<dt><span class="returnLabel">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.128">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="returnLabel">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.137">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="paramLabel">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="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.162">getIndices</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getIndices--">Dataset</a></code></span></div>
+<div class="block">Generate an index dataset for current dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.171">getTransposedView</a>(int...&nbsp;axes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getTransposedView-int...-">IDataset</a></code></span></div>
+<div class="block">Permute copy of dataset's axes so that given order is old order:
+ 
+ <pre>
+  axisPerm = (p(0), p(1),...) =&gt; 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="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>axes</code> - if zero length then axes order reversed</dd>
+<dt><span class="returnLabel">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.198">transpose</a>(int...&nbsp;axes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#transpose-int...-">Dataset</a></code></span></div>
+<div class="block">See <a href="../../../../org/eclipse/january/dataset/Dataset.html#getTransposedView-int...-"><code>Dataset.getTransposedView(int...)</code></a></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.204">swapAxes</a>(int&nbsp;axis1,
+                        int&nbsp;axis2)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#swapAxes-int-int-">Dataset</a></code></span></div>
+<div class="block">Swap two axes in dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#swapAxes-int-int-">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="returnLabel">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.242">flatten</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#flatten--">Dataset</a></code></span></div>
+<div class="block">Flatten shape</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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-">
+<!--   -->
+</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.255">fillData</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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.303">getIterator</a>(boolean&nbsp;withPosition)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>withPosition</code> - set true if position is needed</dd>
+<dt><span class="returnLabel">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.316">getIterator</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.321">getPositionIterator</a>(int...&nbsp;axes)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>axes</code> - axes to omit from iterator</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a PositionIterator that misses out axes</dd>
+</dl>
+</li>
+</ul>
+<a name="getSliceIterator-int:A-int:A-int:A-">
+<!--   -->
+</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.326">getSliceIterator</a>(int[]&nbsp;start,
+                                      int[]&nbsp;stop,
+                                      int[]&nbsp;step)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator-int:A-int:A-int:A-">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="paramLabel">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="returnLabel">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.334">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="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator-org.eclipse.january.dataset.SliceND-">getSliceIterator</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an slice iterator that operates like an IndexIterator</dd>
+</dl>
+</li>
+</ul>
+<a name="getSliceIteratorFromAxes-int:A-boolean:A-">
+<!--   -->
+</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.345">getSliceIteratorFromAxes</a>(int[]&nbsp;pos,
+                                              boolean[]&nbsp;axes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">Dataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">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="returnLabel">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.377">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.382">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator-org.eclipse.january.dataset.Dataset-boolean-">Dataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator-org.eclipse.january.dataset.Dataset-boolean-">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="returnLabel">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.387">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByBoolean-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy get item with a condition specified by a boolean dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>selection</code> - a boolean dataset of same shape to use for selecting items</dd>
+<dt><span class="returnLabel">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.404">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBy1DIndex-org.eclipse.january.dataset.IntegerDataset-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy get item with an index dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>index</code> - an integer dataset</dd>
+<dt><span class="returnLabel">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.418">getByIndexes</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByIndexes-java.lang.Object...-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy get item with an array of indexing objects</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>The new selected dataset by index</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.433">hasFloatingPointElements</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.439">getElementsPerItem</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.444">getItemBytes</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>Size of an item in dataset in bytes</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.449">getSize</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize--">ILazyDataset</a></code></span></div>
+<div class="block">The size of the dataset is the number of items in the array</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.454">getShape</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape--">ILazyDataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.464">getRank</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getRank--">ILazyDataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.469">getNbytes</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.504">setShape</a>(int...&nbsp;shape)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape-int...-">ILazyDataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></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.617">getShapeRef</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShapeRef--">Dataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.622">getOffset</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.627">getStrides</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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/8/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.632">getBuffer</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.637">overrideInternal</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal-java.io.Serializable-int...-">Dataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal-java.io.Serializable-int...-">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="paramLabel">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-">
+<!--   -->
+</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.656">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - dataset</dd>
+<dd><code>offset</code> - output offset</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new strides</dd>
+</dl>
+</li>
+</ul>
+<a name="createStrides-int-int:A-int:A-int-int:A-">
+<!--   -->
+</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.669">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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>new strides</dd>
+</dl>
+</li>
+</ul>
+<a name="createStrides-org.eclipse.january.dataset.SliceND-org.eclipse.january.dataset.Dataset-int:A-int:A-">
+<!--   -->
+</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.695">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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>new shape</dd>
+</dl>
+</li>
+</ul>
+<a name="createStrides-org.eclipse.january.dataset.SliceND-int-int:A-int:A-int-int:A-int:A-">
+<!--   -->
+</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.710">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="paramLabel">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="returnLabel">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.737">getBroadcastView</a>(int...&nbsp;broadcastShape)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>view of dataset that is broadcasted to given shape</dd>
+</dl>
+</li>
+</ul>
+<a name="getSliceView-int:A-int:A-int:A-">
+<!--   -->
+</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.757">getSliceView</a>(int[]&nbsp;start,
+                            int[]&nbsp;stop,
+                            int[]&nbsp;step)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView-int:A-int:A-int:A-">IDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a view on a selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceView-int:A-int:A-int:A-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView-int:A-int:A-int:A-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView-int:A-int:A-int:A-">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="paramLabel">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="returnLabel">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.762">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">IDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a view on a selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="returnLabel">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.776">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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - </dd>
+<dt><span class="returnLabel">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.821">getFirst1DIndex</a>()</pre>
+<dl>
+<dt><span class="simpleTagLabel">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.829">get1DIndex</a>(int...&nbsp;n)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#get1DIndex-int...-">Dataset</a></code></span></div>
+<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="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>n</code> - the integer array specifying the n-D position</dd>
+<dt><span class="returnLabel">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.845">get1DIndex</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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.867">get1DIndex</a>(int&nbsp;i,
+                         int&nbsp;j)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the index on the data array corresponding to that location</dd>
+</dl>
+</li>
+</ul>
+<a name="get1DIndexFromShape-int:A-">
+<!--   -->
+</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.890">get1DIndexFromShape</a>(int[]&nbsp;n)</pre>
+</li>
+</ul>
+<a name="get1DIndexFromShape-int:A-int:A-">
+<!--   -->
+</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.894">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.953">getNDPosition</a>(int&nbsp;n)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getNDPosition-int-">Dataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>n</code> - The index in the array</dd>
+<dt><span class="returnLabel">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.972">getBufferLength</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.1005">checkAxis</a>(int&nbsp;axis)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#checkAxis-int-">Dataset</a></code></span></div>
+<div class="block">Check that axis is in range [-rank,rank)</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>sanitized axis in range [0, rank)</dd>
+</dl>
+</li>
+</ul>
+<a name="checkAxis-int-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>checkAxis</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+protected static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1010">checkAxis</a>(int&nbsp;rank,
+                                           int&nbsp;axis)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+</li>
+</ul>
+<a name="toString--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/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.1018">toString</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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/8/docs/api/java/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.1050">toString</a>(boolean&nbsp;showData)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.1081">setMaxLineLength</a>(int&nbsp;maxLineLength)</pre>
+<div class="block">Set maximum line length for toString() method</div>
+<dl>
+<dt><span class="paramLabel">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.1088">getMaxLineLength</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>maximum line length for toString() method</dd>
+</dl>
+</li>
+</ul>
+<a name="squeezeEnds--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>squeezeEnds</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1255">squeezeEnds</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds--">ILazyDataset</a></code></span></div>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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.1260">squeeze</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeeze--">IDataset</a></code></span></div>
+<div class="block">Remove dimensions of 1 in shape of the dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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.1265">squeeze</a>(boolean&nbsp;onlyFromEnds)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeeze-boolean-">IDataset</a></code></span></div>
+<div class="block">Remove dimensions of 1 in shape of the dataset from ends only if true</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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.1303">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isCompatibleWith-org.eclipse.january.dataset.ILazyDataset-">Dataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>g</code> - The dataset to be compared</dd>
+<dt><span class="returnLabel">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.1308">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/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#checkCompatibility-org.eclipse.january.dataset.ILazyDataset-">Dataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>g</code> - The dataset to be compared</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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.1313">reshape</a>(int...&nbsp;shape)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#reshape-int...-">Dataset</a></code></span></div>
+<div class="block">Returns new dataset with new shape but old data if possible, otherwise a copy is made</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - new shape</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>reshaped dataset</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.1331">calcSteps</a>(double&nbsp;start,
+                               double&nbsp;stop,
+                               double&nbsp;step)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>start</code> - </dd>
+<dd><code>stop</code> - </dd>
+<dd><code>step</code> - </dd>
+<dt><span class="returnLabel">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.1336">isComplex</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.1342">getRealPart</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.1347">getRealView</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>real part of dataset as a view</dd>
+</dl>
+</li>
+</ul>
+<a name="getSlice-int:A-int:A-int:A-">
+<!--   -->
+</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.1352">getSlice</a>(int[]&nbsp;start,
+                        int[]&nbsp;stop,
+                        int[]&nbsp;step)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-int:A-int:A-int:A-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice-int:A-int:A-int:A-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSlice-int:A-int:A-int:A-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-int:A-int:A-int:A-">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="paramLabel">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="returnLabel">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.1357">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="returnLabel">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.1362">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.IMonitor-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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-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>
+<dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="returnLabel">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.1367">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.IMonitor-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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-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>
+<dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+</dl>
+</li>
+</ul>
+<a name="getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">
+<!--   -->
+</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.1372">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">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="returnLabel">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.1382">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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - </dd>
+<dt><span class="returnLabel">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.1397">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="paramLabel">Parameters:</span></dt>
+<dd><code>iterator</code> - Slice iterator</dd>
+<dt><span class="returnLabel">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.1400">setSlice</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.SliceND-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy array slice</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.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:A-int:A-int:A-">
+<!--   -->
+</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.1418">setSlice</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy array slice</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">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="paramLabel">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="returnLabel">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.1431">setSlice</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy array slice</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.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.1439">all</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#all--">Dataset</a></code></span></div>
+<div class="block">Test if all items are true</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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.1444">all</a>(int&nbsp;axis)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.1449">any</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#any--">Dataset</a></code></span></div>
+<div class="block">Test if any items are true</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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.1454">any</a>(int&nbsp;axis)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.1459">ifloorDivide</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloorDivide-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place floor division with object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.1464">residual</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">Calculate residual of dataset with object o
+ See <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-boolean-"><code>Dataset.residual(Object o, boolean ignoreNaNs)</code></a> with ignoreNaNs = false</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.1469">residual</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-boolean-">Dataset</a></code></span></div>
+<div class="block">Calculate residual of dataset with object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-boolean-">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="returnLabel">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/8/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.1477">getStats</a>()</pre>
+<dl>
+<dt><span class="simpleTagLabel">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/8/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.1491">getStringStats</a>()</pre>
+<dl>
+<dt><span class="simpleTagLabel">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/8/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.1502">max</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">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="returnLabel">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.1507">max</a>(int&nbsp;axis,
+                   boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-">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="returnLabel">Returns:</span></dt>
+<dd>maxima along axis in dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="max-int:A-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.1512">max</a>(int[]&nbsp;axes,
+                   boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int:A-boolean...-">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> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>maxima in given axes of 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/8/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.1517">min</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">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="returnLabel">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.1522">min</a>(int&nbsp;axis,
+                   boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#min-int-boolean...-">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-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>minima along axis in dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="min-int:A-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.1527">min</a>(int[]&nbsp;axes,
+                   boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#min-int:A-boolean...-">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-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>minima in given axes of 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.1532">argMax</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax-boolean...-">Dataset</a></code></span></div>
+<div class="block">Find absolute index of maximum value (in a flattened view)</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">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="returnLabel">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.1540">argMax</a>(int&nbsp;axis,
+                             boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax-int-boolean...-">Dataset</a></code></span></div>
+<div class="block">Find indices of maximum values along given axis</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax-int-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>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>index dataset</dd>
+<dt><span class="simpleTagLabel">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.1545">argMin</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin-boolean...-">Dataset</a></code></span></div>
+<div class="block">Find absolute index of minimum value (in a flattened view)</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">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="returnLabel">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.1553">argMin</a>(int&nbsp;axis,
+                             boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin-int-boolean...-">Dataset</a></code></span></div>
+<div class="block">Find indices of minimum values along given axis</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin-int-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>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>index dataset</dd>
+<dt><span class="simpleTagLabel">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/8/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.1558">peakToPeak</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">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="returnLabel">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.1563">peakToPeak</a>(int&nbsp;axis,
+                          boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-int-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>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>peak-to-peak dataset, the difference of maxima and minima of dataset along axis</dd>
+</dl>
+</li>
+</ul>
+<a name="peakToPeak-int:A-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.1568">peakToPeak</a>(int[]&nbsp;axes,
+                          boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-int:A-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>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>peak-to-peak dataset, the difference of maxima and minima of dataset in given axes</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.1573">count</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">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="returnLabel">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.1578">count</a>(int&nbsp;axis,
+                     boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#count-int-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>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>number of items along axis in dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="count-int:A-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.1583">count</a>(int[]&nbsp;axes,
+                     boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#count-int:A-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>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>number of items in given axes of 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/8/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.1588">sum</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">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="returnLabel">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.1593">sum</a>(int&nbsp;axis,
+                   boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sum-int-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>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>sum along axis in dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="sum-int:A-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.1598">sum</a>(int[]&nbsp;axes,
+                   boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sum-int:A-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>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>sum  in given axes of 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/8/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.1603">product</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">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="returnLabel">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.1608">product</a>(int&nbsp;axis,
+                       boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#product-int-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>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>product along axis in dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="product-int:A-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.1613">product</a>(int[]&nbsp;axes,
+                       boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#product-int:A-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>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>product in given axes of 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/8/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.1618">mean</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">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="returnLabel">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.1623">mean</a>(int&nbsp;axis,
+                    boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#mean-int-boolean...-">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-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>mean along axis in dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="mean-int:A-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.1628">mean</a>(int[]&nbsp;axes,
+                    boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#mean-int:A-boolean...-">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-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>mean in given axes of 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.1633">variance</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>sample variance of whole dataset</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-boolean-boolean...-"><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.1638">variance</a>(boolean&nbsp;isWholePopulation,
+                       boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-boolean-boolean...-">Dataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-boolean-boolean...-">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-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">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.1643">variance</a>(int&nbsp;axis)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>sample variance along axis in dataset</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int-boolean-boolean...-"><code>with isWholePopulation = false</code></a></dd>
+</dl>
+</li>
+</ul>
+<a name="variance-int:A-">
+<!--   -->
+</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.1648">variance</a>(int[]&nbsp;axes)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int:A-">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="returnLabel">Returns:</span></dt>
+<dd>sample variance in given axes of dataset</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int:A-boolean-boolean...-"><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.1653">variance</a>(int&nbsp;axis,
+                        boolean&nbsp;isWholePopulation,
+                        boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int-boolean-boolean...-">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-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>sample variance along axis in dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="variance-int:A-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.1658">variance</a>(int[]&nbsp;axes,
+                        boolean&nbsp;isWholePopulation,
+                        boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int:A-boolean-boolean...-">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-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>sample variance in given axes of dataset</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.1663">stdDeviation</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation--">Dataset</a></code></span></div>
+<div class="block">Standard deviation is square root of the variance</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>sample standard deviation of all items in dataset</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-boolean-boolean...-"><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.1668">stdDeviation</a>(boolean&nbsp;isWholePopulation,
+                           boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-boolean-boolean...-">Dataset</a></code></span></div>
+<div class="block">Standard deviation is square root of the variance</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-boolean-boolean...-">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-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>sample standard deviation of all items in dataset</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-boolean-boolean...-"><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.1673">stdDeviation</a>(int&nbsp;axis)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int-">Dataset</a></code></span></div>
+<div class="block">Standard deviation is square root of the variance</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>standard deviation along axis in dataset</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int-boolean-boolean...-"><code>with isWholePopulation = false</code></a></dd>
+</dl>
+</li>
+</ul>
+<a name="stdDeviation-int:A-">
+<!--   -->
+</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.1678">stdDeviation</a>(int[]&nbsp;axes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-">Dataset</a></code></span></div>
+<div class="block">Standard deviation is square root of the variance</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-">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="returnLabel">Returns:</span></dt>
+<dd>standard deviation in given axes of dataset</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-boolean-boolean...-"><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.1683">stdDeviation</a>(int&nbsp;axis,
+                            boolean&nbsp;isWholePopulation,
+                            boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int-boolean-boolean...-">Dataset</a></code></span></div>
+<div class="block">Standard deviation is square root of the variance</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int-boolean-boolean...-">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-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>standard deviation along axis in dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="stdDeviation-int:A-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.1688">stdDeviation</a>(int[]&nbsp;axes,
+                            boolean&nbsp;isWholePopulation,
+                            boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-boolean-boolean...-">Dataset</a></code></span></div>
+<div class="block">Standard deviation is square root of the variance</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-boolean-boolean...-">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-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>standard deviation in given axes of dataset</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.1693">rootMeanSquare</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">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="returnLabel">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.1701">rootMeanSquare</a>(int&nbsp;axis,
+                              boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare-int-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>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>root mean square along axis in dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="rootMeanSquare-int:A-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.1710">rootMeanSquare</a>(int[]&nbsp;axes,
+                              boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare-int:A-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>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>root mean square in given axes of 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.1726">setItemDirect</a>(int&nbsp;dindex,
+                                      int&nbsp;sindex,
+                                      <a href="https://docs.oracle.com/javase/8/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="paramLabel">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.1753">getErrors</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getErrors--">ILazyDataset</a></code></span></div>
+<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="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.1762">getError</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getError--">Dataset</a></code></span></div>
+<div class="block">Get the error for the first item. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.1771">getError</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getError-int-">Dataset</a></code></span></div>
+<div class="block">Get the error for given position. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.1780">getError</a>(int&nbsp;i,
+                       int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getError-int-int-">Dataset</a></code></span></div>
+<div class="block">Get the error for given position. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getError-int-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="returnLabel">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.1789">getError</a>(int...&nbsp;pos)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getError-int...-">IDataset</a></code></span></div>
+<div class="block">Get the error for a given position.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.1798">getErrorArray</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray-int-">Dataset</a></code></span></div>
+<div class="block">Get the error values for given position</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.1807">getErrorArray</a>(int&nbsp;i,
+                              int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray-int-int-">Dataset</a></code></span></div>
+<div class="block">Get the error values for given position</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray-int-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="returnLabel">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.1816">getErrorArray</a>(int...&nbsp;pos)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getErrorArray-int...-">IDataset</a></code></span></div>
+<div class="block">Get the error values for a single point in the dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - of the point to be referenced</dd>
+<dt><span class="returnLabel">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.1824">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.1830">getErrorBuffer</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorBuffer--">Dataset</a></code></span></div>
+<div class="block">Get the (un-broadcasted) dataset that backs the (squared) error data</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.1858">setErrorBuffer</a>(<a href="https://docs.oracle.com/javase/8/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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/AggregateDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/AggregateDataset.html
new file mode 100644
index 0000000..0a2e3e6
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/AggregateDataset.html
@@ -0,0 +1,896 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:12 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AggregateDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AggregateDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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="seeLabel">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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#base">base</a></span></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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#AggregateDataset-boolean-org.eclipse.january.dataset.ILazyDataset...-">AggregateDataset</a></span>(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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static int[][]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#calcShapes-boolean-org.eclipse.january.dataset.ILazyDataset...-">calcShapes</a></span>(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 id="i1" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getDType--">getDType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getElementClass--">getElementClass</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getElementsPerItem--">getElementsPerItem</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getErrors--">getErrors</a></span>()</code>
+<div class="block">Get the errors, if any.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSize--">getSize</a></span>()</code>
+<div class="block">The size of the dataset is the number of items in the array</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a></span>(<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 id="i8" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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 id="i9" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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 id="i10" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice-int:A-int:A-int:A-">getSlice</a></span>(int[]&nbsp;start,
+        int[]&nbsp;stop,
+        int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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 id="i12" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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 id="i13" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSliceView-int:A-int:A-int:A-">getSliceView</a></span>(int[]&nbsp;start,
+            int[]&nbsp;stop,
+            int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr id="i14" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">getSliceView</a></span>(<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 id="i15" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">getSliceView</a></span>(<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 id="i16" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getTransposedView-int...-">getTransposedView</a></span>(int...&nbsp;axes)</code>
+<div class="block">Permute copy of dataset's axes so that given order is old order:</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#setErrors-java.io.Serializable-">setErrors</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i18" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#setShape-int...-">setShape</a></span>(int...&nbsp;shape)</code>
+<div class="block">Set a compatible shape for dataset.</div>
+</td>
+</tr>
+<tr id="i19" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#squeezeEnds--">squeezeEnds</a></span>()</code>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#toString--">toString</a></span>()</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:A-int...-">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-boolean-">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#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</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:A-int:A-">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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.108">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="paramLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>extend</code> - if true, extend rank by one</dd>
+<dd><code>datasets</code> - </dd>
+<dt><span class="returnLabel">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/8/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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize--">ILazyDataset</a></code></span></div>
+<div class="block">The size of the dataset is the number of items in the array</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape-int...-">ILazyDataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds--">ILazyDataset</a></code></span></div>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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:A-int:A-int:A-">
+<!--   -->
+</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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-int:A-int:A-int:A-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-int:A-int:A-int:A-">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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+<dt><span class="throwsLabel">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:A-int:A-int:A-">
+<!--   -->
+</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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">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="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+<dt><span class="throwsLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-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>
+<dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+<dt><span class="throwsLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+<dt><span class="throwsLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+<dt><span class="throwsLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-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>
+<dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+<dt><span class="throwsLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">ILazyDataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The sliced view of a lazy dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="getSliceView-int:A-int:A-int:A-">
+<!--   -->
+</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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView-int:A-int:A-int:A-">ILazyDataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView-int:A-int:A-int:A-">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="paramLabel">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="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">ILazyDataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getTransposedView-int...-">ILazyDataset</a></code></span></div>
+<div class="block">Permute copy of dataset's axes so that given order is old order:
+ 
+ <pre>
+  axisPerm = (p(0), p(1),...) =&gt; 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="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>axes</code> - if zero length then axes order reversed</dd>
+<dt><span class="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">ILazyDataset</a></code></span></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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/8/docs/api/java/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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&nbsp;errors)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors-java.io.Serializable-">ILazyDataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getErrors--">ILazyDataset</a></code></span></div>
+<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="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/BinaryOperation.Stub.html b/apidocs/2.3.0/org/eclipse/january/dataset/BinaryOperation.Stub.html
new file mode 100644
index 0000000..166b216
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/BinaryOperation.Stub.html
@@ -0,0 +1,408 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:12 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BinaryOperation.Stub (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BinaryOperation.Stub (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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:A-double-double-double-double-"><code>complexOperate(double[], double, double, double, double)</code></a>,
+  <a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#toString-java.lang.String-java.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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#Stub--">Stub</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#booleanOperate-long-long-">booleanOperate</a></span>(long&nbsp;a,
+              long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#complexOperate-double:A-double-double-double-double-">complexOperate</a></span>(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 id="i2" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#doubleOperate-double-double-">doubleOperate</a></span>(double&nbsp;a,
+             double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#longOperate-long-long-">longOperate</a></span>(long&nbsp;a,
+           long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#toString-java.lang.String-java.lang.String-">toString</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="Stub--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Stub</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BinaryOperation.Stub.html#line.63">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate-double-double-">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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate-long-long-">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="returnLabel">Returns:</span></dt>
+<dd>a op b</dd>
+</dl>
+</li>
+</ul>
+<a name="longOperate-long-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>longOperate</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BinaryOperation.Stub.html#line.78">longOperate</a>(long&nbsp;a,
+                        long&nbsp;b)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate-long-long-">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="returnLabel">Returns:</span></dt>
+<dd>a op b</dd>
+</dl>
+</li>
+</ul>
+<a name="complexOperate-double:A-double-double-double-double-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>complexOperate</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BinaryOperation.Stub.html#line.86">complexOperate</a>(double[]&nbsp;out,
+                           double&nbsp;ra,
+                           double&nbsp;ia,
+                           double&nbsp;rb,
+                           double&nbsp;ib)</pre>
+<div class="block">override this</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate-double:A-double-double-double-double-">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="paramLabel">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/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BinaryOperation.Stub.html#line.93">toString</a>(<a href="https://docs.oracle.com/javase/8/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/8/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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#toString-java.lang.String-java.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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/BinaryOperation.html b/apidocs/2.3.0/org/eclipse/january/dataset/BinaryOperation.html
new file mode 100644
index 0000000..e83acca
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/BinaryOperation.html
@@ -0,0 +1,362 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:12 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BinaryOperation (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BinaryOperation (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></span></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:A-double-double-double-double-"><code>BinaryOperation.Stub.complexOperate(double[], double, double, double, double)</code></a>,
+  <a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#toString-java.lang.String-java.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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate-long-long-">booleanOperate</a></span>(long&nbsp;a,
+              long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate-double:A-double-double-double-double-">complexOperate</a></span>(double[]&nbsp;out,
+              double&nbsp;ra,
+              double&nbsp;ia,
+              double&nbsp;rb,
+              double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate-double-double-">doubleOperate</a></span>(double&nbsp;a,
+             double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate-long-long-">longOperate</a></span>(long&nbsp;a,
+           long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#toString-java.lang.String-java.lang.String-">toString</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a op b</dd>
+</dl>
+</li>
+</ul>
+<a name="complexOperate-double:A-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="paramLabel">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/8/docs/api/java/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/8/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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>string to represent output</dd>
+<dt><span class="simpleTagLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/BooleanBroadcastIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/BooleanBroadcastIterator.html
new file mode 100644
index 0000000..9982b15
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/BooleanBroadcastIterator.html
@@ -0,0 +1,528 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:12 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BooleanBroadcastIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BooleanBroadcastIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanBroadcastIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BooleanBroadcastIterator.html" target="_top">Frames</a></li>
+<li><a href="BooleanBroadcastIterator.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class BooleanBroadcastIterator" class="title">Class BooleanBroadcastIterator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.IndexIterator</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.BooleanIterator</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.BooleanBroadcastIterator</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/BooleanBroadcastIterator.html#line.20">BooleanBroadcastIterator</a>
+extends <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></pre>
+<div class="block">Class to run over a pair of datasets in parallel with NumPy broadcasting to promote shapes
+ which have lower rank and outputs to a third dataset</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html#aDelta">aDelta</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html#aShape">aShape</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html#aStride">aStride</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html#endrank">endrank</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html#oDelta">oDelta</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html#oStride">oStride</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html#pos">pos</a></span></code>
+<div class="block">position in dataset</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.eclipse.january.dataset.BooleanIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aDataset">aDataset</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aMax">aMax</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aStart">aStart</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aStep">aStep</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#cDataset">cDataset</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#cIndex">cIndex</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#maxShape">maxShape</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oDataset">oDataset</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oIndex">oIndex</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oStart">oStart</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oStep">oStep</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#outputA">outputA</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#value">value</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#index">index</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html#BooleanBroadcastIterator-boolean-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">BooleanBroadcastIterator</a></span>(boolean&nbsp;v,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                        boolean&nbsp;createIfNull)</code>
+<div class="block">Construct a boolean iterator that stops at every position in the choice dataset where its value matches
+ the given boolean</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html#getFirstShape--">getFirstShape</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html#getMaskShape--">getMaskShape</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html#getPos--">getPos</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html#hasNext--">hasNext</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html#reset--">reset</a></span>()</code>
+<div class="block">Reset iterator</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.BooleanIterator">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator-boolean-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator-boolean-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#getChoice--">getChoice</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#getOutput--">getOutput</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#getShape--">getShape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="aShape">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>aShape</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.8">aShape</a></pre>
+</li>
+</ul>
+<a name="aStride">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>aStride</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.9">aStride</a></pre>
+</li>
+</ul>
+<a name="oStride">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>oStride</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.10">oStride</a></pre>
+</li>
+</ul>
+<a name="endrank">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>endrank</h4>
+<pre>protected&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.12">endrank</a></pre>
+</li>
+</ul>
+<a name="pos">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>pos</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.17">pos</a></pre>
+<div class="block">position in dataset</div>
+</li>
+</ul>
+<a name="aDelta">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>aDelta</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.18">aDelta</a></pre>
+</li>
+</ul>
+<a name="oDelta">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>oDelta</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.19">oDelta</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="BooleanBroadcastIterator-boolean-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BooleanBroadcastIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanBroadcastIterator.html#line.38">BooleanBroadcastIterator</a>(boolean&nbsp;v,
+                                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                                boolean&nbsp;createIfNull)</pre>
+<div class="block">Construct a boolean iterator that stops at every position in the choice dataset where its value matches
+ the given boolean</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>v</code> - boolean value</dd>
+<dd><code>a</code> - primary dataset</dd>
+<dd><code>c</code> - choice dataset</dd>
+<dd><code>o</code> - output dataset, can be null</dd>
+<dd><code>createIfNull</code> - if true create the output dataset if that is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasNext--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanBroadcastIterator.html#line.96">hasNext</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>true if there is another iteration</dd>
+</dl>
+</li>
+</ul>
+<a name="getFirstShape--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanBroadcastIterator.html#line.142">getFirstShape</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>shape of first broadcasted dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="getMaskShape--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMaskShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanBroadcastIterator.html#line.149">getMaskShape</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>shape of second broadcasted dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="reset--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanBroadcastIterator.html#line.154">reset</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset--">IndexIterator</a></code></span></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset--">reset</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getPos--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.40">getPos</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>position indices (nb this is reference not a copy so avoid changing and can be null)</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanBroadcastIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BooleanBroadcastIterator.html" target="_top">Frames</a></li>
+<li><a href="BooleanBroadcastIterator.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/BooleanContiguousIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/BooleanContiguousIterator.html
new file mode 100644
index 0000000..88130bb
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/BooleanContiguousIterator.html
@@ -0,0 +1,384 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:12 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BooleanContiguousIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BooleanContiguousIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanContiguousIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BooleanContiguousIterator.html" target="_top">Frames</a></li>
+<li><a href="BooleanContiguousIterator.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.BooleanIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class BooleanContiguousIterator" class="title">Class BooleanContiguousIterator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.IndexIterator</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.BooleanIterator</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.BooleanContiguousIterator</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/BooleanContiguousIterator.html#line.16">BooleanContiguousIterator</a>
+extends <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></pre>
+<div class="block">Class to run over a pair of contiguous datasets</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.eclipse.january.dataset.BooleanIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aDataset">aDataset</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aMax">aMax</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aStart">aStart</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aStep">aStep</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#cDataset">cDataset</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#cIndex">cIndex</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#maxShape">maxShape</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oDataset">oDataset</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oIndex">oIndex</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oStart">oStart</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oStep">oStep</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#outputA">outputA</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#value">value</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#index">index</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html#BooleanContiguousIterator-boolean-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">BooleanContiguousIterator</a></span>(boolean&nbsp;v,
+                         <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                         <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                         <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                         boolean&nbsp;createIfNull)</code>
+<div class="block">Construct a boolean iterator that stops at the position in choice dataset where its value matches
+ the given boolean</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html#getPos--">getPos</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html#hasNext--">hasNext</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html#reset--">reset</a></span>()</code>
+<div class="block">Reset iterator</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.BooleanIterator">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator-boolean-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator-boolean-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#getChoice--">getChoice</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#getOutput--">getOutput</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#getShape--">getShape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="BooleanContiguousIterator-boolean-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BooleanContiguousIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanContiguousIterator.html#line.29">BooleanContiguousIterator</a>(boolean&nbsp;v,
+                                 <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                 <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                                 <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                                 boolean&nbsp;createIfNull)</pre>
+<div class="block">Construct a boolean iterator that stops at the position in choice dataset where its value matches
+ the given boolean</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>v</code> - boolean value</dd>
+<dd><code>a</code> - primary dataset</dd>
+<dd><code>c</code> - choice dataset</dd>
+<dd><code>o</code> - output dataset, can be null</dd>
+<dd><code>createIfNull</code> - if true create the output dataset if that is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasNext--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanContiguousIterator.html#line.49">hasNext</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>true if there is another iteration</dd>
+</dl>
+</li>
+</ul>
+<a name="getPos--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanContiguousIterator.html#line.69">getPos</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>position indices (nb this is reference not a copy so avoid changing and can be null)</dd>
+</dl>
+</li>
+</ul>
+<a name="reset--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanContiguousIterator.html#line.74">reset</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset--">IndexIterator</a></code></span></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanContiguousIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BooleanContiguousIterator.html" target="_top">Frames</a></li>
+<li><a href="BooleanContiguousIterator.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.BooleanIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/BooleanDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/BooleanDataset.html
new file mode 100644
index 0000000..368828a
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/BooleanDataset.html
@@ -0,0 +1,1383 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:12 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BooleanDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BooleanDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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="seeLabel">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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getBoolean--">getBoolean</a></span>()</code>
+<div class="block">Get first item as a boolean.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getBoolean-int...-">getBoolean</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getBoolean-int-">getBoolean</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getBoolean-int-int-">getBoolean</a></span>(int&nbsp;i,
+          int&nbsp;j)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getByte--">getByte</a></span>()</code>
+<div class="block">Get first item as a byte.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getByte-int...-">getByte</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getByte-int-">getByte</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a byte.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getByte-int-int-">getByte</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get an item from given positionj as a byte.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getDouble--">getDouble</a></span>()</code>
+<div class="block">Get first item as a double.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getDouble-int...-">getDouble</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getDouble-int-">getDouble</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getDouble-int-int-">getDouble</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getElementBooleanAbs-int-">getElementBooleanAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getElementDoubleAbs-int-">getElementDoubleAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getElementLongAbs-int-">getElementLongAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getFloat--">getFloat</a></span>()</code>
+<div class="block">Get first item as a float.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getFloat-int...-">getFloat</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getFloat-int-">getFloat</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getFloat-int-int-">getFloat</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getInt--">getInt</a></span>()</code>
+<div class="block">Get first item as an int.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getInt-int...-">getInt</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getInt-int-">getInt</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getInt-int-int-">getInt</a></span>(int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getLong--">getLong</a></span>()</code>
+<div class="block">Get first item as a long.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getLong-int...-">getLong</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getLong-int-">getLong</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getLong-int-int-">getLong</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getShort--">getShort</a></span>()</code>
+<div class="block">Get first item as a short.</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getShort-int...-">getShort</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getShort-int-">getShort</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getShort-int-int-">getShort</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr id="i32" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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 id="i33" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getStringAbs-int-">getStringAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr id="i34" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getView-boolean-">getView</a></span>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr id="i35" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i36" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i37" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i38" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i39" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i40" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i41" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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:A-boolean:A-org.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-org.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-int-">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-int-">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-int-">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-int...-">set</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#set-java.lang.Object-int-">set</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#set-java.lang.Object-int-int-">set</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setAbs-int-boolean-">setAbs</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setByIndexes-java.lang.Object-java.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-int...-">setItem</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setItem-boolean-int-">setItem</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setItem-boolean-int-int-">setItem</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setItemDirect-int-int-java.lang.Object-">setItemDirect</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">setItemsOnAxes</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setObjectAbs-int-java.lang.Object-">setObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setSlice-java.lang.Object-org.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-boolean...-">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-int-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps-double-double-double-">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast-boolean-int-int-">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#cast-int-java.lang.Class-boolean-">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-int-">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-org.eclipse.january.dataset.AbstractDataset-boolean-boolean-">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.Dataset-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-int-int:A-int:A-int-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-org.eclipse.january.dataset.Dataset-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-int-int:A-int:A-int-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData-java.lang.Object-int-int:A-">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-int-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-int:A-">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-boolean-">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#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-int-">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-int-">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#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-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-int:A-int:A-int:A-">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:A-int:A-int:A-">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:A-boolean:A-">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView-int:A-int:A-int:A-">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:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max-int-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int:A-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int-boolean...-">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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer-java.io.Serializable-">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength-int-">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape-int...-">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int:A-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes-int-int-">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-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-boolean-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-boolean-boolean...-">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:A-int...-">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-boolean-">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#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#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName--">getName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors--">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata-int:A-int:A-">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors-java.io.Serializable-">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty--">setDirty</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata--">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata-org.eclipse.january.metadata.MetadataType-">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata-java.lang.Class-">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass--">getElementClass</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>
+<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="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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">ILazyDataset</a></code></span></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.107">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.112">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.117">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.122">getDouble</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble--">Dataset</a></code></span></div>
+<div class="block">Get first item as a double. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.127">getDouble</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a double. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.132">getDouble</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a double. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getDouble-int-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="returnLabel">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.137">getDouble</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.142">getFloat</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat--">Dataset</a></code></span></div>
+<div class="block">Get first item as a float. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.147">getFloat</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a float. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.152">getFloat</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a float. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getFloat-int-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="returnLabel">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.157">getFloat</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.162">getLong</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong--">Dataset</a></code></span></div>
+<div class="block">Get first item as a long. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.167">getLong</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a long. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.172">getLong</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a long. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getLong-int-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="returnLabel">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.177">getLong</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.182">getInt</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt--">Dataset</a></code></span></div>
+<div class="block">Get first item as an int. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.187">getInt</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an int. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.192">getInt</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an int. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getInt-int-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="returnLabel">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.197">getInt</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.202">getShort</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort--">Dataset</a></code></span></div>
+<div class="block">Get first item as a short. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.207">getShort</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a short. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.212">getShort</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a short. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getShort-int-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="returnLabel">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.217">getShort</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.222">getByte</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte--">Dataset</a></code></span></div>
+<div class="block">Get first item as a byte. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.227">getByte</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a byte. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.232">getByte</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given positionj as a byte. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getByte-int-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="returnLabel">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.237">getByte</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.242">getBoolean</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean--">Dataset</a></code></span></div>
+<div class="block">Get first item as a boolean. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.247">getBoolean</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.252">getBoolean</a>(int&nbsp;i,
+                          int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getBoolean-int-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="returnLabel">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.257">getBoolean</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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/8/docs/api/java/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.262">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.268">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">AbstractDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="returnLabel">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.281">iadd</a>(<a href="https://docs.oracle.com/javase/8/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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.295">isubtract</a>(<a href="https://docs.oracle.com/javase/8/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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.309">imultiply</a>(<a href="https://docs.oracle.com/javase/8/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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.320">idivide</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place division with object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.325">iremainder</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place remainder</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.331">ipower</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place raise to power of object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.337">residual</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">Dataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.BooleanDatasetBase">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/BooleanDatasetBase.html b/apidocs/2.3.0/org/eclipse/january/dataset/BooleanDatasetBase.html
new file mode 100644
index 0000000..80db34d
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/BooleanDatasetBase.html
@@ -0,0 +1,2262 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:12 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BooleanDatasetBase (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BooleanDatasetBase (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":9,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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="seeLabel">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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#data">data</a></span></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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#containsInfs--">containsInfs</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#containsInvalidNumbers--">containsInvalidNumbers</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#containsNans--">containsNans</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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 id="i5" class="rowColor">
+<td class="colFirst"><code>protected static boolean[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#createArray-int-">createArray</a></span>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i7" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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 id="i9" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#get--">get</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#get-int...-">get</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#get-int-">get</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#get-int-int-">get</a></span>(int&nbsp;i,
+   int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getAbs-int-">getAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get a value from an absolute index of the internal array.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getBoolean--">getBoolean</a></span>()</code>
+<div class="block">Get first item as a boolean.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getBoolean-int...-">getBoolean</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getBoolean-int-">getBoolean</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getBoolean-int-int-">getBoolean</a></span>(int&nbsp;i,
+          int&nbsp;j)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getBufferLength--">getBufferLength</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getByte--">getByte</a></span>()</code>
+<div class="block">Get first item as a byte.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getByte-int...-">getByte</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getByte-int-">getByte</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a byte.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getByte-int-int-">getByte</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get an item from given positionj as a byte.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>boolean[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getData--">getData</a></span>()</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 id="i24" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getDouble--">getDouble</a></span>()</code>
+<div class="block">Get first item as a double.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getDouble-int...-">getDouble</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getDouble-int-">getDouble</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getDouble-int-int-">getDouble</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getDType--">getDType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getElementBooleanAbs-int-">getElementBooleanAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getElementDoubleAbs-int-">getElementDoubleAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getElementLongAbs-int-">getElementLongAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getFloat--">getFloat</a></span>()</code>
+<div class="block">Get first item as a float.</div>
+</td>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getFloat-int...-">getFloat</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i34" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getFloat-int-">getFloat</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr id="i35" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getFloat-int-int-">getFloat</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getInt--">getInt</a></span>()</code>
+<div class="block">Get first item as an int.</div>
+</td>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getInt-int...-">getInt</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i38" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getInt-int-">getInt</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getInt-int-int-">getInt</a></span>(int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getLong--">getLong</a></span>()</code>
+<div class="block">Get first item as a long.</div>
+</td>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getLong-int...-">getLong</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getLong-int-">getLong</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr id="i43" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getLong-int-int-">getLong</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr id="i44" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getObject--">getObject</a></span>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr id="i45" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getObject-int...-">getObject</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i46" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getObject-int-">getObject</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i47" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getObject-int-int-">getObject</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i48" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getObjectAbs-int-">getObjectAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr id="i49" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getShort--">getShort</a></span>()</code>
+<div class="block">Get first item as a short.</div>
+</td>
+</tr>
+<tr id="i50" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getShort-int...-">getShort</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i51" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getShort-int-">getShort</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr id="i52" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getShort-int-int-">getShort</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr id="i53" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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 id="i54" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getString--">getString</a></span>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr id="i55" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getString-int...-">getString</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i56" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getString-int-">getString</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i57" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getString-int-int-">getString</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i58" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getStringAbs-int-">getStringAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr id="i59" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getUniqueItems--">getUniqueItems</a></span>()</code>
+<div class="block">Get unique items</div>
+</td>
+</tr>
+<tr id="i60" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getView-boolean-">getView</a></span>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr id="i61" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i62" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i63" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i64" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#ifloor--">ifloor</a></span>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr id="i65" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i66" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i67" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i68" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i69" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#maxPos-boolean...-">maxPos</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i70" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#minPos-boolean...-">minPos</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i71" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i72" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#resize-int...-">resize</a></span>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr id="i73" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#set-java.lang.Object-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i74" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#set-java.lang.Object-int...-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i75" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#set-java.lang.Object-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i76" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#set-java.lang.Object-int-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i77" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setAbs-int-boolean-">setAbs</a></span>(int&nbsp;index,
+      boolean&nbsp;val)</code>
+<div class="block">Set a value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i78" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i79" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i80" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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 id="i81" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setData--">setData</a></span>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr id="i82" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setItem-boolean-">setItem</a></span>(boolean&nbsp;value)</code>
+<div class="block">Sets the value at first point to the passed value.</div>
+</td>
+</tr>
+<tr id="i83" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setItem-boolean-int...-">setItem</a></span>(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 id="i84" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setItem-boolean-int-">setItem</a></span>(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 id="i85" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setItem-boolean-int-int-">setItem</a></span>(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 id="i86" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setItemDirect-int-int-java.lang.Object-">setItemDirect</a></span>(int&nbsp;dindex,
+             int&nbsp;sindex,
+             <a href="https://docs.oracle.com/javase/8/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 id="i87" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">setItemsOnAxes</a></span>(int[]&nbsp;pos,
+              boolean[]&nbsp;axes,
+              <a href="https://docs.oracle.com/javase/8/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 id="i88" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setObjectAbs-int-java.lang.Object-">setObjectAbs</a></span>(int&nbsp;index,
+            <a href="https://docs.oracle.com/javase/8/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 id="i89" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i90" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#sort-java.lang.Integer-">sort</a></span>(<a href="https://docs.oracle.com/javase/8/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-boolean...-">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-int-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps-double-double-double-">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast-boolean-int-int-">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#cast-int-java.lang.Class-boolean-">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-int-">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-org.eclipse.january.dataset.AbstractDataset-boolean-boolean-">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.Dataset-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-int-int:A-int:A-int-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-org.eclipse.january.dataset.Dataset-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-int-int:A-int:A-int-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData-java.lang.Object-int-int:A-">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-int-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-int:A-">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-boolean-">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#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-int-">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-int-">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#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-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-int:A-int:A-int:A-">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:A-int:A-int:A-">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:A-boolean:A-">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView-int:A-int:A-int:A-">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:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max-int-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int:A-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int-boolean...-">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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer-java.io.Serializable-">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength-int-">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape-int...-">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int:A-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes-int-int-">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-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-boolean-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-boolean-boolean...-">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:A-int...-">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-boolean-">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#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#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName--">getName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors--">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata-int:A-int:A-">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors-java.io.Serializable-">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty--">setDirty</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata--">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata-org.eclipse.january.metadata.MetadataType-">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata-java.lang.Class-">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass--">getElementClass</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>
+<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;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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData--">AbstractDataset</a></code></span></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>type of dataset item</dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.157">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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/BooleanDatasetBase.html#line.195">hashCode</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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.200">clone</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">ILazyDataset</a></code></span></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.241">fill</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">Fill dataset with given object</div>
+<dl>
+<dt><span class="returnLabel">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.256">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="returnLabel">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.261">getBufferLength</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.268">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="returnLabel">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.283">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="paramLabel">Parameters:</span></dt>
+<dd><code>index</code> - absolute index</dd>
+<dt><span class="returnLabel">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.288">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.293">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.298">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.303">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.308">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.322">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="paramLabel">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.328">setItemDirect</a>(int&nbsp;dindex,
+                             int&nbsp;sindex,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.lang.Object-">AbstractDataset</a></code></span></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.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.335">setObjectAbs</a>(int&nbsp;index,
+                         <a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs-int-java.lang.Object-">Dataset</a></code></span></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.347">get</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item in first position</dd>
+<dt><span class="simpleTagLabel">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.355">get</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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.364">get</a>(int&nbsp;i,
+                   int&nbsp;j)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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.372">get</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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/8/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.377">getObject</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject--">Dataset</a></code></span></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.382">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.387">getObject</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.392">getObject</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.397">getString</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString--">Dataset</a></code></span></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.402">getString</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.407">getString</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.412">getString</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.417">getDouble</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble--">Dataset</a></code></span></div>
+<div class="block">Get first item as a double. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.422">getDouble</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a double. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.427">getDouble</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a double. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.432">getDouble</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.437">getFloat</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat--">Dataset</a></code></span></div>
+<div class="block">Get first item as a float. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.442">getFloat</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a float. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.447">getFloat</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a float. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.452">getFloat</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.457">getLong</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong--">Dataset</a></code></span></div>
+<div class="block">Get first item as a long. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.462">getLong</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a long. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.467">getLong</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a long. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.472">getLong</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.477">getInt</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt--">Dataset</a></code></span></div>
+<div class="block">Get first item as an int. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.482">getInt</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an int. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.487">getInt</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an int. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.492">getInt</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.497">getShort</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort--">Dataset</a></code></span></div>
+<div class="block">Get first item as a short. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.502">getShort</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a short. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.507">getShort</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a short. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.512">getShort</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.517">getByte</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte--">Dataset</a></code></span></div>
+<div class="block">Get first item as a byte. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.522">getByte</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a byte. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.527">getByte</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given positionj as a byte. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.532">getByte</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.537">getBoolean</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean--">Dataset</a></code></span></div>
+<div class="block">Get first item as a boolean. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.542">getBoolean</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.547">getBoolean</a>(int&nbsp;i,
+                          int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.552">getBoolean</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.562">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="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - </dd>
+<dt><span class="simpleTagLabel">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.572">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="paramLabel">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.583">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="paramLabel">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.593">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="paramLabel">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.598">set</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-">Dataset</a></code></span></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.603">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-">Dataset</a></code></span></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.608">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-int-">Dataset</a></code></span></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.613">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set-java.lang.Object-int...-">IDataset</a></code></span></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.622">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize-int...-">IDataset</a></code></span></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.646">sort</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sort-java.lang.Integer-">Dataset</a></code></span></div>
+<div class="block">In-place sort of dataset</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis</code> - to sort along. If null, then the flattened view is sorted</dd>
+<dt><span class="returnLabel">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.651">getUniqueItems</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getUniqueItems--">Dataset</a></code></span></div>
+<div class="block">Get unique items</div>
+<dl>
+<dt><span class="returnLabel">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.668">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">AbstractDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="returnLabel">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.680">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">Dataset</a></code></span></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.692">setByBoolean</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></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="paramLabel">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="returnLabel">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.720">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.747">setByIndexes</a>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.786">setSlice</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>The dataset with the sliced set to object</dd>
+</dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes-int:A-boolean:A-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.826">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl>
+<dt><span class="paramLabel">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:A-boolean:A-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.845">setItemsOnAxes</a>(int[]&nbsp;pos,
+                           boolean[]&nbsp;axes,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">Dataset</a></code></span></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.876">maxPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.892">minPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.908">containsNans</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.913">containsInfs</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.918">containsInvalidNumbers</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.923">iadd</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place addition with object o</div>
+<dl>
+<dt><span class="returnLabel">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.928">isubtract</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place subtraction with object o</div>
+<dl>
+<dt><span class="returnLabel">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.933">imultiply</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place multiplication with object o</div>
+<dl>
+<dt><span class="returnLabel">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.938">idivide</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place division with object o</div>
+<dl>
+<dt><span class="returnLabel">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.943">ifloor</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor--">Dataset</a></code></span></div>
+<div class="block">In-place floor</div>
+<dl>
+<dt><span class="returnLabel">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.948">iremainder</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place remainder</div>
+<dl>
+<dt><span class="returnLabel">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.953">ipower</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place raise to power of object o</div>
+<dl>
+<dt><span class="returnLabel">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.958">residual</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">Dataset</a></code></span></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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/BooleanIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/BooleanIterator.html
new file mode 100644
index 0000000..c53ebc9
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/BooleanIterator.html
@@ -0,0 +1,684 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:12 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BooleanIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BooleanIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class BooleanIterator" class="title">Class BooleanIterator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.IndexIterator</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.BooleanIterator</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset">BooleanBroadcastIterator</a>, <a href="../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset">BooleanContiguousIterator</a>, <a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset">BooleanNullIterator</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.19">BooleanIterator</a>
+extends <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></pre>
+<div class="block">Base class for boolean iterators for pairs of dataset where the second dataset could be broadcast to the first and
+ is used to select where {<a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext--"><code>IndexIterator.hasNext()</code></a> returns true. An optional third dataset can specify the output.
+ For speed, there are public members.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aDataset">aDataset</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aMax">aMax</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aStart">aStart</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aStep">aStep</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#cDataset">cDataset</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#cIndex">cIndex</a></span></code>
+<div class="block">Index in choice dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#maxShape">maxShape</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oDataset">oDataset</a></span></code>
+<div class="block">Output dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oIndex">oIndex</a></span></code>
+<div class="block">Index in output dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oStart">oStart</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oStep">oStep</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#outputA">outputA</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#value">value</a></span></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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#BooleanIterator-boolean-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">BooleanIterator</a></span>(boolean&nbsp;v,
+               <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+               <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+               <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Construct a boolean iterator that stops at the given boolean value in choice dataset</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator-boolean-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator</a></span>(boolean&nbsp;v,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset where its value matches
+ the given boolean</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator-boolean-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">createIterator</a></span>(boolean&nbsp;v,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+              boolean&nbsp;createIfNull)</code>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset where its value matches
+ the given boolean</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c)</code>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset with a true value</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset with a true value</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#getChoice--">getChoice</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#getOutput--">getOutput</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#getShape--">getShape</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getPos--">getPos</a>, <a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext--">hasNext</a>, <a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset--">reset</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="value">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>value</h4>
+<pre>protected final&nbsp;boolean <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.77">value</a></pre>
+</li>
+</ul>
+<a name="cIndex">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cIndex</h4>
+<pre>public&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.82">cIndex</a></pre>
+<div class="block">Index in choice dataset</div>
+</li>
+</ul>
+<a name="oIndex">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>oIndex</h4>
+<pre>public&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.87">oIndex</a></pre>
+<div class="block">Index in output dataset</div>
+</li>
+</ul>
+<a name="oDataset">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>oDataset</h4>
+<pre>protected&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a> <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.92">oDataset</a></pre>
+<div class="block">Output dataset</div>
+</li>
+</ul>
+<a name="outputA">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>outputA</h4>
+<pre>protected final&nbsp;boolean <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.94">outputA</a></pre>
+</li>
+</ul>
+<a name="maxShape">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>maxShape</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.96">maxShape</a></pre>
+</li>
+</ul>
+<a name="aStep">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>aStep</h4>
+<pre>protected final&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.98">aStep</a></pre>
+</li>
+</ul>
+<a name="oStep">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>oStep</h4>
+<pre>protected&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.99">oStep</a></pre>
+</li>
+</ul>
+<a name="aMax">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>aMax</h4>
+<pre>protected&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.100">aMax</a></pre>
+</li>
+</ul>
+<a name="aStart">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>aStart</h4>
+<pre>protected&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.101">aStart</a></pre>
+</li>
+</ul>
+<a name="oStart">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>oStart</h4>
+<pre>protected&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.101">oStart</a></pre>
+</li>
+</ul>
+<a name="aDataset">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>aDataset</h4>
+<pre>protected&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a> <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.103">aDataset</a></pre>
+</li>
+</ul>
+<a name="cDataset">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>cDataset</h4>
+<pre>protected&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a> <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.104">cDataset</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="BooleanIterator-boolean-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BooleanIterator</h4>
+<pre>protected&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.126">BooleanIterator</a>(boolean&nbsp;v,
+                          <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                          <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                          <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</pre>
+<div class="block">Construct a boolean iterator that stops at the given boolean value in choice dataset</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>v</code> - boolean value</dd>
+<dd><code>a</code> - primary dataset</dd>
+<dd><code>c</code> - choice dataset</dd>
+<dd><code>o</code> - output dataset, can be null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createIterator</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.27">createIterator</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c)</pre>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset with a true value</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - primary dataset</dd>
+<dd><code>c</code> - choice dataset, can be null to choose all</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a name="createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createIterator</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.38">createIterator</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                                             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</pre>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset with a true value</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - primary dataset</dd>
+<dd><code>c</code> - choice dataset, can be null to choose all</dd>
+<dd><code>o</code> - output dataset, can be null</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a name="createIterator-boolean-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createIterator</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.51">createIterator</a>(boolean&nbsp;v,
+                                             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                                             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</pre>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset where its value matches
+ the given boolean</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>v</code> - boolean value</dd>
+<dd><code>a</code> - primary dataset</dd>
+<dd><code>c</code> - choice dataset, can be null to choose all</dd>
+<dd><code>o</code> - output dataset, can be null</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a name="createIterator-boolean-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createIterator</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.65">createIterator</a>(boolean&nbsp;v,
+                                             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                                             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                                             boolean&nbsp;createIfNull)</pre>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset where its value matches
+ the given boolean</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>v</code> - boolean value</dd>
+<dd><code>a</code> - primary dataset</dd>
+<dd><code>c</code> - choice dataset, can be null to choose all</dd>
+<dd><code>o</code> - output dataset, can be null</dd>
+<dd><code>createIfNull</code> - if true create the output dataset if that is null</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a name="getChoice--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getChoice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.110">getChoice</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>choice</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a name="getShape--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.115">getShape</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">Returns:</span></dt>
+<dd>shape of iterator (can be null, if not known or applicable)</dd>
+</dl>
+</li>
+</ul>
+<a name="getOutput--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getOutput</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.151">getOutput</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>output dataset (can be null)</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/BooleanNullIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/BooleanNullIterator.html
new file mode 100644
index 0000000..09ecc21
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/BooleanNullIterator.html
@@ -0,0 +1,548 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:12 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BooleanNullIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BooleanNullIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanNullIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BooleanNullIterator.html" target="_top">Frames</a></li>
+<li><a href="BooleanNullIterator.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class BooleanNullIterator" class="title">Class BooleanNullIterator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.IndexIterator</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.BooleanIterator</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.BooleanNullIterator</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/BooleanNullIterator.html#line.20">BooleanNullIterator</a>
+extends <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></pre>
+<div class="block">Class to run over a single dataset with NumPy broadcasting to promote shapes
+ which have lower rank and outputs to a second dataset</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html#aDelta">aDelta</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html#aShape">aShape</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html#aStride">aStride</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html#endrank">endrank</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html#oDelta">oDelta</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html#oStride">oStride</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html#pos">pos</a></span></code>
+<div class="block">position in dataset</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.eclipse.january.dataset.BooleanIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aDataset">aDataset</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aMax">aMax</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aStart">aStart</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aStep">aStep</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#cDataset">cDataset</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#cIndex">cIndex</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#maxShape">maxShape</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oDataset">oDataset</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oIndex">oIndex</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oStart">oStart</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oStep">oStep</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#outputA">outputA</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#value">value</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#index">index</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html#BooleanNullIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">BooleanNullIterator</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html#BooleanNullIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">BooleanNullIterator</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html#BooleanNullIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-boolean-boolean-">BooleanNullIterator</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html#getFirstShape--">getFirstShape</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html#getPos--">getPos</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html#hasNext--">hasNext</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html#reset--">reset</a></span>()</code>
+<div class="block">Reset iterator</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.BooleanIterator">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator-boolean-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator-boolean-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#getChoice--">getChoice</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#getOutput--">getOutput</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#getShape--">getShape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="aShape">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>aShape</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.8">aShape</a></pre>
+</li>
+</ul>
+<a name="aStride">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>aStride</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.9">aStride</a></pre>
+</li>
+</ul>
+<a name="oStride">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>oStride</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.10">oStride</a></pre>
+</li>
+</ul>
+<a name="endrank">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>endrank</h4>
+<pre>protected&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.12">endrank</a></pre>
+</li>
+</ul>
+<a name="pos">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>pos</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.17">pos</a></pre>
+<div class="block">position in dataset</div>
+</li>
+</ul>
+<a name="aDelta">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>aDelta</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.18">aDelta</a></pre>
+</li>
+</ul>
+<a name="oDelta">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>oDelta</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.19">oDelta</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="BooleanNullIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BooleanNullIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanNullIterator.html#line.26">BooleanNullIterator</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                           <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>o</code> - (can be null for new dataset, or a)</dd>
+</dl>
+</li>
+</ul>
+<a name="BooleanNullIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BooleanNullIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanNullIterator.html#line.36">BooleanNullIterator</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                           <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                           boolean&nbsp;createIfNull)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>o</code> - (can be null for new dataset, or a)</dd>
+<dd><code>createIfNull</code> - if true create the output dataset if that is null
+ (by default, can create float or complex datasets)</dd>
+</dl>
+</li>
+</ul>
+<a name="BooleanNullIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-boolean-boolean-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BooleanNullIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanNullIterator.html#line.47">BooleanNullIterator</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                           <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                           boolean&nbsp;createIfNull,
+                           boolean&nbsp;allowInteger,
+                           boolean&nbsp;allowComplex)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>o</code> - (can be null for new dataset, or a)</dd>
+<dd><code>createIfNull</code> - if true create the output dataset if that is null</dd>
+<dd><code>allowInteger</code> - if true, can create integer datasets</dd>
+<dd><code>allowComplex</code> - if true, can create complex datasets</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasNext--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanNullIterator.html#line.109">hasNext</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>true if there is another iteration</dd>
+</dl>
+</li>
+</ul>
+<a name="reset--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanNullIterator.html#line.148">reset</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset--">IndexIterator</a></code></span></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset--">reset</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getFirstShape--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.35">getFirstShape</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>shape of first broadcasted dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="getPos--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.40">getPos</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>position indices (nb this is reference not a copy so avoid changing and can be null)</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanNullIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BooleanNullIterator.html" target="_top">Frames</a></li>
+<li><a href="BooleanNullIterator.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/BroadcastIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/BroadcastIterator.html
new file mode 100644
index 0000000..9a3457e
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/BroadcastIterator.html
@@ -0,0 +1,512 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:12 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BroadcastIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BroadcastIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9,"i2":9,"i3":10,"i4":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BroadcastIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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.18">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.<p>
+ 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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#aDouble">aDouble</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#aLong">aLong</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#oDataset">oDataset</a></span></code>
+<div class="block">Output dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#oIndex">oIndex</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#outputA">outputA</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#outputB">outputB</a></span></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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#BroadcastIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">BroadcastIterator</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 id="i1" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 id="i2" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">createIterator</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#getOutput--">getOutput</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#storeCurrentValues--">storeCurrentValues</a></span>()</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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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.40">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.44">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.48">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.52">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.54">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.55">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.57">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.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="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.24">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.28">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.73">getOutput</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.78">storeCurrentValues</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#storeCurrentValues--">BroadcastIteratorBase</a></code></span></div>
+<div class="block">Read and store current values</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BroadcastIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/BroadcastIteratorBase.html b/apidocs/2.3.0/org/eclipse/january/dataset/BroadcastIteratorBase.html
new file mode 100644
index 0000000..ea30253
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/BroadcastIteratorBase.html
@@ -0,0 +1,545 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:12 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BroadcastIteratorBase (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BroadcastIteratorBase (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastPairIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#aDataset">aDataset</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#aIndex">aIndex</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#asDouble">asDouble</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bDataset">bDataset</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bDouble">bDouble</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bIndex">bIndex</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bLong">bLong</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#maxShape">maxShape</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#pos">pos</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#read">read</a></span></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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#BroadcastIteratorBase-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">BroadcastIteratorBase</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#getPos--">getPos</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#getShape--">getShape</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#isOutputDouble--">isOutputDouble</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#setOutputDouble-boolean-">setOutputDouble</a></span>(boolean&nbsp;asDouble)</code>
+<div class="block">Set to output doubles</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected abstract void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#storeCurrentValues--">storeCurrentValues</a></span>()</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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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="returnLabel">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="paramLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastPairIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/BroadcastPairIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/BroadcastPairIterator.html
new file mode 100644
index 0000000..8a91920
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/BroadcastPairIterator.html
@@ -0,0 +1,407 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:12 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BroadcastPairIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BroadcastPairIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastPairIterator.html#BroadcastPairIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">BroadcastPairIterator</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastPairIterator.html#getFirstShape--">getFirstShape</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastPairIterator.html#getSecondShape--">getSecondShape</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastPairIterator.html#hasNext--">hasNext</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastPairIterator.html#reset--">reset</a></span>()</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-org.eclipse.january.dataset.Dataset-">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dd><code>o</code> - (can be null for new dataset, a or b)</dd>
+<dd><code>createIfNull</code> - </dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasNext--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastPairIterator.html#line.107">hasNext</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>true if there is another iteration</dd>
+</dl>
+</li>
+</ul>
+<a name="getFirstShape--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastPairIterator.html#line.172">getFirstShape</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>shape of first broadcasted dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="getSecondShape--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSecondShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastPairIterator.html#line.179">getSecondShape</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>shape of second broadcasted dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="reset--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastPairIterator.html#line.184">reset</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset--">IndexIterator</a></code></span></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.BroadcastIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/BroadcastSelfIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/BroadcastSelfIterator.html
new file mode 100644
index 0000000..e96d0c5
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/BroadcastSelfIterator.html
@@ -0,0 +1,353 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:12 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BroadcastSelfIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BroadcastSelfIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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.19">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.<p>
+ 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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html#BroadcastSelfIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">BroadcastSelfIterator</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 id="i1" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html#storeCurrentValues--">storeCurrentValues</a></span>()</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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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.28">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.21">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.36">storeCurrentValues</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#storeCurrentValues--">BroadcastIteratorBase</a></code></span></div>
+<div class="block">Read and store current values</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.BroadcastIteratorBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/BroadcastSingleIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/BroadcastSingleIterator.html
new file mode 100644
index 0000000..31a57c3
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/BroadcastSingleIterator.html
@@ -0,0 +1,393 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:12 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BroadcastSingleIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BroadcastSingleIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastUtils.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html#BroadcastSingleIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">BroadcastSingleIterator</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html#getFirstShape--">getFirstShape</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html#getSecondShape--">getSecondShape</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html#hasNext--">hasNext</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html#reset--">reset</a></span>()</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-org.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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasNext--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastSingleIterator.html#line.67">hasNext</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>true if there is another iteration</dd>
+</dl>
+</li>
+</ul>
+<a name="getFirstShape--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastSingleIterator.html#line.110">getFirstShape</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>shape of first broadcasted dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="getSecondShape--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSecondShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastSingleIterator.html#line.117">getSecondShape</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>shape of second broadcasted dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="reset--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastSingleIterator.html#line.122">reset</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset--">IndexIterator</a></code></span></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastUtils.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.BroadcastIteratorBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/BroadcastUtils.html b/apidocs/2.3.0/org/eclipse/january/dataset/BroadcastUtils.html
new file mode 100644
index 0000000..cb2e78a
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/BroadcastUtils.html
@@ -0,0 +1,438 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:12 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BroadcastUtils (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BroadcastUtils (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastUtils.html#BroadcastUtils--">BroadcastUtils</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastUtils.html#broadcastShapes-int:A...-">broadcastShapes</a></span>(int[]...&nbsp;shapes)</code>
+<div class="block">Take in shapes and broadcast them to same rank</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastUtils.html#broadcastShapesToMax-int:A-int:A...-">broadcastShapesToMax</a></span>(int[]&nbsp;maxShape,
+                    int[]...&nbsp;shapes)</code>
+<div class="block">Take in shapes and broadcast them to maximum shape</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static int[][]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastUtils.html#calculateBroadcastShapes-int:A-int-int...-">calculateBroadcastShapes</a></span>(int[]&nbsp;oldShape,
+                        int&nbsp;size,
+                        int...&nbsp;newShape)</code>
+<div class="block">Calculate shapes for broadcasting</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastUtils.html#convertAndBroadcast-java.lang.Object...-">convertAndBroadcast</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i4" class="altColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastUtils.html#createBroadcastStrides-org.eclipse.january.dataset.Dataset-int:A-">createBroadcastStrides</a></span>(<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 id="i5" class="rowColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastUtils.html#createBroadcastStrides-int-int:A-int:A-int:A-">createBroadcastStrides</a></span>(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 id="i6" class="altColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/BroadcastUtils.html#padShape-int:A-int-">padShape</a></span>(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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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:A-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="paramLabel">Parameters:</span></dt>
+<dd><code>oldShape</code> - </dd>
+<dd><code>size</code> - </dd>
+<dd><code>newShape</code> - </dd>
+<dt><span class="returnLabel">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:A-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="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - </dd>
+<dd><code>padding</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new shape or old shape if padding is zero</dd>
+</dl>
+</li>
+</ul>
+<a name="broadcastShapes-int:A...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>broadcastShapes</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>shapes</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>list of broadcasted shapes plus the first entry is the maximum shape</dd>
+</dl>
+</li>
+</ul>
+<a name="broadcastShapesToMax-int:A-int:A...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>broadcastShapesToMax</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>maxShape</code> - </dd>
+<dd><code>shapes</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>list of broadcasted shapes</dd>
+</dl>
+</li>
+</ul>
+<a name="createBroadcastStrides-org.eclipse.january.dataset.Dataset-int:A-">
+<!--   -->
+</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.254">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - dataset</dd>
+<dd><code>broadcastShape</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>stride array</dd>
+</dl>
+</li>
+</ul>
+<a name="createBroadcastStrides-int-int:A-int:A-int:A-">
+<!--   -->
+</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.266">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="paramLabel">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="returnLabel">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.301">convertAndBroadcast</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>objects</code> - </dd>
+<dt><span class="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/ByteDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/ByteDataset.html
new file mode 100644
index 0000000..1ed9996
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/ByteDataset.html
@@ -0,0 +1,2258 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:12 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ByteDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ByteDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":9,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CollectionStats.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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="seeLabel">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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#data">data</a></span></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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#containsInfs--">containsInfs</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#containsInvalidNumbers--">containsInvalidNumbers</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#containsNans--">containsNans</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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 id="i5" class="rowColor">
+<td class="colFirst"><code>protected static byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#createArray-int-">createArray</a></span>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i7" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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 id="i9" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#get--">get</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#get-int...-">get</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#get-int-">get</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#get-int-int-">get</a></span>(int&nbsp;i,
+   int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getAbs-int-">getAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get a value from an absolute index of the internal array.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getBoolean--">getBoolean</a></span>()</code>
+<div class="block">Get first item as a boolean.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getBoolean-int...-">getBoolean</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getBoolean-int-">getBoolean</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getBoolean-int-int-">getBoolean</a></span>(int&nbsp;i,
+          int&nbsp;j)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getBufferLength--">getBufferLength</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getByte--">getByte</a></span>()</code>
+<div class="block">Get first item as a byte.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getByte-int...-">getByte</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getByte-int-">getByte</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a byte.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getByte-int-int-">getByte</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get an item from given positionj as a byte.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getData--">getData</a></span>()</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 id="i24" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getDouble--">getDouble</a></span>()</code>
+<div class="block">Get first item as a double.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getDouble-int...-">getDouble</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getDouble-int-">getDouble</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getDouble-int-int-">getDouble</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getDType--">getDType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getElementBooleanAbs-int-">getElementBooleanAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getElementDoubleAbs-int-">getElementDoubleAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getElementLongAbs-int-">getElementLongAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getFloat--">getFloat</a></span>()</code>
+<div class="block">Get first item as a float.</div>
+</td>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getFloat-int...-">getFloat</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i34" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getFloat-int-">getFloat</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr id="i35" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getFloat-int-int-">getFloat</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getInt--">getInt</a></span>()</code>
+<div class="block">Get first item as an int.</div>
+</td>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getInt-int...-">getInt</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i38" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getInt-int-">getInt</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getInt-int-int-">getInt</a></span>(int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getLong--">getLong</a></span>()</code>
+<div class="block">Get first item as a long.</div>
+</td>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getLong-int...-">getLong</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getLong-int-">getLong</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr id="i43" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getLong-int-int-">getLong</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr id="i44" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getObject--">getObject</a></span>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr id="i45" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getObject-int...-">getObject</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i46" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getObject-int-">getObject</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i47" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getObject-int-int-">getObject</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i48" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getObjectAbs-int-">getObjectAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr id="i49" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getShort--">getShort</a></span>()</code>
+<div class="block">Get first item as a short.</div>
+</td>
+</tr>
+<tr id="i50" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getShort-int...-">getShort</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i51" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getShort-int-">getShort</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr id="i52" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getShort-int-int-">getShort</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr id="i53" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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 id="i54" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getString--">getString</a></span>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr id="i55" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getString-int...-">getString</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i56" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getString-int-">getString</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i57" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getString-int-int-">getString</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i58" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getStringAbs-int-">getStringAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr id="i59" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getUniqueItems--">getUniqueItems</a></span>()</code>
+<div class="block">Get unique items</div>
+</td>
+</tr>
+<tr id="i60" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getView-boolean-">getView</a></span>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr id="i61" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i62" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i63" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i64" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#ifloor--">ifloor</a></span>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr id="i65" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i66" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i67" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i68" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i69" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#maxPos-boolean...-">maxPos</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i70" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#minPos-boolean...-">minPos</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i71" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i72" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#resize-int...-">resize</a></span>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr id="i73" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#set-java.lang.Object-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i74" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#set-java.lang.Object-int...-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i75" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#set-java.lang.Object-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i76" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#set-java.lang.Object-int-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i77" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#setAbs-int-byte-">setAbs</a></span>(int&nbsp;index,
+      byte&nbsp;val)</code>
+<div class="block">Set a value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i78" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i79" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i80" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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 id="i81" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#setData--">setData</a></span>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr id="i82" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#setItem-byte-">setItem</a></span>(byte&nbsp;value)</code>
+<div class="block">Sets the value at first point to the passed value.</div>
+</td>
+</tr>
+<tr id="i83" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#setItem-byte-int...-">setItem</a></span>(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 id="i84" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#setItem-byte-int-">setItem</a></span>(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 id="i85" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#setItem-byte-int-int-">setItem</a></span>(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 id="i86" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#setItemDirect-int-int-java.lang.Object-">setItemDirect</a></span>(int&nbsp;dindex,
+             int&nbsp;sindex,
+             <a href="https://docs.oracle.com/javase/8/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 id="i87" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">setItemsOnAxes</a></span>(int[]&nbsp;pos,
+              boolean[]&nbsp;axes,
+              <a href="https://docs.oracle.com/javase/8/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 id="i88" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#setObjectAbs-int-java.lang.Object-">setObjectAbs</a></span>(int&nbsp;index,
+            <a href="https://docs.oracle.com/javase/8/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 id="i89" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i90" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#sort-java.lang.Integer-">sort</a></span>(<a href="https://docs.oracle.com/javase/8/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-boolean...-">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-int-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps-double-double-double-">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast-boolean-int-int-">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#cast-int-java.lang.Class-boolean-">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-int-">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-org.eclipse.january.dataset.AbstractDataset-boolean-boolean-">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.Dataset-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-int-int:A-int:A-int-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-org.eclipse.january.dataset.Dataset-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-int-int:A-int:A-int-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData-java.lang.Object-int-int:A-">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-int-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-int:A-">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-boolean-">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#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-int-">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-int-">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#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-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-int:A-int:A-int:A-">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:A-int:A-int:A-">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:A-boolean:A-">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView-int:A-int:A-int:A-">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:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max-int-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int:A-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int-boolean...-">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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer-java.io.Serializable-">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength-int-">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape-int...-">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int:A-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes-int-int-">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-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-boolean-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-boolean-boolean...-">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:A-int...-">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-boolean-">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#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#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName--">getName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors--">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata-int:A-int:A-">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors-java.io.Serializable-">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty--">setDirty</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata--">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata-org.eclipse.january.metadata.MetadataType-">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata-java.lang.Class-">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass--">getElementClass</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>
+<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/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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData--">AbstractDataset</a></code></span></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>type of dataset item</dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.158">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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/ByteDataset.html#line.196">hashCode</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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.201">clone</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">ILazyDataset</a></code></span></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.267">fill</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">Fill dataset with given object</div>
+<dl>
+<dt><span class="returnLabel">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.282">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="returnLabel">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.287">getBufferLength</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.294">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="returnLabel">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.309">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="paramLabel">Parameters:</span></dt>
+<dd><code>index</code> - absolute index</dd>
+<dt><span class="returnLabel">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.314">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.319">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.324">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.329">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.334">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.348">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="paramLabel">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.354">setItemDirect</a>(int&nbsp;dindex,
+                             int&nbsp;sindex,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.lang.Object-">AbstractDataset</a></code></span></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.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.361">setObjectAbs</a>(int&nbsp;index,
+                         <a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs-int-java.lang.Object-">Dataset</a></code></span></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.373">get</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item in first position</dd>
+<dt><span class="simpleTagLabel">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.381">get</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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.390">get</a>(int&nbsp;i,
+                int&nbsp;j)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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.398">get</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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/8/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.403">getObject</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject--">Dataset</a></code></span></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.408">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.413">getObject</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.418">getObject</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.423">getString</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString--">Dataset</a></code></span></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.428">getString</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.433">getString</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.438">getString</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.443">getDouble</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble--">Dataset</a></code></span></div>
+<div class="block">Get first item as a double. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.448">getDouble</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a double. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.453">getDouble</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a double. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.458">getDouble</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.463">getFloat</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat--">Dataset</a></code></span></div>
+<div class="block">Get first item as a float. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.468">getFloat</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a float. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.473">getFloat</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a float. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.478">getFloat</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.483">getLong</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong--">Dataset</a></code></span></div>
+<div class="block">Get first item as a long. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.488">getLong</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a long. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.493">getLong</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a long. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.498">getLong</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.503">getInt</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt--">Dataset</a></code></span></div>
+<div class="block">Get first item as an int. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.508">getInt</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an int. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.513">getInt</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an int. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.518">getInt</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.523">getShort</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort--">Dataset</a></code></span></div>
+<div class="block">Get first item as a short. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.528">getShort</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a short. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.533">getShort</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a short. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.538">getShort</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.543">getByte</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte--">Dataset</a></code></span></div>
+<div class="block">Get first item as a byte. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.548">getByte</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a byte. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.553">getByte</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given positionj as a byte. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.558">getByte</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.563">getBoolean</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean--">Dataset</a></code></span></div>
+<div class="block">Get first item as a boolean. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.568">getBoolean</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.573">getBoolean</a>(int&nbsp;i,
+                          int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.578">getBoolean</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.588">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="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - </dd>
+<dt><span class="simpleTagLabel">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.598">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="paramLabel">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.609">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="paramLabel">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.619">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="paramLabel">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.624">set</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-">Dataset</a></code></span></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.629">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-">Dataset</a></code></span></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.634">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-int-">Dataset</a></code></span></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.639">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set-java.lang.Object-int...-">IDataset</a></code></span></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.648">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize-int...-">IDataset</a></code></span></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.672">sort</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sort-java.lang.Integer-">Dataset</a></code></span></div>
+<div class="block">In-place sort of dataset</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis</code> - to sort along. If null, then the flattened view is sorted</dd>
+<dt><span class="returnLabel">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.699">getUniqueItems</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getUniqueItems--">Dataset</a></code></span></div>
+<div class="block">Get unique items</div>
+<dl>
+<dt><span class="returnLabel">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.716">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">AbstractDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="returnLabel">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.728">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">Dataset</a></code></span></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.740">setByBoolean</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></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="paramLabel">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="returnLabel">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.768">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.795">setByIndexes</a>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.834">setSlice</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>The dataset with the sliced set to object</dd>
+</dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes-int:A-boolean:A-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.874">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl>
+<dt><span class="paramLabel">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:A-boolean:A-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.893">setItemsOnAxes</a>(int[]&nbsp;pos,
+                           boolean[]&nbsp;axes,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">Dataset</a></code></span></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.924">maxPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.942">minPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.960">containsNans</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.965">containsInfs</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.970">containsInvalidNumbers</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.975">iadd</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place addition with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1010">isubtract</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place subtraction with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1046">imultiply</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place multiplication with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1081">idivide</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place division with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1133">ifloor</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor--">Dataset</a></code></span></div>
+<div class="block">In-place floor</div>
+<dl>
+<dt><span class="returnLabel">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.1138">iremainder</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place remainder</div>
+<dl>
+<dt><span class="returnLabel">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.1186">ipower</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place raise to power of object o</div>
+<dl>
+<dt><span class="returnLabel">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.1254">residual</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">Dataset</a></code></span></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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CollectionStats.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/CollectionStats.html b/apidocs/2.3.0/org/eclipse/january/dataset/CollectionStats.html
new file mode 100644
index 0000000..165deaf
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/CollectionStats.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 (1.8.0_222) on Mon Sep 30 16:21:12 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CollectionStats (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CollectionStats (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CollectionStats.html#CollectionStats--">CollectionStats</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CollectionStats.html#mean-java.util.List-">mean</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CollectionStats.html#median-java.util.List-">median</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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/8/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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>sets</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>mean data set of the same shape as those passed in.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>sets</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>median data set of the same shape as those passed in.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/Comparisons.Monotonicity.html b/apidocs/2.3.0/org/eclipse/january/dataset/Comparisons.Monotonicity.html
new file mode 100644
index 0000000..6c6adf5
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/Comparisons.Monotonicity.html
@@ -0,0 +1,414 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:12 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Comparisons.Monotonicity (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Comparisons.Monotonicity (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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/8/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/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a>&gt;</dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static enum <a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1564">Comparisons.Monotonicity</a>
+extends <a href="https://docs.oracle.com/javase/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html#ALL_EQUAL">ALL_EQUAL</a></span></code>
+<div class="block">All equal: <code>x_0 == x_1 == x_2 ...</code></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html#NONDECREASING">NONDECREASING</a></span></code>
+<div class="block">Non-decreasing or weakly increasing <code>x_0 &lt;= x_1 &lt;= x_2 ...</code></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html#NONINCREASING">NONINCREASING</a></span></code>
+<div class="block">Non-increasing or weakly decreasing <code>x_0 &gt;= x_1 &gt;= x_2 ...</code></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html#NOT_ORDERED">NOT_ORDERED</a></span></code>
+<div class="block">No order: <code>x_0 != x_1 != x_2 ...</code></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html#STRICTLY_DECREASING">STRICTLY_DECREASING</a></span></code>
+<div class="block">Strictly decreasing <code>x_0 &gt; x_1 &gt; x_2 ...</code></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html#STRICTLY_INCREASING">STRICTLY_INCREASING</a></span></code>
+<div class="block">Strictly increasing <code>x_0 &lt; x_1 &lt; x_2 ...</code></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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i1" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html#values--">values</a></span>()</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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="NOT_ORDERED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NOT_ORDERED</h4>
+<pre>public static final&nbsp;<a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a> <a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.Monotonicity.html#line.1568">NOT_ORDERED</a></pre>
+<div class="block">No order: <code>x_0 != x_1 != x_2 ...</code></div>
+</li>
+</ul>
+<a name="ALL_EQUAL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ALL_EQUAL</h4>
+<pre>public static final&nbsp;<a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a> <a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.Monotonicity.html#line.1572">ALL_EQUAL</a></pre>
+<div class="block">All equal: <code>x_0 == x_1 == x_2 ...</code></div>
+</li>
+</ul>
+<a name="STRICTLY_DECREASING">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>STRICTLY_DECREASING</h4>
+<pre>public static final&nbsp;<a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a> <a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.Monotonicity.html#line.1576">STRICTLY_DECREASING</a></pre>
+<div class="block">Strictly decreasing <code>x_0 &gt; x_1 &gt; x_2 ...</code></div>
+</li>
+</ul>
+<a name="NONINCREASING">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NONINCREASING</h4>
+<pre>public static final&nbsp;<a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a> <a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.Monotonicity.html#line.1580">NONINCREASING</a></pre>
+<div class="block">Non-increasing or weakly decreasing <code>x_0 &gt;= x_1 &gt;= x_2 ...</code></div>
+</li>
+</ul>
+<a name="NONDECREASING">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NONDECREASING</h4>
+<pre>public static final&nbsp;<a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a> <a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.Monotonicity.html#line.1584">NONDECREASING</a></pre>
+<div class="block">Non-decreasing or weakly increasing <code>x_0 &lt;= x_1 &lt;= x_2 ...</code></div>
+</li>
+</ul>
+<a name="STRICTLY_INCREASING">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>STRICTLY_INCREASING</h4>
+<pre>public static final&nbsp;<a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a> <a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.Monotonicity.html#line.1588">STRICTLY_INCREASING</a></pre>
+<div class="block">Strictly increasing <code>x_0 &lt; x_1 &lt; x_2 ...</code></div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a>[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.Monotonicity.html#line.1564">values</a>()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (Comparisons.Monotonicity c : Comparisons.Monotonicity.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.Monotonicity.html#line.1564">valueOf</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/Comparisons.html b/apidocs/2.3.0/org/eclipse/january/dataset/Comparisons.html
new file mode 100644
index 0000000..154d05c
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/Comparisons.html
@@ -0,0 +1,1463 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:12 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Comparisons (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Comparisons (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9,"i20":9,"i21":9,"i22":9,"i23":9,"i24":9,"i25":9,"i26":9,"i27":9,"i28":9,"i29":9,"i30":9,"i31":9,"i32":9,"i33":9,"i34":9,"i35":9,"i36":9,"i37":9,"i38":9,"i39":9,"i40":9,"i41":9,"i42":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_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/8/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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a></span></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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#Comparisons--">Comparisons</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#allCloseTo-java.lang.Object-java.lang.Object-double-double-">allCloseTo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/8/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 id="i1" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#allTrue-org.eclipse.january.dataset.IDataset-int-">allTrue</a></span>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+       int&nbsp;axis)</code>
+<div class="block">Test if all items along given axis are true in the input dataset</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#allTrue-java.lang.Object-">allTrue</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i3" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#almostEqualTo-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-double-double-">almostEqualTo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+             <a href="https://docs.oracle.com/javase/8/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 id="i4" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#almostEqualTo-java.lang.Object-java.lang.Object-double-double-">almostEqualTo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+             <a href="https://docs.oracle.com/javase/8/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 id="i5" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#anyTrue-org.eclipse.january.dataset.IDataset-int-">anyTrue</a></span>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+       int&nbsp;axis)</code>
+<div class="block">Test if any items along given axis are true in the input dataset</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#anyTrue-java.lang.Object-">anyTrue</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i7" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#equalTo-java.lang.Object-java.lang.Object-">equalTo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="https://docs.oracle.com/javase/8/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 id="i8" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#equalTo-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">equalTo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="https://docs.oracle.com/javase/8/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 id="i9" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#findMonotonicity-java.lang.Object-">findMonotonicity</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i10" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#greaterThan-java.lang.Object-java.lang.Object-">greaterThan</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+           <a href="https://docs.oracle.com/javase/8/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 id="i11" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#greaterThan-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">greaterThan</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+           <a href="https://docs.oracle.com/javase/8/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 id="i12" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#greaterThanOrEqualTo-java.lang.Object-java.lang.Object-">greaterThanOrEqualTo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                    <a href="https://docs.oracle.com/javase/8/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 id="i13" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#greaterThanOrEqualTo-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">greaterThanOrEqualTo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                    <a href="https://docs.oracle.com/javase/8/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 id="i14" class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#isClose-double-double-double-double-">isClose</a></span>(double&nbsp;a,
+       double&nbsp;b,
+       double&nbsp;relTol,
+       double&nbsp;absTol)</code>&nbsp;</td>
+</tr>
+<tr id="i15" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#isFinite-java.lang.Object-">isFinite</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i16" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#isFinite-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">isFinite</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i17" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#isInfinite-java.lang.Object-">isInfinite</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i18" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#isInfinite-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">isInfinite</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i19" class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#isMonotonic-java.lang.Object-">isMonotonic</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i20" class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#isMonotonic-java.lang.Object-org.eclipse.january.dataset.Comparisons.Monotonicity-">isMonotonic</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i21" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#isNaN-java.lang.Object-">isNaN</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i22" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#isNaN-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">isNaN</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i23" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#isNegativeInfinite-java.lang.Object-">isNegativeInfinite</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i24" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#isNegativeInfinite-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">isNegativeInfinite</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i25" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#isPositiveInfinite-java.lang.Object-">isPositiveInfinite</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i26" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#isPositiveInfinite-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">isPositiveInfinite</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i27" class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#isStrictlyMonotonic-java.lang.Object-">isStrictlyMonotonic</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i28" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#lessThan-java.lang.Object-java.lang.Object-">lessThan</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+        <a href="https://docs.oracle.com/javase/8/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 id="i29" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#lessThan-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">lessThan</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+        <a href="https://docs.oracle.com/javase/8/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 id="i30" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#lessThanOrEqualTo-java.lang.Object-java.lang.Object-">lessThanOrEqualTo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                 <a href="https://docs.oracle.com/javase/8/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 id="i31" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#lessThanOrEqualTo-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">lessThanOrEqualTo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                 <a href="https://docs.oracle.com/javase/8/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 id="i32" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#logicalAnd-java.lang.Object-java.lang.Object-">logicalAnd</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/8/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 id="i33" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#logicalAnd-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">logicalAnd</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/8/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 id="i34" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#logicalNot-java.lang.Object-">logicalNot</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i35" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#logicalNot-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">logicalNot</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i36" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#logicalOr-java.lang.Object-java.lang.Object-">logicalOr</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+         <a href="https://docs.oracle.com/javase/8/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 id="i37" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#logicalOr-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">logicalOr</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+         <a href="https://docs.oracle.com/javase/8/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 id="i38" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#logicalXor-java.lang.Object-java.lang.Object-">logicalXor</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/8/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 id="i39" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#logicalXor-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">logicalXor</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/8/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 id="i40" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#nonZero-org.eclipse.january.dataset.Dataset-">nonZero</a></span>(<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 id="i41" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#withinRange-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-java.lang.Number-java.lang.Number-">withinRange</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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 id="i42" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Comparisons.html#withinRange-java.lang.Object-java.lang.Number-java.lang.Number-">withinRange</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+           <a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                     <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset where item is true if <code>a == b</code></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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                     <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>dataset where item is true if <code>a == b</code></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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                           <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>dataset where item is true if <code>abs(a - b) &lt;= absTol + relTol*max(abs(a),abs(b))</code></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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>true if <code>abs(a - b) &lt;= max(absTol, relTol*max(abs(a),abs(b)))</code></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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                           <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>dataset where item is true if <code>abs(a - b) &lt;= absTol + relTol*max(abs(a),abs(b))</code></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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                         <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset where item is true if <code>a &gt; b</code></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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                         <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>dataset where item is true if <code>a &gt; b</code></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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                                  <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset where item is true if <code>a &gt;= b</code></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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                                  <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>dataset where item is true if <code>a &gt;= b</code></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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                      <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset where item is true if <code>a &lt; b</code></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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                      <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>dataset where item is true if <code>a &lt; b</code></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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                               <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset where item is true if <code>a &lt;= b</code></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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                               <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>dataset where item is true if <code>a &lt;= b</code></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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                         <a href="https://docs.oracle.com/javase/8/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/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>dataset where item is true if <code>l &lt;= a &lt;= h</code></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/8/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/8/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/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>dataset where item is true if <code>l &lt;= a &lt;= h</code></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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                 <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>true if all items satisfy <code>abs(a - b) &lt;= absTol + relTol*max(abs(a),abs(b))</code></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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if all elements are true</dd>
+</dl>
+</li>
+</ul>
+<a name="allTrue-org.eclipse.january.dataset.IDataset-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>allTrue</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.879">allTrue</a>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+                                     int&nbsp;axis)</pre>
+<div class="block">Test if all items along given axis are true in the input dataset</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>axis</code> - axis to reduce</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>boolean dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="anyTrue-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>anyTrue</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.919">anyTrue</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if any element is true</dd>
+</dl>
+</li>
+</ul>
+<a name="anyTrue-org.eclipse.january.dataset.IDataset-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>anyTrue</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.946">anyTrue</a>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+                                     int&nbsp;axis)</pre>
+<div class="block">Test if any items along given axis are true in the input dataset</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>axis</code> - axis to reduce</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>boolean dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="logicalNot-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>logicalNot</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.990">logicalNot</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset where item is true when a is false</dd>
+</dl>
+</li>
+</ul>
+<a name="logicalNot-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>logicalNot</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1003">logicalNot</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>dataset where item is true when a is false</dd>
+</dl>
+</li>
+</ul>
+<a name="logicalAnd-java.lang.Object-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>logicalAnd</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1039">logicalAnd</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                        <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset where item is true if <code>a &amp;&amp; b</code> is true</dd>
+</dl>
+</li>
+</ul>
+<a name="logicalAnd-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>logicalAnd</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1054">logicalAnd</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                        <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>dataset where item is true if <code>a &amp;&amp; b</code> is true</dd>
+</dl>
+</li>
+</ul>
+<a name="logicalOr-java.lang.Object-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>logicalOr</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1114">logicalOr</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                       <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset where item is true if <code>a || b</code> is true</dd>
+</dl>
+</li>
+</ul>
+<a name="logicalOr-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>logicalOr</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1129">logicalOr</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                       <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>dataset where item is true if <code>a || b</code> is true</dd>
+</dl>
+</li>
+</ul>
+<a name="logicalXor-java.lang.Object-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>logicalXor</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1189">logicalXor</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                        <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset where item is true if <code>a ^ b</code> is true</dd>
+</dl>
+</li>
+</ul>
+<a name="logicalXor-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>logicalXor</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1204">logicalXor</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                        <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1257">nonZero</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</pre>
+<div class="block">Create a list of indices of positions where items are non-zero</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>list of positions as integer datasets</dd>
+</dl>
+</li>
+</ul>
+<a name="isNaN-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isNaN</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1292">isNaN</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset where item is true if any of its elements are NaNs</dd>
+</dl>
+</li>
+</ul>
+<a name="isNaN-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isNaN</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1304">isNaN</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>dataset where item is true if any of its elements are NaNs</dd>
+</dl>
+</li>
+</ul>
+<a name="isInfinite-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isInfinite</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1351">isInfinite</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset where item is true if any of its elements are infinite</dd>
+</dl>
+</li>
+</ul>
+<a name="isInfinite-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isInfinite</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1363">isInfinite</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>dataset where item is true if any of its elements are infinite</dd>
+</dl>
+</li>
+</ul>
+<a name="isPositiveInfinite-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isPositiveInfinite</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1410">isPositiveInfinite</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset where items are true if any of its elements are positive infinite</dd>
+</dl>
+</li>
+</ul>
+<a name="isPositiveInfinite-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isPositiveInfinite</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1422">isPositiveInfinite</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>dataset where items are true if any of its elements are positive infinite</dd>
+</dl>
+</li>
+</ul>
+<a name="isNegativeInfinite-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isNegativeInfinite</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1433">isNegativeInfinite</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset where items are true if any of its elements are negative infinite</dd>
+</dl>
+</li>
+</ul>
+<a name="isNegativeInfinite-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isNegativeInfinite</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1445">isNegativeInfinite</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>dataset where items are true if any of its elements are negative infinite</dd>
+</dl>
+</li>
+</ul>
+<a name="isFinite-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isFinite</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1507">isFinite</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset where item is true if any of its elements are finite</dd>
+</dl>
+</li>
+</ul>
+<a name="isFinite-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isFinite</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1519">isFinite</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>dataset where item is true if any of its elements are finite</dd>
+</dl>
+</li>
+</ul>
+<a name="isMonotonic-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isMonotonic</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1596">isMonotonic</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if all elements are in a monotonic order</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Comparisons.html#findMonotonicity-java.lang.Object-"><code>findMonotonicity(Object)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a name="isMonotonic-java.lang.Object-org.eclipse.january.dataset.Comparisons.Monotonicity-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isMonotonic</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1605">isMonotonic</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>monotonicity</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if all elements are in given monotonic ordering</dd>
+</dl>
+</li>
+</ul>
+<a name="isStrictlyMonotonic-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isStrictlyMonotonic</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1692">isStrictlyMonotonic</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if all elements are in a strictly monotonic order</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Comparisons.html#findMonotonicity-java.lang.Object-"><code>findMonotonicity(Object)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a name="findMonotonicity-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>findMonotonicity</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1702">findMonotonicity</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/ComplexDoubleDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/ComplexDoubleDataset.html
new file mode 100644
index 0000000..10e9abb
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/ComplexDoubleDataset.html
@@ -0,0 +1,1657 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:13 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ComplexDoubleDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ComplexDoubleDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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="seeLabel">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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr id="i1" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i2" class="altColor">
+<td class="colFirst"><code>org.apache.commons.math3.complex.Complex</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#get--">get</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>org.apache.commons.math3.complex.Complex</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#get-int...-">get</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>org.apache.commons.math3.complex.Complex</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#get-int-">get</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>org.apache.commons.math3.complex.Complex</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#get-int-int-">get</a></span>(int&nbsp;i,
+   int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>org.apache.commons.math3.complex.Complex</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getComplex--">getComplex</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>org.apache.commons.math3.complex.Complex</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getComplex-int...-">getComplex</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>org.apache.commons.math3.complex.Complex</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getComplex-int-">getComplex</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>org.apache.commons.math3.complex.Complex</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getComplex-int-int-">getComplex</a></span>(int&nbsp;i,
+          int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>org.apache.commons.math3.complex.Complex</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getComplexAbs-int-">getComplexAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get complex value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getDType--">getDType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getImag--">getImag</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getImag-int...-">getImag</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getImag-int-">getImag</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getImag-int-int-">getImag</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i16" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getImaginaryPart--">getImaginaryPart</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i17" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getImaginaryView--">getImaginaryView</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getObject--">getObject</a></span>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getObject-int...-">getObject</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getObject-int-">getObject</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getObject-int-int-">getObject</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getObjectAbs-int-">getObjectAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getReal--">getReal</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getReal-int...-">getReal</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getReal-int-">getReal</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getReal-int-int-">getReal</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i27" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getRealPart--">getRealPart</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i28" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getRealView--">getRealView</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i29" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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 id="i30" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getStringAbs-int-">getStringAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr id="i31" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getView-boolean-">getView</a></span>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr id="i32" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i33" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i34" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i35" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i36" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i37" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i38" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#max-boolean...-">max</a></span>(boolean...&nbsp;switches)</code>&nbsp;</td>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#maxPos-boolean...-">maxPos</a></span>(boolean...&nbsp;switches)</code>&nbsp;</td>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#mean-boolean...-">mean</a></span>(boolean...&nbsp;switches)</code>&nbsp;</td>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#min-boolean...-">min</a></span>(boolean...&nbsp;switches)</code>&nbsp;</td>
+</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#minPos-boolean...-">minPos</a></span>(boolean...&nbsp;switches)</code>&nbsp;</td>
+</tr>
+<tr id="i43" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i44" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#set-double-double-int...-">set</a></span>(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 id="i45" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#set-double-double-int-">set</a></span>(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 id="i46" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#set-double-double-int-int-">set</a></span>(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 id="i47" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#set-java.lang.Object-int...-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i48" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#set-java.lang.Object-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i49" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#set-java.lang.Object-int-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i50" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#setAbs-int-org.apache.commons.math3.complex.Complex-">setAbs</a></span>(int&nbsp;index,
+      org.apache.commons.math3.complex.Complex&nbsp;val)</code>
+<div class="block">Set values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i51" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#setAbs-int-double-double-">setAbs</a></span>(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 id="i52" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#setObjectAbs-int-java.lang.Object-">setObjectAbs</a></span>(int&nbsp;index,
+            <a href="https://docs.oracle.com/javase/8/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 id="i53" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i54" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#sum-boolean...-">sum</a></span>(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-int-">copyElements</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#copyItemsFromAxes-int:A-boolean:A-org.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-boolean-">createCompoundDatasetWithLastDimension</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#createFromObject-int-java.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-org.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-double:A-">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-int-">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-int-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getDoubleArrayAbs-int-double:A-">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-int-">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-int-">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-int-">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-int-">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-int-">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-int-">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-double-">setAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setAbs-int-double:A-">setAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setByIndexes-java.lang.Object-java.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-int-">setElements</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setItem-double:A-">setItem</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setItem-double:A-int...-">setItem</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setItem-double:A-int-">setItem</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setItem-double:A-int-int-">setItem</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setItemDirect-int-int-java.lang.Object-">setItemDirect</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setItemsOnAxes-int:A-boolean:A-java.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-boolean...-">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMin-int-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast-boolean-int-int-">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-int-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndexFromShape-int:A-">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-int-">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-int-">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-int-">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int...-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int-int-">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-int-">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-int-">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-int-">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-int-">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-int-">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-int-">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-int:A-int:A-int:A-">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:A-int:A-int:A-">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-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#maxItem--">maxItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#mean-int-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min-int-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#minItem--">minItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#peakToPeak-int-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#product-int-boolean...-">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-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice-java.lang.Object-org.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-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum-int-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#swapAxes-int-int-">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-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance-int-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance-int-boolean-boolean...-">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-double-double-">calcSteps</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-java.lang.Class-boolean-">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-int-">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-org.eclipse.january.dataset.AbstractDataset-boolean-boolean-">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.Dataset-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-int-int:A-int:A-int-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-org.eclipse.january.dataset.Dataset-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-int-int:A-int:A-int-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData-java.lang.Object-int-int:A-">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex-int...-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-int:A-">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-boolean-">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer--">getBuffer</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#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:A-int:A-int:A-">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">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#max-int:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int:A-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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer-java.io.Serializable-">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength-int-">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape-int...-">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int:A-boolean...-">sum</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>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-boolean-boolean...-">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:A-int...-">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-boolean-">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#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#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName--">getName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors--">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata-int:A-int:A-">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors-java.io.Serializable-">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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#cast-int-java.lang.Class-boolean-">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:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count-int-boolean...-">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-boolean-">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:A-int:A-int:A-">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">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#max-int:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product-int:A-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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</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-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#sum-int:A-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-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int:A-boolean-boolean...-">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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.153">clone</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">ILazyDataset</a></code></span></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.214">fill</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">Fill dataset with given object</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.229">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="returnLabel">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;org.apache.commons.math3.complex.Complex&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.244">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="paramLabel">Parameters:</span></dt>
+<dd><code>index</code> - absolute index</dd>
+<dt><span class="returnLabel">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/8/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.249">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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/8/docs/api/java/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.254">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.281">setAbs</a>(int&nbsp;index,
+                   org.apache.commons.math3.complex.Complex&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="paramLabel">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.287">setObjectAbs</a>(int&nbsp;index,
+                         <a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs-int-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">Set an item at absolute index from an object. See warning in interface doc</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs-int-java.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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setObjectAbs-int-java.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.297">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="paramLabel">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;org.apache.commons.math3.complex.Complex&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.307">get</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item in first position</dd>
+<dt><span class="simpleTagLabel">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;org.apache.commons.math3.complex.Complex&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.317">get</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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;org.apache.commons.math3.complex.Complex&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.328">get</a>(int&nbsp;i,
+                                                    int&nbsp;j)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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;org.apache.commons.math3.complex.Complex&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.338">get</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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/8/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>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject--">Dataset</a></code></span></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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/8/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)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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/8/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;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getObject-int-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="returnLabel">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/8/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.360">getObject</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.369">getReal</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item in first position</dd>
+<dt><span class="simpleTagLabel">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.378">getReal</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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.388">getReal</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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.397">getReal</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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.405">getImag</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item in first position</dd>
+<dt><span class="simpleTagLabel">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.413">getImag</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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.422">getImag</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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.430">getImag</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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;org.apache.commons.math3.complex.Complex&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.438">getComplex</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item in first position</dd>
+<dt><span class="simpleTagLabel">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;org.apache.commons.math3.complex.Complex&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.446">getComplex</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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;org.apache.commons.math3.complex.Complex&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.455">getComplex</a>(int&nbsp;i,
+                                                           int&nbsp;j)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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;org.apache.commons.math3.complex.Complex&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.463">getComplex</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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.469">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-">Dataset</a></code></span></div>
+<div class="block">Set the value given by object at given position. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-">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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#set-java.lang.Object-int-">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.475">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-int-">Dataset</a></code></span></div>
+<div class="block">Set the value given by object at given position. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-int-">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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#set-java.lang.Object-int-int-">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.481">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set-java.lang.Object-int...-">IDataset</a></code></span></div>
+<div class="block">Set the value given by object at given position</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set-java.lang.Object-int...-">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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#set-java.lang.Object-int...-">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.495">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="paramLabel">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.506">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="paramLabel">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.517">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="paramLabel">Parameters:</span></dt>
+<dd><code>dr</code> - </dd>
+<dd><code>di</code> - </dd>
+<dd><code>pos</code> - </dd>
+<dt><span class="simpleTagLabel">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.525">getRealPart</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">Returns:</span></dt>
+<dd>real part of dataset (if necessary, as new dataset)</dd>
+<dt><span class="simpleTagLabel">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.533">getRealView</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">Returns:</span></dt>
+<dd>real part of dataset as a view</dd>
+<dt><span class="simpleTagLabel">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.541">getImaginaryPart</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>imaginary part of dataset as new dataset</dd>
+<dt><span class="simpleTagLabel">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.548">getImaginaryView</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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/8/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">max</a>(boolean...&nbsp;switches)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">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="returnLabel">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/8/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.558">min</a>(boolean...&nbsp;switches)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">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="returnLabel">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/8/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.563">sum</a>(boolean...&nbsp;switches)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">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="returnLabel">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/8/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.569">mean</a>(boolean...&nbsp;switches)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">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="returnLabel">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.575">maxPos</a>(boolean...&nbsp;switches)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">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="returnLabel">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.580">minPos</a>(boolean...&nbsp;switches)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">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="returnLabel">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.585">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">AbstractDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="returnLabel">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.619">setSlice</a>(<a href="https://docs.oracle.com/javase/8/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="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setSlice-java.lang.Object-org.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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setSlice-java.lang.Object-org.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="paramLabel">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="returnLabel">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.672">iadd</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place addition with object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.722">isubtract</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place subtraction with object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.772">imultiply</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place multiplication with object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.832">idivide</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place division with object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.926">iremainder</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place remainder</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.931">ipower</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place raise to power of object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.974">residual</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">Dataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.CompoundDoubleDataset">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/ComplexFloatDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/ComplexFloatDataset.html
new file mode 100644
index 0000000..91b5402
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/ComplexFloatDataset.html
@@ -0,0 +1,1657 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:13 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ComplexFloatDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ComplexFloatDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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="seeLabel">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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr id="i1" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i2" class="altColor">
+<td class="colFirst"><code>org.apache.commons.math3.complex.Complex</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#get--">get</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>org.apache.commons.math3.complex.Complex</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#get-int...-">get</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>org.apache.commons.math3.complex.Complex</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#get-int-">get</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>org.apache.commons.math3.complex.Complex</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#get-int-int-">get</a></span>(int&nbsp;i,
+   int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>org.apache.commons.math3.complex.Complex</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getComplex--">getComplex</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>org.apache.commons.math3.complex.Complex</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getComplex-int...-">getComplex</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>org.apache.commons.math3.complex.Complex</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getComplex-int-">getComplex</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>org.apache.commons.math3.complex.Complex</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getComplex-int-int-">getComplex</a></span>(int&nbsp;i,
+          int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>org.apache.commons.math3.complex.Complex</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getComplexAbs-int-">getComplexAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get complex value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getDType--">getDType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getImag--">getImag</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getImag-int...-">getImag</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getImag-int-">getImag</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getImag-int-int-">getImag</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i16" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getImaginaryPart--">getImaginaryPart</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i17" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getImaginaryView--">getImaginaryView</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getObject--">getObject</a></span>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getObject-int...-">getObject</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getObject-int-">getObject</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getObject-int-int-">getObject</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getObjectAbs-int-">getObjectAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getReal--">getReal</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getReal-int...-">getReal</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getReal-int-">getReal</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getReal-int-int-">getReal</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i27" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getRealPart--">getRealPart</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i28" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getRealView--">getRealView</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i29" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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 id="i30" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getStringAbs-int-">getStringAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr id="i31" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getView-boolean-">getView</a></span>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr id="i32" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i33" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i34" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i35" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i36" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i37" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i38" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#max-boolean...-">max</a></span>(boolean...&nbsp;switches)</code>&nbsp;</td>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#maxPos-boolean...-">maxPos</a></span>(boolean...&nbsp;switches)</code>&nbsp;</td>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#mean-boolean...-">mean</a></span>(boolean...&nbsp;switches)</code>&nbsp;</td>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#min-boolean...-">min</a></span>(boolean...&nbsp;switches)</code>&nbsp;</td>
+</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#minPos-boolean...-">minPos</a></span>(boolean...&nbsp;switches)</code>&nbsp;</td>
+</tr>
+<tr id="i43" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i44" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#set-float-float-int...-">set</a></span>(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 id="i45" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#set-float-float-int-">set</a></span>(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 id="i46" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#set-float-float-int-int-">set</a></span>(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 id="i47" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#set-java.lang.Object-int...-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i48" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#set-java.lang.Object-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i49" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#set-java.lang.Object-int-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i50" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#setAbs-int-org.apache.commons.math3.complex.Complex-">setAbs</a></span>(int&nbsp;index,
+      org.apache.commons.math3.complex.Complex&nbsp;val)</code>
+<div class="block">Set values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i51" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#setAbs-int-float-float-">setAbs</a></span>(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 id="i52" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#setObjectAbs-int-java.lang.Object-">setObjectAbs</a></span>(int&nbsp;index,
+            <a href="https://docs.oracle.com/javase/8/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 id="i53" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i54" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#sum-boolean...-">sum</a></span>(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-int-">copyElements</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#copyItemsFromAxes-int:A-boolean:A-org.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-boolean-">createCompoundDatasetWithLastDimension</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#createFromObject-int-java.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-org.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-float:A-">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-int-">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-int-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getDoubleArrayAbs-int-double:A-">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-int-">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-int-">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-int-">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-int-">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-int-">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-int-">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-float-">setAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setAbs-int-float:A-">setAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setByIndexes-java.lang.Object-java.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-int-">setElements</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setItem-float:A-">setItem</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setItem-float:A-int...-">setItem</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setItem-float:A-int-">setItem</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setItem-float:A-int-int-">setItem</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setItemDirect-int-int-java.lang.Object-">setItemDirect</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setItemsOnAxes-int:A-boolean:A-java.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-boolean...-">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMin-int-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast-boolean-int-int-">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-int-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndexFromShape-int:A-">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-int-">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-int-">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-int-">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int...-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int-int-">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-int-">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-int-">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-int-">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-int-">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-int-">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-int-">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-int:A-int:A-int:A-">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:A-int:A-int:A-">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-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#maxItem--">maxItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#mean-int-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min-int-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#minItem--">minItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#peakToPeak-int-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#product-int-boolean...-">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-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice-java.lang.Object-org.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-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum-int-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#swapAxes-int-int-">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-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance-int-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance-int-boolean-boolean...-">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-double-double-">calcSteps</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-java.lang.Class-boolean-">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-int-">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-org.eclipse.january.dataset.AbstractDataset-boolean-boolean-">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.Dataset-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-int-int:A-int:A-int-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-org.eclipse.january.dataset.Dataset-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-int-int:A-int:A-int-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData-java.lang.Object-int-int:A-">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex-int...-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-int:A-">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-boolean-">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer--">getBuffer</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#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:A-int:A-int:A-">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">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#max-int:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int:A-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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer-java.io.Serializable-">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength-int-">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape-int...-">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int:A-boolean...-">sum</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>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-boolean-boolean...-">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:A-int...-">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-boolean-">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#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#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName--">getName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors--">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata-int:A-int:A-">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors-java.io.Serializable-">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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#cast-int-java.lang.Class-boolean-">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:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count-int-boolean...-">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-boolean-">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:A-int:A-int:A-">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">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#max-int:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product-int:A-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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</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-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#sum-int:A-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-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int:A-boolean-boolean...-">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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.153">clone</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">ILazyDataset</a></code></span></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.214">fill</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">Fill dataset with given object</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.229">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="returnLabel">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;org.apache.commons.math3.complex.Complex&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.244">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="paramLabel">Parameters:</span></dt>
+<dd><code>index</code> - absolute index</dd>
+<dt><span class="returnLabel">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/8/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.249">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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/8/docs/api/java/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.254">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.280">setAbs</a>(int&nbsp;index,
+                   org.apache.commons.math3.complex.Complex&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="paramLabel">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.285">setObjectAbs</a>(int&nbsp;index,
+                         <a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs-int-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">Set an item at absolute index from an object. See warning in interface doc</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs-int-java.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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setObjectAbs-int-java.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.295">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="paramLabel">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;org.apache.commons.math3.complex.Complex&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.305">get</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item in first position</dd>
+<dt><span class="simpleTagLabel">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;org.apache.commons.math3.complex.Complex&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.315">get</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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;org.apache.commons.math3.complex.Complex&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.326">get</a>(int&nbsp;i,
+                                                    int&nbsp;j)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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;org.apache.commons.math3.complex.Complex&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.336">get</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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/8/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>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject--">Dataset</a></code></span></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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/8/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)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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/8/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;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getObject-int-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="returnLabel">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/8/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.358">getObject</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.366">getReal</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item in first position</dd>
+<dt><span class="simpleTagLabel">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.374">getReal</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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.383">getReal</a>(int&nbsp;i,
+                     int&nbsp;j)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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.391">getReal</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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.399">getImag</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item in first position</dd>
+<dt><span class="simpleTagLabel">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.407">getImag</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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.416">getImag</a>(int&nbsp;i,
+                     int&nbsp;j)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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.424">getImag</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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;org.apache.commons.math3.complex.Complex&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.432">getComplex</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item in first position</dd>
+<dt><span class="simpleTagLabel">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;org.apache.commons.math3.complex.Complex&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.440">getComplex</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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;org.apache.commons.math3.complex.Complex&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.449">getComplex</a>(int&nbsp;i,
+                                                           int&nbsp;j)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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;org.apache.commons.math3.complex.Complex&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.457">getComplex</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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.462">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-">Dataset</a></code></span></div>
+<div class="block">Set the value given by object at given position. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-">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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#set-java.lang.Object-int-">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.467">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-int-">Dataset</a></code></span></div>
+<div class="block">Set the value given by object at given position. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-int-">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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#set-java.lang.Object-int-int-">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.472">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set-java.lang.Object-int...-">IDataset</a></code></span></div>
+<div class="block">Set the value given by object at given position</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set-java.lang.Object-int...-">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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#set-java.lang.Object-int...-">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.486">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="paramLabel">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.497">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="paramLabel">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.508">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="paramLabel">Parameters:</span></dt>
+<dd><code>dr</code> - </dd>
+<dd><code>di</code> - </dd>
+<dd><code>pos</code> - </dd>
+<dt><span class="simpleTagLabel">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.516">getRealPart</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">Returns:</span></dt>
+<dd>real part of dataset (if necessary, as new dataset)</dd>
+<dt><span class="simpleTagLabel">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.524">getRealView</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">Returns:</span></dt>
+<dd>real part of dataset as a view</dd>
+<dt><span class="simpleTagLabel">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.532">getImaginaryPart</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>imaginary part of dataset as new dataset</dd>
+<dt><span class="simpleTagLabel">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.539">getImaginaryView</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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/8/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">max</a>(boolean...&nbsp;switches)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">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="returnLabel">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/8/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.549">min</a>(boolean...&nbsp;switches)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">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="returnLabel">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/8/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.554">sum</a>(boolean...&nbsp;switches)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">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="returnLabel">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/8/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.560">mean</a>(boolean...&nbsp;switches)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">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="returnLabel">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.566">maxPos</a>(boolean...&nbsp;switches)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">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="returnLabel">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.571">minPos</a>(boolean...&nbsp;switches)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">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="returnLabel">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.576">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">AbstractDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="returnLabel">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.610">setSlice</a>(<a href="https://docs.oracle.com/javase/8/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="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setSlice-java.lang.Object-org.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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setSlice-java.lang.Object-org.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="paramLabel">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="returnLabel">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.663">iadd</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place addition with object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.713">isubtract</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place subtraction with object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.763">imultiply</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place multiplication with object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.823">idivide</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place division with object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.917">iremainder</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place remainder</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.922">ipower</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place raise to power of object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.965">residual</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">Dataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.CompoundFloatDataset">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/CompoundByteDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/CompoundByteDataset.html
new file mode 100644
index 0000000..6e3090a
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/CompoundByteDataset.html
@@ -0,0 +1,2262 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:14 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CompoundByteDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CompoundByteDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":9,"i9":9,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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="seeLabel">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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#data">data</a></span></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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#asNonCompoundDataset-boolean-">asNonCompoundDataset</a></span>(boolean&nbsp;shareData)</code>
+<div class="block">Get a non-compound dataset version</div>
+</td>
+</tr>
+<tr id="i1" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#containsInfs--">containsInfs</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#containsInvalidNumbers--">containsInvalidNumbers</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#containsNans--">containsNans</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#copyElements-org.eclipse.january.dataset.Dataset-int-">copyElements</a></span>(<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 id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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 id="i7" class="rowColor">
+<td class="colFirst"><code>protected byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#createArray-int-">createArray</a></span>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr id="i8" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#createCompoundDatasetWithLastDimension-org.eclipse.january.dataset.Dataset-boolean-">createCompoundDatasetWithLastDimension</a></span>(<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 id="i9" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#createFromObject-int-java.lang.Object-">createFromObject</a></span>(int&nbsp;itemSize,
+                <a href="https://docs.oracle.com/javase/8/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 id="i10" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i11" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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 id="i13" class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getAbs-int-">getAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getAbs-int-byte:A-">getAbs</a></span>(int&nbsp;index,
+      byte[]&nbsp;values)</code>
+<div class="block">Get values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getBufferLength--">getBufferLength</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getByteArray--">getByteArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getByteArray-int...-">getByteArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getByteArray-int-">getByteArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getByteArray-int-int-">getByteArray</a></span>(int&nbsp;i,
+            int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getData--">getData</a></span>()</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 id="i21" class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getDoubleArray--">getDoubleArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getDoubleArray-int...-">getDoubleArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getDoubleArray-int-">getDoubleArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getDoubleArray-int-int-">getDoubleArray</a></span>(int&nbsp;i,
+              int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getDoubleArrayAbs-int-double:A-">getDoubleArrayAbs</a></span>(int&nbsp;index,
+                 double[]&nbsp;darray)</code>
+<div class="block">Get an item as a double array</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getDType--">getDType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getElementBooleanAbs-int-">getElementBooleanAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getElementDoubleAbs-int-">getElementDoubleAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getElementLongAbs-int-">getElementLongAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr id="i30" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getElements-int-">getElements</a></span>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a dataset</div>
+</td>
+</tr>
+<tr id="i31" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getElementsView-int-">getElementsView</a></span>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getFirstValue--">getFirstValue</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getFirstValue-int...-">getFirstValue</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i34" class="altColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getFirstValue-int-">getFirstValue</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i35" class="rowColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getFirstValue-int-int-">getFirstValue</a></span>(int&nbsp;i,
+             int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getFloatArray--">getFloatArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getFloatArray-int...-">getFloatArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i38" class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getFloatArray-int-">getFloatArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getFloatArray-int-int-">getFloatArray</a></span>(int&nbsp;i,
+             int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getIntArray--">getIntArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getIntArray-int...-">getIntArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getIntArray-int-">getIntArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i43" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getIntArray-int-int-">getIntArray</a></span>(int&nbsp;i,
+           int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i44" class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getLongArray--">getLongArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i45" class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getLongArray-int...-">getLongArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i46" class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getLongArray-int-">getLongArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i47" class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getLongArray-int-int-">getLongArray</a></span>(int&nbsp;i,
+            int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i48" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getObject--">getObject</a></span>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr id="i49" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getObject-int...-">getObject</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i50" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getObject-int-">getObject</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i51" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getObject-int-int-">getObject</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i52" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getObjectAbs-int-">getObjectAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr id="i53" class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getShortArray--">getShortArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i54" class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getShortArray-int...-">getShortArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i55" class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getShortArray-int-">getShortArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i56" class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getShortArray-int-int-">getShortArray</a></span>(int&nbsp;i,
+             int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i57" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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 id="i58" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getString--">getString</a></span>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr id="i59" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getString-int...-">getString</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i60" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getString-int-">getString</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i61" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getString-int-int-">getString</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i62" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getStringAbs-int-">getStringAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr id="i63" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getView-boolean-">getView</a></span>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr id="i64" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i65" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i66" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i67" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#ifloor--">ifloor</a></span>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr id="i68" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i69" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i70" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i71" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i72" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i73" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#resize-int...-">resize</a></span>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr id="i74" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#set-java.lang.Object-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i75" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#set-java.lang.Object-int...-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i76" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#set-java.lang.Object-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i77" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#set-java.lang.Object-int-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i78" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setAbs-int-byte-">setAbs</a></span>(int&nbsp;index,
+      byte&nbsp;val)</code>
+<div class="block">Set element value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i79" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setAbs-int-byte:A-">setAbs</a></span>(int&nbsp;index,
+      byte[]&nbsp;val)</code>
+<div class="block">Set values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i80" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i81" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i82" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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 id="i83" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setData--">setData</a></span>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr id="i84" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setElements-org.eclipse.january.dataset.Dataset-int-">setElements</a></span>(<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 id="i85" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setItem-byte:A-">setItem</a></span>(byte[]&nbsp;d)</code>
+<div class="block">Set values at first position.</div>
+</td>
+</tr>
+<tr id="i86" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setItem-byte:A-int...-">setItem</a></span>(byte[]&nbsp;d,
+       int...&nbsp;pos)</code>
+<div class="block">Set values at given position</div>
+</td>
+</tr>
+<tr id="i87" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setItem-byte:A-int-">setItem</a></span>(byte[]&nbsp;d,
+       int&nbsp;i)</code>
+<div class="block">Set values at given position.</div>
+</td>
+</tr>
+<tr id="i88" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setItem-byte:A-int-int-">setItem</a></span>(byte[]&nbsp;d,
+       int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Set values at given position.</div>
+</td>
+</tr>
+<tr id="i89" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setItemDirect-int-int-java.lang.Object-">setItemDirect</a></span>(int&nbsp;dindex,
+             int&nbsp;sindex,
+             <a href="https://docs.oracle.com/javase/8/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 id="i90" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">setItemsOnAxes</a></span>(int[]&nbsp;pos,
+              boolean[]&nbsp;axes,
+              <a href="https://docs.oracle.com/javase/8/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 id="i91" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setObjectAbs-int-java.lang.Object-">setObjectAbs</a></span>(int&nbsp;index,
+            <a href="https://docs.oracle.com/javase/8/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 id="i92" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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-boolean...-">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMin-int-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast-boolean-int-int-">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-int-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndexFromShape-int:A-">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-int-">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-int-">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-int-">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int...-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int-int-">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-int-">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-int-">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-int-">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-int-">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-int-">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-int-">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-int:A-int:A-int:A-">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:A-int:A-int:A-">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-boolean...-">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-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min-int-boolean...-">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-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#product-int-boolean...-">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-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice-java.lang.Object-org.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-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum-int-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#swapAxes-int-int-">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-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance-int-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance-int-boolean-boolean...-">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-double-double-">calcSteps</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-java.lang.Class-boolean-">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-int-">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-org.eclipse.january.dataset.AbstractDataset-boolean-boolean-">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.Dataset-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-int-int:A-int:A-int-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-org.eclipse.january.dataset.Dataset-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-int-int:A-int:A-int-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData-java.lang.Object-int-int:A-">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex-int...-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-int:A-">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-boolean-">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer--">getBuffer</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#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:A-int:A-int:A-">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">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#max-int:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int:A-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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer-java.io.Serializable-">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength-int-">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape-int...-">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int:A-boolean...-">sum</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>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-boolean-boolean...-">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:A-int...-">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-boolean-">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#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#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName--">getName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors--">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata-int:A-int:A-">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors-java.io.Serializable-">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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#cast-int-java.lang.Class-boolean-">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:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count-int-boolean...-">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-boolean-">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:A-int:A-int:A-">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">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#max-int:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product-int:A-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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</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-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#sum-int:A-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-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int:A-boolean-boolean...-">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData--">AbstractDataset</a></code></span></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>type of dataset item</dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.251">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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.294">hashCode</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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.299">clone</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">ILazyDataset</a></code></span></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.324">createFromObject</a>(int&nbsp;itemSize,
+                                                   <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>itemSize</code> - </dd>
+<dd><code>obj</code> - </dd>
+<dt><span class="returnLabel">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.376">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>shareData</code> - if true, then share data when possible otherwise copy it</dd>
+<dt><span class="returnLabel">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.405">asNonCompoundDataset</a>(boolean&nbsp;shareData)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#asNonCompoundDataset-boolean-">CompoundDataset</a></code></span></div>
+<div class="block">Get a non-compound dataset version</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shareData</code> - if true, then share data when possible otherwise copy it</dd>
+<dt><span class="returnLabel">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.422">fill</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">Fill dataset with given object</div>
+<dl>
+<dt><span class="returnLabel">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.443">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="returnLabel">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.448">getBufferLength</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.455">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="returnLabel">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.470">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="paramLabel">Parameters:</span></dt>
+<dd><code>index</code> - absolute index</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>values</dd>
+</dl>
+</li>
+</ul>
+<a name="getAbs-int-byte:A-">
+<!--   -->
+</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.486">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="paramLabel">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.493">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.498">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.503">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.508">setItemDirect</a>(int&nbsp;dindex,
+                             int&nbsp;sindex,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.lang.Object-">AbstractDataset</a></code></span></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.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-">
+<!--   -->
+</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.525">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="paramLabel">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.541">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="paramLabel">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/8/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.547">getObject</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject--">Dataset</a></code></span></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.552">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.557">getObject</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.562">getObject</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.567">getByteArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.577">getByteArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.587">getByteArray</a>(int&nbsp;i,
+                           int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.597">getByteArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.607">getShortArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.617">getShortArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.627">getShortArray</a>(int&nbsp;i,
+                             int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.637">getShortArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.647">getIntArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.657">getIntArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.667">getIntArray</a>(int&nbsp;i,
+                         int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.677">getIntArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.687">getLongArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.697">getLongArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.707">getLongArray</a>(int&nbsp;i,
+                           int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.717">getLongArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.727">getFloatArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.737">getFloatArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.747">getFloatArray</a>(int&nbsp;i,
+                             int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.757">getFloatArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.767">getDoubleArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.777">getDoubleArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.787">getDoubleArray</a>(int&nbsp;i,
+                               int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.797">getDoubleArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item in given position</dd>
+</dl>
+</li>
+</ul>
+<a name="getDoubleArrayAbs-int-double:A-">
+<!--   -->
+</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.807">getDoubleArrayAbs</a>(int&nbsp;index,
+                              double[]&nbsp;darray)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArrayAbs-int-double:A-">CompoundDataset</a></code></span></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/8/docs/api/java/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.814">getString</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString--">Dataset</a></code></span></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.819">getString</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.824">getString</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.829">getString</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.834">getFirstValue</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>first value</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.839">getFirstValue</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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.844">getFirstValue</a>(int&nbsp;i,
+                               int&nbsp;j)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue-int-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...-">
+<!--   -->
+</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.849">getFirstValue</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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/8/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.854">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.863">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.878">setObjectAbs</a>(int&nbsp;index,
+                         <a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs-int-java.lang.Object-">Dataset</a></code></span></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.887">set</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-">Dataset</a></code></span></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.892">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-">Dataset</a></code></span></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.897">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-int-">Dataset</a></code></span></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.902">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set-java.lang.Object-int...-">IDataset</a></code></span></div>
+<div class="block">Set the value given by object at given position</div>
+</li>
+</ul>
+<a name="setItem-byte:A-">
+<!--   -->
+</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.916">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="paramLabel">Parameters:</span></dt>
+<dd><code>d</code> - </dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a name="setItem-byte:A-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.929">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="paramLabel">Parameters:</span></dt>
+<dd><code>d</code> - </dd>
+<dd><code>i</code> - </dd>
+</dl>
+</li>
+</ul>
+<a name="setItem-byte:A-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.943">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="paramLabel">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:A-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.956">setItem</a>(byte[]&nbsp;d,
+                    int...&nbsp;pos)</pre>
+<div class="block">Set values at given position</div>
+<dl>
+<dt><span class="paramLabel">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.969">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize-int...-">IDataset</a></code></span></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.997">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">AbstractDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="returnLabel">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.1012">getElementsView</a>(int&nbsp;element)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElementsView-int-">CompoundDataset</a></code></span></div>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+<dl>
+<dt><span class="returnLabel">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.1036">getElements</a>(int&nbsp;element)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElements-int-">CompoundDataset</a></code></span></div>
+<div class="block">Get chosen elements from each item as a dataset</div>
+<dl>
+<dt><span class="returnLabel">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.1044">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#copyElements-org.eclipse.january.dataset.Dataset-int-">CompoundDataset</a></code></span></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.1066">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setElements-org.eclipse.january.dataset.Dataset-int-">CompoundDataset</a></code></span></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.1088">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">Dataset</a></code></span></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.1102">setByBoolean</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></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="paramLabel">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="returnLabel">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.1152">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.1204">setByIndexes</a>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.1284">setSlice</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>The dataset with the sliced set to object</dd>
+</dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes-int:A-boolean:A-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.1355">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl>
+<dt><span class="paramLabel">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:A-boolean:A-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.1382">setItemsOnAxes</a>(int[]&nbsp;pos,
+                           boolean[]&nbsp;axes,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">Dataset</a></code></span></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.1400">containsNans</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.1405">containsInfs</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.1410">containsInvalidNumbers</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.1415">iadd</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place addition with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1501">isubtract</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place subtraction with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1587">imultiply</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place multiplication with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1675">idivide</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place division with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1801">ifloor</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor--">Dataset</a></code></span></div>
+<div class="block">In-place floor</div>
+<dl>
+<dt><span class="returnLabel">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.1806">iremainder</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place remainder</div>
+<dl>
+<dt><span class="returnLabel">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.1927">ipower</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place raise to power of object o</div>
+<dl>
+<dt><span class="returnLabel">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.2029">residual</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">Dataset</a></code></span></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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/CompoundDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/CompoundDataset.html
new file mode 100644
index 0000000..e65b22b
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/CompoundDataset.html
@@ -0,0 +1,2415 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:14 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CompoundDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CompoundDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6,"i29":6,"i30":6,"i31":6,"i32":6,"i33":6,"i34":6,"i35":6,"i36":6,"i37":6,"i38":6,"i39":6,"i40":6,"i41":6,"i42":6,"i43":6,"i44":6,"i45":6,"i46":6,"i47":6,"i48":6,"i49":6,"i50":6,"i51":6,"i52":6,"i53":6,"i54":6,"i55":6,"i56":6,"i57":6,"i58":6,"i59":6,"i60":6,"i61":6,"i62":6,"i63":6,"i64":6,"i65":6,"i66":6,"i67":6,"i68":6,"i69":6,"i70":6,"i71":6,"i72":6,"i73":6,"i74":6,"i75":6,"i76":6,"i77":6,"i78":6,"i79":6,"i80":6,"i81":6,"i82":6,"i83":6,"i84":6,"i85":6,"i86":6,"i87":6,"i88":6,"i89":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#asNonCompoundDataset-boolean-">asNonCompoundDataset</a></span>(boolean&nbsp;shareData)</code>
+<div class="block">Get a non-compound dataset version</div>
+</td>
+</tr>
+<tr id="i1" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#cast-boolean-int-int-">cast</a></span>(boolean&nbsp;repeat,
+    int&nbsp;dtype,
+    int&nbsp;isize)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr id="i2" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#cast-int-">cast</a></span>(int&nbsp;dtype)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr id="i3" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset, making new copy of data</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#copyElements-org.eclipse.january.dataset.Dataset-int-">copyElements</a></span>(<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 id="i5" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i6" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#flatten--">flatten</a></span>()</code>
+<div class="block">Flatten shape</div>
+</td>
+</tr>
+<tr id="i7" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getBroadcastView-int...-">getBroadcastView</a></span>(int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr id="i8" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getBy1DIndex-org.eclipse.january.dataset.IntegerDataset-">getBy1DIndex</a></span>(<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 id="i9" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getByBoolean-org.eclipse.january.dataset.Dataset-">getByBoolean</a></span>(<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 id="i10" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getByIndexes-java.lang.Object...-">getByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i11" class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getByteArray--">getByteArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getByteArray-int...-">getByteArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getByteArray-int-">getByteArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getByteArray-int-int-">getByteArray</a></span>(int&nbsp;i,
+            int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray--">getDoubleArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray-double:A-">getDoubleArray</a></span>(double[]&nbsp;darray)</code>
+<div class="block">Get first item as a double array</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray-double:A-int...-">getDoubleArray</a></span>(double[]&nbsp;darray,
+              int...&nbsp;pos)</code>
+<div class="block">Get an item as a double array</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray-double:A-int-">getDoubleArray</a></span>(double[]&nbsp;darray,
+              int&nbsp;i)</code>
+<div class="block">Get an item as a double array</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray-double:A-int-int-">getDoubleArray</a></span>(double[]&nbsp;darray,
+              int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item as a double array</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray-int...-">getDoubleArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray-int-">getDoubleArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray-int-int-">getDoubleArray</a></span>(int&nbsp;i,
+              int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArrayAbs-int-double:A-">getDoubleArrayAbs</a></span>(int&nbsp;index,
+                 double[]&nbsp;darray)</code>
+<div class="block">Get an item as a double array</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElements-int-">getElements</a></span>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a dataset</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElementsView-int-">getElementsView</a></span>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+</td>
+</tr>
+<tr id="i26" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getErrors--">getErrors</a></span>()</code>
+<div class="block">Get the error array from the dataset of same shape.</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getFloatArray--">getFloatArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getFloatArray-int...-">getFloatArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getFloatArray-int-">getFloatArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getFloatArray-int-int-">getFloatArray</a></span>(int&nbsp;i,
+             int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getIntArray--">getIntArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getIntArray-int...-">getIntArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getIntArray-int-">getIntArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i34" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getIntArray-int-int-">getIntArray</a></span>(int&nbsp;i,
+           int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i35" class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getLongArray--">getLongArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getLongArray-int...-">getLongArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getLongArray-int-">getLongArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i38" class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getLongArray-int-int-">getLongArray</a></span>(int&nbsp;i,
+            int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getShortArray--">getShortArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getShortArray-int...-">getShortArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getShortArray-int-">getShortArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getShortArray-int-int-">getShortArray</a></span>(int&nbsp;i,
+             int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i43" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a></span>(<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 id="i44" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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 id="i45" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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 id="i46" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice-int:A-int:A-int:A-">getSlice</a></span>(int[]&nbsp;start,
+        int[]&nbsp;stop,
+        int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr id="i47" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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 id="i48" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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 id="i49" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSliceView-int:A-int:A-int:A-">getSliceView</a></span>(int[]&nbsp;start,
+            int[]&nbsp;stop,
+            int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr id="i50" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">getSliceView</a></span>(<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 id="i51" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">getSliceView</a></span>(<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 id="i52" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getTransposedView-int...-">getTransposedView</a></span>(int...&nbsp;axes)</code>
+<div class="block">Permute copy of dataset's axes so that given order is old order:</div>
+</td>
+</tr>
+<tr id="i53" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getView-boolean-">getView</a></span>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr id="i54" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i55" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i56" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#ifloor--">ifloor</a></span>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr id="i57" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#ifloorDivide-java.lang.Object-">ifloorDivide</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i58" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i59" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i60" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i61" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i62" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#max-int-boolean...-">max</a></span>(int&nbsp;axis,
+   boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i63" class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#maxItem--">maxItem</a></span>()</code>
+<div class="block">Calculate maximum values of elements over all items in dataset</div>
+</td>
+</tr>
+<tr id="i64" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#mean-int-boolean...-">mean</a></span>(int&nbsp;axis,
+    boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i65" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#min-int-boolean...-">min</a></span>(int&nbsp;axis,
+   boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i66" class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#minItem--">minItem</a></span>()</code>
+<div class="block">Calculate minimum values of elements over all items in dataset</div>
+</td>
+</tr>
+<tr id="i67" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#peakToPeak-int-boolean...-">peakToPeak</a></span>(int&nbsp;axis,
+          boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i68" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#product-int-boolean...-">product</a></span>(int&nbsp;axis,
+       boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i69" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#reshape-int...-">reshape</a></span>(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 id="i70" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#rootMeanSquare-int-boolean...-">rootMeanSquare</a></span>(int&nbsp;axis,
+              boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i71" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i72" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i73" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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 id="i74" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setElements-org.eclipse.january.dataset.Dataset-int-">setElements</a></span>(<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 id="i75" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i76" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i77" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i78" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#sort-java.lang.Integer-">sort</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i79" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#squeeze--">squeeze</a></span>()</code>
+<div class="block">Remove dimensions of 1 in shape of the dataset</div>
+</td>
+</tr>
+<tr id="i80" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#squeeze-boolean-">squeeze</a></span>(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 id="i81" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#squeezeEnds--">squeezeEnds</a></span>()</code>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+</td>
+</tr>
+<tr id="i82" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#stdDeviation-int-">stdDeviation</a></span>(int&nbsp;axis)</code>
+<div class="block">Standard deviation is square root of the variance</div>
+</td>
+</tr>
+<tr id="i83" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#stdDeviation-int-boolean-boolean...-">stdDeviation</a></span>(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 id="i84" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#sum-int-boolean...-">sum</a></span>(int&nbsp;axis,
+   boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i85" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#swapAxes-int-int-">swapAxes</a></span>(int&nbsp;axis1,
+        int&nbsp;axis2)</code>
+<div class="block">Swap two axes in dataset</div>
+</td>
+</tr>
+<tr id="i86" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#synchronizedCopy--">synchronizedCopy</a></span>()</code>
+<div class="block">This is a <b>synchronized</b> version of the clone method</div>
+</td>
+</tr>
+<tr id="i87" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#transpose-int...-">transpose</a></span>(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 id="i88" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#variance-int-">variance</a></span>(int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr id="i89" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#variance-int-boolean-boolean...-">variance</a></span>(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-boolean...-">argMax</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin-int-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#cast-int-java.lang.Class-boolean-">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:A-boolean:A-org.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:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count-int-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.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-int-">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-boolean-">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-int-">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-int-">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-int-">getError</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray-int-">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray-int-int-">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-int-">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-int-">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-int-">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-int-">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-int-">getShort</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator-int:A-int:A-int:A-">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator-org.eclipse.january.dataset.SliceND-">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">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-int-">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#max-int:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product-int:A-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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare-int:A-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-int-">set</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-int-">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:A-boolean:A-java.lang.Object-">setItemsOnAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs-int-java.lang.Object-">setObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#sum-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#sum-int:A-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-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int:A-boolean-boolean...-">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-int...-">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast-boolean-int-int-">Dataset</a></code></span></div>
+<div class="block">Cast a dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast-boolean-int-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>
+<dd><code>dtype</code> - dataset type</dd>
+<dd><code>isize</code> - item size</dd>
+<dt><span class="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast-int-">Dataset</a></code></span></div>
+<div class="block">Cast a dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>dtype</code> - dataset type</dd>
+<dt><span class="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone--">IDataset</a></code></span></div>
+<div class="block">Clone dataset, making new copy of data</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">Fill dataset with given object</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#flatten--">Dataset</a></code></span></div>
+<div class="block">Flatten shape</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBy1DIndex-org.eclipse.january.dataset.IntegerDataset-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy get item with an index dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>index</code> - an integer dataset</dd>
+<dt><span class="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByBoolean-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy get item with a condition specified by a boolean dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>selection</code> - a boolean dataset of same shape to use for selecting items</dd>
+<dt><span class="returnLabel">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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByIndexes-java.lang.Object...-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy get item with an array of indexing objects</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>The new selected dataset by index</dd>
+</dl>
+</li>
+</ul>
+<a name="getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">
+<!--   -->
+</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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">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="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.IMonitor-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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-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>
+<dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.IMonitor-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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-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>
+<dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+</dl>
+</li>
+</ul>
+<a name="getSlice-int:A-int:A-int:A-">
+<!--   -->
+</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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-int:A-int:A-int:A-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice-int:A-int:A-int:A-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSlice-int:A-int:A-int:A-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-int:A-int:A-int:A-">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="paramLabel">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="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+</dl>
+</li>
+</ul>
+<a name="getSliceView-int:A-int:A-int:A-">
+<!--   -->
+</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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView-int:A-int:A-int:A-">IDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a view on a selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceView-int:A-int:A-int:A-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView-int:A-int:A-int:A-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView-int:A-int:A-int:A-">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="paramLabel">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="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">IDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a view on a selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">IDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a view on a selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an nD slice object</dd>
+<dt><span class="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getTransposedView-int...-">IDataset</a></code></span></div>
+<div class="block">Permute copy of dataset's axes so that given order is old order:
+ 
+ <pre>
+  axisPerm = (p(0), p(1),...) =&gt; 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="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>axes</code> - if zero length then axes order reversed</dd>
+<dt><span class="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place addition with object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place division with object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor--">Dataset</a></code></span></div>
+<div class="block">In-place floor</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloorDivide-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place floor division with object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place multiplication with object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place raise to power of object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place remainder</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place subtraction with object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#reshape-int...-">Dataset</a></code></span></div>
+<div class="block">Returns new dataset with new shape but old data if possible, otherwise a copy is made</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - new shape</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>reshaped dataset</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/8/docs/api/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex-java.lang.Object-org.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="paramLabel">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="returnLabel">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/8/docs/api/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></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="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean-java.lang.Object-org.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="paramLabel">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="returnLabel">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/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes-java.lang.Object-java.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="paramLabel">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="returnLabel">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/8/docs/api/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="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>The dataset with the sliced set to object</dd>
+</dl>
+</li>
+</ul>
+<a name="setSlice-java.lang.Object-int:A-int:A-int:A-">
+<!--   -->
+</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/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy array slice</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">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="paramLabel">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="returnLabel">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/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy array slice</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.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/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sort-java.lang.Integer-">Dataset</a></code></span></div>
+<div class="block">In-place sort of dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>axis</code> - to sort along. If null, then the flattened view is sorted</dd>
+<dt><span class="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds--">ILazyDataset</a></code></span></div>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeeze--">IDataset</a></code></span></div>
+<div class="block">Remove dimensions of 1 in shape of the dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeeze-boolean-">IDataset</a></code></span></div>
+<div class="block">Remove dimensions of 1 in shape of the dataset from ends only if true</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#swapAxes-int-int-">Dataset</a></code></span></div>
+<div class="block">Swap two axes in dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#swapAxes-int-int-">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="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#synchronizedCopy--">Dataset</a></code></span></div>
+<div class="block">This is a <b>synchronized</b> version of the clone method</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#transpose-int...-">Dataset</a></code></span></div>
+<div class="block">See <a href="../../../../org/eclipse/january/dataset/Dataset.html#getTransposedView-int...-"><code>Dataset.getTransposedView(int...)</code></a></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-">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="returnLabel">Returns:</span></dt>
+<dd>maxima along axis in dataset</dd>
+<dt><span class="simpleTagLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#min-int-boolean...-">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-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>minima along axis in dataset</dd>
+<dt><span class="simpleTagLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-int-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>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>peak-to-peak dataset, the difference of maxima and minima of dataset along axis</dd>
+<dt><span class="simpleTagLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sum-int-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>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>sum along axis in dataset</dd>
+<dt><span class="simpleTagLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#product-int-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>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>product along axis in dataset</dd>
+<dt><span class="simpleTagLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#mean-int-boolean...-">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-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>mean along axis in dataset</dd>
+<dt><span class="simpleTagLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare-int-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>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>root mean square along axis in dataset</dd>
+<dt><span class="simpleTagLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int-">Dataset</a></code></span></div>
+<div class="block">Standard deviation is square root of the variance</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>standard deviation along axis in dataset</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int-boolean-boolean...-"><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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int-boolean-boolean...-">Dataset</a></code></span></div>
+<div class="block">Standard deviation is square root of the variance</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int-boolean-boolean...-">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-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>standard deviation along axis in dataset</dd>
+<dt><span class="simpleTagLabel">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/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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>sample variance along axis in dataset</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int-boolean-boolean...-"><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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int-boolean-boolean...-">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-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>sample variance along axis in dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a name="getDoubleArray-double:A-">
+<!--   -->
+</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="paramLabel">Parameters:</span></dt>
+<dd><code>darray</code> - double array must be allocated and have sufficient length</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a name="getDoubleArray-double:A-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="paramLabel">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:A-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="paramLabel">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:A-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="paramLabel">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-">
+<!--   -->
+</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="paramLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>element</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>element</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">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="paramLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>shareData</code> - if true, then share data when possible otherwise copy it</dd>
+<dt><span class="returnLabel">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="returnLabel">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="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrors--">Dataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>the dataset which contains the error information (can be null)</dd>
+<dt><span class="simpleTagLabel">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="returnLabel">Returns:</span></dt>
+<dd>item in first position</dd>
+<dt><span class="simpleTagLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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="returnLabel">Returns:</span></dt>
+<dd>item in first position</dd>
+<dt><span class="simpleTagLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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="returnLabel">Returns:</span></dt>
+<dd>item in first position</dd>
+<dt><span class="simpleTagLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item in given position</dd>
+<dt><span class="simpleTagLabel">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="returnLabel">Returns:</span></dt>
+<dd>item in first position</dd>
+<dt><span class="simpleTagLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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="returnLabel">Returns:</span></dt>
+<dd>item in first position</dd>
+<dt><span class="simpleTagLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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="returnLabel">Returns:</span></dt>
+<dd>item in first position</dd>
+<dt><span class="simpleTagLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/CompoundDoubleDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/CompoundDoubleDataset.html
new file mode 100644
index 0000000..192b72f
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/CompoundDoubleDataset.html
@@ -0,0 +1,2266 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:14 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CompoundDoubleDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CompoundDoubleDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":9,"i9":9,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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="seeLabel">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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#data">data</a></span></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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#asNonCompoundDataset-boolean-">asNonCompoundDataset</a></span>(boolean&nbsp;shareData)</code>
+<div class="block">Get a non-compound dataset version</div>
+</td>
+</tr>
+<tr id="i1" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#containsInfs--">containsInfs</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#containsInvalidNumbers--">containsInvalidNumbers</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#containsNans--">containsNans</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#copyElements-org.eclipse.january.dataset.Dataset-int-">copyElements</a></span>(<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 id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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 id="i7" class="rowColor">
+<td class="colFirst"><code>protected double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#createArray-int-">createArray</a></span>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr id="i8" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#createCompoundDatasetWithLastDimension-org.eclipse.january.dataset.Dataset-boolean-">createCompoundDatasetWithLastDimension</a></span>(<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 id="i9" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#createFromObject-int-java.lang.Object-">createFromObject</a></span>(int&nbsp;itemSize,
+                <a href="https://docs.oracle.com/javase/8/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 id="i10" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i11" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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 id="i13" class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getAbs-int-">getAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getAbs-int-double:A-">getAbs</a></span>(int&nbsp;index,
+      double[]&nbsp;values)</code>
+<div class="block">Get values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getBufferLength--">getBufferLength</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getByteArray--">getByteArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getByteArray-int...-">getByteArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getByteArray-int-">getByteArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getByteArray-int-int-">getByteArray</a></span>(int&nbsp;i,
+            int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getData--">getData</a></span>()</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 id="i21" class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getDoubleArray--">getDoubleArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getDoubleArray-int...-">getDoubleArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getDoubleArray-int-">getDoubleArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getDoubleArray-int-int-">getDoubleArray</a></span>(int&nbsp;i,
+              int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getDoubleArrayAbs-int-double:A-">getDoubleArrayAbs</a></span>(int&nbsp;index,
+                 double[]&nbsp;darray)</code>
+<div class="block">Get an item as a double array</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getDType--">getDType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getElementBooleanAbs-int-">getElementBooleanAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getElementDoubleAbs-int-">getElementDoubleAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getElementLongAbs-int-">getElementLongAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr id="i30" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getElements-int-">getElements</a></span>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a dataset</div>
+</td>
+</tr>
+<tr id="i31" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getElementsView-int-">getElementsView</a></span>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getFirstValue--">getFirstValue</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getFirstValue-int...-">getFirstValue</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i34" class="altColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getFirstValue-int-">getFirstValue</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i35" class="rowColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getFirstValue-int-int-">getFirstValue</a></span>(int&nbsp;i,
+             int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getFloatArray--">getFloatArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getFloatArray-int...-">getFloatArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i38" class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getFloatArray-int-">getFloatArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getFloatArray-int-int-">getFloatArray</a></span>(int&nbsp;i,
+             int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getIntArray--">getIntArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getIntArray-int...-">getIntArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getIntArray-int-">getIntArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i43" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getIntArray-int-int-">getIntArray</a></span>(int&nbsp;i,
+           int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i44" class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getLongArray--">getLongArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i45" class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getLongArray-int...-">getLongArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i46" class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getLongArray-int-">getLongArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i47" class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getLongArray-int-int-">getLongArray</a></span>(int&nbsp;i,
+            int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i48" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getObject--">getObject</a></span>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr id="i49" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getObject-int...-">getObject</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i50" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getObject-int-">getObject</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i51" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getObject-int-int-">getObject</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i52" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getObjectAbs-int-">getObjectAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr id="i53" class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getShortArray--">getShortArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i54" class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getShortArray-int...-">getShortArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i55" class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getShortArray-int-">getShortArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i56" class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getShortArray-int-int-">getShortArray</a></span>(int&nbsp;i,
+             int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i57" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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 id="i58" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getString--">getString</a></span>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr id="i59" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getString-int...-">getString</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i60" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getString-int-">getString</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i61" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getString-int-int-">getString</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i62" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getStringAbs-int-">getStringAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr id="i63" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getView-boolean-">getView</a></span>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr id="i64" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i65" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i66" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i67" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#ifloor--">ifloor</a></span>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr id="i68" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i69" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i70" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i71" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i72" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i73" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#resize-int...-">resize</a></span>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr id="i74" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#set-java.lang.Object-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i75" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#set-java.lang.Object-int...-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i76" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#set-java.lang.Object-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i77" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#set-java.lang.Object-int-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i78" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setAbs-int-double-">setAbs</a></span>(int&nbsp;index,
+      double&nbsp;val)</code>
+<div class="block">Set element value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i79" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setAbs-int-double:A-">setAbs</a></span>(int&nbsp;index,
+      double[]&nbsp;val)</code>
+<div class="block">Set values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i80" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i81" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i82" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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 id="i83" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setData--">setData</a></span>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr id="i84" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setElements-org.eclipse.january.dataset.Dataset-int-">setElements</a></span>(<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 id="i85" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setItem-double:A-">setItem</a></span>(double[]&nbsp;d)</code>
+<div class="block">Set values at first position.</div>
+</td>
+</tr>
+<tr id="i86" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setItem-double:A-int...-">setItem</a></span>(double[]&nbsp;d,
+       int...&nbsp;pos)</code>
+<div class="block">Set values at given position</div>
+</td>
+</tr>
+<tr id="i87" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setItem-double:A-int-">setItem</a></span>(double[]&nbsp;d,
+       int&nbsp;i)</code>
+<div class="block">Set values at given position.</div>
+</td>
+</tr>
+<tr id="i88" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setItem-double:A-int-int-">setItem</a></span>(double[]&nbsp;d,
+       int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Set values at given position.</div>
+</td>
+</tr>
+<tr id="i89" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setItemDirect-int-int-java.lang.Object-">setItemDirect</a></span>(int&nbsp;dindex,
+             int&nbsp;sindex,
+             <a href="https://docs.oracle.com/javase/8/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 id="i90" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">setItemsOnAxes</a></span>(int[]&nbsp;pos,
+              boolean[]&nbsp;axes,
+              <a href="https://docs.oracle.com/javase/8/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 id="i91" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setObjectAbs-int-java.lang.Object-">setObjectAbs</a></span>(int&nbsp;index,
+            <a href="https://docs.oracle.com/javase/8/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 id="i92" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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-boolean...-">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMin-int-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast-boolean-int-int-">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-int-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndexFromShape-int:A-">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-int-">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-int-">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-int-">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int...-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int-int-">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-int-">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-int-">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-int-">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-int-">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-int-">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-int-">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-int:A-int:A-int:A-">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:A-int:A-int:A-">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-boolean...-">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-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min-int-boolean...-">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-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#product-int-boolean...-">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-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice-java.lang.Object-org.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-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum-int-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#swapAxes-int-int-">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-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance-int-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance-int-boolean-boolean...-">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-double-double-">calcSteps</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-java.lang.Class-boolean-">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-int-">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-org.eclipse.january.dataset.AbstractDataset-boolean-boolean-">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.Dataset-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-int-int:A-int:A-int-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-org.eclipse.january.dataset.Dataset-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-int-int:A-int:A-int-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData-java.lang.Object-int-int:A-">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex-int...-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-int:A-">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-boolean-">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer--">getBuffer</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#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:A-int:A-int:A-">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">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#max-int:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int:A-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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer-java.io.Serializable-">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength-int-">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape-int...-">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int:A-boolean...-">sum</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>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-boolean-boolean...-">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:A-int...-">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-boolean-">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#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#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName--">getName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors--">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata-int:A-int:A-">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors-java.io.Serializable-">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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#cast-int-java.lang.Class-boolean-">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:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count-int-boolean...-">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-boolean-">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:A-int:A-int:A-">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">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#max-int:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product-int:A-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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</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-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#sum-int:A-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-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int:A-boolean-boolean...-">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData--">AbstractDataset</a></code></span></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>type of dataset item</dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.251">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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.294">hashCode</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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.299">clone</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">ILazyDataset</a></code></span></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.324">createFromObject</a>(int&nbsp;itemSize,
+                                                     <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>itemSize</code> - </dd>
+<dd><code>obj</code> - </dd>
+<dt><span class="returnLabel">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.376">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>shareData</code> - if true, then share data when possible otherwise copy it</dd>
+<dt><span class="returnLabel">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.405">asNonCompoundDataset</a>(boolean&nbsp;shareData)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#asNonCompoundDataset-boolean-">CompoundDataset</a></code></span></div>
+<div class="block">Get a non-compound dataset version</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shareData</code> - if true, then share data when possible otherwise copy it</dd>
+<dt><span class="returnLabel">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.422">fill</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">Fill dataset with given object</div>
+<dl>
+<dt><span class="returnLabel">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.443">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="returnLabel">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.448">getBufferLength</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.455">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="returnLabel">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.470">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="paramLabel">Parameters:</span></dt>
+<dd><code>index</code> - absolute index</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>values</dd>
+</dl>
+</li>
+</ul>
+<a name="getAbs-int-double:A-">
+<!--   -->
+</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.486">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="paramLabel">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.493">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.498">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.503">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.508">setItemDirect</a>(int&nbsp;dindex,
+                             int&nbsp;sindex,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.lang.Object-">AbstractDataset</a></code></span></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.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-">
+<!--   -->
+</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.525">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="paramLabel">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.541">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="paramLabel">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/8/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.547">getObject</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject--">Dataset</a></code></span></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.552">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.557">getObject</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.562">getObject</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.567">getByteArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.577">getByteArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.587">getByteArray</a>(int&nbsp;i,
+                           int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.597">getByteArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.607">getShortArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.617">getShortArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.627">getShortArray</a>(int&nbsp;i,
+                             int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.637">getShortArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.647">getIntArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.657">getIntArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.667">getIntArray</a>(int&nbsp;i,
+                         int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.677">getIntArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.687">getLongArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.697">getLongArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.707">getLongArray</a>(int&nbsp;i,
+                           int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.717">getLongArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.727">getFloatArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.737">getFloatArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.747">getFloatArray</a>(int&nbsp;i,
+                             int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.757">getFloatArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.767">getDoubleArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.777">getDoubleArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.787">getDoubleArray</a>(int&nbsp;i,
+                               int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.797">getDoubleArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item in given position</dd>
+</dl>
+</li>
+</ul>
+<a name="getDoubleArrayAbs-int-double:A-">
+<!--   -->
+</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.807">getDoubleArrayAbs</a>(int&nbsp;index,
+                              double[]&nbsp;darray)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArrayAbs-int-double:A-">CompoundDataset</a></code></span></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/8/docs/api/java/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.814">getString</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString--">Dataset</a></code></span></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.819">getString</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.824">getString</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.829">getString</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.834">getFirstValue</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>first value</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.839">getFirstValue</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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.844">getFirstValue</a>(int&nbsp;i,
+                               int&nbsp;j)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue-int-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...-">
+<!--   -->
+</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.849">getFirstValue</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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/8/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.854">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.863">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.878">setObjectAbs</a>(int&nbsp;index,
+                         <a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs-int-java.lang.Object-">Dataset</a></code></span></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.887">set</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-">Dataset</a></code></span></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.892">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-">Dataset</a></code></span></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.897">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-int-">Dataset</a></code></span></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.902">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set-java.lang.Object-int...-">IDataset</a></code></span></div>
+<div class="block">Set the value given by object at given position</div>
+</li>
+</ul>
+<a name="setItem-double:A-">
+<!--   -->
+</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.916">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="paramLabel">Parameters:</span></dt>
+<dd><code>d</code> - </dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a name="setItem-double:A-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.929">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="paramLabel">Parameters:</span></dt>
+<dd><code>d</code> - </dd>
+<dd><code>i</code> - </dd>
+</dl>
+</li>
+</ul>
+<a name="setItem-double:A-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.943">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="paramLabel">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:A-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.956">setItem</a>(double[]&nbsp;d,
+                    int...&nbsp;pos)</pre>
+<div class="block">Set values at given position</div>
+<dl>
+<dt><span class="paramLabel">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.969">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize-int...-">IDataset</a></code></span></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.997">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">AbstractDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="returnLabel">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.1012">getElementsView</a>(int&nbsp;element)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElementsView-int-">CompoundDataset</a></code></span></div>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+<dl>
+<dt><span class="returnLabel">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.1036">getElements</a>(int&nbsp;element)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElements-int-">CompoundDataset</a></code></span></div>
+<div class="block">Get chosen elements from each item as a dataset</div>
+<dl>
+<dt><span class="returnLabel">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.1044">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#copyElements-org.eclipse.january.dataset.Dataset-int-">CompoundDataset</a></code></span></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.1066">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setElements-org.eclipse.january.dataset.Dataset-int-">CompoundDataset</a></code></span></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.1088">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">Dataset</a></code></span></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.1102">setByBoolean</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></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="paramLabel">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="returnLabel">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.1152">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.1204">setByIndexes</a>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.1284">setSlice</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>The dataset with the sliced set to object</dd>
+</dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes-int:A-boolean:A-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.1355">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl>
+<dt><span class="paramLabel">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:A-boolean:A-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.1382">setItemsOnAxes</a>(int[]&nbsp;pos,
+                           boolean[]&nbsp;axes,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">Dataset</a></code></span></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.1400">containsNans</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.1412">containsInfs</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.1424">containsInvalidNumbers</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.1437">iadd</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place addition with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1523">isubtract</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place subtraction with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1609">imultiply</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place multiplication with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1697">idivide</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place division with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1807">ifloor</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor--">Dataset</a></code></span></div>
+<div class="block">In-place floor</div>
+<dl>
+<dt><span class="returnLabel">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.1819">iremainder</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place remainder</div>
+<dl>
+<dt><span class="returnLabel">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.1924">ipower</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place raise to power of object o</div>
+<dl>
+<dt><span class="returnLabel">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.2026">residual</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">Dataset</a></code></span></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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/CompoundFloatDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/CompoundFloatDataset.html
new file mode 100644
index 0000000..789c3f7
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/CompoundFloatDataset.html
@@ -0,0 +1,2266 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:14 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CompoundFloatDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CompoundFloatDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":9,"i9":9,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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="seeLabel">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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#data">data</a></span></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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#asNonCompoundDataset-boolean-">asNonCompoundDataset</a></span>(boolean&nbsp;shareData)</code>
+<div class="block">Get a non-compound dataset version</div>
+</td>
+</tr>
+<tr id="i1" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#containsInfs--">containsInfs</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#containsInvalidNumbers--">containsInvalidNumbers</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#containsNans--">containsNans</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#copyElements-org.eclipse.january.dataset.Dataset-int-">copyElements</a></span>(<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 id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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 id="i7" class="rowColor">
+<td class="colFirst"><code>protected float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#createArray-int-">createArray</a></span>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr id="i8" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#createCompoundDatasetWithLastDimension-org.eclipse.january.dataset.Dataset-boolean-">createCompoundDatasetWithLastDimension</a></span>(<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 id="i9" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#createFromObject-int-java.lang.Object-">createFromObject</a></span>(int&nbsp;itemSize,
+                <a href="https://docs.oracle.com/javase/8/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 id="i10" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i11" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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 id="i13" class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getAbs-int-">getAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getAbs-int-float:A-">getAbs</a></span>(int&nbsp;index,
+      float[]&nbsp;values)</code>
+<div class="block">Get values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getBufferLength--">getBufferLength</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getByteArray--">getByteArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getByteArray-int...-">getByteArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getByteArray-int-">getByteArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getByteArray-int-int-">getByteArray</a></span>(int&nbsp;i,
+            int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getData--">getData</a></span>()</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 id="i21" class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getDoubleArray--">getDoubleArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getDoubleArray-int...-">getDoubleArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getDoubleArray-int-">getDoubleArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getDoubleArray-int-int-">getDoubleArray</a></span>(int&nbsp;i,
+              int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getDoubleArrayAbs-int-double:A-">getDoubleArrayAbs</a></span>(int&nbsp;index,
+                 double[]&nbsp;darray)</code>
+<div class="block">Get an item as a double array</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getDType--">getDType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getElementBooleanAbs-int-">getElementBooleanAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getElementDoubleAbs-int-">getElementDoubleAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getElementLongAbs-int-">getElementLongAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr id="i30" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getElements-int-">getElements</a></span>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a dataset</div>
+</td>
+</tr>
+<tr id="i31" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getElementsView-int-">getElementsView</a></span>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getFirstValue--">getFirstValue</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getFirstValue-int...-">getFirstValue</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i34" class="altColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getFirstValue-int-">getFirstValue</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i35" class="rowColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getFirstValue-int-int-">getFirstValue</a></span>(int&nbsp;i,
+             int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getFloatArray--">getFloatArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getFloatArray-int...-">getFloatArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i38" class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getFloatArray-int-">getFloatArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getFloatArray-int-int-">getFloatArray</a></span>(int&nbsp;i,
+             int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getIntArray--">getIntArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getIntArray-int...-">getIntArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getIntArray-int-">getIntArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i43" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getIntArray-int-int-">getIntArray</a></span>(int&nbsp;i,
+           int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i44" class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getLongArray--">getLongArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i45" class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getLongArray-int...-">getLongArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i46" class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getLongArray-int-">getLongArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i47" class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getLongArray-int-int-">getLongArray</a></span>(int&nbsp;i,
+            int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i48" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getObject--">getObject</a></span>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr id="i49" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getObject-int...-">getObject</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i50" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getObject-int-">getObject</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i51" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getObject-int-int-">getObject</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i52" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getObjectAbs-int-">getObjectAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr id="i53" class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getShortArray--">getShortArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i54" class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getShortArray-int...-">getShortArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i55" class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getShortArray-int-">getShortArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i56" class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getShortArray-int-int-">getShortArray</a></span>(int&nbsp;i,
+             int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i57" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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 id="i58" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getString--">getString</a></span>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr id="i59" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getString-int...-">getString</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i60" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getString-int-">getString</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i61" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getString-int-int-">getString</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i62" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getStringAbs-int-">getStringAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr id="i63" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getView-boolean-">getView</a></span>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr id="i64" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i65" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i66" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i67" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#ifloor--">ifloor</a></span>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr id="i68" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i69" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i70" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i71" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i72" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i73" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#resize-int...-">resize</a></span>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr id="i74" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#set-java.lang.Object-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i75" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#set-java.lang.Object-int...-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i76" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#set-java.lang.Object-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i77" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#set-java.lang.Object-int-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i78" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setAbs-int-float-">setAbs</a></span>(int&nbsp;index,
+      float&nbsp;val)</code>
+<div class="block">Set element value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i79" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setAbs-int-float:A-">setAbs</a></span>(int&nbsp;index,
+      float[]&nbsp;val)</code>
+<div class="block">Set values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i80" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i81" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i82" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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 id="i83" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setData--">setData</a></span>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr id="i84" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setElements-org.eclipse.january.dataset.Dataset-int-">setElements</a></span>(<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 id="i85" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setItem-float:A-">setItem</a></span>(float[]&nbsp;d)</code>
+<div class="block">Set values at first position.</div>
+</td>
+</tr>
+<tr id="i86" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setItem-float:A-int...-">setItem</a></span>(float[]&nbsp;d,
+       int...&nbsp;pos)</code>
+<div class="block">Set values at given position</div>
+</td>
+</tr>
+<tr id="i87" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setItem-float:A-int-">setItem</a></span>(float[]&nbsp;d,
+       int&nbsp;i)</code>
+<div class="block">Set values at given position.</div>
+</td>
+</tr>
+<tr id="i88" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setItem-float:A-int-int-">setItem</a></span>(float[]&nbsp;d,
+       int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Set values at given position.</div>
+</td>
+</tr>
+<tr id="i89" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setItemDirect-int-int-java.lang.Object-">setItemDirect</a></span>(int&nbsp;dindex,
+             int&nbsp;sindex,
+             <a href="https://docs.oracle.com/javase/8/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 id="i90" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">setItemsOnAxes</a></span>(int[]&nbsp;pos,
+              boolean[]&nbsp;axes,
+              <a href="https://docs.oracle.com/javase/8/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 id="i91" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setObjectAbs-int-java.lang.Object-">setObjectAbs</a></span>(int&nbsp;index,
+            <a href="https://docs.oracle.com/javase/8/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 id="i92" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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-boolean...-">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMin-int-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast-boolean-int-int-">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-int-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndexFromShape-int:A-">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-int-">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-int-">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-int-">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int...-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int-int-">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-int-">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-int-">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-int-">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-int-">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-int-">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-int-">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-int:A-int:A-int:A-">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:A-int:A-int:A-">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-boolean...-">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-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min-int-boolean...-">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-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#product-int-boolean...-">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-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice-java.lang.Object-org.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-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum-int-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#swapAxes-int-int-">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-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance-int-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance-int-boolean-boolean...-">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-double-double-">calcSteps</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-java.lang.Class-boolean-">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-int-">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-org.eclipse.january.dataset.AbstractDataset-boolean-boolean-">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.Dataset-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-int-int:A-int:A-int-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-org.eclipse.january.dataset.Dataset-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-int-int:A-int:A-int-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData-java.lang.Object-int-int:A-">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex-int...-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-int:A-">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-boolean-">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer--">getBuffer</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#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:A-int:A-int:A-">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">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#max-int:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int:A-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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer-java.io.Serializable-">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength-int-">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape-int...-">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int:A-boolean...-">sum</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>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-boolean-boolean...-">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:A-int...-">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-boolean-">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#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#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName--">getName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors--">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata-int:A-int:A-">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors-java.io.Serializable-">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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#cast-int-java.lang.Class-boolean-">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:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count-int-boolean...-">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-boolean-">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:A-int:A-int:A-">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">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#max-int:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product-int:A-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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</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-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#sum-int:A-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-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int:A-boolean-boolean...-">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData--">AbstractDataset</a></code></span></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>type of dataset item</dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.251">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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.294">hashCode</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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.299">clone</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">ILazyDataset</a></code></span></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.324">createFromObject</a>(int&nbsp;itemSize,
+                                                    <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>itemSize</code> - </dd>
+<dd><code>obj</code> - </dd>
+<dt><span class="returnLabel">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.376">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>shareData</code> - if true, then share data when possible otherwise copy it</dd>
+<dt><span class="returnLabel">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.405">asNonCompoundDataset</a>(boolean&nbsp;shareData)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#asNonCompoundDataset-boolean-">CompoundDataset</a></code></span></div>
+<div class="block">Get a non-compound dataset version</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shareData</code> - if true, then share data when possible otherwise copy it</dd>
+<dt><span class="returnLabel">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.422">fill</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">Fill dataset with given object</div>
+<dl>
+<dt><span class="returnLabel">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.443">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="returnLabel">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.448">getBufferLength</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.455">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="returnLabel">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.470">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="paramLabel">Parameters:</span></dt>
+<dd><code>index</code> - absolute index</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>values</dd>
+</dl>
+</li>
+</ul>
+<a name="getAbs-int-float:A-">
+<!--   -->
+</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.486">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="paramLabel">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.493">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.498">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.503">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.508">setItemDirect</a>(int&nbsp;dindex,
+                             int&nbsp;sindex,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.lang.Object-">AbstractDataset</a></code></span></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.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-">
+<!--   -->
+</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.525">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="paramLabel">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.541">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="paramLabel">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/8/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.547">getObject</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject--">Dataset</a></code></span></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.552">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.557">getObject</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.562">getObject</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.567">getByteArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.577">getByteArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.587">getByteArray</a>(int&nbsp;i,
+                           int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.597">getByteArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.607">getShortArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.617">getShortArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.627">getShortArray</a>(int&nbsp;i,
+                             int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.637">getShortArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.647">getIntArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.657">getIntArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.667">getIntArray</a>(int&nbsp;i,
+                         int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.677">getIntArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.687">getLongArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.697">getLongArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.707">getLongArray</a>(int&nbsp;i,
+                           int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.717">getLongArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.727">getFloatArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.737">getFloatArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.747">getFloatArray</a>(int&nbsp;i,
+                             int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.757">getFloatArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.767">getDoubleArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.777">getDoubleArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.787">getDoubleArray</a>(int&nbsp;i,
+                               int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.797">getDoubleArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item in given position</dd>
+</dl>
+</li>
+</ul>
+<a name="getDoubleArrayAbs-int-double:A-">
+<!--   -->
+</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.807">getDoubleArrayAbs</a>(int&nbsp;index,
+                              double[]&nbsp;darray)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArrayAbs-int-double:A-">CompoundDataset</a></code></span></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/8/docs/api/java/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.814">getString</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString--">Dataset</a></code></span></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.819">getString</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.824">getString</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.829">getString</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.834">getFirstValue</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>first value</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.839">getFirstValue</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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.844">getFirstValue</a>(int&nbsp;i,
+                               int&nbsp;j)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue-int-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...-">
+<!--   -->
+</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.849">getFirstValue</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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/8/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.854">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.863">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.878">setObjectAbs</a>(int&nbsp;index,
+                         <a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs-int-java.lang.Object-">Dataset</a></code></span></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.887">set</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-">Dataset</a></code></span></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.892">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-">Dataset</a></code></span></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.897">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-int-">Dataset</a></code></span></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.902">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set-java.lang.Object-int...-">IDataset</a></code></span></div>
+<div class="block">Set the value given by object at given position</div>
+</li>
+</ul>
+<a name="setItem-float:A-">
+<!--   -->
+</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.916">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="paramLabel">Parameters:</span></dt>
+<dd><code>d</code> - </dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a name="setItem-float:A-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.929">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="paramLabel">Parameters:</span></dt>
+<dd><code>d</code> - </dd>
+<dd><code>i</code> - </dd>
+</dl>
+</li>
+</ul>
+<a name="setItem-float:A-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.943">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="paramLabel">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:A-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.956">setItem</a>(float[]&nbsp;d,
+                    int...&nbsp;pos)</pre>
+<div class="block">Set values at given position</div>
+<dl>
+<dt><span class="paramLabel">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.969">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize-int...-">IDataset</a></code></span></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.997">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">AbstractDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="returnLabel">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.1012">getElementsView</a>(int&nbsp;element)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElementsView-int-">CompoundDataset</a></code></span></div>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+<dl>
+<dt><span class="returnLabel">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.1036">getElements</a>(int&nbsp;element)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElements-int-">CompoundDataset</a></code></span></div>
+<div class="block">Get chosen elements from each item as a dataset</div>
+<dl>
+<dt><span class="returnLabel">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.1044">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#copyElements-org.eclipse.january.dataset.Dataset-int-">CompoundDataset</a></code></span></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.1066">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setElements-org.eclipse.january.dataset.Dataset-int-">CompoundDataset</a></code></span></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.1088">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">Dataset</a></code></span></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.1102">setByBoolean</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></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="paramLabel">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="returnLabel">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.1152">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.1204">setByIndexes</a>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.1284">setSlice</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>The dataset with the sliced set to object</dd>
+</dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes-int:A-boolean:A-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.1355">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl>
+<dt><span class="paramLabel">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:A-boolean:A-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.1382">setItemsOnAxes</a>(int[]&nbsp;pos,
+                           boolean[]&nbsp;axes,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">Dataset</a></code></span></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.1400">containsNans</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.1412">containsInfs</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.1424">containsInvalidNumbers</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.1437">iadd</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place addition with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1523">isubtract</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place subtraction with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1609">imultiply</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place multiplication with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1697">idivide</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place division with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1807">ifloor</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor--">Dataset</a></code></span></div>
+<div class="block">In-place floor</div>
+<dl>
+<dt><span class="returnLabel">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.1819">iremainder</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place remainder</div>
+<dl>
+<dt><span class="returnLabel">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.1924">ipower</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place raise to power of object o</div>
+<dl>
+<dt><span class="returnLabel">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.2026">residual</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">Dataset</a></code></span></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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/CompoundIntegerDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/CompoundIntegerDataset.html
new file mode 100644
index 0000000..5b30e89
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/CompoundIntegerDataset.html
@@ -0,0 +1,2262 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:14 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CompoundIntegerDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CompoundIntegerDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":9,"i9":9,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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="seeLabel">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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#data">data</a></span></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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#asNonCompoundDataset-boolean-">asNonCompoundDataset</a></span>(boolean&nbsp;shareData)</code>
+<div class="block">Get a non-compound dataset version</div>
+</td>
+</tr>
+<tr id="i1" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#containsInfs--">containsInfs</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#containsInvalidNumbers--">containsInvalidNumbers</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#containsNans--">containsNans</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#copyElements-org.eclipse.january.dataset.Dataset-int-">copyElements</a></span>(<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 id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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 id="i7" class="rowColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#createArray-int-">createArray</a></span>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr id="i8" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#createCompoundDatasetWithLastDimension-org.eclipse.january.dataset.Dataset-boolean-">createCompoundDatasetWithLastDimension</a></span>(<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 id="i9" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#createFromObject-int-java.lang.Object-">createFromObject</a></span>(int&nbsp;itemSize,
+                <a href="https://docs.oracle.com/javase/8/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 id="i10" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i11" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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 id="i13" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getAbs-int-">getAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getAbs-int-int:A-">getAbs</a></span>(int&nbsp;index,
+      int[]&nbsp;values)</code>
+<div class="block">Get values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getBufferLength--">getBufferLength</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getByteArray--">getByteArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getByteArray-int...-">getByteArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getByteArray-int-">getByteArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getByteArray-int-int-">getByteArray</a></span>(int&nbsp;i,
+            int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getData--">getData</a></span>()</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 id="i21" class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getDoubleArray--">getDoubleArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getDoubleArray-int...-">getDoubleArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getDoubleArray-int-">getDoubleArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getDoubleArray-int-int-">getDoubleArray</a></span>(int&nbsp;i,
+              int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getDoubleArrayAbs-int-double:A-">getDoubleArrayAbs</a></span>(int&nbsp;index,
+                 double[]&nbsp;darray)</code>
+<div class="block">Get an item as a double array</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getDType--">getDType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getElementBooleanAbs-int-">getElementBooleanAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getElementDoubleAbs-int-">getElementDoubleAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getElementLongAbs-int-">getElementLongAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr id="i30" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getElements-int-">getElements</a></span>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a dataset</div>
+</td>
+</tr>
+<tr id="i31" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getElementsView-int-">getElementsView</a></span>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getFirstValue--">getFirstValue</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getFirstValue-int...-">getFirstValue</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i34" class="altColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getFirstValue-int-">getFirstValue</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i35" class="rowColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getFirstValue-int-int-">getFirstValue</a></span>(int&nbsp;i,
+             int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getFloatArray--">getFloatArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getFloatArray-int...-">getFloatArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i38" class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getFloatArray-int-">getFloatArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getFloatArray-int-int-">getFloatArray</a></span>(int&nbsp;i,
+             int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getIntArray--">getIntArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getIntArray-int...-">getIntArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getIntArray-int-">getIntArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i43" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getIntArray-int-int-">getIntArray</a></span>(int&nbsp;i,
+           int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i44" class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getLongArray--">getLongArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i45" class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getLongArray-int...-">getLongArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i46" class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getLongArray-int-">getLongArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i47" class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getLongArray-int-int-">getLongArray</a></span>(int&nbsp;i,
+            int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i48" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getObject--">getObject</a></span>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr id="i49" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getObject-int...-">getObject</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i50" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getObject-int-">getObject</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i51" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getObject-int-int-">getObject</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i52" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getObjectAbs-int-">getObjectAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr id="i53" class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getShortArray--">getShortArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i54" class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getShortArray-int...-">getShortArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i55" class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getShortArray-int-">getShortArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i56" class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getShortArray-int-int-">getShortArray</a></span>(int&nbsp;i,
+             int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i57" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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 id="i58" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getString--">getString</a></span>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr id="i59" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getString-int...-">getString</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i60" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getString-int-">getString</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i61" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getString-int-int-">getString</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i62" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getStringAbs-int-">getStringAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr id="i63" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getView-boolean-">getView</a></span>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr id="i64" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i65" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i66" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i67" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#ifloor--">ifloor</a></span>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr id="i68" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i69" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i70" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i71" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i72" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i73" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#resize-int...-">resize</a></span>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr id="i74" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#set-java.lang.Object-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i75" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#set-java.lang.Object-int...-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i76" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#set-java.lang.Object-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i77" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#set-java.lang.Object-int-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i78" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setAbs-int-int-">setAbs</a></span>(int&nbsp;index,
+      int&nbsp;val)</code>
+<div class="block">Set element value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i79" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setAbs-int-int:A-">setAbs</a></span>(int&nbsp;index,
+      int[]&nbsp;val)</code>
+<div class="block">Set values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i80" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i81" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i82" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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 id="i83" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setData--">setData</a></span>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr id="i84" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setElements-org.eclipse.january.dataset.Dataset-int-">setElements</a></span>(<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 id="i85" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setItem-int:A-">setItem</a></span>(int[]&nbsp;d)</code>
+<div class="block">Set values at first position.</div>
+</td>
+</tr>
+<tr id="i86" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setItem-int:A-int...-">setItem</a></span>(int[]&nbsp;d,
+       int...&nbsp;pos)</code>
+<div class="block">Set values at given position</div>
+</td>
+</tr>
+<tr id="i87" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setItem-int:A-int-">setItem</a></span>(int[]&nbsp;d,
+       int&nbsp;i)</code>
+<div class="block">Set values at given position.</div>
+</td>
+</tr>
+<tr id="i88" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setItem-int:A-int-int-">setItem</a></span>(int[]&nbsp;d,
+       int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Set values at given position.</div>
+</td>
+</tr>
+<tr id="i89" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setItemDirect-int-int-java.lang.Object-">setItemDirect</a></span>(int&nbsp;dindex,
+             int&nbsp;sindex,
+             <a href="https://docs.oracle.com/javase/8/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 id="i90" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">setItemsOnAxes</a></span>(int[]&nbsp;pos,
+              boolean[]&nbsp;axes,
+              <a href="https://docs.oracle.com/javase/8/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 id="i91" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setObjectAbs-int-java.lang.Object-">setObjectAbs</a></span>(int&nbsp;index,
+            <a href="https://docs.oracle.com/javase/8/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 id="i92" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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-boolean...-">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMin-int-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast-boolean-int-int-">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-int-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndexFromShape-int:A-">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-int-">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-int-">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-int-">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int...-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int-int-">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-int-">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-int-">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-int-">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-int-">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-int-">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-int-">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-int:A-int:A-int:A-">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:A-int:A-int:A-">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-boolean...-">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-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min-int-boolean...-">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-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#product-int-boolean...-">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-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice-java.lang.Object-org.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-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum-int-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#swapAxes-int-int-">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-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance-int-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance-int-boolean-boolean...-">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-double-double-">calcSteps</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-java.lang.Class-boolean-">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-int-">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-org.eclipse.january.dataset.AbstractDataset-boolean-boolean-">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.Dataset-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-int-int:A-int:A-int-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-org.eclipse.january.dataset.Dataset-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-int-int:A-int:A-int-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData-java.lang.Object-int-int:A-">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex-int...-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-int:A-">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-boolean-">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer--">getBuffer</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#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:A-int:A-int:A-">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">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#max-int:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int:A-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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer-java.io.Serializable-">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength-int-">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape-int...-">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int:A-boolean...-">sum</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>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-boolean-boolean...-">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:A-int...-">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-boolean-">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#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#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName--">getName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors--">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata-int:A-int:A-">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors-java.io.Serializable-">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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#cast-int-java.lang.Class-boolean-">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:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count-int-boolean...-">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-boolean-">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:A-int:A-int:A-">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">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#max-int:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product-int:A-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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</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-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#sum-int:A-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-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int:A-boolean-boolean...-">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData--">AbstractDataset</a></code></span></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>type of dataset item</dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.251">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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.294">hashCode</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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.299">clone</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">ILazyDataset</a></code></span></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.324">createFromObject</a>(int&nbsp;itemSize,
+                                                      <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>itemSize</code> - </dd>
+<dd><code>obj</code> - </dd>
+<dt><span class="returnLabel">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.376">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>shareData</code> - if true, then share data when possible otherwise copy it</dd>
+<dt><span class="returnLabel">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.405">asNonCompoundDataset</a>(boolean&nbsp;shareData)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#asNonCompoundDataset-boolean-">CompoundDataset</a></code></span></div>
+<div class="block">Get a non-compound dataset version</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shareData</code> - if true, then share data when possible otherwise copy it</dd>
+<dt><span class="returnLabel">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.422">fill</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">Fill dataset with given object</div>
+<dl>
+<dt><span class="returnLabel">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.443">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="returnLabel">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.448">getBufferLength</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.455">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="returnLabel">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.470">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="paramLabel">Parameters:</span></dt>
+<dd><code>index</code> - absolute index</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>values</dd>
+</dl>
+</li>
+</ul>
+<a name="getAbs-int-int:A-">
+<!--   -->
+</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.486">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="paramLabel">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.493">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.498">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.503">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.508">setItemDirect</a>(int&nbsp;dindex,
+                             int&nbsp;sindex,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.lang.Object-">AbstractDataset</a></code></span></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.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-">
+<!--   -->
+</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.525">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="paramLabel">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.541">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="paramLabel">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/8/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.547">getObject</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject--">Dataset</a></code></span></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.552">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.557">getObject</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.562">getObject</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.567">getByteArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.577">getByteArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.587">getByteArray</a>(int&nbsp;i,
+                           int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.597">getByteArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.607">getShortArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.617">getShortArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.627">getShortArray</a>(int&nbsp;i,
+                             int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.637">getShortArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.647">getIntArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.657">getIntArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.667">getIntArray</a>(int&nbsp;i,
+                         int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.677">getIntArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.687">getLongArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.697">getLongArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.707">getLongArray</a>(int&nbsp;i,
+                           int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.717">getLongArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.727">getFloatArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.737">getFloatArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.747">getFloatArray</a>(int&nbsp;i,
+                             int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.757">getFloatArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.767">getDoubleArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.777">getDoubleArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.787">getDoubleArray</a>(int&nbsp;i,
+                               int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.797">getDoubleArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item in given position</dd>
+</dl>
+</li>
+</ul>
+<a name="getDoubleArrayAbs-int-double:A-">
+<!--   -->
+</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.807">getDoubleArrayAbs</a>(int&nbsp;index,
+                              double[]&nbsp;darray)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArrayAbs-int-double:A-">CompoundDataset</a></code></span></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/8/docs/api/java/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.814">getString</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString--">Dataset</a></code></span></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.819">getString</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.824">getString</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.829">getString</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.834">getFirstValue</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>first value</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.839">getFirstValue</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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.844">getFirstValue</a>(int&nbsp;i,
+                               int&nbsp;j)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue-int-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...-">
+<!--   -->
+</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.849">getFirstValue</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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/8/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.854">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.863">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.878">setObjectAbs</a>(int&nbsp;index,
+                         <a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs-int-java.lang.Object-">Dataset</a></code></span></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.887">set</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-">Dataset</a></code></span></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.892">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-">Dataset</a></code></span></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.897">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-int-">Dataset</a></code></span></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.902">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set-java.lang.Object-int...-">IDataset</a></code></span></div>
+<div class="block">Set the value given by object at given position</div>
+</li>
+</ul>
+<a name="setItem-int:A-">
+<!--   -->
+</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.916">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="paramLabel">Parameters:</span></dt>
+<dd><code>d</code> - </dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a name="setItem-int:A-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.929">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="paramLabel">Parameters:</span></dt>
+<dd><code>d</code> - </dd>
+<dd><code>i</code> - </dd>
+</dl>
+</li>
+</ul>
+<a name="setItem-int:A-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.943">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="paramLabel">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:A-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.956">setItem</a>(int[]&nbsp;d,
+                    int...&nbsp;pos)</pre>
+<div class="block">Set values at given position</div>
+<dl>
+<dt><span class="paramLabel">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.969">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize-int...-">IDataset</a></code></span></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.997">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">AbstractDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="returnLabel">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.1012">getElementsView</a>(int&nbsp;element)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElementsView-int-">CompoundDataset</a></code></span></div>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+<dl>
+<dt><span class="returnLabel">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.1036">getElements</a>(int&nbsp;element)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElements-int-">CompoundDataset</a></code></span></div>
+<div class="block">Get chosen elements from each item as a dataset</div>
+<dl>
+<dt><span class="returnLabel">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.1044">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#copyElements-org.eclipse.january.dataset.Dataset-int-">CompoundDataset</a></code></span></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.1066">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setElements-org.eclipse.january.dataset.Dataset-int-">CompoundDataset</a></code></span></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.1088">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">Dataset</a></code></span></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.1102">setByBoolean</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></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="paramLabel">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="returnLabel">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.1152">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.1204">setByIndexes</a>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.1284">setSlice</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>The dataset with the sliced set to object</dd>
+</dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes-int:A-boolean:A-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.1355">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl>
+<dt><span class="paramLabel">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:A-boolean:A-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.1382">setItemsOnAxes</a>(int[]&nbsp;pos,
+                           boolean[]&nbsp;axes,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">Dataset</a></code></span></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.1400">containsNans</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.1405">containsInfs</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.1410">containsInvalidNumbers</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.1415">iadd</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place addition with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1501">isubtract</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place subtraction with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1587">imultiply</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place multiplication with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1675">idivide</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place division with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1801">ifloor</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor--">Dataset</a></code></span></div>
+<div class="block">In-place floor</div>
+<dl>
+<dt><span class="returnLabel">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.1806">iremainder</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place remainder</div>
+<dl>
+<dt><span class="returnLabel">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.1927">ipower</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place raise to power of object o</div>
+<dl>
+<dt><span class="returnLabel">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.2029">residual</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">Dataset</a></code></span></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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/CompoundLongDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/CompoundLongDataset.html
new file mode 100644
index 0000000..ce3992a
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/CompoundLongDataset.html
@@ -0,0 +1,2262 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:15 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CompoundLongDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CompoundLongDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":9,"i9":9,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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="seeLabel">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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#data">data</a></span></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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#asNonCompoundDataset-boolean-">asNonCompoundDataset</a></span>(boolean&nbsp;shareData)</code>
+<div class="block">Get a non-compound dataset version</div>
+</td>
+</tr>
+<tr id="i1" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#containsInfs--">containsInfs</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#containsInvalidNumbers--">containsInvalidNumbers</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#containsNans--">containsNans</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#copyElements-org.eclipse.january.dataset.Dataset-int-">copyElements</a></span>(<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 id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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 id="i7" class="rowColor">
+<td class="colFirst"><code>protected long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#createArray-int-">createArray</a></span>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr id="i8" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#createCompoundDatasetWithLastDimension-org.eclipse.january.dataset.Dataset-boolean-">createCompoundDatasetWithLastDimension</a></span>(<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 id="i9" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#createFromObject-int-java.lang.Object-">createFromObject</a></span>(int&nbsp;itemSize,
+                <a href="https://docs.oracle.com/javase/8/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 id="i10" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i11" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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 id="i13" class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getAbs-int-">getAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getAbs-int-long:A-">getAbs</a></span>(int&nbsp;index,
+      long[]&nbsp;values)</code>
+<div class="block">Get values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getBufferLength--">getBufferLength</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getByteArray--">getByteArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getByteArray-int...-">getByteArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getByteArray-int-">getByteArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getByteArray-int-int-">getByteArray</a></span>(int&nbsp;i,
+            int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getData--">getData</a></span>()</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 id="i21" class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getDoubleArray--">getDoubleArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getDoubleArray-int...-">getDoubleArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getDoubleArray-int-">getDoubleArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getDoubleArray-int-int-">getDoubleArray</a></span>(int&nbsp;i,
+              int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getDoubleArrayAbs-int-double:A-">getDoubleArrayAbs</a></span>(int&nbsp;index,
+                 double[]&nbsp;darray)</code>
+<div class="block">Get an item as a double array</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getDType--">getDType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getElementBooleanAbs-int-">getElementBooleanAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getElementDoubleAbs-int-">getElementDoubleAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getElementLongAbs-int-">getElementLongAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr id="i30" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getElements-int-">getElements</a></span>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a dataset</div>
+</td>
+</tr>
+<tr id="i31" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getElementsView-int-">getElementsView</a></span>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getFirstValue--">getFirstValue</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getFirstValue-int...-">getFirstValue</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i34" class="altColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getFirstValue-int-">getFirstValue</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i35" class="rowColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getFirstValue-int-int-">getFirstValue</a></span>(int&nbsp;i,
+             int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getFloatArray--">getFloatArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getFloatArray-int...-">getFloatArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i38" class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getFloatArray-int-">getFloatArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getFloatArray-int-int-">getFloatArray</a></span>(int&nbsp;i,
+             int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getIntArray--">getIntArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getIntArray-int...-">getIntArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getIntArray-int-">getIntArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i43" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getIntArray-int-int-">getIntArray</a></span>(int&nbsp;i,
+           int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i44" class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getLongArray--">getLongArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i45" class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getLongArray-int...-">getLongArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i46" class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getLongArray-int-">getLongArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i47" class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getLongArray-int-int-">getLongArray</a></span>(int&nbsp;i,
+            int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i48" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getObject--">getObject</a></span>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr id="i49" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getObject-int...-">getObject</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i50" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getObject-int-">getObject</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i51" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getObject-int-int-">getObject</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i52" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getObjectAbs-int-">getObjectAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr id="i53" class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getShortArray--">getShortArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i54" class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getShortArray-int...-">getShortArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i55" class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getShortArray-int-">getShortArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i56" class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getShortArray-int-int-">getShortArray</a></span>(int&nbsp;i,
+             int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i57" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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 id="i58" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getString--">getString</a></span>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr id="i59" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getString-int...-">getString</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i60" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getString-int-">getString</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i61" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getString-int-int-">getString</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i62" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getStringAbs-int-">getStringAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr id="i63" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getView-boolean-">getView</a></span>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr id="i64" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i65" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i66" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i67" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#ifloor--">ifloor</a></span>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr id="i68" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i69" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i70" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i71" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i72" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i73" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#resize-int...-">resize</a></span>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr id="i74" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#set-java.lang.Object-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i75" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#set-java.lang.Object-int...-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i76" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#set-java.lang.Object-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i77" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#set-java.lang.Object-int-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i78" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setAbs-int-long-">setAbs</a></span>(int&nbsp;index,
+      long&nbsp;val)</code>
+<div class="block">Set element value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i79" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setAbs-int-long:A-">setAbs</a></span>(int&nbsp;index,
+      long[]&nbsp;val)</code>
+<div class="block">Set values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i80" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i81" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i82" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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 id="i83" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setData--">setData</a></span>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr id="i84" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setElements-org.eclipse.january.dataset.Dataset-int-">setElements</a></span>(<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 id="i85" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setItem-long:A-">setItem</a></span>(long[]&nbsp;d)</code>
+<div class="block">Set values at first position.</div>
+</td>
+</tr>
+<tr id="i86" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setItem-long:A-int...-">setItem</a></span>(long[]&nbsp;d,
+       int...&nbsp;pos)</code>
+<div class="block">Set values at given position</div>
+</td>
+</tr>
+<tr id="i87" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setItem-long:A-int-">setItem</a></span>(long[]&nbsp;d,
+       int&nbsp;i)</code>
+<div class="block">Set values at given position.</div>
+</td>
+</tr>
+<tr id="i88" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setItem-long:A-int-int-">setItem</a></span>(long[]&nbsp;d,
+       int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Set values at given position.</div>
+</td>
+</tr>
+<tr id="i89" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setItemDirect-int-int-java.lang.Object-">setItemDirect</a></span>(int&nbsp;dindex,
+             int&nbsp;sindex,
+             <a href="https://docs.oracle.com/javase/8/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 id="i90" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">setItemsOnAxes</a></span>(int[]&nbsp;pos,
+              boolean[]&nbsp;axes,
+              <a href="https://docs.oracle.com/javase/8/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 id="i91" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setObjectAbs-int-java.lang.Object-">setObjectAbs</a></span>(int&nbsp;index,
+            <a href="https://docs.oracle.com/javase/8/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 id="i92" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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-boolean...-">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMin-int-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast-boolean-int-int-">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-int-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndexFromShape-int:A-">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-int-">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-int-">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-int-">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int...-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int-int-">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-int-">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-int-">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-int-">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-int-">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-int-">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-int-">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-int:A-int:A-int:A-">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:A-int:A-int:A-">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-boolean...-">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-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min-int-boolean...-">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-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#product-int-boolean...-">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-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice-java.lang.Object-org.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-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum-int-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#swapAxes-int-int-">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-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance-int-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance-int-boolean-boolean...-">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-double-double-">calcSteps</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-java.lang.Class-boolean-">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-int-">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-org.eclipse.january.dataset.AbstractDataset-boolean-boolean-">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.Dataset-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-int-int:A-int:A-int-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-org.eclipse.january.dataset.Dataset-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-int-int:A-int:A-int-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData-java.lang.Object-int-int:A-">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex-int...-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-int:A-">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-boolean-">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer--">getBuffer</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#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:A-int:A-int:A-">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">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#max-int:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int:A-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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer-java.io.Serializable-">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength-int-">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape-int...-">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int:A-boolean...-">sum</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>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-boolean-boolean...-">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:A-int...-">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-boolean-">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#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#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName--">getName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors--">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata-int:A-int:A-">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors-java.io.Serializable-">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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#cast-int-java.lang.Class-boolean-">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:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count-int-boolean...-">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-boolean-">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:A-int:A-int:A-">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">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#max-int:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product-int:A-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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</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-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#sum-int:A-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-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int:A-boolean-boolean...-">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData--">AbstractDataset</a></code></span></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>type of dataset item</dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.251">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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.294">hashCode</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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.299">clone</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">ILazyDataset</a></code></span></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.324">createFromObject</a>(int&nbsp;itemSize,
+                                                   <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>itemSize</code> - </dd>
+<dd><code>obj</code> - </dd>
+<dt><span class="returnLabel">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.376">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>shareData</code> - if true, then share data when possible otherwise copy it</dd>
+<dt><span class="returnLabel">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.405">asNonCompoundDataset</a>(boolean&nbsp;shareData)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#asNonCompoundDataset-boolean-">CompoundDataset</a></code></span></div>
+<div class="block">Get a non-compound dataset version</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shareData</code> - if true, then share data when possible otherwise copy it</dd>
+<dt><span class="returnLabel">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.422">fill</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">Fill dataset with given object</div>
+<dl>
+<dt><span class="returnLabel">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.443">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="returnLabel">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.448">getBufferLength</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.455">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="returnLabel">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.470">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="paramLabel">Parameters:</span></dt>
+<dd><code>index</code> - absolute index</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>values</dd>
+</dl>
+</li>
+</ul>
+<a name="getAbs-int-long:A-">
+<!--   -->
+</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.486">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="paramLabel">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.493">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.498">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.503">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.508">setItemDirect</a>(int&nbsp;dindex,
+                             int&nbsp;sindex,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.lang.Object-">AbstractDataset</a></code></span></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.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-">
+<!--   -->
+</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.525">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="paramLabel">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.541">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="paramLabel">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/8/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.547">getObject</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject--">Dataset</a></code></span></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.552">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.557">getObject</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.562">getObject</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.567">getByteArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.577">getByteArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.587">getByteArray</a>(int&nbsp;i,
+                           int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.597">getByteArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.607">getShortArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.617">getShortArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.627">getShortArray</a>(int&nbsp;i,
+                             int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.637">getShortArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.647">getIntArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.657">getIntArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.667">getIntArray</a>(int&nbsp;i,
+                         int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.677">getIntArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.687">getLongArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.697">getLongArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.707">getLongArray</a>(int&nbsp;i,
+                           int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.717">getLongArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.727">getFloatArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.737">getFloatArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.747">getFloatArray</a>(int&nbsp;i,
+                             int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.757">getFloatArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.767">getDoubleArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.777">getDoubleArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.787">getDoubleArray</a>(int&nbsp;i,
+                               int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.797">getDoubleArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item in given position</dd>
+</dl>
+</li>
+</ul>
+<a name="getDoubleArrayAbs-int-double:A-">
+<!--   -->
+</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.807">getDoubleArrayAbs</a>(int&nbsp;index,
+                              double[]&nbsp;darray)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArrayAbs-int-double:A-">CompoundDataset</a></code></span></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/8/docs/api/java/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.814">getString</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString--">Dataset</a></code></span></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.819">getString</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.824">getString</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.829">getString</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.834">getFirstValue</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>first value</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.839">getFirstValue</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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.844">getFirstValue</a>(int&nbsp;i,
+                               int&nbsp;j)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue-int-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...-">
+<!--   -->
+</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.849">getFirstValue</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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/8/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.854">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.863">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.878">setObjectAbs</a>(int&nbsp;index,
+                         <a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs-int-java.lang.Object-">Dataset</a></code></span></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.887">set</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-">Dataset</a></code></span></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.892">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-">Dataset</a></code></span></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.897">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-int-">Dataset</a></code></span></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.902">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set-java.lang.Object-int...-">IDataset</a></code></span></div>
+<div class="block">Set the value given by object at given position</div>
+</li>
+</ul>
+<a name="setItem-long:A-">
+<!--   -->
+</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.916">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="paramLabel">Parameters:</span></dt>
+<dd><code>d</code> - </dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a name="setItem-long:A-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.929">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="paramLabel">Parameters:</span></dt>
+<dd><code>d</code> - </dd>
+<dd><code>i</code> - </dd>
+</dl>
+</li>
+</ul>
+<a name="setItem-long:A-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.943">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="paramLabel">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:A-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.956">setItem</a>(long[]&nbsp;d,
+                    int...&nbsp;pos)</pre>
+<div class="block">Set values at given position</div>
+<dl>
+<dt><span class="paramLabel">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.969">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize-int...-">IDataset</a></code></span></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.997">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">AbstractDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="returnLabel">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.1012">getElementsView</a>(int&nbsp;element)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElementsView-int-">CompoundDataset</a></code></span></div>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+<dl>
+<dt><span class="returnLabel">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.1036">getElements</a>(int&nbsp;element)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElements-int-">CompoundDataset</a></code></span></div>
+<div class="block">Get chosen elements from each item as a dataset</div>
+<dl>
+<dt><span class="returnLabel">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.1044">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#copyElements-org.eclipse.january.dataset.Dataset-int-">CompoundDataset</a></code></span></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.1066">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setElements-org.eclipse.january.dataset.Dataset-int-">CompoundDataset</a></code></span></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.1088">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">Dataset</a></code></span></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.1102">setByBoolean</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></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="paramLabel">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="returnLabel">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.1152">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.1204">setByIndexes</a>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.1284">setSlice</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>The dataset with the sliced set to object</dd>
+</dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes-int:A-boolean:A-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.1355">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl>
+<dt><span class="paramLabel">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:A-boolean:A-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.1382">setItemsOnAxes</a>(int[]&nbsp;pos,
+                           boolean[]&nbsp;axes,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">Dataset</a></code></span></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.1400">containsNans</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.1405">containsInfs</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.1410">containsInvalidNumbers</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.1415">iadd</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place addition with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1501">isubtract</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place subtraction with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1587">imultiply</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place multiplication with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1675">idivide</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place division with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1801">ifloor</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor--">Dataset</a></code></span></div>
+<div class="block">In-place floor</div>
+<dl>
+<dt><span class="returnLabel">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.1806">iremainder</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place remainder</div>
+<dl>
+<dt><span class="returnLabel">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.1927">ipower</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place raise to power of object o</div>
+<dl>
+<dt><span class="returnLabel">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.2029">residual</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">Dataset</a></code></span></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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/CompoundShortDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/CompoundShortDataset.html
new file mode 100644
index 0000000..a0b05a9
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/CompoundShortDataset.html
@@ -0,0 +1,2266 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:15 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CompoundShortDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CompoundShortDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":9,"i9":9,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ContiguousIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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="seeLabel">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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#data">data</a></span></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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#asNonCompoundDataset-boolean-">asNonCompoundDataset</a></span>(boolean&nbsp;shareData)</code>
+<div class="block">Get a non-compound dataset version</div>
+</td>
+</tr>
+<tr id="i1" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#containsInfs--">containsInfs</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#containsInvalidNumbers--">containsInvalidNumbers</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#containsNans--">containsNans</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#copyElements-org.eclipse.january.dataset.Dataset-int-">copyElements</a></span>(<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 id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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 id="i7" class="rowColor">
+<td class="colFirst"><code>protected short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#createArray-int-">createArray</a></span>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr id="i8" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#createCompoundDatasetWithLastDimension-org.eclipse.january.dataset.Dataset-boolean-">createCompoundDatasetWithLastDimension</a></span>(<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 id="i9" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#createFromObject-int-java.lang.Object-">createFromObject</a></span>(int&nbsp;itemSize,
+                <a href="https://docs.oracle.com/javase/8/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 id="i10" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i11" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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 id="i13" class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getAbs-int-">getAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getAbs-int-short:A-">getAbs</a></span>(int&nbsp;index,
+      short[]&nbsp;values)</code>
+<div class="block">Get values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getBufferLength--">getBufferLength</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getByteArray--">getByteArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getByteArray-int...-">getByteArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getByteArray-int-">getByteArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getByteArray-int-int-">getByteArray</a></span>(int&nbsp;i,
+            int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getData--">getData</a></span>()</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 id="i21" class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getDoubleArray--">getDoubleArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getDoubleArray-int...-">getDoubleArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getDoubleArray-int-">getDoubleArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getDoubleArray-int-int-">getDoubleArray</a></span>(int&nbsp;i,
+              int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getDoubleArrayAbs-int-double:A-">getDoubleArrayAbs</a></span>(int&nbsp;index,
+                 double[]&nbsp;darray)</code>
+<div class="block">Get an item as a double array</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getDType--">getDType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getElementBooleanAbs-int-">getElementBooleanAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getElementDoubleAbs-int-">getElementDoubleAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getElementLongAbs-int-">getElementLongAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr id="i30" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getElements-int-">getElements</a></span>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a dataset</div>
+</td>
+</tr>
+<tr id="i31" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getElementsView-int-">getElementsView</a></span>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getFirstValue--">getFirstValue</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getFirstValue-int...-">getFirstValue</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i34" class="altColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getFirstValue-int-">getFirstValue</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i35" class="rowColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getFirstValue-int-int-">getFirstValue</a></span>(int&nbsp;i,
+             int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getFloatArray--">getFloatArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getFloatArray-int...-">getFloatArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i38" class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getFloatArray-int-">getFloatArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getFloatArray-int-int-">getFloatArray</a></span>(int&nbsp;i,
+             int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getIntArray--">getIntArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getIntArray-int...-">getIntArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getIntArray-int-">getIntArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i43" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getIntArray-int-int-">getIntArray</a></span>(int&nbsp;i,
+           int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i44" class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getLongArray--">getLongArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i45" class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getLongArray-int...-">getLongArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i46" class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getLongArray-int-">getLongArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i47" class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getLongArray-int-int-">getLongArray</a></span>(int&nbsp;i,
+            int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i48" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getObject--">getObject</a></span>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr id="i49" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getObject-int...-">getObject</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i50" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getObject-int-">getObject</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i51" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getObject-int-int-">getObject</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i52" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getObjectAbs-int-">getObjectAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr id="i53" class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getShortArray--">getShortArray</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i54" class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getShortArray-int...-">getShortArray</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i55" class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getShortArray-int-">getShortArray</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i56" class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getShortArray-int-int-">getShortArray</a></span>(int&nbsp;i,
+             int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i57" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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 id="i58" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getString--">getString</a></span>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr id="i59" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getString-int...-">getString</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i60" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getString-int-">getString</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i61" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getString-int-int-">getString</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i62" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getStringAbs-int-">getStringAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr id="i63" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getView-boolean-">getView</a></span>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr id="i64" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i65" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i66" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i67" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#ifloor--">ifloor</a></span>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr id="i68" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i69" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i70" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i71" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i72" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i73" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#resize-int...-">resize</a></span>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr id="i74" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#set-java.lang.Object-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i75" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#set-java.lang.Object-int...-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i76" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#set-java.lang.Object-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i77" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#set-java.lang.Object-int-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i78" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setAbs-int-short-">setAbs</a></span>(int&nbsp;index,
+      short&nbsp;val)</code>
+<div class="block">Set element value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i79" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setAbs-int-short:A-">setAbs</a></span>(int&nbsp;index,
+      short[]&nbsp;val)</code>
+<div class="block">Set values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i80" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i81" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i82" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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 id="i83" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setData--">setData</a></span>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr id="i84" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setElements-org.eclipse.january.dataset.Dataset-int-">setElements</a></span>(<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 id="i85" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setItem-short:A-">setItem</a></span>(short[]&nbsp;d)</code>
+<div class="block">Set values at first position.</div>
+</td>
+</tr>
+<tr id="i86" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setItem-short:A-int...-">setItem</a></span>(short[]&nbsp;d,
+       int...&nbsp;pos)</code>
+<div class="block">Set values at given position</div>
+</td>
+</tr>
+<tr id="i87" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setItem-short:A-int-">setItem</a></span>(short[]&nbsp;d,
+       int&nbsp;i)</code>
+<div class="block">Set values at given position.</div>
+</td>
+</tr>
+<tr id="i88" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setItem-short:A-int-int-">setItem</a></span>(short[]&nbsp;d,
+       int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Set values at given position.</div>
+</td>
+</tr>
+<tr id="i89" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setItemDirect-int-int-java.lang.Object-">setItemDirect</a></span>(int&nbsp;dindex,
+             int&nbsp;sindex,
+             <a href="https://docs.oracle.com/javase/8/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 id="i90" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">setItemsOnAxes</a></span>(int[]&nbsp;pos,
+              boolean[]&nbsp;axes,
+              <a href="https://docs.oracle.com/javase/8/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 id="i91" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setObjectAbs-int-java.lang.Object-">setObjectAbs</a></span>(int&nbsp;index,
+            <a href="https://docs.oracle.com/javase/8/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 id="i92" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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-boolean...-">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMin-int-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast-boolean-int-int-">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-int-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndexFromShape-int:A-">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-int-">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-int-">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-int-">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int...-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int-int-">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-int-">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-int-">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-int-">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-int-">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-int-">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-int-">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-int:A-int:A-int:A-">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:A-int:A-int:A-">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-boolean...-">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-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min-int-boolean...-">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-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#product-int-boolean...-">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-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice-java.lang.Object-org.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-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum-int-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#swapAxes-int-int-">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-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance-int-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance-int-boolean-boolean...-">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-double-double-">calcSteps</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-java.lang.Class-boolean-">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-int-">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-org.eclipse.january.dataset.AbstractDataset-boolean-boolean-">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.Dataset-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-int-int:A-int:A-int-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-org.eclipse.january.dataset.Dataset-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-int-int:A-int:A-int-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData-java.lang.Object-int-int:A-">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex-int...-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-int:A-">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-boolean-">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer--">getBuffer</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#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:A-int:A-int:A-">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">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#max-int:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int:A-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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer-java.io.Serializable-">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength-int-">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape-int...-">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int:A-boolean...-">sum</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>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-boolean-boolean...-">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:A-int...-">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-boolean-">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#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#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName--">getName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors--">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata-int:A-int:A-">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors-java.io.Serializable-">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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#cast-int-java.lang.Class-boolean-">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:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count-int-boolean...-">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-boolean-">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:A-int:A-int:A-">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">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#max-int:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product-int:A-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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</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-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#sum-int:A-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-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int:A-boolean-boolean...-">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData--">AbstractDataset</a></code></span></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>type of dataset item</dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.251">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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.294">hashCode</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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.299">clone</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">ILazyDataset</a></code></span></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.324">createFromObject</a>(int&nbsp;itemSize,
+                                                    <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>itemSize</code> - </dd>
+<dd><code>obj</code> - </dd>
+<dt><span class="returnLabel">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.376">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>shareData</code> - if true, then share data when possible otherwise copy it</dd>
+<dt><span class="returnLabel">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.405">asNonCompoundDataset</a>(boolean&nbsp;shareData)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#asNonCompoundDataset-boolean-">CompoundDataset</a></code></span></div>
+<div class="block">Get a non-compound dataset version</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shareData</code> - if true, then share data when possible otherwise copy it</dd>
+<dt><span class="returnLabel">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.422">fill</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">Fill dataset with given object</div>
+<dl>
+<dt><span class="returnLabel">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.443">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="returnLabel">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.448">getBufferLength</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.455">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="returnLabel">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.470">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="paramLabel">Parameters:</span></dt>
+<dd><code>index</code> - absolute index</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>values</dd>
+</dl>
+</li>
+</ul>
+<a name="getAbs-int-short:A-">
+<!--   -->
+</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.486">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="paramLabel">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.493">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.498">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.503">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.508">setItemDirect</a>(int&nbsp;dindex,
+                             int&nbsp;sindex,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.lang.Object-">AbstractDataset</a></code></span></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.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-">
+<!--   -->
+</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.525">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="paramLabel">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.541">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="paramLabel">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/8/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.547">getObject</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject--">Dataset</a></code></span></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.552">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.557">getObject</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.562">getObject</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.567">getByteArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.577">getByteArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.587">getByteArray</a>(int&nbsp;i,
+                           int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.597">getByteArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.607">getShortArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.617">getShortArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.627">getShortArray</a>(int&nbsp;i,
+                             int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.637">getShortArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.647">getIntArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.657">getIntArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.667">getIntArray</a>(int&nbsp;i,
+                         int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.677">getIntArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.687">getLongArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.697">getLongArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.707">getLongArray</a>(int&nbsp;i,
+                           int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.717">getLongArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.727">getFloatArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.737">getFloatArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.747">getFloatArray</a>(int&nbsp;i,
+                             int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.757">getFloatArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.767">getDoubleArray</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.777">getDoubleArray</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="returnLabel">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.787">getDoubleArray</a>(int&nbsp;i,
+                               int&nbsp;j)</pre>
+<dl>
+<dt><span class="returnLabel">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.797">getDoubleArray</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item in given position</dd>
+</dl>
+</li>
+</ul>
+<a name="getDoubleArrayAbs-int-double:A-">
+<!--   -->
+</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.807">getDoubleArrayAbs</a>(int&nbsp;index,
+                              double[]&nbsp;darray)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArrayAbs-int-double:A-">CompoundDataset</a></code></span></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/8/docs/api/java/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.814">getString</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString--">Dataset</a></code></span></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.819">getString</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.824">getString</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.829">getString</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.834">getFirstValue</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>first value</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.839">getFirstValue</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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.844">getFirstValue</a>(int&nbsp;i,
+                               int&nbsp;j)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue-int-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...-">
+<!--   -->
+</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.849">getFirstValue</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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/8/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.854">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.863">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.878">setObjectAbs</a>(int&nbsp;index,
+                         <a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs-int-java.lang.Object-">Dataset</a></code></span></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.887">set</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-">Dataset</a></code></span></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.892">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-">Dataset</a></code></span></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.897">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-int-">Dataset</a></code></span></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.902">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set-java.lang.Object-int...-">IDataset</a></code></span></div>
+<div class="block">Set the value given by object at given position</div>
+</li>
+</ul>
+<a name="setItem-short:A-">
+<!--   -->
+</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.916">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="paramLabel">Parameters:</span></dt>
+<dd><code>d</code> - </dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a name="setItem-short:A-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.929">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="paramLabel">Parameters:</span></dt>
+<dd><code>d</code> - </dd>
+<dd><code>i</code> - </dd>
+</dl>
+</li>
+</ul>
+<a name="setItem-short:A-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.943">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="paramLabel">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:A-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.956">setItem</a>(short[]&nbsp;d,
+                    int...&nbsp;pos)</pre>
+<div class="block">Set values at given position</div>
+<dl>
+<dt><span class="paramLabel">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.969">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize-int...-">IDataset</a></code></span></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.997">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">AbstractDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="returnLabel">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.1012">getElementsView</a>(int&nbsp;element)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElementsView-int-">CompoundDataset</a></code></span></div>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+<dl>
+<dt><span class="returnLabel">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.1036">getElements</a>(int&nbsp;element)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElements-int-">CompoundDataset</a></code></span></div>
+<div class="block">Get chosen elements from each item as a dataset</div>
+<dl>
+<dt><span class="returnLabel">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.1044">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#copyElements-org.eclipse.january.dataset.Dataset-int-">CompoundDataset</a></code></span></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.1066">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setElements-org.eclipse.january.dataset.Dataset-int-">CompoundDataset</a></code></span></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.1088">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">Dataset</a></code></span></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.1102">setByBoolean</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></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="paramLabel">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="returnLabel">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.1152">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.1204">setByIndexes</a>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.1284">setSlice</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>The dataset with the sliced set to object</dd>
+</dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes-int:A-boolean:A-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.1355">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl>
+<dt><span class="paramLabel">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:A-boolean:A-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.1382">setItemsOnAxes</a>(int[]&nbsp;pos,
+                           boolean[]&nbsp;axes,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">Dataset</a></code></span></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.1400">containsNans</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.1405">containsInfs</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.1410">containsInvalidNumbers</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.1415">iadd</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place addition with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1501">isubtract</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place subtraction with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1587">imultiply</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place multiplication with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1675">idivide</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place division with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1801">ifloor</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor--">Dataset</a></code></span></div>
+<div class="block">In-place floor</div>
+<dl>
+<dt><span class="returnLabel">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.1806">iremainder</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place remainder</div>
+<dl>
+<dt><span class="returnLabel">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.1927">ipower</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place raise to power of object o</div>
+<dl>
+<dt><span class="returnLabel">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.2029">residual</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">Dataset</a></code></span></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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ContiguousIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/ContiguousIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/ContiguousIterator.html
new file mode 100644
index 0000000..e6f354a
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/ContiguousIterator.html
@@ -0,0 +1,407 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:15 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ContiguousIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ContiguousIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ContiguousIteratorWithPosition.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ContiguousIterator.html#ContiguousIterator-int-">ContiguousIterator</a></span>(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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ContiguousIterator.html#ContiguousIterator-int-int-">ContiguousIterator</a></span>(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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ContiguousIterator.html#ContiguousIterator-int-int-int-">ContiguousIterator</a></span>(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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ContiguousIterator.html#getPos--">getPos</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ContiguousIterator.html#hasNext--">hasNext</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ContiguousIterator.html#reset--">reset</a></span>()</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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="paramLabel">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="paramLabel">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="paramLabel">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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset--">IndexIterator</a></code></span></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ContiguousIteratorWithPosition.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/ContiguousIteratorWithPosition.html b/apidocs/2.3.0/org/eclipse/january/dataset/ContiguousIteratorWithPosition.html
new file mode 100644
index 0000000..48698e4
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/ContiguousIteratorWithPosition.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 (1.8.0_222) on Mon Sep 30 16:21:15 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ContiguousIteratorWithPosition (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ContiguousIteratorWithPosition (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ContiguousPairIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#ContiguousIteratorWithPosition-int:A-int-">ContiguousIteratorWithPosition</a></span>(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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#ContiguousIteratorWithPosition-int:A-int-int-">ContiguousIteratorWithPosition</a></span>(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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#getPos--">getPos</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#getShape--">getShape</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#hasNext--">hasNext</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#reset--">reset</a></span>()</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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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:A-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="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - </dd>
+<dd><code>length</code> - of entire data array</dd>
+</dl>
+</li>
+</ul>
+<a name="ContiguousIteratorWithPosition-int:A-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="paramLabel">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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>true if there is another iteration</dd>
+</dl>
+</li>
+</ul>
+<a name="getPos--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#line.85">getPos</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>position indices (nb not a copy)</dd>
+</dl>
+</li>
+</ul>
+<a name="reset--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#line.90">reset</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset--">IndexIterator</a></code></span></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset--">reset</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getShape--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#line.99">getShape</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ContiguousPairIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/ContiguousPairIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/ContiguousPairIterator.html
new file mode 100644
index 0000000..9a46bbf
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/ContiguousPairIterator.html
@@ -0,0 +1,384 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:15 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ContiguousPairIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ContiguousPairIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ContiguousSingleIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ContiguousPairIterator.html#ContiguousPairIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">ContiguousPairIterator</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ContiguousPairIterator.html#getPos--">getPos</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ContiguousPairIterator.html#hasNext--">hasNext</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ContiguousPairIterator.html#reset--">reset</a></span>()</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-org.eclipse.january.dataset.Dataset-">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset--">IndexIterator</a></code></span></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ContiguousSingleIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.BroadcastIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/ContiguousSingleIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/ContiguousSingleIterator.html
new file mode 100644
index 0000000..2607229
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/ContiguousSingleIterator.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 (1.8.0_222) on Mon Sep 30 16:21:15 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ContiguousSingleIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ContiguousSingleIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ContiguousSingleIterator.html#ContiguousSingleIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">ContiguousSingleIterator</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ContiguousSingleIterator.html#getPos--">getPos</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ContiguousSingleIterator.html#hasNext--">hasNext</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ContiguousSingleIterator.html#reset--">reset</a></span>()</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-org.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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset--">IndexIterator</a></code></span></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.BroadcastIteratorBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/DTypeUtils.html b/apidocs/2.3.0/org/eclipse/january/dataset/DTypeUtils.html
new file mode 100644
index 0000000..066a835
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/DTypeUtils.html
@@ -0,0 +1,1111 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:15 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DTypeUtils (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DTypeUtils (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9,"i20":9,"i21":9,"i22":9,"i23":9,"i24":9,"i25":41,"i26":9,"i27":9,"i28":9,"i29":9,"i30":9,"i31":9,"i32":9,"i33":9,"i34":9,"i35":9,"i36":9,"i37":9,"i38":9,"i39":9,"i40":9,"i41":9,"i42":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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.24">DTypeUtils</a>
+extends <a href="https://docs.oracle.com/javase/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#logger">logger</a></span></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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#DTypeUtils--">DTypeUtils</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#fromDoublesToBiggestPrimitives-double:A-int-">fromDoublesToBiggestPrimitives</a></span>(double[]&nbsp;x,
+                              int&nbsp;dtype)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#fromDoubleToBiggestNumber-double-int-">fromDoubleToBiggestNumber</a></span>(double&nbsp;x,
+                         int&nbsp;dtype)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getBestDType-int-int-">getBestDType</a></span>(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 id="i3" class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getBestFloatDType-java.lang.Class-">getBestFloatDType</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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 id="i4" class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getBestFloatDType-int-">getBestFloatDType</a></span>(int&nbsp;otype)</code>
+<div class="block">Find floating point dataset type that best fits given types.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getDatasetName-java.lang.Class-int-">getDatasetName</a></span>(<a href="https://docs.oracle.com/javase/8/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,
+              int&nbsp;itemSize)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getDatasetName-org.eclipse.january.dataset.Dataset-">getDatasetName</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getDatasetName-org.eclipse.january.dataset.ILazyDataset-">getDatasetName</a></span>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getDType-java.lang.Class-">getDType</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i9" class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getDType-org.eclipse.january.dataset.ILazyDataset-">getDType</a></span>(<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 id="i10" class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getDTypeFromClass-java.lang.Class-">getDTypeFromClass</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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 id="i11" class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getDTypeFromClass-java.lang.Class-int-">getDTypeFromClass</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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 id="i12" class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getDTypeFromObject-java.lang.Object-">getDTypeFromObject</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i13" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getDTypeName-org.eclipse.january.dataset.Dataset-">getDTypeName</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getDTypeName-org.eclipse.january.dataset.ILazyDataset-">getDTypeName</a></span>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getDTypeName-int-int-">getDTypeName</a></span>(int&nbsp;dtype,
+            int&nbsp;itemSize)</code>&nbsp;</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getElementalDType-int-">getElementalDType</a></span>(int&nbsp;otype)</code>&nbsp;</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getElementClass-int-">getElementClass</a></span>(int&nbsp;dtype)</code>&nbsp;</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getElementsPerItem-int-">getElementsPerItem</a></span>(int&nbsp;dtype)</code>&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getInterface-int-">getInterface</a></span>(int&nbsp;dtype)</code>&nbsp;</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getItemBytes-int-">getItemBytes</a></span>(int&nbsp;dtype)</code>&nbsp;</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getItemBytes-int-int-">getItemBytes</a></span>(int&nbsp;dtype,
+            int&nbsp;isize)</code>&nbsp;</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getLargestDataset-java.lang.Class-">getLargestDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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>
+<div class="block">The largest dataset class suitable for a summation of around a few thousand items without changing from the "kind"
+ of dataset</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getLargestDType-int-">getLargestDType</a></span>(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 id="i24" class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getLength-java.lang.Object-">getLength</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i25" class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#isClassSupportedAsElement-java.lang.Class-">isClassSupportedAsElement</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;clazz)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../org/eclipse/january/dataset/InterfaceUtils.html#isElementSupported-java.lang.Class-"><code>InterfaceUtils.isElementSupported(Class)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#isDTypeComplex-int-">isDTypeComplex</a></span>(int&nbsp;dtype)</code>&nbsp;</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#isDTypeElemental-int-">isDTypeElemental</a></span>(int&nbsp;dtype)</code>&nbsp;</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#isDTypeFloating-int-">isDTypeFloating</a></span>(int&nbsp;dtype)</code>&nbsp;</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#isDTypeInteger-int-">isDTypeInteger</a></span>(int&nbsp;dtype)</code>&nbsp;</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#isDTypeNumerical-int-">isDTypeNumerical</a></span>(int&nbsp;dtype)</code>&nbsp;</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#toBoolean-java.lang.Object-">toBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i32" class="altColor">
+<td class="colFirst"><code>static byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#toByteArray-java.lang.Object-int-">toByteArray</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i33" class="rowColor">
+<td class="colFirst"><code>static double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#toDoubleArray-java.lang.Object-int-">toDoubleArray</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i34" class="altColor">
+<td class="colFirst"><code>static float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#toFloatArray-java.lang.Object-int-">toFloatArray</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i35" class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#toImag-java.lang.Object-">toImag</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i36" class="altColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#toIntegerArray-java.lang.Object-int-">toIntegerArray</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i37" class="rowColor">
+<td class="colFirst"><code>static long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#toLong-double-">toLong</a></span>(double&nbsp;d)</code>&nbsp;</td>
+</tr>
+<tr id="i38" class="altColor">
+<td class="colFirst"><code>static long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#toLong-float-">toLong</a></span>(float&nbsp;d)</code>&nbsp;</td>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code>static long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#toLong-java.lang.Object-">toLong</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i40" class="altColor">
+<td class="colFirst"><code>static long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#toLongArray-java.lang.Object-int-">toLongArray</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i41" class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#toReal-java.lang.Object-">toReal</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i42" class="altColor">
+<td class="colFirst"><code>static short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#toShortArray-java.lang.Object-int-">toShortArray</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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.25">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.24">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/8/docs/api/java/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.65">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/8/docs/api/java/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.73">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/8/docs/api/java/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.82">getDTypeName</a>(int&nbsp;dtype,
+                                  int&nbsp;itemSize)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>dtype</code> - </dd>
+<dd><code>itemSize</code> - </dd>
+<dt><span class="returnLabel">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.90">getDType</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset class</dd>
+<dt><span class="returnLabel">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.97">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.101">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.106">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.111">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.119">isDTypeNumerical</a>(int&nbsp;dtype)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>dtype</code> - </dd>
+<dt><span class="returnLabel">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.132">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="paramLabel">Parameters:</span></dt>
+<dd><code>atype</code> - first dataset type</dd>
+<dd><code>btype</code> - second dataset type</dd>
+<dt><span class="returnLabel">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.144">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="paramLabel">Parameters:</span></dt>
+<dd><code>otype</code> - old dataset type</dd>
+<dt><span class="returnLabel">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.156">getBestFloatDType</a>(<a href="https://docs.oracle.com/javase/8/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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>cls</code> - of an item or element</dd>
+<dt><span class="returnLabel">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.166">getDTypeFromClass</a>(<a href="https://docs.oracle.com/javase/8/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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>cls</code> - element class</dd>
+<dt><span class="returnLabel">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.176">getDTypeFromClass</a>(<a href="https://docs.oracle.com/javase/8/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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>cls</code> - element class</dd>
+<dt><span class="returnLabel">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.187">getDTypeFromObject</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>obj</code> - </dd>
+<dt><span class="returnLabel">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.231">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="paramLabel">Parameters:</span></dt>
+<dd><code>d</code> - </dd>
+<dt><span class="returnLabel">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.244">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="paramLabel">Parameters:</span></dt>
+<dd><code>otype</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>largest dataset type available for given dataset type</dd>
+</dl>
+</li>
+</ul>
+<a name="getLargestDataset-java.lang.Class-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLargestDataset</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/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;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.285">getLargestDataset</a>(<a href="https://docs.oracle.com/javase/8/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>
+<div class="block">The largest dataset class suitable for a summation of around a few thousand items without changing from the "kind"
+ of dataset</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>largest dataset class available for given dataset class</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.3</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.307">getElementalDType</a>(int&nbsp;otype)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>otype</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>elemental dataset type available for given dataset type</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.335">getElementsPerItem</a>(int&nbsp;dtype)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>dtype</code> - </dd>
+<dt><span class="returnLabel">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.357">getItemBytes</a>(int&nbsp;dtype)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>dtype</code> - </dd>
+<dt><span class="returnLabel">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.367">getItemBytes</a>(int&nbsp;dtype,
+                               int&nbsp;isize)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>dtype</code> - </dd>
+<dd><code>isize</code> - number of elements in an item</dd>
+<dt><span class="returnLabel">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.409">toBoolean</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+</li>
+</ul>
+<a name="toLong-double-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toLong</h4>
+<pre>public static final&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.441">toLong</a>(double&nbsp;d)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>d</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>returns a long or 0 if d is NaN or infinite</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a name="toLong-float-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toLong</h4>
+<pre>public static final&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.452">toLong</a>(float&nbsp;d)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>d</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>returns a long or 0 if d is NaN or infinite</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a name="toLong-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toLong</h4>
+<pre>public static&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.458">toLong</a>(<a href="https://docs.oracle.com/javase/8/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.486">toReal</a>(<a href="https://docs.oracle.com/javase/8/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.517">toImag</a>(<a href="https://docs.oracle.com/javase/8/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.548">toDoubleArray</a>(<a href="https://docs.oracle.com/javase/8/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.627">toFloatArray</a>(<a href="https://docs.oracle.com/javase/8/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.711">toLongArray</a>(<a href="https://docs.oracle.com/javase/8/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.796">toIntegerArray</a>(<a href="https://docs.oracle.com/javase/8/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.881">toShortArray</a>(<a href="https://docs.oracle.com/javase/8/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.966">toByteArray</a>(<a href="https://docs.oracle.com/javase/8/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:A-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromDoublesToBiggestPrimitives</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/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.1051">fromDoublesToBiggestPrimitives</a>(double[]&nbsp;x,
+                                                    int&nbsp;dtype)</pre>
+</li>
+</ul>
+<a name="getElementClass-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementClass</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/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.1081">getElementClass</a>(int&nbsp;dtype)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>dtype</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>(boxed) class of constituent element</dd>
+</dl>
+</li>
+</ul>
+<a name="getInterface-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInterface</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/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;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.1121">getInterface</a>(int&nbsp;dtype)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>dtype</code> - dataset type</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset interface can be null</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.3</dd>
+</dl>
+</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/8/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.1131">fromDoubleToBiggestNumber</a>(double&nbsp;x,
+                                               int&nbsp;dtype)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>x</code> - </dd>
+<dd><code>dtype</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>biggest native primitive if integer (should test for 64bit?)</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</dd>
+</dl>
+</li>
+</ul>
+<a name="isClassSupportedAsElement-java.lang.Class-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isClassSupportedAsElement</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.1154">isClassSupportedAsElement</a>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;clazz)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../../../org/eclipse/january/dataset/InterfaceUtils.html#isElementSupported-java.lang.Class-"><code>InterfaceUtils.isElementSupported(Class)</code></a></span></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if supported</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.1162">getLength</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>length of object</dd>
+</dl>
+</li>
+</ul>
+<a name="getDatasetName-org.eclipse.january.dataset.Dataset-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDatasetName</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/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.1185">getDatasetName</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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>name of dataset interface</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.3</dd>
+</dl>
+</li>
+</ul>
+<a name="getDatasetName-org.eclipse.january.dataset.ILazyDataset-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDatasetName</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/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.1194">getDatasetName</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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>name of dataset interface</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.3</dd>
+</dl>
+</li>
+</ul>
+<a name="getDatasetName-java.lang.Class-int-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getDatasetName</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/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.1208">getDatasetName</a>(<a href="https://docs.oracle.com/javase/8/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,
+                                    int&nbsp;itemSize)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset interface</dd>
+<dd><code>itemSize</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>name of dataset interface</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.3</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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/DataEvent.html b/apidocs/2.3.0/org/eclipse/january/dataset/DataEvent.html
new file mode 100644
index 0000000..a124dc4
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/DataEvent.html
@@ -0,0 +1,491 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:15 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DataEvent (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DataEvent (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DataListenerDelegate.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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/8/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/8/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="seeLabel">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/8/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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DataEvent.html#DataEvent--">DataEvent</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DataEvent.html#DataEvent-java.lang.String-int:A-">DataEvent</a></span>(<a href="https://docs.oracle.com/javase/8/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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DataEvent.html#decode-java.lang.String-">decode</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DataEvent.html#encode--">encode</a></span>()</code>
+<div class="block">Encodes event to string</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DataEvent.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DataEvent.html#getFilePath--">getFilePath</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DataEvent.html#getName--">getName</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DataEvent.html#getShape--">getShape</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DataEvent.html#getSource--">getSource</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DataEvent.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DataEvent.html#setFilePath-java.lang.String-">setFilePath</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DataEvent.html#setName-java.lang.String-">setName</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DataEvent.html#setShape-int:A-">setShape</a></span>(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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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-">
+<!--   -->
+</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/8/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="paramLabel">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/8/docs/api/java/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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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/8/docs/api/java/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/8/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-">
+<!--   -->
+</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/8/docs/api/java/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/8/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/8/docs/api/java/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="returnLabel">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/8/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="returnLabel">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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DataListenerDelegate.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.java.util.EventObject">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/DataListenerDelegate.html b/apidocs/2.3.0/org/eclipse/january/dataset/DataListenerDelegate.html
new file mode 100644
index 0000000..b0ca841
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/DataListenerDelegate.html
@@ -0,0 +1,326 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:15 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DataListenerDelegate (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DataListenerDelegate (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DataListenerDelegate.html#DataListenerDelegate--">DataListenerDelegate</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DataListenerDelegate.html#addDataListener-org.eclipse.january.dataset.IDataListener-">addDataListener</a></span>(<a href="../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset">IDataListener</a>&nbsp;l)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DataListenerDelegate.html#clear--">clear</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DataListenerDelegate.html#fire-org.eclipse.january.dataset.DataEvent-">fire</a></span>(<a href="../../../../org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a>&nbsp;evt)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DataListenerDelegate.html#hasDataListeners--">hasDataListeners</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DataListenerDelegate.html#removeDataListener-org.eclipse.january.dataset.IDataListener-">removeDataListener</a></span>(<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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/Dataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/Dataset.html
new file mode 100644
index 0000000..9e61dad
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/Dataset.html
@@ -0,0 +1,4690 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:15 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Dataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Dataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":38,"i9":6,"i10":38,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":38,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6,"i29":6,"i30":6,"i31":6,"i32":6,"i33":6,"i34":6,"i35":6,"i36":6,"i37":6,"i38":6,"i39":6,"i40":6,"i41":6,"i42":6,"i43":6,"i44":6,"i45":6,"i46":6,"i47":6,"i48":6,"i49":6,"i50":6,"i51":6,"i52":6,"i53":6,"i54":6,"i55":6,"i56":6,"i57":6,"i58":6,"i59":6,"i60":6,"i61":6,"i62":6,"i63":6,"i64":6,"i65":6,"i66":6,"i67":6,"i68":6,"i69":6,"i70":6,"i71":6,"i72":6,"i73":6,"i74":6,"i75":6,"i76":6,"i77":6,"i78":6,"i79":6,"i80":6,"i81":6,"i82":6,"i83":6,"i84":6,"i85":6,"i86":6,"i87":6,"i88":6,"i89":6,"i90":6,"i91":6,"i92":6,"i93":6,"i94":6,"i95":6,"i96":6,"i97":6,"i98":6,"i99":6,"i100":6,"i101":6,"i102":6,"i103":6,"i104":6,"i105":6,"i106":6,"i107":6,"i108":6,"i109":6,"i110":6,"i111":6,"i112":6,"i113":6,"i114":6,"i115":6,"i116":6,"i117":6,"i118":6,"i119":6,"i120":6,"i121":6,"i122":6,"i123":6,"i124":6,"i125":6,"i126":6,"i127":6,"i128":6,"i129":6,"i130":6,"i131":6,"i132":6,"i133":6,"i134":6,"i135":6,"i136":6,"i137":6,"i138":6,"i139":6,"i140":6,"i141":6,"i142":6,"i143":6,"i144":6,"i145":6,"i146":6,"i147":6,"i148":6,"i149":6,"i150":6,"i151":6,"i152":6,"i153":6,"i154":6,"i155":6,"i156":6,"i157":6,"i158":6,"i159":6,"i160":6,"i161":6,"i162":6,"i163":6,"i164":6,"i165":6,"i166":6,"i167":6,"i168":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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 <em>must</em> 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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a></span></code>
+<div class="block">Boolean</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#DATE">DATE</a></span></code>
+<div class="block">Date</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#INT">INT</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#INT16">INT16</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#INT32">INT32</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#INT64">INT64</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#INT8">INT8</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a></span></code>
+<div class="block">Object</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#RGB">RGB</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#serialVersionUID">serialVersionUID</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></span></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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#all--">all</a></span>()</code>
+<div class="block">Test if all items are true</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#all-int-">all</a></span>(int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#any--">any</a></span>()</code>
+<div class="block">Test if any items are true</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#any-int-">any</a></span>(int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax-boolean...-">argMax</a></span>(boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Find absolute index of maximum value (in a flattened view)</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax-int-boolean...-">argMax</a></span>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Find indices of maximum values along given axis</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin-boolean...-">argMin</a></span>(boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Find absolute index of minimum value (in a flattened view)</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin-int-boolean...-">argMin</a></span>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Find indices of minimum values along given axis</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast-boolean-int-int-">cast</a></span>(boolean&nbsp;repeat,
+    int&nbsp;dtype,
+    int&nbsp;isize)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use class-based method <code>Dataset#cast(int, Class, boolean))</code></span></div>
+</div>
+</td>
+</tr>
+<tr id="i9" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast-java.lang.Class-">cast</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i10" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast-int-">cast</a></span>(int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use class-based method <a href="../../../../org/eclipse/january/dataset/Dataset.html#cast-java.lang.Class-"><code>cast(Class)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i11" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast-int-java.lang.Class-boolean-">cast</a></span>(int&nbsp;isize,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+    boolean&nbsp;repeat)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#checkAxis-int-">checkAxis</a></span>(int&nbsp;axis)</code>
+<div class="block">Check that axis is in range [-rank,rank)</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#checkCompatibility-org.eclipse.january.dataset.ILazyDataset-">checkCompatibility</a></span>(<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 id="i14" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset, making new copy of data</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#containsInfs--">containsInfs</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#containsInvalidNumbers--">containsInvalidNumbers</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#containsNans--">containsNans</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i18" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#copy-java.lang.Class-">copy</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i19" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#copy-int-">copy</a></span>(int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use class-based method <a href="../../../../org/eclipse/january/dataset/Dataset.html#copy-java.lang.Class-"><code>copy(Class)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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 id="i21" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#count-boolean...-">count</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#count-int:A-boolean...-">count</a></span>(int[]&nbsp;axes,
+     boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#count-int-boolean...-">count</a></span>(int&nbsp;axis,
+     boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i25" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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 id="i26" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#flatten--">flatten</a></span>()</code>
+<div class="block">Flatten shape</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#get1DIndex-int...-">get1DIndex</a></span>(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 id="i28" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean--">getBoolean</a></span>()</code>
+<div class="block">Get first item as a boolean.</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-">getBoolean</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-int-">getBoolean</a></span>(int&nbsp;i,
+          int&nbsp;j)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr id="i31" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator-org.eclipse.january.dataset.Dataset-">getBooleanIterator</a></span>(<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 id="i32" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator-org.eclipse.january.dataset.Dataset-boolean-">getBooleanIterator</a></span>(<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 id="i33" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBroadcastView-int...-">getBroadcastView</a></span>(int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr id="i34" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBuffer--">getBuffer</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i35" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBy1DIndex-org.eclipse.january.dataset.IntegerDataset-">getBy1DIndex</a></span>(<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 id="i36" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByBoolean-org.eclipse.january.dataset.Dataset-">getByBoolean</a></span>(<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 id="i37" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByIndexes-java.lang.Object...-">getByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i38" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte--">getByte</a></span>()</code>
+<div class="block">Get first item as a byte.</div>
+</td>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-">getByte</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a byte.</div>
+</td>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-int-">getByte</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get an item from given positionj as a byte.</div>
+</td>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble--">getDouble</a></span>()</code>
+<div class="block">Get first item as a double.</div>
+</td>
+</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-">getDouble</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr id="i43" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-int-">getDouble</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr id="i44" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDType--">getDType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i45" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs-int-">getElementBooleanAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr id="i46" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs-int-">getElementDoubleAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr id="i47" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs-int-">getElementLongAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr id="i48" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getError--">getError</a></span>()</code>
+<div class="block">Get the error for the first item.</div>
+</td>
+</tr>
+<tr id="i49" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getError-int-">getError</a></span>(int&nbsp;i)</code>
+<div class="block">Get the error for given position.</div>
+</td>
+</tr>
+<tr id="i50" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getError-int-int-">getError</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get the error for given position.</div>
+</td>
+</tr>
+<tr id="i51" class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray-int-">getErrorArray</a></span>(int&nbsp;i)</code>
+<div class="block">Get the error values for given position</div>
+</td>
+</tr>
+<tr id="i52" class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray-int-int-">getErrorArray</a></span>(int&nbsp;i,
+             int&nbsp;j)</code>
+<div class="block">Get the error values for given position</div>
+</td>
+</tr>
+<tr id="i53" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorBuffer--">getErrorBuffer</a></span>()</code>
+<div class="block">Get the (un-broadcasted) dataset that backs the (squared) error data</div>
+</td>
+</tr>
+<tr id="i54" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrors--">getErrors</a></span>()</code>
+<div class="block">Get the error array from the dataset of same shape.</div>
+</td>
+</tr>
+<tr id="i55" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat--">getFloat</a></span>()</code>
+<div class="block">Get first item as a float.</div>
+</td>
+</tr>
+<tr id="i56" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-">getFloat</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr id="i57" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-int-">getFloat</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr id="i58" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getIndices--">getIndices</a></span>()</code>
+<div class="block">Generate an index dataset for current dataset</div>
+</td>
+</tr>
+<tr id="i59" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt--">getInt</a></span>()</code>
+<div class="block">Get first item as an int.</div>
+</td>
+</tr>
+<tr id="i60" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-">getInt</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr id="i61" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-int-">getInt</a></span>(int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr id="i62" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getIterator--">getIterator</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i63" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getIterator-boolean-">getIterator</a></span>(boolean&nbsp;withPosition)</code>&nbsp;</td>
+</tr>
+<tr id="i64" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong--">getLong</a></span>()</code>
+<div class="block">Get first item as a long.</div>
+</td>
+</tr>
+<tr id="i65" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-">getLong</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr id="i66" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-int-">getLong</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr id="i67" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getNbytes--">getNbytes</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i68" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getNDPosition-int-">getNDPosition</a></span>(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 id="i69" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject--">getObject</a></span>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr id="i70" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-">getObject</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i71" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-int-">getObject</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i72" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs-int-">getObjectAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr id="i73" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getOffset--">getOffset</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i74" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getPositionIterator-int...-">getPositionIterator</a></span>(int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr id="i75" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealPart--">getRealPart</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i76" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealView--">getRealView</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i77" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShapeRef--">getShapeRef</a></span>()</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 id="i78" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort--">getShort</a></span>()</code>
+<div class="block">Get first item as a short.</div>
+</td>
+</tr>
+<tr id="i79" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-">getShort</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr id="i80" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-int-">getShort</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr id="i81" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a></span>(<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 id="i82" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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 id="i83" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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 id="i84" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice-int:A-int:A-int:A-">getSlice</a></span>(int[]&nbsp;start,
+        int[]&nbsp;stop,
+        int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr id="i85" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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 id="i86" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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 id="i87" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator-int:A-int:A-int:A-">getSliceIterator</a></span>(int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr id="i88" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator-org.eclipse.january.dataset.SliceND-">getSliceIterator</a></span>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr id="i89" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">getSliceIteratorFromAxes</a></span>(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 id="i90" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceView-int:A-int:A-int:A-">getSliceView</a></span>(int[]&nbsp;start,
+            int[]&nbsp;stop,
+            int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr id="i91" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">getSliceView</a></span>(<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 id="i92" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">getSliceView</a></span>(<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 id="i93" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStrides--">getStrides</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i94" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString--">getString</a></span>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr id="i95" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-">getString</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i96" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-int-">getString</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i97" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs-int-">getStringAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr id="i98" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getTransposedView-int...-">getTransposedView</a></span>(int...&nbsp;axes)</code>
+<div class="block">Permute copy of dataset's axes so that given order is old order:</div>
+</td>
+</tr>
+<tr id="i99" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getUniqueItems--">getUniqueItems</a></span>()</code>
+<div class="block">Get unique items</div>
+</td>
+</tr>
+<tr id="i100" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#getView-boolean-">getView</a></span>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr id="i101" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#hasFloatingPointElements--">hasFloatingPointElements</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i102" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i103" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i104" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor--">ifloor</a></span>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr id="i105" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloorDivide-java.lang.Object-">ifloorDivide</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i106" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i107" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i108" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i109" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#isCompatibleWith-org.eclipse.january.dataset.ILazyDataset-">isCompatibleWith</a></span>(<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 id="i110" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#isComplex--">isComplex</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i111" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i112" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int:A-boolean...-">max</a></span>(int[]&nbsp;axes,
+   boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i113" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-">max</a></span>(int&nbsp;axis,
+   boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i114" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#mean-int:A-boolean...-">mean</a></span>(int[]&nbsp;axes,
+    boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i115" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#mean-int-boolean...-">mean</a></span>(int&nbsp;axis,
+    boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i116" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#min-int:A-boolean...-">min</a></span>(int[]&nbsp;axes,
+   boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i117" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#min-int-boolean...-">min</a></span>(int&nbsp;axis,
+   boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i118" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i119" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-boolean...-">peakToPeak</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i120" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a></span>(int[]&nbsp;axes,
+          boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i121" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-int-boolean...-">peakToPeak</a></span>(int&nbsp;axis,
+          boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i122" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#product-boolean...-">product</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i123" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#product-int:A-boolean...-">product</a></span>(int[]&nbsp;axes,
+       boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i124" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#product-int-boolean...-">product</a></span>(int&nbsp;axis,
+       boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i125" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#reshape-int...-">reshape</a></span>(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 id="i126" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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-boolean-"><code>residual(Object o, boolean ignoreNaNs)</code></a> with ignoreNaNs = false</div>
+</td>
+</tr>
+<tr id="i127" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i128" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i129" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare-boolean...-">rootMeanSquare</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i130" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</a></span>(int[]&nbsp;axes,
+              boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i131" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare-int-boolean...-">rootMeanSquare</a></span>(int&nbsp;axis,
+              boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i132" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i133" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i134" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i135" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i136" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i137" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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 id="i138" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty--">setDirty</a></span>()</code>
+<div class="block">This method allows anything that dirties the dataset to clear various metadata values
+ so that the other methods can work correctly.</div>
+</td>
+</tr>
+<tr id="i139" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#setErrorBuffer-java.io.Serializable-">setErrorBuffer</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i140" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">setItemsOnAxes</a></span>(int[]&nbsp;pos,
+              boolean[]&nbsp;axes,
+              <a href="https://docs.oracle.com/javase/8/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 id="i141" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs-int-java.lang.Object-">setObjectAbs</a></span>(int&nbsp;index,
+            <a href="https://docs.oracle.com/javase/8/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 id="i142" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i143" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i144" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i145" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.SliceND-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i146" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#sort-java.lang.Integer-">sort</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i147" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#squeeze--">squeeze</a></span>()</code>
+<div class="block">Remove dimensions of 1 in shape of the dataset</div>
+</td>
+</tr>
+<tr id="i148" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#squeeze-boolean-">squeeze</a></span>(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 id="i149" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#squeezeEnds--">squeezeEnds</a></span>()</code>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+</td>
+</tr>
+<tr id="i150" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation--">stdDeviation</a></span>()</code>
+<div class="block">Standard deviation is square root of the variance</div>
+</td>
+</tr>
+<tr id="i151" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-boolean-boolean...-">stdDeviation</a></span>(boolean&nbsp;isWholePopulation,
+            boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Standard deviation is square root of the variance</div>
+</td>
+</tr>
+<tr id="i152" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int-">stdDeviation</a></span>(int&nbsp;axis)</code>
+<div class="block">Standard deviation is square root of the variance</div>
+</td>
+</tr>
+<tr id="i153" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-">stdDeviation</a></span>(int[]&nbsp;axes)</code>
+<div class="block">Standard deviation is square root of the variance</div>
+</td>
+</tr>
+<tr id="i154" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a></span>(int[]&nbsp;axes,
+            boolean&nbsp;isWholePopulation,
+            boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Standard deviation is square root of the variance</div>
+</td>
+</tr>
+<tr id="i155" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int-boolean-boolean...-">stdDeviation</a></span>(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 id="i156" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#sum-boolean...-">sum</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i157" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#sum-int:A-boolean...-">sum</a></span>(int[]&nbsp;axes,
+   boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i158" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#sum-int-boolean...-">sum</a></span>(int&nbsp;axis,
+   boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i159" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#swapAxes-int-int-">swapAxes</a></span>(int&nbsp;axis1,
+        int&nbsp;axis2)</code>
+<div class="block">Swap two axes in dataset</div>
+</td>
+</tr>
+<tr id="i160" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#synchronizedCopy--">synchronizedCopy</a></span>()</code>
+<div class="block">This is a <b>synchronized</b> version of the clone method</div>
+</td>
+</tr>
+<tr id="i161" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#toString-boolean-">toString</a></span>(boolean&nbsp;showData)</code>&nbsp;</td>
+</tr>
+<tr id="i162" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#transpose-int...-">transpose</a></span>(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 id="i163" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance--">variance</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i164" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-boolean-boolean...-">variance</a></span>(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 id="i165" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int-">variance</a></span>(int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr id="i166" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int:A-">variance</a></span>(int[]&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr id="i167" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int:A-boolean-boolean...-">variance</a></span>(int[]&nbsp;axes,
+        boolean&nbsp;isWholePopulation,
+        boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i168" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int-boolean-boolean...-">variance</a></span>(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-int...-">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="seeLabel">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="seeLabel">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="seeLabel">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="seeLabel">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="seeLabel">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="seeLabel">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="seeLabel">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="seeLabel">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="seeLabel">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="seeLabel">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="seeLabel">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="seeLabel">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="seeLabel">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="seeLabel">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="seeLabel">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="seeLabel">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="seeLabel">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="seeLabel">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="seeLabel">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="seeLabel">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="seeLabel">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="seeLabel">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="seeLabel">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="seeLabel">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="returnLabel">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="returnLabel">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="returnLabel">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="returnLabel">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="returnLabel">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="returnLabel">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/8/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="returnLabel">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/8/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="paramLabel">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="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="returnLabel">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.213">getBroadcastView</a>(int...&nbsp;shape)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - </dd>
+<dt><span class="returnLabel">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/8/docs/api/java/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.219">toString</a>(boolean&nbsp;showData)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>showData</code> - </dd>
+<dt><span class="returnLabel">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.222">squeezeEnds</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds--">ILazyDataset</a></code></span></div>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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.225">squeeze</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeeze--">IDataset</a></code></span></div>
+<div class="block">Remove dimensions of 1 in shape of the dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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.228">squeeze</a>(boolean&nbsp;onlyFromEnds)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeeze-boolean-">IDataset</a></code></span></div>
+<div class="block">Remove dimensions of 1 in shape of the dataset from ends only if true</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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.231">clone</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone--">IDataset</a></code></span></div>
+<div class="block">Clone dataset, making new copy of data</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.237">setDirty</a>()</pre>
+<div class="block">This method allows anything that dirties the dataset to clear various metadata values
+ so that the other methods can work correctly.</div>
+</li>
+</ul>
+<a name="getNDPosition-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNDPosition</h4>
+<pre>int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.247">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="paramLabel">Parameters:</span></dt>
+<dd><code>n</code> - The index in the array</dd>
+<dt><span class="returnLabel">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.257">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="paramLabel">Parameters:</span></dt>
+<dd><code>n</code> - the integer array specifying the n-D position</dd>
+<dt><span class="returnLabel">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.265">checkAxis</a>(int&nbsp;axis)</pre>
+<div class="block">Check that axis is in range [-rank,rank)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis</code> - </dd>
+<dt><span class="returnLabel">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.275">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="paramLabel">Parameters:</span></dt>
+<dd><code>g</code> - The dataset to be compared</dd>
+<dt><span class="returnLabel">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.287">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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>g</code> - The dataset to be compared</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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.295">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="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - new shape</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>reshaped dataset</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.300">isComplex</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.306">getRealPart</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>real part of dataset (if necessary, as new dataset)</dd>
+<dt><span class="simpleTagLabel">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.311">getRealView</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.321">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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>the dataset which contains the error information (can be null)</dd>
+<dt><span class="simpleTagLabel">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.328">getErrorBuffer</a>()</pre>
+<div class="block">Get the (un-broadcasted) dataset that backs the (squared) error data</div>
+<dl>
+<dt><span class="returnLabel">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.335">setErrorBuffer</a>(<a href="https://docs.oracle.com/javase/8/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>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>buffer</code> - the buffer which contains the (squared) error information (can be null)</dd>
+</dl>
+</li>
+</ul>
+<a name="copy-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copy</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+<a href="../../../../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.346">copy</a>(int&nbsp;dtype)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use class-based method <a href="../../../../org/eclipse/january/dataset/Dataset.html#copy-java.lang.Class-"><code>copy(Class)</code></a></span></div>
+<div class="block">Copy and cast a dataset</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>dtype</code> - dataset type</dd>
+<dt><span class="returnLabel">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.355">copy</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - dataset subclass</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset class</dd>
+<dt><span class="returnLabel">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="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+<a href="../../../../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.366">cast</a>(int&nbsp;dtype)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use class-based method <a href="../../../../org/eclipse/january/dataset/Dataset.html#cast-java.lang.Class-"><code>cast(Class)</code></a></span></div>
+<div class="block">Cast a dataset</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>dtype</code> - dataset type</dd>
+<dt><span class="returnLabel">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.375">cast</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - dataset subclass</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset class</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a converted dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="cast-int-java.lang.Class-boolean-">
+<!--   -->
+</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.387">cast</a>(int&nbsp;isize,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                           boolean&nbsp;repeat)</pre>
+<div class="block">Cast a dataset</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - dataset subclass</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>isize</code> - item size</dd>
+<dd><code>repeat</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a converted dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.3</dd>
+</dl>
+</li>
+</ul>
+<a name="cast-boolean-int-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cast</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+<a href="../../../../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.401">cast</a>(boolean&nbsp;repeat,
+                         int&nbsp;dtype,
+                         int&nbsp;isize)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use class-based method <code>Dataset#cast(int, Class, boolean))</code></span></div>
+<div class="block">Cast a dataset</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.408">getIndices</a>()</pre>
+<div class="block">Generate an index dataset for current dataset</div>
+<dl>
+<dt><span class="returnLabel">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.411">getTransposedView</a>(int...&nbsp;axes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getTransposedView-int...-">IDataset</a></code></span></div>
+<div class="block">Permute copy of dataset's axes so that given order is old order:
+ 
+ <pre>
+  axisPerm = (p(0), p(1),...) =&gt; 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="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>axes</code> - if zero length then axes order reversed</dd>
+<dt><span class="returnLabel">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.418">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="paramLabel">Parameters:</span></dt>
+<dd><code>axes</code> - </dd>
+<dt><span class="returnLabel">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.427">swapAxes</a>(int&nbsp;axis1,
+                 int&nbsp;axis2)</pre>
+<div class="block">Swap two axes in dataset</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis1</code> - </dd>
+<dd><code>axis2</code> - </dd>
+<dt><span class="returnLabel">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.434">flatten</a>()</pre>
+<div class="block">Flatten shape</div>
+<dl>
+<dt><span class="returnLabel">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.440">getUniqueItems</a>()</pre>
+<div class="block">Get unique items</div>
+<dl>
+<dt><span class="returnLabel">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.447">getIterator</a>(boolean&nbsp;withPosition)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>withPosition</code> - set true if position is needed</dd>
+<dt><span class="returnLabel">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.452">getIterator</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.458">getPositionIterator</a>(int...&nbsp;axes)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axes</code> - axes to omit from iterator</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a PositionIterator that misses out axes</dd>
+</dl>
+</li>
+</ul>
+<a name="getSliceIterator-int:A-int:A-int:A-">
+<!--   -->
+</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.469">getSliceIterator</a>(int[]&nbsp;start,
+                               int[]&nbsp;stop,
+                               int[]&nbsp;step)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>an slice iterator that operates like an IndexIterator</dd>
+</dl>
+</li>
+</ul>
+<a name="getSliceIterator-org.eclipse.january.dataset.SliceND-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceIterator</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.476">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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an slice iterator that operates like an IndexIterator</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a name="getSliceIteratorFromAxes-int:A-boolean:A-">
+<!--   -->
+</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.486">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="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dd><code>axes</code> - to include</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>slice iterator</dd>
+</dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes-int:A-boolean:A-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.497">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="paramLabel">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:A-boolean:A-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.507">setItemsOnAxes</a>(int[]&nbsp;pos,
+                    boolean[]&nbsp;axes,
+                    <a href="https://docs.oracle.com/javase/8/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="paramLabel">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.516">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="paramLabel">Parameters:</span></dt>
+<dd><code>choice</code> - </dd>
+<dt><span class="returnLabel">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.526">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="paramLabel">Parameters:</span></dt>
+<dd><code>choice</code> - </dd>
+<dd><code>value</code> - </dd>
+<dt><span class="returnLabel">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.535">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="paramLabel">Parameters:</span></dt>
+<dd><code>selection</code> - a boolean dataset of same shape to use for selecting items</dd>
+<dt><span class="returnLabel">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.547">setByBoolean</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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="paramLabel">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="returnLabel">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.556">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="paramLabel">Parameters:</span></dt>
+<dd><code>index</code> - an integer dataset</dd>
+<dt><span class="returnLabel">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.566">getByIndexes</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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.578">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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="paramLabel">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="returnLabel">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.591">setByIndexes</a>(<a href="https://docs.oracle.com/javase/8/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/8/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="paramLabel">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="returnLabel">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.599">fill</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>obj</code> - </dd>
+<dt><span class="returnLabel">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.607">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="paramLabel">Parameters:</span></dt>
+<dd><code>index</code> - </dd>
+<dt><span class="returnLabel">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.615">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="paramLabel">Parameters:</span></dt>
+<dd><code>index</code> - </dd>
+<dt><span class="returnLabel">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.623">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="paramLabel">Parameters:</span></dt>
+<dd><code>index</code> - </dd>
+<dt><span class="returnLabel">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/8/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.631">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="paramLabel">Parameters:</span></dt>
+<dd><code>index</code> - </dd>
+<dt><span class="returnLabel">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/8/docs/api/java/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.639">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="paramLabel">Parameters:</span></dt>
+<dd><code>index</code> - </dd>
+<dt><span class="returnLabel">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.647">setObjectAbs</a>(int&nbsp;index,
+                  <a href="https://docs.oracle.com/javase/8/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="paramLabel">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/8/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.654">getObject</a>()</pre>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item</dd>
+<dt><span class="simpleTagLabel">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/8/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.661">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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/8/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.669">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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/8/docs/api/java/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.676">getString</a>()</pre>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item</dd>
+<dt><span class="simpleTagLabel">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/8/docs/api/java/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.683">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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/8/docs/api/java/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.691">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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.698">getDouble</a>()</pre>
+<div class="block">Get first item as a double. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item</dd>
+<dt><span class="simpleTagLabel">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.705">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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.713">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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.720">getFloat</a>()</pre>
+<div class="block">Get first item as a float. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item</dd>
+<dt><span class="simpleTagLabel">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.727">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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.735">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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.742">getLong</a>()</pre>
+<div class="block">Get first item as a long. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item</dd>
+<dt><span class="simpleTagLabel">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.749">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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.757">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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.764">getInt</a>()</pre>
+<div class="block">Get first item as an int. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item</dd>
+<dt><span class="simpleTagLabel">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.771">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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.779">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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.786">getShort</a>()</pre>
+<div class="block">Get first item as a short. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item</dd>
+<dt><span class="simpleTagLabel">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.793">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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.801">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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.808">getByte</a>()</pre>
+<div class="block">Get first item as a byte. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item</dd>
+<dt><span class="simpleTagLabel">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.815">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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.823">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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.830">getBoolean</a>()</pre>
+<div class="block">Get first item as a boolean. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item</dd>
+<dt><span class="simpleTagLabel">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.837">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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.845">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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.852">getError</a>()</pre>
+<div class="block">Get the error for the first item. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item</dd>
+<dt><span class="simpleTagLabel">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.859">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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.867">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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.874">getErrorArray</a>(int&nbsp;i)</pre>
+<div class="block">Get the error values for given position</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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.882">getErrorArray</a>(int&nbsp;i,
+                       int&nbsp;j)</pre>
+<div class="block">Get the error values for given position</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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.889">set</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>obj</code> - </dd>
+<dt><span class="simpleTagLabel">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.896">set</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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.904">set</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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.913">sort</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>axis</code> - to sort along. If null, then the flattened view is sorted</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>sorted dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="getSlice-int:A-int:A-int:A-">
+<!--   -->
+</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.916">getSlice</a>(int[]&nbsp;start,
+                 int[]&nbsp;stop,
+                 int[]&nbsp;step)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-int:A-int:A-int:A-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSlice-int:A-int:A-int:A-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-int:A-int:A-int:A-">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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+</dl>
+</li>
+</ul>
+<a name="getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">
+<!--   -->
+</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.919">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">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="returnLabel">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.922">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="returnLabel">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.925">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-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>
+<dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="returnLabel">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.928">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="returnLabel">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.931">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-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>
+<dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+</dl>
+</li>
+</ul>
+<a name="getSliceView-int:A-int:A-int:A-">
+<!--   -->
+</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.934">getSliceView</a>(int[]&nbsp;start,
+                     int[]&nbsp;stop,
+                     int[]&nbsp;step)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView-int:A-int:A-int:A-">IDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a view on a selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView-int:A-int:A-int:A-">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView-int:A-int:A-int:A-">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="paramLabel">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="returnLabel">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.937">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">IDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a view on a selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="returnLabel">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.940">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">IDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a view on a selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an nD slice object</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The sliced view of a dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="setSlice-java.lang.Object-int:A-int:A-int:A-">
+<!--   -->
+</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.956">setSlice</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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.964">setSlice</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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="paramLabel">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.972">setSlice</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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="paramLabel">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.982">setSlice</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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="paramLabel">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="returnLabel">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.991">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="paramLabel">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.996">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.1002">all</a>(int&nbsp;axis)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis</code> - </dd>
+<dt><span class="returnLabel">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.1007">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.1013">any</a>(int&nbsp;axis)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis</code> - </dd>
+<dt><span class="returnLabel">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.1021">iadd</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>o</code> - </dd>
+<dt><span class="returnLabel">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.1029">isubtract</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>o</code> - </dd>
+<dt><span class="returnLabel">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.1037">imultiply</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>o</code> - </dd>
+<dt><span class="returnLabel">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.1045">idivide</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>o</code> - </dd>
+<dt><span class="returnLabel">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.1053">ifloorDivide</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>o</code> - </dd>
+<dt><span class="returnLabel">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.1060">iremainder</a>(<a href="https://docs.oracle.com/javase/8/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="returnLabel">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.1067">ifloor</a>()</pre>
+<div class="block">In-place floor</div>
+<dl>
+<dt><span class="returnLabel">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.1075">ipower</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>o</code> - </dd>
+<dt><span class="returnLabel">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.1084">residual</a>(<a href="https://docs.oracle.com/javase/8/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-boolean-"><code>residual(Object o, boolean ignoreNaNs)</code></a> with ignoreNaNs = false</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>o</code> - </dd>
+<dt><span class="returnLabel">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.1093">residual</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>o</code> - </dd>
+<dd><code>ignoreNaNs</code> - if true, skip NaNs</dd>
+<dt><span class="returnLabel">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.1104">residual</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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.1109">containsInfs</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.1114">containsNans</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.1119">containsInvalidNumbers</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.1129">max</a>(int&nbsp;axis,
+            boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>maxima along axis in dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a name="max-int:A-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.1137">max</a>(int[]&nbsp;axes,
+            boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axes</code> - </dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>maxima in given axes of dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</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.1145">min</a>(int&nbsp;axis,
+            boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis</code> - </dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>minima along axis in dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a name="min-int:A-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.1153">min</a>(int[]&nbsp;axes,
+            boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axes</code> - </dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>minima in given axes of dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</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.1161">argMax</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block">Find absolute index of maximum value (in a flattened view)</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>absolute index</dd>
+<dt><span class="simpleTagLabel">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.1170">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="paramLabel">Parameters:</span></dt>
+<dd><code>axis</code> - </dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>index dataset</dd>
+<dt><span class="simpleTagLabel">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.1178">argMin</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block">Find absolute index of minimum value (in a flattened view)</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>absolute index</dd>
+<dt><span class="simpleTagLabel">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.1187">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="paramLabel">Parameters:</span></dt>
+<dd><code>axis</code> - </dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>index dataset</dd>
+<dt><span class="simpleTagLabel">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/8/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.1194">peakToPeak</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>peak-to-peak value, the difference of maximum and minimum of dataset</dd>
+<dt><span class="simpleTagLabel">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.1202">peakToPeak</a>(int&nbsp;axis,
+                   boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis</code> - </dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>peak-to-peak dataset, the difference of maxima and minima of dataset along axis</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a name="peakToPeak-int:A-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.1210">peakToPeak</a>(int[]&nbsp;axes,
+                   boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axes</code> - </dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>peak-to-peak dataset, the difference of maxima and minima of dataset in given axes</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</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.1217">count</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>number of items in dataset</dd>
+<dt><span class="simpleTagLabel">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.1225">count</a>(int&nbsp;axis,
+              boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis</code> - </dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>number of items along axis in dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a name="count-int:A-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.1233">count</a>(int[]&nbsp;axes,
+              boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axes</code> - </dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>number of items in given axes of dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</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/8/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.1240">sum</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>sum over all items in dataset as a Double, array of doubles or a complex number</dd>
+<dt><span class="simpleTagLabel">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.1248">sum</a>(int&nbsp;axis,
+            boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis</code> - </dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>sum along axis in dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a name="sum-int:A-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.1256">sum</a>(int[]&nbsp;axes,
+            boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axes</code> - </dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>sum  in given axes of dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</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/8/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.1263">product</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>product over all items in dataset</dd>
+<dt><span class="simpleTagLabel">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.1271">product</a>(int&nbsp;axis,
+                boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis</code> - </dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>product along axis in dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a name="product-int:A-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.1279">product</a>(int[]&nbsp;axes,
+                boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axes</code> - </dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>product in given axes of dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</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.1287">mean</a>(int&nbsp;axis,
+             boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis</code> - </dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>mean along axis in dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a name="mean-int:A-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.1295">mean</a>(int[]&nbsp;axes,
+             boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axes</code> - </dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>mean in given axes of dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</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.1302">variance</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>sample variance of whole dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-boolean-boolean...-"><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.1329">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="paramLabel">Parameters:</span></dt>
+<dd><code>isWholePopulation</code> - </dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>sample variance</dd>
+<dt><span class="simpleTagLabel">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.1336">variance</a>(int&nbsp;axis)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>sample variance along axis in dataset</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int-boolean-boolean...-"><code>with isWholePopulation = false</code></a></dd>
+</dl>
+</li>
+</ul>
+<a name="variance-int:A-">
+<!--   -->
+</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.1344">variance</a>(int[]&nbsp;axes)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axes</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>sample variance in given axes of dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int:A-boolean-boolean...-"><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.1353">variance</a>(int&nbsp;axis,
+                 boolean&nbsp;isWholePopulation,
+                 boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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-boolean...-"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>sample variance along axis in dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a name="variance-int:A-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.1362">variance</a>(int[]&nbsp;axes,
+                 boolean&nbsp;isWholePopulation,
+                 boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axes</code> - </dd>
+<dd><code>isWholePopulation</code> - </dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>sample variance in given axes of dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</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.1371">stdDeviation</a>()</pre>
+<div class="block">Standard deviation is square root of the variance</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>sample standard deviation of all items in dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-boolean-boolean...-"><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.1382">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="paramLabel">Parameters:</span></dt>
+<dd><code>isWholePopulation</code> - </dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>sample standard deviation of all items in dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-boolean-boolean...-"><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.1391">stdDeviation</a>(int&nbsp;axis)</pre>
+<div class="block">Standard deviation is square root of the variance</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>standard deviation along axis in dataset</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int-boolean-boolean...-"><code>with isWholePopulation = false</code></a></dd>
+</dl>
+</li>
+</ul>
+<a name="stdDeviation-int:A-">
+<!--   -->
+</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.1401">stdDeviation</a>(int[]&nbsp;axes)</pre>
+<div class="block">Standard deviation is square root of the variance</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axes</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>standard deviation in given axes of dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-boolean-boolean...-"><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.1412">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="paramLabel">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-boolean...-"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>standard deviation along axis in dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a name="stdDeviation-int:A-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.1423">stdDeviation</a>(int[]&nbsp;axes,
+                     boolean&nbsp;isWholePopulation,
+                     boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block">Standard deviation is square root of the variance</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axes</code> - </dd>
+<dd><code>isWholePopulation</code> - </dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>standard deviation in given axes of dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</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.1430">rootMeanSquare</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>root mean square</dd>
+<dt><span class="simpleTagLabel">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/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1438">rootMeanSquare</a>(int&nbsp;axis,
+                       boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis</code> - </dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>root mean square along axis in dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a name="rootMeanSquare-int:A-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.1446">rootMeanSquare</a>(int[]&nbsp;axes,
+                       boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axes</code> - </dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>root mean square in given axes of dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/DatasetFactory.html b/apidocs/2.3.0/org/eclipse/january/dataset/DatasetFactory.html
new file mode 100644
index 0000000..85f2ced
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/DatasetFactory.html
@@ -0,0 +1,1678 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:15 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DatasetFactory (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DatasetFactory (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":41,"i2":9,"i3":41,"i4":9,"i5":41,"i6":9,"i7":9,"i8":41,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":41,"i15":41,"i16":41,"i17":9,"i18":9,"i19":9,"i20":41,"i21":9,"i22":41,"i23":9,"i24":9,"i25":9,"i26":9,"i27":41,"i28":41,"i29":9,"i30":9,"i31":41,"i32":41,"i33":9,"i34":9,"i35":41,"i36":9,"i37":41,"i38":9,"i39":41,"i40":9,"i41":9,"i42":9,"i43":41,"i44":9,"i45":41,"i46":9,"i47":41,"i48":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#DatasetFactory--">DatasetFactory</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#compoundZeros-int-java.lang.Class-int...-">compoundZeros</a></span>(int&nbsp;itemSize,
+             <a href="https://docs.oracle.com/javase/8/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 id="i1" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#compoundZeros-int-int:A-int-">compoundZeros</a></span>(int&nbsp;itemSize,
+             int[]&nbsp;shape,
+             int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#compoundZeros-int-java.lang.Class-int...-"><code>compoundZeros(int, Class, int...)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i2" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createComplexDataset-java.lang.Class-java.lang.Object-java.lang.Object-">createComplexDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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 id="i3" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createComplexDataset-int-java.lang.Object-java.lang.Object-">createComplexDataset</a></span>(int&nbsp;dtype,
+                    <a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;imag)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createComplexDataset-java.lang.Class-java.lang.Object-java.lang.Object-"><code>createComplexDataset(Class, Object, Object)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i4" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createCompoundDataset-java.lang.Class-java.lang.Object...-">createCompoundDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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 id="i5" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createCompoundDataset-int-java.lang.Object...-">createCompoundDataset</a></span>(int&nbsp;dtype,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;objects)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createCompoundDataset-java.lang.Class-java.lang.Object...-"><code>createCompoundDataset(Class, Object...)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i6" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createCompoundDataset-java.lang.Object...-">createCompoundDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i7" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromList-java.lang.Class-java.util.List-">createFromList</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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 id="i8" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromList-int-java.util.List-">createFromList</a></span>(int&nbsp;dtype,
+              <a href="https://docs.oracle.com/javase/8/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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromList-java.lang.Class-java.util.List-"><code>createFromList(Class, List)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromList-java.util.List-">createFromList</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i10" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject-boolean-java.lang.Object-">createFromObject</a></span>(boolean&nbsp;isUnsigned,
+                <a href="https://docs.oracle.com/javase/8/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 id="i11" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject-java.lang.Class-java.lang.Object-">createFromObject</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Create a dataset from object</div>
+</td>
+</tr>
+<tr id="i12" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject-java.lang.Class-java.lang.Object-int...-">createFromObject</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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 id="i13" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject-int-java.lang.Class-java.lang.Object-int...-">createFromObject</a></span>(int&nbsp;itemSize,
+                <a href="https://docs.oracle.com/javase/8/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/8/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 id="i14" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject-int-int-java.lang.Object-int...-">createFromObject</a></span>(int&nbsp;itemSize,
+                int&nbsp;dtype,
+                <a href="https://docs.oracle.com/javase/8/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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject-int-java.lang.Class-java.lang.Object-int...-"><code>createFromObject(int, Class, Object, int...)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject-int-java.lang.Object-">createFromObject</a></span>(int&nbsp;dtype,
+                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject-java.lang.Class-java.lang.Object-int...-"><code>createFromObject(Class, Object, int...)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject-int-java.lang.Object-int...-">createFromObject</a></span>(int&nbsp;dtype,
+                <a href="https://docs.oracle.com/javase/8/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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject-java.lang.Class-java.lang.Object-int...-"><code>createFromObject(Class, Object, int...)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject-java.lang.Object-">createFromObject</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i18" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject-java.lang.Object-int...-">createFromObject</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i19" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createLinearSpace-java.lang.Class-double-double-int-">createLinearSpace</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i20" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createLinearSpace-double-double-int-int-">createLinearSpace</a></span>(double&nbsp;start,
+                 double&nbsp;stop,
+                 int&nbsp;length,
+                 int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createLinearSpace-java.lang.Class-double-double-int-"><code>createLinearSpace(Class, double, double, int)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i21" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createLogSpace-java.lang.Class-double-double-int-double-">createLogSpace</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i22" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createLogSpace-double-double-int-double-int-">createLogSpace</a></span>(double&nbsp;start,
+              double&nbsp;stop,
+              int&nbsp;length,
+              double&nbsp;base,
+              int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createLogSpace-java.lang.Class-double-double-int-double-"><code>createLogSpace(Class, double, double, int, double)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i23" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-java.lang.Class-double-">createRange</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+           double&nbsp;stop)</code>
+<div class="block">Create dataset with items ranging from 0 up to given stop in steps of 1</div>
+</td>
+</tr>
+<tr id="i24" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-java.lang.Class-double-double-double-">createRange</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+           double&nbsp;start,
+           double&nbsp;stop,
+           double&nbsp;step)</code>
+<div class="block">Create dataset with items ranging from given start up to given stop in given steps</div>
+</td>
+</tr>
+<tr id="i25" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-double-">createRange</a></span>(double&nbsp;stop)</code>
+<div class="block">Create dataset with items ranging from 0 up to given stop in steps of 1</div>
+</td>
+</tr>
+<tr id="i26" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-double-double-double-">createRange</a></span>(double&nbsp;start,
+           double&nbsp;stop,
+           double&nbsp;step)</code>
+<div class="block">Create dataset with items ranging from given start up to given stop in given steps</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-double-double-double-int-">createRange</a></span>(double&nbsp;start,
+           double&nbsp;stop,
+           double&nbsp;step,
+           int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-java.lang.Class-double-double-double-"><code>createRange(Class, double, double, double)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-double-int-">createRange</a></span>(double&nbsp;stop,
+           int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-java.lang.Class-double-"><code>createRange(Class, double)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i29" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-int-java.lang.Class-double-">createRange</a></span>(int&nbsp;itemSize,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+           double&nbsp;stop)</code>
+<div class="block">Create compound dataset with items ranging from 0 up to given stop in steps of 1</div>
+</td>
+</tr>
+<tr id="i30" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-int-java.lang.Class-double-double-double-">createRange</a></span>(int&nbsp;itemSize,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+           double&nbsp;start,
+           double&nbsp;stop,
+           double&nbsp;step)</code>
+<div class="block">Create compound dataset with items ranging from given start up to given stop in given steps</div>
+</td>
+</tr>
+<tr id="i31" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-int-double-double-double-int-">createRange</a></span>(int&nbsp;itemSize,
+           double&nbsp;start,
+           double&nbsp;stop,
+           double&nbsp;step,
+           int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-java.lang.Class-double-double-double-"><code>createRange(Class, double, double, double)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i32" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-int-double-int-">createRange</a></span>(int&nbsp;itemSize,
+           double&nbsp;stop,
+           int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-java.lang.Class-double-double-double-"><code>createRange(Class, double, double, double)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i33" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#ones-java.lang.Class-int...-">ones</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i34" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#ones-org.eclipse.january.dataset.Dataset-java.lang.Class-">ones</a></span>(<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/8/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 id="i35" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#ones-org.eclipse.january.dataset.Dataset-int-">ones</a></span>(<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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#ones-org.eclipse.january.dataset.Dataset-java.lang.Class-"><code>ones(Dataset, Class)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i36" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#ones-int...-">ones</a></span>(int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#ones-int:A-int-">ones</a></span>(int[]&nbsp;shape,
+    int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#ones-java.lang.Class-int...-"><code>ones(Class, int...)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i38" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#ones-int-java.lang.Class-int...-">ones</a></span>(int&nbsp;itemSize,
+    <a href="https://docs.oracle.com/javase/8/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 id="i39" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#ones-int-int:A-int-">ones</a></span>(int&nbsp;itemSize,
+    int[]&nbsp;shape,
+    int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#ones-java.lang.Class-int...-"><code>ones(Class, int...)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i40" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#ones-T-">ones</a></span>(T&nbsp;dataset)</code>&nbsp;</td>
+</tr>
+<tr id="i41" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros-java.lang.Class-int...-">zeros</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i42" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros-org.eclipse.january.dataset.Dataset-java.lang.Class-">zeros</a></span>(<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/8/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 id="i43" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros-org.eclipse.january.dataset.Dataset-int-">zeros</a></span>(<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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros-org.eclipse.january.dataset.Dataset-java.lang.Class-"><code>zeros(Dataset, Class)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i44" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros-int...-">zeros</a></span>(int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr id="i45" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros-int:A-int-">zeros</a></span>(int[]&nbsp;shape,
+     int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros-java.lang.Class-int...-"><code>zeros(Class, int...)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i46" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros-int-java.lang.Class-int...-">zeros</a></span>(int&nbsp;itemSize,
+     <a href="https://docs.oracle.com/javase/8/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 id="i47" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros-int-int:A-int-">zeros</a></span>(int&nbsp;itemSize,
+     int[]&nbsp;shape,
+     int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros-int-java.lang.Class-int...-"><code>zeros(int, Class, int...)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i48" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros-T-">zeros</a></span>(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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DatasetFactory--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DatasetFactory</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.19">DatasetFactory</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="createRange-double-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createRange</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.26">createRange</a>(double&nbsp;stop)</pre>
+<div class="block">Create dataset with items ranging from 0 up to given stop in steps of 1</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>stop</code> - stop value is <strong>not</strong> included</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new double dataset of given shape and type, filled with values determined by parameters</dd>
+</dl>
+</li>
+</ul>
+<a name="createRange-double-double-double-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createRange</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.38">createRange</a>(double&nbsp;start,
+                                        double&nbsp;stop,
+                                        double&nbsp;step)</pre>
+<div class="block">Create dataset with items ranging from given start up to given stop in given steps</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>start</code> - </dd>
+<dd><code>stop</code> - stop value is <strong>not</strong> included</dd>
+<dd><code>step</code> - spacing between items</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new 1D dataset of given type, filled with values determined by parameters</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a name="createRange-double-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createRange</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.52">createRange</a>(double&nbsp;stop,
+                                              int&nbsp;dtype)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-java.lang.Class-double-"><code>createRange(Class, double)</code></a></span></div>
+<div class="block">Create dataset with items ranging from 0 up to given stop in steps of 1</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>stop</code> - stop value is <strong>not</strong> included</dd>
+<dd><code>dtype</code> - </dd>
+<dt><span class="returnLabel">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/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.68">createRange</a>(double&nbsp;start,
+                                              double&nbsp;stop,
+                                              double&nbsp;step,
+                                              int&nbsp;dtype)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-java.lang.Class-double-double-double-"><code>createRange(Class, double, double, double)</code></a></span></div>
+<div class="block">Create dataset with items ranging from given start up to given stop in given steps</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>start</code> - </dd>
+<dd><code>stop</code> - stop value is <strong>not</strong> included</dd>
+<dd><code>step</code> - spacing between items</dd>
+<dd><code>dtype</code> - </dd>
+<dt><span class="returnLabel">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/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.107">createRange</a>(int&nbsp;itemSize,
+                                                      double&nbsp;stop,
+                                                      int&nbsp;dtype)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-java.lang.Class-double-double-double-"><code>createRange(Class, double, double, double)</code></a></span></div>
+<div class="block">Create compound dataset with items of given size ranging from 0 up to given stop in steps of 1</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>itemSize</code> - </dd>
+<dd><code>stop</code> - stop value is <strong>not</strong> included</dd>
+<dd><code>dtype</code> - </dd>
+<dt><span class="returnLabel">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/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.124">createRange</a>(int&nbsp;itemSize,
+                                                      double&nbsp;start,
+                                                      double&nbsp;stop,
+                                                      double&nbsp;step,
+                                                      int&nbsp;dtype)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-java.lang.Class-double-double-double-"><code>createRange(Class, double, double, double)</code></a></span></div>
+<div class="block">Create compound dataset with items of given size ranging from given start up to given stop in given steps</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>itemSize</code> - </dd>
+<dd><code>start</code> - </dd>
+<dd><code>stop</code> - stop value is <strong>not</strong> included</dd>
+<dd><code>step</code> - spacing between items</dd>
+<dd><code>dtype</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new 1D dataset of given type, filled with values determined by parameters</dd>
+</dl>
+</li>
+</ul>
+<a name="createFromObject-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFromObject</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.174">createFromObject</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>obj</code> - can be Java list, array or Number</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="createFromObject-java.lang.Object-int...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFromObject</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.186">createFromObject</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="createFromObject-boolean-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFromObject</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.210">createFromObject</a>(boolean&nbsp;isUnsigned,
+                                       <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>isUnsigned</code> - if true, interpret integer values as unsigned by increasing element bit width if required</dd>
+<dd><code>obj</code> - can be a Java list, array or Number</dd>
+<dt><span class="returnLabel">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/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.230">createFromObject</a>(int&nbsp;dtype,
+                                                   <a href="https://docs.oracle.com/javase/8/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="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject-java.lang.Class-java.lang.Object-int...-"><code>createFromObject(Class, Object, int...)</code></a></span></div>
+<div class="block">Create a dataset from object</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>dtype</code> - </dd>
+<dd><code>obj</code> - can be a Java list, array or Number</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.247">createFromObject</a>(int&nbsp;dtype,
+                                                   <a href="https://docs.oracle.com/javase/8/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="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject-java.lang.Class-java.lang.Object-int...-"><code>createFromObject(Class, Object, int...)</code></a></span></div>
+<div class="block">Create a dataset from object</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>dataset</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.265">createFromObject</a>(int&nbsp;itemSize,
+                                                   int&nbsp;dtype,
+                                                   <a href="https://docs.oracle.com/javase/8/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="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject-int-java.lang.Class-java.lang.Object-int...-"><code>createFromObject(int, Class, Object, int...)</code></a></span></div>
+<div class="block">Create a dataset from object</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>dataset</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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.392">createFromList</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>objectList</code> - </dd>
+<dt><span class="returnLabel">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/8/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.427">createFromList</a>(int&nbsp;dtype,
+                                                 <a href="https://docs.oracle.com/javase/8/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="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromList-java.lang.Class-java.util.List-"><code>createFromList(Class, List)</code></a></span></div>
+<div class="block">Create dataset of given type from list</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>dtype</code> - </dd>
+<dd><code>objectList</code> - </dd>
+<dt><span class="returnLabel">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.443">createCompoundDataset</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>objects</code> - </dd>
+<dt><span class="returnLabel">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/8/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.462">createCompoundDataset</a>(int&nbsp;dtype,
+                                                                <a href="https://docs.oracle.com/javase/8/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="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createCompoundDataset-java.lang.Class-java.lang.Object...-"><code>createCompoundDataset(Class, Object...)</code></a></span></div>
+<div class="block">Create compound dataset of given type from given parts</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>dtype</code> - </dd>
+<dd><code>objects</code> - </dd>
+<dt><span class="returnLabel">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/8/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.482">createComplexDataset</a>(int&nbsp;dtype,
+                                                               <a href="https://docs.oracle.com/javase/8/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/8/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="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createComplexDataset-java.lang.Class-java.lang.Object-java.lang.Object-"><code>createComplexDataset(Class, Object, Object)</code></a></span></div>
+<div class="block">Create complex dataset of given type from real and imaginary parts</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>dtype</code> - </dd>
+<dd><code>real</code> - </dd>
+<dd><code>imag</code> - </dd>
+<dt><span class="returnLabel">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.497">zeros</a>(int...&nbsp;shape)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new double dataset of given shape, filled with zeros</dd>
+</dl>
+</li>
+</ul>
+<a name="zeros-int:A-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>zeros</h4>
+<pre><a href="https://docs.oracle.com/javase/8/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.510">zeros</a>(int[]&nbsp;shape,
+                                        int&nbsp;dtype)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros-java.lang.Class-int...-"><code>zeros(Class, int...)</code></a></span></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - </dd>
+<dd><code>dtype</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new dataset of given shape and type, filled with zeros</dd>
+</dl>
+</li>
+</ul>
+<a name="zeros-int-int:A-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>zeros</h4>
+<pre><a href="https://docs.oracle.com/javase/8/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.559">zeros</a>(int&nbsp;itemSize,
+                                        int[]&nbsp;shape,
+                                        int&nbsp;dtype)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros-int-java.lang.Class-int...-"><code>zeros(int, Class, int...)</code></a></span></div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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:A-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>compoundZeros</h4>
+<pre><a href="https://docs.oracle.com/javase/8/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.577">compoundZeros</a>(int&nbsp;itemSize,
+                                                        int[]&nbsp;shape,
+                                                        int&nbsp;dtype)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#compoundZeros-int-java.lang.Class-int...-"><code>compoundZeros(int, Class, int...)</code></a></span></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>itemSize</code> - </dd>
+<dd><code>shape</code> - </dd>
+<dd><code>dtype</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new dataset of given item size, shape and type, filled with zeros</dd>
+<dt><span class="simpleTagLabel">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.621">zeros</a>(T&nbsp;dataset)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>dataset</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new dataset of same shape and class 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/8/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.638">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="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros-org.eclipse.january.dataset.Dataset-java.lang.Class-"><code>zeros(Dataset, Class)</code></a></span></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="paramLabel">Parameters:</span></dt>
+<dd><code>dataset</code> - </dd>
+<dd><code>dtype</code> - </dd>
+<dt><span class="returnLabel">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.650">ones</a>(T&nbsp;dataset)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>dataset</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new dataset of same shape and class 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/8/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.665">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="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#ones-org.eclipse.january.dataset.Dataset-java.lang.Class-"><code>ones(Dataset, Class)</code></a></span></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="paramLabel">Parameters:</span></dt>
+<dd><code>dataset</code> - </dd>
+<dd><code>dtype</code> - </dd>
+<dt><span class="returnLabel">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.676">ones</a>(int...&nbsp;shape)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new double dataset of given shape, filled with ones</dd>
+</dl>
+</li>
+</ul>
+<a name="ones-int:A-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ones</h4>
+<pre><a href="https://docs.oracle.com/javase/8/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.689">ones</a>(int[]&nbsp;shape,
+                                       int&nbsp;dtype)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#ones-java.lang.Class-int...-"><code>ones(Class, int...)</code></a></span></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - </dd>
+<dd><code>dtype</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new dataset of given shape and type, filled with ones</dd>
+</dl>
+</li>
+</ul>
+<a name="ones-int-int:A-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ones</h4>
+<pre><a href="https://docs.oracle.com/javase/8/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.726">ones</a>(int&nbsp;itemSize,
+                                       int[]&nbsp;shape,
+                                       int&nbsp;dtype)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#ones-java.lang.Class-int...-"><code>ones(Class, int...)</code></a></span></div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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/8/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.781">createLinearSpace</a>(double&nbsp;start,
+                                                    double&nbsp;stop,
+                                                    int&nbsp;length,
+                                                    int&nbsp;dtype)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createLinearSpace-java.lang.Class-double-double-int-"><code>createLinearSpace(Class, double, double, int)</code></a></span></div>
+<div class="block">Create a 1D dataset of linearly spaced values in closed interval</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>start</code> - </dd>
+<dd><code>stop</code> - stop value is included</dd>
+<dd><code>length</code> - number of points</dd>
+<dd><code>dtype</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset with linearly spaced values</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.794">createLinearSpace</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset class</dd>
+<dd><code>start</code> - </dd>
+<dd><code>stop</code> - stop value is included</dd>
+<dd><code>length</code> - number of points</dd>
+<dt><span class="returnLabel">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/8/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.830">createLogSpace</a>(double&nbsp;start,
+                                                 double&nbsp;stop,
+                                                 int&nbsp;length,
+                                                 double&nbsp;base,
+                                                 int&nbsp;dtype)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createLogSpace-java.lang.Class-double-double-int-double-"><code>createLogSpace(Class, double, double, int, double)</code></a></span></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="paramLabel">Parameters:</span></dt>
+<dd><code>start</code> - </dd>
+<dd><code>stop</code> - stop value is included</dd>
+<dd><code>length</code> - number of points</dd>
+<dd><code>base</code> - </dd>
+<dd><code>dtype</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset with logarithmically spaced values</dd>
+</dl>
+</li>
+</ul>
+<a name="createLogSpace-java.lang.Class-double-double-int-double-">
+<!--   -->
+</a>
+<ul class="blockList">
+<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.846">createLogSpace</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset class</dd>
+<dd><code>start</code> - </dd>
+<dd><code>stop</code> - stop value is included</dd>
+<dd><code>length</code> - number of points</dd>
+<dd><code>base</code> - </dd>
+<dt><span class="returnLabel">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.872">createRange</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                                double&nbsp;stop)</pre>
+<div class="block">Create dataset with items ranging from 0 up to given stop in steps of 1</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset class</dd>
+<dd><code>stop</code> - stop value is <strong>not</strong> included</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new dataset of given shape and class, 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.885">createRange</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                                double&nbsp;start,
+                                                double&nbsp;stop,
+                                                double&nbsp;step)</pre>
+<div class="block">Create dataset with items ranging from given start up to given stop in given steps</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset class</dd>
+<dd><code>start</code> - </dd>
+<dd><code>stop</code> - stop value is <strong>not</strong> included</dd>
+<dd><code>step</code> - spacing between items</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new 1D dataset of given class, filled with values determined by parameters</dd>
+</dl>
+</li>
+</ul>
+<a name="createRange-int-java.lang.Class-double-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createRange</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.898">createRange</a>(int&nbsp;itemSize,
+                                                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                                        double&nbsp;stop)</pre>
+<div class="block">Create compound dataset with items ranging from 0 up to given stop in steps of 1</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>itemSize</code> - </dd>
+<dd><code>clazz</code> - compound dataset class</dd>
+<dd><code>stop</code> - stop value is <strong>not</strong> included</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new 1D dataset of given class, filled with values determined by parameters</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a name="createRange-int-java.lang.Class-double-double-double-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createRange</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.913">createRange</a>(int&nbsp;itemSize,
+                                                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                                        double&nbsp;start,
+                                                        double&nbsp;stop,
+                                                        double&nbsp;step)</pre>
+<div class="block">Create compound dataset with items ranging from given start up to given stop in given steps</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>itemSize</code> - </dd>
+<dd><code>clazz</code> - compound dataset class</dd>
+<dd><code>start</code> - </dd>
+<dd><code>stop</code> - stop value is <strong>not</strong> included</dd>
+<dd><code>step</code> - spacing between items</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new 1D dataset of given class, filled with values determined by parameters</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a name="createFromObject-java.lang.Class-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFromObject</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.927">createFromObject</a>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block">Create a dataset from object</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset class</dd>
+<dd><code>obj</code> - can be a Java list, array or Number</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if dataset class is not known</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a name="createFromObject-java.lang.Class-java.lang.Object-int...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFromObject</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.941">createFromObject</a>(<a href="https://docs.oracle.com/javase/8/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/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>dataset</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.955">createFromObject</a>(int&nbsp;itemSize,
+                                                     <a href="https://docs.oracle.com/javase/8/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/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>dataset</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.967">createFromList</a>(<a href="https://docs.oracle.com/javase/8/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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset class</dd>
+<dd><code>objectList</code> - </dd>
+<dt><span class="returnLabel">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.979">createCompoundDataset</a>(<a href="https://docs.oracle.com/javase/8/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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset class</dd>
+<dd><code>objects</code> - </dd>
+<dt><span class="returnLabel">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.992">createComplexDataset</a>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset class</dd>
+<dd><code>real</code> - </dd>
+<dd><code>imag</code> - </dd>
+<dt><span class="returnLabel">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.1002">zeros</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset class</dd>
+<dd><code>shape</code> - </dd>
+<dt><span class="returnLabel">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.1014">zeros</a>(int&nbsp;itemSize,
+                                          <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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.1024">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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>dataset</code> - </dd>
+<dd><code>clazz</code> - dataset class</dd>
+<dt><span class="returnLabel">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.1036">compoundZeros</a>(int&nbsp;itemSize,
+                                                          <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>itemSize</code> - </dd>
+<dd><code>clazz</code> - compound dataset class</dd>
+<dd><code>shape</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new compound dataset of given item size, shape and class, filled with zeros</dd>
+<dt><span class="simpleTagLabel">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.1046">ones</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset class</dd>
+<dd><code>shape</code> - </dd>
+<dt><span class="returnLabel">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.1058">ones</a>(int&nbsp;itemSize,
+                                         <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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="blockListLast">
+<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.1068">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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>dataset</code> - </dd>
+<dd><code>clazz</code> - dataset class</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new dataset of given class with same shape as input dataset, filled with ones</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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/DatasetUtils.html b/apidocs/2.3.0/org/eclipse/january/dataset/DatasetUtils.html
new file mode 100644
index 0000000..a0a1218
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/DatasetUtils.html
@@ -0,0 +1,2312 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:15 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DatasetUtils (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DatasetUtils (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":41,"i6":41,"i7":41,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":41,"i17":9,"i18":9,"i19":9,"i20":41,"i21":9,"i22":9,"i23":9,"i24":9,"i25":9,"i26":9,"i27":9,"i28":9,"i29":9,"i30":41,"i31":9,"i32":9,"i33":9,"i34":9,"i35":9,"i36":9,"i37":9,"i38":9,"i39":9,"i40":9,"i41":9,"i42":9,"i43":9,"i44":9,"i45":9,"i46":9,"i47":9,"i48":9,"i49":9,"i50":9,"i51":9,"i52":9,"i53":9,"i54":9,"i55":9,"i56":9,"i57":9,"i58":9,"i59":9,"i60":9,"i61":9,"i62":9,"i63":9,"i64":9,"i65":9,"i66":9,"i67":9,"i68":9,"i69":9,"i70":9,"i71":9,"i72":9,"i73":9,"i74":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.DatasetUtils</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.31">DatasetUtils</a>
+extends <a href="https://docs.oracle.com/javase/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#utilsLogger">utilsLogger</a></span></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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#DatasetUtils--">DatasetUtils</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#append-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.IDataset-int-">append</a></span>(<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 id="i1" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#calcIndexesFromPositions-java.util.List-int:A-int...-">calcIndexesFromPositions</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#calcPositionsFromIndexes-org.eclipse.january.dataset.Dataset-int:A-">calcPositionsFromIndexes</a></span>(<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 id="i3" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-java.lang.Class-org.eclipse.january.dataset.Dataset...-">cast</a></span>(<a href="https://docs.oracle.com/javase/8/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,
+    <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;a)</code>
+<div class="block">Cast array of datasets to a compound dataset</div>
+</td>
+</tr>
+<tr id="i4" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-java.lang.Class-org.eclipse.january.dataset.IDataset-">cast</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i5" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-org.eclipse.january.dataset.Dataset:A-int-">cast</a></span>(<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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-java.lang.Class-org.eclipse.january.dataset.Dataset...-"><code>cast(Class, Dataset...)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-org.eclipse.january.dataset.IDataset-boolean-int-int-">cast</a></span>(<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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-java.lang.Class-org.eclipse.january.dataset.IDataset-"><code>cast(Class, IDataset)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-org.eclipse.january.dataset.IDataset-int-">cast</a></span>(<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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-java.lang.Class-org.eclipse.january.dataset.IDataset-"><code>cast(Class, IDataset)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i8" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-int-java.lang.Class-org.eclipse.january.dataset.IDataset-boolean-">cast</a></span>(int&nbsp;isize,
+    <a href="https://docs.oracle.com/javase/8/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,
+    boolean&nbsp;repeat)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>static double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#centroid-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset...-">centroid</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 id="i10" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#choose-org.eclipse.january.dataset.IntegerDataset-java.lang.Object:A-boolean-boolean-">choose</a></span>(<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/8/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 id="i11" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#coerce-org.eclipse.january.dataset.Dataset-java.lang.Object-">coerce</a></span>(<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/8/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 id="i12" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#compoundCast-java.lang.Class-org.eclipse.january.dataset.Dataset...-">compoundCast</a></span>(<a href="https://docs.oracle.com/javase/8/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;a)</code>
+<div class="block">Cast array of datasets to a compound dataset</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#concatenate-org.eclipse.january.dataset.IDataset:A-int-">concatenate</a></span>(<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 id="i14" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#convertToDataset-org.eclipse.january.dataset.IDataset-">convertToDataset</a></span>(<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 id="i15" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#copy-java.lang.Class-org.eclipse.january.dataset.IDataset-">copy</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i16" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#copy-org.eclipse.january.dataset.IDataset-int-">copy</a></span>(<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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#copy-java.lang.Class-org.eclipse.january.dataset.IDataset-"><code>copy(Class, IDataset)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i17" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset-java.lang.Class-org.eclipse.january.dataset.Dataset...-">createCompoundDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i18" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset-org.eclipse.january.dataset.Dataset...-">createCompoundDataset</a></span>(<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 id="i19" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset-org.eclipse.january.dataset.Dataset-int-">createCompoundDataset</a></span>(<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 id="i20" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset-int-org.eclipse.january.dataset.Dataset...-">createCompoundDataset</a></span>(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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset-java.lang.Class-org.eclipse.january.dataset.Dataset...-"><code>createCompoundDataset(Class, Dataset...)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i21" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDatasetFromLastAxis-org.eclipse.january.dataset.Dataset-boolean-">createCompoundDatasetFromLastAxis</a></span>(<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 id="i22" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#createDatasetFromCompoundDataset-org.eclipse.january.dataset.CompoundDataset-boolean-">createDatasetFromCompoundDataset</a></span>(<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 id="i23" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#createJavaArray-org.eclipse.january.dataset.Dataset-">createJavaArray</a></span>(<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 id="i24" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#crossings-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-double-">crossings</a></span>(<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 id="i25" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#crossings-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-double-double-">crossings</a></span>(<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 id="i26" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#crossings-org.eclipse.january.dataset.Dataset-double-">crossings</a></span>(<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 id="i27" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#diag-T-int-">diag</a></span>(T&nbsp;a,
+    int&nbsp;offset)</code>
+<div class="block">Create a (off-)diagonal matrix from items in dataset</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#extract-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.IDataset-">extract</a></span>(<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 id="i29" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#eye-java.lang.Class-int-int-int-">eye</a></span>(<a href="https://docs.oracle.com/javase/8/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;rows,
+   int&nbsp;cols,
+   int&nbsp;offset)</code>&nbsp;</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#eye-int-int-int-int-">eye</a></span>(int&nbsp;rows,
+   int&nbsp;cols,
+   int&nbsp;offset,
+   int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#eye-java.lang.Class-int-int-int-"><code>eye(Class, int, int, int)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i31" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#findFirstOccurrences-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">findFirstOccurrences</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 id="i32" class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#findIndexEqualTo-org.eclipse.january.dataset.Dataset-double-">findIndexEqualTo</a></span>(<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 id="i33" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#findIndexesForValues-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">findIndexesForValues</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 id="i34" class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#findIndexGreaterThan-org.eclipse.january.dataset.Dataset-double-">findIndexGreaterThan</a></span>(<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 id="i35" class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#findIndexGreaterThanOrEqualTo-org.eclipse.january.dataset.Dataset-double-">findIndexGreaterThanOrEqualTo</a></span>(<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 id="i36" class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#findIndexLessThan-org.eclipse.january.dataset.Dataset-double-">findIndexLessThan</a></span>(<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 id="i37" class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#findIndexLessThanOrEqualTo-org.eclipse.january.dataset.Dataset-double-">findIndexLessThanOrEqualTo</a></span>(<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 id="i38" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#flipLeftRight-T-">flipLeftRight</a></span>(T&nbsp;a)</code>
+<div class="block">Flip items in left/right direction, column-wise, or along second axis</div>
+</td>
+</tr>
+<tr id="i39" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#flipUpDown-T-">flipUpDown</a></span>(T&nbsp;a)</code>
+<div class="block">Flip items in up/down direction, row-wise, or along first axis</div>
+</td>
+</tr>
+<tr id="i40" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#indexSort-org.eclipse.january.dataset.Dataset-java.lang.Integer-">indexSort</a></span>(<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/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>
+<div class="block">Indirectly sort along given axis</div>
+</td>
+</tr>
+<tr id="i41" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#indices-int...-">indices</a></span>(int...&nbsp;shape)</code>
+<div class="block">Generate an index dataset for given dataset where sub-datasets contain index values</div>
+</td>
+</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#lnnorm-org.eclipse.january.dataset.Dataset-">lnnorm</a></span>(<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 id="i43" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#lognorm-org.eclipse.january.dataset.Dataset-">lognorm</a></span>(<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 id="i44" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#makeFinite-org.eclipse.january.dataset.Dataset-">makeFinite</a></span>(<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 id="i45" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#makeUnsigned-org.eclipse.january.dataset.IDataset-">makeUnsigned</a></span>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a)</code>
+<div class="block">Make a dataset unsigned by promoting it to a wider dataset type and unwrapping the signs
+ of its contents</div>
+</td>
+</tr>
+<tr id="i46" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#makeUnsigned-org.eclipse.january.dataset.IDataset-boolean-">makeUnsigned</a></span>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+            boolean&nbsp;check)</code>
+<div class="block">Make a dataset unsigned by promoting it to a wider dataset type and unwrapping the signs
+ of its contents</div>
+</td>
+</tr>
+<tr id="i47" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#meshGrid-org.eclipse.january.dataset.Dataset...-">meshGrid</a></span>(<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 id="i48" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#norm-org.eclipse.january.dataset.CompoundDataset-boolean-">norm</a></span>(<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 id="i49" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#norm-org.eclipse.january.dataset.Dataset-">norm</a></span>(<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 id="i50" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#put-T-org.eclipse.january.dataset.Dataset-java.lang.Object-">put</a></span>(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/8/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 id="i51" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#put-T-int:A-java.lang.Object-">put</a></span>(T&nbsp;a,
+   int[]&nbsp;indices,
+   <a href="https://docs.oracle.com/javase/8/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 id="i52" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#removeNansAndInfinities-org.eclipse.january.dataset.Dataset-java.lang.Number-">removeNansAndInfinities</a></span>(<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/8/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 id="i53" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#repeat-T-int:A-int-">repeat</a></span>(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 id="i54" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#resize-T-int...-">resize</a></span>(T&nbsp;a,
+      int...&nbsp;shape)</code>
+<div class="block">Resize a dataset</div>
+</td>
+</tr>
+<tr id="i55" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#roll-T-int-java.lang.Integer-">roll</a></span>(T&nbsp;a,
+    int&nbsp;shift,
+    <a href="https://docs.oracle.com/javase/8/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 id="i56" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#rollAxis-T-int-int-">rollAxis</a></span>(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 id="i57" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#rotate90-T-">rotate90</a></span>(T&nbsp;a)</code>
+<div class="block">Rotate items in first two dimension by 90 degrees anti-clockwise</div>
+</td>
+</tr>
+<tr id="i58" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#rotate90-T-int-">rotate90</a></span>(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 id="i59" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#select-org.eclipse.january.dataset.BooleanDataset:A-java.lang.Object:A-java.lang.Object-">select</a></span>(<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/8/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/8/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 id="i60" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#select-org.eclipse.january.dataset.BooleanDataset-java.lang.Object-java.lang.Object-">select</a></span>(<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/8/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/8/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 id="i61" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#serializeDataset-org.eclipse.january.dataset.IDataset-">serializeDataset</a></span>(<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 id="i62" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#setShapeToOriginalRank-org.eclipse.january.dataset.ILazyDataset-int:A-int...-">setShapeToOriginalRank</a></span>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;a,
+                      int[]&nbsp;originalShape,
+                      int...&nbsp;axes)</code>
+<div class="block">Set shape to keep original rank</div>
+</td>
+</tr>
+<tr id="i63" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#sliceAndConvertLazyDataset-org.eclipse.january.dataset.ILazyDataset-">sliceAndConvertLazyDataset</a></span>(<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 id="i64" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#sort-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset...-">sort</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 id="i65" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#sort-T-">sort</a></span>(T&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr id="i66" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#sort-T-java.lang.Integer-">sort</a></span>(T&nbsp;a,
+    <a href="https://docs.oracle.com/javase/8/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 id="i67" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#split-org.eclipse.january.dataset.Dataset-int:A-int-">split</a></span>(<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 id="i68" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#split-org.eclipse.january.dataset.Dataset-int-int-boolean-">split</a></span>(<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 id="i69" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#swapAxes-org.eclipse.january.dataset.IDataset-int-int-">swapAxes</a></span>(<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 id="i70" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#take-T-org.eclipse.january.dataset.Dataset-java.lang.Integer-">take</a></span>(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/8/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 id="i71" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#take-T-int:A-java.lang.Integer-">take</a></span>(T&nbsp;a,
+    int[]&nbsp;indices,
+    <a href="https://docs.oracle.com/javase/8/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 id="i72" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#tile-org.eclipse.january.dataset.IDataset-int...-">tile</a></span>(<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 id="i73" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#transpose-org.eclipse.january.dataset.IDataset-int...-">transpose</a></span>(<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 id="i74" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#unwrapUnsigned-org.eclipse.january.dataset.Dataset-int-">unwrapUnsigned</a></span>(<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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="utilsLogger">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>utilsLogger</h4>
+<pre>protected static final transient&nbsp;org.slf4j.Logger <a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.36">utilsLogger</a></pre>
+<div class="block">Setup the logging facilities</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DatasetUtils--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DatasetUtils</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.31">DatasetUtils</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="append-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.IDataset-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>append</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.47">append</a>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+                             <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;b,
+                             int&nbsp;axis)</pre>
+<div class="block">Append copy of dataset with another dataset along n-th axis</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.92">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/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>changed dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="put-org.eclipse.january.dataset.Dataset-int:A-java.lang.Object-">
+<!--   -->
+</a><a name="put-T-int:A-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.112">put</a>(T&nbsp;a,
+                                        int[]&nbsp;indices,
+                                        <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>indices</code> - </dd>
+<dd><code>values</code> - </dd>
+<dt><span class="returnLabel">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.130">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/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>a sub-array</dd>
+</dl>
+</li>
+</ul>
+<a name="take-org.eclipse.january.dataset.Dataset-int:A-java.lang.Integer-">
+<!--   -->
+</a><a name="take-T-int:A-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.141">take</a>(T&nbsp;a,
+                                         int[]&nbsp;indices,
+                                         <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>indices</code> - </dd>
+<dd><code>axis</code> - if null, then use flattened view</dd>
+<dt><span class="returnLabel">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.195">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>reps</code> - </dd>
+<dt><span class="returnLabel">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.297">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),...) =&gt; 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="paramLabel">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="returnLabel">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.308">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>axis1</code> - </dd>
+<dd><code>axis2</code> - </dd>
+<dt><span class="returnLabel">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.316">sort</a>(T&nbsp;a)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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.325">sort</a>(T&nbsp;a,
+                                         <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>axis</code> - to sort along, if null then dataset is first flattened</dd>
+<dt><span class="returnLabel">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.335">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - dataset to be sorted</dd>
+<dd><code>b</code> - ancillary datasets</dd>
+</dl>
+</li>
+</ul>
+<a name="indexSort-org.eclipse.january.dataset.Dataset-java.lang.Integer-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>indexSort</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.379">indexSort</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block">Indirectly sort along given axis</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - dataset whose indexes will be sorted</dd>
+<dd><code>axis</code> - to sort along, if null then dataset is first flattened</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>indexes</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a name="concatenate-org.eclipse.january.dataset.IDataset:A-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.444">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="paramLabel">Parameters:</span></dt>
+<dd><code>as</code> - </dd>
+<dd><code>axis</code> - </dd>
+<dt><span class="returnLabel">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/8/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.507">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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>list of split datasets</dd>
+</dl>
+</li>
+</ul>
+<a name="split-org.eclipse.january.dataset.Dataset-int:A-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>split</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/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.529">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>indices</code> - </dd>
+<dd><code>axis</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>list of split datasets</dd>
+</dl>
+</li>
+</ul>
+<a name="repeat-org.eclipse.january.dataset.Dataset-int:A-int-">
+<!--   -->
+</a><a name="repeat-T-int:A-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.590">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>repeats</code> - </dd>
+<dd><code>axis</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="resize-org.eclipse.january.dataset.Dataset-int:A-">
+<!--   -->
+</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.683">resize</a>(T&nbsp;a,
+                                           int...&nbsp;shape)</pre>
+<div class="block">Resize a dataset</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>shape</code> - </dd>
+<dt><span class="returnLabel">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><a href="https://docs.oracle.com/javase/8/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/DatasetUtils.html#line.705">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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#copy-java.lang.Class-org.eclipse.january.dataset.IDataset-"><code>copy(Class, IDataset)</code></a></span></div>
+<div class="block">Copy and cast a dataset</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>d</code> - The dataset to be copied</dd>
+<dd><code>dtype</code> - dataset type</dd>
+<dt><span class="returnLabel">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.717">copy</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset class</dd>
+<dd><code>d</code> - The dataset to be cast.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset of given class (or same dataset if already of the right class)</dd>
+</dl>
+</li>
+</ul>
+<a name="cast-org.eclipse.january.dataset.IDataset-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cast</h4>
+<pre><a href="https://docs.oracle.com/javase/8/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/DatasetUtils.html#line.810">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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-java.lang.Class-org.eclipse.january.dataset.IDataset-"><code>cast(Class, IDataset)</code></a></span></div>
+<div class="block">Cast a dataset</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>d</code> - The dataset to be cast.</dd>
+<dd><code>dtype</code> - dataset type</dd>
+<dt><span class="returnLabel">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.821">cast</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset class</dd>
+<dd><code>d</code> - The dataset to be cast.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset of given class</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><a href="https://docs.oracle.com/javase/8/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/DatasetUtils.html#line.843">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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-java.lang.Class-org.eclipse.january.dataset.IDataset-"><code>cast(Class, IDataset)</code></a></span></div>
+<div class="block">Cast a dataset</div>
+<dl>
+<dt><span class="paramLabel">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>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset of given type</dd>
+</dl>
+</li>
+</ul>
+<a name="cast-int-java.lang.Class-org.eclipse.january.dataset.IDataset-boolean-">
+<!--   -->
+</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.858">cast</a>(int&nbsp;isize,
+                                         <a href="https://docs.oracle.com/javase/8/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,
+                                         boolean&nbsp;repeat)</pre>
+<div class="block">Cast a dataset</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset class</dd>
+<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>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.3</dd>
+</dl>
+</li>
+</ul>
+<a name="compoundCast-java.lang.Class-org.eclipse.january.dataset.Dataset...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>compoundCast</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.939">compoundCast</a>(<a href="https://docs.oracle.com/javase/8/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;a)</pre>
+<div class="block">Cast array of datasets to a compound dataset</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset class</dd>
+<dd><code>a</code> - The datasets to be cast.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset of given class</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.3</dd>
+</dl>
+</li>
+</ul>
+<a name="cast-java.lang.Class-org.eclipse.january.dataset.Dataset...-">
+<!--   -->
+</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.953">cast</a>(<a href="https://docs.oracle.com/javase/8/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,
+                                   <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;a)</pre>
+<div class="block">Cast array of datasets to a compound dataset</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset class</dd>
+<dd><code>a</code> - The datasets to be cast.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>compound dataset of given class</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.3</dd>
+</dl>
+</li>
+</ul>
+<a name="cast-org.eclipse.january.dataset.Dataset:A-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cast</h4>
+<pre><a href="https://docs.oracle.com/javase/8/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/DatasetUtils.html#line.994">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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-java.lang.Class-org.eclipse.january.dataset.Dataset...-"><code>cast(Class, Dataset...)</code></a></span></div>
+<div class="block">Cast array of datasets to a compound dataset</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - The datasets to be cast.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>compound dataset of given type</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.1004">makeUnsigned</a>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a)</pre>
+<div class="block">Make a dataset unsigned by promoting it to a wider dataset type and unwrapping the signs
+ of its contents</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>unsigned dataset or original if it is not an integer dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="makeUnsigned-org.eclipse.january.dataset.IDataset-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>makeUnsigned</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.1016">makeUnsigned</a>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+                                   boolean&nbsp;check)</pre>
+<div class="block">Make a dataset unsigned by promoting it to a wider dataset type and unwrapping the signs
+ of its contents</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>check</code> - if true, then check for negative values</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>unsigned dataset or original if it is not an integer dataset or it has been check for negative numbers</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a name="unwrapUnsigned-org.eclipse.january.dataset.Dataset-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>unwrapUnsigned</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.1061">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="paramLabel">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-java.lang.Class-int-int-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>eye</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.1188">eye</a>(<a href="https://docs.oracle.com/javase/8/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;rows,
+                                        int&nbsp;cols,
+                                        int&nbsp;offset)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset class</dd>
+<dd><code>rows</code> - </dd>
+<dd><code>cols</code> - </dd>
+<dd><code>offset</code> - </dd>
+<dd><code>dtype</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new 2d dataset of given shape and class, filled with ones on the (offset) diagonal</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.3</dd>
+</dl>
+</li>
+</ul>
+<a name="eye-int-int-int-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>eye</h4>
+<pre><a href="https://docs.oracle.com/javase/8/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/DatasetUtils.html#line.1216">eye</a>(int&nbsp;rows,
+                                      int&nbsp;cols,
+                                      int&nbsp;offset,
+                                      int&nbsp;dtype)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#eye-java.lang.Class-int-int-int-"><code>eye(Class, int, int, int)</code></a></span></div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.1240">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>offset</code> - </dd>
+<dt><span class="returnLabel">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.1296">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="paramLabel">Parameters:</span></dt>
+<dd><code>lazy</code> - can be null</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Converted dataset or null</dd>
+<dt><span class="throwsLabel">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.1310">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="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - can be null</dd>
+<dt><span class="returnLabel">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.1381">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="paramLabel">Parameters:</span></dt>
+<dd><code>datasets</code> - </dd>
+<dt><span class="returnLabel">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.1394">createCompoundDataset</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset class</dd>
+<dd><code>datasets</code> - </dd>
+<dt><span class="returnLabel">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><a href="https://docs.oracle.com/javase/8/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/DatasetUtils.html#line.1407">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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset-java.lang.Class-org.eclipse.january.dataset.Dataset...-"><code>createCompoundDataset(Class, Dataset...)</code></a></span></div>
+<div class="block">Create a compound dataset from given datasets</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>dtype</code> - </dd>
+<dd><code>datasets</code> - </dd>
+<dt><span class="returnLabel">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.1460">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="paramLabel">Parameters:</span></dt>
+<dd><code>dataset</code> - </dd>
+<dd><code>itemSize</code> - </dd>
+<dt><span class="returnLabel">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.1509">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>shareData</code> - if true, then share data</dd>
+<dt><span class="returnLabel">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.1537">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>shareData</code> - if true, then share data</dd>
+<dt><span class="returnLabel">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.1549">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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>obj</code> - </dd>
+<dt><span class="returnLabel">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.1558">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - dataset</dd>
+<dt><span class="returnLabel">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.1575">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="paramLabel">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="returnLabel">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.1606">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - dataset</dd>
+<dt><span class="returnLabel">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.1621">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - dataset</dd>
+<dt><span class="returnLabel">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/8/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.1637">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="paramLabel">Parameters:</span></dt>
+<dd><code>axes</code> - an array of 1D datasets representing axes</dd>
+<dt><span class="returnLabel">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.1683">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="returnLabel">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.1728">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="paramLabel">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="returnLabel">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/8/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/8/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.1778">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="paramLabel">Parameters:</span></dt>
+<dd><code>d</code> - </dd>
+<dd><code>value</code> - </dd>
+<dt><span class="returnLabel">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/8/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/8/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.1819">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="paramLabel">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="returnLabel">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/8/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/8/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.1849">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="paramLabel">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="returnLabel">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/8/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.1903">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - dataset</dd>
+<dt><span class="returnLabel">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.1949">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/8/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="paramLabel">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.2006">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="paramLabel">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.2066">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>n</code> - </dd>
+<dt><span class="returnLabel">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.2082">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>n</code> - </dd>
+<dt><span class="returnLabel">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.2098">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>n</code> - </dd>
+<dt><span class="returnLabel">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.2114">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>n</code> - </dd>
+<dt><span class="returnLabel">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.2130">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>n</code> - </dd>
+<dt><span class="returnLabel">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.2146">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>values</code> - sorted 1D dataset of values to find</dd>
+<dt><span class="returnLabel">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.2229">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>values</code> - sorted 1D dataset of values to find</dd>
+<dt><span class="returnLabel">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.2315">roll</a>(T&nbsp;a,
+                                         int&nbsp;shift,
+                                         <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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.2364">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="paramLabel">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="returnLabel">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.2404">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - dataset must be at least 2D</dd>
+<dt><span class="returnLabel">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.2416">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - dataset</dd>
+<dt><span class="returnLabel">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.2425">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - dataset must be at least 2D</dd>
+<dt><span class="returnLabel">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.2435">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="paramLabel">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="returnLabel">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.2471">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/8/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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>condition</code> - boolean dataset</dd>
+<dd><code>x</code> - </dd>
+<dd><code>y</code> - </dd>
+<dt><span class="returnLabel">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:A-java.lang.Object:A-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.2497">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/8/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/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="choose-org.eclipse.january.dataset.IntegerDataset-java.lang.Object:A-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.2553">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/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="calcPositionsFromIndexes-org.eclipse.january.dataset.Dataset-int:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>calcPositionsFromIndexes</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/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.2617">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="paramLabel">Parameters:</span></dt>
+<dd><code>indices</code> - </dd>
+<dd><code>shape</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>list of positions as integer datasets</dd>
+</dl>
+</li>
+</ul>
+<a name="calcIndexesFromPositions-java.util.List-int:A-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.2645">calcIndexesFromPositions</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/8/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.2705">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="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - </dd>
+<dt><span class="returnLabel">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="blockList">
+<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.2717">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="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - </dd>
+<dd><code>condition</code> - should be broadcastable to data</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>1-D dataset of values</dd>
+</dl>
+</li>
+</ul>
+<a name="setShapeToOriginalRank-org.eclipse.january.dataset.ILazyDataset-int:A-int...-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setShapeToOriginalRank</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.2769">setShapeToOriginalRank</a>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;a,
+                                          int[]&nbsp;originalShape,
+                                          int...&nbsp;axes)</pre>
+<div class="block">Set shape to keep original rank</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>originalShape</code> - </dd>
+<dd><code>axes</code> - </dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/DateDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/DateDataset.html
new file mode 100644
index 0000000..aa81fcc
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/DateDataset.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 (1.8.0_222) on Mon Sep 30 16:21:15 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DateDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DateDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DateDataset.html#getDate--">getDate</a></span>()</code>
+<div class="block">Get the first date.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DateDataset.html#getDate-int...-">getDate</a></span>(int...&nbsp;pos)</code>
+<div class="block">Get the date at given indices</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DateDataset.html#getDate-int-">getDate</a></span>(int&nbsp;i)</code>
+<div class="block">Get the date at index i.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DateDataset.html#getDate-int-int-">getDate</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get the date at index i, j.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DateDataset.html#getDateAbs-int-">getDateAbs</a></span>(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-boolean...-">argMax</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin-int-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#cast-boolean-int-int-">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#cast-int-java.lang.Class-boolean-">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:A-boolean:A-org.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:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count-int-boolean...-">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-org.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-int-">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-boolean-">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-int-">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-int-">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-int-">getError</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray-int-">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray-int-int-">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-int-">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-int-">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-int-">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-int-">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-int-">getShort</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice-int:A-int:A-int:A-">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:A-int:A-int:A-">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator-org.eclipse.january.dataset.SliceND-">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceView-int:A-int:A-int:A-">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-int-">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:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#mean-int-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#min-int-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-int-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product-int:A-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product-int-boolean...-">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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare-int-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-int-">set</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-int-">set</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes-java.lang.Object-java.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:A-boolean:A-java.lang.Object-">setItemsOnAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs-int-java.lang.Object-">setObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#sum-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#sum-int:A-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#sum-int-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#swapAxes-int-int-">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-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int-">variance</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int:A-boolean-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int-boolean-boolean...-">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-int...-">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/8/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="returnLabel">Returns:</span></dt>
+<dd>date</dd>
+<dt><span class="simpleTagLabel">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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - indices</dd>
+<dt><span class="returnLabel">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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>index</code> - </dd>
+<dt><span class="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/DateDatasetImpl.html b/apidocs/2.3.0/org/eclipse/january/dataset/DateDatasetImpl.html
new file mode 100644
index 0000000..8c8473f
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/DateDatasetImpl.html
@@ -0,0 +1,726 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:15 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DateDatasetImpl (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DateDatasetImpl (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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="seeLabel">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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#getDate--">getDate</a></span>()</code>
+<div class="block">Get the first date.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#getDate-int...-">getDate</a></span>(int...&nbsp;pos)</code>
+<div class="block">Get the date at given indices</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#getDate-int-">getDate</a></span>(int&nbsp;i)</code>
+<div class="block">Get the date at index i.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#getDate-int-int-">getDate</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get the date at index i, j.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#getDateAbs-int-">getDateAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get the date at the given absolute index.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#getDType--">getDType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#set-java.lang.Object-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#set-java.lang.Object-int...-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#set-java.lang.Object-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#set-java.lang.Object-int-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#setAbs-int-java.util.Date-">setAbs</a></span>(int&nbsp;index,
+      <a href="https://docs.oracle.com/javase/8/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 id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#setItem-java.util.Date-">setItem</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#setItem-java.util.Date-int...-">setItem</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#setItem-java.util.Date-int-">setItem</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#setItem-java.util.Date-int-int-">setItem</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i15" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#setItemDirect-int-int-java.lang.Object-">setItemDirect</a></span>(int&nbsp;dindex,
+             int&nbsp;sindex,
+             <a href="https://docs.oracle.com/javase/8/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 id="i16" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#sort-java.lang.Integer-">sort</a></span>(<a href="https://docs.oracle.com/javase/8/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-int-">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-int-">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-int-">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-int-">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-int-">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-int-">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-int-">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:A-boolean:A-org.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-org.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-int-">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#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-int-">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-int-">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-org.eclipse.january.dataset.Dataset-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#resize-int...-">resize</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setAbs-int-java.lang.String-">setAbs</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setByIndexes-java.lang.Object-java.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-int...-">setItem</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItem-java.lang.String-int-">setItem</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItem-java.lang.String-int-int-">setItem</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">setItemsOnAxes</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setObjectAbs-int-java.lang.Object-">setObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setSlice-java.lang.Object-org.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-boolean...-">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-int-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps-double-double-double-">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast-boolean-int-int-">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#cast-int-java.lang.Class-boolean-">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-int-">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-org.eclipse.january.dataset.AbstractDataset-boolean-boolean-">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.Dataset-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-int-int:A-int:A-int-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-org.eclipse.january.dataset.Dataset-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-int-int:A-int:A-int-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData-java.lang.Object-int-int:A-">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-int-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-int:A-">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-boolean-">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#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-int-">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-int-">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#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-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-int:A-int:A-int:A-">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:A-int:A-int:A-">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:A-boolean:A-">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView-int:A-int:A-int:A-">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:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max-int-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int:A-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int-boolean...-">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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer-java.io.Serializable-">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength-int-">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape-int...-">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int:A-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes-int-int-">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-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-boolean-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-boolean-boolean...-">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:A-int...-">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-boolean-">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#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#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName--">getName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors--">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata-int:A-int:A-">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors-java.io.Serializable-">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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-boolean...-">argMax</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin-int-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#cast-boolean-int-int-">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#cast-int-java.lang.Class-boolean-">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:A-boolean:A-org.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:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count-int-boolean...-">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-org.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-int-">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-boolean-">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-int-">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-int-">getDouble</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-int-">getError</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray-int-">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray-int-int-">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-int-">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-int-">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-int-">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-int-">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-int-">getShort</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice-int:A-int:A-int:A-">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:A-int:A-int:A-">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator-org.eclipse.january.dataset.SliceND-">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceView-int:A-int:A-int:A-">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-int-">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:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#mean-int-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#min-int-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-int-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product-int:A-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product-int-boolean...-">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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare-int-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes-java.lang.Object-java.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:A-boolean:A-java.lang.Object-">setItemsOnAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs-int-java.lang.Object-">setObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#sum-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#sum-int:A-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#sum-int-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#swapAxes-int-int-">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-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int-">variance</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int:A-boolean-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int-boolean-boolean...-">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="getDType--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDType</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DateDatasetImpl.html#line.50">getDType</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getDType--">getDType</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="returnLabel">Returns:</span></dt>
+<dd>type of dataset item</dd>
+</dl>
+</li>
+</ul>
+<a name="getDate--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDate</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/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.109">getDate</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/DateDataset.html#getDate--">DateDataset</a></code></span></div>
+<div class="block">Get the first date. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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/8/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.115">getDate</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/DateDataset.html#getDate-int-">DateDataset</a></code></span></div>
+<div class="block">Get the date at index i. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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/8/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.121">getDate</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/DateDataset.html#getDate-int-int-">DateDataset</a></code></span></div>
+<div class="block">Get the date at index i, j. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/DateDataset.html#getDate-int-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="returnLabel">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/8/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.127">getDate</a>(int...&nbsp;pos)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/DateDataset.html#getDate-int...-">DateDataset</a></code></span></div>
+<div class="block">Get the date at given indices</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - indices</dd>
+<dt><span class="returnLabel">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/8/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.133">getDateAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/DateDataset.html#getDateAbs-int-">DateDataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.143">setItemDirect</a>(int&nbsp;dindex,
+                          int&nbsp;sindex,
+                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.lang.Object-">AbstractDataset</a></code></span></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItemDirect-int-int-java.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.155">setAbs</a>(int&nbsp;index,
+                   <a href="https://docs.oracle.com/javase/8/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.163">setItem</a>(<a href="https://docs.oracle.com/javase/8/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="simpleTagLabel">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.167">setItem</a>(<a href="https://docs.oracle.com/javase/8/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.171">setItem</a>(<a href="https://docs.oracle.com/javase/8/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.175">setItem</a>(<a href="https://docs.oracle.com/javase/8/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.180">set</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">Set the value given by object at the first position. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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.185">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-">Dataset</a></code></span></div>
+<div class="block">Set the value given by object at given position. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-">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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#set-java.lang.Object-int-">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.190">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-int-">Dataset</a></code></span></div>
+<div class="block">Set the value given by object at given position. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-int-">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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#set-java.lang.Object-int-int-">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.195">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set-java.lang.Object-int...-">IDataset</a></code></span></div>
+<div class="block">Set the value given by object at given position</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set-java.lang.Object-int...-">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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#set-java.lang.Object-int...-">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.204">sort</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sort-java.lang.Integer-">Dataset</a></code></span></div>
+<div class="block">In-place sort of dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>axis</code> - to sort along. If null, then the flattened view is sorted</dd>
+<dt><span class="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.StringDatasetBase">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/DoubleDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/DoubleDataset.html
new file mode 100644
index 0000000..ece033e
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/DoubleDataset.html
@@ -0,0 +1,2258 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:15 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DoubleDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DoubleDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":9,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DoubleDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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="seeLabel">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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#data">data</a></span></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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#containsInfs--">containsInfs</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#containsInvalidNumbers--">containsInvalidNumbers</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#containsNans--">containsNans</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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 id="i5" class="rowColor">
+<td class="colFirst"><code>protected static double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#createArray-int-">createArray</a></span>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i7" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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 id="i9" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#get--">get</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#get-int...-">get</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#get-int-">get</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#get-int-int-">get</a></span>(int&nbsp;i,
+   int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getAbs-int-">getAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get a value from an absolute index of the internal array.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getBoolean--">getBoolean</a></span>()</code>
+<div class="block">Get first item as a boolean.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getBoolean-int...-">getBoolean</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getBoolean-int-">getBoolean</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getBoolean-int-int-">getBoolean</a></span>(int&nbsp;i,
+          int&nbsp;j)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getBufferLength--">getBufferLength</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getByte--">getByte</a></span>()</code>
+<div class="block">Get first item as a byte.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getByte-int...-">getByte</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getByte-int-">getByte</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a byte.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getByte-int-int-">getByte</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get an item from given positionj as a byte.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getData--">getData</a></span>()</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 id="i24" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getDouble--">getDouble</a></span>()</code>
+<div class="block">Get first item as a double.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getDouble-int...-">getDouble</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getDouble-int-">getDouble</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getDouble-int-int-">getDouble</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getDType--">getDType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getElementBooleanAbs-int-">getElementBooleanAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getElementDoubleAbs-int-">getElementDoubleAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getElementLongAbs-int-">getElementLongAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getFloat--">getFloat</a></span>()</code>
+<div class="block">Get first item as a float.</div>
+</td>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getFloat-int...-">getFloat</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i34" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getFloat-int-">getFloat</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr id="i35" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getFloat-int-int-">getFloat</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getInt--">getInt</a></span>()</code>
+<div class="block">Get first item as an int.</div>
+</td>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getInt-int...-">getInt</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i38" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getInt-int-">getInt</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getInt-int-int-">getInt</a></span>(int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getLong--">getLong</a></span>()</code>
+<div class="block">Get first item as a long.</div>
+</td>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getLong-int...-">getLong</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getLong-int-">getLong</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr id="i43" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getLong-int-int-">getLong</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr id="i44" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getObject--">getObject</a></span>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr id="i45" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getObject-int...-">getObject</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i46" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getObject-int-">getObject</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i47" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getObject-int-int-">getObject</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i48" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getObjectAbs-int-">getObjectAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr id="i49" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getShort--">getShort</a></span>()</code>
+<div class="block">Get first item as a short.</div>
+</td>
+</tr>
+<tr id="i50" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getShort-int...-">getShort</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i51" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getShort-int-">getShort</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr id="i52" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getShort-int-int-">getShort</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr id="i53" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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 id="i54" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getString--">getString</a></span>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr id="i55" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getString-int...-">getString</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i56" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getString-int-">getString</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i57" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getString-int-int-">getString</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i58" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getStringAbs-int-">getStringAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr id="i59" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getUniqueItems--">getUniqueItems</a></span>()</code>
+<div class="block">Get unique items</div>
+</td>
+</tr>
+<tr id="i60" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getView-boolean-">getView</a></span>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr id="i61" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i62" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i63" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i64" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#ifloor--">ifloor</a></span>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr id="i65" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i66" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i67" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i68" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i69" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#maxPos-boolean...-">maxPos</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i70" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#minPos-boolean...-">minPos</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i71" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i72" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#resize-int...-">resize</a></span>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr id="i73" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#set-java.lang.Object-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i74" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#set-java.lang.Object-int...-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i75" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#set-java.lang.Object-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i76" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#set-java.lang.Object-int-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i77" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#setAbs-int-double-">setAbs</a></span>(int&nbsp;index,
+      double&nbsp;val)</code>
+<div class="block">Set a value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i78" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i79" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i80" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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 id="i81" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#setData--">setData</a></span>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr id="i82" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#setItem-double-">setItem</a></span>(double&nbsp;value)</code>
+<div class="block">Sets the value at first point to the passed value.</div>
+</td>
+</tr>
+<tr id="i83" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#setItem-double-int...-">setItem</a></span>(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 id="i84" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#setItem-double-int-">setItem</a></span>(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 id="i85" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#setItem-double-int-int-">setItem</a></span>(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 id="i86" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#setItemDirect-int-int-java.lang.Object-">setItemDirect</a></span>(int&nbsp;dindex,
+             int&nbsp;sindex,
+             <a href="https://docs.oracle.com/javase/8/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 id="i87" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">setItemsOnAxes</a></span>(int[]&nbsp;pos,
+              boolean[]&nbsp;axes,
+              <a href="https://docs.oracle.com/javase/8/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 id="i88" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#setObjectAbs-int-java.lang.Object-">setObjectAbs</a></span>(int&nbsp;index,
+            <a href="https://docs.oracle.com/javase/8/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 id="i89" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i90" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#sort-java.lang.Integer-">sort</a></span>(<a href="https://docs.oracle.com/javase/8/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-boolean...-">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-int-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps-double-double-double-">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast-boolean-int-int-">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#cast-int-java.lang.Class-boolean-">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-int-">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-org.eclipse.january.dataset.AbstractDataset-boolean-boolean-">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.Dataset-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-int-int:A-int:A-int-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-org.eclipse.january.dataset.Dataset-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-int-int:A-int:A-int-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData-java.lang.Object-int-int:A-">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-int-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-int:A-">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-boolean-">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#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-int-">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-int-">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#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-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-int:A-int:A-int:A-">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:A-int:A-int:A-">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:A-boolean:A-">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView-int:A-int:A-int:A-">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:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max-int-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int:A-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int-boolean...-">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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer-java.io.Serializable-">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength-int-">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape-int...-">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int:A-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes-int-int-">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-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-boolean-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-boolean-boolean...-">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:A-int...-">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-boolean-">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#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#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName--">getName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors--">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata-int:A-int:A-">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors-java.io.Serializable-">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty--">setDirty</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata--">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata-org.eclipse.january.metadata.MetadataType-">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata-java.lang.Class-">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass--">getElementClass</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>
+<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/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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData--">AbstractDataset</a></code></span></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>type of dataset item</dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.158">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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/DoubleDataset.html#line.196">hashCode</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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.201">clone</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">ILazyDataset</a></code></span></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.267">fill</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">Fill dataset with given object</div>
+<dl>
+<dt><span class="returnLabel">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.282">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="returnLabel">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.287">getBufferLength</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.294">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="returnLabel">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.309">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="paramLabel">Parameters:</span></dt>
+<dd><code>index</code> - absolute index</dd>
+<dt><span class="returnLabel">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.314">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.319">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.324">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.329">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.334">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.348">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="paramLabel">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.354">setItemDirect</a>(int&nbsp;dindex,
+                             int&nbsp;sindex,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.lang.Object-">AbstractDataset</a></code></span></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.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.361">setObjectAbs</a>(int&nbsp;index,
+                         <a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs-int-java.lang.Object-">Dataset</a></code></span></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.373">get</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item in first position</dd>
+<dt><span class="simpleTagLabel">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.381">get</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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.390">get</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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.398">get</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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/8/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.403">getObject</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject--">Dataset</a></code></span></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.408">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.413">getObject</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.418">getObject</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.423">getString</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString--">Dataset</a></code></span></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.428">getString</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.433">getString</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.438">getString</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.443">getDouble</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble--">Dataset</a></code></span></div>
+<div class="block">Get first item as a double. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.448">getDouble</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a double. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.453">getDouble</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a double. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.458">getDouble</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.463">getFloat</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat--">Dataset</a></code></span></div>
+<div class="block">Get first item as a float. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.468">getFloat</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a float. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.473">getFloat</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a float. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.478">getFloat</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.483">getLong</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong--">Dataset</a></code></span></div>
+<div class="block">Get first item as a long. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.488">getLong</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a long. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.493">getLong</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a long. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.498">getLong</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.503">getInt</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt--">Dataset</a></code></span></div>
+<div class="block">Get first item as an int. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.508">getInt</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an int. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.513">getInt</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an int. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.518">getInt</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.523">getShort</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort--">Dataset</a></code></span></div>
+<div class="block">Get first item as a short. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.528">getShort</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a short. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.533">getShort</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a short. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.538">getShort</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.543">getByte</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte--">Dataset</a></code></span></div>
+<div class="block">Get first item as a byte. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.548">getByte</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a byte. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.553">getByte</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given positionj as a byte. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.558">getByte</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.563">getBoolean</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean--">Dataset</a></code></span></div>
+<div class="block">Get first item as a boolean. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.568">getBoolean</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.573">getBoolean</a>(int&nbsp;i,
+                          int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.578">getBoolean</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.588">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="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - </dd>
+<dt><span class="simpleTagLabel">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.598">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="paramLabel">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.609">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="paramLabel">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.619">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="paramLabel">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.624">set</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-">Dataset</a></code></span></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.629">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-">Dataset</a></code></span></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.634">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-int-">Dataset</a></code></span></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.639">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set-java.lang.Object-int...-">IDataset</a></code></span></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.648">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize-int...-">IDataset</a></code></span></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.672">sort</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sort-java.lang.Integer-">Dataset</a></code></span></div>
+<div class="block">In-place sort of dataset</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis</code> - to sort along. If null, then the flattened view is sorted</dd>
+<dt><span class="returnLabel">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.699">getUniqueItems</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getUniqueItems--">Dataset</a></code></span></div>
+<div class="block">Get unique items</div>
+<dl>
+<dt><span class="returnLabel">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.716">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">AbstractDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="returnLabel">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.728">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">Dataset</a></code></span></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.740">setByBoolean</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></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="paramLabel">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="returnLabel">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.768">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.795">setByIndexes</a>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.834">setSlice</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>The dataset with the sliced set to object</dd>
+</dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes-int:A-boolean:A-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.874">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl>
+<dt><span class="paramLabel">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:A-boolean:A-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.893">setItemsOnAxes</a>(int[]&nbsp;pos,
+                           boolean[]&nbsp;axes,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">Dataset</a></code></span></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.931">maxPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.949">minPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.967">containsNans</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.977">containsInfs</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.987">containsInvalidNumbers</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.998">iadd</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place addition with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1033">isubtract</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place subtraction with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1069">imultiply</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place multiplication with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1104">idivide</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place division with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1156">ifloor</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor--">Dataset</a></code></span></div>
+<div class="block">In-place floor</div>
+<dl>
+<dt><span class="returnLabel">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.1166">iremainder</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place remainder</div>
+<dl>
+<dt><span class="returnLabel">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.1210">ipower</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place raise to power of object o</div>
+<dl>
+<dt><span class="returnLabel">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.1278">residual</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">Dataset</a></code></span></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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DoubleDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/FloatDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/FloatDataset.html
new file mode 100644
index 0000000..2630aab
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/FloatDataset.html
@@ -0,0 +1,2258 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:15 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>FloatDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="FloatDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":9,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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="seeLabel">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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#data">data</a></span></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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#containsInfs--">containsInfs</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#containsInvalidNumbers--">containsInvalidNumbers</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#containsNans--">containsNans</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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 id="i5" class="rowColor">
+<td class="colFirst"><code>protected static float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#createArray-int-">createArray</a></span>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i7" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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 id="i9" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#get--">get</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#get-int...-">get</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#get-int-">get</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#get-int-int-">get</a></span>(int&nbsp;i,
+   int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getAbs-int-">getAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get a value from an absolute index of the internal array.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getBoolean--">getBoolean</a></span>()</code>
+<div class="block">Get first item as a boolean.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getBoolean-int...-">getBoolean</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getBoolean-int-">getBoolean</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getBoolean-int-int-">getBoolean</a></span>(int&nbsp;i,
+          int&nbsp;j)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getBufferLength--">getBufferLength</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getByte--">getByte</a></span>()</code>
+<div class="block">Get first item as a byte.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getByte-int...-">getByte</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getByte-int-">getByte</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a byte.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getByte-int-int-">getByte</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get an item from given positionj as a byte.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getData--">getData</a></span>()</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 id="i24" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getDouble--">getDouble</a></span>()</code>
+<div class="block">Get first item as a double.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getDouble-int...-">getDouble</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getDouble-int-">getDouble</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getDouble-int-int-">getDouble</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getDType--">getDType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getElementBooleanAbs-int-">getElementBooleanAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getElementDoubleAbs-int-">getElementDoubleAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getElementLongAbs-int-">getElementLongAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getFloat--">getFloat</a></span>()</code>
+<div class="block">Get first item as a float.</div>
+</td>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getFloat-int...-">getFloat</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i34" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getFloat-int-">getFloat</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr id="i35" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getFloat-int-int-">getFloat</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getInt--">getInt</a></span>()</code>
+<div class="block">Get first item as an int.</div>
+</td>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getInt-int...-">getInt</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i38" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getInt-int-">getInt</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getInt-int-int-">getInt</a></span>(int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getLong--">getLong</a></span>()</code>
+<div class="block">Get first item as a long.</div>
+</td>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getLong-int...-">getLong</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getLong-int-">getLong</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr id="i43" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getLong-int-int-">getLong</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr id="i44" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getObject--">getObject</a></span>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr id="i45" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getObject-int...-">getObject</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i46" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getObject-int-">getObject</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i47" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getObject-int-int-">getObject</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i48" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getObjectAbs-int-">getObjectAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr id="i49" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getShort--">getShort</a></span>()</code>
+<div class="block">Get first item as a short.</div>
+</td>
+</tr>
+<tr id="i50" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getShort-int...-">getShort</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i51" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getShort-int-">getShort</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr id="i52" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getShort-int-int-">getShort</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr id="i53" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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 id="i54" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getString--">getString</a></span>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr id="i55" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getString-int...-">getString</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i56" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getString-int-">getString</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i57" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getString-int-int-">getString</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i58" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getStringAbs-int-">getStringAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr id="i59" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getUniqueItems--">getUniqueItems</a></span>()</code>
+<div class="block">Get unique items</div>
+</td>
+</tr>
+<tr id="i60" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getView-boolean-">getView</a></span>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr id="i61" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i62" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i63" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i64" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#ifloor--">ifloor</a></span>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr id="i65" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i66" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i67" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i68" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i69" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#maxPos-boolean...-">maxPos</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i70" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#minPos-boolean...-">minPos</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i71" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i72" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#resize-int...-">resize</a></span>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr id="i73" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#set-java.lang.Object-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i74" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#set-java.lang.Object-int...-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i75" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#set-java.lang.Object-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i76" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#set-java.lang.Object-int-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i77" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#setAbs-int-float-">setAbs</a></span>(int&nbsp;index,
+      float&nbsp;val)</code>
+<div class="block">Set a value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i78" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i79" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i80" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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 id="i81" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#setData--">setData</a></span>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr id="i82" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#setItem-float-">setItem</a></span>(float&nbsp;value)</code>
+<div class="block">Sets the value at first point to the passed value.</div>
+</td>
+</tr>
+<tr id="i83" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#setItem-float-int...-">setItem</a></span>(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 id="i84" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#setItem-float-int-">setItem</a></span>(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 id="i85" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#setItem-float-int-int-">setItem</a></span>(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 id="i86" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#setItemDirect-int-int-java.lang.Object-">setItemDirect</a></span>(int&nbsp;dindex,
+             int&nbsp;sindex,
+             <a href="https://docs.oracle.com/javase/8/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 id="i87" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">setItemsOnAxes</a></span>(int[]&nbsp;pos,
+              boolean[]&nbsp;axes,
+              <a href="https://docs.oracle.com/javase/8/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 id="i88" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#setObjectAbs-int-java.lang.Object-">setObjectAbs</a></span>(int&nbsp;index,
+            <a href="https://docs.oracle.com/javase/8/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 id="i89" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i90" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#sort-java.lang.Integer-">sort</a></span>(<a href="https://docs.oracle.com/javase/8/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-boolean...-">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-int-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps-double-double-double-">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast-boolean-int-int-">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#cast-int-java.lang.Class-boolean-">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-int-">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-org.eclipse.january.dataset.AbstractDataset-boolean-boolean-">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.Dataset-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-int-int:A-int:A-int-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-org.eclipse.january.dataset.Dataset-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-int-int:A-int:A-int-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData-java.lang.Object-int-int:A-">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-int-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-int:A-">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-boolean-">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#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-int-">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-int-">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#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-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-int:A-int:A-int:A-">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:A-int:A-int:A-">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:A-boolean:A-">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView-int:A-int:A-int:A-">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:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max-int-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int:A-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int-boolean...-">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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer-java.io.Serializable-">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength-int-">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape-int...-">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int:A-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes-int-int-">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-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-boolean-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-boolean-boolean...-">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:A-int...-">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-boolean-">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#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#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName--">getName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors--">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata-int:A-int:A-">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors-java.io.Serializable-">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty--">setDirty</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata--">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata-org.eclipse.january.metadata.MetadataType-">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata-java.lang.Class-">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass--">getElementClass</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>
+<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/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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData--">AbstractDataset</a></code></span></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>type of dataset item</dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.158">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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/FloatDataset.html#line.196">hashCode</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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.201">clone</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">ILazyDataset</a></code></span></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.267">fill</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">Fill dataset with given object</div>
+<dl>
+<dt><span class="returnLabel">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.282">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="returnLabel">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.287">getBufferLength</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.294">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="returnLabel">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.309">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="paramLabel">Parameters:</span></dt>
+<dd><code>index</code> - absolute index</dd>
+<dt><span class="returnLabel">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.314">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.319">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.324">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.329">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.334">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.348">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="paramLabel">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.354">setItemDirect</a>(int&nbsp;dindex,
+                             int&nbsp;sindex,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.lang.Object-">AbstractDataset</a></code></span></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.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.361">setObjectAbs</a>(int&nbsp;index,
+                         <a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs-int-java.lang.Object-">Dataset</a></code></span></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.373">get</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item in first position</dd>
+<dt><span class="simpleTagLabel">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.381">get</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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.390">get</a>(int&nbsp;i,
+                 int&nbsp;j)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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.398">get</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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/8/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.403">getObject</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject--">Dataset</a></code></span></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.408">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.413">getObject</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.418">getObject</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.423">getString</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString--">Dataset</a></code></span></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.428">getString</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.433">getString</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.438">getString</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.443">getDouble</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble--">Dataset</a></code></span></div>
+<div class="block">Get first item as a double. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.448">getDouble</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a double. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.453">getDouble</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a double. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.458">getDouble</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.463">getFloat</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat--">Dataset</a></code></span></div>
+<div class="block">Get first item as a float. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.468">getFloat</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a float. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.473">getFloat</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a float. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.478">getFloat</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.483">getLong</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong--">Dataset</a></code></span></div>
+<div class="block">Get first item as a long. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.488">getLong</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a long. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.493">getLong</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a long. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.498">getLong</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.503">getInt</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt--">Dataset</a></code></span></div>
+<div class="block">Get first item as an int. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.508">getInt</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an int. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.513">getInt</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an int. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.518">getInt</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.523">getShort</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort--">Dataset</a></code></span></div>
+<div class="block">Get first item as a short. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.528">getShort</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a short. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.533">getShort</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a short. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.538">getShort</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.543">getByte</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte--">Dataset</a></code></span></div>
+<div class="block">Get first item as a byte. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.548">getByte</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a byte. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.553">getByte</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given positionj as a byte. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.558">getByte</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.563">getBoolean</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean--">Dataset</a></code></span></div>
+<div class="block">Get first item as a boolean. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.568">getBoolean</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.573">getBoolean</a>(int&nbsp;i,
+                          int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.578">getBoolean</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.588">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="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - </dd>
+<dt><span class="simpleTagLabel">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.598">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="paramLabel">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.609">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="paramLabel">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.619">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="paramLabel">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.624">set</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-">Dataset</a></code></span></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.629">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-">Dataset</a></code></span></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.634">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-int-">Dataset</a></code></span></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.639">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set-java.lang.Object-int...-">IDataset</a></code></span></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.648">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize-int...-">IDataset</a></code></span></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.672">sort</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sort-java.lang.Integer-">Dataset</a></code></span></div>
+<div class="block">In-place sort of dataset</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis</code> - to sort along. If null, then the flattened view is sorted</dd>
+<dt><span class="returnLabel">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.699">getUniqueItems</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getUniqueItems--">Dataset</a></code></span></div>
+<div class="block">Get unique items</div>
+<dl>
+<dt><span class="returnLabel">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.716">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">AbstractDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="returnLabel">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.728">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">Dataset</a></code></span></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.740">setByBoolean</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></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="paramLabel">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="returnLabel">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.768">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.795">setByIndexes</a>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.834">setSlice</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>The dataset with the sliced set to object</dd>
+</dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes-int:A-boolean:A-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.874">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl>
+<dt><span class="paramLabel">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:A-boolean:A-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.893">setItemsOnAxes</a>(int[]&nbsp;pos,
+                           boolean[]&nbsp;axes,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">Dataset</a></code></span></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.931">maxPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.949">minPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.967">containsNans</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.977">containsInfs</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.987">containsInvalidNumbers</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.998">iadd</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place addition with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1033">isubtract</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place subtraction with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1069">imultiply</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place multiplication with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1104">idivide</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place division with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1156">ifloor</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor--">Dataset</a></code></span></div>
+<div class="block">In-place floor</div>
+<dl>
+<dt><span class="returnLabel">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.1166">iremainder</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place remainder</div>
+<dl>
+<dt><span class="returnLabel">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.1210">ipower</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place raise to power of object o</div>
+<dl>
+<dt><span class="returnLabel">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.1278">residual</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">Dataset</a></code></span></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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/IDataListener.html b/apidocs/2.3.0/org/eclipse/january/dataset/IDataListener.html
new file mode 100644
index 0000000..3700d5d
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/IDataListener.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 (1.8.0_222) on Mon Sep 30 16:21:15 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IDataListener (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="IDataListener (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataListener.html#dataChangePerformed-org.eclipse.january.dataset.DataEvent-">dataChangePerformed</a></span>(<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="paramLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/IDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/IDataset.html
new file mode 100644
index 0000000..9d4f9df
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/IDataset.html
@@ -0,0 +1,968 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:15 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="IDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":38,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6,"i29":6,"i30":6,"i31":6,"i32":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset, making new copy of data</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#getBoolean-int...-">getBoolean</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#getByte-int...-">getByte</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#getDouble-int...-">getDouble</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#getError-int...-">getError</a></span>(int...&nbsp;pos)</code>
+<div class="block">Get the error for a given position.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#getErrorArray-int...-">getErrorArray</a></span>(int...&nbsp;pos)</code>
+<div class="block">Get the error values for a single point in the dataset</div>
+</td>
+</tr>
+<tr id="i6" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#getErrors--">getErrors</a></span>()</code>
+<div class="block">Get the errors, if any.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#getFloat-int...-">getFloat</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#getInt-int...-">getInt</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#getItemBytes--">getItemBytes</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#getLong-int...-">getLong</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i11" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata--">getMetadata</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <code>getFirstMetadata(IMetadata.class)</code> instead</span></div>
+</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#getObject-int...-">getObject</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#getShort-int...-">getShort</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i14" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSlice-int:A-int:A-int:A-">getSlice</a></span>(int[]&nbsp;start,
+        int[]&nbsp;stop,
+        int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr id="i15" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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 id="i16" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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 id="i17" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView-int:A-int:A-int:A-">getSliceView</a></span>(int[]&nbsp;start,
+            int[]&nbsp;stop,
+            int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr id="i18" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">getSliceView</a></span>(<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 id="i19" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">getSliceView</a></span>(<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 id="i20" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#getString-int...-">getString</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i21" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#getTransposedView-int...-">getTransposedView</a></span>(int...&nbsp;axes)</code>
+<div class="block">Permute copy of dataset's axes so that given order is old order:</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#max-boolean...-">max</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#maxPos-boolean...-">maxPos</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#mean-boolean...-">mean</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#min-boolean...-">min</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#minPos-boolean...-">minPos</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize-int...-">resize</a></span>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#set-java.lang.Object-int...-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i29" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#setStringFormat-java.text.Format-">setStringFormat</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i30" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeeze--">squeeze</a></span>()</code>
+<div class="block">Remove dimensions of 1 in shape of the dataset</div>
+</td>
+</tr>
+<tr id="i31" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeeze-boolean-">squeeze</a></span>(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 id="i32" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeezeEnds--">squeezeEnds</a></span>()</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-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-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></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/8/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="paramLabel">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="returnLabel">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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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/8/docs/api/java/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="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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/8/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="paramLabel">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="paramLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds--">ILazyDataset</a></code></span></div>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">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/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>Maximum value</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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="paramLabel">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="returnLabel">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/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>Minimum value</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>Position of minimum value (or first position if there are more than one)</dd>
+<dt><span class="simpleTagLabel">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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>Position of maximum value (or first position if there are more than one)</dd>
+<dt><span class="simpleTagLabel">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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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/8/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="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <code>getFirstMetadata(IMetadata.class)</code> instead</span></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>an instance of IMetadata, may be null</dd>
+</dl>
+</li>
+</ul>
+<a name="getSlice-int:A-int:A-int:A-">
+<!--   -->
+</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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-int:A-int:A-int:A-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-int:A-int:A-int:A-">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="paramLabel">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="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+</dl>
+</li>
+</ul>
+<a name="getSliceView-int:A-int:A-int:A-">
+<!--   -->
+</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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView-int:A-int:A-int:A-">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="paramLabel">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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an nD slice object</dd>
+<dt><span class="returnLabel">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),...) =&gt; 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="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>axes</code> - if zero length then axes order reversed</dd>
+<dt><span class="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getErrors--">ILazyDataset</a></code></span></div>
+<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="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>the error dataset, constructing one if necessary</dd>
+<dt><span class="simpleTagLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - of the point to be referenced</dd>
+<dt><span class="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/IDatasetChangeChecker.html b/apidocs/2.3.0/org/eclipse/january/dataset/IDatasetChangeChecker.html
new file mode 100644
index 0000000..e6184a1
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/IDatasetChangeChecker.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 (1.8.0_222) on Mon Sep 30 16:21:15 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IDatasetChangeChecker (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="IDatasetChangeChecker (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html#check--">check</a></span>()</code>
+<div class="block">Check for any change.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html#setDataset-org.eclipse.january.dataset.ILazyDataset-">setDataset</a></span>(<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="paramLabel">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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/IDatasetConnector.html b/apidocs/2.3.0/org/eclipse/january/dataset/IDatasetConnector.html
new file mode 100644
index 0000000..cf0c9c6
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/IDatasetConnector.html
@@ -0,0 +1,427 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:15 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IDatasetConnector (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="IDatasetConnector (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html#connect--">connect</a></span>()</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 id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html#connect-long-java.util.concurrent.TimeUnit-">connect</a></span>(long&nbsp;time,
+       <a href="https://docs.oracle.com/javase/8/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 id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html#disconnect--">disconnect</a></span>()</code>
+<div class="block">Stops listening to the dataset changing and disconnects from the server.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html#getDatasetName--">getDatasetName</a></span>()</code>
+<div class="block">The dataset location/name in the file</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html#isWritingExpected--">isWritingExpected</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html#setDatasetName-java.lang.String-">setDatasetName</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html#setWritingExpected-boolean-">setWritingExpected</a></span>(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-org.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/8/docs/api/java/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="returnLabel">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/8/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="paramLabel">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="paramLabel">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="returnLabel">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/8/docs/api/java/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="returnLabel">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="throwsLabel">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/8/docs/api/java/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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>time</code> - </dd>
+<dd><code>unit</code> - </dd>
+<dt><span class="returnLabel">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="throwsLabel">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="throwsLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/IDynamicDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/IDynamicDataset.html
new file mode 100644
index 0000000..652b868
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/IDynamicDataset.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 (1.8.0_222) on Mon Sep 30 16:21:15 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IDynamicDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="IDynamicDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDynamicDataset.html#UNLIMITED">UNLIMITED</a></span></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-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-int:A-int:A-int:A-">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:A-int:A-int:A-">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-org.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="seeLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/IDynamicShape.html b/apidocs/2.3.0/org/eclipse/january/dataset/IDynamicShape.html
new file mode 100644
index 0000000..712bb64
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/IDynamicShape.html
@@ -0,0 +1,449 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:15 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IDynamicShape (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="IDynamicShape (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IFileConnection.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#UNLIMITED">UNLIMITED</a></span></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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#addDataListener-org.eclipse.january.dataset.IDataListener-">addDataListener</a></span>(<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 id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#fireDataListeners--">fireDataListeners</a></span>()</code>
+<div class="block">Alert any registered listeners</div>
+</td>
+</tr>
+<tr id="i2" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#getDataset--">getDataset</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#getMaxShape--">getMaxShape</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#refreshShape--">refreshShape</a></span>()</code>
+<div class="block">Force the shape to be re-read from file, if possible</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#removeDataListener-org.eclipse.january.dataset.IDataListener-">removeDataListener</a></span>(<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 id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#resize-int...-">resize</a></span>(int...&nbsp;newShape)</code>
+<div class="block">Change shape</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#setMaxShape-int...-">setMaxShape</a></span>(int...&nbsp;maxShape)</code>
+<div class="block">Set maximum shape</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#startUpdateChecker-int-org.eclipse.january.dataset.IDatasetChangeChecker-">startUpdateChecker</a></span>(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="seeLabel">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="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>newShape</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if shape has changed</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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="returnLabel">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="paramLabel">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="paramLabel">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="returnLabel">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="paramLabel">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="paramLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IFileConnection.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/IFileConnection.html b/apidocs/2.3.0/org/eclipse/january/dataset/IFileConnection.html
new file mode 100644
index 0000000..b5cc980
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/IFileConnection.html
@@ -0,0 +1,257 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:15 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IFileConnection (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="IFileConnection (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IFileConnection.html#getPath--">getPath</a></span>()</code>
+<div class="block">DataServer path, a local path on the server used to locate the remote dataset.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IFileConnection.html#setPath-java.lang.String-">setPath</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/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="returnLabel">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/8/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="paramLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/ILazyDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/ILazyDataset.html
new file mode 100644
index 0000000..ef04db6
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/ILazyDataset.html
@@ -0,0 +1,796 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:15 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ILazyDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ILazyDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata-org.eclipse.january.metadata.MetadataType-">addMetadata</a></span>(<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 id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata-java.lang.Class-">clearMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i2" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass--">getElementClass</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementsPerItem--">getElementsPerItem</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getErrors--">getErrors</a></span>()</code>
+<div class="block">Get the errors, if any.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getRank--">getRank</a></span>()</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 id="i7" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape--">getShape</a></span>()</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 id="i8" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize--">getSize</a></span>()</code>
+<div class="block">The size of the dataset is the number of items in the array</div>
+</td>
+</tr>
+<tr id="i9" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a></span>(<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 id="i10" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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 id="i11" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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 id="i12" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-int:A-int:A-int:A-">getSlice</a></span>(int[]&nbsp;start,
+        int[]&nbsp;stop,
+        int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr id="i13" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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 id="i14" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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 id="i15" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView-int:A-int:A-int:A-">getSliceView</a></span>(int[]&nbsp;start,
+            int[]&nbsp;stop,
+            int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr id="i16" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">getSliceView</a></span>(<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 id="i17" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">getSliceView</a></span>(<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 id="i18" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getTransposedView-int...-">getTransposedView</a></span>(int...&nbsp;axes)</code>
+<div class="block">Permute copy of dataset's axes so that given order is old order:</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors--">hasErrors</a></span>()</code>
+<div class="block">If error information is set, returns true.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors-java.io.Serializable-">setErrors</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i21" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a></span>(<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 id="i22" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape-int...-">setShape</a></span>(int...&nbsp;shape)</code>
+<div class="block">Set a compatible shape for dataset.</div>
+</td>
+</tr>
+<tr id="i23" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds--">squeezeEnds</a></span>()</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/8/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="returnLabel">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="returnLabel">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="returnLabel">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="returnLabel">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="paramLabel">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="returnLabel">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:A-int:A-int:A-">
+<!--   -->
+</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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+<dt><span class="throwsLabel">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:A-int:A-int:A-">
+<!--   -->
+</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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+<dt><span class="throwsLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+<dt><span class="throwsLabel">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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+<dt><span class="throwsLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+<dt><span class="throwsLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>monitor</code> - </dd>
+<dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+<dt><span class="throwsLabel">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:A-int:A-int:A-">
+<!--   -->
+</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="paramLabel">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="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="returnLabel">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),...) =&gt; 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="paramLabel">Parameters:</span></dt>
+<dd><code>axes</code> - if zero length then axes order reversed</dd>
+<dt><span class="returnLabel">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="paramLabel">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="paramLabel">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/8/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="paramLabel">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="returnLabel">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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>errors</code> - - may be null to remove the error set</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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="simpleTagLabel">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="simpleTagLabel">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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/ILazyWriteableDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/ILazyWriteableDataset.html
new file mode 100644
index 0000000..924cde0
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/ILazyWriteableDataset.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 (1.8.0_222) on Mon Sep 30 16:21:15 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ILazyWriteableDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ILazyWriteableDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#UNLIMITED">UNLIMITED</a></span></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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#getChunking--">getChunking</a></span>()</code>
+<div class="block">Get chunking</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#getFillValue--">getFillValue</a></span>()</code>
+<div class="block">Get the value used to fill an un-initialized dataset</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setChunking-int...-">setChunking</a></span>(int...&nbsp;chunks)</code>
+<div class="block">Set chunking</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setFillValue-java.lang.Object-">setFillValue</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSaver-org.eclipse.january.io.ILazySaver-">setSaver</a></span>(<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 id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-int:A-int:A-int:A-">setSlice</a></span>(<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 id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSlice</a></span>(<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 id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSliceSync-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSliceSync</a></span>(<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 id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setWritingAsync-boolean-">setWritingAsync</a></span>(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-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-int:A-int:A-int:A-">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:A-int:A-int:A-">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-org.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="seeLabel">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="returnLabel">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="paramLabel">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="paramLabel">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="paramLabel">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="throwsLabel">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:A-int:A-int:A-">
+<!--   -->
+</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="paramLabel">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="throwsLabel">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="paramLabel">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="throwsLabel">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="paramLabel">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/8/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="returnLabel">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/8/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="paramLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/IMetadataProvider.html b/apidocs/2.3.0/org/eclipse/january/dataset/IMetadataProvider.html
new file mode 100644
index 0000000..215f8e6
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/IMetadataProvider.html
@@ -0,0 +1,286 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:15 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IMetadataProvider (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="IMetadataProvider (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":38,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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;<br>S</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata-java.lang.Class-">getFirstMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i1" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata--">getMetadata</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <code>getFirstMetadata(IMetadata.class)</code> instead</span></div>
+</div>
+</td>
+</tr>
+<tr id="i2" 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;<br><a href="https://docs.oracle.com/javase/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata-java.lang.Class-">getMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <code>getFirstMetadata(IMetadata.class)</code> instead</span></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an instance of IMetadata</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - if null return everything</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>list of metadata with given class (or its super interface)</dd>
+<dt><span class="throwsLabel">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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - if null return first from everything</dd>
+<dt><span class="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/IOperation.html b/apidocs/2.3.0/org/eclipse/january/dataset/IOperation.html
new file mode 100644
index 0000000..c6aec65
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/IOperation.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 (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IOperation (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="IOperation (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IRemoteData.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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="simpleTagLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IRemoteData.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/IRemoteData.html b/apidocs/2.3.0/org/eclipse/january/dataset/IRemoteData.html
new file mode 100644
index 0000000..cccd5a7
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/IRemoteData.html
@@ -0,0 +1,280 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IRemoteData (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="IRemoteData (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IRemoteData.html#createRemoteDataset-java.lang.String-">createRemoteDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/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/8/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/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IRemoteData.html#getTree--">getTree</a></span>()</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/8/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/8/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/8/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/8/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="returnLabel">Returns:</span></dt>
+<dd>NeXus meta-data objects in most instances.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>datasetPath</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>IRemoteDataset</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/IndexIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/IndexIterator.html
new file mode 100644
index 0000000..135bdcf
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/IndexIterator.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 (1.8.0_222) on Mon Sep 30 16:21:15 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IndexIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="IndexIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":10,"i2":6,"i3":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.IndexIterator</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a>, <a href="../../../../org/eclipse/january/dataset/ContiguousIterator.html" title="class in org.eclipse.january.dataset">ContiguousIterator</a>, <a href="../../../../org/eclipse/january/dataset/ContiguousIteratorWithPosition.html" title="class in org.eclipse.january.dataset">ContiguousIteratorWithPosition</a>, <a href="../../../../org/eclipse/january/dataset/IntegerIterator.html" title="class in org.eclipse.january.dataset">IntegerIterator</a>, <a href="../../../../org/eclipse/january/dataset/IntegersIterator.html" title="class in org.eclipse.january.dataset">IntegersIterator</a>, <a href="../../../../org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">PositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset">SingleInputBroadcastIterator</a>, <a href="../../../../org/eclipse/january/dataset/SingleItemIterator.html" title="class in org.eclipse.january.dataset">SingleItemIterator</a>, <a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset">SliceNDIterator</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <a href="../../../../src-html/org/eclipse/january/dataset/IndexIterator.html#line.29">IndexIterator</a>
+extends <a href="https://docs.oracle.com/javase/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#index">index</a></span></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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#IndexIterator--">IndexIterator</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>abstract int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getPos--">getPos</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getShape--">getShape</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>abstract boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext--">hasNext</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>abstract void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset--">reset</a></span>()</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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="returnLabel">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="returnLabel">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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/IntegerDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/IntegerDataset.html
new file mode 100644
index 0000000..a65d592
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/IntegerDataset.html
@@ -0,0 +1,2258 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IntegerDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="IntegerDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":9,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IntegerIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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="seeLabel">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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#data">data</a></span></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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#containsInfs--">containsInfs</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#containsInvalidNumbers--">containsInvalidNumbers</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#containsNans--">containsNans</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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 id="i5" class="rowColor">
+<td class="colFirst"><code>protected static int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#createArray-int-">createArray</a></span>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i7" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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 id="i9" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#get--">get</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#get-int...-">get</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#get-int-">get</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#get-int-int-">get</a></span>(int&nbsp;i,
+   int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getAbs-int-">getAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get a value from an absolute index of the internal array.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getBoolean--">getBoolean</a></span>()</code>
+<div class="block">Get first item as a boolean.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getBoolean-int...-">getBoolean</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getBoolean-int-">getBoolean</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getBoolean-int-int-">getBoolean</a></span>(int&nbsp;i,
+          int&nbsp;j)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getBufferLength--">getBufferLength</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getByte--">getByte</a></span>()</code>
+<div class="block">Get first item as a byte.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getByte-int...-">getByte</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getByte-int-">getByte</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a byte.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getByte-int-int-">getByte</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get an item from given positionj as a byte.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getData--">getData</a></span>()</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 id="i24" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getDouble--">getDouble</a></span>()</code>
+<div class="block">Get first item as a double.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getDouble-int...-">getDouble</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getDouble-int-">getDouble</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getDouble-int-int-">getDouble</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getDType--">getDType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getElementBooleanAbs-int-">getElementBooleanAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getElementDoubleAbs-int-">getElementDoubleAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getElementLongAbs-int-">getElementLongAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getFloat--">getFloat</a></span>()</code>
+<div class="block">Get first item as a float.</div>
+</td>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getFloat-int...-">getFloat</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i34" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getFloat-int-">getFloat</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr id="i35" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getFloat-int-int-">getFloat</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getInt--">getInt</a></span>()</code>
+<div class="block">Get first item as an int.</div>
+</td>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getInt-int...-">getInt</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i38" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getInt-int-">getInt</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getInt-int-int-">getInt</a></span>(int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getLong--">getLong</a></span>()</code>
+<div class="block">Get first item as a long.</div>
+</td>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getLong-int...-">getLong</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getLong-int-">getLong</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr id="i43" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getLong-int-int-">getLong</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr id="i44" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getObject--">getObject</a></span>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr id="i45" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getObject-int...-">getObject</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i46" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getObject-int-">getObject</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i47" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getObject-int-int-">getObject</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i48" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getObjectAbs-int-">getObjectAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr id="i49" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getShort--">getShort</a></span>()</code>
+<div class="block">Get first item as a short.</div>
+</td>
+</tr>
+<tr id="i50" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getShort-int...-">getShort</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i51" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getShort-int-">getShort</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr id="i52" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getShort-int-int-">getShort</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr id="i53" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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 id="i54" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getString--">getString</a></span>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr id="i55" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getString-int...-">getString</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i56" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getString-int-">getString</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i57" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getString-int-int-">getString</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i58" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getStringAbs-int-">getStringAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr id="i59" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getUniqueItems--">getUniqueItems</a></span>()</code>
+<div class="block">Get unique items</div>
+</td>
+</tr>
+<tr id="i60" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getView-boolean-">getView</a></span>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr id="i61" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i62" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i63" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i64" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#ifloor--">ifloor</a></span>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr id="i65" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i66" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i67" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i68" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i69" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#maxPos-boolean...-">maxPos</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i70" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#minPos-boolean...-">minPos</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i71" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i72" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#resize-int...-">resize</a></span>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr id="i73" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#set-java.lang.Object-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i74" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#set-java.lang.Object-int...-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i75" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#set-java.lang.Object-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i76" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#set-java.lang.Object-int-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i77" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#setAbs-int-int-">setAbs</a></span>(int&nbsp;index,
+      int&nbsp;val)</code>
+<div class="block">Set a value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i78" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i79" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i80" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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 id="i81" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#setData--">setData</a></span>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr id="i82" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#setItem-int-">setItem</a></span>(int&nbsp;value)</code>
+<div class="block">Sets the value at first point to the passed value.</div>
+</td>
+</tr>
+<tr id="i83" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#setItem-int-int...-">setItem</a></span>(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 id="i84" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#setItem-int-int-">setItem</a></span>(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 id="i85" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#setItem-int-int-int-">setItem</a></span>(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 id="i86" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#setItemDirect-int-int-java.lang.Object-">setItemDirect</a></span>(int&nbsp;dindex,
+             int&nbsp;sindex,
+             <a href="https://docs.oracle.com/javase/8/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 id="i87" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">setItemsOnAxes</a></span>(int[]&nbsp;pos,
+              boolean[]&nbsp;axes,
+              <a href="https://docs.oracle.com/javase/8/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 id="i88" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#setObjectAbs-int-java.lang.Object-">setObjectAbs</a></span>(int&nbsp;index,
+            <a href="https://docs.oracle.com/javase/8/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 id="i89" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i90" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#sort-java.lang.Integer-">sort</a></span>(<a href="https://docs.oracle.com/javase/8/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-boolean...-">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-int-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps-double-double-double-">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast-boolean-int-int-">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#cast-int-java.lang.Class-boolean-">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-int-">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-org.eclipse.january.dataset.AbstractDataset-boolean-boolean-">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.Dataset-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-int-int:A-int:A-int-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-org.eclipse.january.dataset.Dataset-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-int-int:A-int:A-int-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData-java.lang.Object-int-int:A-">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-int-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-int:A-">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-boolean-">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#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-int-">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-int-">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#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-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-int:A-int:A-int:A-">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:A-int:A-int:A-">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:A-boolean:A-">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView-int:A-int:A-int:A-">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:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max-int-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int:A-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int-boolean...-">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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer-java.io.Serializable-">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength-int-">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape-int...-">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int:A-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes-int-int-">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-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-boolean-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-boolean-boolean...-">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:A-int...-">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-boolean-">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#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#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName--">getName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors--">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata-int:A-int:A-">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors-java.io.Serializable-">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty--">setDirty</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata--">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata-org.eclipse.january.metadata.MetadataType-">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata-java.lang.Class-">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass--">getElementClass</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>
+<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/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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData--">AbstractDataset</a></code></span></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>type of dataset item</dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.158">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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/IntegerDataset.html#line.196">hashCode</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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.201">clone</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">ILazyDataset</a></code></span></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.267">fill</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">Fill dataset with given object</div>
+<dl>
+<dt><span class="returnLabel">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.282">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="returnLabel">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.287">getBufferLength</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.294">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="returnLabel">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.309">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="paramLabel">Parameters:</span></dt>
+<dd><code>index</code> - absolute index</dd>
+<dt><span class="returnLabel">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.314">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.319">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.324">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.329">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.334">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.348">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="paramLabel">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.354">setItemDirect</a>(int&nbsp;dindex,
+                             int&nbsp;sindex,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.lang.Object-">AbstractDataset</a></code></span></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.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.361">setObjectAbs</a>(int&nbsp;index,
+                         <a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs-int-java.lang.Object-">Dataset</a></code></span></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.373">get</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item in first position</dd>
+<dt><span class="simpleTagLabel">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.381">get</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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.390">get</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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.398">get</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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/8/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.403">getObject</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject--">Dataset</a></code></span></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.408">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.413">getObject</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.418">getObject</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.423">getString</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString--">Dataset</a></code></span></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.428">getString</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.433">getString</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.438">getString</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.443">getDouble</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble--">Dataset</a></code></span></div>
+<div class="block">Get first item as a double. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.448">getDouble</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a double. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.453">getDouble</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a double. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.458">getDouble</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.463">getFloat</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat--">Dataset</a></code></span></div>
+<div class="block">Get first item as a float. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.468">getFloat</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a float. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.473">getFloat</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a float. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.478">getFloat</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.483">getLong</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong--">Dataset</a></code></span></div>
+<div class="block">Get first item as a long. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.488">getLong</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a long. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.493">getLong</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a long. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.498">getLong</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.503">getInt</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt--">Dataset</a></code></span></div>
+<div class="block">Get first item as an int. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.508">getInt</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an int. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.513">getInt</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an int. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.518">getInt</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.523">getShort</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort--">Dataset</a></code></span></div>
+<div class="block">Get first item as a short. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.528">getShort</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a short. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.533">getShort</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a short. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.538">getShort</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.543">getByte</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte--">Dataset</a></code></span></div>
+<div class="block">Get first item as a byte. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.548">getByte</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a byte. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.553">getByte</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given positionj as a byte. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.558">getByte</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.563">getBoolean</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean--">Dataset</a></code></span></div>
+<div class="block">Get first item as a boolean. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.568">getBoolean</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.573">getBoolean</a>(int&nbsp;i,
+                          int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.578">getBoolean</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.588">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="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - </dd>
+<dt><span class="simpleTagLabel">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.598">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="paramLabel">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.609">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="paramLabel">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.619">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="paramLabel">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.624">set</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-">Dataset</a></code></span></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.629">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-">Dataset</a></code></span></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.634">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-int-">Dataset</a></code></span></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.639">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set-java.lang.Object-int...-">IDataset</a></code></span></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.648">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize-int...-">IDataset</a></code></span></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.672">sort</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sort-java.lang.Integer-">Dataset</a></code></span></div>
+<div class="block">In-place sort of dataset</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis</code> - to sort along. If null, then the flattened view is sorted</dd>
+<dt><span class="returnLabel">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.699">getUniqueItems</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getUniqueItems--">Dataset</a></code></span></div>
+<div class="block">Get unique items</div>
+<dl>
+<dt><span class="returnLabel">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.716">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">AbstractDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="returnLabel">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.728">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">Dataset</a></code></span></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.740">setByBoolean</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></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="paramLabel">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="returnLabel">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.768">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.795">setByIndexes</a>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.834">setSlice</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>The dataset with the sliced set to object</dd>
+</dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes-int:A-boolean:A-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.874">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl>
+<dt><span class="paramLabel">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:A-boolean:A-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.893">setItemsOnAxes</a>(int[]&nbsp;pos,
+                           boolean[]&nbsp;axes,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">Dataset</a></code></span></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.924">maxPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.942">minPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.960">containsNans</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.965">containsInfs</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.970">containsInvalidNumbers</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.975">iadd</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place addition with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1010">isubtract</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place subtraction with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1046">imultiply</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place multiplication with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1081">idivide</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place division with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1133">ifloor</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor--">Dataset</a></code></span></div>
+<div class="block">In-place floor</div>
+<dl>
+<dt><span class="returnLabel">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.1138">iremainder</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place remainder</div>
+<dl>
+<dt><span class="returnLabel">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.1186">ipower</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place raise to power of object o</div>
+<dl>
+<dt><span class="returnLabel">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.1254">residual</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">Dataset</a></code></span></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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IntegerIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/IntegerIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/IntegerIterator.html
new file mode 100644
index 0000000..be7c656
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/IntegerIterator.html
@@ -0,0 +1,382 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IntegerIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="IntegerIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IntegersIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerIterator.html#IntegerIterator-org.eclipse.january.dataset.Dataset-int-">IntegerIterator</a></span>(<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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerIterator.html#IntegerIterator-org.eclipse.january.dataset.Dataset-int-int-">IntegerIterator</a></span>(<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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerIterator.html#getPos--">getPos</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerIterator.html#hasNext--">hasNext</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegerIterator.html#reset--">reset</a></span>()</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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="paramLabel">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="paramLabel">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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>true if there is another iteration</dd>
+</dl>
+</li>
+</ul>
+<a name="getPos--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerIterator.html#line.61">getPos</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>position indices (nb this is reference not a copy so avoid changing and can be null)</dd>
+</dl>
+</li>
+</ul>
+<a name="reset--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerIterator.html#line.66">reset</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset--">IndexIterator</a></code></span></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IntegersIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/IntegersIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/IntegersIterator.html
new file mode 100644
index 0000000..a6f4132
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/IntegersIterator.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 (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IntegersIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="IntegersIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegersIterator.html#IntegersIterator-boolean-int:A-java.lang.Object...-">IntegersIterator</a></span>(boolean&nbsp;restrict1D,
+                int[]&nbsp;shape,
+                <a href="https://docs.oracle.com/javase/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegersIterator.html#IntegersIterator-int:A-java.lang.Object...-">IntegersIterator</a></span>(int[]&nbsp;shape,
+                <a href="https://docs.oracle.com/javase/8/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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegersIterator.html#getPos--">getPos</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegersIterator.html#getShape--">getShape</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegersIterator.html#hasNext--">hasNext</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/IntegersIterator.html#reset--">reset</a></span>()</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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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:A-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/8/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="paramLabel">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:A-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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>restrict1D</code> - if true, allow only one 1D integer datasets otherwise they must match shape</dd>
+<dd><code>shape</code> - of entire data array</dd>
+<dd><code>index</code> - an array of integer dataset, boolean dataset, slices or null entries (same as full slices)</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getShape--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegersIterator.html#line.193">getShape</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">Returns:</span></dt>
+<dd>shape of iterator (can be null, if not known or applicable)</dd>
+</dl>
+</li>
+</ul>
+<a name="hasNext--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegersIterator.html#line.198">hasNext</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>true if there is another iteration</dd>
+</dl>
+</li>
+</ul>
+<a name="getPos--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegersIterator.html#line.258">getPos</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>position indices (nb this is reference not a copy so avoid changing and can be null)</dd>
+</dl>
+</li>
+</ul>
+<a name="reset--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegersIterator.html#line.263">reset</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset--">IndexIterator</a></code></span></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/InterfaceUtils.html b/apidocs/2.3.0/org/eclipse/january/dataset/InterfaceUtils.html
new file mode 100644
index 0000000..fc7ca88
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/InterfaceUtils.html
@@ -0,0 +1,724 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>InterfaceUtils (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="InterfaceUtils (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9,"i20":9,"i21":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InterfaceUtils.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/InterpolatorUtils.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/InterfaceUtils.html" target="_top">Frames</a></li>
+<li><a href="InterfaceUtils.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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 InterfaceUtils" class="title">Class InterfaceUtils</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/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.InterfaceUtils</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/InterfaceUtils.html#line.25">InterfaceUtils</a>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.3</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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterfaceUtils.html#InterfaceUtils--">InterfaceUtils</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterfaceUtils.html#fromDoublesToBiggestPrimitives-java.lang.Class-double:A-">fromDoublesToBiggestPrimitives</a></span>(<a href="https://docs.oracle.com/javase/8/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,
+                              double[]&nbsp;x)</code>
+<div class="block">Convert double array to primitive array</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterfaceUtils.html#fromDoubleToBiggestNumber-java.lang.Class-double-">fromDoubleToBiggestNumber</a></span>(<a href="https://docs.oracle.com/javase/8/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,
+                         double&nbsp;x)</code>
+<div class="block">Convert double to number</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterfaceUtils.html#getBestFloatInterface-java.lang.Class-">getBestFloatInterface</a></span>(<a href="https://docs.oracle.com/javase/8/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>
+<div class="block">Find floating point dataset interface that best fits given types.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterfaceUtils.html#getBestInterface-java.lang.Class-java.lang.Class-">getBestInterface</a></span>(<a href="https://docs.oracle.com/javase/8/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;a,
+                <a href="https://docs.oracle.com/javase/8/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;b)</code>
+<div class="block">Find dataset interface that best fits given classes.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterfaceUtils.html#getElementalInterface-java.lang.Class-">getElementalInterface</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i5" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterfaceUtils.html#getElementClass-java.lang.Class-">getElementClass</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i6" class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterfaceUtils.html#getElementsPerItem-java.lang.Class-">getElementsPerItem</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i7" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterfaceUtils.html#getInterface-java.lang.Object-">getInterface</a></span>(<a href="https://docs.oracle.com/javase/8/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 interface from an object.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterfaceUtils.html#getInterfaceFromClass-int-java.lang.Class-">getInterfaceFromClass</a></span>(int&nbsp;elementsPerItem,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;elementClass)</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterfaceUtils.html#getItemBytes-int-java.lang.Class-">getItemBytes</a></span>(int&nbsp;isize,
+            <a href="https://docs.oracle.com/javase/8/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 id="i10" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterfaceUtils.html#getLargestInterface-org.eclipse.january.dataset.Dataset-">getLargestInterface</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</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 id="i11" class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterfaceUtils.html#isComplex-java.lang.Class-">isComplex</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i12" class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterfaceUtils.html#isCompound-java.lang.Class-">isCompound</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i13" class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterfaceUtils.html#isElemental-java.lang.Class-">isElemental</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i14" class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterfaceUtils.html#isElemental-org.eclipse.january.dataset.ILazyDataset-">isElemental</a></span>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterfaceUtils.html#isElementSupported-java.lang.Class-">isElementSupported</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;clazz)</code>&nbsp;</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterfaceUtils.html#isFloating-java.lang.Class-">isFloating</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i17" class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterfaceUtils.html#isFloating-org.eclipse.january.dataset.ILazyDataset-">isFloating</a></span>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterfaceUtils.html#isInteger-java.lang.Class-">isInteger</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i19" class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterfaceUtils.html#isInteger-org.eclipse.january.dataset.ILazyDataset-">isInteger</a></span>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterfaceUtils.html#isNumerical-java.lang.Class-">isNumerical</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i21" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterfaceUtils.html#toBiggestNumber-java.lang.Class-java.lang.Number-">toBiggestNumber</a></span>(<a href="https://docs.oracle.com/javase/8/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,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;x)</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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="InterfaceUtils--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>InterfaceUtils</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/InterfaceUtils.html#line.25">InterfaceUtils</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="isElementSupported-java.lang.Class-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isElementSupported</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/InterfaceUtils.html#line.141">isElementSupported</a>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;clazz)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if supported as an element class (note, Object is not supported)</dd>
+</dl>
+</li>
+</ul>
+<a name="getElementClass-java.lang.Class-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementClass</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/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/InterfaceUtils.html#line.149">getElementClass</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset class</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>(boxed) class of constituent element</dd>
+</dl>
+</li>
+</ul>
+<a name="getInterface-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInterface</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/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;<a href="../../../../src-html/org/eclipse/january/dataset/InterfaceUtils.html#line.160">getInterface</a>(<a href="https://docs.oracle.com/javase/8/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 interface from an object. The following are supported: Java Number objects, Apache common math Complex
+ objects, Java arrays and lists</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>obj</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset interface</dd>
+</dl>
+</li>
+</ul>
+<a name="getInterfaceFromClass-int-java.lang.Class-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInterfaceFromClass</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/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;<a href="../../../../src-html/org/eclipse/january/dataset/InterfaceUtils.html#line.207">getInterfaceFromClass</a>(int&nbsp;elementsPerItem,
+                                                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;elementClass)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>elementsPerItem</code> - </dd>
+<dd><code>elementClass</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset interface</dd>
+</dl>
+</li>
+</ul>
+<a name="getElementalInterface-java.lang.Class-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementalInterface</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/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;<a href="../../../../src-html/org/eclipse/january/dataset/InterfaceUtils.html#line.222">getElementalInterface</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset interface</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>elemental dataset interface available for given dataset interface</dd>
+</dl>
+</li>
+</ul>
+<a name="isElemental-org.eclipse.january.dataset.ILazyDataset-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isElemental</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/InterfaceUtils.html#line.230">isElemental</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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - dataset</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if dataset is not compound or complex</dd>
+</dl>
+</li>
+</ul>
+<a name="isElemental-java.lang.Class-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isElemental</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/InterfaceUtils.html#line.238">isElemental</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if dataset interface is not compound or complex</dd>
+</dl>
+</li>
+</ul>
+<a name="isCompound-java.lang.Class-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isCompound</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/InterfaceUtils.html#line.246">isCompound</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if dataset interface is compound (not complex)</dd>
+</dl>
+</li>
+</ul>
+<a name="isInteger-org.eclipse.january.dataset.ILazyDataset-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isInteger</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/InterfaceUtils.html#line.254">isInteger</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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - dataset</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if dataset has integer elements</dd>
+</dl>
+</li>
+</ul>
+<a name="isFloating-org.eclipse.january.dataset.ILazyDataset-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isFloating</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/InterfaceUtils.html#line.262">isFloating</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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - dataset</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if dataset has floating point elements</dd>
+</dl>
+</li>
+</ul>
+<a name="isInteger-java.lang.Class-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isInteger</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/InterfaceUtils.html#line.270">isInteger</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if dataset interface has integer elements</dd>
+</dl>
+</li>
+</ul>
+<a name="isFloating-java.lang.Class-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isFloating</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/InterfaceUtils.html#line.279">isFloating</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if dataset interface has floating point elements</dd>
+</dl>
+</li>
+</ul>
+<a name="isComplex-java.lang.Class-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isComplex</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/InterfaceUtils.html#line.296">isComplex</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if dataset interface has complex items</dd>
+</dl>
+</li>
+</ul>
+<a name="isNumerical-java.lang.Class-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isNumerical</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/InterfaceUtils.html#line.304">isNumerical</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if dataset interface has numerical elements</dd>
+</dl>
+</li>
+</ul>
+<a name="getElementsPerItem-java.lang.Class-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementsPerItem</h4>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/InterfaceUtils.html#line.313">getElementsPerItem</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>number of elements per item</dd>
+</dl>
+</li>
+</ul>
+<a name="getBestInterface-java.lang.Class-java.lang.Class-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBestInterface</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/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;<a href="../../../../src-html/org/eclipse/january/dataset/InterfaceUtils.html#line.334">getBestInterface</a>(<a href="https://docs.oracle.com/javase/8/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;a,
+                                                        <a href="https://docs.oracle.com/javase/8/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;b)</pre>
+<div class="block">Find dataset interface that best fits given classes. The best class takes into account complex and array datasets</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - first dataset class</dd>
+<dd><code>b</code> - second dataset class</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>best dataset interface</dd>
+</dl>
+</li>
+</ul>
+<a name="getLargestInterface-org.eclipse.january.dataset.Dataset-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLargestInterface</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/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;<a href="../../../../src-html/org/eclipse/january/dataset/InterfaceUtils.html#line.395">getLargestInterface</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</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="paramLabel">Parameters:</span></dt>
+<dd><code>otype</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>largest dataset type available for given dataset type</dd>
+</dl>
+</li>
+</ul>
+<a name="getBestFloatInterface-java.lang.Class-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBestFloatInterface</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/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;<a href="../../../../src-html/org/eclipse/january/dataset/InterfaceUtils.html#line.422">getBestFloatInterface</a>(<a href="https://docs.oracle.com/javase/8/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>
+<div class="block">Find floating point dataset interface that best fits given types. The best type takes into account complex and array
+ datasets</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - old dataset class</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>best dataset interface</dd>
+</dl>
+</li>
+</ul>
+<a name="getItemBytes-int-java.lang.Class-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getItemBytes</h4>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/InterfaceUtils.html#line.437">getItemBytes</a>(int&nbsp;isize,
+                               <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>isize</code> - number of elements in an item</dd>
+<dd><code>dtype</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>length of single item in bytes</dd>
+</dl>
+</li>
+</ul>
+<a name="fromDoublesToBiggestPrimitives-java.lang.Class-double:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromDoublesToBiggestPrimitives</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/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/InterfaceUtils.html#line.449">fromDoublesToBiggestPrimitives</a>(<a href="https://docs.oracle.com/javase/8/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,
+                                                    double[]&nbsp;x)</pre>
+<div class="block">Convert double array to primitive array</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset interface</dd>
+<dd><code>x</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>biggest native primitive array if integer. Return null if not interface is not numerical</dd>
+</dl>
+</li>
+</ul>
+<a name="fromDoubleToBiggestNumber-java.lang.Class-double-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromDoubleToBiggestNumber</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/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/InterfaceUtils.html#line.481">fromDoubleToBiggestNumber</a>(<a href="https://docs.oracle.com/javase/8/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,
+                                               double&nbsp;x)</pre>
+<div class="block">Convert double to number</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset interface</dd>
+<dd><code>x</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>biggest number if integer. Return null if not interface is not numerical</dd>
+</dl>
+</li>
+</ul>
+<a name="toBiggestNumber-java.lang.Class-java.lang.Number-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toBiggestNumber</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/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/InterfaceUtils.html#line.501">toBiggestNumber</a>(<a href="https://docs.oracle.com/javase/8/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,
+                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;x)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset interface</dd>
+<dd><code>x</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>biggest native primitive if integer</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.3</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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InterfaceUtils.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/InterpolatorUtils.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/InterfaceUtils.html" target="_top">Frames</a></li>
+<li><a href="InterfaceUtils.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/InterpolatorUtils.html b/apidocs/2.3.0/org/eclipse/january/dataset/InterpolatorUtils.html
new file mode 100644
index 0000000..5066097
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/InterpolatorUtils.html
@@ -0,0 +1,385 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>InterpolatorUtils (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="InterpolatorUtils (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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/InterfaceUtils.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.InterpolatorUtils</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/InterpolatorUtils.html#line.56">InterpolatorUtils</a>
+extends <a href="https://docs.oracle.com/javase/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterpolatorUtils.html#InterpolatorUtils--">InterpolatorUtils</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterpolatorUtils.html#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-">regrid</a></span>(<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 id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterpolatorUtils.html#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-">regridOld</a></span>(<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 id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterpolatorUtils.html#remap1D-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">remap1D</a></span>(<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 id="i3" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterpolatorUtils.html#remapAxis-org.eclipse.january.dataset.Dataset-int-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">remapAxis</a></span>(<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 id="i4" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterpolatorUtils.html#remapOneAxis-org.eclipse.january.dataset.Dataset-int-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">remapOneAxis</a></span>(<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 id="i5" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/InterpolatorUtils.html#selectDatasetRegion-org.eclipse.january.dataset.Dataset-int-int-int-int-">selectDatasetRegion</a></span>(<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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="InterpolatorUtils--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>InterpolatorUtils</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/InterpolatorUtils.html#line.56">InterpolatorUtils</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="regridOld-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>regridOld</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/InterpolatorUtils.html#line.58">regridOld</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;data,
+                                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;x,
+                                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;y,
+                                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;gridX,
+                                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;gridY)
+                         throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="selectDatasetRegion-org.eclipse.january.dataset.Dataset-int-int-int-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>selectDatasetRegion</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/InterpolatorUtils.html#line.90">selectDatasetRegion</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+                                          int&nbsp;x,
+                                          int&nbsp;y,
+                                          int&nbsp;xSize,
+                                          int&nbsp;ySize)</pre>
+</li>
+</ul>
+<a name="remap1D-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>remap1D</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/InterpolatorUtils.html#line.364">remap1D</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+                              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;axis,
+                              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;outputAxis)</pre>
+</li>
+</ul>
+<a name="remapOneAxis-org.eclipse.january.dataset.Dataset-int-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>remapOneAxis</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/InterpolatorUtils.html#line.402">remapOneAxis</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+                                   int&nbsp;axisIndex,
+                                   <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;corrections,
+                                   <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;originalAxisForCorrection,
+                                   <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;outputAxis)</pre>
+</li>
+</ul>
+<a name="remapAxis-org.eclipse.january.dataset.Dataset-int-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>remapAxis</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/InterpolatorUtils.html#line.452">remapAxis</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+                                int&nbsp;axisIndex,
+                                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;originalAxisForCorrection,
+                                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;outputAxis)</pre>
+</li>
+</ul>
+<a name="regrid-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>regrid</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/InterpolatorUtils.html#line.498">regrid</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;data,
+                             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;x,
+                             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;y,
+                             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;gridX,
+                             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;gridY)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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/InterfaceUtils.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/LazyDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/LazyDataset.html
new file mode 100644
index 0000000..e1ed56e
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/LazyDataset.html
@@ -0,0 +1,1167 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LazyDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="LazyDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":9,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":9,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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/8/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.36">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/8/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/8/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a></pre>
+<dl>
+<dt><span class="seeLabel">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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#begSlice">begSlice</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#delSlice">delSlice</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#isize">isize</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#loader">loader</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#map">map</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/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/8/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/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#oMetadata">oMetadata</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#oShape">oShape</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#padding">padding</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#size">size</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#sShape">sShape</a></span></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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#LazyDataset-org.eclipse.january.io.ILazyLoader-java.lang.String-java.lang.Class-int...-">LazyDataset</a></span>(<a href="../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a>&nbsp;loader,
+           <a href="https://docs.oracle.com/javase/8/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/8/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,
+           int...&nbsp;shape)</code>
+<div class="block">Create a lazy dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#LazyDataset-org.eclipse.january.io.ILazyLoader-java.lang.String-int-java.lang.Class-int...-">LazyDataset</a></span>(<a href="../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a>&nbsp;loader,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+           int&nbsp;elements,
+           <a href="https://docs.oracle.com/javase/8/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,
+           int...&nbsp;shape)</code>
+<div class="block">Create a lazy dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#LazyDataset-java.lang.String-int-int:A-org.eclipse.january.io.ILazyLoader-">LazyDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#LazyDataset-org.eclipse.january.io.ILazyLoader-java.lang.String-int-java.lang.Class-int...-"><code>LazyDataset(ILazyLoader, String, int, Class, int[])</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#LazyDataset-java.lang.String-int-int-int:A-org.eclipse.january.io.ILazyLoader-">LazyDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#LazyDataset-org.eclipse.january.io.ILazyLoader-java.lang.String-int-java.lang.Class-int...-"><code>LazyDataset(ILazyLoader, String, int, Class, int[])</code></a></span></div>
+</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#calcTrueSlice-org.eclipse.january.dataset.SliceND-">calcTrueSlice</a></span>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Calculate absolute slice</div>
+</td>
+</tr>
+<tr id="i1" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr id="i2" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#createLazyDataset-org.eclipse.january.dataset.Dataset-">createLazyDataset</a></span>(<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 id="i3" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#createSlice-int:A-int:A-int:A-">createSlice</a></span>(int[]&nbsp;nstart,
+           int[]&nbsp;nstop,
+           int[]&nbsp;nstep)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i5" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getDType--">getDType</a></span>()</code>
+<div class="block">Can return -1 for unknown</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getElementsPerItem--">getElementsPerItem</a></span>()</code>
+<div class="block">Can return -1 for unknown</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/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;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getInterface--">getInterface</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getMaxSliceLength-org.eclipse.january.dataset.ILazyDataset-int-">getMaxSliceLength</a></span>(<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 id="i9" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSize--">getSize</a></span>()</code>
+<div class="block">The size of the dataset is the number of items in the array</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a></span>(<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 id="i11" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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 id="i12" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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 id="i13" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-int:A-int:A-int:A-">getSlice</a></span>(int[]&nbsp;start,
+        int[]&nbsp;stop,
+        int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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 id="i15" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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 id="i16" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSliceView-int:A-int:A-int:A-">getSliceView</a></span>(int[]&nbsp;start,
+            int[]&nbsp;stop,
+            int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr id="i17" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">getSliceView</a></span>(<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 id="i18" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">getSliceView</a></span>(<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 id="i19" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getTransposedView-int...-">getTransposedView</a></span>(int...&nbsp;axes)</code>
+<div class="block">Permute copy of dataset's axes so that given order is old order:</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#setShape-int...-">setShape</a></span>(int...&nbsp;shape)</code>
+<div class="block">Set a compatible shape for dataset.</div>
+</td>
+</tr>
+<tr id="i22" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#squeezeEnds--">squeezeEnds</a></span>()</code>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#toString--">toString</a></span>()</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:A-int...-">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-boolean-">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#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</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#reshapeMetadata-int:A-int:A-">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors-java.io.Serializable-">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="oMetadata">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>oMetadata</h4>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/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/8/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/8/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.39">oMetadata</a></pre>
+</li>
+</ul>
+<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.40">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.41">size</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.43">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.45">loader</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.48">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.49">delSlice</a></pre>
+</li>
+</ul>
+<a name="sShape">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sShape</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.53">sShape</a></pre>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</dd>
+</dl>
+</li>
+</ul>
+<a name="padding">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>padding</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.58">padding</a></pre>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</dd>
+</dl>
+</li>
+</ul>
+<a name="map">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>map</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.59">map</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-org.eclipse.january.io.ILazyLoader-java.lang.String-int-java.lang.Class-int...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>LazyDataset</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.70">LazyDataset</a>(<a href="../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a>&nbsp;loader,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                   int&nbsp;elements,
+                   <a href="https://docs.oracle.com/javase/8/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,
+                   int...&nbsp;shape)</pre>
+<div class="block">Create a lazy dataset</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>loader</code> - </dd>
+<dd><code>name</code> - </dd>
+<dd><code>elements</code> - </dd>
+<dd><code>clazz</code> - dataset interface</dd>
+<dd><code>shape</code> - </dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.3</dd>
+</dl>
+</li>
+</ul>
+<a name="LazyDataset-org.eclipse.january.io.ILazyLoader-java.lang.String-java.lang.Class-int...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>LazyDataset</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.92">LazyDataset</a>(<a href="../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a>&nbsp;loader,
+                   <a href="https://docs.oracle.com/javase/8/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/8/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,
+                   int...&nbsp;shape)</pre>
+<div class="block">Create a lazy dataset</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>loader</code> - </dd>
+<dd><code>name</code> - </dd>
+<dd><code>clazz</code> - dataset interface</dd>
+<dd><code>shape</code> - </dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.3</dd>
+</dl>
+</li>
+</ul>
+<a name="LazyDataset-java.lang.String-int-int-int:A-org.eclipse.january.io.ILazyLoader-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>LazyDataset</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.106">LazyDataset</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#LazyDataset-org.eclipse.january.io.ILazyLoader-java.lang.String-int-java.lang.Class-int...-"><code>LazyDataset(ILazyLoader, String, int, Class, int[])</code></a></span></div>
+<div class="block">Create a lazy dataset</div>
+<dl>
+<dt><span class="paramLabel">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:A-org.eclipse.january.io.ILazyLoader-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LazyDataset</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.119">LazyDataset</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#LazyDataset-org.eclipse.january.io.ILazyLoader-java.lang.String-int-java.lang.Class-int...-"><code>LazyDataset(ILazyLoader, String, int, Class, int[])</code></a></span></div>
+<div class="block">Create a lazy dataset</div>
+<dl>
+<dt><span class="paramLabel">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.145">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="paramLabel">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.167">getDType</a>()</pre>
+<div class="block">Can return -1 for unknown</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>type of dataset item</dd>
+</dl>
+</li>
+</ul>
+<a name="getInterface--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInterface</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/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;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.175">getInterface</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset interface that supports element class and number of elements</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.3</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.183">getElementsPerItem</a>()</pre>
+<div class="block">Can return -1 for unknown</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.188">getSize</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize--">ILazyDataset</a></code></span></div>
+<div class="block">The size of the dataset is the number of items in the array</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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/8/docs/api/java/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.193">toString</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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/LazyDataset.html#line.217">hashCode</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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="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.234">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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.280">clone</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">ILazyDataset</a></code></span></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.285">setShape</a>(int...&nbsp;shape)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape-int...-">ILazyDataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></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.290">squeezeEnds</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds--">ILazyDataset</a></code></span></div>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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:A-int:A-int:A-">
+<!--   -->
+</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.296">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-int:A-int:A-int:A-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-int:A-int:A-int:A-">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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+<dt><span class="throwsLabel">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.301">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+<dt><span class="throwsLabel">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.309">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+<dt><span class="throwsLabel">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.314">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-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>
+<dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+<dt><span class="throwsLabel">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.322">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">ILazyDataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The sliced view of a lazy dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="getSliceView-int:A-int:A-int:A-">
+<!--   -->
+</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.348">getSliceView</a>(int[]&nbsp;start,
+                                int[]&nbsp;stop,
+                                int[]&nbsp;step)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView-int:A-int:A-int:A-">ILazyDataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView-int:A-int:A-int:A-">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="paramLabel">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="returnLabel">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.353">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">ILazyDataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The sliced view of a lazy dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">
+<!--   -->
+</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.374">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">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="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+<dt><span class="throwsLabel">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.379">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">ILazyDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-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>
+<dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The dataset of the sliced data</dd>
+<dt><span class="throwsLabel">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="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.425">getTransposedView</a>(int...&nbsp;axes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getTransposedView-int...-">ILazyDataset</a></code></span></div>
+<div class="block">Permute copy of dataset's axes so that given order is old order:
+ 
+ <pre>
+  axisPerm = (p(0), p(1),...) =&gt; 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="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>axes</code> - if zero length then axes order reversed</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>remapped view of data</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.546">calcTrueSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<div class="block">Calculate absolute slice</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true slice or null if zero-sized</dd>
+</dl>
+</li>
+</ul>
+<a name="createSlice-int:A-int:A-int:A-">
+<!--   -->
+</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.647">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.749">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="paramLabel">Parameters:</span></dt>
+<dd><code>lazySet</code> - </dd>
+<dd><code>dimension</code> - </dd>
+<dt><span class="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/LazyDatasetBase.html b/apidocs/2.3.0/org/eclipse/january/dataset/LazyDatasetBase.html
new file mode 100644
index 0000000..000a1ba
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/LazyDatasetBase.html
@@ -0,0 +1,1011 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LazyDatasetBase (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="LazyDatasetBase (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":9,"i2":10,"i3":10,"i4":10,"i5":9,"i6":10,"i7":10,"i8":10,"i9":9,"i10":6,"i11":10,"i12":10,"i13":10,"i14":10,"i15":42,"i16":10,"i17":9,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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/8/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/8/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="seeLabel">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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected static org.slf4j.Logger</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/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/8/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/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></span></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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#LazyDatasetBase--">LazyDatasetBase</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata-org.eclipse.january.metadata.MetadataType-">addMetadata</a></span>(<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 id="i1" class="rowColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes-int:A-int...-">checkPermutatedAxes</a></span>(int[]&nbsp;shape,
+                   int...&nbsp;axes)</code>
+<div class="block">Check permutation axes</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata-java.lang.Class-">clearMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i3" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/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/8/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/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata--">copyMetadata</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/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/8/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/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata-java.util.Map-">copyMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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 id="i6" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable-java.io.Serializable-boolean-">createFromSerializable</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i7" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata--">dirtyMetadata</a></span>()</code>
+<div class="block">Dirty metadata that are annotated by @Dirtiable.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i9" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces-java.lang.Class-">findMetadataTypeSubInterfaces</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i10" class="altColor">
+<td class="colFirst"><code>abstract int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getDType--">getDType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getElementClass--">getElementClass</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i12" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata--">getErrorMetadata</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i13" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrors--">getErrors</a></span>()</code>
+<div class="block">Get the errors, if any.</div>
+</td>
+</tr>
+<tr id="i14" 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;<br>S</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata-java.lang.Class-">getFirstMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i15" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata--">getMetadata</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+</td>
+</tr>
+<tr id="i16" 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;<br><a href="https://docs.oracle.com/javase/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata-java.lang.Class-">getMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i17" class="rowColor">
+<td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/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/8/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/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</a></span>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;a,
+              boolean&nbsp;clone)</code>&nbsp;</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName--">getName</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getRank--">getRank</a></span>()</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 id="i20" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getShape--">getShape</a></span>()</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 id="i21" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors--">hasErrors</a></span>()</code>
+<div class="block">If error information is set, returns true.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata-int:A-int:A-">reshapeMetadata</a></span>(int[]&nbsp;oldShape,
+               int[]&nbsp;newShape)</code>
+<div class="block">Reshape all datasets in metadata that are annotated by @Reshapeable.</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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 id="i25" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty</a></span>()</code>
+<div class="block">This method allows anything that dirties the dataset to clear various metadata values
+ so that the other methods can work correctly.</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors-java.io.Serializable-">setErrors</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i27" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a></span>(<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 id="i28" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName-java.lang.String-">setName</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i29" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a></span>(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 id="i30" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">transposeMetadata</a></span>(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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-int:A-int:A-int:A-">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:A-int:A-int:A-">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/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.64">name</a></pre>
+</li>
+</ul>
+<a name="shape">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>shape</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.69">shape</a></pre>
+<div class="block">The shape or dimensions of the dataset</div>
+</li>
+</ul>
+<a name="metadata">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>metadata</h4>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/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/8/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/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt; <a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.71">metadata</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="LazyDatasetBase--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LazyDatasetBase</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.43">LazyDatasetBase</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDType--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDType</h4>
+<pre>public abstract&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.76">getDType</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.79">getElementClass</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>Boxed class of element</dd>
+</dl>
+</li>
+</ul>
+<a name="clone--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.84">clone</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">ILazyDataset</a></code></span></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a (shallow) copy of dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.89">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.114">hashCode</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.124">getName</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>the name</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.129">setName</a>(<a href="https://docs.oracle.com/javase/8/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="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/INameable.html#setName-java.lang.String-">setName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getShape--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.134">getShape</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape--">ILazyDataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>Copy of shape of dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="getRank--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRank</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.139">getRank</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getRank--">ILazyDataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>rank</dd>
+</dl>
+</li>
+</ul>
+<a name="setDirty--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setDirty</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.148">setDirty</a>()</pre>
+<div class="block">This method allows anything that dirties the dataset to clear various metadata values
+ so that the other methods can work correctly.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a name="findMetadataTypeSubInterfaces-java.lang.Class-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>findMetadataTypeSubInterfaces</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.159">findMetadataTypeSubInterfaces</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>sub-interface</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - when given class is <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata"><code>MetadataType</code></a> or an anonymous sub-class of it</dd>
+</dl>
+</li>
+</ul>
+<a name="setMetadata-org.eclipse.january.metadata.MetadataType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMetadata</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.199">setMetadata</a>(<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&nbsp;metadata)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata-org.eclipse.january.metadata.MetadataType-">ILazyDataset</a></code></span></div>
+<div class="block">Set metadata on the dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>metadata</code> - (null is ignored so use clear(null) instead)</dd>
+</dl>
+</li>
+</ul>
+<a name="addMetadata-org.eclipse.january.metadata.MetadataType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addMetadata</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.204">addMetadata</a>(<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&nbsp;metadata)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata-org.eclipse.january.metadata.MetadataType-">ILazyDataset</a></code></span></div>
+<div class="block">Add metadata to the dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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/8/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.239">getMetadata</a>()</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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/8/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.245">getMetadata</a>(<a href="https://docs.oracle.com/javase/8/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="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - if null return everything</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>list of metadata with given class (or its super interface)</dd>
+<dt><span class="throwsLabel">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.268">getFirstMetadata</a>(<a href="https://docs.oracle.com/javase/8/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="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - if null return first from everything</dd>
+<dt><span class="returnLabel">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.287">clearMetadata</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata-java.lang.Class-">ILazyDataset</a></code></span></div>
+<div class="block">Remove metadata of given class</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">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/8/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/8/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/8/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.306">copyMetadata</a>()</pre>
+<dl>
+<dt><span class="simpleTagLabel">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/8/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/8/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/8/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.313">copyMetadata</a>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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="simpleTagLabel">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.338">restoreMetadata</a>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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="getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMetadataMap</h4>
+<pre>protected static&nbsp;<a href="https://docs.oracle.com/javase/8/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/8/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/8/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.345">getMetadataMap</a>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;a,
+                                                                                                boolean&nbsp;clone)</pre>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</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.792">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="paramLabel">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:A-int:A-">
+<!--   -->
+</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.802">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="paramLabel">Parameters:</span></dt>
+<dd><code>newShape</code> - </dd>
+</dl>
+</li>
+</ul>
+<a name="transposeMetadata-int:A-">
+<!--   -->
+</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.811">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="paramLabel">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.819">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="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</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.994">createFromSerializable</a>(<a href="https://docs.oracle.com/javase/8/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.1036">setErrors</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&nbsp;errors)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors-java.io.Serializable-">ILazyDataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">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.1063">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.1075">getErrors</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getErrors--">ILazyDataset</a></code></span></div>
+<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="overrideSpecifyLabel">Specified by:</span></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.1081">hasErrors</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors--">ILazyDataset</a></code></span></div>
+<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="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>true if there is error data.</dd>
+</dl>
+</li>
+</ul>
+<a name="checkPermutatedAxes-int:A-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.1091">checkPermutatedAxes</a>(int[]&nbsp;shape,
+                                        int...&nbsp;axes)</pre>
+<div class="block">Check permutation axes</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - </dd>
+<dd><code>axes</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>cleaned up copy of 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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/LazyDynamicDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/LazyDynamicDataset.html
new file mode 100644
index 0000000..c7d9e0d
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/LazyDynamicDataset.html
@@ -0,0 +1,691 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LazyDynamicDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="LazyDynamicDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LazyMaths.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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/8/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="seeLabel">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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#checker">checker</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#eventDelegate">eventDelegate</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#maxShape">maxShape</a></span></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#begSlice">begSlice</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#delSlice">delSlice</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#padding">padding</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#size">size</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#sShape">sShape</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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#LazyDynamicDataset-org.eclipse.january.dataset.LazyDynamicDataset-">LazyDynamicDataset</a></span>(<a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a>&nbsp;other)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#LazyDynamicDataset-java.lang.String-int-int-int:A-int:A-org.eclipse.january.io.ILazyLoader-">LazyDynamicDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#addDataListener-org.eclipse.january.dataset.IDataListener-">addDataListener</a></span>(<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 id="i1" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#fireDataListeners--">fireDataListeners</a></span>()</code>
+<div class="block">Alert any registered listeners</div>
+</td>
+</tr>
+<tr id="i4" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#getDataset--">getDataset</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#getMaxShape--">getMaxShape</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#refreshShape--">refreshShape</a></span>()</code>
+<div class="block">Force the shape to be re-read from file, if possible</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#removeDataListener-org.eclipse.january.dataset.IDataListener-">removeDataListener</a></span>(<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 id="i9" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#resize-int...-">resize</a></span>(int...&nbsp;newShape)</code>
+<div class="block">Change shape</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#setMaxShape-int...-">setMaxShape</a></span>(int...&nbsp;maxShape)</code>
+<div class="block">Set maximum shape</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#startUpdateChecker-int-org.eclipse.january.dataset.IDatasetChangeChecker-">startUpdateChecker</a></span>(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:A-int:A-int:A-">createSlice</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#getInterface--">getInterface</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getMaxSliceLength-org.eclipse.january.dataset.ILazyDataset-int-">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-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-int:A-int:A-int:A-">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:A-int:A-int:A-">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></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:A-int...-">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-boolean-">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#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</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#reshapeMetadata-int:A-int:A-">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors-java.io.Serializable-">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-int:A-int:A-int:A-">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:A-int:A-int:A-">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:A-int:A-org.eclipse.january.io.ILazyLoader-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>LazyDynamicDataset</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDynamicDataset.html#line.48">LazyDynamicDataset</a>(<a href="https://docs.oracle.com/javase/8/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>
+<a name="LazyDynamicDataset-org.eclipse.january.dataset.LazyDynamicDataset-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LazyDynamicDataset</h4>
+<pre>protected&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDynamicDataset.html#line.76">LazyDynamicDataset</a>(<a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a>&nbsp;other)</pre>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</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="hashCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDynamicDataset.html#line.86">hashCode</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#hashCode--">hashCode</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="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/LazyDynamicDataset.html#line.96">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#equals-java.lang.Object-">equals</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="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.127">getDataset</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.132">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#addDataListener-org.eclipse.january.dataset.IDataListener-">IDynamicShape</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></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.137">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#removeDataListener-org.eclipse.january.dataset.IDataListener-">IDynamicShape</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></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.142">fireDataListeners</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#fireDataListeners--">IDynamicShape</a></code></span></div>
+<div class="block">Alert any registered listeners</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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.149">refreshShape</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#refreshShape--">IDynamicShape</a></code></span></div>
+<div class="block">Force the shape to be re-read from file, if possible</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.157">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#resize-int...-">IDynamicShape</a></code></span></div>
+<div class="block">Change shape</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.188">getMaxShape</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.193">setMaxShape</a>(int...&nbsp;maxShape)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#setMaxShape-int...-">IDynamicShape</a></code></span></div>
+<div class="block">Set maximum shape</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">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.218">clone</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">ILazyDataset</a></code></span></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.223">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#startUpdateChecker-int-org.eclipse.january.dataset.IDatasetChangeChecker-">IDynamicShape</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#startUpdateChecker-int-org.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="paramLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LazyMaths.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/LazyMaths.html b/apidocs/2.3.0/org/eclipse/january/dataset/LazyMaths.html
new file mode 100644
index 0000000..5c2c74b
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/LazyMaths.html
@@ -0,0 +1,478 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LazyMaths (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="LazyMaths (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class LazyMaths" class="title">Class LazyMaths</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/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.25">LazyMaths</a>
+extends <a href="https://docs.oracle.com/javase/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#logger">logger</a></span></code>
+<div class="block">Setup the logging facilities</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#max-org.eclipse.january.dataset.ILazyDataset-int...-">max</a></span>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+   int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#mean-org.eclipse.january.dataset.ILazyDataset-int...-">mean</a></span>(<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 id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#mean-int-int-org.eclipse.january.dataset.ILazyDataset-int...-">mean</a></span>(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 id="i3" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#min-org.eclipse.january.dataset.ILazyDataset-int...-">min</a></span>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+   int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#product-org.eclipse.january.dataset.ILazyDataset-int-">product</a></span>(<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 id="i5" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#sum-org.eclipse.january.dataset.ILazyDataset-boolean-int...-">sum</a></span>(<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 id="i6" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#sum-org.eclipse.january.dataset.ILazyDataset-int...-">sum</a></span>(<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 id="i7" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#sum-org.eclipse.january.dataset.ILazyDataset-int-">sum</a></span>(<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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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.34">logger</a></pre>
+<div class="block">Setup the logging facilities</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="max-org.eclipse.january.dataset.ILazyDataset-int...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>max</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyMaths.html#line.117">max</a>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+                          int...&nbsp;axes)
+                   throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - </dd>
+<dd><code>axes</code> - (can be negative). If null or empty then use all axes</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>maximum along axes in lazy dataset</dd>
+<dt><span class="throwsLabel">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="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a name="min-org.eclipse.january.dataset.ILazyDataset-int...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>min</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyMaths.html#line.133">min</a>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+                          int...&nbsp;axes)
+                   throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - </dd>
+<dd><code>axes</code> - (can be negative). If null or empty then use all axes</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>minimum along axes in lazy dataset</dd>
+<dt><span class="throwsLabel">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="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a name="sum-org.eclipse.january.dataset.ILazyDataset-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sum</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyMaths.html#line.148">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="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - </dd>
+<dd><code>axis</code> - (can be negative)</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>sum along axis in lazy dataset</dd>
+<dt><span class="throwsLabel">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.178">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="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - </dd>
+<dd><code>ignoreAxes</code> - axes to ignore</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>sum when given axes are ignored in lazy dataset</dd>
+<dt><span class="throwsLabel">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="simpleTagLabel">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.190">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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>sum</dd>
+<dt><span class="throwsLabel">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="simpleTagLabel">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.211">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="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - </dd>
+<dd><code>axis</code> - (can be negative)</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>product along axis in lazy dataset</dd>
+<dt><span class="throwsLabel">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.240">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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>mean when given axes are ignored in lazy dataset</dd>
+<dt><span class="throwsLabel">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.269">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="throwsLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/LazyWriteableDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/LazyWriteableDataset.html
new file mode 100644
index 0000000..5ba88d5
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/LazyWriteableDataset.html
@@ -0,0 +1,1019 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LazyWriteableDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="LazyWriteableDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":9,"i2":9,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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/8/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="seeLabel">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#begSlice">begSlice</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#delSlice">delSlice</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#padding">padding</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#size">size</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#sShape">sShape</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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#LazyWriteableDataset-org.eclipse.january.dataset.LazyWriteableDataset-">LazyWriteableDataset</a></span>(<a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a>&nbsp;other)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#LazyWriteableDataset-java.lang.String-java.lang.Class-int:A-int:A-int:A-org.eclipse.january.io.ILazySaver-">LazyWriteableDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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="altColor">
+<td class="colFirst"><code>&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#LazyWriteableDataset-java.lang.String-java.lang.Class-int-int:A-int:A-int:A-org.eclipse.january.io.ILazySaver-">LazyWriteableDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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="rowColor">
+<td class="colFirst"><code>&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#LazyWriteableDataset-java.lang.String-int-int:A-int:A-int:A-org.eclipse.january.io.ILazySaver-">LazyWriteableDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#LazyWriteableDataset-java.lang.String-int-int-int:A-int:A-int:A-org.eclipse.january.io.ILazySaver-">LazyWriteableDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr id="i1" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#createLazyDataset-org.eclipse.january.dataset.Dataset-">createLazyDataset</a></span>(<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 id="i2" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#createLazyDataset-org.eclipse.january.dataset.Dataset-int:A-">createLazyDataset</a></span>(<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 id="i3" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#createSlice-int:A-int:A-int:A-">createSlice</a></span>(int[]&nbsp;nstart,
+           int[]&nbsp;nstop,
+           int[]&nbsp;nstep)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i5" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#getChunking--">getChunking</a></span>()</code>
+<div class="block">Get chunking</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#getFillValue--">getFillValue</a></span>()</code>
+<div class="block">Get the value used to fill an un-initialized dataset</div>
+</td>
+</tr>
+<tr id="i7" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#getSliceView-int:A-int:A-int:A-">getSliceView</a></span>(int[]&nbsp;start,
+            int[]&nbsp;stop,
+            int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr id="i8" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">getSliceView</a></span>(<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 id="i9" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">getSliceView</a></span>(<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 id="i10" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#getTransposedView-int...-">getTransposedView</a></span>(int...&nbsp;axes)</code>
+<div class="block">Permute copy of dataset's axes so that given order is old order:</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setChunking-int...-">setChunking</a></span>(int...&nbsp;chunks)</code>
+<div class="block">Set chunking</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setFillValue-java.lang.Object-">setFillValue</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSaver-org.eclipse.january.io.ILazySaver-">setSaver</a></span>(<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 id="i15" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSlice</a></span>(<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 id="i16" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-int:A-int:A-int:A-">setSlice</a></span>(<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 id="i17" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSlice</a></span>(<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 id="i18" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSliceSync-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSliceSync</a></span>(<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 id="i19" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setWritingAsync-boolean-">setWritingAsync</a></span>(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-org.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#getDType--">getDType</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getElementsPerItem--">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getInterface--">getInterface</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getMaxSliceLength-org.eclipse.january.dataset.ILazyDataset-int-">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-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-int:A-int:A-int:A-">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></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:A-int...-">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-boolean-">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#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</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#reshapeMetadata-int:A-int:A-">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors-java.io.Serializable-">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-int:A-int:A-int:A-">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-org.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:A-int:A-int:A-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/8/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="paramLabel">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:A-int:A-int:A-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/8/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="paramLabel">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:A-int:A-int:A-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/8/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/8/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="paramLabel">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:A-int:A-int:A-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.84">LazyWriteableDataset</a>(<a href="https://docs.oracle.com/javase/8/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/8/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="paramLabel">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>
+<a name="LazyWriteableDataset-org.eclipse.january.dataset.LazyWriteableDataset-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LazyWriteableDataset</h4>
+<pre>protected&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyWriteableDataset.html#line.91">LazyWriteableDataset</a>(<a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a>&nbsp;other)</pre>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</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.104">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="paramLabel">Parameters:</span></dt>
+<dd><code>dataset</code> - </dd>
+</dl>
+</li>
+</ul>
+<a name="createLazyDataset-org.eclipse.january.dataset.Dataset-int:A-">
+<!--   -->
+</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.112">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="paramLabel">Parameters:</span></dt>
+<dd><code>dataset</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/LazyWriteableDataset.html#line.151">hashCode</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#hashCode--">hashCode</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>
+</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/LazyWriteableDataset.html#line.161">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#equals-java.lang.Object-">equals</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>
+</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.195">getChunking</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#getChunking--">ILazyWriteableDataset</a></code></span></div>
+<div class="block">Get chunking</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.200">setChunking</a>(int...&nbsp;chunks)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setChunking-int...-">ILazyWriteableDataset</a></code></span></div>
+<div class="block">Set chunking</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">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.205">clone</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">ILazyDataset</a></code></span></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">Returns:</span></dt>
+<dd>a (shallow) copy of dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="getSliceView-int:A-int:A-int:A-">
+<!--   -->
+</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.210">getSliceView</a>(int[]&nbsp;start,
+                                         int[]&nbsp;stop,
+                                         int[]&nbsp;step)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView-int:A-int:A-int:A-">ILazyDataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView-int:A-int:A-int:A-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSliceView-int:A-int:A-int:A-">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="paramLabel">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="returnLabel">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.215">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">ILazyDataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="returnLabel">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.220">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">ILazyDataset</a></code></span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="returnLabel">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.225">getTransposedView</a>(int...&nbsp;axes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getTransposedView-int...-">ILazyDataset</a></code></span></div>
+<div class="block">Permute copy of dataset's axes so that given order is old order:
+ 
+ <pre>
+  axisPerm = (p(0), p(1),...) =&gt; 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="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>axes</code> - if zero length then axes order reversed</dd>
+<dt><span class="returnLabel">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.230">setWritingAsync</a>(boolean&nbsp;async)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setWritingAsync-boolean-">ILazyWriteableDataset</a></code></span></div>
+<div class="block">Set writing slices as asynchronous</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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.241">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="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - </dd>
+<dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="throwsLabel">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:A-int:A-int:A-">
+<!--   -->
+</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.246">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-int:A-int:A-int:A-">ILazyWriteableDataset</a></code></span></div>
+<div class="block">Set a slice of the dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-int:A-int:A-int:A-">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="throwsLabel">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.251">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">ILazyWriteableDataset</a></code></span></div>
+<div class="block">Set a slice of the dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.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="throwsLabel">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.256">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSliceSync-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">ILazyWriteableDataset</a></code></span></div>
+<div class="block">Set a slice of the dataset synchronously</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSliceSync-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.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="throwsLabel">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.304">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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>saver</code> - </dd>
+</dl>
+</li>
+</ul>
+<a name="createSlice-int:A-int:A-int:A-">
+<!--   -->
+</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.310">createSlice</a>(int[]&nbsp;nstart,
+                              int[]&nbsp;nstop,
+                              int[]&nbsp;nstep)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#createSlice-int:A-int:A-int:A-">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/8/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.315">getFillValue</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#getFillValue--">ILazyWriteableDataset</a></code></span></div>
+<div class="block">Get the value used to fill an un-initialized dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.320">setFillValue</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;fill)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setFillValue-java.lang.Object-">ILazyWriteableDataset</a></code></span></div>
+<div class="block">Set the value used to fill an un-initialized dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.LazyDynamicDataset">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/LinearAlgebra.NormOrder.html b/apidocs/2.3.0/org/eclipse/january/dataset/LinearAlgebra.NormOrder.html
new file mode 100644
index 0000000..06d9800
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/LinearAlgebra.NormOrder.html
@@ -0,0 +1,399 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LinearAlgebra.NormOrder (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="LinearAlgebra.NormOrder (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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/8/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/8/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.717">LinearAlgebra.NormOrder</a>
+extends <a href="https://docs.oracle.com/javase/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html#DEFAULT">DEFAULT</a></span></code>
+<div class="block">2-norm for vectors and Frobenius for matrices</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html#FROBENIUS">FROBENIUS</a></span></code>
+<div class="block">Frobenius (not allowed for vectors)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html#NEG_INFINITY">NEG_INFINITY</a></span></code>
+<div class="block">Negative infinity</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html#POS_INFINITY">POS_INFINITY</a></span></code>
+<div class="block">Positive infinity</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html#ZERO">ZERO</a></span></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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i1" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html#values--">values</a></span>()</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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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.721">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.725">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.729">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.733">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.737">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.717">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="returnLabel">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.717">valueOf</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/LinearAlgebra.html b/apidocs/2.3.0/org/eclipse/january/dataset/LinearAlgebra.html
new file mode 100644
index 0000000..fd182e5
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/LinearAlgebra.html
@@ -0,0 +1,994 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LinearAlgebra (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="LinearAlgebra (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9,"i20":9,"i21":9,"i22":9,"i23":9,"i24":9,"i25":9,"i26":9,"i27":9,"i28":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_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/8/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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">LinearAlgebra.NormOrder</a></span></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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#LinearAlgebra--">LinearAlgebra</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcCholeskyDecomposition-org.eclipse.january.dataset.Dataset-">calcCholeskyDecomposition</a></span>(<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 <code>A = L L^T</code></div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcConditionNumber-org.eclipse.january.dataset.Dataset-">calcConditionNumber</a></span>(<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 id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcConjugateGradient-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">calcConjugateGradient</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 <code>A x = v</code> by conjugate gradient method with the stopping criterion being
+ that the estimated residual <code>r = v - A x</code> satisfies <code>||r|| &lt; ||v||</code> with maximum of 100 iterations</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcConjugateGradient-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-int-double-">calcConjugateGradient</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 <code>A x = v</code> by conjugate gradient method with the stopping criterion being
+ that the estimated residual <code>r = v - A x</code> satisfies <code>||r|| &lt; delta ||v||</code></div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcDeterminant-org.eclipse.january.dataset.Dataset-">calcDeterminant</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcEigenDecomposition-org.eclipse.january.dataset.Dataset-">calcEigenDecomposition</a></span>(<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 <code>A = V D V^T</code></div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcEigenvalues-org.eclipse.january.dataset.Dataset-">calcEigenvalues</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcInverse-org.eclipse.january.dataset.Dataset-">calcInverse</a></span>(<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 id="i8" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcLUDecomposition-org.eclipse.january.dataset.Dataset-">calcLUDecomposition</a></span>(<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 <code>A = P^-1 L U</code></div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcMatrixRank-org.eclipse.january.dataset.Dataset-">calcMatrixRank</a></span>(<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 id="i10" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcPseudoInverse-org.eclipse.january.dataset.Dataset-">calcPseudoInverse</a></span>(<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 id="i11" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcQRDecomposition-org.eclipse.january.dataset.Dataset-">calcQRDecomposition</a></span>(<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 <code>A = Q R</code></div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcSingularValueDecomposition-org.eclipse.january.dataset.Dataset-">calcSingularValueDecomposition</a></span>(<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 <code>A = U S V^T</code></div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>static double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcSingularValues-org.eclipse.january.dataset.Dataset-">calcSingularValues</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#crossProduct-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">crossProduct</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 id="i15" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#crossProduct-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-int-int-int-">crossProduct</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 id="i16" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#dotProduct-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">dotProduct</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 id="i17" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#kroneckerProduct-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">kroneckerProduct</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 
+ <code>kron[k0,...,kN] = a[i0,...,iN] * b[j0,...,jN]</code>
+ where <code>kn = sn * in + jn</code> for <code>n = 0...N</code> and <code>s</code> is shape of <code>b</code></div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#norm-org.eclipse.january.dataset.Dataset-">norm</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#norm-org.eclipse.january.dataset.Dataset-double-">norm</a></span>(<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 id="i20" class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#norm-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.LinearAlgebra.NormOrder-">norm</a></span>(<a 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 id="i21" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#outerProduct-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">outerProduct</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 id="i22" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#power-org.eclipse.january.dataset.Dataset-int-">power</a></span>(<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 id="i23" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#solve-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">solve</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 <code>A x = v</code></div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#solveSVD-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">solveSVD</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 <code>A x = v</code> by SVD</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#tensorDotProduct-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-int:A-int:A-">tensorDotProduct</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 id="i26" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#tensorDotProduct-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-int-int-">tensorDotProduct</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 id="i27" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#trace-org.eclipse.january.dataset.Dataset-">trace</a></span>(<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 id="i28" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#trace-org.eclipse.january.dataset.Dataset-int-int-int-">trace</a></span>(<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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="paramLabel">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="returnLabel">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:A-int:A-">
+<!--   -->
+</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.117">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="paramLabel">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="returnLabel">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.205">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">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.217">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">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.255">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">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.270">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="paramLabel">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="returnLabel">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.495">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>n</code> - power</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>a ** n</code></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.515">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 
+ <code>kron[k0,...,kN] = a[i0,...,iN] * b[j0,...,jN]</code>
+ where <code>kn = sn * in + jn</code> for <code>n = 0...N</code> and <code>s</code> is shape of <code>b</code></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">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.611">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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.623">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="paramLabel">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="returnLabel">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.744">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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.753">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>order</code> - </dd>
+<dt><span class="returnLabel">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.859">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>p</code> - </dd>
+<dt><span class="returnLabel">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.977">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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.988">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 <code>A = U S V^T</code></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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.999">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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.1009">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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.1019">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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.1028">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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.1037">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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.1053">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 <code>A = V D V^T</code></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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.1073">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 <code>A = Q R</code></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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.1083">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 <code>A = P^-1 L U</code></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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.1094">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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.1105">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 <code>A x = v</code></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>v</code> - </dd>
+<dt><span class="returnLabel">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.1122">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 <code>A x = v</code> by SVD</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>v</code> - </dd>
+<dt><span class="returnLabel">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.1137">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 <code>A = L L^T</code></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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.1149">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 <code>A x = v</code> by conjugate gradient method with the stopping criterion being
+ that the estimated residual <code>r = v - A x</code> satisfies <code>||r|| &lt; ||v||</code> with maximum of 100 iterations</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>v</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>value of <code>A^-1 v</code> 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.1162">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 <code>A x = v</code> by conjugate gradient method with the stopping criterion being
+ that the estimated residual <code>r = v - A x</code> satisfies <code>||r|| &lt; delta ||v||</code></div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>value of <code>A^-1 v</code> 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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/LongDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/LongDataset.html
new file mode 100644
index 0000000..4def1f6
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/LongDataset.html
@@ -0,0 +1,2258 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LongDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="LongDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":9,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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="seeLabel">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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#data">data</a></span></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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#containsInfs--">containsInfs</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#containsInvalidNumbers--">containsInvalidNumbers</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#containsNans--">containsNans</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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 id="i5" class="rowColor">
+<td class="colFirst"><code>protected static long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#createArray-int-">createArray</a></span>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i7" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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 id="i9" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#get--">get</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#get-int...-">get</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#get-int-">get</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#get-int-int-">get</a></span>(int&nbsp;i,
+   int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getAbs-int-">getAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get a value from an absolute index of the internal array.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getBoolean--">getBoolean</a></span>()</code>
+<div class="block">Get first item as a boolean.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getBoolean-int...-">getBoolean</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getBoolean-int-">getBoolean</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getBoolean-int-int-">getBoolean</a></span>(int&nbsp;i,
+          int&nbsp;j)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getBufferLength--">getBufferLength</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getByte--">getByte</a></span>()</code>
+<div class="block">Get first item as a byte.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getByte-int...-">getByte</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getByte-int-">getByte</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a byte.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getByte-int-int-">getByte</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get an item from given positionj as a byte.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getData--">getData</a></span>()</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 id="i24" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getDouble--">getDouble</a></span>()</code>
+<div class="block">Get first item as a double.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getDouble-int...-">getDouble</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getDouble-int-">getDouble</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getDouble-int-int-">getDouble</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getDType--">getDType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getElementBooleanAbs-int-">getElementBooleanAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getElementDoubleAbs-int-">getElementDoubleAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getElementLongAbs-int-">getElementLongAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getFloat--">getFloat</a></span>()</code>
+<div class="block">Get first item as a float.</div>
+</td>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getFloat-int...-">getFloat</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i34" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getFloat-int-">getFloat</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr id="i35" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getFloat-int-int-">getFloat</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getInt--">getInt</a></span>()</code>
+<div class="block">Get first item as an int.</div>
+</td>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getInt-int...-">getInt</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i38" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getInt-int-">getInt</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getInt-int-int-">getInt</a></span>(int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getLong--">getLong</a></span>()</code>
+<div class="block">Get first item as a long.</div>
+</td>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getLong-int...-">getLong</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getLong-int-">getLong</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr id="i43" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getLong-int-int-">getLong</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr id="i44" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getObject--">getObject</a></span>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr id="i45" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getObject-int...-">getObject</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i46" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getObject-int-">getObject</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i47" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getObject-int-int-">getObject</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i48" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getObjectAbs-int-">getObjectAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr id="i49" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getShort--">getShort</a></span>()</code>
+<div class="block">Get first item as a short.</div>
+</td>
+</tr>
+<tr id="i50" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getShort-int...-">getShort</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i51" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getShort-int-">getShort</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr id="i52" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getShort-int-int-">getShort</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr id="i53" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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 id="i54" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getString--">getString</a></span>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr id="i55" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getString-int...-">getString</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i56" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getString-int-">getString</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i57" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getString-int-int-">getString</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i58" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getStringAbs-int-">getStringAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr id="i59" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getUniqueItems--">getUniqueItems</a></span>()</code>
+<div class="block">Get unique items</div>
+</td>
+</tr>
+<tr id="i60" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getView-boolean-">getView</a></span>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr id="i61" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i62" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i63" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i64" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#ifloor--">ifloor</a></span>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr id="i65" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i66" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i67" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i68" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i69" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#maxPos-boolean...-">maxPos</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i70" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#minPos-boolean...-">minPos</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i71" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i72" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#resize-int...-">resize</a></span>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr id="i73" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#set-java.lang.Object-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i74" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#set-java.lang.Object-int...-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i75" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#set-java.lang.Object-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i76" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#set-java.lang.Object-int-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i77" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#setAbs-int-long-">setAbs</a></span>(int&nbsp;index,
+      long&nbsp;val)</code>
+<div class="block">Set a value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i78" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i79" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i80" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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 id="i81" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#setData--">setData</a></span>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr id="i82" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#setItem-long-">setItem</a></span>(long&nbsp;value)</code>
+<div class="block">Sets the value at first point to the passed value.</div>
+</td>
+</tr>
+<tr id="i83" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#setItem-long-int...-">setItem</a></span>(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 id="i84" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#setItem-long-int-">setItem</a></span>(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 id="i85" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#setItem-long-int-int-">setItem</a></span>(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 id="i86" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#setItemDirect-int-int-java.lang.Object-">setItemDirect</a></span>(int&nbsp;dindex,
+             int&nbsp;sindex,
+             <a href="https://docs.oracle.com/javase/8/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 id="i87" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">setItemsOnAxes</a></span>(int[]&nbsp;pos,
+              boolean[]&nbsp;axes,
+              <a href="https://docs.oracle.com/javase/8/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 id="i88" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#setObjectAbs-int-java.lang.Object-">setObjectAbs</a></span>(int&nbsp;index,
+            <a href="https://docs.oracle.com/javase/8/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 id="i89" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i90" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/LongDataset.html#sort-java.lang.Integer-">sort</a></span>(<a href="https://docs.oracle.com/javase/8/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-boolean...-">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-int-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps-double-double-double-">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast-boolean-int-int-">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#cast-int-java.lang.Class-boolean-">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-int-">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-org.eclipse.january.dataset.AbstractDataset-boolean-boolean-">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.Dataset-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-int-int:A-int:A-int-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-org.eclipse.january.dataset.Dataset-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-int-int:A-int:A-int-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData-java.lang.Object-int-int:A-">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-int-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-int:A-">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-boolean-">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#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-int-">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-int-">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#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-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-int:A-int:A-int:A-">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:A-int:A-int:A-">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:A-boolean:A-">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView-int:A-int:A-int:A-">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:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max-int-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int:A-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int-boolean...-">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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer-java.io.Serializable-">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength-int-">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape-int...-">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int:A-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes-int-int-">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-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-boolean-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-boolean-boolean...-">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:A-int...-">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-boolean-">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#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#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName--">getName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors--">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata-int:A-int:A-">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors-java.io.Serializable-">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty--">setDirty</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata--">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata-org.eclipse.january.metadata.MetadataType-">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata-java.lang.Class-">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass--">getElementClass</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>
+<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/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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData--">AbstractDataset</a></code></span></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>type of dataset item</dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.158">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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/LongDataset.html#line.196">hashCode</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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.201">clone</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">ILazyDataset</a></code></span></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.267">fill</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">Fill dataset with given object</div>
+<dl>
+<dt><span class="returnLabel">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.282">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="returnLabel">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.287">getBufferLength</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.294">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="returnLabel">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.309">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="paramLabel">Parameters:</span></dt>
+<dd><code>index</code> - absolute index</dd>
+<dt><span class="returnLabel">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.314">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.319">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.324">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.329">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.334">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.348">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="paramLabel">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.354">setItemDirect</a>(int&nbsp;dindex,
+                             int&nbsp;sindex,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.lang.Object-">AbstractDataset</a></code></span></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.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.361">setObjectAbs</a>(int&nbsp;index,
+                         <a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs-int-java.lang.Object-">Dataset</a></code></span></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.373">get</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item in first position</dd>
+<dt><span class="simpleTagLabel">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.381">get</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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.390">get</a>(int&nbsp;i,
+                int&nbsp;j)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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.398">get</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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/8/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.403">getObject</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject--">Dataset</a></code></span></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.408">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.413">getObject</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.418">getObject</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.423">getString</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString--">Dataset</a></code></span></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.428">getString</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.433">getString</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.438">getString</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.443">getDouble</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble--">Dataset</a></code></span></div>
+<div class="block">Get first item as a double. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.448">getDouble</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a double. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.453">getDouble</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a double. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.458">getDouble</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.463">getFloat</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat--">Dataset</a></code></span></div>
+<div class="block">Get first item as a float. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.468">getFloat</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a float. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.473">getFloat</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a float. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.478">getFloat</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.483">getLong</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong--">Dataset</a></code></span></div>
+<div class="block">Get first item as a long. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.488">getLong</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a long. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.493">getLong</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a long. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.498">getLong</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.503">getInt</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt--">Dataset</a></code></span></div>
+<div class="block">Get first item as an int. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.508">getInt</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an int. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.513">getInt</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an int. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.518">getInt</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.523">getShort</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort--">Dataset</a></code></span></div>
+<div class="block">Get first item as a short. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.528">getShort</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a short. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.533">getShort</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a short. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.538">getShort</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.543">getByte</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte--">Dataset</a></code></span></div>
+<div class="block">Get first item as a byte. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.548">getByte</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a byte. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.553">getByte</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given positionj as a byte. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.558">getByte</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.563">getBoolean</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean--">Dataset</a></code></span></div>
+<div class="block">Get first item as a boolean. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.568">getBoolean</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.573">getBoolean</a>(int&nbsp;i,
+                          int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.578">getBoolean</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.588">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="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - </dd>
+<dt><span class="simpleTagLabel">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.598">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="paramLabel">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.609">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="paramLabel">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.619">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="paramLabel">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.624">set</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-">Dataset</a></code></span></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.629">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-">Dataset</a></code></span></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.634">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-int-">Dataset</a></code></span></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.639">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set-java.lang.Object-int...-">IDataset</a></code></span></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.648">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize-int...-">IDataset</a></code></span></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.672">sort</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sort-java.lang.Integer-">Dataset</a></code></span></div>
+<div class="block">In-place sort of dataset</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis</code> - to sort along. If null, then the flattened view is sorted</dd>
+<dt><span class="returnLabel">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.699">getUniqueItems</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getUniqueItems--">Dataset</a></code></span></div>
+<div class="block">Get unique items</div>
+<dl>
+<dt><span class="returnLabel">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.716">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">AbstractDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="returnLabel">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.728">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">Dataset</a></code></span></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.740">setByBoolean</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></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="paramLabel">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="returnLabel">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.768">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.795">setByIndexes</a>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.834">setSlice</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>The dataset with the sliced set to object</dd>
+</dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes-int:A-boolean:A-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.874">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl>
+<dt><span class="paramLabel">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:A-boolean:A-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.893">setItemsOnAxes</a>(int[]&nbsp;pos,
+                           boolean[]&nbsp;axes,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">Dataset</a></code></span></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.924">maxPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.942">minPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.960">containsNans</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.965">containsInfs</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.970">containsInvalidNumbers</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.975">iadd</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place addition with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1010">isubtract</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place subtraction with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1046">imultiply</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place multiplication with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1081">idivide</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place division with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1133">ifloor</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor--">Dataset</a></code></span></div>
+<div class="block">In-place floor</div>
+<dl>
+<dt><span class="returnLabel">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.1138">iremainder</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place remainder</div>
+<dl>
+<dt><span class="returnLabel">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.1186">ipower</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place raise to power of object o</div>
+<dl>
+<dt><span class="returnLabel">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.1254">residual</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">Dataset</a></code></span></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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/Maths.html b/apidocs/2.3.0/org/eclipse/january/dataset/Maths.html
new file mode 100644
index 0000000..179c5d7
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/Maths.html
@@ -0,0 +1,3964 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Maths (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Maths (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9,"i20":9,"i21":9,"i22":9,"i23":9,"i24":9,"i25":9,"i26":9,"i27":9,"i28":9,"i29":9,"i30":9,"i31":9,"i32":9,"i33":9,"i34":9,"i35":9,"i36":9,"i37":9,"i38":9,"i39":9,"i40":9,"i41":9,"i42":9,"i43":9,"i44":9,"i45":9,"i46":9,"i47":9,"i48":9,"i49":9,"i50":9,"i51":9,"i52":9,"i53":9,"i54":9,"i55":9,"i56":9,"i57":9,"i58":9,"i59":9,"i60":9,"i61":9,"i62":9,"i63":9,"i64":9,"i65":41,"i66":41,"i67":41,"i68":41,"i69":41,"i70":9,"i71":9,"i72":9,"i73":9,"i74":9,"i75":9,"i76":9,"i77":9,"i78":9,"i79":9,"i80":9,"i81":9,"i82":9,"i83":9,"i84":9,"i85":9,"i86":9,"i87":9,"i88":9,"i89":9,"i90":9,"i91":9,"i92":9,"i93":9,"i94":9,"i95":9,"i96":9,"i97":9,"i98":9,"i99":9,"i100":9,"i101":9,"i102":9,"i103":9,"i104":9,"i105":9,"i106":9,"i107":9,"i108":9,"i109":9,"i110":9,"i111":9,"i112":9,"i113":9,"i114":9,"i115":9,"i116":9,"i117":9,"i118":9,"i119":9,"i120":9,"i121":9,"i122":9,"i123":9,"i124":9,"i125":9,"i126":9,"i127":9,"i128":9,"i129":9,"i130":9,"i131":9,"i132":9,"i133":9,"i134":9,"i135":9,"i136":9,"i137":9,"i138":9,"i139":9,"i140":9,"i141":9,"i142":9,"i143":9,"i144":9,"i145":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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.28">Maths</a>
+extends <a href="https://docs.oracle.com/javase/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#Maths--">Maths</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#abs-java.lang.Object-">abs</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#abs-java.lang.Object-org.eclipse.january.dataset.Dataset-">abs</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#add-java.util.Collection-boolean-">add</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i3" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#add-java.lang.Object-java.lang.Object-">add</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+   <a href="https://docs.oracle.com/javase/8/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 id="i4" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#add-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">add</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+   <a href="https://docs.oracle.com/javase/8/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 id="i5" class="rowColor">
+<td class="colFirst"><code>protected static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#addBinaryOperatorName-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-java.lang.String-">addBinaryOperatorName</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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/8/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 id="i6" class="altColor">
+<td class="colFirst"><code>protected static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#addFunctionName-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-java.lang.String-">addFunctionName</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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/8/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 id="i7" class="rowColor">
+<td class="colFirst"><code>protected static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#addFunctionName-org.eclipse.january.dataset.Dataset-java.lang.String-">addFunctionName</a></span>(<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/8/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 id="i8" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#angle-java.lang.Object-">angle</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i9" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#angle-java.lang.Object-boolean-">angle</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i10" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#angle-java.lang.Object-boolean-org.eclipse.january.dataset.Dataset-">angle</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i11" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#angle-java.lang.Object-org.eclipse.january.dataset.Dataset-">angle</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i12" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#arccos-java.lang.Object-">arccos</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i13" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#arccos-java.lang.Object-org.eclipse.january.dataset.Dataset-">arccos</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i14" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#arccosh-java.lang.Object-">arccosh</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i15" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#arccosh-java.lang.Object-org.eclipse.january.dataset.Dataset-">arccosh</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i16" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#arcsin-java.lang.Object-">arcsin</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i17" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#arcsin-java.lang.Object-org.eclipse.january.dataset.Dataset-">arcsin</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i18" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#arcsinh-java.lang.Object-">arcsinh</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i19" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#arcsinh-java.lang.Object-org.eclipse.january.dataset.Dataset-">arcsinh</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i20" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#arctan-java.lang.Object-">arctan</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i21" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#arctan-java.lang.Object-org.eclipse.january.dataset.Dataset-">arctan</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i22" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#arctan2-java.lang.Object-java.lang.Object-">arctan2</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="https://docs.oracle.com/javase/8/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 id="i23" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#arctan2-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">arctan2</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="https://docs.oracle.com/javase/8/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 id="i24" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#arctanh-java.lang.Object-">arctanh</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i25" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#arctanh-java.lang.Object-org.eclipse.january.dataset.Dataset-">arctanh</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i26" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#bitwiseAnd-java.lang.Object-java.lang.Object-">bitwiseAnd</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/8/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 id="i27" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#bitwiseAnd-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">bitwiseAnd</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/8/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 id="i28" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#bitwiseInvert-java.lang.Object-">bitwiseInvert</a></span>(<a href="https://docs.oracle.com/javase/8/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 - <code>~a</code>, bitwise invert (or NOT) each element</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#bitwiseInvert-java.lang.Object-org.eclipse.january.dataset.Dataset-">bitwiseInvert</a></span>(<a href="https://docs.oracle.com/javase/8/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 - <code>~a</code>, bitwise invert (or NOT) each element</div>
+</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#bitwiseOr-java.lang.Object-java.lang.Object-">bitwiseOr</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+         <a href="https://docs.oracle.com/javase/8/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 id="i31" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#bitwiseOr-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">bitwiseOr</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+         <a href="https://docs.oracle.com/javase/8/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 id="i32" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#bitwiseXor-java.lang.Object-java.lang.Object-">bitwiseXor</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/8/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 id="i33" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#bitwiseXor-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">bitwiseXor</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/8/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 id="i34" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#cbrt-java.lang.Object-">cbrt</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i35" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#cbrt-java.lang.Object-org.eclipse.january.dataset.Dataset-">cbrt</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i36" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#ceil-java.lang.Object-">ceil</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i37" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#ceil-java.lang.Object-org.eclipse.january.dataset.Dataset-">ceil</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i38" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#centralDifference-org.eclipse.january.dataset.Dataset-int-">centralDifference</a></span>(<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 id="i39" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#clip-java.lang.Object-org.eclipse.january.dataset.Dataset-java.lang.Object-java.lang.Object-">clip</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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 id="i40" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#clip-java.lang.Object-java.lang.Object-java.lang.Object-">clip</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+    <a href="https://docs.oracle.com/javase/8/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/8/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 id="i41" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#conjugate-java.lang.Object-">conjugate</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i42" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#conjugate-java.lang.Object-org.eclipse.january.dataset.Dataset-">conjugate</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i43" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#cos-java.lang.Object-">cos</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i44" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#cos-java.lang.Object-org.eclipse.january.dataset.Dataset-">cos</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i45" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#cosh-java.lang.Object-">cosh</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i46" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#cosh-java.lang.Object-org.eclipse.january.dataset.Dataset-">cosh</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i47" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#derivative-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-int-">derivative</a></span>(<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 id="i48" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#difference-org.eclipse.january.dataset.Dataset-int-int-">difference</a></span>(<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 id="i49" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#divide-java.lang.Object-java.lang.Object-">divide</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+      <a href="https://docs.oracle.com/javase/8/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 id="i50" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#divide-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">divide</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+      <a href="https://docs.oracle.com/javase/8/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 id="i51" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#divideTowardsFloor-java.lang.Object-java.lang.Object-">divideTowardsFloor</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                  <a href="https://docs.oracle.com/javase/8/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 id="i52" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#divideTowardsFloor-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">divideTowardsFloor</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                  <a href="https://docs.oracle.com/javase/8/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 id="i53" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#dividez-java.lang.Object-java.lang.Object-">dividez</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="https://docs.oracle.com/javase/8/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 id="i54" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#dividez-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">dividez</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="https://docs.oracle.com/javase/8/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 id="i55" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#exp-java.lang.Object-">exp</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i56" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#exp-java.lang.Object-org.eclipse.january.dataset.Dataset-">exp</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i57" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#expm1-java.lang.Object-">expm1</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i58" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#expm1-java.lang.Object-org.eclipse.january.dataset.Dataset-">expm1</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i59" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#floor-java.lang.Object-">floor</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i60" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#floor-java.lang.Object-org.eclipse.january.dataset.Dataset-">floor</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i61" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#floorDivide-java.lang.Object-java.lang.Object-">floorDivide</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+           <a href="https://docs.oracle.com/javase/8/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 id="i62" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#floorDivide-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">floorDivide</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+           <a href="https://docs.oracle.com/javase/8/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 id="i63" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#floorRemainder-java.lang.Object-java.lang.Object-">floorRemainder</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/8/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 id="i64" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#floorRemainder-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">floorRemainder</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/8/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 id="i65" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#getBilinear-double:A-org.eclipse.january.dataset.CompoundDataset-double-double-">getBilinear</a></span>(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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use
+             <a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate-double:A-org.eclipse.january.dataset.CompoundDataset-double-double-"><code>interpolate(double[], CompoundDataset, double, double)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i66" class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#getBilinear-org.eclipse.january.dataset.IDataset-double-double-">getBilinear</a></span>(<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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-double-double-"><code>interpolate(Dataset, double, double)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i67" class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#getBilinear-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.IDataset-double-double-">getBilinear</a></span>(<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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-double-double-"><code>interpolate(Dataset, Dataset, double, double)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i68" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#getLinear-double:A-org.eclipse.january.dataset.CompoundDataset-double-">getLinear</a></span>(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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate-double:A-org.eclipse.january.dataset.CompoundDataset-double-"><code>interpolate(double[], CompoundDataset, double)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i69" class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#getLinear-org.eclipse.january.dataset.IDataset-double-">getLinear</a></span>(<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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-double-"><code>interpolate(Dataset, double)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i70" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#gradient-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset...-">gradient</a></span>(<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 id="i71" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#hypot-java.lang.Object-java.lang.Object-">hypot</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+     <a href="https://docs.oracle.com/javase/8/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 id="i72" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#hypot-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">hypot</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+     <a href="https://docs.oracle.com/javase/8/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 id="i73" class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-double...-">interpolate</a></span>(<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 id="i74" class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-double-">interpolate</a></span>(<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 id="i75" class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-double-double-">interpolate</a></span>(<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 id="i76" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IDataset-java.lang.Number-java.lang.Number-">interpolate</a></span>(<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/8/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/8/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 id="i77" class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-double...-">interpolate</a></span>(<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 id="i78" class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-double-">interpolate</a></span>(<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 id="i79" class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-double-double-">interpolate</a></span>(<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 id="i80" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate-double:A-org.eclipse.january.dataset.CompoundDataset-double...-">interpolate</a></span>(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 id="i81" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate-double:A-org.eclipse.january.dataset.CompoundDataset-double-">interpolate</a></span>(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 id="i82" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate-double:A-org.eclipse.january.dataset.CompoundDataset-double-double-">interpolate</a></span>(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 id="i83" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#leftShift-java.lang.Object-java.lang.Object-">leftShift</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+         <a href="https://docs.oracle.com/javase/8/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 id="i84" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#leftShift-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">leftShift</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+         <a href="https://docs.oracle.com/javase/8/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 id="i85" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#log-java.lang.Object-">log</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i86" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#log-java.lang.Object-org.eclipse.january.dataset.Dataset-">log</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i87" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#log10-java.lang.Object-">log10</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i88" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#log10-java.lang.Object-org.eclipse.january.dataset.Dataset-">log10</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i89" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#log1p-java.lang.Object-">log1p</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i90" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#log1p-java.lang.Object-org.eclipse.january.dataset.Dataset-">log1p</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i91" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#log2-java.lang.Object-">log2</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i92" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#log2-java.lang.Object-org.eclipse.january.dataset.Dataset-">log2</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i93" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#lowerClip-java.lang.Object-org.eclipse.january.dataset.Dataset-java.lang.Object-">lowerClip</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;pa)</code>
+<div class="block">lowerClip - clip elements to lower limit</div>
+</td>
+</tr>
+<tr id="i94" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#lowerClip-java.lang.Object-java.lang.Object-">lowerClip</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;pa)</code>
+<div class="block">lowerClip - clip elements to lower limit</div>
+</td>
+</tr>
+<tr id="i95" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#maximum-java.lang.Object-java.lang.Object-">maximum</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="https://docs.oracle.com/javase/8/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 id="i96" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#maximum-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">maximum</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="https://docs.oracle.com/javase/8/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 id="i97" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#minimum-java.lang.Object-java.lang.Object-">minimum</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="https://docs.oracle.com/javase/8/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 id="i98" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#minimum-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">minimum</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="https://docs.oracle.com/javase/8/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 id="i99" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#multiply-java.util.Collection-boolean-">multiply</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i100" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#multiply-java.lang.Object-java.lang.Object-">multiply</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+        <a href="https://docs.oracle.com/javase/8/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 id="i101" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#multiply-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">multiply</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+        <a href="https://docs.oracle.com/javase/8/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 id="i102" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#negative-java.lang.Object-">negative</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i103" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#negative-java.lang.Object-org.eclipse.january.dataset.Dataset-">negative</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i104" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#phaseAsComplexNumber-java.lang.Object-boolean-">phaseAsComplexNumber</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i105" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#phaseAsComplexNumber-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">phaseAsComplexNumber</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i106" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#power-java.lang.Object-java.lang.Object-">power</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+     <a href="https://docs.oracle.com/javase/8/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 id="i107" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#power-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">power</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+     <a href="https://docs.oracle.com/javase/8/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 id="i108" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#reciprocal-java.lang.Object-">reciprocal</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i109" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#reciprocal-java.lang.Object-org.eclipse.january.dataset.Dataset-">reciprocal</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i110" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#remainder-java.lang.Object-java.lang.Object-">remainder</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+         <a href="https://docs.oracle.com/javase/8/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 id="i111" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#remainder-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">remainder</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+         <a href="https://docs.oracle.com/javase/8/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 id="i112" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#rightShift-java.lang.Object-java.lang.Object-">rightShift</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/8/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 id="i113" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#rightShift-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">rightShift</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/8/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 id="i114" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#rint-java.lang.Object-">rint</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i115" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#rint-java.lang.Object-org.eclipse.january.dataset.Dataset-">rint</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i116" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#signum-java.lang.Object-">signum</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i117" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#signum-java.lang.Object-org.eclipse.january.dataset.Dataset-">signum</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i118" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#sin-java.lang.Object-">sin</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i119" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#sin-java.lang.Object-org.eclipse.january.dataset.Dataset-">sin</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i120" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#sinh-java.lang.Object-">sinh</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i121" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#sinh-java.lang.Object-org.eclipse.january.dataset.Dataset-">sinh</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i122" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#sqrt-java.lang.Object-">sqrt</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i123" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#sqrt-java.lang.Object-org.eclipse.january.dataset.Dataset-">sqrt</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i124" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#square-java.lang.Object-">square</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i125" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#square-java.lang.Object-org.eclipse.january.dataset.Dataset-">square</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i126" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#subtract-java.lang.Object-java.lang.Object-">subtract</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+        <a href="https://docs.oracle.com/javase/8/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 id="i127" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#subtract-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">subtract</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+        <a href="https://docs.oracle.com/javase/8/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 id="i128" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#tan-java.lang.Object-">tan</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i129" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#tan-java.lang.Object-org.eclipse.january.dataset.Dataset-">tan</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i130" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#tanh-java.lang.Object-">tanh</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i131" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#tanh-java.lang.Object-org.eclipse.january.dataset.Dataset-">tanh</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i132" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#toDegrees-java.lang.Object-">toDegrees</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i133" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#toDegrees-java.lang.Object-org.eclipse.january.dataset.Dataset-">toDegrees</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i134" class="altColor">
+<td class="colFirst"><code>protected static long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#toLong-double-">toLong</a></span>(double&nbsp;d)</code>&nbsp;</td>
+</tr>
+<tr id="i135" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#toRadians-java.lang.Object-">toRadians</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i136" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#toRadians-java.lang.Object-org.eclipse.january.dataset.Dataset-">toRadians</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i137" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#truncate-java.lang.Object-">truncate</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i138" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#truncate-java.lang.Object-org.eclipse.january.dataset.Dataset-">truncate</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i139" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#unsignedRightShift-java.lang.Object-java.lang.Object-">unsignedRightShift</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                  <a href="https://docs.oracle.com/javase/8/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 id="i140" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#unsignedRightShift-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">unsignedRightShift</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                  <a href="https://docs.oracle.com/javase/8/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 id="i141" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#unwrap-org.eclipse.january.dataset.Dataset-java.lang.Object...-">unwrap</a></span>(<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/8/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 id="i142" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#unwrap-org.eclipse.january.dataset.Dataset-java.lang.Object-">unwrap</a></span>(<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/8/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 id="i143" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#unwrap-org.eclipse.january.dataset.Dataset-java.lang.Object-java.lang.Object-">unwrap</a></span>(<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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+      <a href="https://docs.oracle.com/javase/8/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 id="i144" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#upperClip-java.lang.Object-org.eclipse.january.dataset.Dataset-java.lang.Object-">upperClip</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;pa)</code>
+<div class="block">upperClip - clip elements to upper limit</div>
+</td>
+</tr>
+<tr id="i145" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Maths.html#upperClip-java.lang.Object-java.lang.Object-">upperClip</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;pa)</code>
+<div class="block">upperClip - clip elements to upper limit</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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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.28">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/8/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.39">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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>o</code> - </dd>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/8/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.51">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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                            <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>o</code> - </dd>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/8/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.63">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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>o</code> - </dd>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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.79">floorDivide</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                  <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">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.90">floorDivide</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                  <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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.99">floorRemainder</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                     <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">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.110">floorRemainder</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                     <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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.124">reciprocal</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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.136">reciprocal</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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.147">abs</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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.159">abs</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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.415">conjugate</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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.425">conjugate</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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.466">hypot</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                            <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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.479">hypot</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                            <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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.748">arctan2</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                              <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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.761">arctan2</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                              <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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.1029">angle</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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.1041">angle</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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.1053">angle</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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.1067">angle</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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.1341">phaseAsComplexNumber</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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.1357">phaseAsComplexNumber</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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.1443">add</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>sets</code> - </dd>
+<dd><code>requireClone</code> - </dd>
+<dt><span class="returnLabel">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.1468">multiply</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>sets</code> - </dd>
+<dd><code>requireClone</code> - </dd>
+<dt><span class="returnLabel">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.1501">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/8/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/8/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="paramLabel">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="returnLabel">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.1587">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="paramLabel">Parameters:</span></dt>
+<dd><code>d</code> - input dataset</dd>
+<dd><code>x0</code> - coordinate</dd>
+<dt><span class="returnLabel">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.1621">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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>interpolated value</dd>
+</dl>
+</li>
+</ul>
+<a name="interpolate-double:A-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.1656">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="paramLabel">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.1712">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="paramLabel">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="returnLabel">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.1777">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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>bilinear interpolation</dd>
+</dl>
+</li>
+</ul>
+<a name="interpolate-double:A-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.1839">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="paramLabel">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.1931">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="paramLabel">Parameters:</span></dt>
+<dd><code>d</code> - input dataset</dd>
+<dd><code>x</code> - coordinates</dd>
+<dt><span class="returnLabel">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.1949">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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>interpolated value</dd>
+</dl>
+</li>
+</ul>
+<a name="interpolate-double:A-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.2045">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="paramLabel">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/8/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.2136">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="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-double-"><code>interpolate(Dataset, double)</code></a></span></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="paramLabel">Parameters:</span></dt>
+<dd><code>d</code> - input dataset</dd>
+<dd><code>x0</code> - coordinate</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>interpolated value</dd>
+</dl>
+</li>
+</ul>
+<a name="getLinear-double:A-org.eclipse.january.dataset.CompoundDataset-double-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLinear</h4>
+<pre><a href="https://docs.oracle.com/javase/8/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.2154">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="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate-double:A-org.eclipse.january.dataset.CompoundDataset-double-"><code>interpolate(double[], CompoundDataset, double)</code></a></span></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="paramLabel">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/8/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.2171">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="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-double-double-"><code>interpolate(Dataset, double, double)</code></a></span></div>
+<div class="block">Interpolated a value from 2D dataset</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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/8/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.2190">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="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-double-double-"><code>interpolate(Dataset, Dataset, double, double)</code></a></span></div>
+<div class="block">Interpolated a value from 2D dataset with mask</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>bilinear interpolation</dd>
+</dl>
+</li>
+</ul>
+<a name="getBilinear-double:A-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/8/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.2206">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="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use
+             <a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate-double:A-org.eclipse.january.dataset.CompoundDataset-double-double-"><code>interpolate(double[], CompoundDataset, double, double)</code></a></span></div>
+<div class="block">Interpolated a value from 2D compound dataset</div>
+<dl>
+<dt><span class="paramLabel">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.2660">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>n</code> - order of difference</dd>
+<dd><code>axis</code> - </dd>
+<dt><span class="returnLabel">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.2759">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="paramLabel">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="returnLabel">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.2836">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>axis</code> - </dd>
+<dt><span class="returnLabel">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/8/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.3113">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="paramLabel">Parameters:</span></dt>
+<dd><code>y</code> - </dd>
+<dd><code>x</code> - one or more datasets for dependent variables</dd>
+<dt><span class="returnLabel">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/Maths.html#line.3169">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/8/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/Maths.html#line.3173">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/8/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/Maths.html#line.3177">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/8/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 final&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.3181">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/Maths.html#line.3194">add</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                          <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>a + b</code>, 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/Maths.html#line.3205">add</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                          <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd><code>a + b</code>, 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/Maths.html#line.4288">subtract</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                               <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>a - b</code>, 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/Maths.html#line.4299">subtract</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                               <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd><code>a - b</code>, 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/Maths.html#line.5382">multiply</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                               <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>a * b</code>, 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/Maths.html#line.5393">multiply</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                               <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd><code>a * b</code>, 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/Maths.html#line.6476">divide</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                             <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>a / b</code>, 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/Maths.html#line.6487">divide</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                             <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd><code>a / b</code>, 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/Maths.html#line.7740">dividez</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                              <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>a / b</code>, 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/Maths.html#line.7751">dividez</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                              <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd><code>a / b</code>, 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/Maths.html#line.8974">divideTowardsFloor</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                         <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>a / b</code>, 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/Maths.html#line.8985">divideTowardsFloor</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                         <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd><code>a / b</code>, 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/Maths.html#line.10742">power</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                            <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>a ** b</code>, 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/Maths.html#line.10753">power</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                            <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd><code>a ** b</code>, 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/Maths.html#line.11856">remainder</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>a % b</code>, 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/Maths.html#line.11867">remainder</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd><code>a % b</code>, 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/Maths.html#line.12806">maximum</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                              <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.12817">maximum</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                              <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.13980">minimum</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                              <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.13991">minimum</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                              <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.15154">bitwiseAnd</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                 <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>a &amp; b</code>, 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/Maths.html#line.15165">bitwiseAnd</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                 <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd><code>a &amp; b</code>, 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/Maths.html#line.15542">bitwiseOr</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>a | b</code>, 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/Maths.html#line.15553">bitwiseOr</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd><code>a | b</code>, 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/Maths.html#line.15930">bitwiseXor</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                 <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>a ^ b</code>, 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/Maths.html#line.15941">bitwiseXor</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                 <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd><code>a ^ b</code>, 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/Maths.html#line.16318">leftShift</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>a &lt;&lt; b</code>, 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/Maths.html#line.16329">leftShift</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd><code>a &lt;&lt; b</code>, 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/Maths.html#line.16706">rightShift</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                 <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>a &gt;&gt; b</code>, 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/Maths.html#line.16717">rightShift</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                 <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd><code>a &gt;&gt; b</code>, 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/Maths.html#line.17094">unsignedRightShift</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                         <a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>a &gt;&gt;&gt; b</code>, 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/Maths.html#line.17105">unsignedRightShift</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                         <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd><code>a &gt;&gt;&gt; b</code>, 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/Maths.html#line.17490">bitwiseInvert</a>(<a href="https://docs.oracle.com/javase/8/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 - <code>~a</code>, bitwise invert (or NOT) each element</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.17500">bitwiseInvert</a>(<a href="https://docs.oracle.com/javase/8/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 - <code>~a</code>, bitwise invert (or NOT) each element</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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/Maths.html#line.17712">sin</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.17722">sin</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.18296">cos</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.18306">cos</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.18880">tan</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.18890">tan</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.19500">arcsin</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.19510">arcsin</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.20096">arccos</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.20106">arccos</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.20692">arctan</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.20702">arctan</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.21288">sinh</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.21298">sinh</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.21872">cosh</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.21882">cosh</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.22456">tanh</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.22466">tanh</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.23076">arcsinh</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.23086">arcsinh</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.23672">arccosh</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.23682">arccosh</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.24268">arctanh</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.24278">arctanh</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.24864">log</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.24874">log</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.25448">log2</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.25458">log2</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.26032">log10</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.26042">log10</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.26616">log1p</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.26626">log1p</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.27200">exp</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.27210">exp</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.27796">expm1</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.27806">expm1</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.28392">sqrt</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.28402">sqrt</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.28988">cbrt</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.28998">cbrt</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.29584">square</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.29594">square</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.30168">floor</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.30178">floor</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.30752">ceil</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.30762">ceil</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.31336">rint</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.31346">rint</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.31920">truncate</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.31930">truncate</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.32504">toDegrees</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.32514">toDegrees</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.33088">toRadians</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.33098">toRadians</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.33672">signum</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.33682">signum</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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/Maths.html#line.34256">negative</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.34266">negative</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="lowerClip-java.lang.Object-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>lowerClip</h4>
+<pre>public static&nbsp;<a href="../../../../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.34842">lowerClip</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;pa)</pre>
+<div class="block">lowerClip - clip elements to lower limit</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>pa</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.3</dd>
+</dl>
+</li>
+</ul>
+<a name="lowerClip-java.lang.Object-org.eclipse.january.dataset.Dataset-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>lowerClip</h4>
+<pre>public static&nbsp;<a href="../../../../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.34854">lowerClip</a>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;pa)</pre>
+<div class="block">lowerClip - clip elements to lower limit</div>
+<dl>
+<dt><span class="paramLabel">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>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.3</dd>
+</dl>
+</li>
+</ul>
+<a name="upperClip-java.lang.Object-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>upperClip</h4>
+<pre>public static&nbsp;<a href="../../../../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.35497">upperClip</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;pa)</pre>
+<div class="block">upperClip - clip elements to upper limit</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>pa</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.3</dd>
+</dl>
+</li>
+</ul>
+<a name="upperClip-java.lang.Object-org.eclipse.january.dataset.Dataset-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>upperClip</h4>
+<pre>public static&nbsp;<a href="../../../../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.35509">upperClip</a>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;pa)</pre>
+<div class="block">upperClip - clip elements to upper limit</div>
+<dl>
+<dt><span class="paramLabel">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>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.3</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/Maths.html#line.36152">clip</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                           <a href="https://docs.oracle.com/javase/8/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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>pa</code> - </dd>
+<dd><code>pb</code> - </dd>
+<dt><span class="returnLabel">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/Maths.html#line.36164">clip</a>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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="paramLabel">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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/NullIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/NullIterator.html
new file mode 100644
index 0000000..0a2037f
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/NullIterator.html
@@ -0,0 +1,369 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>NullIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="NullIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/NullIterator.html#NullIterator-int:A-int:A-">NullIterator</a></span>(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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/NullIterator.html#getPos--">getPos</a></span>()</code>
+<div class="block">Returns the current position of the iterator.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/NullIterator.html#hasNext--">hasNext</a></span>()</code>
+<div class="block">Returns <code>true</code> if there is an other element after the current
+ Slice.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/NullIterator.html#reset--">reset</a></span>()</code>
+<div class="block">Reset the Iterator to the first Slice.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.SliceIterator">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getShape--">getShape</a>, <a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getStart--">getStart</a>, <a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getStep--">getStep</a>, <a href="../../../../org/eclipse/january/dataset/SliceIterator.html#setStart-int...-">setStart</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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:A-int:A-">
+<!--   -->
+</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="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - shape of dataset</dd>
+<dd><code>sshape</code> - shape of slice</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasNext--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/NullIterator.html#line.23">hasNext</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#hasNext--">SliceIterator</a></code></span></div>
+<div class="block">Returns <code>true</code> if there is an other element after the current
+ Slice.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">Returns:</span></dt>
+<dd>Returns <code>true</code> if the iteration has more Slice, <code>false</code> in
+         the other case</dd>
+</dl>
+</li>
+</ul>
+<a name="getPos--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/NullIterator.html#line.28">getPos</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getPos--">SliceIterator</a></code></span></div>
+<div class="block">Returns the current position of the iterator.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">Returns:</span></dt>
+<dd>Iterator current position</dd>
+</dl>
+</li>
+</ul>
+<a name="reset--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/NullIterator.html#line.33">reset</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#reset--">SliceIterator</a></code></span></div>
+<div class="block">Reset the Iterator to the first Slice.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/ObjectDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/ObjectDataset.html
new file mode 100644
index 0000000..a1800e1
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/ObjectDataset.html
@@ -0,0 +1,1495 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ObjectDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ObjectDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ObjectDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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="seeLabel">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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#containsInfs--">containsInfs</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#containsNans--">containsNans</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getBoolean--">getBoolean</a></span>()</code>
+<div class="block">Get first item as a boolean.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getBoolean-int...-">getBoolean</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getBoolean-int-">getBoolean</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getBoolean-int-int-">getBoolean</a></span>(int&nbsp;i,
+          int&nbsp;j)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getByte--">getByte</a></span>()</code>
+<div class="block">Get first item as a byte.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getByte-int...-">getByte</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getByte-int-">getByte</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a byte.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getByte-int-int-">getByte</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get an item from given positionj as a byte.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getDouble--">getDouble</a></span>()</code>
+<div class="block">Get first item as a double.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getDouble-int...-">getDouble</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getDouble-int-">getDouble</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getDouble-int-int-">getDouble</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getElementBooleanAbs-int-">getElementBooleanAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getElementDoubleAbs-int-">getElementDoubleAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getElementLongAbs-int-">getElementLongAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getFloat--">getFloat</a></span>()</code>
+<div class="block">Get first item as a float.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getFloat-int...-">getFloat</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getFloat-int-">getFloat</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getFloat-int-int-">getFloat</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getInt--">getInt</a></span>()</code>
+<div class="block">Get first item as an int.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getInt-int...-">getInt</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getInt-int-">getInt</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getInt-int-int-">getInt</a></span>(int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getLong--">getLong</a></span>()</code>
+<div class="block">Get first item as a long.</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getLong-int...-">getLong</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getLong-int-">getLong</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getLong-int-int-">getLong</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getShort--">getShort</a></span>()</code>
+<div class="block">Get first item as a short.</div>
+</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getShort-int...-">getShort</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getShort-int-">getShort</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getShort-int-int-">getShort</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr id="i34" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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 id="i35" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getStringAbs-int-">getStringAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr id="i36" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getView-boolean-">getView</a></span>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr id="i37" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i38" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i39" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#ifloor--">ifloor</a></span>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr id="i40" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i41" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i42" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i43" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i44" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#maxPos-boolean...-">maxPos</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i45" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#minPos-boolean...-">minPos</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i46" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#residual-java.lang.Object-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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-boolean-"><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:A-boolean:A-org.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-org.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-int-">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-int-">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-int-">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-org.eclipse.january.dataset.Dataset-boolean-">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-int...-">set</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#set-java.lang.Object-int-">set</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#set-java.lang.Object-int-int-">set</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setAbs-int-java.lang.Object-">setAbs</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setByIndexes-java.lang.Object-java.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-int...-">setItem</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setItem-java.lang.Object-int-">setItem</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setItem-java.lang.Object-int-int-">setItem</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setItemDirect-int-int-java.lang.Object-">setItemDirect</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">setItemsOnAxes</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setObjectAbs-int-java.lang.Object-">setObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setSlice-java.lang.Object-org.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-boolean...-">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-int-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps-double-double-double-">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast-boolean-int-int-">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#cast-int-java.lang.Class-boolean-">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-int-">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-org.eclipse.january.dataset.AbstractDataset-boolean-boolean-">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.Dataset-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-int-int:A-int:A-int-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-org.eclipse.january.dataset.Dataset-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-int-int:A-int:A-int-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData-java.lang.Object-int-int:A-">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-int-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-int:A-">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-boolean-">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#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-int-">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-int-">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#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-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-int:A-int:A-int:A-">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:A-int:A-int:A-">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:A-boolean:A-">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView-int:A-int:A-int:A-">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:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max-int-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int:A-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int-boolean...-">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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer-java.io.Serializable-">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength-int-">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape-int...-">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int:A-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes-int-int-">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-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-boolean-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-boolean-boolean...-">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:A-int...-">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-boolean-">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#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#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName--">getName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors--">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata-int:A-int:A-">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors-java.io.Serializable-">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty--">setDirty</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata--">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata-org.eclipse.january.metadata.MetadataType-">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata-java.lang.Class-">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass--">getElementClass</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>
+<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="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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">ILazyDataset</a></code></span></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">AbstractDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="returnLabel">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.118">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.123">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.128">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.133">getDouble</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble--">Dataset</a></code></span></div>
+<div class="block">Get first item as a double. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.138">getDouble</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a double. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.143">getDouble</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a double. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getDouble-int-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="returnLabel">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.148">getDouble</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.153">getFloat</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat--">Dataset</a></code></span></div>
+<div class="block">Get first item as a float. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.158">getFloat</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a float. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.163">getFloat</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a float. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getFloat-int-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="returnLabel">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.168">getFloat</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.173">getLong</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong--">Dataset</a></code></span></div>
+<div class="block">Get first item as a long. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.178">getLong</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a long. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.183">getLong</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a long. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getLong-int-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="returnLabel">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.188">getLong</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.193">getInt</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt--">Dataset</a></code></span></div>
+<div class="block">Get first item as an int. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.198">getInt</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an int. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.203">getInt</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an int. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getInt-int-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="returnLabel">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.208">getInt</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.213">getShort</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort--">Dataset</a></code></span></div>
+<div class="block">Get first item as a short. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.218">getShort</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a short. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.223">getShort</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a short. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getShort-int-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="returnLabel">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.228">getShort</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.233">getByte</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte--">Dataset</a></code></span></div>
+<div class="block">Get first item as a byte. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.238">getByte</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a byte. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.243">getByte</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given positionj as a byte. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getByte-int-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="returnLabel">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.248">getByte</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.253">getBoolean</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean--">Dataset</a></code></span></div>
+<div class="block">Get first item as a boolean. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.258">getBoolean</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.263">getBoolean</a>(int&nbsp;i,
+                          int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getBoolean-int-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="returnLabel">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.268">getBoolean</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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/8/docs/api/java/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.273">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.279">minPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">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="returnLabel">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.284">maxPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">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="returnLabel">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.289">containsInfs</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.294">containsNans</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.299">iadd</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place addition with object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.304">isubtract</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place subtraction with object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.309">imultiply</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place multiplication with object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.314">idivide</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place division with object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.319">iremainder</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place remainder</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.324">ifloor</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor--">Dataset</a></code></span></div>
+<div class="block">In-place floor</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.329">ipower</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place raise to power of object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.334">residual</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">Calculate residual of dataset with object o
+ See <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-boolean-"><code>Dataset.residual(Object o, boolean ignoreNaNs)</code></a> with ignoreNaNs = false</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ObjectDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.ObjectDatasetBase">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/ObjectDatasetBase.html b/apidocs/2.3.0/org/eclipse/january/dataset/ObjectDatasetBase.html
new file mode 100644
index 0000000..a484681
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/ObjectDatasetBase.html
@@ -0,0 +1,2262 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ObjectDatasetBase (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ObjectDatasetBase (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":9,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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="seeLabel">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="memberSummary" 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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#data">data</a></span></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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#containsInfs--">containsInfs</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#containsInvalidNumbers--">containsInvalidNumbers</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#containsNans--">containsNans</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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 id="i5" class="rowColor">
+<td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#createArray-int-">createArray</a></span>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i7" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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 id="i9" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#get--">get</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#get-int...-">get</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#get-int-">get</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#get-int-int-">get</a></span>(int&nbsp;i,
+   int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getAbs-int-">getAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get a value from an absolute index of the internal array.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getBoolean--">getBoolean</a></span>()</code>
+<div class="block">Get first item as a boolean.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getBoolean-int...-">getBoolean</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getBoolean-int-">getBoolean</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getBoolean-int-int-">getBoolean</a></span>(int&nbsp;i,
+          int&nbsp;j)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getBufferLength--">getBufferLength</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getByte--">getByte</a></span>()</code>
+<div class="block">Get first item as a byte.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getByte-int...-">getByte</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getByte-int-">getByte</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a byte.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getByte-int-int-">getByte</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get an item from given positionj as a byte.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getData--">getData</a></span>()</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 id="i24" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getDouble--">getDouble</a></span>()</code>
+<div class="block">Get first item as a double.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getDouble-int...-">getDouble</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getDouble-int-">getDouble</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getDouble-int-int-">getDouble</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getDType--">getDType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getElementBooleanAbs-int-">getElementBooleanAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getElementDoubleAbs-int-">getElementDoubleAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getElementLongAbs-int-">getElementLongAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getFloat--">getFloat</a></span>()</code>
+<div class="block">Get first item as a float.</div>
+</td>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getFloat-int...-">getFloat</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i34" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getFloat-int-">getFloat</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr id="i35" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getFloat-int-int-">getFloat</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getInt--">getInt</a></span>()</code>
+<div class="block">Get first item as an int.</div>
+</td>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getInt-int...-">getInt</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i38" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getInt-int-">getInt</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getInt-int-int-">getInt</a></span>(int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getLong--">getLong</a></span>()</code>
+<div class="block">Get first item as a long.</div>
+</td>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getLong-int...-">getLong</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getLong-int-">getLong</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr id="i43" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getLong-int-int-">getLong</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr id="i44" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getObject--">getObject</a></span>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr id="i45" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getObject-int...-">getObject</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i46" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getObject-int-">getObject</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i47" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getObject-int-int-">getObject</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i48" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getObjectAbs-int-">getObjectAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr id="i49" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getShort--">getShort</a></span>()</code>
+<div class="block">Get first item as a short.</div>
+</td>
+</tr>
+<tr id="i50" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getShort-int...-">getShort</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i51" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getShort-int-">getShort</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr id="i52" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getShort-int-int-">getShort</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr id="i53" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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 id="i54" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getString--">getString</a></span>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr id="i55" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getString-int...-">getString</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i56" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getString-int-">getString</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i57" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getString-int-int-">getString</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i58" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getStringAbs-int-">getStringAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr id="i59" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getUniqueItems--">getUniqueItems</a></span>()</code>
+<div class="block">Get unique items</div>
+</td>
+</tr>
+<tr id="i60" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getView-boolean-">getView</a></span>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr id="i61" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i62" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i63" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i64" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#ifloor--">ifloor</a></span>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr id="i65" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i66" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i67" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i68" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i69" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#maxPos-boolean...-">maxPos</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i70" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#minPos-boolean...-">minPos</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i71" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i72" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#resize-int...-">resize</a></span>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr id="i73" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#set-java.lang.Object-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i74" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#set-java.lang.Object-int...-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i75" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#set-java.lang.Object-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i76" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#set-java.lang.Object-int-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i77" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setAbs-int-java.lang.Object-">setAbs</a></span>(int&nbsp;index,
+      <a href="https://docs.oracle.com/javase/8/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 id="i78" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i79" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i80" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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 id="i81" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setData--">setData</a></span>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr id="i82" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setItem-java.lang.Object-">setItem</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i83" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setItem-java.lang.Object-int...-">setItem</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i84" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setItem-java.lang.Object-int-">setItem</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i85" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setItem-java.lang.Object-int-int-">setItem</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i86" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setItemDirect-int-int-java.lang.Object-">setItemDirect</a></span>(int&nbsp;dindex,
+             int&nbsp;sindex,
+             <a href="https://docs.oracle.com/javase/8/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 id="i87" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">setItemsOnAxes</a></span>(int[]&nbsp;pos,
+              boolean[]&nbsp;axes,
+              <a href="https://docs.oracle.com/javase/8/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 id="i88" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setObjectAbs-int-java.lang.Object-">setObjectAbs</a></span>(int&nbsp;index,
+            <a href="https://docs.oracle.com/javase/8/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 id="i89" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i90" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#sort-java.lang.Integer-">sort</a></span>(<a href="https://docs.oracle.com/javase/8/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-boolean...-">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-int-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps-double-double-double-">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast-boolean-int-int-">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#cast-int-java.lang.Class-boolean-">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-int-">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-org.eclipse.january.dataset.AbstractDataset-boolean-boolean-">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.Dataset-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-int-int:A-int:A-int-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-org.eclipse.january.dataset.Dataset-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-int-int:A-int:A-int-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData-java.lang.Object-int-int:A-">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-int-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-int:A-">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-boolean-">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#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-int-">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-int-">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#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-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-int:A-int:A-int:A-">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:A-int:A-int:A-">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:A-boolean:A-">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView-int:A-int:A-int:A-">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:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max-int-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int:A-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int-boolean...-">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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer-java.io.Serializable-">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength-int-">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape-int...-">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int:A-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes-int-int-">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-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-boolean-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-boolean-boolean...-">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:A-int...-">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-boolean-">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#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#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName--">getName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors--">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata-int:A-int:A-">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors-java.io.Serializable-">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty--">setDirty</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata--">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata-org.eclipse.january.metadata.MetadataType-">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata-java.lang.Class-">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass--">getElementClass</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>
+<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;<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData--">AbstractDataset</a></code></span></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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/8/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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>type of dataset item</dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.157">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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/ObjectDatasetBase.html#line.195">hashCode</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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.200">clone</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">ILazyDataset</a></code></span></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.241">fill</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">Fill dataset with given object</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.256">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="returnLabel">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.261">getBufferLength</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.268">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="returnLabel">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/8/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.283">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="paramLabel">Parameters:</span></dt>
+<dd><code>index</code> - absolute index</dd>
+<dt><span class="returnLabel">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.288">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.293">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.298">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.303">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.308">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.322">setAbs</a>(int&nbsp;index,
+                   <a href="https://docs.oracle.com/javase/8/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="paramLabel">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.328">setItemDirect</a>(int&nbsp;dindex,
+                             int&nbsp;sindex,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.lang.Object-">AbstractDataset</a></code></span></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.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.335">setObjectAbs</a>(int&nbsp;index,
+                         <a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs-int-java.lang.Object-">Dataset</a></code></span></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/8/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.347">get</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item in first position</dd>
+<dt><span class="simpleTagLabel">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/8/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.355">get</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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/8/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">get</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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/8/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.372">get</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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/8/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.377">getObject</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject--">Dataset</a></code></span></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.382">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.387">getObject</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.392">getObject</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.397">getString</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString--">Dataset</a></code></span></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.402">getString</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.407">getString</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.412">getString</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.417">getDouble</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble--">Dataset</a></code></span></div>
+<div class="block">Get first item as a double. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.422">getDouble</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a double. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.427">getDouble</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a double. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.432">getDouble</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.437">getFloat</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat--">Dataset</a></code></span></div>
+<div class="block">Get first item as a float. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.442">getFloat</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a float. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.447">getFloat</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a float. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.452">getFloat</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.457">getLong</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong--">Dataset</a></code></span></div>
+<div class="block">Get first item as a long. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.462">getLong</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a long. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.467">getLong</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a long. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.472">getLong</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.477">getInt</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt--">Dataset</a></code></span></div>
+<div class="block">Get first item as an int. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.482">getInt</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an int. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.487">getInt</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an int. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.492">getInt</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.497">getShort</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort--">Dataset</a></code></span></div>
+<div class="block">Get first item as a short. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.502">getShort</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a short. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.507">getShort</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a short. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.512">getShort</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.517">getByte</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte--">Dataset</a></code></span></div>
+<div class="block">Get first item as a byte. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.522">getByte</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a byte. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.527">getByte</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given positionj as a byte. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.532">getByte</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.537">getBoolean</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean--">Dataset</a></code></span></div>
+<div class="block">Get first item as a boolean. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.542">getBoolean</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.547">getBoolean</a>(int&nbsp;i,
+                          int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.552">getBoolean</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.562">setItem</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - </dd>
+<dt><span class="simpleTagLabel">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.572">setItem</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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.583">setItem</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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.593">setItem</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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.598">set</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-">Dataset</a></code></span></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.603">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-">Dataset</a></code></span></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.608">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-int-">Dataset</a></code></span></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.613">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set-java.lang.Object-int...-">IDataset</a></code></span></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.622">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize-int...-">IDataset</a></code></span></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.646">sort</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sort-java.lang.Integer-">Dataset</a></code></span></div>
+<div class="block">In-place sort of dataset</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis</code> - to sort along. If null, then the flattened view is sorted</dd>
+<dt><span class="returnLabel">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.673">getUniqueItems</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getUniqueItems--">Dataset</a></code></span></div>
+<div class="block">Get unique items</div>
+<dl>
+<dt><span class="returnLabel">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.690">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">AbstractDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="returnLabel">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.702">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">Dataset</a></code></span></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.714">setByBoolean</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></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="paramLabel">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="returnLabel">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.742">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.769">setByIndexes</a>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.808">setSlice</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>The dataset with the sliced set to object</dd>
+</dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes-int:A-boolean:A-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.848">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl>
+<dt><span class="paramLabel">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:A-boolean:A-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.867">setItemsOnAxes</a>(int[]&nbsp;pos,
+                           boolean[]&nbsp;axes,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">Dataset</a></code></span></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.898">maxPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.914">minPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.930">containsNans</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.935">containsInfs</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.940">containsInvalidNumbers</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.945">iadd</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place addition with object o</div>
+<dl>
+<dt><span class="returnLabel">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.950">isubtract</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place subtraction with object o</div>
+<dl>
+<dt><span class="returnLabel">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.955">imultiply</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place multiplication with object o</div>
+<dl>
+<dt><span class="returnLabel">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.960">idivide</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place division with object o</div>
+<dl>
+<dt><span class="returnLabel">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.965">ifloor</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor--">Dataset</a></code></span></div>
+<div class="block">In-place floor</div>
+<dl>
+<dt><span class="returnLabel">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.970">iremainder</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place remainder</div>
+<dl>
+<dt><span class="returnLabel">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.975">ipower</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place raise to power of object o</div>
+<dl>
+<dt><span class="returnLabel">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.980">residual</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">Dataset</a></code></span></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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/Operations.Addition.html b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.Addition.html
new file mode 100644
index 0000000..67877fc
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.Addition.html
@@ -0,0 +1,413 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.Addition (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Operations.Addition (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Addition.html#Addition--">Addition</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Addition.html#booleanOperate-long-long-">booleanOperate</a></span>(long&nbsp;a,
+              long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Addition.html#complexOperate-double:A-double-double-double-double-">complexOperate</a></span>(double[]&nbsp;out,
+              double&nbsp;ra,
+              double&nbsp;ia,
+              double&nbsp;rb,
+              double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Addition.html#doubleOperate-double-double-">doubleOperate</a></span>(double&nbsp;a,
+             double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Addition.html#longOperate-long-long-">longOperate</a></span>(long&nbsp;a,
+           long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Addition.html#toString--">toString</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Addition.html#toString-java.lang.String-java.lang.String-">toString</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="Addition--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Addition</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Addition.html#line.115">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate-long-long-">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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate-long-long-">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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate-double-double-">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="returnLabel">Returns:</span></dt>
+<dd>a op b</dd>
+</dl>
+</li>
+</ul>
+<a name="complexOperate-double:A-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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate-double:A-double-double-double-double-">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="paramLabel">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/8/docs/api/java/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/8/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/8/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="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#toString-java.lang.String-java.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="returnLabel">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/8/docs/api/java/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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/Operations.Division.html b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.Division.html
new file mode 100644
index 0000000..88afc59
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.Division.html
@@ -0,0 +1,417 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.Division (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Operations.Division (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Division.html#Division--">Division</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Division.html#booleanOperate-long-long-">booleanOperate</a></span>(long&nbsp;a,
+              long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Division.html#complexOperate-double:A-double-double-double-double-">complexOperate</a></span>(double[]&nbsp;out,
+              double&nbsp;ra,
+              double&nbsp;ia,
+              double&nbsp;rb,
+              double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Division.html#doubleOperate-double-double-">doubleOperate</a></span>(double&nbsp;a,
+             double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Division.html#longOperate-long-long-">longOperate</a></span>(long&nbsp;a,
+           long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Division.html#toString--">toString</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Division.html#toString-java.lang.String-java.lang.String-">toString</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="Division--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Division</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Division.html#line.226">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate-long-long-">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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate-long-long-">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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate-double-double-">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="returnLabel">Returns:</span></dt>
+<dd>a op b</dd>
+</dl>
+</li>
+</ul>
+<a name="complexOperate-double:A-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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate-double:A-double-double-double-double-">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="paramLabel">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/8/docs/api/java/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/8/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/8/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="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#toString-java.lang.String-java.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="returnLabel">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/8/docs/api/java/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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html
new file mode 100644
index 0000000..1602541
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html
@@ -0,0 +1,320 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.DivisionTowardsFloor (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Operations.DivisionTowardsFloor (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html#DivisionTowardsFloor--">DivisionTowardsFloor</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html#longOperate-long-long-">longOperate</a></span>(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-long-">booleanOperate</a>, <a href="../../../../org/eclipse/january/dataset/Operations.Division.html#complexOperate-double:A-double-double-double-double-">complexOperate</a>, <a href="../../../../org/eclipse/january/dataset/Operations.Division.html#doubleOperate-double-double-">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-java.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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="DivisionTowardsFloor--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DivisionTowardsFloor</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html#line.321">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate-long-long-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.Division.html#longOperate-long-long-">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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/Operations.DivisionWithZero.html b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.DivisionWithZero.html
new file mode 100644
index 0000000..6862333
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.DivisionWithZero.html
@@ -0,0 +1,349 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.DivisionWithZero (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Operations.DivisionWithZero (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.DivisionWithZero.html#DivisionWithZero--">DivisionWithZero</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.DivisionWithZero.html#complexOperate-double:A-double-double-double-double-">complexOperate</a></span>(double[]&nbsp;out,
+              double&nbsp;ra,
+              double&nbsp;ia,
+              double&nbsp;rb,
+              double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.DivisionWithZero.html#doubleOperate-double-double-">doubleOperate</a></span>(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-long-">booleanOperate</a>, <a href="../../../../org/eclipse/january/dataset/Operations.Division.html#longOperate-long-long-">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-java.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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="DivisionWithZero--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DivisionWithZero</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.DivisionWithZero.html#line.281">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate-double-double-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.Division.html#doubleOperate-double-double-">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="returnLabel">Returns:</span></dt>
+<dd>a op b</dd>
+</dl>
+</li>
+</ul>
+<a name="complexOperate-double:A-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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate-double:A-double-double-double-double-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.Division.html#complexOperate-double:A-double-double-double-double-">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="paramLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/Operations.Exponentiation.html b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.Exponentiation.html
new file mode 100644
index 0000000..e7f0058
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.Exponentiation.html
@@ -0,0 +1,396 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.Exponentiation (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Operations.Exponentiation (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Exponentiation.html#Exponentiation--">Exponentiation</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Exponentiation.html#complexOperate-double:A-double-double-double-double-">complexOperate</a></span>(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 id="i1" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Exponentiation.html#doubleOperate-double-double-">doubleOperate</a></span>(double&nbsp;a,
+             double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Exponentiation.html#toString--">toString</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Exponentiation.html#toString-java.lang.String-java.lang.String-">toString</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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-long-">booleanOperate</a>, <a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#longOperate-long-long-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="Exponentiation--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Exponentiation</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Exponentiation.html#line.376">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate-double-double-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#doubleOperate-double-double-">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="returnLabel">Returns:</span></dt>
+<dd>a op b</dd>
+</dl>
+</li>
+</ul>
+<a name="complexOperate-double:A-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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#complexOperate-double:A-double-double-double-double-">BinaryOperation.Stub</a></code></span></div>
+<div class="block">override this</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate-double:A-double-double-double-double-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#complexOperate-double:A-double-double-double-double-">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="paramLabel">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/8/docs/api/java/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/8/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/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#toString-java.lang.String-java.lang.String-">BinaryOperation.Stub</a></code></span></div>
+<div class="block">override this</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#toString-java.lang.String-java.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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#toString-java.lang.String-java.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="returnLabel">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/8/docs/api/java/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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/Operations.Maximum.html b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.Maximum.html
new file mode 100644
index 0000000..c55222c
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.Maximum.html
@@ -0,0 +1,413 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.Maximum (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Operations.Maximum (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Maximum.html#Maximum--">Maximum</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Maximum.html#booleanOperate-long-long-">booleanOperate</a></span>(long&nbsp;a,
+              long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Maximum.html#complexOperate-double:A-double-double-double-double-">complexOperate</a></span>(double[]&nbsp;out,
+              double&nbsp;ra,
+              double&nbsp;ia,
+              double&nbsp;rb,
+              double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Maximum.html#doubleOperate-double-double-">doubleOperate</a></span>(double&nbsp;a,
+             double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Maximum.html#longOperate-long-long-">longOperate</a></span>(long&nbsp;a,
+           long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Maximum.html#toString--">toString</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Maximum.html#toString-java.lang.String-java.lang.String-">toString</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="Maximum--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Maximum</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Maximum.html#line.405">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate-long-long-">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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate-long-long-">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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate-double-double-">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="returnLabel">Returns:</span></dt>
+<dd>a op b</dd>
+</dl>
+</li>
+</ul>
+<a name="complexOperate-double:A-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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate-double:A-double-double-double-double-">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="paramLabel">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/8/docs/api/java/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/8/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/8/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="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#toString-java.lang.String-java.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="returnLabel">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/8/docs/api/java/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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/Operations.Minimum.html b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.Minimum.html
new file mode 100644
index 0000000..50e8c9e
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.Minimum.html
@@ -0,0 +1,413 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.Minimum (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Operations.Minimum (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Minimum.html#Minimum--">Minimum</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Minimum.html#booleanOperate-long-long-">booleanOperate</a></span>(long&nbsp;a,
+              long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Minimum.html#complexOperate-double:A-double-double-double-double-">complexOperate</a></span>(double[]&nbsp;out,
+              double&nbsp;ra,
+              double&nbsp;ia,
+              double&nbsp;rb,
+              double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Minimum.html#doubleOperate-double-double-">doubleOperate</a></span>(double&nbsp;a,
+             double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Minimum.html#longOperate-long-long-">longOperate</a></span>(long&nbsp;a,
+           long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Minimum.html#toString--">toString</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Minimum.html#toString-java.lang.String-java.lang.String-">toString</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="Minimum--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Minimum</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Minimum.html#line.440">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate-long-long-">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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate-long-long-">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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate-double-double-">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="returnLabel">Returns:</span></dt>
+<dd>a op b</dd>
+</dl>
+</li>
+</ul>
+<a name="complexOperate-double:A-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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate-double:A-double-double-double-double-">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="paramLabel">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/8/docs/api/java/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/8/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/8/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="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#toString-java.lang.String-java.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="returnLabel">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/8/docs/api/java/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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/Operations.Multiplication.html b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.Multiplication.html
new file mode 100644
index 0000000..1925f4e
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.Multiplication.html
@@ -0,0 +1,413 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.Multiplication (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Operations.Multiplication (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Multiplication.html#Multiplication--">Multiplication</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Multiplication.html#booleanOperate-long-long-">booleanOperate</a></span>(long&nbsp;a,
+              long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Multiplication.html#complexOperate-double:A-double-double-double-double-">complexOperate</a></span>(double[]&nbsp;out,
+              double&nbsp;ra,
+              double&nbsp;ia,
+              double&nbsp;rb,
+              double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Multiplication.html#doubleOperate-double-double-">doubleOperate</a></span>(double&nbsp;a,
+             double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Multiplication.html#longOperate-long-long-">longOperate</a></span>(long&nbsp;a,
+           long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Multiplication.html#toString--">toString</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Multiplication.html#toString-java.lang.String-java.lang.String-">toString</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="Multiplication--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Multiplication</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Multiplication.html#line.189">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate-long-long-">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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate-long-long-">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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate-double-double-">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="returnLabel">Returns:</span></dt>
+<dd>a op b</dd>
+</dl>
+</li>
+</ul>
+<a name="complexOperate-double:A-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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate-double:A-double-double-double-double-">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="paramLabel">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/8/docs/api/java/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/8/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/8/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="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#toString-java.lang.String-java.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="returnLabel">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/8/docs/api/java/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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/Operations.Negation.html b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.Negation.html
new file mode 100644
index 0000000..8f92a03
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.Negation.html
@@ -0,0 +1,401 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.Negation (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Operations.Negation (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Negation.html#Negation--">Negation</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Negation.html#booleanOperate-long-">booleanOperate</a></span>(long&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Negation.html#complexOperate-double:A-double-double-">complexOperate</a></span>(double[]&nbsp;out,
+              double&nbsp;ra,
+              double&nbsp;ia)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Negation.html#doubleOperate-double-">doubleOperate</a></span>(double&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Negation.html#longOperate-long-">longOperate</a></span>(long&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Negation.html#toString--">toString</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Negation.html#toString-java.lang.String-">toString</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="Negation--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Negation</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Negation.html#line.78">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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>op(a)a</dd>
+</dl>
+</li>
+</ul>
+<a name="complexOperate-double:A-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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html#complexOperate-double:A-double-double-">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="paramLabel">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/8/docs/api/java/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/8/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="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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/8/docs/api/java/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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/Operations.Remainder.html b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.Remainder.html
new file mode 100644
index 0000000..349bb08
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.Remainder.html
@@ -0,0 +1,413 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.Remainder (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Operations.Remainder (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Remainder.html#Remainder--">Remainder</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Remainder.html#booleanOperate-long-long-">booleanOperate</a></span>(long&nbsp;a,
+              long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Remainder.html#complexOperate-double:A-double-double-double-double-">complexOperate</a></span>(double[]&nbsp;out,
+              double&nbsp;ra,
+              double&nbsp;ia,
+              double&nbsp;rb,
+              double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Remainder.html#doubleOperate-double-double-">doubleOperate</a></span>(double&nbsp;a,
+             double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Remainder.html#longOperate-long-long-">longOperate</a></span>(long&nbsp;a,
+           long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Remainder.html#toString--">toString</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Remainder.html#toString-java.lang.String-java.lang.String-">toString</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="Remainder--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Remainder</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Remainder.html#line.340">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate-long-long-">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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate-long-long-">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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate-double-double-">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="returnLabel">Returns:</span></dt>
+<dd>a op b</dd>
+</dl>
+</li>
+</ul>
+<a name="complexOperate-double:A-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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate-double:A-double-double-double-double-">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="paramLabel">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/8/docs/api/java/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/8/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/8/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="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#toString-java.lang.String-java.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="returnLabel">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/8/docs/api/java/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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/Operations.Subtraction.html b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.Subtraction.html
new file mode 100644
index 0000000..ceda031
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.Subtraction.html
@@ -0,0 +1,413 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.Subtraction (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Operations.Subtraction (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Subtraction.html#Subtraction--">Subtraction</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Subtraction.html#booleanOperate-long-long-">booleanOperate</a></span>(long&nbsp;a,
+              long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Subtraction.html#complexOperate-double:A-double-double-double-double-">complexOperate</a></span>(double[]&nbsp;out,
+              double&nbsp;ra,
+              double&nbsp;ia,
+              double&nbsp;rb,
+              double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Subtraction.html#doubleOperate-double-double-">doubleOperate</a></span>(double&nbsp;a,
+             double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Subtraction.html#longOperate-long-long-">longOperate</a></span>(long&nbsp;a,
+           long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Subtraction.html#toString--">toString</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Subtraction.html#toString-java.lang.String-java.lang.String-">toString</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="Subtraction--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Subtraction</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Subtraction.html#line.152">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate-long-long-">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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate-long-long-">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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate-double-double-">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="returnLabel">Returns:</span></dt>
+<dd>a op b</dd>
+</dl>
+</li>
+</ul>
+<a name="complexOperate-double:A-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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate-double:A-double-double-double-double-">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="paramLabel">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/8/docs/api/java/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/8/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/8/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="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#toString-java.lang.String-java.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="returnLabel">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/8/docs/api/java/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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/Operations.UseBase.html b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.UseBase.html
new file mode 100644
index 0000000..5249477
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.UseBase.html
@@ -0,0 +1,428 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.UseBase (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Operations.UseBase (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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 <code>a &gt; b</code> 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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#br">br</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#dr">dr</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#lr">lr</a></span></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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#booleanOperate-long-long-">booleanOperate</a></span>(long&nbsp;a,
+              long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#complexOperate-double:A-double-double-double-double-">complexOperate</a></span>(double[]&nbsp;out,
+              double&nbsp;ra,
+              double&nbsp;ia,
+              double&nbsp;rb,
+              double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#doubleOperate-double-double-">doubleOperate</a></span>(double&nbsp;a,
+             double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#longOperate-long-long-">longOperate</a></span>(long&nbsp;a,
+           long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#toString-java.lang.String-java.lang.String-">toString</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate-long-long-">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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate-long-long-">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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate-double-double-">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="returnLabel">Returns:</span></dt>
+<dd>a op b</dd>
+</dl>
+</li>
+</ul>
+<a name="complexOperate-double:A-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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate-double:A-double-double-double-double-">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="paramLabel">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/8/docs/api/java/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/8/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/8/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="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#toString-java.lang.String-java.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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/Operations.UseIfEqualTo.html b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.UseIfEqualTo.html
new file mode 100644
index 0000000..4cb703c
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.UseIfEqualTo.html
@@ -0,0 +1,471 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.UseIfEqualTo (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Operations.UseIfEqualTo (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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 <code>a == b</code> 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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html#UseIfEqualTo-boolean-long-double-double-">UseIfEqualTo</a></span>(boolean&nbsp;br,
+            long&nbsp;lr,
+            double&nbsp;dr,
+            double&nbsp;di)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html#UseIfEqualTo-org.apache.commons.math3.complex.Complex-">UseIfEqualTo</a></span>(org.apache.commons.math3.complex.Complex&nbsp;z)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html#UseIfEqualTo-java.lang.Number-">UseIfEqualTo</a></span>(<a href="https://docs.oracle.com/javase/8/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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html#booleanOperate-long-long-">booleanOperate</a></span>(long&nbsp;a,
+              long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html#complexOperate-double:A-double-double-double-double-">complexOperate</a></span>(double[]&nbsp;out,
+              double&nbsp;ra,
+              double&nbsp;ia,
+              double&nbsp;rb,
+              double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html#doubleOperate-double-double-">doubleOperate</a></span>(double&nbsp;a,
+             double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html#longOperate-long-long-">longOperate</a></span>(long&nbsp;a,
+           long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html#toString--">toString</a></span>()</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-java.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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="UseIfEqualTo-boolean-long-double-double-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UseIfEqualTo</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfEqualTo.html#line.745">UseIfEqualTo</a>(boolean&nbsp;br,
+                    long&nbsp;lr,
+                    double&nbsp;dr,
+                    double&nbsp;di)</pre>
+<dl>
+<dt><span class="paramLabel">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="UseIfEqualTo-java.lang.Number-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UseIfEqualTo</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfEqualTo.html#line.754">UseIfEqualTo</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>r</code> - given value as Number</dd>
+</dl>
+</li>
+</ul>
+<a name="UseIfEqualTo-org.apache.commons.math3.complex.Complex-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>UseIfEqualTo</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfEqualTo.html#line.763">UseIfEqualTo</a>(org.apache.commons.math3.complex.Complex&nbsp;z)</pre>
+<dl>
+<dt><span class="paramLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate-long-long-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#booleanOperate-long-long-">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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate-long-long-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#longOperate-long-long-">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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate-double-double-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#doubleOperate-double-double-">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="returnLabel">Returns:</span></dt>
+<dd>a op b</dd>
+</dl>
+</li>
+</ul>
+<a name="complexOperate-double:A-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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate-double:A-double-double-double-double-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#complexOperate-double:A-double-double-double-double-">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="paramLabel">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/8/docs/api/java/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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.Operations.UseBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/Operations.UseIfGreaterThan.html b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.UseIfGreaterThan.html
new file mode 100644
index 0000000..db66de5
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.UseIfGreaterThan.html
@@ -0,0 +1,452 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.UseIfGreaterThan (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Operations.UseIfGreaterThan (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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 <code>a &gt; b</code> 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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#UseIfGreaterThan-boolean-long-double-">UseIfGreaterThan</a></span>(boolean&nbsp;br,
+                long&nbsp;lr,
+                double&nbsp;dr)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#UseIfGreaterThan-java.lang.Number-">UseIfGreaterThan</a></span>(<a href="https://docs.oracle.com/javase/8/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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#booleanOperate-long-long-">booleanOperate</a></span>(long&nbsp;a,
+              long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#complexOperate-double:A-double-double-double-double-">complexOperate</a></span>(double[]&nbsp;out,
+              double&nbsp;ra,
+              double&nbsp;ia,
+              double&nbsp;rb,
+              double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#doubleOperate-double-double-">doubleOperate</a></span>(double&nbsp;a,
+             double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#longOperate-long-long-">longOperate</a></span>(long&nbsp;a,
+           long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#toString--">toString</a></span>()</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-java.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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="UseIfGreaterThan-boolean-long-double-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UseIfGreaterThan</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#line.541">UseIfGreaterThan</a>(boolean&nbsp;br,
+                        long&nbsp;lr,
+                        double&nbsp;dr)</pre>
+<dl>
+<dt><span class="paramLabel">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="UseIfGreaterThan-java.lang.Number-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>UseIfGreaterThan</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#line.549">UseIfGreaterThan</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate-long-long-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#booleanOperate-long-long-">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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate-long-long-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#longOperate-long-long-">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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate-double-double-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#doubleOperate-double-double-">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="returnLabel">Returns:</span></dt>
+<dd>a op b</dd>
+</dl>
+</li>
+</ul>
+<a name="complexOperate-double:A-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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate-double:A-double-double-double-double-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#complexOperate-double:A-double-double-double-double-">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="paramLabel">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/8/docs/api/java/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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.Operations.UseBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html
new file mode 100644
index 0000000..4e7c1b7
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html
@@ -0,0 +1,452 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.UseIfGreaterThanOrEqualTo (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Operations.UseIfGreaterThanOrEqualTo (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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 <code>a &gt;= b</code> 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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#UseIfGreaterThanOrEqualTo-boolean-long-double-">UseIfGreaterThanOrEqualTo</a></span>(boolean&nbsp;br,
+                         long&nbsp;lr,
+                         double&nbsp;dr)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#UseIfGreaterThanOrEqualTo-java.lang.Number-">UseIfGreaterThanOrEqualTo</a></span>(<a href="https://docs.oracle.com/javase/8/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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#booleanOperate-long-long-">booleanOperate</a></span>(long&nbsp;a,
+              long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#complexOperate-double:A-double-double-double-double-">complexOperate</a></span>(double[]&nbsp;out,
+              double&nbsp;ra,
+              double&nbsp;ia,
+              double&nbsp;rb,
+              double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#doubleOperate-double-double-">doubleOperate</a></span>(double&nbsp;a,
+             double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#longOperate-long-long-">longOperate</a></span>(long&nbsp;a,
+           long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#toString--">toString</a></span>()</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-java.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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="UseIfGreaterThanOrEqualTo-boolean-long-double-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UseIfGreaterThanOrEqualTo</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#line.591">UseIfGreaterThanOrEqualTo</a>(boolean&nbsp;br,
+                                 long&nbsp;lr,
+                                 double&nbsp;dr)</pre>
+<dl>
+<dt><span class="paramLabel">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="UseIfGreaterThanOrEqualTo-java.lang.Number-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>UseIfGreaterThanOrEqualTo</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#line.599">UseIfGreaterThanOrEqualTo</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate-long-long-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#booleanOperate-long-long-">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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate-long-long-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#longOperate-long-long-">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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate-double-double-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#doubleOperate-double-double-">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="returnLabel">Returns:</span></dt>
+<dd>a op b</dd>
+</dl>
+</li>
+</ul>
+<a name="complexOperate-double:A-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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate-double:A-double-double-double-double-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#complexOperate-double:A-double-double-double-double-">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="paramLabel">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/8/docs/api/java/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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.Operations.UseBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/Operations.UseIfLessThan.html b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.UseIfLessThan.html
new file mode 100644
index 0000000..6c27b99
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.UseIfLessThan.html
@@ -0,0 +1,452 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.UseIfLessThan (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Operations.UseIfLessThan (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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 <code>a &lt; b</code> 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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html#UseIfLessThan-boolean-long-double-">UseIfLessThan</a></span>(boolean&nbsp;br,
+             long&nbsp;lr,
+             double&nbsp;dr)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html#UseIfLessThan-java.lang.Number-">UseIfLessThan</a></span>(<a href="https://docs.oracle.com/javase/8/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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html#booleanOperate-long-long-">booleanOperate</a></span>(long&nbsp;a,
+              long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html#complexOperate-double:A-double-double-double-double-">complexOperate</a></span>(double[]&nbsp;out,
+              double&nbsp;ra,
+              double&nbsp;ia,
+              double&nbsp;rb,
+              double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html#doubleOperate-double-double-">doubleOperate</a></span>(double&nbsp;a,
+             double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html#longOperate-long-long-">longOperate</a></span>(long&nbsp;a,
+           long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html#toString--">toString</a></span>()</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-java.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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="UseIfLessThan-boolean-long-double-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UseIfLessThan</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfLessThan.html#line.641">UseIfLessThan</a>(boolean&nbsp;br,
+                     long&nbsp;lr,
+                     double&nbsp;dr)</pre>
+<dl>
+<dt><span class="paramLabel">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="UseIfLessThan-java.lang.Number-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>UseIfLessThan</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfLessThan.html#line.649">UseIfLessThan</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate-long-long-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#booleanOperate-long-long-">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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate-long-long-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#longOperate-long-long-">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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate-double-double-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#doubleOperate-double-double-">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="returnLabel">Returns:</span></dt>
+<dd>a op b</dd>
+</dl>
+</li>
+</ul>
+<a name="complexOperate-double:A-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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate-double:A-double-double-double-double-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#complexOperate-double:A-double-double-double-double-">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="paramLabel">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/8/docs/api/java/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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.Operations.UseBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html
new file mode 100644
index 0000000..cac300d
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html
@@ -0,0 +1,452 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.UseIfLessThanOrEqualTo (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Operations.UseIfLessThanOrEqualTo (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Outliers.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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 <code>a &lt;= b</code> 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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#UseIfLessThanOrEqualTo-boolean-long-double-">UseIfLessThanOrEqualTo</a></span>(boolean&nbsp;br,
+                      long&nbsp;lr,
+                      double&nbsp;dr)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#UseIfLessThanOrEqualTo-java.lang.Number-">UseIfLessThanOrEqualTo</a></span>(<a href="https://docs.oracle.com/javase/8/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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#booleanOperate-long-long-">booleanOperate</a></span>(long&nbsp;a,
+              long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#complexOperate-double:A-double-double-double-double-">complexOperate</a></span>(double[]&nbsp;out,
+              double&nbsp;ra,
+              double&nbsp;ia,
+              double&nbsp;rb,
+              double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#doubleOperate-double-double-">doubleOperate</a></span>(double&nbsp;a,
+             double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#longOperate-long-long-">longOperate</a></span>(long&nbsp;a,
+           long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#toString--">toString</a></span>()</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-java.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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="UseIfLessThanOrEqualTo-boolean-long-double-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UseIfLessThanOrEqualTo</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#line.691">UseIfLessThanOrEqualTo</a>(boolean&nbsp;br,
+                              long&nbsp;lr,
+                              double&nbsp;dr)</pre>
+<dl>
+<dt><span class="paramLabel">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="UseIfLessThanOrEqualTo-java.lang.Number-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>UseIfLessThanOrEqualTo</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#line.699">UseIfLessThanOrEqualTo</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate-long-long-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#booleanOperate-long-long-">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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate-long-long-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#longOperate-long-long-">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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate-double-double-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#doubleOperate-double-double-">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="returnLabel">Returns:</span></dt>
+<dd>a op b</dd>
+</dl>
+</li>
+</ul>
+<a name="complexOperate-double:A-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><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate-double:A-double-double-double-double-">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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#complexOperate-double:A-double-double-double-double-">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="paramLabel">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/8/docs/api/java/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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Outliers.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.Operations.UseBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/Operations.html b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.html
new file mode 100644
index 0000000..c1d7dd6
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/Operations.html
@@ -0,0 +1,519 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Operations (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_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/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<dl>
+<dt><span class="simpleTagLabel">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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset">Operations.Addition</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Operations.Division</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset">Operations.DivisionTowardsFloor</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset">Operations.DivisionWithZero</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset">Operations.Exponentiation</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset">Operations.Maximum</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset">Operations.Minimum</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset">Operations.Multiplication</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset">Operations.Negation</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset">Operations.Remainder</a></span></code>
+<div class="block">Remainder</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset">Operations.Subtraction</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></span></code>
+<div class="block">Use given value if <code>a &gt; b</code> else use a</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfEqualTo</a></span></code>
+<div class="block">Use given value if <code>a == b</code> else use a</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThan</a></span></code>
+<div class="block">Use given value if <code>a &gt; b</code> else use a</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThanOrEqualTo</a></span></code>
+<div class="block">Use given value if <code>a &gt;= b</code> else use a</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThan</a></span></code>
+<div class="block">Use given value if <code>a &lt; b</code> else use a</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThanOrEqualTo</a></span></code>
+<div class="block">Use given value if <code>a &lt;= b</code> 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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.html#Operations--">Operations</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.html#bracketIfNecessary-java.lang.String-">bracketIfNecessary</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.html#createBinaryOperationName-java.lang.String-java.lang.String-java.lang.String-">createBinaryOperationName</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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 id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.html#createFunctionName-java.lang.String-java.lang.String...-">createFunctionName</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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 id="i3" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.html#operate-org.eclipse.january.dataset.BinaryOperation-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">operate</a></span>(<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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="https://docs.oracle.com/javase/8/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 id="i4" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Operations.html#operate-org.eclipse.january.dataset.UnaryOperation-java.lang.Object-org.eclipse.january.dataset.Dataset-">operate</a></span>(<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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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/8/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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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/8/docs/api/java/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/8/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/8/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/8/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="paramLabel">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="returnLabel">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/8/docs/api/java/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/8/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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>function</code> - </dd>
+<dd><code>arguments</code> - </dd>
+<dt><span class="returnLabel">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/8/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="paramLabel">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="returnLabel">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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                              <a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/Outliers.html b/apidocs/2.3.0/org/eclipse/january/dataset/Outliers.html
new file mode 100644
index 0000000..d128235
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/Outliers.html
@@ -0,0 +1,413 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Outliers (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Outliers (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Outliers.html#Outliers--">Outliers</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Outliers.html#highMed-org.eclipse.january.dataset.Dataset-">highMed</a></span>(<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 id="i1" class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Outliers.html#lowMed-org.eclipse.january.dataset.Dataset-">lowMed</a></span>(<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 id="i2" class="altColor">
+<td class="colFirst"><code>static double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Outliers.html#medianAbsoluteDeviation-org.eclipse.january.dataset.Dataset-">medianAbsoluteDeviation</a></span>(<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 id="i3" class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Outliers.html#medianOFTwoPrimitiveArrays-double:A-double:A-">medianOFTwoPrimitiveArrays</a></span>(double[]&nbsp;a,
+                          double[]&nbsp;b)</code>
+<div class="block">Calculates the overall median of two double arrays</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Outliers.html#snFast-org.eclipse.january.dataset.Dataset-">snFast</a></span>(<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 id="i5" class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Outliers.html#snNaive-org.eclipse.january.dataset.Dataset-">snNaive</a></span>(<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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - The data for which the median and the MAD are to be calculated</dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - The data for which the estimator is to be calculated.</dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - The data for which the estimator is to be calculated.</dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - A sorted Dataset for which the low median is to be calculated.</dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - A sorted Dataset for which the low median is to be calculated.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The value of the himed of the data</dd>
+</dl>
+</li>
+</ul>
+<a name="medianOFTwoPrimitiveArrays-double:A-double:A-">
+<!--   -->
+</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="paramLabel">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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/PositionIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/PositionIterator.html
new file mode 100644
index 0000000..7e20b64
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/PositionIterator.html
@@ -0,0 +1,555 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>PositionIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PositionIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Random.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/PositionIterator.html#PositionIterator-int:A-">PositionIterator</a></span>(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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/PositionIterator.html#PositionIterator-int:A-int...-">PositionIterator</a></span>(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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/PositionIterator.html#PositionIterator-int:A-int:A-int:A-int:A-int:A-">PositionIterator</a></span>(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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/PositionIterator.html#PositionIterator-int:A-org.eclipse.january.dataset.Slice:A-int:A-">PositionIterator</a></span>(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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/PositionIterator.html#PositionIterator-int-int:A-">PositionIterator</a></span>(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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/PositionIterator.html#PositionIterator-int-org.eclipse.january.dataset.SliceND-int...-">PositionIterator</a></span>(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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/PositionIterator.html#PositionIterator-org.eclipse.january.dataset.SliceND-int...-">PositionIterator</a></span>(<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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/PositionIterator.html#getOmit--">getOmit</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/PositionIterator.html#getPos--">getPos</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/PositionIterator.html#getShape--">getShape</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/PositionIterator.html#getStop--">getStop</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/PositionIterator.html#hasNext--">hasNext</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/PositionIterator.html#reset--">reset</a></span>()</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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PositionIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/PositionIterator.html#line.52">PositionIterator</a>(int[]&nbsp;shape)</pre>
+<div class="block">Constructor for an iterator over elements of a dataset that are within
+ the shape</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - </dd>
+</dl>
+</li>
+</ul>
+<a name="PositionIterator-int-int:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PositionIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/PositionIterator.html#line.62">PositionIterator</a>(int&nbsp;offset,
+                        int[]&nbsp;shape)</pre>
+<div class="block">Constructor for an iterator over a single item broadcasted to given shape</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>offset</code> - offset to single item</dd>
+<dd><code>shape</code> - </dd>
+</dl>
+</li>
+</ul>
+<a name="PositionIterator-int:A-int...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PositionIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/PositionIterator.html#line.71">PositionIterator</a>(int[]&nbsp;shape,
+                        int...&nbsp;axes)</pre>
+<div class="block">Constructor for an iterator that misses out several axes</div>
+<dl>
+<dt><span class="paramLabel">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:A-org.eclipse.january.dataset.Slice:A-int:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PositionIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/PositionIterator.html#line.81">PositionIterator</a>(int[]&nbsp;shape,
+                        <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]&nbsp;slice,
+                        int[]&nbsp;axes)</pre>
+<div class="block">Constructor for an iterator that misses out several axes</div>
+<dl>
+<dt><span class="paramLabel">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:A-int:A-int:A-int:A-int:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PositionIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/PositionIterator.html#line.93">PositionIterator</a>(int[]&nbsp;shape,
+                        int[]&nbsp;start,
+                        int[]&nbsp;stop,
+                        int[]&nbsp;step,
+                        int[]&nbsp;axes)</pre>
+<div class="block">Constructor for an iterator that misses out several axes</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - </dd>
+<dd><code>start</code> - </dd>
+<dd><code>stop</code> - </dd>
+<dd><code>step</code> - </dd>
+<dd><code>axes</code> - missing axes</dd>
+</dl>
+</li>
+</ul>
+<a name="PositionIterator-org.eclipse.january.dataset.SliceND-int...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PositionIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/PositionIterator.html#line.102">PositionIterator</a>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice,
+                        int...&nbsp;axes)</pre>
+<div class="block">Constructor for an iterator that misses out several axes</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - </dd>
+<dd><code>axes</code> - missing axes</dd>
+</dl>
+</li>
+</ul>
+<a name="PositionIterator-int-org.eclipse.january.dataset.SliceND-int...-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>PositionIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/PositionIterator.html#line.113">PositionIterator</a>(int&nbsp;offset,
+                        <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice,
+                        int...&nbsp;axes)</pre>
+<div class="block">Constructor for an iterator that misses out several axes</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>offset</code> - offset to start with</dd>
+<dd><code>slice</code> - </dd>
+<dd><code>axes</code> - missing axes</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasNext--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/PositionIterator.html#line.149">hasNext</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>true if there is another iteration</dd>
+</dl>
+</li>
+</ul>
+<a name="getPos--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/PositionIterator.html#line.173">getPos</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>position indices (nb this is reference not a copy so avoid changing and can be null)</dd>
+</dl>
+</li>
+</ul>
+<a name="getOmit--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOmit</h4>
+<pre>public&nbsp;boolean[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/PositionIterator.html#line.180">getOmit</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>omit array - array where true means miss out</dd>
+</dl>
+</li>
+</ul>
+<a name="reset--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/PositionIterator.html#line.185">reset</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset--">IndexIterator</a></code></span></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset--">reset</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getShape--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/PositionIterator.html#line.221">getShape</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">Returns:</span></dt>
+<dd>shape of iterator (can be null, if not known or applicable)</dd>
+</dl>
+</li>
+</ul>
+<a name="getStop--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStop</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/PositionIterator.html#line.225">getStop</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Random.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/RGBDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/RGBDataset.html
new file mode 100644
index 0000000..1e2932c
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/RGBDataset.html
@@ -0,0 +1,1458 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>RGBDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RGBDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":42,"i2":10,"i3":9,"i4":9,"i5":9,"i6":9,"i7":42,"i8":10,"i9":10,"i10":10,"i11":42,"i12":42,"i13":42,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/RunningAverage.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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/8/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/8/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="seeLabel">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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#RGBDataset--">RGBDataset</a></span>()</code>
+<div class="block">Create a null dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#RGBDataset-byte:A-byte:A-byte:A-int...-">RGBDataset</a></span>(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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#RGBDataset-org.eclipse.january.dataset.Dataset-">RGBDataset</a></span>(<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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#RGBDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">RGBDataset</a></span>(<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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#RGBDataset-int...-">RGBDataset</a></span>(int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#RGBDataset-int:A-int:A-int:A-int...-">RGBDataset</a></span>(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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#RGBDataset-org.eclipse.january.dataset.RGBDataset-">RGBDataset</a></span>(<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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#RGBDataset-short:A-int...-">RGBDataset</a></span>(short[]&nbsp;data,
+          int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#RGBDataset-short:A-short:A-short:A-int...-">RGBDataset</a></span>(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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createBlueDataset-int-">createBlueDataset</a></span>(int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createBlueDataset-T-"><code>createBlueDataset(T)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i2" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createBlueDataset-T-">createBlueDataset</a></span>(T&nbsp;clazz)</code>
+<div class="block">Extract blue colour channel</div>
+</td>
+</tr>
+<tr id="i3" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createFromCompoundDataset-org.eclipse.january.dataset.CompoundDataset-">createFromCompoundDataset</a></span>(<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 id="i4" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createFromHSL-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createFromHSL</a></span>(<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 id="i5" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createFromHSV-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createFromHSV</a></span>(<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 id="i6" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createFromObject-java.lang.Object-">createFromObject</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createGreenDataset-int-">createGreenDataset</a></span>(int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createGreenDataset-T-"><code>createGreenDataset(T)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i8" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createGreenDataset-T-">createGreenDataset</a></span>(T&nbsp;clazz)</code>
+<div class="block">Extract green colour channel</div>
+</td>
+</tr>
+<tr id="i9" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createGreyDataset-java.lang.Class-">createGreyDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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">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 id="i10" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createGreyDataset-java.lang.Class-double-double-double-">createGreyDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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;red,
+                 double&nbsp;green,
+                 double&nbsp;blue)</code>
+<div class="block">Convert colour dataset to a grey-scale one using given RGB to luma mapping</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createGreyDataset-double-double-double-int-">createGreyDataset</a></span>(double&nbsp;red,
+                 double&nbsp;green,
+                 double&nbsp;blue,
+                 int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createGreyDataset-java.lang.Class-double-double-double-"><code>createGreyDataset(Class, double, double, double)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createGreyDataset-int-">createGreyDataset</a></span>(int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createGreyDataset-java.lang.Class-"><code>createGreyDataset(Class)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createRedDataset-int-">createRedDataset</a></span>(int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createRedDataset-T-"><code>createRedDataset(T)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i14" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createRedDataset-T-">createRedDataset</a></span>(T&nbsp;clazz)</code>
+<div class="block">Extract red colour channel</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getBlue--">getBlue</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getBlue-int...-">getBlue</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getBlue-int-">getBlue</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getBlue-int-int-">getBlue</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getBlueAbs-int-">getBlueAbs</a></span>(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 id="i20" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getBlueView--">getBlueView</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getDType--">getDType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getGreen--">getGreen</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getGreen-int...-">getGreen</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getGreen-int-">getGreen</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getGreen-int-int-">getGreen</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getGreenAbs-int-">getGreenAbs</a></span>(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 id="i27" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getGreenView--">getGreenView</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getRed--">getRed</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getRed-int...-">getRed</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getRed-int-">getRed</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getRed-int-int-">getRed</a></span>(int&nbsp;i,
+      int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getRedAbs-int-">getRedAbs</a></span>(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 id="i33" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getRedView--">getRedView</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i34" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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 id="i35" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getView-boolean-">getView</a></span>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#max-boolean...-">max</a></span>(boolean...&nbsp;ignored)</code>&nbsp;</td>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#min-boolean...-">min</a></span>(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-int-">copyElements</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#copyItemsFromAxes-int:A-boolean:A-org.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-boolean-">createCompoundDatasetWithLastDimension</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#createFromObject-int-java.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-org.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-short:A-">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-int-">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-int-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getDoubleArrayAbs-int-double:A-">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-int-">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-int-">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-int-">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-int-">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-int-">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-int-">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-int-">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-org.eclipse.january.dataset.Dataset-boolean-">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-int...-">set</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#set-java.lang.Object-int-">set</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#set-java.lang.Object-int-int-">set</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setAbs-int-short-">setAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setAbs-int-short:A-">setAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setByIndexes-java.lang.Object-java.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-int-">setElements</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setItem-short:A-">setItem</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setItem-short:A-int...-">setItem</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setItem-short:A-int-">setItem</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setItem-short:A-int-int-">setItem</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setItemDirect-int-int-java.lang.Object-">setItemDirect</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">setItemsOnAxes</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setObjectAbs-int-java.lang.Object-">setObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setSlice-java.lang.Object-org.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-boolean...-">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMin-int-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast-boolean-int-int-">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-int-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndexFromShape-int:A-">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-int-">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-int-">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-int-">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int...-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int-">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray-double:A-int-int-">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-int-">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-int-">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-int-">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-int-">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-int-">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-int-">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-int:A-int:A-int:A-">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:A-int:A-int:A-">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-boolean...-">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-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min-int-boolean...-">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-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#product-int-boolean...-">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-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice-java.lang.Object-org.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-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum-int-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#swapAxes-int-int-">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-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance-int-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance-int-boolean-boolean...-">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-double-double-">calcSteps</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-java.lang.Class-boolean-">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-int-">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-org.eclipse.january.dataset.AbstractDataset-boolean-boolean-">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.Dataset-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-int-int:A-int:A-int-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-org.eclipse.january.dataset.Dataset-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-int-int:A-int:A-int-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData-java.lang.Object-int-int:A-">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex-int...-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-int:A-">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-boolean-">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer--">getBuffer</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#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:A-int:A-int:A-">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">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#max-int:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int:A-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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer-java.io.Serializable-">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength-int-">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape-int...-">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int:A-boolean...-">sum</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>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-boolean-boolean...-">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:A-int...-">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-boolean-">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#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#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName--">getName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors--">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata-int:A-int:A-">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors-java.io.Serializable-">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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#cast-int-java.lang.Class-boolean-">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:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count-int-boolean...-">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-boolean-">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:A-int:A-int:A-">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">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#max-int:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product-int:A-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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</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-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#sum-int:A-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-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance-int:A-boolean-boolean...-">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:A-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="paramLabel">Parameters:</span></dt>
+<dd><code>dataset</code> - </dd>
+</dl>
+</li>
+</ul>
+<a name="RGBDataset-int:A-int:A-int:A-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="paramLabel">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:A-short:A-short:A-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="paramLabel">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:A-byte:A-byte:A-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="paramLabel">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="paramLabel">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="paramLabel">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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">ILazyDataset</a></code></span></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>obj</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">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="returnLabel">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="paramLabel">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="returnLabel">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">AbstractDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="returnLabel">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="returnLabel">Returns:</span></dt>
+<dd>red value in the first position</dd>
+<dt><span class="simpleTagLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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="returnLabel">Returns:</span></dt>
+<dd>green value in the first position</dd>
+<dt><span class="simpleTagLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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="returnLabel">Returns:</span></dt>
+<dd>blue value in the first position</dd>
+<dt><span class="simpleTagLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>n</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>n</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>n</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>blue value</dd>
+</dl>
+</li>
+</ul>
+<a name="createGreyDataset-java.lang.Class-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createGreyDataset</h4>
+<pre>public&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.564">createGreyDataset</a>(<a href="https://docs.oracle.com/javase/8/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">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="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a grey-scale dataset of given type</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</dd>
+</dl>
+</li>
+</ul>
+<a name="createGreyDataset-java.lang.Class-double-double-double-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createGreyDataset</h4>
+<pre>public&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.578">createGreyDataset</a>(<a href="https://docs.oracle.com/javase/8/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;red,
+                                               double&nbsp;green,
+                                               double&nbsp;blue)</pre>
+<div class="block">Convert colour dataset to a grey-scale one using given RGB to luma mapping</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - </dd>
+<dd><code>red</code> - weight</dd>
+<dd><code>green</code> - weight</dd>
+<dd><code>blue</code> - weight</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a grey-scale dataset of given class</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</dd>
+</dl>
+</li>
+</ul>
+<a name="createGreyDataset-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createGreyDataset</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.589">createGreyDataset</a>(int&nbsp;dtype)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createGreyDataset-java.lang.Class-"><code>createGreyDataset(Class)</code></a></span></div>
+<div class="block">Convert colour dataset to a grey-scale one using the NTSC formula, aka ITU-R BT.601, for RGB to luma mapping</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>dtype</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a grey-scale dataset of given class</dd>
+</dl>
+</li>
+</ul>
+<a name="createGreyDataset-double-double-double-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createGreyDataset</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.603">createGreyDataset</a>(double&nbsp;red,
+                                             double&nbsp;green,
+                                             double&nbsp;blue,
+                                             int&nbsp;dtype)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createGreyDataset-java.lang.Class-double-double-double-"><code>createGreyDataset(Class, double, double, double)</code></a></span></div>
+<div class="block">Convert colour dataset to a grey-scale one using given RGB to luma mapping</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>a grey-scale dataset of given type</dd>
+</dl>
+</li>
+</ul>
+<a name="createRedDataset-org.eclipse.january.dataset.Dataset-">
+<!--   -->
+</a><a name="createRedDataset-T-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createRedDataset</h4>
+<pre>public&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.620">createRedDataset</a>(T&nbsp;clazz)</pre>
+<div class="block">Extract red colour channel</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a dataset of given class</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a name="createGreenDataset-org.eclipse.january.dataset.Dataset-">
+<!--   -->
+</a><a name="createGreenDataset-T-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createGreenDataset</h4>
+<pre>public&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.630">createGreenDataset</a>(T&nbsp;clazz)</pre>
+<div class="block">Extract green colour channel</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a dataset of given class</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a name="createBlueDataset-org.eclipse.january.dataset.Dataset-">
+<!--   -->
+</a><a name="createBlueDataset-T-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createBlueDataset</h4>
+<pre>public&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.640">createBlueDataset</a>(T&nbsp;clazz)</pre>
+<div class="block">Extract blue colour channel</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a dataset of given class</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a name="createRedDataset-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createRedDataset</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.651">createRedDataset</a>(int&nbsp;dtype)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createRedDataset-T-"><code>createRedDataset(T)</code></a></span></div>
+<div class="block">Extract red colour channel</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>dtype</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a dataset of given type</dd>
+</dl>
+</li>
+</ul>
+<a name="createGreenDataset-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createGreenDataset</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.662">createGreenDataset</a>(int&nbsp;dtype)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createGreenDataset-T-"><code>createGreenDataset(T)</code></a></span></div>
+<div class="block">Extract green colour channel</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>dtype</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a dataset of given type</dd>
+</dl>
+</li>
+</ul>
+<a name="createBlueDataset-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createBlueDataset</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.673">createBlueDataset</a>(int&nbsp;dtype)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createBlueDataset-T-"><code>createBlueDataset(T)</code></a></span></div>
+<div class="block">Extract blue colour channel</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>dtype</code> - </dd>
+<dt><span class="returnLabel">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.707">getRedView</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.714">getGreenView</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.721">getBlueView</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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/8/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.732">max</a>(boolean...&nbsp;ignored)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">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="returnLabel">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/8/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.747">min</a>(boolean...&nbsp;ignored)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/RunningAverage.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.CompoundShortDataset">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/Random.html b/apidocs/2.3.0/org/eclipse/january/dataset/Random.html
new file mode 100644
index 0000000..0ae2c06
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/Random.html
@@ -0,0 +1,565 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Random (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Random (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Random.html#Random--">Random</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Random.html#exponential-double-int...-">exponential</a></span>(double&nbsp;beta,
+           int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr id="i1" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Random.html#lazyRand-int...-">lazyRand</a></span>(int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr id="i2" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Random.html#lazyRand-int-java.lang.String-int...-">lazyRand</a></span>(int&nbsp;dtype,
+        <a href="https://docs.oracle.com/javase/8/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 id="i3" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Random.html#lazyRand-java.lang.String-int...-">lazyRand</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i4" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Random.html#poisson-double-int...-">poisson</a></span>(double&nbsp;lam,
+       int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr id="i5" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Random.html#rand-double-double-int...-">rand</a></span>(double&nbsp;low,
+    double&nbsp;high,
+    int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr id="i6" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Random.html#rand-int...-">rand</a></span>(int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr id="i7" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Random.html#randint-int-int-int:A-">randint</a></span>(int&nbsp;low,
+       int&nbsp;high,
+       int[]&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr id="i8" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Random.html#randn-double-double-int...-">randn</a></span>(double&nbsp;mean,
+     double&nbsp;std,
+     int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr id="i9" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Random.html#randn-int...-">randn</a></span>(int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr id="i10" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Random.html#random_integers-int-int-int:A-">random_integers</a></span>(int&nbsp;low,
+               int&nbsp;high,
+               int[]&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Random.html#seed-int-">seed</a></span>(int&nbsp;seed)</code>&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Random.html#seed-int:A-">seed</a></span>(int[]&nbsp;seed)</code>&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Random.html#seed-long-">seed</a></span>(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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="paramLabel">Parameters:</span></dt>
+<dd><code>seed</code> - </dd>
+</dl>
+</li>
+</ul>
+<a name="seed-int:A-">
+<!--   -->
+</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="paramLabel">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="paramLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>low</code> - </dd>
+<dd><code>high</code> - </dd>
+<dd><code>shape</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>mean</code> - </dd>
+<dd><code>std</code> - standard deviation</dd>
+<dd><code>shape</code> - </dd>
+<dt><span class="returnLabel">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-">
+<!--   -->
+</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="paramLabel">Parameters:</span></dt>
+<dd><code>low</code> - </dd>
+<dd><code>high</code> - </dd>
+<dd><code>shape</code> - </dd>
+<dt><span class="returnLabel">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-">
+<!--   -->
+</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="paramLabel">Parameters:</span></dt>
+<dd><code>low</code> - </dd>
+<dd><code>high</code> - </dd>
+<dd><code>shape</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>beta</code> - </dd>
+<dd><code>shape</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>lam</code> - </dd>
+<dd><code>shape</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - </dd>
+<dt><span class="returnLabel">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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - </dd>
+<dd><code>shape</code> - </dd>
+<dt><span class="returnLabel">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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>dtype</code> - </dd>
+<dd><code>name</code> - </dd>
+<dd><code>shape</code> - </dd>
+<dt><span class="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/RunningAverage.html b/apidocs/2.3.0/org/eclipse/january/dataset/RunningAverage.html
new file mode 100644
index 0000000..314f0b5
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/RunningAverage.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 (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>RunningAverage (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RunningAverage (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ShapeChangeChecker.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RunningAverage.html#RunningAverage-org.eclipse.january.dataset.IDataset-">RunningAverage</a></span>(<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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RunningAverage.html#getCount--">getCount</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RunningAverage.html#getCurrentAverage--">getCurrentAverage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/RunningAverage.html#update-org.eclipse.january.dataset.IDataset-">update</a></span>(<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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="paramLabel">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.41">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="paramLabel">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.99">getCount</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.106">getCurrentAverage</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ShapeChangeChecker.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/ShapeChangeChecker.html b/apidocs/2.3.0/org/eclipse/january/dataset/ShapeChangeChecker.html
new file mode 100644
index 0000000..0ea0a6b
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/ShapeChangeChecker.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 (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ShapeChangeChecker (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ShapeChangeChecker (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShapeChangeChecker.html#ShapeChangeChecker--">ShapeChangeChecker</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShapeChangeChecker.html#check--">check</a></span>()</code>
+<div class="block">Check for any change.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShapeChangeChecker.html#setDataset-org.eclipse.january.dataset.ILazyDataset-">setDataset</a></span>(<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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html#setDataset-org.eclipse.january.dataset.ILazyDataset-">IDatasetChangeChecker</a></code></span></div>
+<div class="block">Set dataset to be checked for signs of change. Do any state initialization in here.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html#check--">IDatasetChangeChecker</a></code></span></div>
+<div class="block">Check for any change. Also update state information.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/ShapeUtils.html b/apidocs/2.3.0/org/eclipse/january/dataset/ShapeUtils.html
new file mode 100644
index 0000000..388a146
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/ShapeUtils.html
@@ -0,0 +1,685 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:16 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ShapeUtils (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ShapeUtils (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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.21">ShapeUtils</a>
+extends <a href="https://docs.oracle.com/javase/8/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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#areShapesBroadcastCompatible-int:A-int:A-">areShapesBroadcastCompatible</a></span>(int[]&nbsp;ashape,
+                            int[]&nbsp;bshape)</code>
+<div class="block">Check if shapes are broadcast compatible</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#areShapesCompatible-int:A-int:A-">areShapesCompatible</a></span>(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 id="i2" class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#areShapesCompatible-int:A-int:A-int-">areShapesCompatible</a></span>(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 id="i3" class="rowColor">
+<td class="colFirst"><code>static long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#calcLongSize-int:A-">calcLongSize</a></span>(int[]&nbsp;shape)</code>
+<div class="block">Calculate total number of items in given shape</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#calcShapePadding-int:A-int:A-">calcShapePadding</a></span>(int[]&nbsp;aShape,
+                int[]&nbsp;bShape)</code>
+<div class="block">Calculate the padding difference between two shapes.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#calcSize-int:A-">calcSize</a></span>(int[]&nbsp;shape)</code>
+<div class="block">Calculate total number of items in given shape</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#checkAxes-int-int...-">checkAxes</a></span>(int&nbsp;rank,
+         int...&nbsp;axes)</code>
+<div class="block">Check that all axes are in range [-rank,rank)</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#checkAxis-int-int-">checkAxis</a></span>(int&nbsp;rank,
+         int&nbsp;axis)</code>
+<div class="block">Check that axis is in range [-rank,rank)</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#checkCompatibility-org.eclipse.january.dataset.ILazyDataset-org.eclipse.january.dataset.ILazyDataset-">checkCompatibility</a></span>(<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 id="i9" class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#differsByOnes-int:A-int:A-">differsByOnes</a></span>(int[]&nbsp;a,
+             int[]&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#getFlat1DIndex-int:A-int:A-">getFlat1DIndex</a></span>(int[]&nbsp;shape,
+              int[]&nbsp;pos)</code>
+<div class="block">Get flattened view index of given position</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#getNDPositionFromShape-int-int:A-">getNDPositionFromShape</a></span>(int&nbsp;n,
+                      int[]&nbsp;shape)</code>
+<div class="block">Get n-D position from given index</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#getReducedShapeKeepRank-int:A-int...-">getReducedShapeKeepRank</a></span>(int[]&nbsp;shape,
+                       int...&nbsp;axes)</code>
+<div class="block">Set reduced axes to 1</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#getRemainingAxes-int-int...-">getRemainingAxes</a></span>(int&nbsp;rank,
+                int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#getShapeFromObject-java.lang.Object-">getShapeFromObject</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i15" class="rowColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#reduceShape-int:A-int...-">reduceShape</a></span>(int[]&nbsp;shape,
+           int...&nbsp;axes)</code>
+<div class="block">Remove axes from shape</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#squeezeShape-int:A-boolean-">squeezeShape</a></span>(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 id="i17" class="rowColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#squeezeShape-int:A-int-">squeezeShape</a></span>(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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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-">
+<!--   -->
+</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.31">calcLongSize</a>(int[]&nbsp;shape)</pre>
+<div class="block">Calculate total number of items in given shape</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>size</dd>
+</dl>
+</li>
+</ul>
+<a name="calcSize-int:A-">
+<!--   -->
+</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.66">calcSize</a>(int[]&nbsp;shape)</pre>
+<div class="block">Calculate total number of items in given shape</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>size</dd>
+</dl>
+</li>
+</ul>
+<a name="areShapesBroadcastCompatible-int:A-int:A-">
+<!--   -->
+</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.83">areShapesBroadcastCompatible</a>(int[]&nbsp;ashape,
+                                                   int[]&nbsp;bshape)</pre>
+<div class="block">Check if shapes are broadcast compatible</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>ashape</code> - </dd>
+<dd><code>bshape</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if they are compatible</dd>
+</dl>
+</li>
+</ul>
+<a name="areShapesCompatible-int:A-int:A-">
+<!--   -->
+</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.108">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="paramLabel">Parameters:</span></dt>
+<dd><code>ashape</code> - </dd>
+<dd><code>bshape</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if they are compatible</dd>
+</dl>
+</li>
+</ul>
+<a name="areShapesCompatible-int:A-int:A-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.139">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="paramLabel">Parameters:</span></dt>
+<dd><code>ashape</code> - </dd>
+<dd><code>bshape</code> - </dd>
+<dd><code>axis</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if they are compatible</dd>
+</dl>
+</li>
+</ul>
+<a name="squeezeShape-int:A-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.164">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="paramLabel">Parameters:</span></dt>
+<dd><code>oshape</code> - </dd>
+<dd><code>onlyFromEnds</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>newly squeezed shape (or original if unsqueezed)</dd>
+</dl>
+</li>
+</ul>
+<a name="squeezeShape-int:A-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.228">squeezeShape</a>(int[]&nbsp;oshape,
+                                 int&nbsp;axis)</pre>
+<div class="block">Remove dimension of 1 in given shape</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>oshape</code> - </dd>
+<dd><code>axis</code> - </dd>
+<dt><span class="returnLabel">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.258">getShapeFromObject</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>obj</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>shape can be null if obj is null</dd>
+</dl>
+</li>
+</ul>
+<a name="getNDPositionFromShape-int-int:A-">
+<!--   -->
+</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.337">getNDPositionFromShape</a>(int&nbsp;n,
+                                           int[]&nbsp;shape)</pre>
+<div class="block">Get n-D position from given index</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>n</code> - index</dd>
+<dd><code>shape</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>n-D position</dd>
+</dl>
+</li>
+</ul>
+<a name="getFlat1DIndex-int:A-int:A-">
+<!--   -->
+</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.368">getFlat1DIndex</a>(int[]&nbsp;shape,
+                                 int[]&nbsp;pos)</pre>
+<div class="block">Get flattened view index of given position</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - </dd>
+<dd><code>pos</code> - the integer array specifying the n-D position</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the index on the flattened dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="checkCompatibility-org.eclipse.january.dataset.ILazyDataset-org.eclipse.january.dataset.ILazyDataset-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>checkCompatibility</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShapeUtils.html#line.388">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/8/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="paramLabel">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="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - This will be thrown if there is a problem with the compatibility</dd>
+</dl>
+</li>
+</ul>
+<a name="checkAxis-int-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>checkAxis</h4>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShapeUtils.html#line.402">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="paramLabel">Parameters:</span></dt>
+<dd><code>rank</code> - </dd>
+<dd><code>axis</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>sanitized axis in range [0, rank)</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a name="checkAxes-int-int...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>checkAxes</h4>
+<pre>public static&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShapeUtils.html#line.429">checkAxes</a>(int&nbsp;rank,
+                              int...&nbsp;axes)</pre>
+<div class="block">Check that all axes are in range [-rank,rank)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>rank</code> - </dd>
+<dd><code>axes</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>sanitized axes in range [0, rank) and sorted in increasing order</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</dd>
+</dl>
+</li>
+</ul>
+<a name="getRemainingAxes-int-int...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRemainingAxes</h4>
+<pre>public static&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShapeUtils.html#line.455">getRemainingAxes</a>(int&nbsp;rank,
+                                     int...&nbsp;axes)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>rank</code> - </dd>
+<dd><code>axes</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>remaining axes not given by input</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</dd>
+</dl>
+</li>
+</ul>
+<a name="reduceShape-int:A-int...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reduceShape</h4>
+<pre>public static&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShapeUtils.html#line.475">reduceShape</a>(int[]&nbsp;shape,
+                                int...&nbsp;axes)</pre>
+<div class="block">Remove axes from shape</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - </dd>
+<dd><code>axes</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>reduced shape</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</dd>
+</dl>
+</li>
+</ul>
+<a name="getReducedShapeKeepRank-int:A-int...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReducedShapeKeepRank</h4>
+<pre>public static&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShapeUtils.html#line.491">getReducedShapeKeepRank</a>(int[]&nbsp;shape,
+                                            int...&nbsp;axes)</pre>
+<div class="block">Set reduced axes to 1</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - </dd>
+<dd><code>axes</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>shape with same rank</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</dd>
+</dl>
+</li>
+</ul>
+<a name="differsByOnes-int:A-int:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>differsByOnes</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShapeUtils.html#line.506">differsByOnes</a>(int[]&nbsp;a,
+                                    int[]&nbsp;b)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if arrays only differs by unit entries</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</dd>
+</dl>
+</li>
+</ul>
+<a name="calcShapePadding-int:A-int:A-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>calcShapePadding</h4>
+<pre>public static&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShapeUtils.html#line.551">calcShapePadding</a>(int[]&nbsp;aShape,
+                                     int[]&nbsp;bShape)</pre>
+<div class="block">Calculate the padding difference between two shapes. Padding can be positive (negative)
+ for added (removed) dimensions. NB positive or negative padding is given after matched
+ dimensions</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>aShape</code> - </dd>
+<dd><code>bShape</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>padding can be null if shapes are equal</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if one shape is null but not the other, or if shapes do
+ not possess common non-unit lengths</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/ShortDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/ShortDataset.html
new file mode 100644
index 0000000..6526f4c
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/ShortDataset.html
@@ -0,0 +1,2258 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ShortDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ShortDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":9,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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="seeLabel">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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#data">data</a></span></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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#containsInfs--">containsInfs</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#containsInvalidNumbers--">containsInvalidNumbers</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#containsNans--">containsNans</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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 id="i5" class="rowColor">
+<td class="colFirst"><code>protected static short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#createArray-int-">createArray</a></span>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i7" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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 id="i9" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#get--">get</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#get-int...-">get</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#get-int-">get</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#get-int-int-">get</a></span>(int&nbsp;i,
+   int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getAbs-int-">getAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get a value from an absolute index of the internal array.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getBoolean--">getBoolean</a></span>()</code>
+<div class="block">Get first item as a boolean.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getBoolean-int...-">getBoolean</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getBoolean-int-">getBoolean</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getBoolean-int-int-">getBoolean</a></span>(int&nbsp;i,
+          int&nbsp;j)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getBufferLength--">getBufferLength</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getByte--">getByte</a></span>()</code>
+<div class="block">Get first item as a byte.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getByte-int...-">getByte</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getByte-int-">getByte</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a byte.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getByte-int-int-">getByte</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get an item from given positionj as a byte.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getData--">getData</a></span>()</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 id="i24" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getDouble--">getDouble</a></span>()</code>
+<div class="block">Get first item as a double.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getDouble-int...-">getDouble</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getDouble-int-">getDouble</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getDouble-int-int-">getDouble</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getDType--">getDType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getElementBooleanAbs-int-">getElementBooleanAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getElementDoubleAbs-int-">getElementDoubleAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getElementLongAbs-int-">getElementLongAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getFloat--">getFloat</a></span>()</code>
+<div class="block">Get first item as a float.</div>
+</td>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getFloat-int...-">getFloat</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i34" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getFloat-int-">getFloat</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr id="i35" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getFloat-int-int-">getFloat</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getInt--">getInt</a></span>()</code>
+<div class="block">Get first item as an int.</div>
+</td>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getInt-int...-">getInt</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i38" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getInt-int-">getInt</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getInt-int-int-">getInt</a></span>(int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getLong--">getLong</a></span>()</code>
+<div class="block">Get first item as a long.</div>
+</td>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getLong-int...-">getLong</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getLong-int-">getLong</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr id="i43" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getLong-int-int-">getLong</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr id="i44" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getObject--">getObject</a></span>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr id="i45" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getObject-int...-">getObject</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i46" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getObject-int-">getObject</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i47" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getObject-int-int-">getObject</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i48" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getObjectAbs-int-">getObjectAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr id="i49" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getShort--">getShort</a></span>()</code>
+<div class="block">Get first item as a short.</div>
+</td>
+</tr>
+<tr id="i50" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getShort-int...-">getShort</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i51" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getShort-int-">getShort</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr id="i52" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getShort-int-int-">getShort</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr id="i53" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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 id="i54" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getString--">getString</a></span>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr id="i55" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getString-int...-">getString</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i56" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getString-int-">getString</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i57" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getString-int-int-">getString</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i58" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getStringAbs-int-">getStringAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr id="i59" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getUniqueItems--">getUniqueItems</a></span>()</code>
+<div class="block">Get unique items</div>
+</td>
+</tr>
+<tr id="i60" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getView-boolean-">getView</a></span>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr id="i61" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i62" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i63" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i64" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#ifloor--">ifloor</a></span>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr id="i65" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i66" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i67" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i68" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i69" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#maxPos-boolean...-">maxPos</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i70" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#minPos-boolean...-">minPos</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i71" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i72" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#resize-int...-">resize</a></span>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr id="i73" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#set-java.lang.Object-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i74" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#set-java.lang.Object-int...-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i75" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#set-java.lang.Object-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i76" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#set-java.lang.Object-int-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i77" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#setAbs-int-short-">setAbs</a></span>(int&nbsp;index,
+      short&nbsp;val)</code>
+<div class="block">Set a value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr id="i78" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i79" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i80" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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 id="i81" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#setData--">setData</a></span>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr id="i82" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#setItem-short-">setItem</a></span>(short&nbsp;value)</code>
+<div class="block">Sets the value at first point to the passed value.</div>
+</td>
+</tr>
+<tr id="i83" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#setItem-short-int...-">setItem</a></span>(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 id="i84" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#setItem-short-int-">setItem</a></span>(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 id="i85" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#setItem-short-int-int-">setItem</a></span>(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 id="i86" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#setItemDirect-int-int-java.lang.Object-">setItemDirect</a></span>(int&nbsp;dindex,
+             int&nbsp;sindex,
+             <a href="https://docs.oracle.com/javase/8/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 id="i87" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">setItemsOnAxes</a></span>(int[]&nbsp;pos,
+              boolean[]&nbsp;axes,
+              <a href="https://docs.oracle.com/javase/8/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 id="i88" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#setObjectAbs-int-java.lang.Object-">setObjectAbs</a></span>(int&nbsp;index,
+            <a href="https://docs.oracle.com/javase/8/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 id="i89" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i90" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#sort-java.lang.Integer-">sort</a></span>(<a href="https://docs.oracle.com/javase/8/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-boolean...-">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-int-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps-double-double-double-">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast-boolean-int-int-">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#cast-int-java.lang.Class-boolean-">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-int-">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-org.eclipse.january.dataset.AbstractDataset-boolean-boolean-">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.Dataset-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-int-int:A-int:A-int-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-org.eclipse.january.dataset.Dataset-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-int-int:A-int:A-int-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData-java.lang.Object-int-int:A-">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-int-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-int:A-">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-boolean-">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#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-int-">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-int-">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#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-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-int:A-int:A-int:A-">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:A-int:A-int:A-">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:A-boolean:A-">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView-int:A-int:A-int:A-">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:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max-int-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int:A-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int-boolean...-">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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer-java.io.Serializable-">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength-int-">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape-int...-">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int:A-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes-int-int-">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-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-boolean-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-boolean-boolean...-">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:A-int...-">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-boolean-">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#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#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName--">getName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors--">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata-int:A-int:A-">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors-java.io.Serializable-">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty--">setDirty</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata--">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata-org.eclipse.january.metadata.MetadataType-">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata-java.lang.Class-">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass--">getElementClass</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>
+<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/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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData--">AbstractDataset</a></code></span></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>type of dataset item</dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.158">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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/ShortDataset.html#line.196">hashCode</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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.201">clone</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">ILazyDataset</a></code></span></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.267">fill</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">Fill dataset with given object</div>
+<dl>
+<dt><span class="returnLabel">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.282">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="returnLabel">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.287">getBufferLength</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.294">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="returnLabel">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.309">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="paramLabel">Parameters:</span></dt>
+<dd><code>index</code> - absolute index</dd>
+<dt><span class="returnLabel">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.314">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.319">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.324">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.329">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.334">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.348">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="paramLabel">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.354">setItemDirect</a>(int&nbsp;dindex,
+                             int&nbsp;sindex,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.lang.Object-">AbstractDataset</a></code></span></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.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.361">setObjectAbs</a>(int&nbsp;index,
+                         <a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs-int-java.lang.Object-">Dataset</a></code></span></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.373">get</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item in first position</dd>
+<dt><span class="simpleTagLabel">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.381">get</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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.390">get</a>(int&nbsp;i,
+                 int&nbsp;j)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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.398">get</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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/8/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.403">getObject</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject--">Dataset</a></code></span></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.408">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.413">getObject</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.418">getObject</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.423">getString</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString--">Dataset</a></code></span></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.428">getString</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.433">getString</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.438">getString</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.443">getDouble</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble--">Dataset</a></code></span></div>
+<div class="block">Get first item as a double. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.448">getDouble</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a double. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.453">getDouble</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a double. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.458">getDouble</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.463">getFloat</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat--">Dataset</a></code></span></div>
+<div class="block">Get first item as a float. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.468">getFloat</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a float. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.473">getFloat</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a float. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.478">getFloat</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.483">getLong</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong--">Dataset</a></code></span></div>
+<div class="block">Get first item as a long. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.488">getLong</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a long. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.493">getLong</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a long. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.498">getLong</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.503">getInt</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt--">Dataset</a></code></span></div>
+<div class="block">Get first item as an int. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.508">getInt</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an int. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.513">getInt</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an int. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.518">getInt</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.523">getShort</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort--">Dataset</a></code></span></div>
+<div class="block">Get first item as a short. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.528">getShort</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a short. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.533">getShort</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a short. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.538">getShort</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.543">getByte</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte--">Dataset</a></code></span></div>
+<div class="block">Get first item as a byte. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.548">getByte</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a byte. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.553">getByte</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given positionj as a byte. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.558">getByte</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.563">getBoolean</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean--">Dataset</a></code></span></div>
+<div class="block">Get first item as a boolean. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.568">getBoolean</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.573">getBoolean</a>(int&nbsp;i,
+                          int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.578">getBoolean</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.588">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="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - </dd>
+<dt><span class="simpleTagLabel">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.598">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="paramLabel">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.609">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="paramLabel">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.619">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="paramLabel">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.624">set</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-">Dataset</a></code></span></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.629">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-">Dataset</a></code></span></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.634">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-int-">Dataset</a></code></span></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.639">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set-java.lang.Object-int...-">IDataset</a></code></span></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.648">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize-int...-">IDataset</a></code></span></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.672">sort</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sort-java.lang.Integer-">Dataset</a></code></span></div>
+<div class="block">In-place sort of dataset</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis</code> - to sort along. If null, then the flattened view is sorted</dd>
+<dt><span class="returnLabel">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.699">getUniqueItems</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getUniqueItems--">Dataset</a></code></span></div>
+<div class="block">Get unique items</div>
+<dl>
+<dt><span class="returnLabel">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.716">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">AbstractDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="returnLabel">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.728">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">Dataset</a></code></span></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.740">setByBoolean</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></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="paramLabel">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="returnLabel">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.768">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.795">setByIndexes</a>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.834">setSlice</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>The dataset with the sliced set to object</dd>
+</dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes-int:A-boolean:A-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.874">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl>
+<dt><span class="paramLabel">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:A-boolean:A-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.893">setItemsOnAxes</a>(int[]&nbsp;pos,
+                           boolean[]&nbsp;axes,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">Dataset</a></code></span></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.924">maxPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.942">minPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.960">containsNans</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.965">containsInfs</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.970">containsInvalidNumbers</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.975">iadd</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place addition with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1010">isubtract</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place subtraction with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1046">imultiply</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place multiplication with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1081">idivide</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place division with object o</div>
+<dl>
+<dt><span class="returnLabel">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.1133">ifloor</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor--">Dataset</a></code></span></div>
+<div class="block">In-place floor</div>
+<dl>
+<dt><span class="returnLabel">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.1138">iremainder</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place remainder</div>
+<dl>
+<dt><span class="returnLabel">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.1186">ipower</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place raise to power of object o</div>
+<dl>
+<dt><span class="returnLabel">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.1254">residual</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">Dataset</a></code></span></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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/SingleInputBroadcastIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/SingleInputBroadcastIterator.html
new file mode 100644
index 0000000..4c7714d
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/SingleInputBroadcastIterator.html
@@ -0,0 +1,550 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SingleInputBroadcastIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SingleInputBroadcastIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/SingleItemIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#aDouble">aDouble</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#aIndex">aIndex</a></span></code>
+<div class="block">Index in array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#aLong">aLong</a></span></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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#oIndex">oIndex</a></span></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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#SingleInputBroadcastIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">SingleInputBroadcastIterator</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#SingleInputBroadcastIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">SingleInputBroadcastIterator</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#SingleInputBroadcastIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-boolean-boolean-">SingleInputBroadcastIterator</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#getOutput--">getOutput</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#getPos--">getPos</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#getShape--">getShape</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#hasNext--">hasNext</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#isOutputDouble--">isOutputDouble</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#reset--">reset</a></span>()</code>
+<div class="block">Reset iterator</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#setOutputDouble-boolean-">setOutputDouble</a></span>(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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="paramLabel">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="paramLabel">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.84">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="paramLabel">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.155">isOutputDouble</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.163">setOutputDouble</a>(boolean&nbsp;asDouble)</pre>
+<div class="block">Set to output doubles</div>
+<dl>
+<dt><span class="paramLabel">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.171">getShape</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.176">hasNext</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.226">getOutput</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.231">getPos</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.236">reset</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset--">IndexIterator</a></code></span></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/SingleItemIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/SingleItemIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/SingleItemIterator.html
new file mode 100644
index 0000000..d50be6b
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/SingleItemIterator.html
@@ -0,0 +1,359 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SingleItemIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SingleItemIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SingleItemIterator.html#SingleItemIterator-int-int-">SingleItemIterator</a></span>(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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SingleItemIterator.html#getPos--">getPos</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SingleItemIterator.html#hasNext--">hasNext</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SingleItemIterator.html#reset--">reset</a></span>()</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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="paramLabel">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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset--">IndexIterator</a></code></span></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/Slice.html b/apidocs/2.3.0/org/eclipse/january/dataset/Slice.html
new file mode 100644
index 0000000..b5ad1a0
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/Slice.html
@@ -0,0 +1,927 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Slice (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Slice (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":10,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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/8/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.47">Slice</a>
+extends <a href="https://docs.oracle.com/javase/8/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/8/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/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></pre>
+<div class="block">The <code>Slice</code> class represents the set of indices (start, stop, step), that are used to extract specifics subsets of <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><code>Dataset</code></a>.<br><br>
+ The start argument default to 0, stop argument default to the stop argument default to the end of the dimension that the slice is applied to, and the default argument for the step is 1.
+ <br><br>
+ The start index is inclusive, for example, if we want to get data from index 1, so sliceData will be <b>[2,3]</b> :
+ <pre>
+ <code>
+ final Dataset onedData = DatasetFactory.createFromObject(new int[]{1,2,3});
+ Dataset sliceData = onedData.getSlice(new Slice(1, null, null));
+ </code>
+ </pre>
+ 
+ If Slice is specified with only one argument, this will be the stop index which is exclusive. In this case sliceData will be <b>[1,2]</b> :
+ <pre>
+ <code>
+ final Dataset onedData = DatasetFactory.createFromObject(new int[]{1,2,3});
+ Dataset sliceData = onedData.getSlice(new Slice(2));
+ </code>
+ </pre>
+ 
+ To create a 1D Slice, so sliceData is : <b>[6, 5, 4]</b>, we will do :
+ <pre>
+ <code>
+ final Dataset sliceData = DatasetFactory.createFromObject(new int[]{10,9,8,7,6,5,4,3,2,1,0});
+ Dataset newOnedData = sliceData.getSlice(new Slice(4, 7, 1));
+ </code>
+ </pre>
+ <br>
+ For more informations, see the sliceFrom1D example in SlicingExamples.</div>
+<dl>
+<dt><span class="seeLabel">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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Slice.html#Slice--">Slice</a></span>()</code>
+<div class="block">Constructs a Slice object with the start and the stop value representing
+ the entirety of the sliced dimension of the Dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Slice.html#Slice-java.lang.Integer-">Slice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;stop)</code>
+<div class="block">Constructs a Slice object with, by default the start set to 0 and with a
+ step of 1.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Slice.html#Slice-java.lang.Integer-java.lang.Integer-">Slice</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;stop)</code>
+<div class="block">Constructs a Slice object with, by default a step of 1.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Slice.html#Slice-java.lang.Integer-java.lang.Integer-java.lang.Integer-">Slice</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;step)</code>
+<div class="block">Constructs a Slice object on which it is possible to chooe the start, the
+ stop and the step.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Slice.html#appendSliceToString-java.lang.StringBuilder-int-int-int-int-">appendSliceToString</a></span>(<a href="https://docs.oracle.com/javase/8/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">Appends a String representation of the Slice comparable to the python
+ representation.</div>
+</td>
+</tr>
+<tr id="i1" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Slice.html#clone--">clone</a></span>()</code>
+<div class="block">Creates a deep copy of the Slice.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Slice.html#convertFromSlice-org.eclipse.january.dataset.Slice:A-int:A-int:A-int:A-int:A-">convertFromSlice</a></span>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]&nbsp;slice,
+                int[]&nbsp;shape,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">Populates given start, stop, step arrays from given slice array</div>
+</td>
+</tr>
+<tr id="i3" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Slice.html#convertFromString-java.lang.String-">convertFromString</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;sliceString)</code>
+<div class="block">Converts string in a Slice array</div>
+</td>
+</tr>
+<tr id="i4" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Slice.html#convertToSlice-int:A-int:A-int:A-">convertToSlice</a></span>(int[]&nbsp;start,
+              int[]&nbsp;stop,
+              int[]&nbsp;step)</code>
+<div class="block">Converts a set of integer arrays in a slice array</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Slice.html#createString-int:A-int:A-int:A-int:A-">createString</a></span>(int[]&nbsp;shape,
+            int[]&nbsp;start,
+            int[]&nbsp;stop,
+            int[]&nbsp;step)</code>
+<div class="block">Creates a string representing the slice taken from given shape</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Slice.html#createString-org.eclipse.january.dataset.Slice...-">createString</a></span>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slices)</code>
+<div class="block">Creates a string representation of slices.</div>
+</td>
+</tr>
+<tr id="i7" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Slice.html#flip--">flip</a></span>()</code>
+<div class="block">Flips the Slice direction, after this operation, the slice begins at
+ previous end point, steps in the opposite direction, and finishes at the
+ previous start point.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Slice.html#getEnd--">getEnd</a></span>()</code>
+<div class="block">Returns the last value inside of Slice.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Slice.html#getLength--">getLength</a></span>()</code>
+<div class="block">Returns the maximum value of the slice.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Slice.html#getNumSteps--">getNumSteps</a></span>()</code>
+<div class="block">Returns the number of steps inside of the Slice</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Slice.html#getNumSteps-int-int-">getNumSteps</a></span>(int&nbsp;beg,
+           int&nbsp;end)</code>
+<div class="block">Returns the number of steps inside of the Slice from a point to an other
+ point minus 1 because this is an exclusive index</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Slice.html#getPosition-int-">getPosition</a></span>(int&nbsp;n)</code>
+<div class="block">Returns the index of the n-th step inside of the slice</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Slice.html#getStart--">getStart</a></span>()</code>
+<div class="block">Returns the starting index of the slice.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Slice.html#getStep--">getStep</a></span>()</code>
+<div class="block">Returns the step of the slice.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Slice.html#getStop--">getStop</a></span>()</code>
+<div class="block">Returns the stopping index of the slice.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Slice.html#isSliceComplete--">isSliceComplete</a></span>()</code>
+<div class="block">Returns <code>true</code> if the slice has a maximum size equal to the current
+ size, else <code>false</code>.</div>
+</td>
+</tr>
+<tr id="i17" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Slice.html#setLength-int-">setLength</a></span>(int&nbsp;length)</code>
+<div class="block">Sets the maximal dimensions length of the Slice.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Slice.html#setPosition-int-">setPosition</a></span>(int&nbsp;beg)</code>
+<div class="block">Move the start and end to an other index keeping the same step and the
+ same gap between the two values</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Slice.html#setStart-java.lang.Integer-">setStart</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;start)</code>
+<div class="block">Set the starting index of the slice.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Slice.html#setStep-int-">setStep</a></span>(int&nbsp;step)</code>
+<div class="block">Set the step size inside of the Slice.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Slice.html#setStop-java.lang.Integer-">setStop</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;stop)</code>
+<div class="block">Set the stopping index of the slice.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Slice.html#toString--">toString</a></span>()</code>
+<div class="block">Returns a string construction of the slice with the python form.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Slice--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Slice</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.60">Slice</a>()</pre>
+<div class="block">Constructs a Slice object with the start and the stop value representing
+ the entirety of the sliced dimension of the Dataset.</div>
+</li>
+</ul>
+<a name="Slice-java.lang.Integer-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Slice</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.73">Slice</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;stop)</pre>
+<div class="block">Constructs a Slice object with, by default the start set to 0 and with a
+ step of 1. If the stop point of the Slice is <code>null</code>, it will be set
+ to the stop argument default to the end of the dimension that the slice
+ is applied to.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>stop</code> - the stop point of the Slice</dd>
+</dl>
+</li>
+</ul>
+<a name="Slice-java.lang.Integer-java.lang.Integer-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Slice</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.89">Slice</a>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;stop)</pre>
+<div class="block">Constructs a Slice object with, by default a step of 1. If the start
+ point of the Slice is <code>null</code>, it will be set automatically to 0. If
+ the stop point of the Slice is <code>null</code>, it will be set to the stop
+ argument default to the end of the dimension that the slice is applied
+ to.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>start</code> - the start point of the Slice</dd>
+<dd><code>stop</code> - the stop point of the Slice</dd>
+</dl>
+</li>
+</ul>
+<a name="Slice-java.lang.Integer-java.lang.Integer-java.lang.Integer-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Slice</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.108">Slice</a>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;step)</pre>
+<div class="block">Constructs a Slice object on which it is possible to chooe the start, the
+ stop and the step. If the start point of the Slice is <code>null</code>, it
+ will be set automatically to 0. If the stop point of the Slice is
+ <code>null</code>, it will be set to the stop argument default to the end of
+ the dimension that the slice is applied to. If the the wanted step is set
+ to <code>null</code>, it will be set by default to 1.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>start</code> - the start point of the Slice, may be <code>null</code></dd>
+<dd><code>stop</code> - the stop point of the Slice, may be <code>null</code></dd>
+<dd><code>step</code> - the step wanted to browse the Dataset, may be <code>null</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="clone--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.133">clone</a>()</pre>
+<div class="block">Creates a deep copy of the Slice.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>New Slice with the current Slice properties</dd>
+</dl>
+</li>
+</ul>
+<a name="setLength-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setLength</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.144">setLength</a>(int&nbsp;length)</pre>
+<div class="block">Sets the maximal dimensions length of the Slice.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>length</code> - Wanted size of dimensions</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The Slice which the method is called on</dd>
+</dl>
+</li>
+</ul>
+<a name="isSliceComplete--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isSliceComplete</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.168">isSliceComplete</a>()</pre>
+<div class="block">Returns <code>true</code> if the slice has a maximum size equal to the current
+ size, else <code>false</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if slice represents complete dimension,
+         <code>false</code> in the other case.</dd>
+</dl>
+</li>
+</ul>
+<a name="getLength--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLength</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.183">getLength</a>()</pre>
+<div class="block">Returns the maximum value of the slice.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Maximum value of the slice</dd>
+</dl>
+</li>
+</ul>
+<a name="getStart--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStart</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/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.192">getStart</a>()</pre>
+<div class="block">Returns the starting index of the slice.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Start point of the slice</dd>
+</dl>
+</li>
+</ul>
+<a name="getStop--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStop</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/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.201">getStop</a>()</pre>
+<div class="block">Returns the stopping index of the slice.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Stop point of the slice</dd>
+</dl>
+</li>
+</ul>
+<a name="getStep--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStep</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.210">getStep</a>()</pre>
+<div class="block">Returns the step of the slice.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Step of the slice</dd>
+</dl>
+</li>
+</ul>
+<a name="setStart-java.lang.Integer-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setStart</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.221">setStart</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;start)</pre>
+<div class="block">Set the starting index of the slice. If the start point of the Slice is
+ <code>null</code>, it will be set automatically to 0.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>start</code> - Starting index of the Slice, may be <code>null</code></dd>
+</dl>
+</li>
+</ul>
+<a name="setStop-java.lang.Integer-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setStop</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.246">setStop</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;stop)</pre>
+<div class="block">Set the stopping index of the slice. If the stop point of the Slice is
+ <code>null</code>, it will be set to the stop argument default to the end of
+ the dimension that the slice is applied to.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>stop</code> - Stopping index of the Slice, may be <code>null</code></dd>
+</dl>
+</li>
+</ul>
+<a name="setPosition-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPosition</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.274">setPosition</a>(int&nbsp;beg)</pre>
+<div class="block">Move the start and end to an other index keeping the same step and the
+ same gap between the two values</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>beg</code> - New starting point</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Return <code>true</code> if the end was reached, <code>false</code> in the
+         other case.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPosition-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPosition</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.294">getPosition</a>(int&nbsp;n)</pre>
+<div class="block">Returns the index of the n-th step inside of the slice</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>n</code> - Wanted step index in the slice</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Return the index of the step inside of the Slice</dd>
+</dl>
+</li>
+</ul>
+<a name="setStep-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setStep</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.326">setStep</a>(int&nbsp;step)</pre>
+<div class="block">Set the step size inside of the Slice. If the the wanted step is set to
+ <code>null</code>, it will be set by default to 1.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>step</code> - New wanted step, may be <code>null</code></dd>
+</dl>
+</li>
+</ul>
+<a name="appendSliceToString-java.lang.StringBuilder-int-int-int-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>appendSliceToString</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.348">appendSliceToString</a>(<a href="https://docs.oracle.com/javase/8/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">Appends a String representation of the Slice comparable to the python
+ representation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - String builder</dd>
+<dd><code>len</code> - Maximal length of the Slice, or -1 if not set</dd>
+<dd><code>beg</code> - Start index of the Slice</dd>
+<dd><code>end</code> - Stop index of the Slice</dd>
+<dd><code>del</code> - Step of the Slice</dd>
+</dl>
+</li>
+</ul>
+<a name="toString--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/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.389">toString</a>()</pre>
+<div class="block">Returns a string construction of the slice with the python form.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Constructed String.</dd>
+</dl>
+</li>
+</ul>
+<a name="getNumSteps--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumSteps</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.401">getNumSteps</a>()</pre>
+<div class="block">Returns the number of steps inside of the Slice</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Number of steps inside of the Slice</dd>
+</dl>
+</li>
+</ul>
+<a name="getNumSteps-int-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumSteps</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.427">getNumSteps</a>(int&nbsp;beg,
+                       int&nbsp;end)</pre>
+<div class="block">Returns the number of steps inside of the Slice from a point to an other
+ point minus 1 because this is an exclusive index</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>beg</code> - Starting point</dd>
+<dd><code>end</code> - (exclusive) Stopping point</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Numbers of steps between the 2 limits.</dd>
+</dl>
+</li>
+</ul>
+<a name="getEnd--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEnd</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.442">getEnd</a>()</pre>
+<div class="block">Returns the last value inside of Slice.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Last value in the slice, it can be a lower value than the start
+         if the step is going backward</dd>
+</dl>
+</li>
+</ul>
+<a name="flip--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>flip</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.460">flip</a>()</pre>
+<div class="block">Flips the Slice direction, after this operation, the slice begins at
+ previous end point, steps in the opposite direction, and finishes at the
+ previous start point.
+ <p>
+ Note : the stop value may not be preserved across two flips
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Flipped Slice.</dd>
+</dl>
+</li>
+</ul>
+<a name="convertFromSlice-org.eclipse.january.dataset.Slice:A-int:A-int:A-int:A-int:A-">
+<!--   -->
+</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.489">convertFromSlice</a>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]&nbsp;slice,
+                                    int[]&nbsp;shape,
+                                    int[]&nbsp;start,
+                                    int[]&nbsp;stop,
+                                    int[]&nbsp;step)</pre>
+<div class="block">Populates given start, stop, step arrays from given slice array</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>slice</code> - Input array of Slices wanted to convert</dd>
+<dd><code>shape</code> - Input array of Slices shapes</dd>
+<dd><code>start</code> - Output array of Slices starts</dd>
+<dd><code>stop</code> - Output array of Slices stops</dd>
+<dd><code>step</code> - Output array of Slices steps</dd>
+</dl>
+</li>
+</ul>
+<a name="convertToSlice-int:A-int:A-int:A-">
+<!--   -->
+</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.565">convertToSlice</a>(int[]&nbsp;start,
+                                     int[]&nbsp;stop,
+                                     int[]&nbsp;step)</pre>
+<div class="block">Converts a set of integer arrays in a slice array</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>start</code> - Array of Slices starts</dd>
+<dd><code>stop</code> - Array of Slices stops</dd>
+<dd><code>step</code> - Array of Slices steps</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Slice array corresponding to the starts, stops and steps arrays
+         entered.</dd>
+</dl>
+</li>
+</ul>
+<a name="convertFromString-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>convertFromString</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.588">convertFromString</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;sliceString)</pre>
+<div class="block">Converts string in a Slice array</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sliceString</code> - String of the Slice array</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Slice array created from the given string</dd>
+</dl>
+</li>
+</ul>
+<a name="createString-int:A-int:A-int:A-int:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createString</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/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.649">createString</a>(int[]&nbsp;shape,
+                                  int[]&nbsp;start,
+                                  int[]&nbsp;stop,
+                                  int[]&nbsp;step)</pre>
+<div class="block">Creates a string representing the slice taken from given shape</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - Array of Slices shapes</dd>
+<dd><code>start</code> - Array of Slices starts</dd>
+<dd><code>stop</code> - Array of Slices stops</dd>
+<dd><code>step</code> - Array of Slices steps</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>String representation of the Slice</dd>
+</dl>
+</li>
+</ul>
+<a name="createString-org.eclipse.january.dataset.Slice...-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>createString</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/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.675">createString</a>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slices)</pre>
+<div class="block">Creates a string representation of slices.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>slices</code> - Wanted Slices to put inside of the string representation</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Return the string representation of the Slices entered.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/SliceIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/SliceIterator.html
new file mode 100644
index 0000000..fbe63b3
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/SliceIterator.html
@@ -0,0 +1,675 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SliceIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SliceIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.IndexIterator</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.SliceIterator</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset">NullIterator</a>, <a href="../../../../org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset">StrideIterator</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.25">SliceIterator</a>
+extends <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></pre>
+<div class="block">The <code>SliceIterator</code> class is use to run over a Slice of a Dataset.
+ 
+ This is an Iterator thats allows the programmer to traverse the elements of a sliced Dataset and obtain the current position, the starts, steps,
+ shapes.
+ Moreover, there is possibilities to set the start point to begin at the wanted position.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#index">index</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#SliceIterator-int:A-int-int:A-">SliceIterator</a></span>(int[]&nbsp;shape,
+             int&nbsp;length,
+             int[]&nbsp;sshape)</code>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#SliceIterator-int:A-int-int:A-int-">SliceIterator</a></span>(int[]&nbsp;shape,
+             int&nbsp;length,
+             int[]&nbsp;sshape,
+             int&nbsp;isize)</code>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#SliceIterator-int:A-int-int:A-int:A-">SliceIterator</a></span>(int[]&nbsp;shape,
+             int&nbsp;length,
+             int[]&nbsp;start,
+             int[]&nbsp;sshape)</code>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#SliceIterator-int:A-int-int:A-int:A-int-">SliceIterator</a></span>(int[]&nbsp;shape,
+             int&nbsp;length,
+             int[]&nbsp;start,
+             int[]&nbsp;sshape,
+             int&nbsp;isize)</code>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#SliceIterator-int:A-int-int:A-int:A-int:A-">SliceIterator</a></span>(int[]&nbsp;shape,
+             int&nbsp;length,
+             int[]&nbsp;start,
+             int[]&nbsp;step,
+             int[]&nbsp;sshape)</code>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#SliceIterator-int:A-int-int:A-int:A-int:A-int-">SliceIterator</a></span>(int[]&nbsp;shape,
+             int&nbsp;length,
+             int[]&nbsp;start,
+             int[]&nbsp;step,
+             int[]&nbsp;sshape,
+             int&nbsp;isize)</code>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#SliceIterator-int:A-int-int-org.eclipse.january.dataset.SliceND-">SliceIterator</a></span>(int[]&nbsp;shape,
+             int&nbsp;length,
+             int&nbsp;isize,
+             <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#SliceIterator-int:A-int-org.eclipse.january.dataset.SliceND-">SliceIterator</a></span>(int[]&nbsp;shape,
+             int&nbsp;length,
+             <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getPos--">getPos</a></span>()</code>
+<div class="block">Returns the current position of the iterator.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getShape--">getShape</a></span>()</code>
+<div class="block">Returns an array of the Slices shapes.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getStart--">getStart</a></span>()</code>
+<div class="block">Returns an array of starts indexes.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getStep--">getStep</a></span>()</code>
+<div class="block">Returns an array of steps</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#hasNext--">hasNext</a></span>()</code>
+<div class="block">Returns <code>true</code> if there is an other element after the current
+ Slice.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#reset--">reset</a></span>()</code>
+<div class="block">Reset the Iterator to the first Slice.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#setStart-int...-">setStart</a></span>(int...&nbsp;newStart)</code>
+<div class="block">Set the starts indexes to new positions, <code>if null</code> the start index
+ is set by default to 0</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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:A-int-int:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SliceIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.52">SliceIterator</a>(int[]&nbsp;shape,
+                     int&nbsp;length,
+                     int[]&nbsp;sshape)</pre>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - Array of shapes of the Dataset</dd>
+<dd><code>length</code> - Length of entire data array</dd>
+<dd><code>sshape</code> - Shape of the new dataset, i.e. slice</dd>
+</dl>
+</li>
+</ul>
+<a name="SliceIterator-int:A-int-int:A-int:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SliceIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.69">SliceIterator</a>(int[]&nbsp;shape,
+                     int&nbsp;length,
+                     int[]&nbsp;start,
+                     int[]&nbsp;sshape)</pre>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - Array of shapes of the Dataset</dd>
+<dd><code>length</code> - Length of entire data array</dd>
+<dd><code>start</code> - Array of starts indexes, may be <code>null</code></dd>
+<dd><code>sshape</code> - Shape of the new dataset, i.e. slice</dd>
+</dl>
+</li>
+</ul>
+<a name="SliceIterator-int:A-int-int:A-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SliceIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.86">SliceIterator</a>(int[]&nbsp;shape,
+                     int&nbsp;length,
+                     int[]&nbsp;sshape,
+                     int&nbsp;isize)</pre>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - Array of shapes of the Dataset</dd>
+<dd><code>length</code> - Length of entire data array</dd>
+<dd><code>sshape</code> - Shape of the new dataset, i.e. slice</dd>
+<dd><code>isize</code> - Number of elements in an item</dd>
+</dl>
+</li>
+</ul>
+<a name="SliceIterator-int:A-int-int:A-int:A-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SliceIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.105">SliceIterator</a>(int[]&nbsp;shape,
+                     int&nbsp;length,
+                     int[]&nbsp;start,
+                     int[]&nbsp;sshape,
+                     int&nbsp;isize)</pre>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - Array of shapes of the Dataset</dd>
+<dd><code>length</code> - Length of entire data array</dd>
+<dd><code>start</code> - Array of starts indexes, may be <code>null</code></dd>
+<dd><code>sshape</code> - Shape of the new dataset, i.e. slice</dd>
+<dd><code>isize</code> - Number of elements in an item</dd>
+</dl>
+</li>
+</ul>
+<a name="SliceIterator-int:A-int-int:A-int:A-int:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SliceIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.124">SliceIterator</a>(int[]&nbsp;shape,
+                     int&nbsp;length,
+                     int[]&nbsp;start,
+                     int[]&nbsp;step,
+                     int[]&nbsp;sshape)</pre>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - Array of shapes of the Dataset</dd>
+<dd><code>length</code> - Length of entire data array</dd>
+<dd><code>start</code> - Array of starts indexes, may be <code>null</code></dd>
+<dd><code>step</code> - Array of steps, may be <code>null</code>, but can't be 0</dd>
+<dd><code>sshape</code> - shape of new dataset, i.e. slice</dd>
+</dl>
+</li>
+</ul>
+<a name="SliceIterator-int:A-int-org.eclipse.january.dataset.SliceND-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SliceIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.139">SliceIterator</a>(int[]&nbsp;shape,
+                     int&nbsp;length,
+                     <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - Array of shapes of the Dataset</dd>
+<dd><code>length</code> - Length of entire data array</dd>
+<dd><code>slice</code> - SliceND to iterate on</dd>
+</dl>
+</li>
+</ul>
+<a name="SliceIterator-int:A-int-int-org.eclipse.january.dataset.SliceND-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SliceIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.156">SliceIterator</a>(int[]&nbsp;shape,
+                     int&nbsp;length,
+                     int&nbsp;isize,
+                     <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - Array of shapes of the Dataset</dd>
+<dd><code>length</code> - Length of entire data array</dd>
+<dd><code>isize</code> - Number of elements in an item</dd>
+<dd><code>slice</code> - SliceND to iterate on</dd>
+</dl>
+</li>
+</ul>
+<a name="SliceIterator-int:A-int-int:A-int:A-int:A-int-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SliceIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.177">SliceIterator</a>(int[]&nbsp;shape,
+                     int&nbsp;length,
+                     int[]&nbsp;start,
+                     int[]&nbsp;step,
+                     int[]&nbsp;sshape,
+                     int&nbsp;isize)</pre>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - Array of shapes of the Dataset</dd>
+<dd><code>length</code> - Length of entire data array</dd>
+<dd><code>start</code> - Array of starts indexes, may be <code>null</code></dd>
+<dd><code>step</code> - Array of steps, may be <code>null</code>, but can't be 0</dd>
+<dd><code>sshape</code> - Shape of the new dataset, i.e. slice</dd>
+<dd><code>isize</code> - Number of elements in an item</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setStart-int...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setStart</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.234">setStart</a>(int...&nbsp;newStart)</pre>
+<div class="block">Set the starts indexes to new positions, <code>if null</code> the start index
+ is set by default to 0</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>newStart</code> - Array of new starts indexes (prefix with zeros if necessary),
+            may be <code>null</code></dd>
+</dl>
+</li>
+</ul>
+<a name="reset--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.265">reset</a>()</pre>
+<div class="block">Reset the Iterator to the first Slice.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset--">reset</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hasNext--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.290">hasNext</a>()</pre>
+<div class="block">Returns <code>true</code> if there is an other element after the current
+ Slice.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>Returns <code>true</code> if the iteration has more Slice, <code>false</code> in
+         the other case</dd>
+</dl>
+</li>
+</ul>
+<a name="getStart--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStart</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.316">getStart</a>()</pre>
+<div class="block">Returns an array of starts indexes.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Array of starts indexes</dd>
+</dl>
+</li>
+</ul>
+<a name="getPos--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.326">getPos</a>()</pre>
+<div class="block">Returns the current position of the iterator.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>Iterator current position</dd>
+</dl>
+</li>
+</ul>
+<a name="getStep--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStep</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.335">getStep</a>()</pre>
+<div class="block">Returns an array of steps</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Array of steps</dd>
+</dl>
+</li>
+</ul>
+<a name="getShape--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.345">getShape</a>()</pre>
+<div class="block">Returns an array of the Slices shapes.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">Returns:</span></dt>
+<dd>Array of shapes.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/SliceND.html b/apidocs/2.3.0/org/eclipse/january/dataset/SliceND.html
new file mode 100644
index 0000000..c61d534
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/SliceND.html
@@ -0,0 +1,817 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SliceND (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SliceND (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":9,"i3":9,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">The <code>SliceND</code> class represents a slice through all dimensions of a multi-dimensional <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><code>Dataset</code></a>.<br><br>
+ A slice comprises a starting position array, a stopping position array (not included) and a stepping size array.<br>
+ If a maximum shape is specified, slicing past the original shape is supported for positive
+ steps otherwise it is ignored. With unlimited dimensions, extending past the original shape is only
+ allowed if the stopping value is given.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceND.html#SliceND-int:A-">SliceND</a></span>(int[]&nbsp;shape)</code>
+<div class="block">Construct a nD Slice for whole of shape.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceND.html#SliceND-int:A-int:A-int:A-int:A-">SliceND</a></span>(int[]&nbsp;shape,
+       int[]&nbsp;start,
+       int[]&nbsp;stop,
+       int[]&nbsp;step)</code>
+<div class="block">Construct a nD Slice from parameters, if the maxShape is <code>null</code>, it
+ will be set to the maximum shape of the nD Slice, the start will be set
+ to 0, stop is by default equal to the entire size of the set, step is
+ defaultly set to 1.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceND.html#SliceND-int:A-int:A-int:A-int:A-int:A-">SliceND</a></span>(int[]&nbsp;shape,
+       int[]&nbsp;maxShape,
+       int[]&nbsp;start,
+       int[]&nbsp;stop,
+       int[]&nbsp;step)</code>
+<div class="block">Construct a nD Slice from parameters, if the maxShape is <code>null</code>, it
+ will be set to the maximum shape of the nD Slice, the start will be set
+ to 0, stop is by default equal to the entire size of the set, step is
+ defaultly set to 1.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceND.html#SliceND-int:A-int:A-org.eclipse.january.dataset.Slice...-">SliceND</a></span>(int[]&nbsp;shape,
+       int[]&nbsp;maxShape,
+       <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Construct a nD Slice from an array of 1D slices, if the maxShape is
+ <code>null</code>, it will be set to the maximum shape of the nD Slice.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceND.html#SliceND-int:A-org.eclipse.january.dataset.Slice...-">SliceND</a></span>(int[]&nbsp;shape,
+       <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Construct a nD Slice from an array of 1D slices.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceND.html#clone--">clone</a></span>()</code>
+<div class="block">Creates a deep copy of the SliceND.</div>
+</td>
+</tr>
+<tr id="i1" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceND.html#convertToSlice--">convertToSlice</a></span>()</code>
+<div class="block">Converts to a slice array all the Slices of the SliceND.</div>
+</td>
+</tr>
+<tr id="i2" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceND.html#createSlice-org.eclipse.january.dataset.ILazyDataset-int:A-int:A-">createSlice</a></span>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+           int[]&nbsp;start,
+           int[]&nbsp;stop)</code>
+<div class="block">Creats SliceND from dataset.</div>
+</td>
+</tr>
+<tr id="i3" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceND.html#createSlice-org.eclipse.january.dataset.ILazyDataset-int:A-int:A-int:A-">createSlice</a></span>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+           int[]&nbsp;start,
+           int[]&nbsp;stop,
+           int[]&nbsp;step)</code>
+<div class="block">Creating SliceND from dataset.</div>
+</td>
+</tr>
+<tr id="i4" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceND.html#flip--">flip</a></span>()</code>
+<div class="block">Flips slices directions in all dimensions, this means that all slices are
+ beginning at previous end point, steps are in the opposite direction, and
+ finishes are at the previous start point.</div>
+</td>
+</tr>
+<tr id="i5" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceND.html#flip-int-">flip</a></span>(int&nbsp;i)</code>
+<div class="block">Flips the slice direction in given dimension, this means that slice
+ begins at previous end point, steps in the opposite direction, and
+ finishes at the previous start point.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceND.html#getMaxShape--">getMaxShape</a></span>()</code>
+<div class="block">Returns an array of maximals shapes</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceND.html#getShape--">getShape</a></span>()</code>
+<div class="block">Returns an array of resulting shapes (this can change if the start, stop,
+ step arrays are changed).</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceND.html#getSourceShape--">getSourceShape</a></span>()</code>
+<div class="block">Returns an array of shapes of the source Dataset (this can change for
+ dynamic Datasets).</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceND.html#getStart--">getStart</a></span>()</code>
+<div class="block">Returns an array of the starts values.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceND.html#getStep--">getStep</a></span>()</code>
+<div class="block">Returns an array of the steps values.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceND.html#getStop--">getStop</a></span>()</code>
+<div class="block">Returns an array of stops values.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceND.html#isAll--">isAll</a></span>()</code>
+<div class="block">Returns <code>true</code> if all of originals shapes are covered by positive
+ steps slices, else <code>false</code>.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceND.html#isExpanded--">isExpanded</a></span>()</code>
+<div class="block">Returns <code>true</code> if the slice makes shape larger, else <code>false</code>.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceND.html#setSlice-int-java.lang.Integer-java.lang.Integer-int-">setSlice</a></span>(int&nbsp;i,
+        <a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;stop,
+        int&nbsp;step)</code>
+<div class="block">Set slice for given dimension, if the start is <code>null</code> it will be
+ set to 0, stop is by default equal to the entire size of the set.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceND.html#setSlice-int-int-int-int-">setSlice</a></span>(int&nbsp;i,
+        int&nbsp;start,
+        int&nbsp;stop,
+        int&nbsp;step)</code>
+<div class="block">Set slice for given dimension, if the start is <code>null</code> it will be
+ set to 0, stop is by default equal to the entire size of the set.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceND.html#setSlice-int-org.eclipse.january.dataset.Slice-">setSlice</a></span>(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 id="i17" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceND.html#toString--">toString</a></span>()</code>
+<div class="block">Returns a string construction of the sliceND with the python form.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SliceND</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.37">SliceND</a>(int[]&nbsp;shape)</pre>
+<div class="block">Construct a nD Slice for whole of shape.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - Shape of the dataset, see <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape--"><code>ILazyDataset.getShape()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a name="SliceND-int:A-org.eclipse.january.dataset.Slice...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SliceND</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.57">SliceND</a>(int[]&nbsp;shape,
+               <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</pre>
+<div class="block">Construct a nD Slice from an array of 1D slices.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - Shape of the dataset, see <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape--"><code>ILazyDataset.getShape()</code></a></dd>
+<dd><code>slice</code> - Slice for each dimension of ND slice</dd>
+</dl>
+</li>
+</ul>
+<a name="SliceND-int:A-int:A-org.eclipse.january.dataset.Slice...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SliceND</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.72">SliceND</a>(int[]&nbsp;shape,
+               int[]&nbsp;maxShape,
+               <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</pre>
+<div class="block">Construct a nD Slice from an array of 1D slices, if the maxShape is
+ <code>null</code>, it will be set to the maximum shape of the nD Slice.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - Shape of the dataset, see <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape--"><code>ILazyDataset.getShape()</code></a></dd>
+<dd><code>maxShape,</code> - may be <code>null</code></dd>
+<dd><code>slice</code> - Slice for each dimension of ND slice</dd>
+</dl>
+</li>
+</ul>
+<a name="SliceND-int:A-int:A-int:A-int:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SliceND</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.123">SliceND</a>(int[]&nbsp;shape,
+               int[]&nbsp;start,
+               int[]&nbsp;stop,
+               int[]&nbsp;step)</pre>
+<div class="block">Construct a nD Slice from parameters, if the maxShape is <code>null</code>, it
+ will be set to the maximum shape of the nD Slice, the start will be set
+ to 0, stop is by default equal to the entire size of the set, step is
+ defaultly set to 1.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - Shape of the dataset, see <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape--"><code>ILazyDataset.getShape()</code></a></dd>
+<dd><code>start</code> - Array of starts points, may be <code>null</code></dd>
+<dd><code>stop</code> - Array of stops points, may be <code>null</code></dd>
+<dd><code>step</code> - Array of steps, may be <code>null</code></dd>
+</dl>
+</li>
+</ul>
+<a name="SliceND-int:A-int:A-int:A-int:A-int:A-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SliceND</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.144">SliceND</a>(int[]&nbsp;shape,
+               int[]&nbsp;maxShape,
+               int[]&nbsp;start,
+               int[]&nbsp;stop,
+               int[]&nbsp;step)</pre>
+<div class="block">Construct a nD Slice from parameters, if the maxShape is <code>null</code>, it
+ will be set to the maximum shape of the nD Slice, the start will be set
+ to 0, stop is by default equal to the entire size of the set, step is
+ defaultly set to 1.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - Shape of the dataset, see <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape--"><code>ILazyDataset.getShape()</code></a></dd>
+<dd><code>maxShape</code> - Array of maximals shapes, may be <code>null</code></dd>
+<dd><code>start</code> - Array of starts points, may be <code>null</code></dd>
+<dd><code>stop</code> - Array of stops points, may be <code>null</code></dd>
+<dd><code>step</code> - Array of steps, may be <code>null</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setSlice-int-java.lang.Integer-java.lang.Integer-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.202">setSlice</a>(int&nbsp;i,
+                     <a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;stop,
+                     int&nbsp;step)</pre>
+<div class="block">Set slice for given dimension, if the start is <code>null</code> it will be
+ set to 0, stop is by default equal to the entire size of the set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - dimension</dd>
+<dd><code>start</code> - Start point, may be <code>null</code> to imply start of dimension</dd>
+<dd><code>stop</code> - Stop point, may be <code>null</code> to imply end of dimension</dd>
+<dd><code>step</code> - Slice step</dd>
+</dl>
+</li>
+</ul>
+<a name="setSlice-int-int-int-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.219">setSlice</a>(int&nbsp;i,
+                     int&nbsp;start,
+                     int&nbsp;stop,
+                     int&nbsp;step)</pre>
+<div class="block">Set slice for given dimension, if the start is <code>null</code> it will be
+ set to 0, stop is by default equal to the entire size of the set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - dimension</dd>
+<dd><code>start</code> - Start point, may be <code>null</code> to imply start of dimension</dd>
+<dd><code>stop</code> - Stop point, may be <code>null</code> to imply end of dimension</dd>
+<dd><code>step</code> - Slice step</dd>
+</dl>
+</li>
+</ul>
+<a name="setSlice-int-org.eclipse.january.dataset.Slice-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.232">setSlice</a>(int&nbsp;i,
+                     <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>&nbsp;slice)</pre>
+<div class="block">Set slice for given dimension.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - Dimension</dd>
+<dd><code>slice</code> - Slice with wanted properties to set</dd>
+<dt><span class="simpleTagLabel">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.358">getSourceShape</a>()</pre>
+<div class="block">Returns an array of shapes of the source Dataset (this can change for
+ dynamic Datasets).</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>shape of source Dataset</dd>
+</dl>
+</li>
+</ul>
+<a name="getMaxShape--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMaxShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.367">getMaxShape</a>()</pre>
+<div class="block">Returns an array of maximals shapes</div>
+<dl>
+<dt><span class="returnLabel">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.377">isExpanded</a>()</pre>
+<div class="block">Returns <code>true</code> if the slice makes shape larger, else <code>false</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if slice makes shape larger, <code>false</code> in the
+         other case</dd>
+</dl>
+</li>
+</ul>
+<a name="getShape--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.387">getShape</a>()</pre>
+<div class="block">Returns an array of resulting shapes (this can change if the start, stop,
+ step arrays are changed).</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>resulting shape</dd>
+</dl>
+</li>
+</ul>
+<a name="getStart--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStart</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.396">getStart</a>()</pre>
+<div class="block">Returns an array of the starts values.</div>
+<dl>
+<dt><span class="returnLabel">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.408">getStop</a>()</pre>
+<div class="block">Returns an array of stops values.
+ <p>
+ Note : stop values are clamped to -1 for <b>negative</b> steps
+ </p></div>
+<dl>
+<dt><span class="returnLabel">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.417">getStep</a>()</pre>
+<div class="block">Returns an array of the steps values.</div>
+<dl>
+<dt><span class="returnLabel">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.428">isAll</a>()</pre>
+<div class="block">Returns <code>true</code> if all of originals shapes are covered by positive
+ steps slices, else <code>false</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if all of originals shapes is covered by this slice
+         with positive steps, <code>false</code> in the other case.</dd>
+</dl>
+</li>
+</ul>
+<a name="flip-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>flip</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.453">flip</a>(int&nbsp;i)</pre>
+<div class="block">Flips the slice direction in given dimension, this means that slice
+ begins at previous end point, steps in the opposite direction, and
+ finishes at the previous start point.</div>
+<dl>
+<dt><span class="paramLabel">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.474">flip</a>()</pre>
+<div class="block">Flips slices directions in all dimensions, this means that all slices are
+ beginning at previous end point, steps are in the opposite direction, and
+ finishes are at the previous start point.</div>
+</li>
+</ul>
+<a name="convertToSlice--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>convertToSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.488">convertToSlice</a>()</pre>
+<div class="block">Converts to a slice array all the Slices of the SliceND.</div>
+<dl>
+<dt><span class="returnLabel">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.506">clone</a>()</pre>
+<div class="block">Creates a deep copy of the SliceND.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>New SliceND with the current SliceND properties</dd>
+</dl>
+</li>
+</ul>
+<a name="toString--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/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.524">toString</a>()</pre>
+<div class="block">Returns a string construction of the sliceND with the python form.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Constructed String of all Slices</dd>
+</dl>
+</li>
+</ul>
+<a name="createSlice-org.eclipse.january.dataset.ILazyDataset-int:A-int:A-">
+<!--   -->
+</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.549">createSlice</a>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+                                  int[]&nbsp;start,
+                                  int[]&nbsp;stop)</pre>
+<div class="block">Creats SliceND from dataset.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - ILazyDataset to treat</dd>
+<dd><code>start</code> - Array of starts indexes</dd>
+<dd><code>stop</code> - Array of stops indexes</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Constructed SliceND</dd>
+</dl>
+</li>
+</ul>
+<a name="createSlice-org.eclipse.january.dataset.ILazyDataset-int:A-int:A-int:A-">
+<!--   -->
+</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.566">createSlice</a>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+                                  int[]&nbsp;start,
+                                  int[]&nbsp;stop,
+                                  int[]&nbsp;step)</pre>
+<div class="block">Creating SliceND from dataset.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - ILazyDataset to treat</dd>
+<dd><code>start</code> - Array of starts indexes</dd>
+<dd><code>stop</code> - Array of stops indexes</dd>
+<dd><code>step</code> - Array of steps</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Constructed SliceND</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/SliceNDIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/SliceNDIterator.html
new file mode 100644
index 0000000..e46aadb
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/SliceNDIterator.html
@@ -0,0 +1,489 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SliceNDIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SliceNDIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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.21">SliceNDIterator</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 provide slice iteration through a dataset
+ <p>It allows a number of axes to be omitted and iterates over
+ the axes left over. The omitted axes define an inner shape and
+ the remaining axes define an outer shape which is iterated over.</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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html#SliceNDIterator-org.eclipse.january.dataset.SliceND-int...-">SliceNDIterator</a></span>(<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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html#getCurrentSlice--">getCurrentSlice</a></span>()</code>
+<div class="block">Get current slice</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html#getOmit--">getOmit</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html#getOmittedSlice--">getOmittedSlice</a></span>()</code>
+<div class="block">Get omitted part of source slice which never changes.</div>
+</td>
+</tr>
+<tr id="i3" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html#getOutputSlice--">getOutputSlice</a></span>()</code>
+<div class="block">Get output or destination slice</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html#getPos--">getPos</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html#getShape--">getShape</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html#getUsedPos--">getUsedPos</a></span>()</code>
+<div class="block">Shortened position where axes are omitted</div>
+</td>
+</tr>
+<tr id="i7" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html#getUsedSlice--">getUsedSlice</a></span>()</code>
+<div class="block">Shortened slice where axes are omitted</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html#hasNext--">hasNext</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html#reset--">reset</a></span>()</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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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.55">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="paramLabel">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.126">hasNext</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.164">getPos</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.172">getOmittedSlice</a>()</pre>
+<div class="block">Get omitted part of source slice which never changes. I.e. the inner slice</div>
+<dl>
+<dt><span class="returnLabel">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.180">getOutputSlice</a>()</pre>
+<div class="block">Get output or destination slice</div>
+<dl>
+<dt><span class="returnLabel">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.188">getCurrentSlice</a>()</pre>
+<div class="block">Get current slice</div>
+<dl>
+<dt><span class="returnLabel">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.196">getUsedPos</a>()</pre>
+<div class="block">Shortened position where axes are omitted</div>
+<dl>
+<dt><span class="returnLabel">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.204">getUsedSlice</a>()</pre>
+<div class="block">Shortened slice where axes are omitted</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>used (or outer) 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.211">getOmit</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.216">reset</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset--">IndexIterator</a></code></span></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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.270">getShape</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/Stats.html b/apidocs/2.3.0/org/eclipse/january/dataset/Stats.html
new file mode 100644
index 0000000..c42b3e5
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/Stats.html
@@ -0,0 +1,1355 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Stats (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Stats (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9,"i20":9,"i21":9,"i22":9,"i23":9,"i24":9,"i25":9,"i26":9,"i27":9,"i28":9,"i29":9,"i30":41,"i31":41,"i32":41,"i33":9,"i34":9,"i35":9,"i36":41,"i37":41,"i38":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#Stats--">Stats</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#averageDeviation-org.eclipse.january.dataset.Dataset-">averageDeviation</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#covariance-org.eclipse.january.dataset.Dataset-">covariance</a></span>(<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-org.eclipse.january.dataset.Dataset-boolean-boolean-java.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 id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#covariance-org.eclipse.january.dataset.Dataset-boolean-boolean-java.lang.Integer-">covariance</a></span>(<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/8/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-org.eclipse.january.dataset.Dataset-boolean-boolean-java.lang.Integer-"><code>covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)</code></a> with b = null.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#covariance-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">covariance</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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-org.eclipse.january.dataset.Dataset-boolean-boolean-java.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 id="i4" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#covariance-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-boolean-java.lang.Integer-">covariance</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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/8/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 id="i5" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#cumulativeProduct-org.eclipse.january.dataset.Dataset-boolean...-">cumulativeProduct</a></span>(<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 id="i6" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#cumulativeProduct-org.eclipse.january.dataset.Dataset-int-boolean...-">cumulativeProduct</a></span>(<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 id="i7" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#cumulativeSum-org.eclipse.january.dataset.Dataset-boolean...-">cumulativeSum</a></span>(<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 id="i8" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#cumulativeSum-org.eclipse.january.dataset.Dataset-int-boolean...-">cumulativeSum</a></span>(<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 id="i9" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#iqr-org.eclipse.january.dataset.Dataset-">iqr</a></span>(<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 id="i10" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#iqr-org.eclipse.january.dataset.Dataset-int-">iqr</a></span>(<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 id="i11" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#kurtosis-org.eclipse.january.dataset.Dataset-boolean...-">kurtosis</a></span>(<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 id="i12" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#kurtosis-org.eclipse.january.dataset.Dataset-int-boolean...-">kurtosis</a></span>(<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 id="i13" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#median-org.eclipse.january.dataset.Dataset-">median</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#median-org.eclipse.january.dataset.Dataset-int-">median</a></span>(<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 id="i15" class="rowColor">
+<td class="colFirst"><code>static double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#outlierValues-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-double-double-int-">outlierValues</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;mask,
+             boolean&nbsp;value,
+             double&nbsp;lo,
+             double&nbsp;hi,
+             int&nbsp;length)</code>
+<div class="block">Calculate approximate outlier values.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>static double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#outlierValues-org.eclipse.january.dataset.Dataset-double-double-int-">outlierValues</a></span>(<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 id="i17" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#product-org.eclipse.january.dataset.Dataset-boolean...-">product</a></span>(<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 id="i18" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#product-org.eclipse.january.dataset.Dataset-int:A-boolean...-">product</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+       int[]&nbsp;axes,
+       boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#product-org.eclipse.january.dataset.Dataset-int-boolean...-">product</a></span>(<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 id="i20" class="altColor">
+<td class="colFirst"><code>static double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#quantile-org.eclipse.january.dataset.Dataset-double...-">quantile</a></span>(<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 id="i21" class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#quantile-org.eclipse.january.dataset.Dataset-double-">quantile</a></span>(<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 id="i22" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#quantile-org.eclipse.january.dataset.Dataset-int-double...-">quantile</a></span>(<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 id="i23" class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#residual-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">residual</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 id="i24" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#skewness-org.eclipse.january.dataset.Dataset-boolean...-">skewness</a></span>(<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 id="i25" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#skewness-org.eclipse.january.dataset.Dataset-int-boolean...-">skewness</a></span>(<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 id="i26" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#sum-org.eclipse.january.dataset.Dataset-boolean...-">sum</a></span>(<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 id="i27" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-boolean...-">typedProduct</a></span>(<a href="https://docs.oracle.com/javase/8/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,
+            <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 id="i28" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-int:A-boolean...-">typedProduct</a></span>(<a href="https://docs.oracle.com/javase/8/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;a,
+            int[]&nbsp;axes,
+            boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i29" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-int-boolean...-">typedProduct</a></span>(<a href="https://docs.oracle.com/javase/8/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;a,
+            int&nbsp;axis,
+            boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#typedProduct-org.eclipse.january.dataset.Dataset-int-boolean...-">typedProduct</a></span>(<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>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based method <a href="../../../../org/eclipse/january/dataset/Stats.html#typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-boolean...-"><code>typedProduct(Class, Dataset, boolean...)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#typedProduct-org.eclipse.january.dataset.Dataset-int-int:A-boolean...-">typedProduct</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+            int&nbsp;dtype,
+            int[]&nbsp;axes,
+            boolean...&nbsp;ignoreInvalids)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based method <a href="../../../../org/eclipse/january/dataset/Stats.html#typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-int:A-boolean...-"><code>typedProduct(Class, Dataset, int[], boolean...)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#typedProduct-org.eclipse.january.dataset.Dataset-int-int-boolean...-">typedProduct</a></span>(<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>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based method <a href="../../../../org/eclipse/january/dataset/Stats.html#typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-int-boolean...-"><code>typedProduct(Class, Dataset, int, boolean...)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#typedSum-java.lang.Class-org.eclipse.january.dataset.Dataset-boolean...-">typedSum</a></span>(<a href="https://docs.oracle.com/javase/8/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,
+        <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 id="i34" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#typedSum-java.lang.Class-org.eclipse.january.dataset.Dataset-int:A-boolean...-">typedSum</a></span>(<a href="https://docs.oracle.com/javase/8/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;a,
+        int[]&nbsp;axes,
+        boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i35" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#typedSum-java.lang.Class-org.eclipse.january.dataset.Dataset-int-boolean...-">typedSum</a></span>(<a href="https://docs.oracle.com/javase/8/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;a,
+        int&nbsp;axis,
+        boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#typedSum-org.eclipse.january.dataset.Dataset-int-boolean...-">typedSum</a></span>(<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>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based method <a href="../../../../org/eclipse/january/dataset/Stats.html#typedSum-java.lang.Class-org.eclipse.january.dataset.Dataset-boolean...-"><code>typedSum(Class, Dataset, boolean...)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#typedSum-org.eclipse.january.dataset.Dataset-int-int-boolean...-">typedSum</a></span>(<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>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based method <code>#typedSum(Class, Dataset, axis, boolean...)</code></span></div>
+</div>
+</td>
+</tr>
+<tr id="i38" class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/Stats.html#weightedResidual-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">weightedResidual</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Stats--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Stats</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.36">Stats</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="quantile-org.eclipse.january.dataset.Dataset-double-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>quantile</h4>
+<pre>public static&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.295">quantile</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                              double&nbsp;q)</pre>
+<div class="block">Calculate quantile of dataset which is defined as the inverse of the cumulative distribution function (CDF)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>q</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>point at which CDF has value q</dd>
+</dl>
+</li>
+</ul>
+<a name="quantile-org.eclipse.january.dataset.Dataset-double...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>quantile</h4>
+<pre>public static&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.315">quantile</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                double...&nbsp;values)</pre>
+<div class="block">Calculate quantiles of dataset which is defined as the inverse of the cumulative distribution function (CDF)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>values</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>points at which CDF has given values</dd>
+</dl>
+</li>
+</ul>
+<a name="quantile-org.eclipse.january.dataset.Dataset-int-double...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>quantile</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.342">quantile</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                 int&nbsp;axis,
+                                 double...&nbsp;values)</pre>
+<div class="block">Calculate quantiles of dataset which is defined as the inverse of the cumulative distribution function (CDF)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>axis</code> - </dd>
+<dd><code>values</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - dataset</dd>
+<dd><code>axis</code> - </dd>
+<dt><span class="returnLabel">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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.407">median</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - dataset</dd>
+<dt><span class="returnLabel">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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.417">iqr</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</pre>
+<div class="block">Interquartile range: Q3 - Q1</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>range</dd>
+</dl>
+</li>
+</ul>
+<a name="iqr-org.eclipse.january.dataset.Dataset-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iqr</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.439">iqr</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                          int&nbsp;axis)</pre>
+<div class="block">Interquartile range: Q3 - Q1</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>axis</code> - </dd>
+<dt><span class="returnLabel">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/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>skewness</dd>
+<dt><span class="simpleTagLabel">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/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>kurtosis</dd>
+<dt><span class="simpleTagLabel">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="paramLabel">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-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>skewness along axis in dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a name="kurtosis-org.eclipse.january.dataset.Dataset-int-boolean...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>kurtosis</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.779">kurtosis</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                               int&nbsp;axis,
+                               boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>kurtosis along axis in dataset</dd>
+<dt><span class="simpleTagLabel">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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.790">sum</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                         boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>sum of dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a name="typedSum-java.lang.Class-org.eclipse.january.dataset.Dataset-boolean...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>typedSum</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.801">typedSum</a>(<a href="https://docs.oracle.com/javase/8/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,
+                              <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="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset class</dd>
+<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="returnLabel">Returns:</span></dt>
+<dd>typed sum of dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.3</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><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;<a href="https://docs.oracle.com/javase/8/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.820">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>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based method <a href="../../../../org/eclipse/january/dataset/Stats.html#typedSum-java.lang.Class-org.eclipse.january.dataset.Dataset-boolean...-"><code>typedSum(Class, Dataset, boolean...)</code></a></span></div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>typed sum of dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a name="typedSum-java.lang.Class-org.eclipse.january.dataset.Dataset-int-boolean...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>typedSum</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/Stats.html#line.832">typedSum</a>(<a href="https://docs.oracle.com/javase/8/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;a,
+                                             int&nbsp;axis,
+                                             boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset class</dd>
+<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-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>typed sum of items along axis in dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.3</dd>
+</dl>
+</li>
+</ul>
+<a name="typedSum-java.lang.Class-org.eclipse.january.dataset.Dataset-int:A-boolean...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>typedSum</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/Stats.html#line.844">typedSum</a>(<a href="https://docs.oracle.com/javase/8/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;a,
+                                             int[]&nbsp;axes,
+                                             boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset class</dd>
+<dd><code>a</code> - dataset</dd>
+<dd><code>axes</code> - </dd>
+<dd><code>ignoreInvalids</code> - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>typed sum of items along axes in dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.3</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><a href="https://docs.oracle.com/javase/8/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/Stats.html#line.858">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>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based method <code>#typedSum(Class, Dataset, axis, boolean...)</code></span></div>
+<dl>
+<dt><span class="paramLabel">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-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>typed sum of items along axis in dataset</dd>
+<dt><span class="simpleTagLabel">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/8/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.868">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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>product of all items in dataset</dd>
+<dt><span class="simpleTagLabel">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.879">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="paramLabel">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-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>product of items along axis in dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a name="product-org.eclipse.january.dataset.Dataset-int:A-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.890">product</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                              int[]&nbsp;axes,
+                              boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - dataset</dd>
+<dd><code>axes</code> - </dd>
+<dd><code>ignoreInvalids</code> - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>product of items along axes in dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</dd>
+</dl>
+</li>
+</ul>
+<a name="typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-boolean...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>typedProduct</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/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.902">typedProduct</a>(<a href="https://docs.oracle.com/javase/8/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,
+                                  <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="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset class</dd>
+<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="returnLabel">Returns:</span></dt>
+<dd>typed product of all items in dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.3</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><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;<a href="https://docs.oracle.com/javase/8/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.915">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>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based method <a href="../../../../org/eclipse/january/dataset/Stats.html#typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-boolean...-"><code>typedProduct(Class, Dataset, boolean...)</code></a></span></div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>typed product of all items in dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a name="typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-int-boolean...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>typedProduct</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/Stats.html#line.1036">typedProduct</a>(<a href="https://docs.oracle.com/javase/8/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;a,
+                                                 int&nbsp;axis,
+                                                 boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset class</dd>
+<dd><code>a</code> - dataset</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="returnLabel">Returns:</span></dt>
+<dd>typed product of items along axis in dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.3</dd>
+</dl>
+</li>
+</ul>
+<a name="typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-int:A-boolean...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>typedProduct</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/Stats.html#line.1049">typedProduct</a>(<a href="https://docs.oracle.com/javase/8/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;a,
+                                                 int[]&nbsp;axes,
+                                                 boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - dataset class</dd>
+<dd><code>a</code> - dataset</dd>
+<dd><code>axes</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="returnLabel">Returns:</span></dt>
+<dd>typed product of items in axes of dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.3</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><a href="https://docs.oracle.com/javase/8/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/Stats.html#line.1063">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>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based method <a href="../../../../org/eclipse/january/dataset/Stats.html#typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-int-boolean...-"><code>typedProduct(Class, Dataset, int, boolean...)</code></a></span></div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>typed product of items along axis in dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a name="typedProduct-org.eclipse.january.dataset.Dataset-int-int:A-boolean...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>typedProduct</h4>
+<pre><a href="https://docs.oracle.com/javase/8/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/Stats.html#line.1077">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;axes,
+                                               boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Please use the class-based method <a href="../../../../org/eclipse/january/dataset/Stats.html#typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-int:A-boolean...-"><code>typedProduct(Class, Dataset, int[], boolean...)</code></a></span></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - dataset</dd>
+<dd><code>dtype</code> - </dd>
+<dd><code>axes</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="returnLabel">Returns:</span></dt>
+<dd>typed product of items in axes of dataset</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</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.1273">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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>cumulative product of items in flattened dataset</dd>
+<dt><span class="simpleTagLabel">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.1284">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="paramLabel">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-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>cumulative product of items along axis in dataset</dd>
+<dt><span class="simpleTagLabel">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.1490">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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>cumulative sum of items in flattened dataset</dd>
+<dt><span class="simpleTagLabel">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.1501">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="paramLabel">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-boolean...-"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>cumulative sum of items along axis in dataset</dd>
+<dt><span class="simpleTagLabel">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/8/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.1688">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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.1724">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dt><span class="returnLabel">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.1735">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>b</code> - </dd>
+<dd><code>w</code> - </dd>
+<dt><span class="returnLabel">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.1755">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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>double array with low and high values, and low and high percentage thresholds</dd>
+</dl>
+</li>
+</ul>
+<a name="outlierValues-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-double-double-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>outlierValues</h4>
+<pre>public static&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.1778">outlierValues</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                     <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;mask,
+                                     boolean&nbsp;value,
+                                     double&nbsp;lo,
+                                     double&nbsp;hi,
+                                     int&nbsp;length)</pre>
+<div class="block">Calculate approximate outlier values. These are defined as the values in the dataset
+ that are approximately below and above the given thresholds - in terms of percentages
+ of dataset size.
+ <p>
+ It approximates by limiting the number of items (given by length) used internally by
+ data structures - the larger this is, the more accurate will those outlier values become.
+ The actual thresholds used are returned in the array.
+ <p>
+ Also, the low and high values will be made distinct if possible by adjusting the thresholds</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dd><code>mask</code> - can be null</dd>
+<dd><code>value</code> - value of mask to match to include for calculation</dd>
+<dd><code>lo</code> - percentage threshold for lower limit</dd>
+<dd><code>hi</code> - percentage threshold for higher limit</dd>
+<dd><code>length</code> - maximum number of items used internally, if negative, then unlimited</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>double array with low and high values, and low and high percentage thresholds</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a name="covariance-org.eclipse.january.dataset.Dataset-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>covariance</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.1953">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-org.eclipse.january.dataset.Dataset-boolean-boolean-java.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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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.1963">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/8/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-org.eclipse.january.dataset.Dataset-boolean-boolean-java.lang.Integer-"><code>covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)</code></a> with b = null.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>covariance array of a</dd>
+<dt><span class="simpleTagLabel">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.1973">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-org.eclipse.january.dataset.Dataset-boolean-boolean-java.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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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.1988">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/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>covariance array of a concatenated with b</dd>
+<dt><span class="simpleTagLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/StrideIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/StrideIterator.html
new file mode 100644
index 0000000..f8e38c2
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/StrideIterator.html
@@ -0,0 +1,509 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>StrideIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="StrideIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StrideIterator.html#StrideIterator-int:A-">StrideIterator</a></span>(int[]&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StrideIterator.html#StrideIterator-int:A-int:A-">StrideIterator</a></span>(int[]&nbsp;shape,
+              int[]&nbsp;strides)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StrideIterator.html#StrideIterator-int:A-int:A-int-">StrideIterator</a></span>(int[]&nbsp;shape,
+              int[]&nbsp;strides,
+              int&nbsp;offset)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StrideIterator.html#StrideIterator-int-int:A-">StrideIterator</a></span>(int&nbsp;isize,
+              int[]&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StrideIterator.html#StrideIterator-int-int:A-int:A-int-">StrideIterator</a></span>(int&nbsp;isize,
+              int[]&nbsp;shape,
+              int[]&nbsp;strides,
+              int&nbsp;offset)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StrideIterator.html#StrideIterator-int-int:A-int:A-int:A-int:A-">StrideIterator</a></span>(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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StrideIterator.html#StrideIterator-int-int:A-int:A-int-int-">StrideIterator</a></span>(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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StrideIterator.html#StrideIterator-int-int:A-int:A-int-int:A-int:A-int:A-">StrideIterator</a></span>(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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StrideIterator.html#StrideIterator-int-int:A-int:A-int-org.eclipse.january.dataset.SliceND-">StrideIterator</a></span>(int&nbsp;isize,
+              int[]&nbsp;shape,
+              int[]&nbsp;strides,
+              int&nbsp;offset,
+              <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StrideIterator.html#getPos--">getPos</a></span>()</code>
+<div class="block">Returns the current position of the iterator.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StrideIterator.html#hasNext--">hasNext</a></span>()</code>
+<div class="block">Returns <code>true</code> if there is an other element after the current
+ Slice.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StrideIterator.html#reset--">reset</a></span>()</code>
+<div class="block">Reset the Iterator to the first Slice.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.SliceIterator">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getShape--">getShape</a>, <a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getStart--">getStart</a>, <a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getStep--">getStep</a>, <a href="../../../../org/eclipse/january/dataset/SliceIterator.html#setStart-int...-">setStart</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>StrideIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StrideIterator.html#line.28">StrideIterator</a>(int[]&nbsp;shape)</pre>
+</li>
+</ul>
+<a name="StrideIterator-int-int:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>StrideIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StrideIterator.html#line.32">StrideIterator</a>(int&nbsp;isize,
+                      int[]&nbsp;shape)</pre>
+</li>
+</ul>
+<a name="StrideIterator-int:A-int:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>StrideIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StrideIterator.html#line.36">StrideIterator</a>(int[]&nbsp;shape,
+                      int[]&nbsp;strides)</pre>
+</li>
+</ul>
+<a name="StrideIterator-int:A-int:A-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>StrideIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StrideIterator.html#line.40">StrideIterator</a>(int[]&nbsp;shape,
+                      int[]&nbsp;strides,
+                      int&nbsp;offset)</pre>
+</li>
+</ul>
+<a name="StrideIterator-int-int:A-int:A-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>StrideIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StrideIterator.html#line.44">StrideIterator</a>(int&nbsp;isize,
+                      int[]&nbsp;shape,
+                      int[]&nbsp;strides,
+                      int&nbsp;offset)</pre>
+</li>
+</ul>
+<a name="StrideIterator-int-int:A-int:A-int-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>StrideIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StrideIterator.html#line.48">StrideIterator</a>(int&nbsp;isize,
+                      int[]&nbsp;shape,
+                      int[]&nbsp;strides,
+                      int&nbsp;offset,
+                      int&nbsp;element)</pre>
+</li>
+</ul>
+<a name="StrideIterator-int-int:A-int:A-int:A-int:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>StrideIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StrideIterator.html#line.60">StrideIterator</a>(int&nbsp;isize,
+                      int[]&nbsp;shape,
+                      int[]&nbsp;start,
+                      int[]&nbsp;stop,
+                      int[]&nbsp;step)</pre>
+</li>
+</ul>
+<a name="StrideIterator-int-int:A-int:A-int-int:A-int:A-int:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>StrideIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StrideIterator.html#line.64">StrideIterator</a>(int&nbsp;isize,
+                      int[]&nbsp;shape,
+                      int[]&nbsp;oStrides,
+                      int&nbsp;oOffset,
+                      int[]&nbsp;start,
+                      int[]&nbsp;stop,
+                      int[]&nbsp;step)</pre>
+</li>
+</ul>
+<a name="StrideIterator-int-int:A-int:A-int-org.eclipse.january.dataset.SliceND-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>StrideIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StrideIterator.html#line.68">StrideIterator</a>(int&nbsp;isize,
+                      int[]&nbsp;shape,
+                      int[]&nbsp;strides,
+                      int&nbsp;offset,
+                      <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasNext--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StrideIterator.html#line.120">hasNext</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#hasNext--">SliceIterator</a></code></span></div>
+<div class="block">Returns <code>true</code> if there is an other element after the current
+ Slice.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">Returns:</span></dt>
+<dd>Returns <code>true</code> if the iteration has more Slice, <code>false</code> in
+         the other case</dd>
+</dl>
+</li>
+</ul>
+<a name="getPos--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StrideIterator.html#line.146">getPos</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getPos--">SliceIterator</a></code></span></div>
+<div class="block">Returns the current position of the iterator.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">Returns:</span></dt>
+<dd>Iterator current position</dd>
+</dl>
+</li>
+</ul>
+<a name="reset--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StrideIterator.html#line.151">reset</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#reset--">SliceIterator</a></code></span></div>
+<div class="block">Reset the Iterator to the first Slice.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/StringDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/StringDataset.html
new file mode 100644
index 0000000..ef2ebd5
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/StringDataset.html
@@ -0,0 +1,1428 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>StringDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="StringDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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="seeLabel">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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#containsInfs--">containsInfs</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#containsNans--">containsNans</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getBoolean--">getBoolean</a></span>()</code>
+<div class="block">Get first item as a boolean.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getBoolean-int...-">getBoolean</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getBoolean-int-">getBoolean</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getBoolean-int-int-">getBoolean</a></span>(int&nbsp;i,
+          int&nbsp;j)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getByte--">getByte</a></span>()</code>
+<div class="block">Get first item as a byte.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getByte-int...-">getByte</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getByte-int-">getByte</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a byte.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getByte-int-int-">getByte</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get an item from given positionj as a byte.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getDouble--">getDouble</a></span>()</code>
+<div class="block">Get first item as a double.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getDouble-int...-">getDouble</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getDouble-int-">getDouble</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getDouble-int-int-">getDouble</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getElementBooleanAbs-int-">getElementBooleanAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getElementDoubleAbs-int-">getElementDoubleAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getElementLongAbs-int-">getElementLongAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getFloat--">getFloat</a></span>()</code>
+<div class="block">Get first item as a float.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getFloat-int...-">getFloat</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getFloat-int-">getFloat</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getFloat-int-int-">getFloat</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getInt-int...-">getInt</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getInt-int-">getInt</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getInt-int-int-">getInt</a></span>(int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getLong--">getLong</a></span>()</code>
+<div class="block">Get first item as a long.</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getLong-int...-">getLong</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getLong-int-">getLong</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getLong-int-int-">getLong</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getShort--">getShort</a></span>()</code>
+<div class="block">Get first item as a short.</div>
+</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getShort-int...-">getShort</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getShort-int-">getShort</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getShort-int-int-">getShort</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr id="i33" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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 id="i34" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getStringAbs-int-">getStringAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr id="i35" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getView-boolean-">getView</a></span>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr id="i36" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i37" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i38" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#ifloor--">ifloor</a></span>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr id="i39" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i40" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i41" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i42" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i43" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDataset.html#residual-java.lang.Object-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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-boolean-"><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:A-boolean:A-org.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-org.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-int-">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-int-">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-int-">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-org.eclipse.january.dataset.Dataset-boolean-">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-int...-">set</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#set-java.lang.Object-int-">set</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#set-java.lang.Object-int-int-">set</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setAbs-int-java.lang.String-">setAbs</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setByIndexes-java.lang.Object-java.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-int...-">setItem</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItem-java.lang.String-int-">setItem</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItem-java.lang.String-int-int-">setItem</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItemDirect-int-int-java.lang.Object-">setItemDirect</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">setItemsOnAxes</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setObjectAbs-int-java.lang.Object-">setObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setSlice-java.lang.Object-org.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-boolean...-">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-int-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps-double-double-double-">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast-boolean-int-int-">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#cast-int-java.lang.Class-boolean-">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-int-">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-org.eclipse.january.dataset.AbstractDataset-boolean-boolean-">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.Dataset-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-int-int:A-int:A-int-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-org.eclipse.january.dataset.Dataset-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-int-int:A-int:A-int-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData-java.lang.Object-int-int:A-">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-int-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-int:A-">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-boolean-">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#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-int-">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-int-">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#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-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-int:A-int:A-int:A-">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:A-int:A-int:A-">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:A-boolean:A-">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView-int:A-int:A-int:A-">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:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max-int-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int:A-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int-boolean...-">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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer-java.io.Serializable-">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength-int-">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape-int...-">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int:A-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes-int-int-">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-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-boolean-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-boolean-boolean...-">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:A-int...-">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-boolean-">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#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#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName--">getName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors--">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata-int:A-int:A-">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors-java.io.Serializable-">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty--">setDirty</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata--">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata-org.eclipse.january.metadata.MetadataType-">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata-java.lang.Class-">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass--">getElementClass</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>
+<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="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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="returnLabel">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">ILazyDataset</a></code></span></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">AbstractDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="returnLabel">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.113">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.118">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.123">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.128">getDouble</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble--">Dataset</a></code></span></div>
+<div class="block">Get first item as a double. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.133">getDouble</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a double. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.138">getDouble</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a double. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getDouble-int-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="returnLabel">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.143">getDouble</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.148">getFloat</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat--">Dataset</a></code></span></div>
+<div class="block">Get first item as a float. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.153">getFloat</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a float. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.158">getFloat</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a float. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getFloat-int-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="returnLabel">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.163">getFloat</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.168">getLong</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong--">Dataset</a></code></span></div>
+<div class="block">Get first item as a long. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.173">getLong</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a long. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.178">getLong</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a long. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getLong-int-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="returnLabel">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.183">getLong</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.188">getInt</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an int. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.193">getInt</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an int. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getInt-int-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="returnLabel">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.198">getInt</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.203">getShort</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort--">Dataset</a></code></span></div>
+<div class="block">Get first item as a short. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.208">getShort</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a short. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.213">getShort</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a short. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getShort-int-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="returnLabel">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.218">getShort</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.223">getByte</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte--">Dataset</a></code></span></div>
+<div class="block">Get first item as a byte. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.228">getByte</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a byte. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.233">getByte</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given positionj as a byte. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getByte-int-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="returnLabel">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.238">getByte</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.243">getBoolean</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean--">Dataset</a></code></span></div>
+<div class="block">Get first item as a boolean. The dataset must not be null</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.248">getBoolean</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 1D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.253">getBoolean</a>(int&nbsp;i,
+                          int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 2D</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getBoolean-int-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="returnLabel">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.258">getBoolean</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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/8/docs/api/java/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.263">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.269">containsInfs</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.274">containsNans</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.279">iadd</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place addition with object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.284">isubtract</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place subtraction with object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.289">imultiply</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place multiplication with object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.294">idivide</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place division with object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.299">iremainder</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place remainder</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.304">ifloor</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor--">Dataset</a></code></span></div>
+<div class="block">In-place floor</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.309">ipower</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place raise to power of object o</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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.314">residual</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">Calculate residual of dataset with object o
+ See <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-boolean-"><code>Dataset.residual(Object o, boolean ignoreNaNs)</code></a> with ignoreNaNs = false</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.eclipse.january.dataset.StringDatasetBase">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/StringDatasetBase.html b/apidocs/2.3.0/org/eclipse/january/dataset/StringDatasetBase.html
new file mode 100644
index 0000000..13a1f03
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/StringDatasetBase.html
@@ -0,0 +1,2262 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>StringDatasetBase (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="StringDatasetBase (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":9,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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="seeLabel">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="memberSummary" 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/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#data">data</a></span></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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#clone--">clone</a></span>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#containsInfs--">containsInfs</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#containsInvalidNumbers--">containsInvalidNumbers</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#containsNans--">containsNans</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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 id="i5" class="rowColor">
+<td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#createArray-int-">createArray</a></span>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i7" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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 id="i9" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#get--">get</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#get-int...-">get</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#get-int-">get</a></span>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#get-int-int-">get</a></span>(int&nbsp;i,
+   int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getAbs-int-">getAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get a value from an absolute index of the internal array.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getBoolean--">getBoolean</a></span>()</code>
+<div class="block">Get first item as a boolean.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getBoolean-int...-">getBoolean</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getBoolean-int-">getBoolean</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getBoolean-int-int-">getBoolean</a></span>(int&nbsp;i,
+          int&nbsp;j)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getBufferLength--">getBufferLength</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getByte--">getByte</a></span>()</code>
+<div class="block">Get first item as a byte.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getByte-int...-">getByte</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getByte-int-">getByte</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a byte.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getByte-int-int-">getByte</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get an item from given positionj as a byte.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getData--">getData</a></span>()</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 id="i24" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getDouble--">getDouble</a></span>()</code>
+<div class="block">Get first item as a double.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getDouble-int...-">getDouble</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getDouble-int-">getDouble</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getDouble-int-int-">getDouble</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getDType--">getDType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getElementBooleanAbs-int-">getElementBooleanAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getElementDoubleAbs-int-">getElementDoubleAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getElementLongAbs-int-">getElementLongAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getFloat--">getFloat</a></span>()</code>
+<div class="block">Get first item as a float.</div>
+</td>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getFloat-int...-">getFloat</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i34" class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getFloat-int-">getFloat</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr id="i35" class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getFloat-int-int-">getFloat</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getInt--">getInt</a></span>()</code>
+<div class="block">Get first item as an int.</div>
+</td>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getInt-int...-">getInt</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i38" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getInt-int-">getInt</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getInt-int-int-">getInt</a></span>(int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getLong--">getLong</a></span>()</code>
+<div class="block">Get first item as a long.</div>
+</td>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getLong-int...-">getLong</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getLong-int-">getLong</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr id="i43" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getLong-int-int-">getLong</a></span>(int&nbsp;i,
+       int&nbsp;j)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr id="i44" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getObject--">getObject</a></span>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr id="i45" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getObject-int...-">getObject</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i46" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getObject-int-">getObject</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i47" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getObject-int-int-">getObject</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr id="i48" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getObjectAbs-int-">getObjectAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr id="i49" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getShort--">getShort</a></span>()</code>
+<div class="block">Get first item as a short.</div>
+</td>
+</tr>
+<tr id="i50" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getShort-int...-">getShort</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i51" class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getShort-int-">getShort</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr id="i52" class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getShort-int-int-">getShort</a></span>(int&nbsp;i,
+        int&nbsp;j)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr id="i53" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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 id="i54" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getString--">getString</a></span>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr id="i55" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getString-int...-">getString</a></span>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr id="i56" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getString-int-">getString</a></span>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i57" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getString-int-int-">getString</a></span>(int&nbsp;i,
+         int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr id="i58" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getStringAbs-int-">getStringAbs</a></span>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr id="i59" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getUniqueItems--">getUniqueItems</a></span>()</code>
+<div class="block">Get unique items</div>
+</td>
+</tr>
+<tr id="i60" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getView-boolean-">getView</a></span>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr id="i61" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i62" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i63" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i64" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#ifloor--">ifloor</a></span>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr id="i65" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i66" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i67" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i68" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i69" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#maxPos-boolean...-">maxPos</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i70" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#minPos-boolean...-">minPos</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i71" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i72" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#resize-int...-">resize</a></span>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr id="i73" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#set-java.lang.Object-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i74" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#set-java.lang.Object-int...-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i75" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#set-java.lang.Object-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i76" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#set-java.lang.Object-int-int-">set</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i77" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setAbs-int-java.lang.String-">setAbs</a></span>(int&nbsp;index,
+      <a href="https://docs.oracle.com/javase/8/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 id="i78" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i79" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i80" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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 id="i81" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setData--">setData</a></span>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr id="i82" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItem-java.lang.String-">setItem</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i83" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItem-java.lang.String-int...-">setItem</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i84" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItem-java.lang.String-int-">setItem</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i85" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItem-java.lang.String-int-int-">setItem</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i86" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItemDirect-int-int-java.lang.Object-">setItemDirect</a></span>(int&nbsp;dindex,
+             int&nbsp;sindex,
+             <a href="https://docs.oracle.com/javase/8/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 id="i87" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">setItemsOnAxes</a></span>(int[]&nbsp;pos,
+              boolean[]&nbsp;axes,
+              <a href="https://docs.oracle.com/javase/8/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 id="i88" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setObjectAbs-int-java.lang.Object-">setObjectAbs</a></span>(int&nbsp;index,
+            <a href="https://docs.oracle.com/javase/8/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 id="i89" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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 id="i90" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#sort-java.lang.Integer-">sort</a></span>(<a href="https://docs.oracle.com/javase/8/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-boolean...-">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-int-boolean...-">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps-double-double-double-">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast-boolean-int-int-">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#cast-int-java.lang.Class-boolean-">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis-int-int-">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-org.eclipse.january.dataset.AbstractDataset-boolean-boolean-">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int:A-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int-boolean...-">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.Dataset-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-int-int:A-int:A-int-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-org.eclipse.january.dataset.Dataset-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-int-int:A-int:A-int-int:A-int:A-">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData-java.lang.Object-int-int:A-">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-int-">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape-int:A-int:A-">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-boolean-">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#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-int-">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-int-">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#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-int:A-int:A-int:A-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-int:A-int:A-int:A-">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:A-int:A-int:A-">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:A-boolean:A-">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView-int:A-int:A-int:A-">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:A-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max-int-boolean...-">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int:A-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int-boolean...-">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int:A-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int-boolean...-">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal-java.io.Serializable-int...-">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int-boolean...-">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int:A-boolean...-">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int-boolean...-">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-boolean-">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int-boolean...-">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer-java.io.Serializable-">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength-int-">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape-int...-">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.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-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-boolean-boolean...-">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int:A-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int-boolean...-">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes-int-int-">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-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-boolean-boolean...-">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-boolean-boolean...-">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:A-int...-">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-boolean-">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#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#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName--">getName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors--">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata-int:A-int:A-">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty--">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors-java.io.Serializable-">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata-int:A-">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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty--">setDirty</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata--">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata-org.eclipse.january.metadata.MetadataType-">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata-java.lang.Class-">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass--">getElementClass</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>
+<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;<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData--">AbstractDataset</a></code></span></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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/8/docs/api/java/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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>type of dataset item</dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.157">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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/StringDatasetBase.html#line.195">hashCode</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></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.200">clone</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">ILazyDataset</a></code></span></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.241">fill</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">Fill dataset with given object</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.256">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="returnLabel">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.261">getBufferLength</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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.268">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="returnLabel">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/8/docs/api/java/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.283">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="paramLabel">Parameters:</span></dt>
+<dd><code>index</code> - absolute index</dd>
+<dt><span class="returnLabel">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.288">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.293">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.298">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.303">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.308">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl>
+<dt><span class="returnLabel">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.322">setAbs</a>(int&nbsp;index,
+                   <a href="https://docs.oracle.com/javase/8/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="paramLabel">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.328">setItemDirect</a>(int&nbsp;dindex,
+                             int&nbsp;sindex,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.lang.Object-">AbstractDataset</a></code></span></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect-int-int-java.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.335">setObjectAbs</a>(int&nbsp;index,
+                         <a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs-int-java.lang.Object-">Dataset</a></code></span></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/8/docs/api/java/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.347">get</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>item in first position</dd>
+<dt><span class="simpleTagLabel">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/8/docs/api/java/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.355">get</a>(int&nbsp;i)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dt><span class="returnLabel">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/8/docs/api/java/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.364">get</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - </dd>
+<dd><code>j</code> - </dd>
+<dt><span class="returnLabel">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/8/docs/api/java/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.372">get</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>pos</code> - </dd>
+<dt><span class="returnLabel">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/8/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.377">getObject</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject--">Dataset</a></code></span></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.382">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.387">getObject</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/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.392">getObject</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.397">getString</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString--">Dataset</a></code></span></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.402">getString</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.407">getString</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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/8/docs/api/java/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.412">getString</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.417">getDouble</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble--">Dataset</a></code></span></div>
+<div class="block">Get first item as a double. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.422">getDouble</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a double. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.427">getDouble</a>(int&nbsp;i,
+                        int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a double. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.432">getDouble</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.437">getFloat</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat--">Dataset</a></code></span></div>
+<div class="block">Get first item as a float. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.442">getFloat</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a float. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.447">getFloat</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a float. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.452">getFloat</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.457">getLong</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong--">Dataset</a></code></span></div>
+<div class="block">Get first item as a long. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.462">getLong</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a long. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.467">getLong</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a long. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.472">getLong</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.477">getInt</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt--">Dataset</a></code></span></div>
+<div class="block">Get first item as an int. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.482">getInt</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an int. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.487">getInt</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as an int. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.492">getInt</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.497">getShort</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort--">Dataset</a></code></span></div>
+<div class="block">Get first item as a short. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.502">getShort</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a short. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.507">getShort</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a short. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.512">getShort</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.517">getByte</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte--">Dataset</a></code></span></div>
+<div class="block">Get first item as a byte. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.522">getByte</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a byte. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.527">getByte</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given positionj as a byte. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.532">getByte</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.537">getBoolean</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean--">Dataset</a></code></span></div>
+<div class="block">Get first item as a boolean. The dataset must not be null</div>
+<dl>
+<dt><span class="returnLabel">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.542">getBoolean</a>(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 1D</div>
+<dl>
+<dt><span class="returnLabel">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.547">getBoolean</a>(int&nbsp;i,
+                          int&nbsp;j)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean-int-int-">Dataset</a></code></span></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 2D</div>
+<dl>
+<dt><span class="returnLabel">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.552">getBoolean</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><span class="returnLabel">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.562">setItem</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - </dd>
+<dt><span class="simpleTagLabel">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.572">setItem</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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.583">setItem</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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.593">setItem</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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.598">set</a>(<a href="https://docs.oracle.com/javase/8/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="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-">Dataset</a></code></span></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.603">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-">Dataset</a></code></span></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.608">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set-java.lang.Object-int-int-">Dataset</a></code></span></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.613">set</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set-java.lang.Object-int...-">IDataset</a></code></span></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.622">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize-int...-">IDataset</a></code></span></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.646">sort</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sort-java.lang.Integer-">Dataset</a></code></span></div>
+<div class="block">In-place sort of dataset</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis</code> - to sort along. If null, then the flattened view is sorted</dd>
+<dt><span class="returnLabel">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.673">getUniqueItems</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getUniqueItems--">Dataset</a></code></span></div>
+<div class="block">Get unique items</div>
+<dl>
+<dt><span class="returnLabel">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.690">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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">AbstractDataset</a></code></span></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
+<dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="returnLabel">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.702">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">Dataset</a></code></span></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.714">setByBoolean</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></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="paramLabel">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="returnLabel">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.742">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.769">setByIndexes</a>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">Dataset</a></code></span></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.808">setSlice</a>(<a href="https://docs.oracle.com/javase/8/docs/api/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>The dataset with the sliced set to object</dd>
+</dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes-int:A-boolean:A-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.848">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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">Dataset</a></code></span></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl>
+<dt><span class="paramLabel">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:A-boolean:A-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.867">setItemsOnAxes</a>(int[]&nbsp;pos,
+                           boolean[]&nbsp;axes,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes-int:A-boolean:A-java.lang.Object-">Dataset</a></code></span></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.898">maxPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.914">minPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.930">containsNans</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.935">containsInfs</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.940">containsInvalidNumbers</a>()</pre>
+<dl>
+<dt><span class="returnLabel">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.945">iadd</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place addition with object o</div>
+<dl>
+<dt><span class="returnLabel">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.950">isubtract</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place subtraction with object o</div>
+<dl>
+<dt><span class="returnLabel">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.955">imultiply</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place multiplication with object o</div>
+<dl>
+<dt><span class="returnLabel">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.960">idivide</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place division with object o</div>
+<dl>
+<dt><span class="returnLabel">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.965">ifloor</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor--">Dataset</a></code></span></div>
+<div class="block">In-place floor</div>
+<dl>
+<dt><span class="returnLabel">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.970">iremainder</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place remainder</div>
+<dl>
+<dt><span class="returnLabel">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.975">ipower</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower-java.lang.Object-">Dataset</a></code></span></div>
+<div class="block">In-place raise to power of object o</div>
+<dl>
+<dt><span class="returnLabel">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.980">residual</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">Dataset</a></code></span></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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/UnaryOperation.Stub.html b/apidocs/2.3.0/org/eclipse/january/dataset/UnaryOperation.Stub.html
new file mode 100644
index 0000000..63ed291
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/UnaryOperation.Stub.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 (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>UnaryOperation.Stub (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UnaryOperation.Stub (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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:A-double-double-"><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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html#Stub--">Stub</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html#booleanOperate-long-">booleanOperate</a></span>(long&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html#complexOperate-double:A-double-double-">complexOperate</a></span>(double[]&nbsp;out,
+              double&nbsp;ra,
+              double&nbsp;ia)</code>
+<div class="block">Override this</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html#doubleOperate-double-">doubleOperate</a></span>(double&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html#longOperate-long-">longOperate</a></span>(long&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html#toString-java.lang.String-">toString</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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="Stub--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Stub</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/UnaryOperation.Stub.html#line.57">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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>op(a)</dd>
+</dl>
+</li>
+</ul>
+<a name="longOperate-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>longOperate</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/UnaryOperation.Stub.html#line.72">longOperate</a>(long&nbsp;a)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>op(a)</dd>
+</dl>
+</li>
+</ul>
+<a name="complexOperate-double:A-double-double-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>complexOperate</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/UnaryOperation.Stub.html#line.80">complexOperate</a>(double[]&nbsp;out,
+                           double&nbsp;ra,
+                           double&nbsp;ia)</pre>
+<div class="block">Override this</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html#complexOperate-double:A-double-double-">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="paramLabel">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/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/UnaryOperation.Stub.html#line.87">toString</a>(<a href="https://docs.oracle.com/javase/8/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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/UnaryOperation.html b/apidocs/2.3.0/org/eclipse/january/dataset/UnaryOperation.html
new file mode 100644
index 0000000..972e48d
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/UnaryOperation.html
@@ -0,0 +1,346 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>UnaryOperation (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UnaryOperation (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_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="simpleTagLabel">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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset">UnaryOperation.Stub</a></span></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:A-double-double-"><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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html#booleanOperate-long-">booleanOperate</a></span>(long&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html#complexOperate-double:A-double-double-">complexOperate</a></span>(double[]&nbsp;out,
+              double&nbsp;ra,
+              double&nbsp;ia)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html#doubleOperate-double-">doubleOperate</a></span>(double&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html#longOperate-long-">longOperate</a></span>(long&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html#toString-java.lang.String-">toString</a></span>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>op(a)a</dd>
+</dl>
+</li>
+</ul>
+<a name="complexOperate-double:A-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="paramLabel">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/8/docs/api/java/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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>a</code> - </dd>
+<dt><span class="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/AbstractCompoundDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/AbstractCompoundDataset.html
new file mode 100644
index 0000000..e565785
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/AbstractCompoundDataset.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 (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.AbstractCompoundDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></span></code>
+<div class="block">Class to hold colour datasets as red, green, blue tuples of short integers</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#clone--">clone</a></span>()</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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getView-boolean-">getView</a></span>(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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/AbstractDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/AbstractDataset.html
new file mode 100644
index 0000000..3bdbe81
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/AbstractDataset.html
@@ -0,0 +1,356 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.AbstractDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></span></code>
+<div class="block">Extend dataset for String values // PRIM_TYPE</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#base">base</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#clone--">clone</a></span>()</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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getView-boolean-">getView</a></span>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#copyToView-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.AbstractDataset-boolean-boolean-">copyToView</a></span>(<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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/AggregateDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/AggregateDataset.html
new file mode 100644
index 0000000..137acd0
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/AggregateDataset.html
@@ -0,0 +1,197 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.AggregateDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#base">base</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#clone--">clone</a></span>()</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="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSliceView-int:A-int:A-int:A-">getSliceView</a></span>(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="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">getSliceView</a></span>(<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="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">getSliceView</a></span>(<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="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getTransposedView-int...-">getTransposedView</a></span>(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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BinaryOperation.Stub.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BinaryOperation.Stub.html
new file mode 100644
index 0000000..e5e34e1
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BinaryOperation.Stub.html
@@ -0,0 +1,168 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        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)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset">Operations.Exponentiation</a></span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BinaryOperation.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BinaryOperation.html
new file mode 100644
index 0000000..afd8c7f
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BinaryOperation.html
@@ -0,0 +1,286 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.dataset.BinaryOperation (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></span></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:A-double-double-double-double-"><code>BinaryOperation.Stub.complexOperate(double[], double, double, double, double)</code></a>,
+  <a href="../../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#toString-java.lang.String-java.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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset">Operations.Addition</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Operations.Division</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset">Operations.DivisionTowardsFloor</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset">Operations.DivisionWithZero</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset">Operations.Exponentiation</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset">Operations.Maximum</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset">Operations.Minimum</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset">Operations.Multiplication</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset">Operations.Remainder</a></span></code>
+<div class="block">Remainder</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset">Operations.Subtraction</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></span></code>
+<div class="block">Use given value if <code>a &gt; b</code> else use a</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfEqualTo</a></span></code>
+<div class="block">Use given value if <code>a == b</code> else use a</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThan</a></span></code>
+<div class="block">Use given value if <code>a &gt; b</code> else use a</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThanOrEqualTo</a></span></code>
+<div class="block">Use given value if <code>a &gt;= b</code> else use a</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThan</a></span></code>
+<div class="block">Use given value if <code>a &lt; b</code> else use a</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThanOrEqualTo</a></span></code>
+<div class="block">Use given value if <code>a &lt;= b</code> else use a</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">Operations.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.html#operate-org.eclipse.january.dataset.BinaryOperation-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">operate</a></span>(<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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="https://docs.oracle.com/javase/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BooleanBroadcastIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BooleanBroadcastIterator.html
new file mode 100644
index 0000000..a7a9c05
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BooleanBroadcastIterator.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.BooleanBroadcastIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.BooleanBroadcastIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BooleanBroadcastIterator.html" target="_top">Frames</a></li>
+<li><a href="BooleanBroadcastIterator.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.BooleanBroadcastIterator" class="title">Uses of Class<br>org.eclipse.january.dataset.BooleanBroadcastIterator</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.BooleanBroadcastIterator</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BooleanBroadcastIterator.html" target="_top">Frames</a></li>
+<li><a href="BooleanBroadcastIterator.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BooleanContiguousIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BooleanContiguousIterator.html
new file mode 100644
index 0000000..0276b49
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BooleanContiguousIterator.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.BooleanContiguousIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.BooleanContiguousIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BooleanContiguousIterator.html" target="_top">Frames</a></li>
+<li><a href="BooleanContiguousIterator.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.BooleanContiguousIterator" class="title">Uses of Class<br>org.eclipse.january.dataset.BooleanContiguousIterator</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.BooleanContiguousIterator</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BooleanContiguousIterator.html" target="_top">Frames</a></li>
+<li><a href="BooleanContiguousIterator.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BooleanDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BooleanDataset.html
new file mode 100644
index 0000000..d6f6d50
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BooleanDataset.html
@@ -0,0 +1,604 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.BooleanDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#all-int-">all</a></span>(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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#allTrue-org.eclipse.january.dataset.IDataset-int-">allTrue</a></span>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+       int&nbsp;axis)</code>
+<div class="block">Test if all items along given axis are true in the input dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#almostEqualTo-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-double-double-">almostEqualTo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+             <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#almostEqualTo-java.lang.Object-java.lang.Object-double-double-">almostEqualTo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+             <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#any-int-">any</a></span>(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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#anyTrue-org.eclipse.january.dataset.IDataset-int-">anyTrue</a></span>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+       int&nbsp;axis)</code>
+<div class="block">Test if any items along given axis are true in the input dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BooleanDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html#clone--">clone</a></span>()</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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#equalTo-java.lang.Object-java.lang.Object-">equalTo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#equalTo-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">equalTo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">BooleanDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">BooleanDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html#getView-boolean-">getView</a></span>(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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#greaterThan-java.lang.Object-java.lang.Object-">greaterThan</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+           <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#greaterThan-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">greaterThan</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+           <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#greaterThanOrEqualTo-java.lang.Object-java.lang.Object-">greaterThanOrEqualTo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                    <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#greaterThanOrEqualTo-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">greaterThanOrEqualTo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                    <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">BooleanDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">BooleanDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">BooleanDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">BooleanDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">BooleanDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isFinite-java.lang.Object-">isFinite</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isFinite-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">isFinite</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isInfinite-java.lang.Object-">isInfinite</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isInfinite-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">isInfinite</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isNaN-java.lang.Object-">isNaN</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isNaN-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">isNaN</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isNegativeInfinite-java.lang.Object-">isNegativeInfinite</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isNegativeInfinite-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">isNegativeInfinite</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isPositiveInfinite-java.lang.Object-">isPositiveInfinite</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isPositiveInfinite-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">isPositiveInfinite</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">BooleanDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#lessThan-java.lang.Object-java.lang.Object-">lessThan</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+        <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#lessThan-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">lessThan</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+        <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#lessThanOrEqualTo-java.lang.Object-java.lang.Object-">lessThanOrEqualTo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                 <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#lessThanOrEqualTo-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">lessThanOrEqualTo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                 <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#logicalAnd-java.lang.Object-java.lang.Object-">logicalAnd</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#logicalAnd-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">logicalAnd</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#logicalNot-java.lang.Object-">logicalNot</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#logicalNot-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">logicalNot</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#logicalOr-java.lang.Object-java.lang.Object-">logicalOr</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+         <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#logicalOr-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">logicalOr</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+         <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#logicalXor-java.lang.Object-java.lang.Object-">logicalXor</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#logicalXor-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">logicalXor</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#withinRange-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-java.lang.Number-java.lang.Number-">withinRange</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#withinRange-java.lang.Object-java.lang.Number-java.lang.Number-">withinRange</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+           <a href="https://docs.oracle.com/javase/8/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/8/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 class="useSummary" 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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#almostEqualTo-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-double-double-">almostEqualTo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+             <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#equalTo-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">equalTo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#greaterThan-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">greaterThan</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+           <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#greaterThanOrEqualTo-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">greaterThanOrEqualTo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                    <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isFinite-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">isFinite</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isInfinite-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">isInfinite</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isNaN-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">isNaN</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isNegativeInfinite-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">isNegativeInfinite</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isPositiveInfinite-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">isPositiveInfinite</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#lessThan-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">lessThan</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+        <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#lessThanOrEqualTo-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">lessThanOrEqualTo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                 <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#logicalAnd-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">logicalAnd</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#logicalNot-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">logicalNot</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#logicalOr-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">logicalOr</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+         <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#logicalXor-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-">logicalXor</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#select-org.eclipse.january.dataset.BooleanDataset:A-java.lang.Object:A-java.lang.Object-">select</a></span>(<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/8/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/8/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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#select-org.eclipse.january.dataset.BooleanDataset-java.lang.Object-java.lang.Object-">select</a></span>(<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/8/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/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#withinRange-java.lang.Object-org.eclipse.january.dataset.BooleanDataset-java.lang.Number-java.lang.Number-">withinRange</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BooleanDatasetBase.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BooleanDatasetBase.html
new file mode 100644
index 0000000..64c10f6
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BooleanDatasetBase.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 (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.BooleanDatasetBase (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></span></code>
+<div class="block">Extend boolean base dataset for boolean values</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">BooleanDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#clone--">clone</a></span>()</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="typeNameLabel">BooleanDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">BooleanDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">BooleanDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getUniqueItems--">getUniqueItems</a></span>()</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="typeNameLabel">BooleanDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getView-boolean-">getView</a></span>(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="typeNameLabel">BooleanDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">BooleanDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">BooleanDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#ifloor--">ifloor</a></span>()</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="typeNameLabel">BooleanDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">BooleanDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">BooleanDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">BooleanDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">BooleanDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">BooleanDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">BooleanDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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="typeNameLabel">BooleanDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">BooleanDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#sort-java.lang.Integer-">sort</a></span>(<a href="https://docs.oracle.com/javase/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BooleanIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BooleanIterator.html
new file mode 100644
index 0000000..caaf25b
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BooleanIterator.html
@@ -0,0 +1,251 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.BooleanIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset">BooleanBroadcastIterator</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset">BooleanContiguousIterator</a></span></code>
+<div class="block">Class to run over a pair of contiguous datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset">BooleanNullIterator</a></span></code>
+<div class="block">Class to run over a single dataset with NumPy broadcasting to promote shapes
+ which have lower rank and outputs to a second dataset</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BooleanIterator.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator-boolean-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator</a></span>(boolean&nbsp;v,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset where its value matches
+ the given boolean</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BooleanIterator.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator-boolean-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">createIterator</a></span>(boolean&nbsp;v,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+              boolean&nbsp;createIfNull)</code>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset where its value matches
+ the given boolean</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BooleanIterator.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c)</code>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset with a true value</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BooleanIterator.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset with a true value</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator-org.eclipse.january.dataset.Dataset-">getBooleanIterator</a></span>(<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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator-org.eclipse.january.dataset.Dataset-">getBooleanIterator</a></span>(<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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator-org.eclipse.january.dataset.Dataset-boolean-">getBooleanIterator</a></span>(<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/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator-org.eclipse.january.dataset.Dataset-boolean-">getBooleanIterator</a></span>(<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>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BooleanNullIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BooleanNullIterator.html
new file mode 100644
index 0000000..46c90d4
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BooleanNullIterator.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.BooleanNullIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.BooleanNullIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BooleanNullIterator.html" target="_top">Frames</a></li>
+<li><a href="BooleanNullIterator.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.BooleanNullIterator" class="title">Uses of Class<br>org.eclipse.january.dataset.BooleanNullIterator</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.BooleanNullIterator</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BooleanNullIterator.html" target="_top">Frames</a></li>
+<li><a href="BooleanNullIterator.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BroadcastIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BroadcastIterator.html
new file mode 100644
index 0000000..1033c57
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BroadcastIterator.html
@@ -0,0 +1,202 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.BroadcastIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastPairIterator.html" title="class in org.eclipse.january.dataset">BroadcastPairIterator</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ContiguousPairIterator.html" title="class in org.eclipse.january.dataset">ContiguousPairIterator</a></span></code>
+<div class="block">Class to run over a pair of contiguous datasets</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">BroadcastIterator.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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="typeNameLabel">BroadcastIterator.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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="typeNameLabel">BroadcastIterator.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">createIterator</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BroadcastIteratorBase.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BroadcastIteratorBase.html
new file mode 100644
index 0000000..59365e5
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BroadcastIteratorBase.html
@@ -0,0 +1,200 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.BroadcastIteratorBase (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastPairIterator.html" title="class in org.eclipse.january.dataset">BroadcastPairIterator</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset">BroadcastSelfIterator</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset">BroadcastSingleIterator</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ContiguousPairIterator.html" title="class in org.eclipse.january.dataset">ContiguousPairIterator</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ContiguousSingleIterator.html" title="class in org.eclipse.january.dataset">ContiguousSingleIterator</a></span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BroadcastPairIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BroadcastPairIterator.html
new file mode 100644
index 0000000..3a91f0e
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BroadcastPairIterator.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.BroadcastPairIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BroadcastSelfIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BroadcastSelfIterator.html
new file mode 100644
index 0000000..5efcaf0
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BroadcastSelfIterator.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 (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.BroadcastSelfIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset">BroadcastSingleIterator</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ContiguousSingleIterator.html" title="class in org.eclipse.january.dataset">ContiguousSingleIterator</a></span></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 class="useSummary" 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="typeNameLabel">BroadcastSelfIterator.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BroadcastSingleIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BroadcastSingleIterator.html
new file mode 100644
index 0000000..6a71c96
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BroadcastSingleIterator.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.BroadcastSingleIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BroadcastUtils.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BroadcastUtils.html
new file mode 100644
index 0000000..ae56fa8
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/BroadcastUtils.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.BroadcastUtils (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ByteDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ByteDataset.html
new file mode 100644
index 0000000..99b92f3
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ByteDataset.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 (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.ByteDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#asNonCompoundDataset-boolean-">asNonCompoundDataset</a></span>(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="typeNameLabel">ByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#clone--">clone</a></span>()</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="typeNameLabel">ByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getElements-int-">getElements</a></span>(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="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getElementsView-int-">getElementsView</a></span>(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="typeNameLabel">ByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">ByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#getUniqueItems--">getUniqueItems</a></span>()</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="typeNameLabel">ByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#getView-boolean-">getView</a></span>(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="typeNameLabel">ByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#ifloor--">ifloor</a></span>()</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="typeNameLabel">ByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">ByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">ByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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="typeNameLabel">ByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">ByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#sort-java.lang.Integer-">sort</a></span>(<a href="https://docs.oracle.com/javase/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/CollectionStats.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/CollectionStats.html
new file mode 100644
index 0000000..61a69c9
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/CollectionStats.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.CollectionStats (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Comparisons.Monotonicity.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Comparisons.Monotonicity.html
new file mode 100644
index 0000000..eeee66a
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Comparisons.Monotonicity.html
@@ -0,0 +1,195 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        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)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#findMonotonicity-java.lang.Object-">findMonotonicity</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.Monotonicity.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.Monotonicity.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html#values--">values</a></span>()</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 class="useSummary" 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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isMonotonic-java.lang.Object-org.eclipse.january.dataset.Comparisons.Monotonicity-">isMonotonic</a></span>(<a href="https://docs.oracle.com/javase/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Comparisons.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Comparisons.html
new file mode 100644
index 0000000..8748982
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Comparisons.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.Comparisons (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ComplexDoubleDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ComplexDoubleDataset.html
new file mode 100644
index 0000000..7e86f8c
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ComplexDoubleDataset.html
@@ -0,0 +1,207 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.ComplexDoubleDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">ComplexDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#clone--">clone</a></span>()</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="typeNameLabel">ComplexDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ComplexDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">ComplexDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getView-boolean-">getView</a></span>(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="typeNameLabel">ComplexDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ComplexDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ComplexDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ComplexDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ComplexDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ComplexDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ComplexDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ComplexFloatDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ComplexFloatDataset.html
new file mode 100644
index 0000000..2913b1a
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ComplexFloatDataset.html
@@ -0,0 +1,207 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.ComplexFloatDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">ComplexFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#clone--">clone</a></span>()</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="typeNameLabel">ComplexFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ComplexFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">ComplexFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getView-boolean-">getView</a></span>(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="typeNameLabel">ComplexFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ComplexFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ComplexFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ComplexFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ComplexFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ComplexFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ComplexFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/CompoundByteDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/CompoundByteDataset.html
new file mode 100644
index 0000000..9df6626
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/CompoundByteDataset.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 (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.CompoundByteDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#clone--">clone</a></span>()</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="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#createCompoundDatasetWithLastDimension-org.eclipse.january.dataset.Dataset-boolean-">createCompoundDatasetWithLastDimension</a></span>(<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="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#createFromObject-int-java.lang.Object-">createFromObject</a></span>(int&nbsp;itemSize,
+                <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getView-boolean-">getView</a></span>(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="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#ifloor--">ifloor</a></span>()</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="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/CompoundDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/CompoundDataset.html
new file mode 100644
index 0000000..b8517f6
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/CompoundDataset.html
@@ -0,0 +1,911 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.dataset.CompoundDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></span></code>
+<div class="block">Class to hold colour datasets as red, green, blue tuples of short integers</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#compoundCast-java.lang.Class-org.eclipse.january.dataset.Dataset...-">compoundCast</a></span>(<a href="https://docs.oracle.com/javase/8/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;a)</code>
+<div class="block">Cast array of datasets to a compound dataset</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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#compoundZeros-int-java.lang.Class-int...-">compoundZeros</a></span>(int&nbsp;itemSize,
+             <a href="https://docs.oracle.com/javase/8/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/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&gt;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset-java.lang.Class-org.eclipse.january.dataset.Dataset...-">createCompoundDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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 &lt;T extends <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&gt;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-int-java.lang.Class-double-">createRange</a></span>(int&nbsp;itemSize,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+           double&nbsp;stop)</code>
+<div class="block">Create compound dataset with items ranging from 0 up to given stop in steps of 1</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&gt;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-int-java.lang.Class-double-double-double-">createRange</a></span>(int&nbsp;itemSize,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+           double&nbsp;start,
+           double&nbsp;stop,
+           double&nbsp;step)</code>
+<div class="block">Create compound dataset with items ranging from given start up to given stop in given steps</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast-boolean-int-int-">cast</a></span>(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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#cast-boolean-int-int-">cast</a></span>(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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-java.lang.Class-org.eclipse.january.dataset.Dataset...-">cast</a></span>(<a href="https://docs.oracle.com/javase/8/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,
+    <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;a)</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/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-org.eclipse.january.dataset.Dataset:A-int-">cast</a></span>(<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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-java.lang.Class-org.eclipse.january.dataset.Dataset...-"><code>DatasetUtils.cast(Class, Dataset...)</code></a></span></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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast-int-">cast</a></span>(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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#cast-int-">cast</a></span>(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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#clone--">clone</a></span>()</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="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#compoundZeros-int-int:A-int-">compoundZeros</a></span>(int&nbsp;itemSize,
+             int[]&nbsp;shape,
+             int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#compoundZeros-int-java.lang.Class-int...-"><code>DatasetFactory.compoundZeros(int, Class, int...)</code></a></span></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="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createComplexDataset-int-java.lang.Object-java.lang.Object-">createComplexDataset</a></span>(int&nbsp;dtype,
+                    <a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;imag)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createComplexDataset-java.lang.Class-java.lang.Object-java.lang.Object-"><code>DatasetFactory.createComplexDataset(Class, Object, Object)</code></a></span></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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset-org.eclipse.january.dataset.Dataset...-">createCompoundDataset</a></span>(<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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset-org.eclipse.january.dataset.Dataset-int-">createCompoundDataset</a></span>(<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"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset-int-org.eclipse.january.dataset.Dataset...-">createCompoundDataset</a></span>(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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset-java.lang.Class-org.eclipse.january.dataset.Dataset...-"><code>DatasetUtils.createCompoundDataset(Class, Dataset...)</code></a></span></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="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createCompoundDataset-int-java.lang.Object...-">createCompoundDataset</a></span>(int&nbsp;dtype,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;objects)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createCompoundDataset-java.lang.Class-java.lang.Object...-"><code>DatasetFactory.createCompoundDataset(Class, Object...)</code></a></span></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="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createCompoundDataset-java.lang.Object...-">createCompoundDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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="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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDatasetFromLastAxis-org.eclipse.january.dataset.Dataset-boolean-">createCompoundDatasetFromLastAxis</a></span>(<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/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-int-double-double-double-int-">createRange</a></span>(int&nbsp;itemSize,
+           double&nbsp;start,
+           double&nbsp;stop,
+           double&nbsp;step,
+           int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-java.lang.Class-double-double-double-"><code>DatasetFactory.createRange(Class, double, double, double)</code></a></span></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="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-int-double-int-">createRange</a></span>(int&nbsp;itemSize,
+           double&nbsp;stop,
+           int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-java.lang.Class-double-double-double-"><code>DatasetFactory.createRange(Class, double, double, double)</code></a></span></div>
+</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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#flatten--">flatten</a></span>()</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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#flatten--">flatten</a></span>()</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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBroadcastView-int...-">getBroadcastView</a></span>(int...&nbsp;broadcastShape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getBroadcastView-int...-">getBroadcastView</a></span>(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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBy1DIndex-org.eclipse.january.dataset.IntegerDataset-">getBy1DIndex</a></span>(<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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getBy1DIndex-org.eclipse.january.dataset.IntegerDataset-">getBy1DIndex</a></span>(<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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByBoolean-org.eclipse.january.dataset.Dataset-">getByBoolean</a></span>(<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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getByBoolean-org.eclipse.january.dataset.Dataset-">getByBoolean</a></span>(<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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByIndexes-java.lang.Object...-">getByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getByIndexes-java.lang.Object...-">getByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrors--">getErrors</a></span>()</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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getErrors--">getErrors</a></span>()</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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a></span>(<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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a></span>(<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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-int:A-int:A-int:A-">getSlice</a></span>(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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice-int:A-int:A-int:A-">getSlice</a></span>(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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView-int:A-int:A-int:A-">getSliceView</a></span>(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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSliceView-int:A-int:A-int:A-">getSliceView</a></span>(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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">getSliceView</a></span>(<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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">getSliceView</a></span>(<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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">getSliceView</a></span>(<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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">getSliceView</a></span>(<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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getTransposedView-int...-">getTransposedView</a></span>(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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getTransposedView-int...-">getTransposedView</a></span>(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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getView-boolean-">getView</a></span>(boolean&nbsp;deepCopyMetadata)</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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#ifloor--">ifloor</a></span>()</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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#ifloorDivide-java.lang.Object-">ifloorDivide</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#ifloorDivide-java.lang.Object-">ifloorDivide</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#max-int-boolean...-">max</a></span>(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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#max-int-boolean...-">max</a></span>(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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#mean-int-boolean...-">mean</a></span>(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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#mean-int-boolean...-">mean</a></span>(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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min-int-boolean...-">min</a></span>(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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#min-int-boolean...-">min</a></span>(int&nbsp;axis,
+   boolean...&nbsp;ignoreInvalids)</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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#norm-org.eclipse.january.dataset.CompoundDataset-boolean-">norm</a></span>(<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><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#peakToPeak-int-boolean...-">peakToPeak</a></span>(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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#peakToPeak-int-boolean...-">peakToPeak</a></span>(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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#product-int-boolean...-">product</a></span>(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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#product-int-boolean...-">product</a></span>(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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#reshape-int...-">reshape</a></span>(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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#reshape-int...-">reshape</a></span>(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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#rootMeanSquare-int-boolean...-">rootMeanSquare</a></span>(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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#rootMeanSquare-int-boolean...-">rootMeanSquare</a></span>(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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sort-java.lang.Integer-">sort</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#sort-java.lang.Integer-">sort</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeeze--">squeeze</a></span>()</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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#squeeze--">squeeze</a></span>()</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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeeze-boolean-">squeeze</a></span>(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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#squeeze-boolean-">squeeze</a></span>(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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeezeEnds--">squeezeEnds</a></span>()</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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#squeezeEnds--">squeezeEnds</a></span>()</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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#stdDeviation-int-">stdDeviation</a></span>(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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#stdDeviation-int-">stdDeviation</a></span>(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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#stdDeviation-int-boolean-boolean...-">stdDeviation</a></span>(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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#stdDeviation-int-boolean-boolean...-">stdDeviation</a></span>(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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum-int-boolean...-">sum</a></span>(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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#sum-int-boolean...-">sum</a></span>(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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#swapAxes-int-int-">swapAxes</a></span>(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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#swapAxes-int-int-">swapAxes</a></span>(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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#synchronizedCopy--">synchronizedCopy</a></span>()</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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#synchronizedCopy--">synchronizedCopy</a></span>()</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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#transpose-int...-">transpose</a></span>(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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#transpose-int...-">transpose</a></span>(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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance-int-">variance</a></span>(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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#variance-int-">variance</a></span>(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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance-int-boolean-boolean...-">variance</a></span>(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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#variance-int-boolean-boolean...-">variance</a></span>(int&nbsp;axis,
+        boolean&nbsp;isWholePopulation,
+        boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#createDatasetFromCompoundDataset-org.eclipse.january.dataset.CompoundDataset-boolean-">createDatasetFromCompoundDataset</a></span>(<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="typeNameLabel">RGBDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createFromCompoundDataset-org.eclipse.january.dataset.CompoundDataset-">createFromCompoundDataset</a></span>(<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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#getBilinear-double:A-org.eclipse.january.dataset.CompoundDataset-double-double-">getBilinear</a></span>(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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use
+             <a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate-double:A-org.eclipse.january.dataset.CompoundDataset-double-double-"><code>Maths.interpolate(double[], CompoundDataset, double, double)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#getLinear-double:A-org.eclipse.january.dataset.CompoundDataset-double-">getLinear</a></span>(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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate-double:A-org.eclipse.january.dataset.CompoundDataset-double-"><code>Maths.interpolate(double[], CompoundDataset, double)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate-double:A-org.eclipse.january.dataset.CompoundDataset-double...-">interpolate</a></span>(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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate-double:A-org.eclipse.january.dataset.CompoundDataset-double-">interpolate</a></span>(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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate-double:A-org.eclipse.january.dataset.CompoundDataset-double-double-">interpolate</a></span>(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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#norm-org.eclipse.january.dataset.CompoundDataset-boolean-">norm</a></span>(<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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/CompoundDoubleDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/CompoundDoubleDataset.html
new file mode 100644
index 0000000..de2ce3d
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/CompoundDoubleDataset.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 (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.CompoundDoubleDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></span></code>
+<div class="block">Extend compound dataset to hold complex double values // PRIM_TYPE</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#clone--">clone</a></span>()</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="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#createCompoundDatasetWithLastDimension-org.eclipse.january.dataset.Dataset-boolean-">createCompoundDatasetWithLastDimension</a></span>(<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="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#createFromObject-int-java.lang.Object-">createFromObject</a></span>(int&nbsp;itemSize,
+                <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getView-boolean-">getView</a></span>(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="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#ifloor--">ifloor</a></span>()</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="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/CompoundFloatDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/CompoundFloatDataset.html
new file mode 100644
index 0000000..53506e6
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/CompoundFloatDataset.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 (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.CompoundFloatDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></span></code>
+<div class="block">Extend compound dataset to hold complex float values // PRIM_TYPE</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#clone--">clone</a></span>()</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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#createCompoundDatasetWithLastDimension-org.eclipse.january.dataset.Dataset-boolean-">createCompoundDatasetWithLastDimension</a></span>(<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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#createFromObject-int-java.lang.Object-">createFromObject</a></span>(int&nbsp;itemSize,
+                <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getView-boolean-">getView</a></span>(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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#ifloor--">ifloor</a></span>()</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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/CompoundIntegerDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/CompoundIntegerDataset.html
new file mode 100644
index 0000000..7d2ae20
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/CompoundIntegerDataset.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 (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.CompoundIntegerDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#clone--">clone</a></span>()</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="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#createCompoundDatasetWithLastDimension-org.eclipse.january.dataset.Dataset-boolean-">createCompoundDatasetWithLastDimension</a></span>(<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="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#createFromObject-int-java.lang.Object-">createFromObject</a></span>(int&nbsp;itemSize,
+                <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getView-boolean-">getView</a></span>(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="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#ifloor--">ifloor</a></span>()</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="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/CompoundLongDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/CompoundLongDataset.html
new file mode 100644
index 0000000..d1490d2
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/CompoundLongDataset.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 (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.CompoundLongDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#clone--">clone</a></span>()</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="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#createCompoundDatasetWithLastDimension-org.eclipse.january.dataset.Dataset-boolean-">createCompoundDatasetWithLastDimension</a></span>(<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="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#createFromObject-int-java.lang.Object-">createFromObject</a></span>(int&nbsp;itemSize,
+                <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getView-boolean-">getView</a></span>(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="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#ifloor--">ifloor</a></span>()</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="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/CompoundShortDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/CompoundShortDataset.html
new file mode 100644
index 0000000..3c5b215
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/CompoundShortDataset.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 (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.CompoundShortDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></span></code>
+<div class="block">Class to hold colour datasets as red, green, blue tuples of short integers</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#clone--">clone</a></span>()</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="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#createCompoundDatasetWithLastDimension-org.eclipse.january.dataset.Dataset-boolean-">createCompoundDatasetWithLastDimension</a></span>(<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="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#createFromObject-int-java.lang.Object-">createFromObject</a></span>(int&nbsp;itemSize,
+                <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getView-boolean-">getView</a></span>(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="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#ifloor--">ifloor</a></span>()</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="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ContiguousIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ContiguousIterator.html
new file mode 100644
index 0000000..d04f42b
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ContiguousIterator.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.ContiguousIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ContiguousIteratorWithPosition.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ContiguousIteratorWithPosition.html
new file mode 100644
index 0000000..1e99f69
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ContiguousIteratorWithPosition.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.ContiguousIteratorWithPosition (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ContiguousPairIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ContiguousPairIterator.html
new file mode 100644
index 0000000..68a1f36
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ContiguousPairIterator.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.ContiguousPairIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ContiguousSingleIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ContiguousSingleIterator.html
new file mode 100644
index 0000000..607e817
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ContiguousSingleIterator.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.ContiguousSingleIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/DTypeUtils.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/DTypeUtils.html
new file mode 100644
index 0000000..846a355
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/DTypeUtils.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.DTypeUtils (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/DataEvent.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/DataEvent.html
new file mode 100644
index 0000000..9546f3c
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/DataEvent.html
@@ -0,0 +1,187 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.DataEvent (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">DataEvent.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DataEvent.html#decode-java.lang.String-">decode</a></span>(<a href="https://docs.oracle.com/javase/8/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 class="useSummary" 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="typeNameLabel">IDataListener.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDataListener.html#dataChangePerformed-org.eclipse.january.dataset.DataEvent-">dataChangePerformed</a></span>(<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="typeNameLabel">DataListenerDelegate.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DataListenerDelegate.html#fire-org.eclipse.january.dataset.DataEvent-">fire</a></span>(<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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/DataListenerDelegate.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/DataListenerDelegate.html
new file mode 100644
index 0000000..9b401ab
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/DataListenerDelegate.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 (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.DataListenerDelegate (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">LazyDynamicDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#eventDelegate">eventDelegate</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Dataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Dataset.html
new file mode 100644
index 0000000..fbae588
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Dataset.html
@@ -0,0 +1,5903 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.dataset.Dataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a></span></code>
+<div class="block">Interface for a dataset containing <a href="https://docs.oracle.com/javase/8/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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></span></code>
+<div class="block">Generic container class for data</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></span></code>
+<div class="block">Extend dataset for String values // PRIM_TYPE</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">BooleanIterator.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#aDataset">aDataset</a></span></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="typeNameLabel">BroadcastIteratorBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#aDataset">aDataset</a></span></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="typeNameLabel">BroadcastIteratorBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bDataset">bDataset</a></span></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="typeNameLabel">BooleanIterator.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#cDataset">cDataset</a></span></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="typeNameLabel">BooleanIterator.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#oDataset">oDataset</a></span></code>
+<div class="block">Output dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BroadcastIterator.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html#oDataset">oDataset</a></span></code>
+<div class="block">Output dataset</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#cast-java.lang.Class-">cast</a></span>(<a href="https://docs.oracle.com/javase/8/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;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#cast-java.lang.Class-">cast</a></span>(<a href="https://docs.oracle.com/javase/8/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>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-java.lang.Class-org.eclipse.january.dataset.IDataset-">cast</a></span>(<a href="https://docs.oracle.com/javase/8/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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#cast-int-java.lang.Class-boolean-">cast</a></span>(int&nbsp;isize,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+    boolean&nbsp;repeat)</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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#cast-int-java.lang.Class-boolean-">cast</a></span>(int&nbsp;isize,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+    boolean&nbsp;repeat)</code>
+<div class="block">Cast 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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-int-java.lang.Class-org.eclipse.january.dataset.IDataset-boolean-">cast</a></span>(int&nbsp;isize,
+    <a href="https://docs.oracle.com/javase/8/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,
+    boolean&nbsp;repeat)</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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#copy-java.lang.Class-">copy</a></span>(<a href="https://docs.oracle.com/javase/8/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;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#copy-java.lang.Class-">copy</a></span>(<a href="https://docs.oracle.com/javase/8/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>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#copy-java.lang.Class-org.eclipse.january.dataset.IDataset-">copy</a></span>(<a href="https://docs.oracle.com/javase/8/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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">RGBDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createBlueDataset-T-">createBlueDataset</a></span>(T&nbsp;clazz)</code>
+<div class="block">Extract blue colour channel</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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createComplexDataset-java.lang.Class-java.lang.Object-java.lang.Object-">createComplexDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createCompoundDataset-java.lang.Class-java.lang.Object...-">createCompoundDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromList-java.lang.Class-java.util.List-">createFromList</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject-java.lang.Class-java.lang.Object-">createFromObject</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Create a dataset from object</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject-java.lang.Class-java.lang.Object-int...-">createFromObject</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                int...&nbsp;shape)</code>
+<div class="block">Create a dataset from object</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject-int-java.lang.Class-java.lang.Object-int...-">createFromObject</a></span>(int&nbsp;itemSize,
+                <a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                int...&nbsp;shape)</code>
+<div class="block">Create a compound dataset from object</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">RGBDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createGreenDataset-T-">createGreenDataset</a></span>(T&nbsp;clazz)</code>
+<div class="block">Extract green colour channel</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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">RGBDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createGreyDataset-java.lang.Class-">createGreyDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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">Convert colour dataset to a grey-scale one using the NTSC formula, aka ITU-R BT.601, for RGB to luma mapping</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">RGBDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createGreyDataset-java.lang.Class-double-double-double-">createGreyDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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;red,
+                 double&nbsp;green,
+                 double&nbsp;blue)</code>
+<div class="block">Convert colour dataset to a grey-scale one using given RGB to luma mapping</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createLinearSpace-java.lang.Class-double-double-int-">createLinearSpace</a></span>(<a href="https://docs.oracle.com/javase/8/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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createLogSpace-java.lang.Class-double-double-int-double-">createLogSpace</a></span>(<a href="https://docs.oracle.com/javase/8/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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-java.lang.Class-double-">createRange</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+           double&nbsp;stop)</code>
+<div class="block">Create dataset with items ranging from 0 up to given stop in steps of 1</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-java.lang.Class-double-double-double-">createRange</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+           double&nbsp;start,
+           double&nbsp;stop,
+           double&nbsp;step)</code>
+<div class="block">Create dataset with items ranging from given start up to given stop in given steps</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">RGBDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createRedDataset-T-">createRedDataset</a></span>(T&nbsp;clazz)</code>
+<div class="block">Extract red colour channel</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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#diag-T-int-">diag</a></span>(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 &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#eye-java.lang.Class-int-int-int-">eye</a></span>(<a href="https://docs.oracle.com/javase/8/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;rows,
+   int&nbsp;cols,
+   int&nbsp;offset)</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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#flipLeftRight-T-">flipLeftRight</a></span>(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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#flipUpDown-T-">flipUpDown</a></span>(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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#ones-java.lang.Class-int...-">ones</a></span>(<a href="https://docs.oracle.com/javase/8/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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#ones-org.eclipse.january.dataset.Dataset-java.lang.Class-">ones</a></span>(<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/8/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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#ones-int-java.lang.Class-int...-">ones</a></span>(int&nbsp;itemSize,
+    <a href="https://docs.oracle.com/javase/8/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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#ones-T-">ones</a></span>(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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#put-T-org.eclipse.january.dataset.Dataset-java.lang.Object-">put</a></span>(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/8/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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#put-T-int:A-java.lang.Object-">put</a></span>(T&nbsp;a,
+   int[]&nbsp;indices,
+   <a href="https://docs.oracle.com/javase/8/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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#repeat-T-int:A-int-">repeat</a></span>(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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#resize-T-int...-">resize</a></span>(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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#roll-T-int-java.lang.Integer-">roll</a></span>(T&nbsp;a,
+    int&nbsp;shift,
+    <a href="https://docs.oracle.com/javase/8/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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#rollAxis-T-int-int-">rollAxis</a></span>(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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#rotate90-T-">rotate90</a></span>(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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#rotate90-T-int-">rotate90</a></span>(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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#sort-T-">sort</a></span>(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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#sort-T-java.lang.Integer-">sort</a></span>(T&nbsp;a,
+    <a href="https://docs.oracle.com/javase/8/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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#take-T-org.eclipse.january.dataset.Dataset-java.lang.Integer-">take</a></span>(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/8/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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#take-T-int:A-java.lang.Integer-">take</a></span>(T&nbsp;a,
+    int[]&nbsp;indices,
+    <a href="https://docs.oracle.com/javase/8/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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-int:A-boolean...-">typedProduct</a></span>(<a href="https://docs.oracle.com/javase/8/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;a,
+            int[]&nbsp;axes,
+            boolean...&nbsp;ignoreInvalids)</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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-int-boolean...-">typedProduct</a></span>(<a href="https://docs.oracle.com/javase/8/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;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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#typedSum-java.lang.Class-org.eclipse.january.dataset.Dataset-int:A-boolean...-">typedSum</a></span>(<a href="https://docs.oracle.com/javase/8/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;a,
+        int[]&nbsp;axes,
+        boolean...&nbsp;ignoreInvalids)</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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#typedSum-java.lang.Class-org.eclipse.january.dataset.Dataset-int-boolean...-">typedSum</a></span>(<a href="https://docs.oracle.com/javase/8/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;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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros-java.lang.Class-int...-">zeros</a></span>(<a href="https://docs.oracle.com/javase/8/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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros-org.eclipse.january.dataset.Dataset-java.lang.Class-">zeros</a></span>(<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/8/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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros-int-java.lang.Class-int...-">zeros</a></span>(int&nbsp;itemSize,
+     <a href="https://docs.oracle.com/javase/8/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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros-T-">zeros</a></span>(T&nbsp;dataset)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#abs-java.lang.Object-">abs</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#abs-java.lang.Object-org.eclipse.january.dataset.Dataset-">abs</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#add-java.util.Collection-boolean-">add</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#add-java.lang.Object-java.lang.Object-">add</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+   <a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#add-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">add</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+   <a href="https://docs.oracle.com/javase/8/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><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#all-int-">all</a></span>(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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#angle-java.lang.Object-">angle</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#angle-java.lang.Object-boolean-">angle</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#angle-java.lang.Object-boolean-org.eclipse.january.dataset.Dataset-">angle</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#angle-java.lang.Object-org.eclipse.january.dataset.Dataset-">angle</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#any-int-">any</a></span>(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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#append-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.IDataset-int-">append</a></span>(<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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#arccos-java.lang.Object-">arccos</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#arccos-java.lang.Object-org.eclipse.january.dataset.Dataset-">arccos</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#arccosh-java.lang.Object-">arccosh</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#arccosh-java.lang.Object-org.eclipse.january.dataset.Dataset-">arccosh</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#arcsin-java.lang.Object-">arcsin</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#arcsin-java.lang.Object-org.eclipse.january.dataset.Dataset-">arcsin</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#arcsinh-java.lang.Object-">arcsinh</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#arcsinh-java.lang.Object-org.eclipse.january.dataset.Dataset-">arcsinh</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#arctan-java.lang.Object-">arctan</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#arctan-java.lang.Object-org.eclipse.january.dataset.Dataset-">arctan</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#arctan2-java.lang.Object-java.lang.Object-">arctan2</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#arctan2-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">arctan2</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#arctanh-java.lang.Object-">arctanh</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#arctanh-java.lang.Object-org.eclipse.january.dataset.Dataset-">arctanh</a></span>(<a href="https://docs.oracle.com/javase/8/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><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#argMax-int-boolean...-">argMax</a></span>(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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#argMin-int-boolean...-">argMin</a></span>(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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#asNonCompoundDataset-boolean-">asNonCompoundDataset</a></span>(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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#bitwiseAnd-java.lang.Object-java.lang.Object-">bitwiseAnd</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#bitwiseAnd-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">bitwiseAnd</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#bitwiseInvert-java.lang.Object-">bitwiseInvert</a></span>(<a href="https://docs.oracle.com/javase/8/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 - <code>~a</code>, 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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#bitwiseInvert-java.lang.Object-org.eclipse.january.dataset.Dataset-">bitwiseInvert</a></span>(<a href="https://docs.oracle.com/javase/8/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 - <code>~a</code>, 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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#bitwiseOr-java.lang.Object-java.lang.Object-">bitwiseOr</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+         <a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#bitwiseOr-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">bitwiseOr</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+         <a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#bitwiseXor-java.lang.Object-java.lang.Object-">bitwiseXor</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#bitwiseXor-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">bitwiseXor</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcCholeskyDecomposition-org.eclipse.january.dataset.Dataset-">calcCholeskyDecomposition</a></span>(<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 <code>A = L L^T</code></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcConjugateGradient-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">calcConjugateGradient</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 <code>A x = v</code> by conjugate gradient method with the stopping criterion being
+ that the estimated residual <code>r = v - A x</code> satisfies <code>||r|| &lt; ||v||</code> 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="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcConjugateGradient-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-int-double-">calcConjugateGradient</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 <code>A x = v</code> by conjugate gradient method with the stopping criterion being
+ that the estimated residual <code>r = v - A x</code> satisfies <code>||r|| &lt; delta ||v||</code></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcEigenDecomposition-org.eclipse.january.dataset.Dataset-">calcEigenDecomposition</a></span>(<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 <code>A = V D V^T</code></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcEigenvalues-org.eclipse.january.dataset.Dataset-">calcEigenvalues</a></span>(<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="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcInverse-org.eclipse.january.dataset.Dataset-">calcInverse</a></span>(<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="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcLUDecomposition-org.eclipse.january.dataset.Dataset-">calcLUDecomposition</a></span>(<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 <code>A = P^-1 L U</code></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcPseudoInverse-org.eclipse.january.dataset.Dataset-">calcPseudoInverse</a></span>(<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="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcQRDecomposition-org.eclipse.january.dataset.Dataset-">calcQRDecomposition</a></span>(<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 <code>A = Q R</code></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcSingularValueDecomposition-org.eclipse.january.dataset.Dataset-">calcSingularValueDecomposition</a></span>(<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 <code>A = U S V^T</code></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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#cast-boolean-int-int-">cast</a></span>(boolean&nbsp;repeat,
+    int&nbsp;dtype,
+    int&nbsp;isize)</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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#cast-boolean-int-int-">cast</a></span>(boolean&nbsp;repeat,
+    int&nbsp;dtype,
+    int&nbsp;isize)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use class-based method <code>Dataset#cast(int, Class, boolean))</code></span></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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-org.eclipse.january.dataset.IDataset-boolean-int-int-">cast</a></span>(<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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-java.lang.Class-org.eclipse.january.dataset.IDataset-"><code>DatasetUtils.cast(Class, IDataset)</code></a></span></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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-org.eclipse.january.dataset.IDataset-int-">cast</a></span>(<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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-java.lang.Class-org.eclipse.january.dataset.IDataset-"><code>DatasetUtils.cast(Class, IDataset)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#cast-int-">cast</a></span>(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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#cast-int-">cast</a></span>(int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use class-based method <a href="../../../../../org/eclipse/january/dataset/Dataset.html#cast-java.lang.Class-"><code>cast(Class)</code></a></span></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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#cbrt-java.lang.Object-">cbrt</a></span>(<a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#cbrt-java.lang.Object-org.eclipse.january.dataset.Dataset-">cbrt</a></span>(<a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#ceil-java.lang.Object-">ceil</a></span>(<a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#ceil-java.lang.Object-org.eclipse.january.dataset.Dataset-">ceil</a></span>(<a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#centralDifference-org.eclipse.january.dataset.Dataset-int-">centralDifference</a></span>(<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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#choose-org.eclipse.january.dataset.IntegerDataset-java.lang.Object:A-boolean-boolean-">choose</a></span>(<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/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#clip-java.lang.Object-org.eclipse.january.dataset.Dataset-java.lang.Object-java.lang.Object-">clip</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#clip-java.lang.Object-java.lang.Object-java.lang.Object-">clip</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+    <a href="https://docs.oracle.com/javase/8/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/8/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><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#clone--">clone</a></span>()</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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#coerce-org.eclipse.january.dataset.Dataset-java.lang.Object-">coerce</a></span>(<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/8/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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#concatenate-org.eclipse.january.dataset.IDataset:A-int-">concatenate</a></span>(<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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#conjugate-java.lang.Object-">conjugate</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#conjugate-java.lang.Object-org.eclipse.january.dataset.Dataset-">conjugate</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">BroadcastUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastUtils.html#convertAndBroadcast-java.lang.Object...-">convertAndBroadcast</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#convertToDataset-org.eclipse.january.dataset.IDataset-">convertToDataset</a></span>(<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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#copy-org.eclipse.january.dataset.IDataset-int-">copy</a></span>(<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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#copy-java.lang.Class-org.eclipse.january.dataset.IDataset-"><code>DatasetUtils.copy(Class, IDataset)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#copy-int-">copy</a></span>(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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#copy-int-">copy</a></span>(int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use class-based method <a href="../../../../../org/eclipse/january/dataset/Dataset.html#copy-java.lang.Class-"><code>copy(Class)</code></a></span></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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#cos-java.lang.Object-">cos</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#cos-java.lang.Object-org.eclipse.january.dataset.Dataset-">cos</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#cosh-java.lang.Object-">cosh</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#cosh-java.lang.Object-org.eclipse.january.dataset.Dataset-">cosh</a></span>(<a href="https://docs.oracle.com/javase/8/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><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int:A-boolean...-">count</a></span>(int[]&nbsp;axes,
+     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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#count-int:A-boolean...-">count</a></span>(int[]&nbsp;axes,
+     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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#count-int-boolean...-">count</a></span>(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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#count-int-boolean...-">count</a></span>(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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#covariance-org.eclipse.january.dataset.Dataset-">covariance</a></span>(<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-org.eclipse.january.dataset.Dataset-boolean-boolean-java.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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#covariance-org.eclipse.january.dataset.Dataset-boolean-boolean-java.lang.Integer-">covariance</a></span>(<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/8/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-org.eclipse.january.dataset.Dataset-boolean-boolean-java.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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#covariance-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">covariance</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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-org.eclipse.january.dataset.Dataset-boolean-boolean-java.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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#covariance-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-boolean-java.lang.Integer-">covariance</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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/8/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="typeNameLabel">RGBDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createBlueDataset-int-">createBlueDataset</a></span>(int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createBlueDataset-T-"><code>RGBDataset.createBlueDataset(T)</code></a></span></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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#createDatasetFromCompoundDataset-org.eclipse.january.dataset.CompoundDataset-boolean-">createDatasetFromCompoundDataset</a></span>(<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="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromList-int-java.util.List-">createFromList</a></span>(int&nbsp;dtype,
+              <a href="https://docs.oracle.com/javase/8/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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromList-java.lang.Class-java.util.List-"><code>DatasetFactory.createFromList(Class, List)</code></a></span></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="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromList-java.util.List-">createFromList</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject-boolean-java.lang.Object-">createFromObject</a></span>(boolean&nbsp;isUnsigned,
+                <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject-int-int-java.lang.Object-int...-">createFromObject</a></span>(int&nbsp;itemSize,
+                int&nbsp;dtype,
+                <a href="https://docs.oracle.com/javase/8/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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject-int-java.lang.Class-java.lang.Object-int...-"><code>DatasetFactory.createFromObject(int, Class, Object, int...)</code></a></span></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="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject-int-java.lang.Object-">createFromObject</a></span>(int&nbsp;dtype,
+                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject-java.lang.Class-java.lang.Object-int...-"><code>DatasetFactory.createFromObject(Class, Object, int...)</code></a></span></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="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject-int-java.lang.Object-int...-">createFromObject</a></span>(int&nbsp;dtype,
+                <a href="https://docs.oracle.com/javase/8/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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject-java.lang.Class-java.lang.Object-int...-"><code>DatasetFactory.createFromObject(Class, Object, int...)</code></a></span></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="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject-java.lang.Object-">createFromObject</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject-java.lang.Object-int...-">createFromObject</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">RGBDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createGreenDataset-int-">createGreenDataset</a></span>(int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createGreenDataset-T-"><code>RGBDataset.createGreenDataset(T)</code></a></span></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="typeNameLabel">RGBDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createGreyDataset-double-double-double-int-">createGreyDataset</a></span>(double&nbsp;red,
+                 double&nbsp;green,
+                 double&nbsp;blue,
+                 int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createGreyDataset-java.lang.Class-double-double-double-"><code>RGBDataset.createGreyDataset(Class, double, double, double)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RGBDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createGreyDataset-int-">createGreyDataset</a></span>(int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createGreyDataset-java.lang.Class-"><code>RGBDataset.createGreyDataset(Class)</code></a></span></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="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createLinearSpace-double-double-int-int-">createLinearSpace</a></span>(double&nbsp;start,
+                 double&nbsp;stop,
+                 int&nbsp;length,
+                 int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createLinearSpace-java.lang.Class-double-double-int-"><code>DatasetFactory.createLinearSpace(Class, double, double, int)</code></a></span></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="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createLogSpace-double-double-int-double-int-">createLogSpace</a></span>(double&nbsp;start,
+              double&nbsp;stop,
+              int&nbsp;length,
+              double&nbsp;base,
+              int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createLogSpace-java.lang.Class-double-double-int-double-"><code>DatasetFactory.createLogSpace(Class, double, double, int, double)</code></a></span></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="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-double-double-double-int-">createRange</a></span>(double&nbsp;start,
+           double&nbsp;stop,
+           double&nbsp;step,
+           int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-java.lang.Class-double-double-double-"><code>DatasetFactory.createRange(Class, double, double, double)</code></a></span></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="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-double-int-">createRange</a></span>(double&nbsp;stop,
+           int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-java.lang.Class-double-"><code>DatasetFactory.createRange(Class, double)</code></a></span></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="typeNameLabel">RGBDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createRedDataset-int-">createRedDataset</a></span>(int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createRedDataset-T-"><code>RGBDataset.createRedDataset(T)</code></a></span></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="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#crossProduct-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">crossProduct</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#crossProduct-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-int-int-int-">crossProduct</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#cumulativeProduct-org.eclipse.january.dataset.Dataset-boolean...-">cumulativeProduct</a></span>(<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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#cumulativeProduct-org.eclipse.january.dataset.Dataset-int-boolean...-">cumulativeProduct</a></span>(<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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#cumulativeSum-org.eclipse.january.dataset.Dataset-boolean...-">cumulativeSum</a></span>(<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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#cumulativeSum-org.eclipse.january.dataset.Dataset-int-boolean...-">cumulativeSum</a></span>(<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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#derivative-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-int-">derivative</a></span>(<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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#difference-org.eclipse.january.dataset.Dataset-int-int-">difference</a></span>(<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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#divide-java.lang.Object-java.lang.Object-">divide</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+      <a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#divide-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">divide</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+      <a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#divideTowardsFloor-java.lang.Object-java.lang.Object-">divideTowardsFloor</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                  <a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#divideTowardsFloor-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">divideTowardsFloor</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                  <a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#dividez-java.lang.Object-java.lang.Object-">dividez</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#dividez-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">dividez</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#dotProduct-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">dotProduct</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#exp-java.lang.Object-">exp</a></span>(<a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#exp-java.lang.Object-org.eclipse.january.dataset.Dataset-">exp</a></span>(<a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#expm1-java.lang.Object-">expm1</a></span>(<a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#expm1-java.lang.Object-org.eclipse.january.dataset.Dataset-">expm1</a></span>(<a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#extract-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.IDataset-">extract</a></span>(<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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#eye-int-int-int-int-">eye</a></span>(int&nbsp;rows,
+   int&nbsp;cols,
+   int&nbsp;offset,
+   int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#eye-java.lang.Class-int-int-int-"><code>DatasetUtils.eye(Class, int, int, int)</code></a></span></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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#flatten--">flatten</a></span>()</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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#flatten--">flatten</a></span>()</code>
+<div class="block">Flatten 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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#floor-java.lang.Object-">floor</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#floor-java.lang.Object-org.eclipse.january.dataset.Dataset-">floor</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#floorDivide-java.lang.Object-java.lang.Object-">floorDivide</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+           <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#floorDivide-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">floorDivide</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+           <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#floorRemainder-java.lang.Object-java.lang.Object-">floorRemainder</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#floorRemainder-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">floorRemainder</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getBroadcastView-int...-">getBroadcastView</a></span>(int...&nbsp;broadcastShape)</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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getBroadcastView-int...-">getBroadcastView</a></span>(int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getBy1DIndex-org.eclipse.january.dataset.IntegerDataset-">getBy1DIndex</a></span>(<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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getBy1DIndex-org.eclipse.january.dataset.IntegerDataset-">getBy1DIndex</a></span>(<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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getByBoolean-org.eclipse.january.dataset.Dataset-">getByBoolean</a></span>(<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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getByBoolean-org.eclipse.january.dataset.Dataset-">getByBoolean</a></span>(<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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getByIndexes-java.lang.Object...-">getByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getByIndexes-java.lang.Object...-">getByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BooleanIterator.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#getChoice--">getChoice</a></span>()</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="typeNameLabel">RunningAverage.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RunningAverage.html#getCurrentAverage--">getCurrentAverage</a></span>()</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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getElements-int-">getElements</a></span>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getElementsView-int-">getElementsView</a></span>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorBuffer--">getErrorBuffer</a></span>()</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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getErrorBuffer--">getErrorBuffer</a></span>()</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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrors--">getErrors</a></span>()</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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getErrors--">getErrors</a></span>()</code>
+<div class="block">Get the error array from the dataset of same shape.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getInternalSquaredError--">getInternalSquaredError</a></span>()</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="typeNameLabel">BooleanIterator.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#getOutput--">getOutput</a></span>()</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="typeNameLabel">SingleInputBroadcastIterator.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#getOutput--">getOutput</a></span>()</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="typeNameLabel">BroadcastIterator.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html#getOutput--">getOutput</a></span>()</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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealPart--">getRealPart</a></span>()</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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getRealPart--">getRealPart</a></span>()</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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealView--">getRealView</a></span>()</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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getRealView--">getRealView</a></span>()</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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a></span>(<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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a></span>(<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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a></span>(<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="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a></span>(<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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-int:A-int:A-int:A-">getSlice</a></span>(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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-int:A-int:A-int:A-">getSlice</a></span>(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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSlice-int:A-int:A-int:A-">getSlice</a></span>(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="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice-int:A-int:A-int:A-">getSlice</a></span>(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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView-int:A-int:A-int:A-">getSliceView</a></span>(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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSliceView-int:A-int:A-int:A-">getSliceView</a></span>(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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">getSliceView</a></span>(<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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">getSliceView</a></span>(<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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">getSliceView</a></span>(<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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">getSliceView</a></span>(<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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getTransposedView-int...-">getTransposedView</a></span>(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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getTransposedView-int...-">getTransposedView</a></span>(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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getUniqueItems--">getUniqueItems</a></span>()</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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getUniqueItems--">getUniqueItems</a></span>()</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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getView-boolean-">getView</a></span>(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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#hypot-java.lang.Object-java.lang.Object-">hypot</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+     <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#hypot-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">hypot</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+     <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#ifloor--">ifloor</a></span>()</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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#ifloorDivide-java.lang.Object-">ifloorDivide</a></span>(<a href="https://docs.oracle.com/javase/8/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/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#ifloorDivide-java.lang.Object-">ifloorDivide</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IDataset-java.lang.Number-java.lang.Number-">interpolate</a></span>(<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/8/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/8/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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#iqr-org.eclipse.january.dataset.Dataset-int-">iqr</a></span>(<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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#kroneckerProduct-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">kroneckerProduct</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 
+ <code>kron[k0,...,kN] = a[i0,...,iN] * b[j0,...,jN]</code>
+ where <code>kn = sn * in + jn</code> for <code>n = 0...N</code> and <code>s</code> is shape of <code>b</code></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#kurtosis-org.eclipse.january.dataset.Dataset-int-boolean...-">kurtosis</a></span>(<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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#leftShift-java.lang.Object-java.lang.Object-">leftShift</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+         <a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#leftShift-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">leftShift</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+         <a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#lnnorm-org.eclipse.january.dataset.Dataset-">lnnorm</a></span>(<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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#log-java.lang.Object-">log</a></span>(<a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#log-java.lang.Object-org.eclipse.january.dataset.Dataset-">log</a></span>(<a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#log10-java.lang.Object-">log10</a></span>(<a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#log10-java.lang.Object-org.eclipse.january.dataset.Dataset-">log10</a></span>(<a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#log1p-java.lang.Object-">log1p</a></span>(<a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#log1p-java.lang.Object-org.eclipse.january.dataset.Dataset-">log1p</a></span>(<a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#log2-java.lang.Object-">log2</a></span>(<a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#log2-java.lang.Object-org.eclipse.january.dataset.Dataset-">log2</a></span>(<a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#lognorm-org.eclipse.january.dataset.Dataset-">lognorm</a></span>(<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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#lowerClip-java.lang.Object-org.eclipse.january.dataset.Dataset-java.lang.Object-">lowerClip</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;pa)</code>
+<div class="block">lowerClip - clip elements to lower limit</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#lowerClip-java.lang.Object-java.lang.Object-">lowerClip</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;pa)</code>
+<div class="block">lowerClip - clip elements to lower limit</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#makeUnsigned-org.eclipse.january.dataset.IDataset-">makeUnsigned</a></span>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a)</code>
+<div class="block">Make a dataset unsigned by promoting it to a wider dataset type and unwrapping the signs
+ of its contents</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#makeUnsigned-org.eclipse.january.dataset.IDataset-boolean-">makeUnsigned</a></span>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+            boolean&nbsp;check)</code>
+<div class="block">Make a dataset unsigned by promoting it to a wider dataset type and unwrapping the signs
+ of its contents</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LazyMaths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#max-org.eclipse.january.dataset.ILazyDataset-int...-">max</a></span>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+   int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#max-int:A-boolean...-">max</a></span>(int[]&nbsp;axes,
+   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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#max-int:A-boolean...-">max</a></span>(int[]&nbsp;axes,
+   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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#max-int-boolean...-">max</a></span>(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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#max-int-boolean...-">max</a></span>(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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#maximum-java.lang.Object-java.lang.Object-">maximum</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#maximum-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">maximum</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LazyMaths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#mean-org.eclipse.january.dataset.ILazyDataset-int...-">mean</a></span>(<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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int:A-boolean...-">mean</a></span>(int[]&nbsp;axes,
+    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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#mean-int:A-boolean...-">mean</a></span>(int[]&nbsp;axes,
+    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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#mean-int-boolean...-">mean</a></span>(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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#mean-int-boolean...-">mean</a></span>(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="typeNameLabel">LazyMaths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#mean-int-int-org.eclipse.january.dataset.ILazyDataset-int...-">mean</a></span>(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="typeNameLabel">CollectionStats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CollectionStats.html#mean-java.util.List-">mean</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#median-org.eclipse.january.dataset.Dataset-int-">median</a></span>(<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="typeNameLabel">CollectionStats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CollectionStats.html#median-java.util.List-">median</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">LazyMaths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#min-org.eclipse.january.dataset.ILazyDataset-int...-">min</a></span>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+   int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int:A-boolean...-">min</a></span>(int[]&nbsp;axes,
+   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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#min-int:A-boolean...-">min</a></span>(int[]&nbsp;axes,
+   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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#min-int-boolean...-">min</a></span>(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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#min-int-boolean...-">min</a></span>(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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#minimum-java.lang.Object-java.lang.Object-">minimum</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#minimum-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">minimum</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#multiply-java.util.Collection-boolean-">multiply</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&gt;&nbsp;sets,
+        boolean&nbsp;requireClone)</code>
+<div class="block">Multiplies all sets passed in together
+ 
+ The first IDataset must cast to Dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#multiply-java.lang.Object-java.lang.Object-">multiply</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+        <a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#multiply-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">multiply</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+        <a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#negative-java.lang.Object-">negative</a></span>(<a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#negative-java.lang.Object-org.eclipse.january.dataset.Dataset-">negative</a></span>(<a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#norm-org.eclipse.january.dataset.Dataset-">norm</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Function that returns a normalised dataset which is bounded between 0 and 1</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#ones-org.eclipse.january.dataset.Dataset-int-">ones</a></span>(<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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#ones-org.eclipse.january.dataset.Dataset-java.lang.Class-"><code>DatasetFactory.ones(Dataset, Class)</code></a></span></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="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#ones-int:A-int-">ones</a></span>(int[]&nbsp;shape,
+    int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#ones-java.lang.Class-int...-"><code>DatasetFactory.ones(Class, int...)</code></a></span></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="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#ones-int-int:A-int-">ones</a></span>(int&nbsp;itemSize,
+    int[]&nbsp;shape,
+    int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#ones-java.lang.Class-int...-"><code>DatasetFactory.ones(Class, int...)</code></a></span></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="typeNameLabel">Operations.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.html#operate-org.eclipse.january.dataset.BinaryOperation-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">operate</a></span>(<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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+       <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Operate on a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Operations.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.html#operate-org.eclipse.january.dataset.UnaryOperation-java.lang.Object-org.eclipse.january.dataset.Dataset-">operate</a></span>(<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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Operate on a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#outerProduct-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">outerProduct</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>
+<div class="block">Calculate the outer product of two datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a></span>(int[]&nbsp;axes,
+          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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-int:A-boolean...-">peakToPeak</a></span>(int[]&nbsp;axes,
+          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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak-int-boolean...-">peakToPeak</a></span>(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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak-int-boolean...-">peakToPeak</a></span>(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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#phaseAsComplexNumber-java.lang.Object-boolean-">phaseAsComplexNumber</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                    boolean&nbsp;keepZeros)</code>
+<div class="block">Create a phase only dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#phaseAsComplexNumber-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">phaseAsComplexNumber</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                    <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                    boolean&nbsp;keepZeros)</code>
+<div class="block">Create a phase only dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#power-org.eclipse.january.dataset.Dataset-int-">power</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+     int&nbsp;n)</code>
+<div class="block">Raise dataset to given power by matrix multiplication</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#power-java.lang.Object-java.lang.Object-">power</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+     <a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#power-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">power</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+     <a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#product-org.eclipse.january.dataset.Dataset-int:A-boolean...-">product</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+       int[]&nbsp;axes,
+       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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#product-org.eclipse.january.dataset.Dataset-int-boolean...-">product</a></span>(<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="typeNameLabel">LazyMaths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#product-org.eclipse.january.dataset.ILazyDataset-int-">product</a></span>(<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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int:A-boolean...-">product</a></span>(int[]&nbsp;axes,
+       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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#product-int:A-boolean...-">product</a></span>(int[]&nbsp;axes,
+       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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#product-int-boolean...-">product</a></span>(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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#product-int-boolean...-">product</a></span>(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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#quantile-org.eclipse.january.dataset.Dataset-int-double...-">quantile</a></span>(<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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#reciprocal-java.lang.Object-">reciprocal</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#reciprocal-java.lang.Object-org.eclipse.january.dataset.Dataset-">reciprocal</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">InterpolatorUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterpolatorUtils.html#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-">regrid</a></span>(<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="typeNameLabel">InterpolatorUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterpolatorUtils.html#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-">regridOld</a></span>(<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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#remainder-java.lang.Object-java.lang.Object-">remainder</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+         <a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#remainder-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">remainder</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+         <a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">InterpolatorUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterpolatorUtils.html#remap1D-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">remap1D</a></span>(<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="typeNameLabel">InterpolatorUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterpolatorUtils.html#remapAxis-org.eclipse.january.dataset.Dataset-int-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">remapAxis</a></span>(<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="typeNameLabel">InterpolatorUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterpolatorUtils.html#remapOneAxis-org.eclipse.january.dataset.Dataset-int-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">remapOneAxis</a></span>(<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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#reshape-int...-">reshape</a></span>(int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#reshape-int...-">reshape</a></span>(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>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#rightShift-java.lang.Object-java.lang.Object-">rightShift</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#rightShift-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">rightShift</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#rint-java.lang.Object-">rint</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#rint-java.lang.Object-org.eclipse.january.dataset.Dataset-">rint</a></span>(<a href="https://docs.oracle.com/javase/8/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><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</a></span>(int[]&nbsp;axes,
+              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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare-int:A-boolean...-">rootMeanSquare</a></span>(int[]&nbsp;axes,
+              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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare-int-boolean...-">rootMeanSquare</a></span>(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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare-int-boolean...-">rootMeanSquare</a></span>(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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#select-org.eclipse.january.dataset.BooleanDataset:A-java.lang.Object:A-java.lang.Object-">select</a></span>(<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/8/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/8/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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#select-org.eclipse.january.dataset.BooleanDataset-java.lang.Object-java.lang.Object-">select</a></span>(<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/8/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/8/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="typeNameLabel">InterpolatorUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterpolatorUtils.html#selectDatasetRegion-org.eclipse.january.dataset.Dataset-int-int-int-int-">selectDatasetRegion</a></span>(<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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+        int[]&nbsp;start,
+        int[]&nbsp;stop,
+        int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-int:A-int:A-int:A-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+        int[]&nbsp;start,
+        int[]&nbsp;stop,
+        int[]&nbsp;step)</code>
+<div class="block">This is modelled after the NumPy array slice</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+        <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.SliceND-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.SliceND-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#signum-java.lang.Object-">signum</a></span>(<a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#signum-java.lang.Object-org.eclipse.january.dataset.Dataset-">signum</a></span>(<a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#sin-java.lang.Object-">sin</a></span>(<a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#sin-java.lang.Object-org.eclipse.january.dataset.Dataset-">sin</a></span>(<a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#sinh-java.lang.Object-">sinh</a></span>(<a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#sinh-java.lang.Object-org.eclipse.january.dataset.Dataset-">sinh</a></span>(<a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#skewness-org.eclipse.january.dataset.Dataset-int-boolean...-">skewness</a></span>(<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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#sliceAndConvertLazyDataset-org.eclipse.january.dataset.ILazyDataset-">sliceAndConvertLazyDataset</a></span>(<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="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#solve-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">solve</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 <code>A x = v</code></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#solveSVD-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">solveSVD</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 <code>A x = v</code> 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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#sort-java.lang.Integer-">sort</a></span>(<a href="https://docs.oracle.com/javase/8/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>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#sqrt-java.lang.Object-">sqrt</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#sqrt-java.lang.Object-org.eclipse.january.dataset.Dataset-">sqrt</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#square-java.lang.Object-">square</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#square-java.lang.Object-org.eclipse.january.dataset.Dataset-">square</a></span>(<a href="https://docs.oracle.com/javase/8/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><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze--">squeeze</a></span>()</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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#squeeze--">squeeze</a></span>()</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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze-boolean-">squeeze</a></span>(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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#squeeze-boolean-">squeeze</a></span>(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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#squeezeEnds--">squeezeEnds</a></span>()</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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#squeezeEnds--">squeezeEnds</a></span>()</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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-">stdDeviation</a></span>(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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int-">stdDeviation</a></span>(int&nbsp;axis)</code>
+<div class="block">Standard deviation is square root of the variance</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-">stdDeviation</a></span>(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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-">stdDeviation</a></span>(int[]&nbsp;axes)</code>
+<div class="block">Standard deviation is square root of the variance</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a></span>(int[]&nbsp;axes,
+            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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int:A-boolean-boolean...-">stdDeviation</a></span>(int[]&nbsp;axes,
+            boolean&nbsp;isWholePopulation,
+            boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Standard deviation is square root of the variance</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation-int-boolean-boolean...-">stdDeviation</a></span>(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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation-int-boolean-boolean...-">stdDeviation</a></span>(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>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#subtract-java.lang.Object-java.lang.Object-">subtract</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+        <a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#subtract-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">subtract</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+        <a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">LazyMaths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#sum-org.eclipse.january.dataset.ILazyDataset-boolean-int...-">sum</a></span>(<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="typeNameLabel">LazyMaths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#sum-org.eclipse.january.dataset.ILazyDataset-int...-">sum</a></span>(<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="typeNameLabel">LazyMaths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#sum-org.eclipse.january.dataset.ILazyDataset-int-">sum</a></span>(<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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int:A-boolean...-">sum</a></span>(int[]&nbsp;axes,
+   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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#sum-int:A-boolean...-">sum</a></span>(int[]&nbsp;axes,
+   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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#sum-int-boolean...-">sum</a></span>(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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#sum-int-boolean...-">sum</a></span>(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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#swapAxes-org.eclipse.january.dataset.IDataset-int-int-">swapAxes</a></span>(<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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes-int-int-">swapAxes</a></span>(int&nbsp;axis1,
+        int&nbsp;axis2)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#swapAxes-int-int-">swapAxes</a></span>(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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#synchronizedCopy--">synchronizedCopy</a></span>()</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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#synchronizedCopy--">synchronizedCopy</a></span>()</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>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#tan-java.lang.Object-">tan</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#tan-java.lang.Object-org.eclipse.january.dataset.Dataset-">tan</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#tanh-java.lang.Object-">tanh</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#tanh-java.lang.Object-org.eclipse.january.dataset.Dataset-">tanh</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#tensorDotProduct-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-int:A-int:A-">tensorDotProduct</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#tensorDotProduct-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-int-int-">tensorDotProduct</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#tile-org.eclipse.january.dataset.IDataset-int...-">tile</a></span>(<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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#toDegrees-java.lang.Object-">toDegrees</a></span>(<a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#toDegrees-java.lang.Object-org.eclipse.january.dataset.Dataset-">toDegrees</a></span>(<a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#toRadians-java.lang.Object-">toRadians</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#toRadians-java.lang.Object-org.eclipse.january.dataset.Dataset-">toRadians</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#trace-org.eclipse.january.dataset.Dataset-">trace</a></span>(<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="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#trace-org.eclipse.january.dataset.Dataset-int-int-int-">trace</a></span>(<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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#transpose-org.eclipse.january.dataset.IDataset-int...-">transpose</a></span>(<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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#transpose-int...-">transpose</a></span>(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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#transpose-int...-">transpose</a></span>(int...&nbsp;axes)</code>
+<div class="block">See <a href="../../../../../org/eclipse/january/dataset/Dataset.html#getTransposedView-int...-"><code>getTransposedView(int...)</code></a></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#truncate-java.lang.Object-">truncate</a></span>(<a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#truncate-java.lang.Object-org.eclipse.january.dataset.Dataset-">truncate</a></span>(<a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#typedProduct-org.eclipse.january.dataset.Dataset-int-int:A-boolean...-">typedProduct</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+            int&nbsp;dtype,
+            int[]&nbsp;axes,
+            boolean...&nbsp;ignoreInvalids)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based method <a href="../../../../../org/eclipse/january/dataset/Stats.html#typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-int:A-boolean...-"><code>Stats.typedProduct(Class, Dataset, int[], boolean...)</code></a></span></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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#typedProduct-org.eclipse.january.dataset.Dataset-int-int-boolean...-">typedProduct</a></span>(<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>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based method <a href="../../../../../org/eclipse/january/dataset/Stats.html#typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-int-boolean...-"><code>Stats.typedProduct(Class, Dataset, int, boolean...)</code></a></span></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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#typedSum-org.eclipse.january.dataset.Dataset-int-int-boolean...-">typedSum</a></span>(<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>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based method <code>#typedSum(Class, Dataset, axis, boolean...)</code></span></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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#unsignedRightShift-java.lang.Object-java.lang.Object-">unsignedRightShift</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                  <a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#unsignedRightShift-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">unsignedRightShift</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                  <a href="https://docs.oracle.com/javase/8/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="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#upperClip-java.lang.Object-org.eclipse.january.dataset.Dataset-java.lang.Object-">upperClip</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;pa)</code>
+<div class="block">upperClip - clip elements to upper limit</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#upperClip-java.lang.Object-java.lang.Object-">upperClip</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;pa)</code>
+<div class="block">upperClip - clip elements to upper limit</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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-">variance</a></span>(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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#variance-int-">variance</a></span>(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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-">variance</a></span>(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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#variance-int:A-">variance</a></span>(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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int:A-boolean-boolean...-">variance</a></span>(int[]&nbsp;axes,
+        boolean&nbsp;isWholePopulation,
+        boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#variance-int:A-boolean-boolean...-">variance</a></span>(int[]&nbsp;axes,
+        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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#variance-int-boolean-boolean...-">variance</a></span>(int&nbsp;axis,
+        boolean&nbsp;isWholePopulation,
+        boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#variance-int-boolean-boolean...-">variance</a></span>(int&nbsp;axis,
+        boolean&nbsp;isWholePopulation,
+        boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros-org.eclipse.january.dataset.Dataset-int-">zeros</a></span>(<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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros-org.eclipse.january.dataset.Dataset-java.lang.Class-"><code>DatasetFactory.zeros(Dataset, Class)</code></a></span></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="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros-int:A-int-">zeros</a></span>(int[]&nbsp;shape,
+     int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros-java.lang.Class-int...-"><code>DatasetFactory.zeros(Class, int...)</code></a></span></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="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros-int-int:A-int-">zeros</a></span>(int&nbsp;itemSize,
+     int[]&nbsp;shape,
+     int&nbsp;dtype)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros-int-java.lang.Class-int...-"><code>DatasetFactory.zeros(int, Class, int...)</code></a></span></div>
+</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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/8/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;</code></td>
+<td class="colLast"><span class="typeNameLabel">InterfaceUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterfaceUtils.html#getBestFloatInterface-java.lang.Class-">getBestFloatInterface</a></span>(<a href="https://docs.oracle.com/javase/8/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>
+<div class="block">Find floating point dataset interface that best fits given types.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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;</code></td>
+<td class="colLast"><span class="typeNameLabel">InterfaceUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterfaceUtils.html#getBestInterface-java.lang.Class-java.lang.Class-">getBestInterface</a></span>(<a href="https://docs.oracle.com/javase/8/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;a,
+                <a href="https://docs.oracle.com/javase/8/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;b)</code>
+<div class="block">Find dataset interface that best fits given classes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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;</code></td>
+<td class="colLast"><span class="typeNameLabel">InterfaceUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterfaceUtils.html#getElementalInterface-java.lang.Class-">getElementalInterface</a></span>(<a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/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;</code></td>
+<td class="colLast"><span class="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getInterface--">getInterface</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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;</code></td>
+<td class="colLast"><span class="typeNameLabel">DTypeUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DTypeUtils.html#getInterface-int-">getInterface</a></span>(int&nbsp;dtype)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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;</code></td>
+<td class="colLast"><span class="typeNameLabel">InterfaceUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterfaceUtils.html#getInterface-java.lang.Object-">getInterface</a></span>(<a href="https://docs.oracle.com/javase/8/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 interface from an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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;</code></td>
+<td class="colLast"><span class="typeNameLabel">InterfaceUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterfaceUtils.html#getInterfaceFromClass-int-java.lang.Class-">getInterfaceFromClass</a></span>(int&nbsp;elementsPerItem,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;elementClass)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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;</code></td>
+<td class="colLast"><span class="typeNameLabel">DTypeUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DTypeUtils.html#getLargestDataset-java.lang.Class-">getLargestDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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>
+<div class="block">The largest dataset class suitable for a summation of around a few thousand items without changing from the "kind"
+ of dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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;</code></td>
+<td class="colLast"><span class="typeNameLabel">InterfaceUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterfaceUtils.html#getLargestInterface-org.eclipse.january.dataset.Dataset-">getLargestInterface</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</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 <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#gradient-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset...-">gradient</a></span>(<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/8/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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#meshGrid-org.eclipse.january.dataset.Dataset...-">meshGrid</a></span>(<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/8/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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#split-org.eclipse.january.dataset.Dataset-int:A-int-">split</a></span>(<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/8/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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#split-org.eclipse.january.dataset.Dataset-int-int-boolean-">split</a></span>(<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 class="useSummary" 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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#abs-java.lang.Object-org.eclipse.january.dataset.Dataset-">abs</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#add-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">add</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+   <a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>protected static void</code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#addBinaryOperatorName-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-java.lang.String-">addBinaryOperatorName</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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/8/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="rowColor">
+<td class="colFirst"><code>protected static void</code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#addFunctionName-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-java.lang.String-">addFunctionName</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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/8/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>protected static void</code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#addFunctionName-org.eclipse.january.dataset.Dataset-java.lang.String-">addFunctionName</a></span>(<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/8/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>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#angle-java.lang.Object-boolean-org.eclipse.january.dataset.Dataset-">angle</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#angle-java.lang.Object-org.eclipse.january.dataset.Dataset-">angle</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#arccos-java.lang.Object-org.eclipse.january.dataset.Dataset-">arccos</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#arccosh-java.lang.Object-org.eclipse.january.dataset.Dataset-">arccosh</a></span>(<a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#arcsin-java.lang.Object-org.eclipse.january.dataset.Dataset-">arcsin</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#arcsinh-java.lang.Object-org.eclipse.january.dataset.Dataset-">arcsinh</a></span>(<a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#arctan-java.lang.Object-org.eclipse.january.dataset.Dataset-">arctan</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#arctan2-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">arctan2</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#arctanh-java.lang.Object-org.eclipse.january.dataset.Dataset-">arctanh</a></span>(<a href="https://docs.oracle.com/javase/8/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="https://docs.oracle.com/javase/8/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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#averageDeviation-org.eclipse.january.dataset.Dataset-">averageDeviation</a></span>(<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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#bitwiseAnd-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">bitwiseAnd</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#bitwiseInvert-java.lang.Object-org.eclipse.january.dataset.Dataset-">bitwiseInvert</a></span>(<a href="https://docs.oracle.com/javase/8/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 - <code>~a</code>, 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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#bitwiseOr-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">bitwiseOr</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+         <a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#bitwiseXor-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">bitwiseXor</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcCholeskyDecomposition-org.eclipse.january.dataset.Dataset-">calcCholeskyDecomposition</a></span>(<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 <code>A = L L^T</code></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcConditionNumber-org.eclipse.january.dataset.Dataset-">calcConditionNumber</a></span>(<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="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcConjugateGradient-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">calcConjugateGradient</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 <code>A x = v</code> by conjugate gradient method with the stopping criterion being
+ that the estimated residual <code>r = v - A x</code> satisfies <code>||r|| &lt; ||v||</code> 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="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcConjugateGradient-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-int-double-">calcConjugateGradient</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 <code>A x = v</code> by conjugate gradient method with the stopping criterion being
+ that the estimated residual <code>r = v - A x</code> satisfies <code>||r|| &lt; delta ||v||</code></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcDeterminant-org.eclipse.january.dataset.Dataset-">calcDeterminant</a></span>(<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="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcEigenDecomposition-org.eclipse.january.dataset.Dataset-">calcEigenDecomposition</a></span>(<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 <code>A = V D V^T</code></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcEigenvalues-org.eclipse.january.dataset.Dataset-">calcEigenvalues</a></span>(<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="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcInverse-org.eclipse.january.dataset.Dataset-">calcInverse</a></span>(<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="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcLUDecomposition-org.eclipse.january.dataset.Dataset-">calcLUDecomposition</a></span>(<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 <code>A = P^-1 L U</code></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcMatrixRank-org.eclipse.january.dataset.Dataset-">calcMatrixRank</a></span>(<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/8/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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#calcPositionsFromIndexes-org.eclipse.january.dataset.Dataset-int:A-">calcPositionsFromIndexes</a></span>(<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="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcPseudoInverse-org.eclipse.january.dataset.Dataset-">calcPseudoInverse</a></span>(<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="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcQRDecomposition-org.eclipse.january.dataset.Dataset-">calcQRDecomposition</a></span>(<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 <code>A = Q R</code></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcSingularValueDecomposition-org.eclipse.january.dataset.Dataset-">calcSingularValueDecomposition</a></span>(<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 <code>A = U S V^T</code></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double[]</code></td>
+<td class="colLast"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcSingularValues-org.eclipse.january.dataset.Dataset-">calcSingularValues</a></span>(<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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-java.lang.Class-org.eclipse.january.dataset.Dataset...-">cast</a></span>(<a href="https://docs.oracle.com/javase/8/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,
+    <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;a)</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/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-org.eclipse.january.dataset.Dataset:A-int-">cast</a></span>(<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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-java.lang.Class-org.eclipse.january.dataset.Dataset...-"><code>DatasetUtils.cast(Class, Dataset...)</code></a></span></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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#cbrt-java.lang.Object-org.eclipse.january.dataset.Dataset-">cbrt</a></span>(<a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#ceil-java.lang.Object-org.eclipse.january.dataset.Dataset-">ceil</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#centralDifference-org.eclipse.january.dataset.Dataset-int-">centralDifference</a></span>(<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 double[]</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#centroid-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset...-">centroid</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 double[]</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#centroid-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset...-">centroid</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#clip-java.lang.Object-org.eclipse.january.dataset.Dataset-java.lang.Object-java.lang.Object-">clip</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#coerce-org.eclipse.january.dataset.Dataset-java.lang.Object-">coerce</a></span>(<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/8/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 &lt;T extends <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&gt;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#compoundCast-java.lang.Class-org.eclipse.january.dataset.Dataset...-">compoundCast</a></span>(<a href="https://docs.oracle.com/javase/8/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;a)</code>
+<div class="block">Cast array of datasets to a compound 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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#conjugate-java.lang.Object-org.eclipse.january.dataset.Dataset-">conjugate</a></span>(<a href="https://docs.oracle.com/javase/8/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>void</code></td>
+<td class="colLast"><span class="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#copyElements-org.eclipse.january.dataset.Dataset-int-">copyElements</a></span>(<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="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#copyElements-org.eclipse.january.dataset.Dataset-int-">copyElements</a></span>(<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="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#copyElements-org.eclipse.january.dataset.Dataset-int-">copyElements</a></span>(<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="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#copyElements-org.eclipse.january.dataset.Dataset-int-">copyElements</a></span>(<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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#copyElements-org.eclipse.january.dataset.Dataset-int-">copyElements</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;destination,
+            int&nbsp;element)</code>
+<div class="block">Copy chosen elements from each item to another dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#copyElements-org.eclipse.january.dataset.Dataset-int-">copyElements</a></span>(<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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#copyElements-org.eclipse.january.dataset.Dataset-int-">copyElements</a></span>(<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="typeNameLabel">FloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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="typeNameLabel">ShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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="typeNameLabel">ByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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="typeNameLabel">LongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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="typeNameLabel">ObjectDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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="typeNameLabel">StringDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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="typeNameLabel">DoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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="typeNameLabel">IntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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="typeNameLabel">BooleanDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes-int:A-boolean:A-org.eclipse.january.dataset.Dataset-">copyItemsFromAxes</a></span>(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>protected static void</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#copyToView-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.AbstractDataset-boolean-boolean-">copyToView</a></span>(<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>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#cos-java.lang.Object-org.eclipse.january.dataset.Dataset-">cos</a></span>(<a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#cosh-java.lang.Object-org.eclipse.january.dataset.Dataset-">cosh</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#covariance-org.eclipse.january.dataset.Dataset-">covariance</a></span>(<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-org.eclipse.january.dataset.Dataset-boolean-boolean-java.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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#covariance-org.eclipse.january.dataset.Dataset-boolean-boolean-java.lang.Integer-">covariance</a></span>(<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/8/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-org.eclipse.january.dataset.Dataset-boolean-boolean-java.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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#covariance-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">covariance</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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-org.eclipse.january.dataset.Dataset-boolean-boolean-java.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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#covariance-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-boolean-java.lang.Integer-">covariance</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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/8/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 int[]</code></td>
+<td class="colLast"><span class="typeNameLabel">BroadcastUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastUtils.html#createBroadcastStrides-org.eclipse.january.dataset.Dataset-int:A-">createBroadcastStrides</a></span>(<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="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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset-java.lang.Class-org.eclipse.january.dataset.Dataset...-">createCompoundDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset-org.eclipse.january.dataset.Dataset...-">createCompoundDataset</a></span>(<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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset-org.eclipse.january.dataset.Dataset-int-">createCompoundDataset</a></span>(<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"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset-int-org.eclipse.january.dataset.Dataset...-">createCompoundDataset</a></span>(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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset-java.lang.Class-org.eclipse.january.dataset.Dataset...-"><code>DatasetUtils.createCompoundDataset(Class, Dataset...)</code></a></span></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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDatasetFromLastAxis-org.eclipse.january.dataset.Dataset-boolean-">createCompoundDatasetFromLastAxis</a></span>(<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/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#createCompoundDatasetWithLastDimension-org.eclipse.january.dataset.Dataset-boolean-">createCompoundDatasetWithLastDimension</a></span>(<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="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#createCompoundDatasetWithLastDimension-org.eclipse.january.dataset.Dataset-boolean-">createCompoundDatasetWithLastDimension</a></span>(<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"><span class="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#createCompoundDatasetWithLastDimension-org.eclipse.january.dataset.Dataset-boolean-">createCompoundDatasetWithLastDimension</a></span>(<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="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#createCompoundDatasetWithLastDimension-org.eclipse.january.dataset.Dataset-boolean-">createCompoundDatasetWithLastDimension</a></span>(<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"><span class="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#createCompoundDatasetWithLastDimension-org.eclipse.january.dataset.Dataset-boolean-">createCompoundDatasetWithLastDimension</a></span>(<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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#createCompoundDatasetWithLastDimension-org.eclipse.january.dataset.Dataset-boolean-">createCompoundDatasetWithLastDimension</a></span>(<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/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RGBDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createFromHSL-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createFromHSL</a></span>(<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"><span class="typeNameLabel">RGBDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createFromHSV-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createFromHSV</a></span>(<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/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BooleanIterator.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator-boolean-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator</a></span>(boolean&nbsp;v,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset where its value matches
+ the given boolean</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BooleanIterator.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator-boolean-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">createIterator</a></span>(boolean&nbsp;v,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+              boolean&nbsp;createIfNull)</code>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset where its value matches
+ the given boolean</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BooleanIterator.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c)</code>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset with a true value</div>
+</td>
+</tr>
+<tr class="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="typeNameLabel">BroadcastSelfIterator.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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="typeNameLabel">BroadcastIterator.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BooleanIterator.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset with a true value</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BroadcastIterator.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createIterator</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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="typeNameLabel">BroadcastIterator.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html#createIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">createIterator</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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>static <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#createJavaArray-org.eclipse.january.dataset.Dataset-">createJavaArray</a></span>(<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="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="typeNameLabel">LazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#createLazyDataset-org.eclipse.january.dataset.Dataset-">createLazyDataset</a></span>(<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="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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#createLazyDataset-org.eclipse.january.dataset.Dataset-">createLazyDataset</a></span>(<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>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="typeNameLabel">LazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#createLazyDataset-org.eclipse.january.dataset.Dataset-int:A-">createLazyDataset</a></span>(<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>static int[]</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.Dataset-int:A-">createStrides</a></span>(<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"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-org.eclipse.january.dataset.Dataset-int:A-int:A-">createStrides</a></span>(<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="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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/8/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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#crossings-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-double-">crossings</a></span>(<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/8/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/8/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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#crossings-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-double-double-">crossings</a></span>(<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/8/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/8/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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#crossings-org.eclipse.january.dataset.Dataset-double-">crossings</a></span>(<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 <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#crossProduct-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">crossProduct</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#crossProduct-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-int-int-int-">crossProduct</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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"><span class="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#cumulativeProduct-org.eclipse.january.dataset.Dataset-boolean...-">cumulativeProduct</a></span>(<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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#cumulativeProduct-org.eclipse.january.dataset.Dataset-int-boolean...-">cumulativeProduct</a></span>(<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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#cumulativeSum-org.eclipse.january.dataset.Dataset-boolean...-">cumulativeSum</a></span>(<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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#cumulativeSum-org.eclipse.january.dataset.Dataset-int-boolean...-">cumulativeSum</a></span>(<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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#derivative-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-int-">derivative</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;x,
+          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;y,
+          int&nbsp;n)</code>
+<div class="block">Calculates the derivative of a line described by two datasets (x,y) given
+ a spread of n either side of the point</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#difference-org.eclipse.january.dataset.Dataset-int-int-">difference</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+          int&nbsp;n,
+          int&nbsp;axis)</code>
+<div class="block">Discrete difference of dataset along axis using finite difference</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#divide-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">divide</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+      <a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#divideTowardsFloor-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">divideTowardsFloor</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                  <a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#dividez-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">dividez</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#dotProduct-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">dotProduct</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#exp-java.lang.Object-org.eclipse.january.dataset.Dataset-">exp</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#expm1-java.lang.Object-org.eclipse.january.dataset.Dataset-">expm1</a></span>(<a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">FloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">ShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">ByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">LongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">ObjectDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">StringDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">DoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">IntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">BooleanDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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>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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#findFirstOccurrences-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">findFirstOccurrences</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#findIndexEqualTo-org.eclipse.january.dataset.Dataset-double-">findIndexEqualTo</a></span>(<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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#findIndexesForValues-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">findIndexesForValues</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#findIndexGreaterThan-org.eclipse.january.dataset.Dataset-double-">findIndexGreaterThan</a></span>(<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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#findIndexGreaterThanOrEqualTo-org.eclipse.january.dataset.Dataset-double-">findIndexGreaterThanOrEqualTo</a></span>(<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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#findIndexLessThan-org.eclipse.january.dataset.Dataset-double-">findIndexLessThan</a></span>(<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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#findIndexLessThanOrEqualTo-org.eclipse.january.dataset.Dataset-double-">findIndexLessThanOrEqualTo</a></span>(<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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#floor-java.lang.Object-org.eclipse.january.dataset.Dataset-">floor</a></span>(<a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#floorDivide-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">floorDivide</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+           <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#floorRemainder-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">floorRemainder</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/8/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/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator-org.eclipse.january.dataset.Dataset-">getBooleanIterator</a></span>(<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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator-org.eclipse.january.dataset.Dataset-">getBooleanIterator</a></span>(<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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator-org.eclipse.january.dataset.Dataset-boolean-">getBooleanIterator</a></span>(<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/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator-org.eclipse.january.dataset.Dataset-boolean-">getBooleanIterator</a></span>(<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/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getByBoolean-org.eclipse.january.dataset.Dataset-">getByBoolean</a></span>(<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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByBoolean-org.eclipse.january.dataset.Dataset-">getByBoolean</a></span>(<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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getByBoolean-org.eclipse.january.dataset.Dataset-">getByBoolean</a></span>(<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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getByBoolean-org.eclipse.january.dataset.Dataset-">getByBoolean</a></span>(<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>static <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">DTypeUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DTypeUtils.html#getDatasetName-org.eclipse.january.dataset.Dataset-">getDatasetName</a></span>(<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/8/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="typeNameLabel">DTypeUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DTypeUtils.html#getDTypeName-org.eclipse.january.dataset.Dataset-">getDTypeName</a></span>(<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="https://docs.oracle.com/javase/8/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;</code></td>
+<td class="colLast"><span class="typeNameLabel">InterfaceUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterfaceUtils.html#getLargestInterface-org.eclipse.january.dataset.Dataset-">getLargestInterface</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</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 <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#gradient-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset...-">gradient</a></span>(<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/8/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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#gradient-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset...-">gradient</a></span>(<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="typeNameLabel">Outliers.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Outliers.html#highMed-org.eclipse.january.dataset.Dataset-">highMed</a></span>(<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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#hypot-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">hypot</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+     <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#indexSort-org.eclipse.january.dataset.Dataset-java.lang.Integer-">indexSort</a></span>(<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/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>
+<div class="block">Indirectly sort along given axis</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-double...-">interpolate</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+           <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;m,
+           double...&nbsp;x)</code>
+<div class="block">Linearly interpolate a value at a point in a n-D dataset with a mask.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-double-">interpolate</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+           <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;m,
+           double&nbsp;x0)</code>
+<div class="block">Linearly interpolate a value at a point in a 1D dataset with a mask.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-double-double-">interpolate</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+           <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;m,
+           double&nbsp;x0,
+           double&nbsp;x1)</code>
+<div class="block">Linearly interpolate a value at a point in a 2D dataset with a mask.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IDataset-java.lang.Number-java.lang.Number-">interpolate</a></span>(<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/8/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/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;right)</code>
+<div class="block">Linearly interpolate values at points in a 1D dataset corresponding to
+ given coordinates.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-double...-">interpolate</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+           double...&nbsp;x)</code>
+<div class="block">Linearly interpolate a value at a point in a n-D dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-double-">interpolate</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+           double&nbsp;x0)</code>
+<div class="block">Linearly interpolate a value at a point in a 1D dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-double-double-">interpolate</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+           double&nbsp;x0,
+           double&nbsp;x1)</code>
+<div class="block">Linearly interpolate a value at a point in a 2D dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#iqr-org.eclipse.january.dataset.Dataset-">iqr</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Interquartile range: Q3 - Q1</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#iqr-org.eclipse.january.dataset.Dataset-int-">iqr</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+   int&nbsp;axis)</code>
+<div class="block">Interquartile range: Q3 - Q1</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#kroneckerProduct-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">kroneckerProduct</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 
+ <code>kron[k0,...,kN] = a[i0,...,iN] * b[j0,...,jN]</code>
+ where <code>kn = sn * in + jn</code> for <code>n = 0...N</code> and <code>s</code> is shape of <code>b</code></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#kurtosis-org.eclipse.january.dataset.Dataset-boolean...-">kurtosis</a></span>(<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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#kurtosis-org.eclipse.january.dataset.Dataset-int-boolean...-">kurtosis</a></span>(<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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#leftShift-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">leftShift</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+         <a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#lnnorm-org.eclipse.january.dataset.Dataset-">lnnorm</a></span>(<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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#log-java.lang.Object-org.eclipse.january.dataset.Dataset-">log</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#log10-java.lang.Object-org.eclipse.january.dataset.Dataset-">log10</a></span>(<a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#log1p-java.lang.Object-org.eclipse.january.dataset.Dataset-">log1p</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#log2-java.lang.Object-org.eclipse.january.dataset.Dataset-">log2</a></span>(<a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#lognorm-org.eclipse.january.dataset.Dataset-">lognorm</a></span>(<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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#lowerClip-java.lang.Object-org.eclipse.january.dataset.Dataset-java.lang.Object-">lowerClip</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;pa)</code>
+<div class="block">lowerClip - clip elements to lower limit</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="typeNameLabel">Outliers.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Outliers.html#lowMed-org.eclipse.january.dataset.Dataset-">lowMed</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;data)</code>
+<div class="block">Returns the lomed</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#makeFinite-org.eclipse.january.dataset.Dataset-">makeFinite</a></span>(<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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#maximum-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">maximum</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="https://docs.oracle.com/javase/8/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="https://docs.oracle.com/javase/8/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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#median-org.eclipse.january.dataset.Dataset-">median</a></span>(<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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#median-org.eclipse.january.dataset.Dataset-int-">median</a></span>(<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="typeNameLabel">Outliers.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Outliers.html#medianAbsoluteDeviation-org.eclipse.january.dataset.Dataset-">medianAbsoluteDeviation</a></span>(<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/8/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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#meshGrid-org.eclipse.january.dataset.Dataset...-">meshGrid</a></span>(<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="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#minimum-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">minimum</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#multiply-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">multiply</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+        <a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#negative-java.lang.Object-org.eclipse.january.dataset.Dataset-">negative</a></span>(<a href="https://docs.oracle.com/javase/8/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="https://docs.oracle.com/javase/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#nonZero-org.eclipse.january.dataset.Dataset-">nonZero</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Create a list of indices of positions where items are non-zero</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#norm-org.eclipse.january.dataset.Dataset-">norm</a></span>(<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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#norm-org.eclipse.january.dataset.Dataset-">norm</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Function that returns a normalised dataset which is bounded between 0 and 1</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#norm-org.eclipse.january.dataset.Dataset-double-">norm</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+    double&nbsp;p)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#norm-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.LinearAlgebra.NormOrder-">norm</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+    <a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">LinearAlgebra.NormOrder</a>&nbsp;order)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#ones-org.eclipse.january.dataset.Dataset-java.lang.Class-">ones</a></span>(<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/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#ones-org.eclipse.january.dataset.Dataset-int-">ones</a></span>(<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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#ones-org.eclipse.january.dataset.Dataset-java.lang.Class-"><code>DatasetFactory.ones(Dataset, Class)</code></a></span></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="typeNameLabel">Operations.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.html#operate-org.eclipse.january.dataset.BinaryOperation-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">operate</a></span>(<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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+       <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Operate on a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Operations.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.html#operate-org.eclipse.january.dataset.UnaryOperation-java.lang.Object-org.eclipse.january.dataset.Dataset-">operate</a></span>(<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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+       <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Operate on a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#outerProduct-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">outerProduct</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>
+<div class="block">Calculate the outer product of two datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double[]</code></td>
+<td class="colLast"><span class="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#outlierValues-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-double-double-int-">outlierValues</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+             <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;mask,
+             boolean&nbsp;value,
+             double&nbsp;lo,
+             double&nbsp;hi,
+             int&nbsp;length)</code>
+<div class="block">Calculate approximate outlier values.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double[]</code></td>
+<td class="colLast"><span class="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#outlierValues-org.eclipse.january.dataset.Dataset-double-double-int-">outlierValues</a></span>(<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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#phaseAsComplexNumber-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">phaseAsComplexNumber</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#power-org.eclipse.january.dataset.Dataset-int-">power</a></span>(<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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#power-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">power</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+     <a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#product-org.eclipse.january.dataset.Dataset-boolean...-">product</a></span>(<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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#product-org.eclipse.january.dataset.Dataset-int:A-boolean...-">product</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+       int[]&nbsp;axes,
+       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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#product-org.eclipse.january.dataset.Dataset-int-boolean...-">product</a></span>(<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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#put-T-org.eclipse.january.dataset.Dataset-java.lang.Object-">put</a></span>(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/8/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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#quantile-org.eclipse.january.dataset.Dataset-double...-">quantile</a></span>(<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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#quantile-org.eclipse.january.dataset.Dataset-double-">quantile</a></span>(<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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#quantile-org.eclipse.january.dataset.Dataset-int-double...-">quantile</a></span>(<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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#reciprocal-java.lang.Object-org.eclipse.january.dataset.Dataset-">reciprocal</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">InterpolatorUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterpolatorUtils.html#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-">regrid</a></span>(<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="typeNameLabel">InterpolatorUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterpolatorUtils.html#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-">regridOld</a></span>(<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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#remainder-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">remainder</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+         <a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">InterpolatorUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterpolatorUtils.html#remap1D-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">remap1D</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+       <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;axis,
+       <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;outputAxis)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">InterpolatorUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterpolatorUtils.html#remapAxis-org.eclipse.january.dataset.Dataset-int-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">remapAxis</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+         int&nbsp;axisIndex,
+         <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;originalAxisForCorrection,
+         <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;outputAxis)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">InterpolatorUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterpolatorUtils.html#remapOneAxis-org.eclipse.january.dataset.Dataset-int-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">remapOneAxis</a></span>(<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 void</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#removeNansAndInfinities-org.eclipse.january.dataset.Dataset-java.lang.Number-">removeNansAndInfinities</a></span>(<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/8/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="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#residual-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">residual</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>
+<div class="block">The residual is the sum of squared differences</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><span class="typeNameLabel">FloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ComplexDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ComplexFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">LongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ObjectDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">StringDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">DoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">IntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">BooleanDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">BooleanDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#residual-java.lang.Object-org.eclipse.january.dataset.Dataset-boolean-">residual</a></span>(<a href="https://docs.oracle.com/javase/8/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>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#rightShift-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">rightShift</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#rint-java.lang.Object-org.eclipse.january.dataset.Dataset-">rint</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">InterpolatorUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterpolatorUtils.html#selectDatasetRegion-org.eclipse.january.dataset.Dataset-int-int-int-int-">selectDatasetRegion</a></span>(<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/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/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/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/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/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/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/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">ObjectDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">StringDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">DoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/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/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/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/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">IntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BooleanDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/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/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/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/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/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/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">ObjectDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">StringDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">DoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/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/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/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/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">IntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BooleanDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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>void</code></td>
+<td class="colLast"><span class="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setElements-org.eclipse.january.dataset.Dataset-int-">setElements</a></span>(<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="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setElements-org.eclipse.january.dataset.Dataset-int-">setElements</a></span>(<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="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setElements-org.eclipse.january.dataset.Dataset-int-">setElements</a></span>(<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="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setElements-org.eclipse.january.dataset.Dataset-int-">setElements</a></span>(<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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#setElements-org.eclipse.january.dataset.Dataset-int-">setElements</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;source,
+           int&nbsp;element)</code>
+<div class="block">Set values of chosen elements from each item according to source dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setElements-org.eclipse.january.dataset.Dataset-int-">setElements</a></span>(<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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setElements-org.eclipse.january.dataset.Dataset-int-">setElements</a></span>(<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>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#signum-java.lang.Object-org.eclipse.january.dataset.Dataset-">signum</a></span>(<a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#sin-java.lang.Object-org.eclipse.january.dataset.Dataset-">sin</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#sinh-java.lang.Object-org.eclipse.january.dataset.Dataset-">sinh</a></span>(<a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#skewness-org.eclipse.january.dataset.Dataset-boolean...-">skewness</a></span>(<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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#skewness-org.eclipse.january.dataset.Dataset-int-boolean...-">skewness</a></span>(<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="typeNameLabel">Outliers.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Outliers.html#snFast-org.eclipse.january.dataset.Dataset-">snFast</a></span>(<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="typeNameLabel">Outliers.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Outliers.html#snNaive-org.eclipse.january.dataset.Dataset-">snNaive</a></span>(<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="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#solve-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">solve</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 <code>A x = v</code></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#solveSVD-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">solveSVD</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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 <code>A x = v</code> by SVD</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#sort-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset...-">sort</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#sort-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset...-">sort</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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/8/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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#split-org.eclipse.january.dataset.Dataset-int:A-int-">split</a></span>(<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/8/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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#split-org.eclipse.january.dataset.Dataset-int-int-boolean-">split</a></span>(<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="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#sqrt-java.lang.Object-org.eclipse.january.dataset.Dataset-">sqrt</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#square-java.lang.Object-org.eclipse.january.dataset.Dataset-">square</a></span>(<a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#subtract-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">subtract</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+        <a href="https://docs.oracle.com/javase/8/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="https://docs.oracle.com/javase/8/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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#sum-org.eclipse.january.dataset.Dataset-boolean...-">sum</a></span>(<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 &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#take-T-org.eclipse.january.dataset.Dataset-java.lang.Integer-">take</a></span>(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/8/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 <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#tan-java.lang.Object-org.eclipse.january.dataset.Dataset-">tan</a></span>(<a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#tanh-java.lang.Object-org.eclipse.january.dataset.Dataset-">tanh</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#tensorDotProduct-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-int:A-int:A-">tensorDotProduct</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#tensorDotProduct-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-int-int-">tensorDotProduct</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#toDegrees-java.lang.Object-org.eclipse.january.dataset.Dataset-">toDegrees</a></span>(<a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#toRadians-java.lang.Object-org.eclipse.january.dataset.Dataset-">toRadians</a></span>(<a href="https://docs.oracle.com/javase/8/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="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#trace-org.eclipse.january.dataset.Dataset-">trace</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Calculate trace of dataset - sum of values over 1st axis and 2nd axis</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#trace-org.eclipse.january.dataset.Dataset-int-int-int-">trace</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+     int&nbsp;offset,
+     int&nbsp;axis1,
+     int&nbsp;axis2)</code>
+<div class="block">Calculate trace of dataset - sum of values over axis1 and axis2 where axis2 is offset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#truncate-java.lang.Object-org.eclipse.january.dataset.Dataset-">truncate</a></span>(<a href="https://docs.oracle.com/javase/8/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="https://docs.oracle.com/javase/8/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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-boolean...-">typedProduct</a></span>(<a href="https://docs.oracle.com/javase/8/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,
+            <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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-int:A-boolean...-">typedProduct</a></span>(<a href="https://docs.oracle.com/javase/8/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;a,
+            int[]&nbsp;axes,
+            boolean...&nbsp;ignoreInvalids)</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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-int-boolean...-">typedProduct</a></span>(<a href="https://docs.oracle.com/javase/8/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;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/8/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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#typedProduct-org.eclipse.january.dataset.Dataset-int-boolean...-">typedProduct</a></span>(<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>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based method <a href="../../../../../org/eclipse/january/dataset/Stats.html#typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-boolean...-"><code>Stats.typedProduct(Class, Dataset, boolean...)</code></a></span></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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#typedProduct-org.eclipse.january.dataset.Dataset-int-int:A-boolean...-">typedProduct</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+            int&nbsp;dtype,
+            int[]&nbsp;axes,
+            boolean...&nbsp;ignoreInvalids)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based method <a href="../../../../../org/eclipse/january/dataset/Stats.html#typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-int:A-boolean...-"><code>Stats.typedProduct(Class, Dataset, int[], boolean...)</code></a></span></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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#typedProduct-org.eclipse.january.dataset.Dataset-int-int-boolean...-">typedProduct</a></span>(<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>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based method <a href="../../../../../org/eclipse/january/dataset/Stats.html#typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-int-boolean...-"><code>Stats.typedProduct(Class, Dataset, int, boolean...)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#typedSum-java.lang.Class-org.eclipse.january.dataset.Dataset-boolean...-">typedSum</a></span>(<a href="https://docs.oracle.com/javase/8/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,
+        <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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#typedSum-java.lang.Class-org.eclipse.january.dataset.Dataset-int:A-boolean...-">typedSum</a></span>(<a href="https://docs.oracle.com/javase/8/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;a,
+        int[]&nbsp;axes,
+        boolean...&nbsp;ignoreInvalids)</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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#typedSum-java.lang.Class-org.eclipse.january.dataset.Dataset-int-boolean...-">typedSum</a></span>(<a href="https://docs.oracle.com/javase/8/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;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/8/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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#typedSum-org.eclipse.january.dataset.Dataset-int-boolean...-">typedSum</a></span>(<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>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based method <a href="../../../../../org/eclipse/january/dataset/Stats.html#typedSum-java.lang.Class-org.eclipse.january.dataset.Dataset-boolean...-"><code>Stats.typedSum(Class, Dataset, boolean...)</code></a></span></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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#typedSum-org.eclipse.january.dataset.Dataset-int-int-boolean...-">typedSum</a></span>(<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>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based method <code>#typedSum(Class, Dataset, axis, boolean...)</code></span></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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#unsignedRightShift-java.lang.Object-java.lang.Object-org.eclipse.january.dataset.Dataset-">unsignedRightShift</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                  <a href="https://docs.oracle.com/javase/8/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/8/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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#unwrap-org.eclipse.january.dataset.Dataset-java.lang.Object...-">unwrap</a></span>(<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/8/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/8/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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#unwrap-org.eclipse.january.dataset.Dataset-java.lang.Object-">unwrap</a></span>(<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/8/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/8/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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#unwrap-org.eclipse.january.dataset.Dataset-java.lang.Object-java.lang.Object-">unwrap</a></span>(<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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+      <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#unwrapUnsigned-org.eclipse.january.dataset.Dataset-int-">unwrapUnsigned</a></span>(<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 <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#upperClip-java.lang.Object-org.eclipse.january.dataset.Dataset-java.lang.Object-">upperClip</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;pa)</code>
+<div class="block">upperClip - clip elements to upper limit</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#weightedResidual-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">weightedResidual</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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="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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros-org.eclipse.january.dataset.Dataset-java.lang.Class-">zeros</a></span>(<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/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros-org.eclipse.january.dataset.Dataset-int-">zeros</a></span>(<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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetFactory,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros-org.eclipse.january.dataset.Dataset-java.lang.Class-"><code>DatasetFactory.zeros(Dataset, Class)</code></a></span></div>
+</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#calcIndexesFromPositions-java.util.List-int:A-int...-">calcIndexesFromPositions</a></span>(<a href="https://docs.oracle.com/javase/8/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 <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-java.lang.Class-org.eclipse.january.dataset.Dataset...-">cast</a></span>(<a href="https://docs.oracle.com/javase/8/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,
+    <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;a)</code>
+<div class="block">Cast array of datasets to a compound dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">InterfaceUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterfaceUtils.html#fromDoublesToBiggestPrimitives-java.lang.Class-double:A-">fromDoublesToBiggestPrimitives</a></span>(<a href="https://docs.oracle.com/javase/8/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,
+                              double[]&nbsp;x)</code>
+<div class="block">Convert double array to primitive array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><span class="typeNameLabel">InterfaceUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterfaceUtils.html#fromDoubleToBiggestNumber-java.lang.Class-double-">fromDoubleToBiggestNumber</a></span>(<a href="https://docs.oracle.com/javase/8/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,
+                         double&nbsp;x)</code>
+<div class="block">Convert double to number</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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;</code></td>
+<td class="colLast"><span class="typeNameLabel">InterfaceUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterfaceUtils.html#getBestFloatInterface-java.lang.Class-">getBestFloatInterface</a></span>(<a href="https://docs.oracle.com/javase/8/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>
+<div class="block">Find floating point dataset interface that best fits given types.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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;</code></td>
+<td class="colLast"><span class="typeNameLabel">InterfaceUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterfaceUtils.html#getBestInterface-java.lang.Class-java.lang.Class-">getBestInterface</a></span>(<a href="https://docs.oracle.com/javase/8/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;a,
+                <a href="https://docs.oracle.com/javase/8/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;b)</code>
+<div class="block">Find dataset interface that best fits given classes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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;</code></td>
+<td class="colLast"><span class="typeNameLabel">InterfaceUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterfaceUtils.html#getBestInterface-java.lang.Class-java.lang.Class-">getBestInterface</a></span>(<a href="https://docs.oracle.com/javase/8/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;a,
+                <a href="https://docs.oracle.com/javase/8/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;b)</code>
+<div class="block">Find dataset interface that best fits given classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">DTypeUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DTypeUtils.html#getDatasetName-java.lang.Class-int-">getDatasetName</a></span>(<a href="https://docs.oracle.com/javase/8/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,
+              int&nbsp;itemSize)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><span class="typeNameLabel">DTypeUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DTypeUtils.html#getDType-java.lang.Class-">getDType</a></span>(<a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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;</code></td>
+<td class="colLast"><span class="typeNameLabel">InterfaceUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterfaceUtils.html#getElementalInterface-java.lang.Class-">getElementalInterface</a></span>(<a href="https://docs.oracle.com/javase/8/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 <a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">InterfaceUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterfaceUtils.html#getElementClass-java.lang.Class-">getElementClass</a></span>(<a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><span class="typeNameLabel">InterfaceUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterfaceUtils.html#getElementsPerItem-java.lang.Class-">getElementsPerItem</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="typeNameLabel">InterfaceUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterfaceUtils.html#getItemBytes-int-java.lang.Class-">getItemBytes</a></span>(int&nbsp;isize,
+            <a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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;</code></td>
+<td class="colLast"><span class="typeNameLabel">DTypeUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DTypeUtils.html#getLargestDataset-java.lang.Class-">getLargestDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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>
+<div class="block">The largest dataset class suitable for a summation of around a few thousand items without changing from the "kind"
+ of dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">InterfaceUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterfaceUtils.html#isComplex-java.lang.Class-">isComplex</a></span>(<a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">InterfaceUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterfaceUtils.html#isCompound-java.lang.Class-">isCompound</a></span>(<a href="https://docs.oracle.com/javase/8/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 boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">InterfaceUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterfaceUtils.html#isElemental-java.lang.Class-">isElemental</a></span>(<a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">InterfaceUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterfaceUtils.html#isFloating-java.lang.Class-">isFloating</a></span>(<a href="https://docs.oracle.com/javase/8/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 boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">InterfaceUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterfaceUtils.html#isInteger-java.lang.Class-">isInteger</a></span>(<a href="https://docs.oracle.com/javase/8/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="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">InterfaceUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterfaceUtils.html#isNumerical-java.lang.Class-">isNumerical</a></span>(<a href="https://docs.oracle.com/javase/8/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 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><span class="typeNameLabel">InterfaceUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterfaceUtils.html#toBiggestNumber-java.lang.Class-java.lang.Number-">toBiggestNumber</a></span>(<a href="https://docs.oracle.com/javase/8/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,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;x)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#typedProduct-java.lang.Class-org.eclipse.january.dataset.Dataset-boolean...-">typedProduct</a></span>(<a href="https://docs.oracle.com/javase/8/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,
+            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+            boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Stats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Stats.html#typedSum-java.lang.Class-org.eclipse.january.dataset.Dataset-boolean...-">typedSum</a></span>(<a href="https://docs.oracle.com/javase/8/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,
+        <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>
+</tbody>
+</table>
+<table class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html#BooleanBroadcastIterator-boolean-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">BooleanBroadcastIterator</a></span>(boolean&nbsp;v,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                        boolean&nbsp;createIfNull)</code>
+<div class="block">Construct a boolean iterator that stops at every position in the choice dataset where its value matches
+ the given boolean</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html#BooleanContiguousIterator-boolean-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">BooleanContiguousIterator</a></span>(boolean&nbsp;v,
+                         <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                         <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                         <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                         boolean&nbsp;createIfNull)</code>
+<div class="block">Construct a boolean iterator that stops at the position in choice dataset where its value matches
+ the given boolean</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#BooleanIterator-boolean-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">BooleanIterator</a></span>(boolean&nbsp;v,
+               <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+               <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+               <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Construct a boolean iterator that stops at the given boolean value in choice dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanNullIterator.html#BooleanNullIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">BooleanNullIterator</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanNullIterator.html#BooleanNullIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">BooleanNullIterator</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanNullIterator.html#BooleanNullIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-boolean-boolean-">BooleanNullIterator</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                   <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                   boolean&nbsp;createIfNull,
+                   boolean&nbsp;allowInteger,
+                   boolean&nbsp;allowComplex)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html#BroadcastIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">BroadcastIterator</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#BroadcastIteratorBase-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">BroadcastIteratorBase</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastPairIterator.html#BroadcastPairIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">BroadcastPairIterator</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html#BroadcastSelfIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">BroadcastSelfIterator</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html#BroadcastSingleIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">BroadcastSingleIterator</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ContiguousPairIterator.html#ContiguousPairIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">ContiguousPairIterator</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ContiguousSingleIterator.html#ContiguousSingleIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">ContiguousSingleIterator</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerIterator.html#IntegerIterator-org.eclipse.january.dataset.Dataset-int-">IntegerIterator</a></span>(<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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerIterator.html#IntegerIterator-org.eclipse.january.dataset.Dataset-int-int-">IntegerIterator</a></span>(<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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#RGBDataset-org.eclipse.january.dataset.Dataset-">RGBDataset</a></span>(<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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#RGBDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">RGBDataset</a></span>(<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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#SingleInputBroadcastIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">SingleInputBroadcastIterator</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#SingleInputBroadcastIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-">SingleInputBroadcastIterator</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#SingleInputBroadcastIterator-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-boolean-boolean-boolean-">SingleInputBroadcastIterator</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructor 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="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#LazyDataset-org.eclipse.january.io.ILazyLoader-java.lang.String-java.lang.Class-int...-">LazyDataset</a></span>(<a href="../../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a>&nbsp;loader,
+           <a href="https://docs.oracle.com/javase/8/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/8/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,
+           int...&nbsp;shape)</code>
+<div class="block">Create a lazy dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#LazyDataset-org.eclipse.january.io.ILazyLoader-java.lang.String-int-java.lang.Class-int...-">LazyDataset</a></span>(<a href="../../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a>&nbsp;loader,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+           int&nbsp;elements,
+           <a href="https://docs.oracle.com/javase/8/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,
+           int...&nbsp;shape)</code>
+<div class="block">Create a lazy 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/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 class="useSummary" 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="typeNameLabel">StatisticsMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getArgMaximum-int-boolean...-">getArgMaximum</a></span>(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="typeNameLabel">StatisticsMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getArgMinimum-int-boolean...-">getArgMinimum</a></span>(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="typeNameLabel">StatisticsMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getCount-int:A-boolean...-">getCount</a></span>(int[]&nbsp;axes,
+        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="typeNameLabel">StatisticsMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getCount-int-boolean...-">getCount</a></span>(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="typeNameLabel">StatisticsMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum-int:A-boolean...-">getMaximum</a></span>(int[]&nbsp;axes,
+          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="typeNameLabel">StatisticsMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum-int-boolean...-">getMaximum</a></span>(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="typeNameLabel">StatisticsMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMean-int:A-boolean...-">getMean</a></span>(int[]&nbsp;axes,
+       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="typeNameLabel">StatisticsMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMean-int-boolean...-">getMean</a></span>(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="typeNameLabel">StatisticsMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMinimum-int:A-boolean...-">getMinimum</a></span>(int[]&nbsp;axes,
+          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="typeNameLabel">StatisticsMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMinimum-int-boolean...-">getMinimum</a></span>(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="typeNameLabel">StatisticsMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getSum-int:A-boolean...-">getSum</a></span>(int[]&nbsp;axes,
+      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="typeNameLabel">StatisticsMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getSum-int-boolean...-">getSum</a></span>(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="typeNameLabel">StatisticsMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getVariance-int:A-boolean-boolean...-">getVariance</a></span>(int[]&nbsp;axes,
+           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="typeNameLabel">StatisticsMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getVariance-int-boolean-boolean...-">getVariance</a></span>(int&nbsp;axis,
+           boolean&nbsp;isWholePopulation,
+           boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">StatisticsMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html#initialize-org.eclipse.january.dataset.Dataset-">initialize</a></span>(<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="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">StatisticsMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html#isDirty-org.eclipse.january.dataset.Dataset-">isDirty</a></span>(<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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/DatasetFactory.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/DatasetFactory.html
new file mode 100644
index 0000000..508e216
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/DatasetFactory.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.DatasetFactory (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/DatasetUtils.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/DatasetUtils.html
new file mode 100644
index 0000000..b7bf40c
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/DatasetUtils.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.DatasetUtils (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/DateDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/DateDataset.html
new file mode 100644
index 0000000..f09f765
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/DateDataset.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 (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.dataset.DateDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/DateDatasetImpl.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/DateDatasetImpl.html
new file mode 100644
index 0000000..53fa059
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/DateDatasetImpl.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.DateDatasetImpl (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/DoubleDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/DoubleDataset.html
new file mode 100644
index 0000000..9edfe30
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/DoubleDataset.html
@@ -0,0 +1,309 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.DoubleDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#asNonCompoundDataset-boolean-">asNonCompoundDataset</a></span>(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="typeNameLabel">DoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#clone--">clone</a></span>()</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="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-double-">createRange</a></span>(double&nbsp;stop)</code>
+<div class="block">Create dataset with items ranging from 0 up to given stop in steps of 1</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange-double-double-double-">createRange</a></span>(double&nbsp;start,
+           double&nbsp;stop,
+           double&nbsp;step)</code>
+<div class="block">Create dataset with items ranging from given start up to given stop in given steps</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Random.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Random.html#exponential-double-int...-">exponential</a></span>(double&nbsp;beta,
+           int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getElements-int-">getElements</a></span>(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="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getElementsView-int-">getElementsView</a></span>(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="typeNameLabel">ComplexDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getImaginaryPart--">getImaginaryPart</a></span>()</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="typeNameLabel">ComplexDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getImaginaryView--">getImaginaryView</a></span>()</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="typeNameLabel">ComplexDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getRealPart--">getRealPart</a></span>()</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="typeNameLabel">ComplexDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getRealView--">getRealView</a></span>()</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="typeNameLabel">DoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#getUniqueItems--">getUniqueItems</a></span>()</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="typeNameLabel">DoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#getView-boolean-">getView</a></span>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">DoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">DoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#ifloor--">ifloor</a></span>()</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="typeNameLabel">DoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">DoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">DoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">DoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#ones-int...-">ones</a></span>(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="typeNameLabel">Random.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Random.html#rand-double-double-int...-">rand</a></span>(double&nbsp;low,
+    double&nbsp;high,
+    int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Random.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Random.html#rand-int...-">rand</a></span>(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="typeNameLabel">Random.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Random.html#randn-double-double-int...-">randn</a></span>(double&nbsp;mean,
+     double&nbsp;std,
+     int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Random.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Random.html#randn-int...-">randn</a></span>(int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">DoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">DoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+        <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#sort-java.lang.Integer-">sort</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros-int...-">zeros</a></span>(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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/FloatDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/FloatDataset.html
new file mode 100644
index 0000000..f7cb817
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/FloatDataset.html
@@ -0,0 +1,262 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.FloatDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#asNonCompoundDataset-boolean-">asNonCompoundDataset</a></span>(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="typeNameLabel">FloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#clone--">clone</a></span>()</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="typeNameLabel">FloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getElements-int-">getElements</a></span>(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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getElementsView-int-">getElementsView</a></span>(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="typeNameLabel">ComplexFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getImaginaryPart--">getImaginaryPart</a></span>()</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="typeNameLabel">ComplexFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getImaginaryView--">getImaginaryView</a></span>()</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="typeNameLabel">ComplexFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getRealPart--">getRealPart</a></span>()</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="typeNameLabel">ComplexFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getRealView--">getRealView</a></span>()</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="typeNameLabel">FloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">FloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#getUniqueItems--">getUniqueItems</a></span>()</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="typeNameLabel">FloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#getView-boolean-">getView</a></span>(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="typeNameLabel">FloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">FloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">FloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#ifloor--">ifloor</a></span>()</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="typeNameLabel">FloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">FloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">FloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">FloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">FloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">FloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">FloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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="typeNameLabel">FloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">FloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#sort-java.lang.Integer-">sort</a></span>(<a href="https://docs.oracle.com/javase/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IDataListener.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IDataListener.html
new file mode 100644
index 0000000..51086eb
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IDataListener.html
@@ -0,0 +1,192 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.dataset.IDataListener (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">DataListenerDelegate.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DataListenerDelegate.html#addDataListener-org.eclipse.january.dataset.IDataListener-">addDataListener</a></span>(<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="typeNameLabel">LazyDynamicDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#addDataListener-org.eclipse.january.dataset.IDataListener-">addDataListener</a></span>(<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="typeNameLabel">IDynamicShape.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDynamicShape.html#addDataListener-org.eclipse.january.dataset.IDataListener-">addDataListener</a></span>(<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"><span class="typeNameLabel">DataListenerDelegate.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DataListenerDelegate.html#removeDataListener-org.eclipse.january.dataset.IDataListener-">removeDataListener</a></span>(<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="typeNameLabel">LazyDynamicDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#removeDataListener-org.eclipse.january.dataset.IDataListener-">removeDataListener</a></span>(<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="typeNameLabel">IDynamicShape.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDynamicShape.html#removeDataListener-org.eclipse.january.dataset.IDataListener-">removeDataListener</a></span>(<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>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IDataset.html
new file mode 100644
index 0000000..cef9dc0
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IDataset.html
@@ -0,0 +1,840 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.dataset.IDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a></span></code>
+<div class="block">Interface for a dataset containing <a href="https://docs.oracle.com/javase/8/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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></span></code>
+<div class="block">Generic container class for data</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></span></code>
+<div class="block">Extend dataset for String values // PRIM_TYPE</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">IDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDataset.html#clone--">clone</a></span>()</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="typeNameLabel">IDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDataset.html#getErrors--">getErrors</a></span>()</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="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-int:A-int:A-int:A-">getSlice</a></span>(<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="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">IDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDataset.html#getSlice-int:A-int:A-int:A-">getSlice</a></span>(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="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-int:A-int:A-int:A-">getSlice</a></span>(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="typeNameLabel">IDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">IDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">IDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDataset.html#getSliceView-int:A-int:A-int:A-">getSliceView</a></span>(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="typeNameLabel">IDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">getSliceView</a></span>(<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="typeNameLabel">IDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">getSliceView</a></span>(<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="typeNameLabel">IDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDataset.html#getTransposedView-int...-">getTransposedView</a></span>(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="typeNameLabel">IDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDataset.html#squeeze--">squeeze</a></span>()</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="typeNameLabel">IDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDataset.html#squeeze-boolean-">squeeze</a></span>(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="typeNameLabel">IDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDataset.html#squeezeEnds--">squeezeEnds</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#allTrue-org.eclipse.january.dataset.IDataset-int-">allTrue</a></span>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+       int&nbsp;axis)</code>
+<div class="block">Test if all items along given axis are true in the input dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#anyTrue-org.eclipse.january.dataset.IDataset-int-">anyTrue</a></span>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+       int&nbsp;axis)</code>
+<div class="block">Test if any items along given axis are true in the input dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#append-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.IDataset-int-">append</a></span>(<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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-java.lang.Class-org.eclipse.january.dataset.IDataset-">cast</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-org.eclipse.january.dataset.IDataset-boolean-int-int-">cast</a></span>(<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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-java.lang.Class-org.eclipse.january.dataset.IDataset-"><code>DatasetUtils.cast(Class, IDataset)</code></a></span></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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-org.eclipse.january.dataset.IDataset-int-">cast</a></span>(<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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-java.lang.Class-org.eclipse.january.dataset.IDataset-"><code>DatasetUtils.cast(Class, IDataset)</code></a></span></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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#cast-int-java.lang.Class-org.eclipse.january.dataset.IDataset-boolean-">cast</a></span>(int&nbsp;isize,
+    <a href="https://docs.oracle.com/javase/8/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,
+    boolean&nbsp;repeat)</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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#concatenate-org.eclipse.january.dataset.IDataset:A-int-">concatenate</a></span>(<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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#convertToDataset-org.eclipse.january.dataset.IDataset-">convertToDataset</a></span>(<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="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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#copy-java.lang.Class-org.eclipse.january.dataset.IDataset-">copy</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#copy-org.eclipse.january.dataset.IDataset-int-">copy</a></span>(<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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Please use the class-based methods in DatasetUtils,
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#copy-java.lang.Class-org.eclipse.january.dataset.IDataset-"><code>DatasetUtils.copy(Class, IDataset)</code></a></span></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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#extract-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.IDataset-">extract</a></span>(<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 double</code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#getBilinear-org.eclipse.january.dataset.IDataset-double-double-">getBilinear</a></span>(<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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-double-double-"><code>Maths.interpolate(Dataset, double, double)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#getBilinear-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.IDataset-double-double-">getBilinear</a></span>(<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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-double-double-"><code>Maths.interpolate(Dataset, Dataset, double, double)</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#getLinear-org.eclipse.january.dataset.IDataset-double-">getLinear</a></span>(<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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-double-"><code>Maths.interpolate(Dataset, double)</code></a></span></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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IDataset-java.lang.Number-java.lang.Number-">interpolate</a></span>(<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/8/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/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;right)</code>
+<div class="block">Linearly interpolate values at points in a 1D dataset corresponding to
+ given coordinates.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#makeUnsigned-org.eclipse.january.dataset.IDataset-">makeUnsigned</a></span>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a)</code>
+<div class="block">Make a dataset unsigned by promoting it to a wider dataset type and unwrapping the signs
+ of its contents</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#makeUnsigned-org.eclipse.january.dataset.IDataset-boolean-">makeUnsigned</a></span>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+            boolean&nbsp;check)</code>
+<div class="block">Make a dataset unsigned by promoting it to a wider dataset type and unwrapping the signs
+ of its contents</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#serializeDataset-org.eclipse.january.dataset.IDataset-">serializeDataset</a></span>(<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="typeNameLabel">LazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSlice</a></span>(<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="typeNameLabel">ILazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-int:A-int:A-int:A-">setSlice</a></span>(<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="typeNameLabel">LazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-int:A-int:A-int:A-">setSlice</a></span>(<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="typeNameLabel">ILazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSlice</a></span>(<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="typeNameLabel">LazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSlice</a></span>(<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="typeNameLabel">ILazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSliceSync-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSliceSync</a></span>(<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"><span class="typeNameLabel">LazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSliceSync-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSliceSync</a></span>(<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>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#swapAxes-org.eclipse.january.dataset.IDataset-int-int-">swapAxes</a></span>(<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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#tile-org.eclipse.january.dataset.IDataset-int...-">tile</a></span>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+    int...&nbsp;reps)</code>
+<div class="block">Construct a dataset that contains the original dataset repeated the number
+ of times in each axis given by corresponding entries in the reps array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#transpose-org.eclipse.january.dataset.IDataset-int...-">transpose</a></span>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+         int...&nbsp;axes)</code>
+<div class="block">Permute copy of dataset's axes so that given order is old order:</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">RunningAverage.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RunningAverage.html#update-org.eclipse.january.dataset.IDataset-">update</a></span>(<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 class="useSummary" 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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#add-java.util.Collection-boolean-">add</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CollectionStats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CollectionStats.html#mean-java.util.List-">mean</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CollectionStats.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CollectionStats.html#median-java.util.List-">median</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Maths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Maths.html#multiply-java.util.Collection-boolean-">multiply</a></span>(<a href="https://docs.oracle.com/javase/8/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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RunningAverage.html#RunningAverage-org.eclipse.january.dataset.IDataset-">RunningAverage</a></span>(<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 class="useSummary" 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="typeNameLabel">ILazyLoader.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/io/ILazyLoader.html#getDataset-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getDataset</a></span>(<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 class="useSummary" 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="typeNameLabel">ILazySaver.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/io/ILazySaver.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSlice</a></span>(<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="typeNameLabel">ILazyAsyncSaver.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/io/ILazyAsyncSaver.html#setSliceAsync-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSliceAsync</a></span>(<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-org.eclipse.january.dataset.IDataset-org.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 class="useSummary" 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="typeNameLabel">MaskMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/MaskMetadata.html#getMask--">getMask</a></span>()</code>
+<div class="block">Get mask</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">MaskMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/MaskMetadata.html#initialize-org.eclipse.january.dataset.IDataset-">initialize</a></span>(<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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IDatasetChangeChecker.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IDatasetChangeChecker.html
new file mode 100644
index 0000000..6691c7b
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IDatasetChangeChecker.html
@@ -0,0 +1,202 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.dataset.IDatasetChangeChecker (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShapeChangeChecker.html" title="class in org.eclipse.january.dataset">ShapeChangeChecker</a></span></code>
+<div class="block">Checks whether shape has changed between waits.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">LazyDynamicDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#checker">checker</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">LazyDynamicDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#startUpdateChecker-int-org.eclipse.january.dataset.IDatasetChangeChecker-">startUpdateChecker</a></span>(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="typeNameLabel">IDynamicShape.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDynamicShape.html#startUpdateChecker-int-org.eclipse.january.dataset.IDatasetChangeChecker-">startUpdateChecker</a></span>(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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IDatasetConnector.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IDatasetConnector.html
new file mode 100644
index 0000000..93fcdfa
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IDatasetConnector.html
@@ -0,0 +1,168 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.dataset.IDatasetConnector (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">IRemoteData.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IRemoteData.html#createRemoteDataset-java.lang.String-">createRemoteDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IDynamicDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IDynamicDataset.html
new file mode 100644
index 0000000..aa6b93c
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IDynamicDataset.html
@@ -0,0 +1,187 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.dataset.IDynamicDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></span></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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IDynamicShape.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IDynamicShape.html
new file mode 100644
index 0000000..7f11fbc
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IDynamicShape.html
@@ -0,0 +1,200 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.dataset.IDynamicShape (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset">IDatasetConnector</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset">IDynamicDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></span></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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IFileConnection.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IFileConnection.html
new file mode 100644
index 0000000..3446c15
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IFileConnection.html
@@ -0,0 +1,176 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.dataset.IFileConnection (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset">IDatasetConnector</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IRemoteData.html" title="interface in org.eclipse.january.dataset">IRemoteData</a></span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ILazyDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ILazyDataset.html
new file mode 100644
index 0000000..e1a868b
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ILazyDataset.html
@@ -0,0 +1,776 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.dataset.ILazyDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a></span></code>
+<div class="block">Interface for a dataset containing <a href="https://docs.oracle.com/javase/8/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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset">IDynamicDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></span></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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></span></code>
+<div class="block">Generic container class for data</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></span></code>
+<div class="block">Extend dataset for String values // PRIM_TYPE</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#clone--">clone</a></span>()</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="typeNameLabel">LazyDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable-java.io.Serializable-boolean-">createFromSerializable</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">LazyDynamicDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#getDataset--">getDataset</a></span>()</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="typeNameLabel">IDynamicShape.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDynamicShape.html#getDataset--">getDataset</a></span>()</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="typeNameLabel">LazyDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrors--">getErrors</a></span>()</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="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getErrors--">getErrors</a></span>()</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="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getErrors--">getErrors</a></span>()</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="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView-int:A-int:A-int:A-">getSliceView</a></span>(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="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">getSliceView</a></span>(<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="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">getSliceView</a></span>(<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="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getTransposedView-int...-">getTransposedView</a></span>(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="typeNameLabel">Random.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Random.html#lazyRand-int...-">lazyRand</a></span>(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="typeNameLabel">Random.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Random.html#lazyRand-int-java.lang.String-int...-">lazyRand</a></span>(int&nbsp;dtype,
+        <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Random.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Random.html#lazyRand-java.lang.String-int...-">lazyRand</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds--">squeezeEnds</a></span>()</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="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#squeezeEnds--">squeezeEnds</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#calcShapes-boolean-org.eclipse.january.dataset.ILazyDataset...-">calcShapes</a></span>(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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#checkCompatibility-org.eclipse.january.dataset.ILazyDataset-">checkCompatibility</a></span>(<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="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#checkCompatibility-org.eclipse.january.dataset.ILazyDataset-">checkCompatibility</a></span>(<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>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">ShapeUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShapeUtils.html#checkCompatibility-org.eclipse.january.dataset.ILazyDataset-org.eclipse.january.dataset.ILazyDataset-">checkCompatibility</a></span>(<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="typeNameLabel">SliceND.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/SliceND.html#createSlice-org.eclipse.january.dataset.ILazyDataset-int:A-int:A-">createSlice</a></span>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+           int[]&nbsp;start,
+           int[]&nbsp;stop)</code>
+<div class="block">Creats SliceND from dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SliceND.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/SliceND.html#createSlice-org.eclipse.january.dataset.ILazyDataset-int:A-int:A-int:A-">createSlice</a></span>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+           int[]&nbsp;start,
+           int[]&nbsp;stop,
+           int[]&nbsp;step)</code>
+<div class="block">Creating SliceND from dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">DTypeUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DTypeUtils.html#getDatasetName-org.eclipse.january.dataset.ILazyDataset-">getDatasetName</a></span>(<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="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><span class="typeNameLabel">DTypeUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DTypeUtils.html#getDType-org.eclipse.january.dataset.ILazyDataset-">getDType</a></span>(<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="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">DTypeUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DTypeUtils.html#getDTypeName-org.eclipse.january.dataset.ILazyDataset-">getDTypeName</a></span>(<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="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><span class="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getMaxSliceLength-org.eclipse.january.dataset.ILazyDataset-int-">getMaxSliceLength</a></span>(<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>protected static <a href="https://docs.oracle.com/javase/8/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/8/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/8/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="typeNameLabel">LazyDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</a></span>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;a,
+              boolean&nbsp;clone)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#isCompatibleWith-org.eclipse.january.dataset.ILazyDataset-">isCompatibleWith</a></span>(<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="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#isCompatibleWith-org.eclipse.january.dataset.ILazyDataset-">isCompatibleWith</a></span>(<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>static boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">InterfaceUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterfaceUtils.html#isElemental-org.eclipse.january.dataset.ILazyDataset-">isElemental</a></span>(<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 boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">InterfaceUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterfaceUtils.html#isFloating-org.eclipse.january.dataset.ILazyDataset-">isFloating</a></span>(<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="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">InterfaceUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/InterfaceUtils.html#isInteger-org.eclipse.january.dataset.ILazyDataset-">isInteger</a></span>(<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="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LazyMaths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#max-org.eclipse.january.dataset.ILazyDataset-int...-">max</a></span>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+   int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LazyMaths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#mean-org.eclipse.january.dataset.ILazyDataset-int...-">mean</a></span>(<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="typeNameLabel">LazyMaths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#mean-int-int-org.eclipse.january.dataset.ILazyDataset-int...-">mean</a></span>(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="typeNameLabel">LazyMaths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#min-org.eclipse.january.dataset.ILazyDataset-int...-">min</a></span>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+   int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LazyMaths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#product-org.eclipse.january.dataset.ILazyDataset-int-">product</a></span>(<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>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ShapeChangeChecker.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShapeChangeChecker.html#setDataset-org.eclipse.january.dataset.ILazyDataset-">setDataset</a></span>(<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="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">IDatasetChangeChecker.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html#setDataset-org.eclipse.january.dataset.ILazyDataset-">setDataset</a></span>(<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="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#setShapeToOriginalRank-org.eclipse.january.dataset.ILazyDataset-int:A-int...-">setShapeToOriginalRank</a></span>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;a,
+                      int[]&nbsp;originalShape,
+                      int...&nbsp;axes)</code>
+<div class="block">Set shape to keep original rank</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#sliceAndConvertLazyDataset-org.eclipse.january.dataset.ILazyDataset-">sliceAndConvertLazyDataset</a></span>(<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="typeNameLabel">LazyMaths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#sum-org.eclipse.january.dataset.ILazyDataset-boolean-int...-">sum</a></span>(<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="typeNameLabel">LazyMaths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#sum-org.eclipse.january.dataset.ILazyDataset-int...-">sum</a></span>(<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="typeNameLabel">LazyMaths.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#sum-org.eclipse.january.dataset.ILazyDataset-int-">sum</a></span>(<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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#AggregateDataset-boolean-org.eclipse.january.dataset.ILazyDataset...-">AggregateDataset</a></span>(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 class="useSummary" 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="typeNameLabel">ARPESMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/ARPESMetadata.html#getAnalyserAngles--">getAnalyserAngles</a></span>()</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="typeNameLabel">AxesMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/AxesMetadata.html#getAxes--">getAxes</a></span>()</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="typeNameLabel">AxesMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/AxesMetadata.html#getAxis-int-">getAxis</a></span>(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="typeNameLabel">ARPESMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/ARPESMetadata.html#getAzimuthalAngles--">getAzimuthalAngles</a></span>()</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="typeNameLabel">ARPESMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/ARPESMetadata.html#getBindingEnergies--">getBindingEnergies</a></span>()</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="typeNameLabel">ARPESMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/ARPESMetadata.html#getEnergyAxisOffset--">getEnergyAxisOffset</a></span>()</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="typeNameLabel">ErrorMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/ErrorMetadata.html#getError--">getError</a></span>()</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="typeNameLabel">ARPESMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/ARPESMetadata.html#getKineticEnergies--">getKineticEnergies</a></span>()</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="typeNameLabel">OriginMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/OriginMetadata.html#getParent--">getParent</a></span>()</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="typeNameLabel">ARPESMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/ARPESMetadata.html#getPhotoelectronMomentum--">getPhotoelectronMomentum</a></span>()</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="typeNameLabel">ARPESMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/ARPESMetadata.html#getPolarAngles--">getPolarAngles</a></span>()</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="typeNameLabel">ARPESMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/ARPESMetadata.html#getTiltAngles--">getTiltAngles</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">AxesMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/AxesMetadata.html#addAxis-int-org.eclipse.january.dataset.ILazyDataset-">addAxis</a></span>(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">Add axis data to given dimension.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">AxesMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/AxesMetadata.html#addAxis-int-org.eclipse.january.dataset.ILazyDataset-int...-">addAxis</a></span>(int&nbsp;primaryAxisDim,
+       <a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;axisData,
+       int...&nbsp;dimMapping)</code>
+<div class="block">Add axis data to given dimension.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ErrorMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/ErrorMetadata.html#initialize-org.eclipse.january.dataset.ILazyDataset-">initialize</a></span>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;error)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">OriginMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/OriginMetadata.html#initialize-org.eclipse.january.dataset.ILazyDataset-org.eclipse.january.dataset.Slice:A-int:A-java.lang.String-java.lang.String-">initialize</a></span>(<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/8/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/8/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="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">AxesMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/AxesMetadata.html#setAxis-int-org.eclipse.january.dataset.ILazyDataset...-">setAxis</a></span>(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="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ErrorMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/ErrorMetadata.html#setError-org.eclipse.january.dataset.ILazyDataset-">setError</a></span>(<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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ILazyWriteableDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ILazyWriteableDataset.html
new file mode 100644
index 0000000..481fc7b
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ILazyWriteableDataset.html
@@ -0,0 +1,168 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.dataset.ILazyWriteableDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IMetadataProvider.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IMetadataProvider.html
new file mode 100644
index 0000000..d20f42b
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IMetadataProvider.html
@@ -0,0 +1,385 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.dataset.IMetadataProvider (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a></span></code>
+<div class="block">Interface for a dataset containing <a href="https://docs.oracle.com/javase/8/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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset">IDynamicDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></span></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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></span></code>
+<div class="block">Generic container class for data</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IOperation.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IOperation.html
new file mode 100644
index 0000000..481ffdf
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IOperation.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 (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.dataset.IOperation (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a></span></code>
+<div class="block">Interface to represent a unary operation for implementations over different output domains</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></span></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:A-double-double-double-double-"><code>BinaryOperation.Stub.complexOperate(double[], double, double, double, double)</code></a>,
+  <a href="../../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#toString-java.lang.String-java.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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset">Operations.Addition</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Operations.Division</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset">Operations.DivisionTowardsFloor</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset">Operations.DivisionWithZero</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset">Operations.Exponentiation</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset">Operations.Maximum</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset">Operations.Minimum</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset">Operations.Multiplication</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset">Operations.Negation</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset">Operations.Remainder</a></span></code>
+<div class="block">Remainder</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset">Operations.Subtraction</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></span></code>
+<div class="block">Use given value if <code>a &gt; b</code> else use a</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfEqualTo</a></span></code>
+<div class="block">Use given value if <code>a == b</code> else use a</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThan</a></span></code>
+<div class="block">Use given value if <code>a &gt; b</code> else use a</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThanOrEqualTo</a></span></code>
+<div class="block">Use given value if <code>a &gt;= b</code> else use a</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThan</a></span></code>
+<div class="block">Use given value if <code>a &lt; b</code> else use a</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThanOrEqualTo</a></span></code>
+<div class="block">Use given value if <code>a &lt;= b</code> else use a</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset">UnaryOperation.Stub</a></span></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:A-double-double-"><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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IRemoteData.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IRemoteData.html
new file mode 100644
index 0000000..78de16f
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IRemoteData.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.dataset.IRemoteData (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IndexIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IndexIterator.html
new file mode 100644
index 0000000..a59cc27
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IndexIterator.html
@@ -0,0 +1,543 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.IndexIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset">BooleanBroadcastIterator</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset">BooleanContiguousIterator</a></span></code>
+<div class="block">Class to run over a pair of contiguous datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></span></code>
+<div class="block">Base class for boolean iterators for pairs of dataset where the second dataset could be broadcast to the first and
+ is used to select where {<a href="../../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext--"><code>hasNext()</code></a> returns true.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset">BooleanNullIterator</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></span></code>
+<div class="block">Base class for all broadcast iterators.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastPairIterator.html" title="class in org.eclipse.january.dataset">BroadcastPairIterator</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset">BroadcastSelfIterator</a></span></code>
+<div class="block">Base class for broadcast iterators where the second dataset could be broadcast to the first
+ and it is also read into either bLong or bDouble fields.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset">BroadcastSingleIterator</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ContiguousIterator.html" title="class in org.eclipse.january.dataset">ContiguousIterator</a></span></code>
+<div class="block">Class to run over contiguous datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ContiguousIteratorWithPosition.html" title="class in org.eclipse.january.dataset">ContiguousIteratorWithPosition</a></span></code>
+<div class="block">Class to run over contiguous datasets and keep track of position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ContiguousPairIterator.html" title="class in org.eclipse.january.dataset">ContiguousPairIterator</a></span></code>
+<div class="block">Class to run over a pair of contiguous datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ContiguousSingleIterator.html" title="class in org.eclipse.january.dataset">ContiguousSingleIterator</a></span></code>
+<div class="block">Class to run over a pair of contiguous datasets with only the second dataset read</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerIterator.html" title="class in org.eclipse.january.dataset">IntegerIterator</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegersIterator.html" title="class in org.eclipse.january.dataset">IntegersIterator</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset">NullIterator</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">PositionIterator</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset">SingleInputBroadcastIterator</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/SingleItemIterator.html" title="class in org.eclipse.january.dataset">SingleItemIterator</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></span></code>
+<div class="block">The <code>SliceIterator</code> class is use to run over a Slice of a Dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset">SliceNDIterator</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset">StrideIterator</a></span></code>
+<div class="block">Class to run over a contiguous dataset using strides</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator--">getIterator</a></span>()</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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getIterator--">getIterator</a></span>()</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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator-boolean-">getIterator</a></span>(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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getIterator-boolean-">getIterator</a></span>(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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getIterator-boolean-">getIterator</a></span>(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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getIterator-int-">getIterator</a></span>(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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator-int:A-int:A-int:A-">getSliceIterator</a></span>(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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator-int:A-int:A-int:A-">getSliceIterator</a></span>(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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator-org.eclipse.january.dataset.SliceND-">getSliceIterator</a></span>(<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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceIterator-org.eclipse.january.dataset.SliceND-">getSliceIterator</a></span>(<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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator-org.eclipse.january.dataset.SliceND-">getSliceIterator</a></span>(<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 class="useSummary" 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="typeNameLabel">FloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">ShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">ByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">LongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">ObjectDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">StringDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">DoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">IntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">BooleanDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#fillDataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.IndexIterator-">fillDataset</a></span>(<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/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ComplexDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+        <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+        <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ComplexFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">StringDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+        <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+        <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">IntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">BooleanDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IntegerDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IntegerDataset.html
new file mode 100644
index 0000000..d2bedd1
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IntegerDataset.html
@@ -0,0 +1,386 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.IntegerDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax-int-boolean...-">argMax</a></span>(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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMax-int-boolean...-">argMax</a></span>(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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin-int-boolean...-">argMin</a></span>(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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMin-int-boolean...-">argMin</a></span>(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="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#asNonCompoundDataset-boolean-">asNonCompoundDataset</a></span>(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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#calcIndexesFromPositions-java.util.List-int:A-int...-">calcIndexesFromPositions</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">IntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#clone--">clone</a></span>()</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="typeNameLabel">IntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#findFirstOccurrences-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">findFirstOccurrences</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#findIndexesForValues-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">findIndexesForValues</a></span>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.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="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getElements-int-">getElements</a></span>(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="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getElementsView-int-">getElementsView</a></span>(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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getIndices--">getIndices</a></span>()</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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getIndices--">getIndices</a></span>()</code>
+<div class="block">Generate an index dataset for current 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="typeNameLabel">IntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">IntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#getUniqueItems--">getUniqueItems</a></span>()</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="typeNameLabel">IntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#getView-boolean-">getView</a></span>(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="typeNameLabel">IntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">IntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">IntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#ifloor--">ifloor</a></span>()</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="typeNameLabel">IntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#indexSort-org.eclipse.january.dataset.Dataset-java.lang.Integer-">indexSort</a></span>(<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/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>
+<div class="block">Indirectly sort along given axis</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#indices-int...-">indices</a></span>(int...&nbsp;shape)</code>
+<div class="block">Generate an index dataset for given dataset where sub-datasets contain index values</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">IntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">IntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">IntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Random.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Random.html#poisson-double-int...-">poisson</a></span>(double&nbsp;lam,
+       int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Random.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Random.html#randint-int-int-int:A-">randint</a></span>(int&nbsp;low,
+       int&nbsp;high,
+       int[]&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Random.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Random.html#random_integers-int-int-int:A-">random_integers</a></span>(int&nbsp;low,
+               int&nbsp;high,
+               int[]&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">IntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">IntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">IntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">IntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+        <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">IntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#sort-java.lang.Integer-">sort</a></span>(<a href="https://docs.oracle.com/javase/8/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 class="useSummary" 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/8/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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#calcPositionsFromIndexes-org.eclipse.january.dataset.Dataset-int:A-">calcPositionsFromIndexes</a></span>(<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/8/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="typeNameLabel">Comparisons.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#nonZero-org.eclipse.january.dataset.Dataset-">nonZero</a></span>(<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 class="useSummary" 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="typeNameLabel">DatasetUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#choose-org.eclipse.january.dataset.IntegerDataset-java.lang.Object:A-boolean-boolean-">choose</a></span>(<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/8/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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getBy1DIndex-org.eclipse.january.dataset.IntegerDataset-">getBy1DIndex</a></span>(<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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBy1DIndex-org.eclipse.january.dataset.IntegerDataset-">getBy1DIndex</a></span>(<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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getBy1DIndex-org.eclipse.january.dataset.IntegerDataset-">getBy1DIndex</a></span>(<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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getBy1DIndex-org.eclipse.january.dataset.IntegerDataset-">getBy1DIndex</a></span>(<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>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IntegerIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IntegerIterator.html
new file mode 100644
index 0000000..d4c2c7f
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IntegerIterator.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.IntegerIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IntegersIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IntegersIterator.html
new file mode 100644
index 0000000..0106824
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/IntegersIterator.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.IntegersIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/InterfaceUtils.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/InterfaceUtils.html
new file mode 100644
index 0000000..46869c5
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/InterfaceUtils.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.InterfaceUtils (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.InterfaceUtils (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/InterfaceUtils.html" target="_top">Frames</a></li>
+<li><a href="InterfaceUtils.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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.InterfaceUtils" class="title">Uses of Class<br>org.eclipse.january.dataset.InterfaceUtils</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.InterfaceUtils</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/InterfaceUtils.html" target="_top">Frames</a></li>
+<li><a href="InterfaceUtils.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/InterpolatorUtils.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/InterpolatorUtils.html
new file mode 100644
index 0000000..aed2db9
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/InterpolatorUtils.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.InterpolatorUtils (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/LazyDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/LazyDataset.html
new file mode 100644
index 0000000..f0782c8
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/LazyDataset.html
@@ -0,0 +1,213 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.LazyDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></span></code>
+<div class="block">Subclass of lazy dataset that allows setting slices</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#clone--">clone</a></span>()</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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#createLazyDataset-org.eclipse.january.dataset.Dataset-">createLazyDataset</a></span>(<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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSliceView-int:A-int:A-int:A-">getSliceView</a></span>(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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">getSliceView</a></span>(<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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">getSliceView</a></span>(<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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getTransposedView-int...-">getTransposedView</a></span>(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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#squeezeEnds--">squeezeEnds</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/LazyDatasetBase.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/LazyDatasetBase.html
new file mode 100644
index 0000000..cc9a283
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/LazyDatasetBase.html
@@ -0,0 +1,342 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.LazyDatasetBase (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></span></code>
+<div class="block">Generic container class for data</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></span></code>
+<div class="block">Extend dataset for String values // PRIM_TYPE</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">LazyDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clone--">clone</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/LazyDynamicDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/LazyDynamicDataset.html
new file mode 100644
index 0000000..8cfae6d
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/LazyDynamicDataset.html
@@ -0,0 +1,192 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.LazyDynamicDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></span></code>
+<div class="block">Subclass of lazy dataset that allows setting slices</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">LazyDynamicDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#clone--">clone</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#LazyDynamicDataset-org.eclipse.january.dataset.LazyDynamicDataset-">LazyDynamicDataset</a></span>(<a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a>&nbsp;other)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/LazyMaths.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/LazyMaths.html
new file mode 100644
index 0000000..33cc037
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/LazyMaths.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.LazyMaths (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/LazyWriteableDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/LazyWriteableDataset.html
new file mode 100644
index 0000000..32366a4
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/LazyWriteableDataset.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 (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.LazyWriteableDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">LazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#clone--">clone</a></span>()</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="typeNameLabel">LazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#createLazyDataset-org.eclipse.january.dataset.Dataset-">createLazyDataset</a></span>(<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="typeNameLabel">LazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#createLazyDataset-org.eclipse.january.dataset.Dataset-int:A-">createLazyDataset</a></span>(<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="typeNameLabel">LazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#getSliceView-int:A-int:A-int:A-">getSliceView</a></span>(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="typeNameLabel">LazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">getSliceView</a></span>(<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="typeNameLabel">LazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">getSliceView</a></span>(<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="typeNameLabel">LazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#getTransposedView-int...-">getTransposedView</a></span>(int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#LazyWriteableDataset-org.eclipse.january.dataset.LazyWriteableDataset-">LazyWriteableDataset</a></span>(<a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a>&nbsp;other)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/LinearAlgebra.NormOrder.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/LinearAlgebra.NormOrder.html
new file mode 100644
index 0000000..8a7aa21
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/LinearAlgebra.NormOrder.html
@@ -0,0 +1,189 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        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)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">LinearAlgebra.NormOrder.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">LinearAlgebra.NormOrder.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html#values--">values</a></span>()</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 class="useSummary" 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="typeNameLabel">LinearAlgebra.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#norm-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.LinearAlgebra.NormOrder-">norm</a></span>(<a 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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/LinearAlgebra.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/LinearAlgebra.html
new file mode 100644
index 0000000..aef7465
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/LinearAlgebra.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.LinearAlgebra (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/LongDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/LongDataset.html
new file mode 100644
index 0000000..9e17e9a
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/LongDataset.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 (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.LongDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#asNonCompoundDataset-boolean-">asNonCompoundDataset</a></span>(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="typeNameLabel">LongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#clone--">clone</a></span>()</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="typeNameLabel">LongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getElements-int-">getElements</a></span>(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="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getElementsView-int-">getElementsView</a></span>(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="typeNameLabel">LongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">LongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#getUniqueItems--">getUniqueItems</a></span>()</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="typeNameLabel">LongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#getView-boolean-">getView</a></span>(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="typeNameLabel">LongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">LongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">LongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#ifloor--">ifloor</a></span>()</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="typeNameLabel">LongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">LongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">LongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">LongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">LongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">LongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">LongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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="typeNameLabel">LongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">LongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#sort-java.lang.Integer-">sort</a></span>(<a href="https://docs.oracle.com/javase/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Maths.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Maths.html
new file mode 100644
index 0000000..d11d6b9
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Maths.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.Maths (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/NullIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/NullIterator.html
new file mode 100644
index 0000000..85049ac
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/NullIterator.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.NullIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ObjectDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ObjectDataset.html
new file mode 100644
index 0000000..0dfcf5b
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ObjectDataset.html
@@ -0,0 +1,202 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.ObjectDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">ObjectDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html#clone--">clone</a></span>()</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="typeNameLabel">ObjectDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">ObjectDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html#getView-boolean-">getView</a></span>(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="typeNameLabel">ObjectDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ObjectDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ObjectDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html#ifloor--">ifloor</a></span>()</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="typeNameLabel">ObjectDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ObjectDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ObjectDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ObjectDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ObjectDatasetBase.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ObjectDatasetBase.html
new file mode 100644
index 0000000..ddb080d
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ObjectDatasetBase.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 (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.ObjectDatasetBase (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></span></code>
+<div class="block">Extend dataset for objects</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">ObjectDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#clone--">clone</a></span>()</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="typeNameLabel">ObjectDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ObjectDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">ObjectDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getUniqueItems--">getUniqueItems</a></span>()</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="typeNameLabel">ObjectDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getView-boolean-">getView</a></span>(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="typeNameLabel">ObjectDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ObjectDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ObjectDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#ifloor--">ifloor</a></span>()</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="typeNameLabel">ObjectDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ObjectDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ObjectDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ObjectDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ObjectDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">ObjectDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">ObjectDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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="typeNameLabel">ObjectDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">ObjectDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#sort-java.lang.Integer-">sort</a></span>(<a href="https://docs.oracle.com/javase/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.Addition.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.Addition.html
new file mode 100644
index 0000000..ce76be7
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.Addition.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        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)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.Division.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.Division.html
new file mode 100644
index 0000000..7e7cc99
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.Division.html
@@ -0,0 +1,176 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        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)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset">Operations.DivisionTowardsFloor</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset">Operations.DivisionWithZero</a></span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.DivisionTowardsFloor.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.DivisionTowardsFloor.html
new file mode 100644
index 0000000..c86e33a
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.DivisionTowardsFloor.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        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)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.DivisionWithZero.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.DivisionWithZero.html
new file mode 100644
index 0000000..5bb5276
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.DivisionWithZero.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        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)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.Exponentiation.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.Exponentiation.html
new file mode 100644
index 0000000..e2bac20
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.Exponentiation.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        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)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.Maximum.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.Maximum.html
new file mode 100644
index 0000000..95fecd0
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.Maximum.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        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)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.Minimum.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.Minimum.html
new file mode 100644
index 0000000..14fa7a2
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.Minimum.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        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)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.Multiplication.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.Multiplication.html
new file mode 100644
index 0000000..e2c8ec8
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.Multiplication.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        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)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.Negation.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.Negation.html
new file mode 100644
index 0000000..e13437f
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.Negation.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        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)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.Remainder.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.Remainder.html
new file mode 100644
index 0000000..dcfdcb2
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.Remainder.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        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)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.Subtraction.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.Subtraction.html
new file mode 100644
index 0000000..15bded6
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.Subtraction.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        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)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.UseBase.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.UseBase.html
new file mode 100644
index 0000000..a98dc25
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.UseBase.html
@@ -0,0 +1,192 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        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)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfEqualTo</a></span></code>
+<div class="block">Use given value if <code>a == b</code> else use a</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThan</a></span></code>
+<div class="block">Use given value if <code>a &gt; b</code> else use a</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThanOrEqualTo</a></span></code>
+<div class="block">Use given value if <code>a &gt;= b</code> else use a</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThan</a></span></code>
+<div class="block">Use given value if <code>a &lt; b</code> else use a</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThanOrEqualTo</a></span></code>
+<div class="block">Use given value if <code>a &lt;= b</code> 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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.UseIfEqualTo.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.UseIfEqualTo.html
new file mode 100644
index 0000000..4511b2e
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.UseIfEqualTo.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        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)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.UseIfGreaterThan.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.UseIfGreaterThan.html
new file mode 100644
index 0000000..2cf0760
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.UseIfGreaterThan.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        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)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.UseIfGreaterThanOrEqualTo.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.UseIfGreaterThanOrEqualTo.html
new file mode 100644
index 0000000..e0e724b
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.UseIfGreaterThanOrEqualTo.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        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)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.UseIfLessThan.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.UseIfLessThan.html
new file mode 100644
index 0000000..876f629
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.UseIfLessThan.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        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)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.UseIfLessThanOrEqualTo.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.UseIfLessThanOrEqualTo.html
new file mode 100644
index 0000000..9dab135
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.UseIfLessThanOrEqualTo.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        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)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.html
new file mode 100644
index 0000000..2e97919
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Operations.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.Operations (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Outliers.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Outliers.html
new file mode 100644
index 0000000..42d1f75
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Outliers.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.Outliers (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/PositionIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/PositionIterator.html
new file mode 100644
index 0000000..03ffb45
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/PositionIterator.html
@@ -0,0 +1,170 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.PositionIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getPositionIterator-int...-">getPositionIterator</a></span>(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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getPositionIterator-int...-">getPositionIterator</a></span>(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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/RGBDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/RGBDataset.html
new file mode 100644
index 0000000..c2153ca
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/RGBDataset.html
@@ -0,0 +1,215 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.RGBDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">RGBDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#clone--">clone</a></span>()</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="typeNameLabel">RGBDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createFromCompoundDataset-org.eclipse.january.dataset.CompoundDataset-">createFromCompoundDataset</a></span>(<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="typeNameLabel">RGBDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createFromHSL-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createFromHSL</a></span>(<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="typeNameLabel">RGBDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createFromHSV-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-org.eclipse.january.dataset.Dataset-">createFromHSV</a></span>(<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="typeNameLabel">RGBDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createFromObject-java.lang.Object-">createFromObject</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">RGBDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">RGBDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#getView-boolean-">getView</a></span>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#RGBDataset-org.eclipse.january.dataset.RGBDataset-">RGBDataset</a></span>(<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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Random.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Random.html
new file mode 100644
index 0000000..ba7adc9
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Random.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.Random (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/RunningAverage.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/RunningAverage.html
new file mode 100644
index 0000000..2b1d41b
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/RunningAverage.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.RunningAverage (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ShapeChangeChecker.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ShapeChangeChecker.html
new file mode 100644
index 0000000..786377e
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ShapeChangeChecker.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.ShapeChangeChecker (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ShapeUtils.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ShapeUtils.html
new file mode 100644
index 0000000..a8a2576
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ShapeUtils.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.ShapeUtils (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ShortDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ShortDataset.html
new file mode 100644
index 0000000..3590998
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/ShortDataset.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 (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.ShortDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#asNonCompoundDataset-boolean-">asNonCompoundDataset</a></span>(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="typeNameLabel">ShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#clone--">clone</a></span>()</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="typeNameLabel">ShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">RGBDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#getBlueView--">getBlueView</a></span>()</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="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getElements-int-">getElements</a></span>(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="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getElementsView-int-">getElementsView</a></span>(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="typeNameLabel">RGBDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#getGreenView--">getGreenView</a></span>()</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="typeNameLabel">RGBDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#getRedView--">getRedView</a></span>()</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="typeNameLabel">ShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">ShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#getUniqueItems--">getUniqueItems</a></span>()</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="typeNameLabel">ShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#getView-boolean-">getView</a></span>(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="typeNameLabel">ShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#ifloor--">ifloor</a></span>()</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="typeNameLabel">ShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">ShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">ShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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="typeNameLabel">ShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">ShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#sort-java.lang.Integer-">sort</a></span>(<a href="https://docs.oracle.com/javase/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/SingleInputBroadcastIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/SingleInputBroadcastIterator.html
new file mode 100644
index 0000000..f3ddbc2
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/SingleInputBroadcastIterator.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.SingleInputBroadcastIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/SingleItemIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/SingleItemIterator.html
new file mode 100644
index 0000000..69feb22
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/SingleItemIterator.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.SingleItemIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Slice.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Slice.html
new file mode 100644
index 0000000..b2d3a26
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Slice.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 (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.Slice (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">Slice.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Slice.html#clone--">clone</a></span>()</code>
+<div class="block">Creates a deep copy of the Slice.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">Slice.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Slice.html#convertFromString-java.lang.String-">convertFromString</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;sliceString)</code>
+<div class="block">Converts string in a Slice array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">SliceND.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/SliceND.html#convertToSlice--">convertToSlice</a></span>()</code>
+<div class="block">Converts to a slice array all the Slices of the SliceND.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">Slice.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Slice.html#convertToSlice-int:A-int:A-int:A-">convertToSlice</a></span>(int[]&nbsp;start,
+              int[]&nbsp;stop,
+              int[]&nbsp;step)</code>
+<div class="block">Converts a set of integer arrays in a slice array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Slice.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Slice.html#flip--">flip</a></span>()</code>
+<div class="block">Flips the Slice direction, after this operation, the slice begins at
+ previous end point, steps in the opposite direction, and finishes at the
+ previous start point.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Slice.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Slice.html#setLength-int-">setLength</a></span>(int&nbsp;length)</code>
+<div class="block">Sets the maximal dimensions length of the Slice.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">Slice.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Slice.html#convertFromSlice-org.eclipse.january.dataset.Slice:A-int:A-int:A-int:A-int:A-">convertFromSlice</a></span>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]&nbsp;slice,
+                int[]&nbsp;shape,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">Populates given start, stop, step arrays from given slice array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Slice.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Slice.html#createString-org.eclipse.january.dataset.Slice...-">createString</a></span>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slices)</code>
+<div class="block">Creates a string representation of slices.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">IDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice-org.eclipse.january.dataset.Slice...-">getSlice</a></span>(<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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">getSliceView</a></span>(<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="typeNameLabel">LazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">getSliceView</a></span>(<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="typeNameLabel">IDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">getSliceView</a></span>(<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/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">getSliceView</a></span>(<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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">getSliceView</a></span>(<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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">getSliceView</a></span>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">getSliceView</a></span>(<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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">getSliceView</a></span>(<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="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSliceView-org.eclipse.january.dataset.Slice...-">getSliceView</a></span>(<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="typeNameLabel">SliceND.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/SliceND.html#setSlice-int-org.eclipse.january.dataset.Slice-">setSlice</a></span>(int&nbsp;i,
+        <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>&nbsp;slice)</code>
+<div class="block">Set slice for given dimension.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.Slice...-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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>
+</tbody>
+</table>
+<table class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/PositionIterator.html#PositionIterator-int:A-org.eclipse.january.dataset.Slice:A-int:A-">PositionIterator</a></span>(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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/SliceND.html#SliceND-int:A-int:A-org.eclipse.january.dataset.Slice...-">SliceND</a></span>(int[]&nbsp;shape,
+       int[]&nbsp;maxShape,
+       <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Construct a nD Slice from an array of 1D slices, if the maxShape is
+ <code>null</code>, it will be set to the maximum shape of the nD Slice.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/SliceND.html#SliceND-int:A-org.eclipse.january.dataset.Slice...-">SliceND</a></span>(int[]&nbsp;shape,
+       <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Construct a nD Slice from an array of 1D slices.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.metadata">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a> in <a href="../../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></h3>
+<table class="useSummary" 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="typeNameLabel">OriginMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/OriginMetadata.html#getSliceFromInput--">getSliceFromInput</a></span>()</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="typeNameLabel">OriginMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/OriginMetadata.html#getSliceInOutput--">getSliceInOutput</a></span>()</code>
+<div class="block">Current slice information.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">OriginMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/OriginMetadata.html#initialize-org.eclipse.january.dataset.ILazyDataset-org.eclipse.january.dataset.Slice:A-int:A-java.lang.String-java.lang.String-">initialize</a></span>(<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/8/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/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/SliceIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/SliceIterator.html
new file mode 100644
index 0000000..9a53026
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/SliceIterator.html
@@ -0,0 +1,296 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.SliceIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset">NullIterator</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset">StrideIterator</a></span></code>
+<div class="block">Class to run over a contiguous dataset using strides</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">getSliceIteratorFromAxes</a></span>(int[]&nbsp;pos,
+                        boolean[]&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes-int:A-boolean:A-">getSliceIteratorFromAxes</a></span>(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>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CompoundLongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">CompoundDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">StringDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">ShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">ComplexDoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">ByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CompoundShortDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">ComplexFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">ObjectDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">LongDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><span class="typeNameLabel">StringDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DoubleDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">RGBDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">CompoundByteDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CompoundIntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">CompoundFloatDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">IntegerDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">BooleanDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">BooleanDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/SliceND.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/SliceND.html
new file mode 100644
index 0000000..3835810
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/SliceND.html
@@ -0,0 +1,548 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.SliceND (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#calcTrueSlice-org.eclipse.january.dataset.SliceND-">calcTrueSlice</a></span>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Calculate absolute 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="typeNameLabel">SliceND.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/SliceND.html#clone--">clone</a></span>()</code>
+<div class="block">Creates a deep copy of the SliceND.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SliceND.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/SliceND.html#createSlice-org.eclipse.january.dataset.ILazyDataset-int:A-int:A-">createSlice</a></span>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+           int[]&nbsp;start,
+           int[]&nbsp;stop)</code>
+<div class="block">Creats SliceND from dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SliceND.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/SliceND.html#createSlice-org.eclipse.january.dataset.ILazyDataset-int:A-int:A-int:A-">createSlice</a></span>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+           int[]&nbsp;start,
+           int[]&nbsp;stop,
+           int[]&nbsp;step)</code>
+<div class="block">Creating SliceND from dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#createSlice-int:A-int:A-int:A-">createSlice</a></span>(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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#createSlice-int:A-int:A-int:A-">createSlice</a></span>(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="typeNameLabel">SliceND.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/SliceND.html#flip--">flip</a></span>()</code>
+<div class="block">Flips slices directions in all dimensions, this means that all slices are
+ beginning at previous end point, steps are in the opposite direction, and
+ finishes are at the previous start point.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SliceND.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/SliceND.html#flip-int-">flip</a></span>(int&nbsp;i)</code>
+<div class="block">Flips the slice direction in given dimension, this means that slice
+ begins at previous end point, steps in the opposite direction, and
+ finishes at the previous start point.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SliceNDIterator.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/SliceNDIterator.html#getCurrentSlice--">getCurrentSlice</a></span>()</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="typeNameLabel">SliceNDIterator.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/SliceNDIterator.html#getOmittedSlice--">getOmittedSlice</a></span>()</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="typeNameLabel">SliceNDIterator.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/SliceNDIterator.html#getOutputSlice--">getOutputSlice</a></span>()</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="typeNameLabel">SliceNDIterator.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/SliceNDIterator.html#getUsedSlice--">getUsedSlice</a></span>()</code>
+<div class="block">Shortened slice where axes are omitted</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#calcTrueSlice-org.eclipse.january.dataset.SliceND-">calcTrueSlice</a></span>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Calculate absolute slice</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-org.eclipse.january.dataset.Dataset-int:A-int:A-">createStrides</a></span>(<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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides-org.eclipse.january.dataset.SliceND-int-int:A-int:A-int-int:A-int:A-">createStrides</a></span>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice,
+             int&nbsp;isize,
+             int[]&nbsp;shape,
+             int[]&nbsp;oStride,
+             int&nbsp;oOffset,
+             int[]&nbsp;stride,
+             int[]&nbsp;offset)</code>
+<div class="block">Create a stride array from slice and dataset information</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">IDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSlice-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice-org.eclipse.january.dataset.SliceND-">getSlice</a></span>(<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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator-org.eclipse.january.dataset.SliceND-">getSliceIterator</a></span>(<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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceIterator-org.eclipse.january.dataset.SliceND-">getSliceIterator</a></span>(<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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator-org.eclipse.january.dataset.SliceND-">getSliceIterator</a></span>(<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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">getSliceView</a></span>(<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/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">getSliceView</a></span>(<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="typeNameLabel">IDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">getSliceView</a></span>(<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"><span class="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">getSliceView</a></span>(<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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">getSliceView</a></span>(<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="typeNameLabel">CompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">getSliceView</a></span>(<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="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">getSliceView</a></span>(<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="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">getSliceView</a></span>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AggregateDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSliceView-org.eclipse.january.dataset.SliceND-">getSliceView</a></span>(<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="typeNameLabel">LazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSlice</a></span>(<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="typeNameLabel">ILazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSlice</a></span>(<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="typeNameLabel">LazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSlice</a></span>(<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><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.SliceND-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Dataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Dataset.html#setSlice-java.lang.Object-org.eclipse.january.dataset.SliceND-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+        <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">This is modelled after the NumPy array slice</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ILazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSliceSync-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSliceSync</a></span>(<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"><span class="typeNameLabel">LazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSliceSync-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSliceSync</a></span>(<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>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">LazyDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata-boolean-org.eclipse.january.dataset.SliceND-">sliceMetadata</a></span>(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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/PositionIterator.html#PositionIterator-int-org.eclipse.january.dataset.SliceND-int...-">PositionIterator</a></span>(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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/PositionIterator.html#PositionIterator-org.eclipse.january.dataset.SliceND-int...-">PositionIterator</a></span>(<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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/SliceIterator.html#SliceIterator-int:A-int-int-org.eclipse.january.dataset.SliceND-">SliceIterator</a></span>(int[]&nbsp;shape,
+             int&nbsp;length,
+             int&nbsp;isize,
+             <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/SliceIterator.html#SliceIterator-int:A-int-org.eclipse.january.dataset.SliceND-">SliceIterator</a></span>(int[]&nbsp;shape,
+             int&nbsp;length,
+             <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/SliceNDIterator.html#SliceNDIterator-org.eclipse.january.dataset.SliceND-int...-">SliceNDIterator</a></span>(<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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StrideIterator.html#StrideIterator-int-int:A-int:A-int-org.eclipse.january.dataset.SliceND-">StrideIterator</a></span>(int&nbsp;isize,
+              int[]&nbsp;shape,
+              int[]&nbsp;strides,
+              int&nbsp;offset,
+              <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.io">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a> in <a href="../../../../../org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a></h3>
+<table class="useSummary" 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="typeNameLabel">ILazyLoader.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/io/ILazyLoader.html#getDataset-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getDataset</a></span>(<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="typeNameLabel">ILazySaver.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/io/ILazySaver.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSlice</a></span>(<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="typeNameLabel">ILazyAsyncSaver.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/io/ILazyAsyncSaver.html#setSliceAsync-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSliceAsync</a></span>(<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-org.eclipse.january.dataset.IDataset-org.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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/SliceNDIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/SliceNDIterator.html
new file mode 100644
index 0000000..f39b3c4
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/SliceNDIterator.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.SliceNDIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Stats.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Stats.html
new file mode 100644
index 0000000..dd50586
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/Stats.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.Stats (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/StrideIterator.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/StrideIterator.html
new file mode 100644
index 0000000..adfd099
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/StrideIterator.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.StrideIterator (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/StringDataset.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/StringDataset.html
new file mode 100644
index 0000000..6c250c2
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/StringDataset.html
@@ -0,0 +1,215 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.StringDataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">StringDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDataset.html#clone--">clone</a></span>()</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="typeNameLabel">StringDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDataset.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">StringDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDataset.html#getView-boolean-">getView</a></span>(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="typeNameLabel">StringDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDataset.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">StringDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDataset.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">StringDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDataset.html#ifloor--">ifloor</a></span>()</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="typeNameLabel">StringDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDataset.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">StringDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDataset.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">StringDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDataset.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">StringDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDataset.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/StringDatasetBase.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/StringDatasetBase.html
new file mode 100644
index 0000000..464f96c
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/StringDatasetBase.html
@@ -0,0 +1,257 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.dataset.StringDatasetBase (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></span></code>
+<div class="block">Extend dataset for objects</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">StringDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#clone--">clone</a></span>()</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="typeNameLabel">StringDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#fill-java.lang.Object-">fill</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">StringDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#getSlice-org.eclipse.january.dataset.SliceIterator-">getSlice</a></span>(<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="typeNameLabel">StringDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#getUniqueItems--">getUniqueItems</a></span>()</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="typeNameLabel">StringDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#getView-boolean-">getView</a></span>(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="typeNameLabel">StringDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#iadd-java.lang.Object-">iadd</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">StringDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#idivide-java.lang.Object-">idivide</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">StringDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#ifloor--">ifloor</a></span>()</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="typeNameLabel">StringDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#imultiply-java.lang.Object-">imultiply</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">StringDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#ipower-java.lang.Object-">ipower</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">StringDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#iremainder-java.lang.Object-">iremainder</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">StringDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#isubtract-java.lang.Object-">isubtract</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">StringDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#setBy1DIndex-java.lang.Object-org.eclipse.january.dataset.Dataset-">setBy1DIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">StringDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#setByBoolean-java.lang.Object-org.eclipse.january.dataset.Dataset-">setByBoolean</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">StringDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#setByIndexes-java.lang.Object-java.lang.Object...-">setByIndexes</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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="typeNameLabel">StringDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#setSlice-java.lang.Object-org.eclipse.january.dataset.IndexIterator-">setSlice</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/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="typeNameLabel">DateDatasetImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/DateDatasetImpl.html#sort-java.lang.Integer-">sort</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">StringDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#sort-java.lang.Integer-">sort</a></span>(<a href="https://docs.oracle.com/javase/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/UnaryOperation.Stub.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/UnaryOperation.Stub.html
new file mode 100644
index 0000000..0c11c1d
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/UnaryOperation.Stub.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        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)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/class-use/UnaryOperation.html b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/UnaryOperation.html
new file mode 100644
index 0000000..0bc31a0
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/class-use/UnaryOperation.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 (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.dataset.UnaryOperation (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset">Operations.Negation</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset">UnaryOperation.Stub</a></span></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:A-double-double-"><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 class="useSummary" 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="typeNameLabel">Operations.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/Operations.html#operate-org.eclipse.january.dataset.UnaryOperation-java.lang.Object-org.eclipse.january.dataset.Dataset-">operate</a></span>(<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/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/package-frame.html b/apidocs/2.3.0/org/eclipse/january/dataset/package-frame.html
new file mode 100644
index 0000000..3910d19
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/package-frame.html
@@ -0,0 +1,138 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</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"><span class="interfaceName">BinaryOperation</span></a></li>
+<li><a href="CompoundDataset.html" title="interface in org.eclipse.january.dataset" target="classFrame"><span class="interfaceName">CompoundDataset</span></a></li>
+<li><a href="Dataset.html" title="interface in org.eclipse.january.dataset" target="classFrame"><span class="interfaceName">Dataset</span></a></li>
+<li><a href="DateDataset.html" title="interface in org.eclipse.january.dataset" target="classFrame"><span class="interfaceName">DateDataset</span></a></li>
+<li><a href="IDataListener.html" title="interface in org.eclipse.january.dataset" target="classFrame"><span class="interfaceName">IDataListener</span></a></li>
+<li><a href="IDataset.html" title="interface in org.eclipse.january.dataset" target="classFrame"><span class="interfaceName">IDataset</span></a></li>
+<li><a href="IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset" target="classFrame"><span class="interfaceName">IDatasetChangeChecker</span></a></li>
+<li><a href="IDatasetConnector.html" title="interface in org.eclipse.january.dataset" target="classFrame"><span class="interfaceName">IDatasetConnector</span></a></li>
+<li><a href="IDynamicDataset.html" title="interface in org.eclipse.january.dataset" target="classFrame"><span class="interfaceName">IDynamicDataset</span></a></li>
+<li><a href="IDynamicShape.html" title="interface in org.eclipse.january.dataset" target="classFrame"><span class="interfaceName">IDynamicShape</span></a></li>
+<li><a href="IFileConnection.html" title="interface in org.eclipse.january.dataset" target="classFrame"><span class="interfaceName">IFileConnection</span></a></li>
+<li><a href="ILazyDataset.html" title="interface in org.eclipse.january.dataset" target="classFrame"><span class="interfaceName">ILazyDataset</span></a></li>
+<li><a href="ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset" target="classFrame"><span class="interfaceName">ILazyWriteableDataset</span></a></li>
+<li><a href="IMetadataProvider.html" title="interface in org.eclipse.january.dataset" target="classFrame"><span class="interfaceName">IMetadataProvider</span></a></li>
+<li><a href="IOperation.html" title="interface in org.eclipse.january.dataset" target="classFrame"><span class="interfaceName">IOperation</span></a></li>
+<li><a href="IRemoteData.html" title="interface in org.eclipse.january.dataset" target="classFrame"><span class="interfaceName">IRemoteData</span></a></li>
+<li><a href="UnaryOperation.html" title="interface in org.eclipse.january.dataset" target="classFrame"><span class="interfaceName">UnaryOperation</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">AbstractCompoundDataset</a></li>
+<li><a href="AbstractDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">AbstractDataset</a></li>
+<li><a href="AggregateDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">AggregateDataset</a></li>
+<li><a href="BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset" target="classFrame">BinaryOperation.Stub</a></li>
+<li><a href="BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BooleanBroadcastIterator</a></li>
+<li><a href="BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BooleanContiguousIterator</a></li>
+<li><a href="BooleanDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">BooleanDataset</a></li>
+<li><a href="BooleanDatasetBase.html" title="class in org.eclipse.january.dataset" target="classFrame">BooleanDatasetBase</a></li>
+<li><a href="BooleanIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BooleanIterator</a></li>
+<li><a href="BooleanNullIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BooleanNullIterator</a></li>
+<li><a href="BroadcastIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BroadcastIterator</a></li>
+<li><a href="BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset" target="classFrame">BroadcastIteratorBase</a></li>
+<li><a href="BroadcastPairIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BroadcastPairIterator</a></li>
+<li><a href="BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BroadcastSelfIterator</a></li>
+<li><a href="BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BroadcastSingleIterator</a></li>
+<li><a href="BroadcastUtils.html" title="class in org.eclipse.january.dataset" target="classFrame">BroadcastUtils</a></li>
+<li><a href="ByteDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">ByteDataset</a></li>
+<li><a href="CollectionStats.html" title="class in org.eclipse.january.dataset" target="classFrame">CollectionStats</a></li>
+<li><a href="Comparisons.html" title="class in org.eclipse.january.dataset" target="classFrame">Comparisons</a></li>
+<li><a href="ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">ComplexDoubleDataset</a></li>
+<li><a href="ComplexFloatDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">ComplexFloatDataset</a></li>
+<li><a href="CompoundByteDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">CompoundByteDataset</a></li>
+<li><a href="CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">CompoundDoubleDataset</a></li>
+<li><a href="CompoundFloatDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">CompoundFloatDataset</a></li>
+<li><a href="CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">CompoundIntegerDataset</a></li>
+<li><a href="CompoundLongDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">CompoundLongDataset</a></li>
+<li><a href="CompoundShortDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">CompoundShortDataset</a></li>
+<li><a href="ContiguousIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">ContiguousIterator</a></li>
+<li><a href="ContiguousIteratorWithPosition.html" title="class in org.eclipse.january.dataset" target="classFrame">ContiguousIteratorWithPosition</a></li>
+<li><a href="ContiguousPairIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">ContiguousPairIterator</a></li>
+<li><a href="ContiguousSingleIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">ContiguousSingleIterator</a></li>
+<li><a href="DataEvent.html" title="class in org.eclipse.january.dataset" target="classFrame">DataEvent</a></li>
+<li><a href="DataListenerDelegate.html" title="class in org.eclipse.january.dataset" target="classFrame">DataListenerDelegate</a></li>
+<li><a href="DatasetFactory.html" title="class in org.eclipse.january.dataset" target="classFrame">DatasetFactory</a></li>
+<li><a href="DatasetUtils.html" title="class in org.eclipse.january.dataset" target="classFrame">DatasetUtils</a></li>
+<li><a href="DateDatasetImpl.html" title="class in org.eclipse.january.dataset" target="classFrame">DateDatasetImpl</a></li>
+<li><a href="DoubleDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">DoubleDataset</a></li>
+<li><a href="DTypeUtils.html" title="class in org.eclipse.january.dataset" target="classFrame">DTypeUtils</a></li>
+<li><a href="FloatDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">FloatDataset</a></li>
+<li><a href="IndexIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">IndexIterator</a></li>
+<li><a href="IntegerDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">IntegerDataset</a></li>
+<li><a href="IntegerIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">IntegerIterator</a></li>
+<li><a href="IntegersIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">IntegersIterator</a></li>
+<li><a href="InterfaceUtils.html" title="class in org.eclipse.january.dataset" target="classFrame">InterfaceUtils</a></li>
+<li><a href="InterpolatorUtils.html" title="class in org.eclipse.january.dataset" target="classFrame">InterpolatorUtils</a></li>
+<li><a href="LazyDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">LazyDataset</a></li>
+<li><a href="LazyDatasetBase.html" title="class in org.eclipse.january.dataset" target="classFrame">LazyDatasetBase</a></li>
+<li><a href="LazyDynamicDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">LazyDynamicDataset</a></li>
+<li><a href="LazyMaths.html" title="class in org.eclipse.january.dataset" target="classFrame">LazyMaths</a></li>
+<li><a href="LazyWriteableDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">LazyWriteableDataset</a></li>
+<li><a href="LinearAlgebra.html" title="class in org.eclipse.january.dataset" target="classFrame">LinearAlgebra</a></li>
+<li><a href="LongDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">LongDataset</a></li>
+<li><a href="Maths.html" title="class in org.eclipse.january.dataset" target="classFrame">Maths</a></li>
+<li><a href="NullIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">NullIterator</a></li>
+<li><a href="ObjectDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">ObjectDataset</a></li>
+<li><a href="ObjectDatasetBase.html" title="class in org.eclipse.january.dataset" target="classFrame">ObjectDatasetBase</a></li>
+<li><a href="Operations.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations</a></li>
+<li><a href="Operations.Addition.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Addition</a></li>
+<li><a href="Operations.Division.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Division</a></li>
+<li><a href="Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.DivisionTowardsFloor</a></li>
+<li><a href="Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.DivisionWithZero</a></li>
+<li><a href="Operations.Exponentiation.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Exponentiation</a></li>
+<li><a href="Operations.Maximum.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Maximum</a></li>
+<li><a href="Operations.Minimum.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Minimum</a></li>
+<li><a href="Operations.Multiplication.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Multiplication</a></li>
+<li><a href="Operations.Negation.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Negation</a></li>
+<li><a href="Operations.Remainder.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Remainder</a></li>
+<li><a href="Operations.Subtraction.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Subtraction</a></li>
+<li><a href="Operations.UseBase.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.UseBase</a></li>
+<li><a href="Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.UseIfEqualTo</a></li>
+<li><a href="Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.UseIfGreaterThan</a></li>
+<li><a href="Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.UseIfGreaterThanOrEqualTo</a></li>
+<li><a href="Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.UseIfLessThan</a></li>
+<li><a href="Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.UseIfLessThanOrEqualTo</a></li>
+<li><a href="Outliers.html" title="class in org.eclipse.january.dataset" target="classFrame">Outliers</a></li>
+<li><a href="PositionIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">PositionIterator</a></li>
+<li><a href="Random.html" title="class in org.eclipse.january.dataset" target="classFrame">Random</a></li>
+<li><a href="RGBDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">RGBDataset</a></li>
+<li><a href="RunningAverage.html" title="class in org.eclipse.january.dataset" target="classFrame">RunningAverage</a></li>
+<li><a href="ShapeChangeChecker.html" title="class in org.eclipse.january.dataset" target="classFrame">ShapeChangeChecker</a></li>
+<li><a href="ShapeUtils.html" title="class in org.eclipse.january.dataset" target="classFrame">ShapeUtils</a></li>
+<li><a href="ShortDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">ShortDataset</a></li>
+<li><a href="SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">SingleInputBroadcastIterator</a></li>
+<li><a href="SingleItemIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">SingleItemIterator</a></li>
+<li><a href="Slice.html" title="class in org.eclipse.january.dataset" target="classFrame">Slice</a></li>
+<li><a href="SliceIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">SliceIterator</a></li>
+<li><a href="SliceND.html" title="class in org.eclipse.january.dataset" target="classFrame">SliceND</a></li>
+<li><a href="SliceNDIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">SliceNDIterator</a></li>
+<li><a href="Stats.html" title="class in org.eclipse.january.dataset" target="classFrame">Stats</a></li>
+<li><a href="StrideIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">StrideIterator</a></li>
+<li><a href="StringDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">StringDataset</a></li>
+<li><a href="StringDatasetBase.html" title="class in org.eclipse.january.dataset" target="classFrame">StringDatasetBase</a></li>
+<li><a href="UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset" target="classFrame">UnaryOperation.Stub</a></li>
+</ul>
+<h2 title="Enums">Enums</h2>
+<ul title="Enums">
+<li><a href="Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset" target="classFrame">Comparisons.Monotonicity</a></li>
+<li><a href="LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset" target="classFrame">LinearAlgebra.NormOrder</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/package-summary.html b/apidocs/2.3.0/org/eclipse/january/dataset/package-summary.html
new file mode 100644
index 0000000..2f88a82
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/package-summary.html
@@ -0,0 +1,834 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.eclipse.january.dataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<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&nbsp;Package</a></li>
+<li><a href="../../../../org/eclipse/january/io/package-summary.html">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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="typeSummary" 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/8/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="typeSummary" 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</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:A-double-double-double-double-"><code>BinaryOperation.Stub.complexOperate(double[], double, double, double, double)</code></a>,
+  <a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#toString-java.lang.String-java.lang.String-"><code>BinaryOperation.Stub.toString(String, String)</code></a></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset">BooleanBroadcastIterator</a></td>
+<td class="colLast">
+<div class="block">Class to run over a pair of datasets in parallel with NumPy broadcasting to promote shapes
+ which have lower rank and outputs to a third dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset">BooleanContiguousIterator</a></td>
+<td class="colLast">
+<div class="block">Class to run over a pair of contiguous datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></td>
+<td class="colLast">
+<div class="block">Extend boolean base dataset for boolean values</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></td>
+<td class="colLast">
+<div class="block">Extend dataset for boolean values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></td>
+<td class="colLast">
+<div class="block">Base class for boolean iterators for pairs of dataset where the second dataset could be broadcast to the first and
+ is used to select where {<a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext--"><code>IndexIterator.hasNext()</code></a> returns true.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset">BooleanNullIterator</a></td>
+<td class="colLast">
+<div class="block">Class to run over a single dataset with NumPy broadcasting to promote shapes
+ which have lower rank and outputs to a second dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></td>
+<td class="colLast">
+<div class="block">Base class for broadcast iterators of pairs with output.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></td>
+<td class="colLast">
+<div class="block">Base class for all broadcast iterators.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/BroadcastPairIterator.html" title="class in org.eclipse.january.dataset">BroadcastPairIterator</a></td>
+<td class="colLast">
+<div class="block">Class to run over a pair of datasets in parallel with NumPy broadcasting to promote shapes
+ which have lower rank and outputs to a third dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset">BroadcastSelfIterator</a></td>
+<td class="colLast">
+<div class="block">Base class for broadcast iterators where the second dataset could be broadcast to the first
+ and it is also read into either bLong or bDouble fields.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset">BroadcastSingleIterator</a></td>
+<td class="colLast">
+<div class="block">Class to run over a pair of datasets in parallel with NumPy broadcasting of second dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/BroadcastUtils.html" title="class in org.eclipse.january.dataset">BroadcastUtils</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></td>
+<td class="colLast">
+<div class="block">Extend dataset for byte values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/CollectionStats.html" title="class in org.eclipse.january.dataset">CollectionStats</a></td>
+<td class="colLast">
+<div class="block">Statistics of data set lists.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></td>
+<td class="colLast">
+<div class="block">Comparison and logical methods</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></td>
+<td class="colLast">
+<div class="block">Extend compound dataset to hold complex double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></td>
+<td class="colLast">
+<div class="block">Extend compound dataset to hold complex float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></td>
+<td class="colLast">
+<div class="block">Extend compound dataset for byte values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></td>
+<td class="colLast">
+<div class="block">Extend compound dataset for double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></td>
+<td class="colLast">
+<div class="block">Extend compound dataset for float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></td>
+<td class="colLast">
+<div class="block">Extend compound dataset for int values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></td>
+<td class="colLast">
+<div class="block">Extend compound dataset for long values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></td>
+<td class="colLast">
+<div class="block">Extend compound dataset for short values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/ContiguousIterator.html" title="class in org.eclipse.january.dataset">ContiguousIterator</a></td>
+<td class="colLast">
+<div class="block">Class to run over contiguous datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/ContiguousIteratorWithPosition.html" title="class in org.eclipse.january.dataset">ContiguousIteratorWithPosition</a></td>
+<td class="colLast">
+<div class="block">Class to run over contiguous datasets and keep track of position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/ContiguousPairIterator.html" title="class in org.eclipse.january.dataset">ContiguousPairIterator</a></td>
+<td class="colLast">
+<div class="block">Class to run over a pair of contiguous datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/ContiguousSingleIterator.html" title="class in org.eclipse.january.dataset">ContiguousSingleIterator</a></td>
+<td class="colLast">
+<div class="block">Class to run over a pair of contiguous datasets with only the second dataset read</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a></td>
+<td class="colLast">
+<div class="block">Event fired to diseminate information about a dataset changing.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/DataListenerDelegate.html" title="class in org.eclipse.january.dataset">DataListenerDelegate</a></td>
+<td class="colLast">
+<div class="block">Class used by DynamicDataset to delegate</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></td>
+<td class="colLast">
+<div class="block">Utilities for manipulating datasets</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></td>
+<td class="colLast">
+<div class="block">Extend dataset for double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></td>
+<td class="colLast">
+<div class="block">Extend dataset for float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></td>
+<td class="colLast">
+<div class="block">Class to provide iteration through whole data array that backs a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></td>
+<td class="colLast">
+<div class="block">Extend dataset for int values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/IntegerIterator.html" title="class in org.eclipse.january.dataset">IntegerIterator</a></td>
+<td class="colLast">
+<div class="block">Class to run over an integer dataset and return its items</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/IntegersIterator.html" title="class in org.eclipse.january.dataset">IntegersIterator</a></td>
+<td class="colLast">
+<div class="block">Class to run over an array of integer datasets and return its items</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset">InterfaceUtils</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="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 <code>a &gt; b</code> 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 <code>a == b</code> 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 <code>a &gt; b</code> 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 <code>a &gt;= b</code> 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 <code>a &lt; b</code> 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 <code>a &lt;= b</code> 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">The <code>Slice</code> class represents the set of indices (start, stop, step), that are used to extract specifics subsets of <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><code>Dataset</code></a>.<br><br>
+ The start argument default to 0, stop argument default to the stop argument default to the end of the dimension that the slice is applied to, and the default argument for the step is 1.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></td>
+<td class="colLast">
+<div class="block">The <code>SliceIterator</code> class is use to run over a Slice of a Dataset.</div>
+</td>
+</tr>
+<tr class="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">The <code>SliceND</code> class represents a slice through all dimensions of a multi-dimensional <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><code>Dataset</code></a>.<br><br>
+ A slice comprises a starting position array, a stopping position array (not included) and a stepping size array.<br>
+ If a maximum shape is specified, slicing past the original shape is supported for positive
+ steps otherwise it is ignored.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="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:A-double-double-"><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="typeSummary" 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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<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&nbsp;Package</a></li>
+<li><a href="../../../../org/eclipse/january/io/package-summary.html">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/package-tree.html b/apidocs/2.3.0/org/eclipse/january/dataset/package-tree.html
new file mode 100644
index 0000000..c7d51ee
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/package-tree.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 (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.eclipse.january.dataset Class Hierarchy (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul 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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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="packageHierarchyLabel">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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">DTypeUtils</span></a></li>
+<li type="circle">java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/EventObject.html?is-external=true" title="class or interface in java.util"><span class="typeNameLink">EventObject</span></a> (implements java.io.<a href="https://docs.oracle.com/javase/8/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="typeNameLink">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="typeNameLink">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="typeNameLink">BooleanIterator</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">BooleanBroadcastIterator</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">BooleanContiguousIterator</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">BooleanNullIterator</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">ContiguousIteratorWithPosition</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IntegerIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">SliceNDIterator</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">InterfaceUtils</span></a></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="typeNameLink">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="typeNameLink">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/8/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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">RGBDataset</span></a> (implements java.lang.<a href="https://docs.oracle.com/javase/8/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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">LazyDataset</span></a> (implements java.lang.<a href="https://docs.oracle.com/javase/8/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/8/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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">Maths</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">Slice</span></a> (implements java.lang.<a href="https://docs.oracle.com/javase/8/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/8/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="typeNameLink">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="typeNameLink">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="typeNameLink">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/8/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util"><span class="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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/8/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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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/8/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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">UnaryOperation</span></a></li>
+</ul>
+</li>
+<li type="circle">java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io"><span class="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/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/8/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="typeNameLink">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="typeNameLink">Comparisons.Monotonicity</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul 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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/dataset/package-use.html b/apidocs/2.3.0/org/eclipse/january/dataset/package-use.html
new file mode 100644
index 0000000..fad1dd4
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/dataset/package-use.html
@@ -0,0 +1,530 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.eclipse.january.dataset (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul 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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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 class="useSummary" 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 class="useSummary" 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</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:A-double-double-double-double-"><code>BinaryOperation.Stub.complexOperate(double[], double, double, double, double)</code></a>,
+  <a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#toString-java.lang.String-java.lang.String-"><code>BinaryOperation.Stub.toString(String, String)</code></a></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/BooleanDataset.html#org.eclipse.january.dataset">BooleanDataset</a>
+<div class="block">Extend boolean base dataset for boolean values</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/BooleanDatasetBase.html#org.eclipse.january.dataset">BooleanDatasetBase</a>
+<div class="block">Extend dataset for boolean values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/BooleanIterator.html#org.eclipse.january.dataset">BooleanIterator</a>
+<div class="block">Base class for boolean iterators for pairs of dataset where the second dataset could be broadcast to the first and
+ is used to select where {<a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext--"><code>IndexIterator.hasNext()</code></a> returns true.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/BroadcastIterator.html#org.eclipse.january.dataset">BroadcastIterator</a>
+<div class="block">Base class for broadcast iterators of pairs with output.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/BroadcastIteratorBase.html#org.eclipse.january.dataset">BroadcastIteratorBase</a>
+<div class="block">Base class for all broadcast iterators.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/BroadcastSelfIterator.html#org.eclipse.january.dataset">BroadcastSelfIterator</a>
+<div class="block">Base class for broadcast iterators where the second dataset could be broadcast to the first
+ and it is also read into either bLong or bDouble fields.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/ByteDataset.html#org.eclipse.january.dataset">ByteDataset</a>
+<div class="block">Extend dataset for byte values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/Comparisons.Monotonicity.html#org.eclipse.january.dataset">Comparisons.Monotonicity</a>
+<div class="block">Enumeration of monotonicity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/ComplexDoubleDataset.html#org.eclipse.january.dataset">ComplexDoubleDataset</a>
+<div class="block">Extend compound dataset to hold complex double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/ComplexFloatDataset.html#org.eclipse.january.dataset">ComplexFloatDataset</a>
+<div class="block">Extend compound dataset to hold complex float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/CompoundByteDataset.html#org.eclipse.january.dataset">CompoundByteDataset</a>
+<div class="block">Extend compound dataset for byte values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/CompoundDataset.html#org.eclipse.january.dataset">CompoundDataset</a>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/CompoundDoubleDataset.html#org.eclipse.january.dataset">CompoundDoubleDataset</a>
+<div class="block">Extend compound dataset for double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/CompoundFloatDataset.html#org.eclipse.january.dataset">CompoundFloatDataset</a>
+<div class="block">Extend compound dataset for float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/CompoundIntegerDataset.html#org.eclipse.january.dataset">CompoundIntegerDataset</a>
+<div class="block">Extend compound dataset for int values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/CompoundLongDataset.html#org.eclipse.january.dataset">CompoundLongDataset</a>
+<div class="block">Extend compound dataset for long values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/CompoundShortDataset.html#org.eclipse.january.dataset">CompoundShortDataset</a>
+<div class="block">Extend compound dataset for short values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/DataEvent.html#org.eclipse.january.dataset">DataEvent</a>
+<div class="block">Event fired to diseminate information about a dataset changing.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/DataListenerDelegate.html#org.eclipse.january.dataset">DataListenerDelegate</a>
+<div class="block">Class used by DynamicDataset to delegate</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/Dataset.html#org.eclipse.january.dataset">Dataset</a>
+<div class="block">
+ Interface for our implementation of dataset that adds a lot of extra functionality.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/DateDataset.html#org.eclipse.january.dataset">DateDataset</a>
+<div class="block">Interface for a dataset containing <a href="https://docs.oracle.com/javase/8/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 <code>a &gt; b</code> else use a</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/PositionIterator.html#org.eclipse.january.dataset">PositionIterator</a>
+<div class="block">Class to provide iteration through a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/RGBDataset.html#org.eclipse.january.dataset">RGBDataset</a>
+<div class="block">Class to hold colour datasets as red, green, blue tuples of short integers</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/ShortDataset.html#org.eclipse.january.dataset">ShortDataset</a>
+<div class="block">Extend dataset for short values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/Slice.html#org.eclipse.january.dataset">Slice</a>
+<div class="block">The <code>Slice</code> class represents the set of indices (start, stop, step), that are used to extract specifics subsets of <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><code>Dataset</code></a>.<br><br>
+ The start argument default to 0, stop argument default to the stop argument default to the end of the dimension that the slice is applied to, and the default argument for the step is 1.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/SliceIterator.html#org.eclipse.january.dataset">SliceIterator</a>
+<div class="block">The <code>SliceIterator</code> class is use to run over a Slice of a Dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/SliceND.html#org.eclipse.january.dataset">SliceND</a>
+<div class="block">The <code>SliceND</code> class represents a slice through all dimensions of a multi-dimensional <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><code>Dataset</code></a>.<br><br>
+ A slice comprises a starting position array, a stopping position array (not included) and a stepping size array.<br>
+ If a maximum shape is specified, slicing past the original shape is supported for positive
+ steps otherwise it is ignored.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/StringDataset.html#org.eclipse.january.dataset">StringDataset</a>
+<div class="block">Extend dataset for objects</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/StringDatasetBase.html#org.eclipse.january.dataset">StringDatasetBase</a>
+<div class="block">Extend dataset for String values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/UnaryOperation.html#org.eclipse.january.dataset">UnaryOperation</a>
+<div class="block">Interface to represent a unary operation for implementations over different output domains</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.io">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> used by <a href="../../../../org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/IDataset.html#org.eclipse.january.io">IDataset</a>
+<div class="block">This interface defines the implementation-independent and generic parts of a dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/SliceND.html#org.eclipse.january.io">SliceND</a>
+<div class="block">The <code>SliceND</code> class represents a slice through all dimensions of a multi-dimensional <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><code>Dataset</code></a>.<br><br>
+ A slice comprises a starting position array, a stopping position array (not included) and a stepping size array.<br>
+ If a maximum shape is specified, slicing past the original shape is supported for positive
+ steps otherwise it is ignored.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.metadata">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> used by <a href="../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/Dataset.html#org.eclipse.january.metadata">Dataset</a>
+<div class="block">
+ Interface for our implementation of dataset that adds a lot of extra functionality.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/IDataset.html#org.eclipse.january.metadata">IDataset</a>
+<div class="block">This interface defines the implementation-independent and generic parts of a dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/ILazyDataset.html#org.eclipse.january.metadata">ILazyDataset</a>
+<div class="block">This interface defines the lazy parts of a dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/Slice.html#org.eclipse.january.metadata">Slice</a>
+<div class="block">The <code>Slice</code> class represents the set of indices (start, stop, step), that are used to extract specifics subsets of <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><code>Dataset</code></a>.<br><br>
+ The start argument default to 0, stop argument default to the stop argument default to the end of the dimension that the slice is applied to, and the default argument for the step is 1.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul 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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/io/IDataAnalysisObject.html b/apidocs/2.3.0/org/eclipse/january/io/IDataAnalysisObject.html
new file mode 100644
index 0000000..13f769c
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/io/IDataAnalysisObject.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 (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IDataAnalysisObject (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="IDataAnalysisObject (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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&nbsp;Class</li>
+<li><a href="../../../../org/eclipse/january/io/ILazyAsyncSaver.html" title="interface in org.eclipse.january.io"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/io/IDataAnalysisObject.html#clone--">clone</a></span>()</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/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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&nbsp;Class</li>
+<li><a href="../../../../org/eclipse/january/io/ILazyAsyncSaver.html" title="interface in org.eclipse.january.io"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/io/ILazyAsyncSaver.html b/apidocs/2.3.0/org/eclipse/january/io/ILazyAsyncSaver.html
new file mode 100644
index 0000000..6d8fc6a
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/io/ILazyAsyncSaver.html
@@ -0,0 +1,274 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ILazyAsyncSaver (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ILazyAsyncSaver (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/io/ILazyDynamicLoader.html" title="interface in org.eclipse.january.io"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/io/ILazyAsyncSaver.html#setSliceAsync-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSliceAsync</a></span>(<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-org.eclipse.january.dataset.IDataset-org.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-org.eclipse.january.dataset.IDataset-org.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-org.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/8/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-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-"><code>ILazySaver.setSlice(IMonitor, IDataset, SliceND)</code></a></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mon</code> - </dd>
+<dd><code>data</code> - </dd>
+<dd><code>slice</code> - </dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/io/ILazyDynamicLoader.html" title="interface in org.eclipse.january.io"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/io/ILazyDynamicLoader.html b/apidocs/2.3.0/org/eclipse/january/io/ILazyDynamicLoader.html
new file mode 100644
index 0000000..619c5d3
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/io/ILazyDynamicLoader.html
@@ -0,0 +1,223 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ILazyDynamicLoader (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ILazyDynamicLoader (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/io/ILazyDynamicLoader.html#refreshShape--">refreshShape</a></span>()</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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/io/ILazyLoader.html b/apidocs/2.3.0/org/eclipse/january/io/ILazyLoader.html
new file mode 100644
index 0000000..6a3dc73
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/io/ILazyLoader.html
@@ -0,0 +1,302 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ILazyLoader (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ILazyLoader (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/io/ILazyLoader.html#serialVersionUID">serialVersionUID</a></span></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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/io/ILazyLoader.html#getDataset-org.eclipse.january.IMonitor-org.eclipse.january.dataset.SliceND-">getDataset</a></span>(<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 id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/io/ILazyLoader.html#isFileReadable--">isFileReadable</a></span>()</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="seeLabel">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="returnLabel">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/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mon</code> - </dd>
+<dd><code>slice</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a slice of a dataset</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/io/ILazySaver.html b/apidocs/2.3.0/org/eclipse/january/io/ILazySaver.html
new file mode 100644
index 0000000..39eb4aa
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/io/ILazySaver.html
@@ -0,0 +1,331 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ILazySaver (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ILazySaver (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/io/IMetaLoader.html" title="interface in org.eclipse.january.io"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/io/ILazySaver.html#serialVersionUID">serialVersionUID</a></span></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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/io/ILazySaver.html#initialize--">initialize</a></span>()</code>
+<div class="block">Initialize dataset in file</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/io/ILazySaver.html#isFileWriteable--">isFileWriteable</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/io/ILazySaver.html#setSlice-org.eclipse.january.IMonitor-org.eclipse.january.dataset.IDataset-org.eclipse.january.dataset.SliceND-">setSlice</a></span>(<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-org.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="seeLabel">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/8/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="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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="returnLabel">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/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mon</code> - </dd>
+<dd><code>data</code> - </dd>
+<dd><code>slice</code> - </dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/io/IMetaLoader.html" title="interface in org.eclipse.january.io"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/io/IMetaLoader.html b/apidocs/2.3.0/org/eclipse/january/io/IMetaLoader.html
new file mode 100644
index 0000000..8f62d00
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/io/IMetaLoader.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 (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IMetaLoader (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="IMetaLoader (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/io/IMetaLoader.html#getMetadata--">getMetadata</a></span>()</code>
+<div class="block">Returns an object containing some data about the data file
+ to be read in.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/io/IMetaLoader.html#loadMetadata-org.eclipse.january.IMonitor-">loadMetadata</a></span>(<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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>mon</code> - </dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/io/class-use/IDataAnalysisObject.html b/apidocs/2.3.0/org/eclipse/january/io/class-use/IDataAnalysisObject.html
new file mode 100644
index 0000000..b823eb7
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/io/class-use/IDataAnalysisObject.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 (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.io.IDataAnalysisObject (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata">IExtendedMetadata</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></span></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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Metadata</a></span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/io/class-use/ILazyAsyncSaver.html b/apidocs/2.3.0/org/eclipse/january/io/class-use/ILazyAsyncSaver.html
new file mode 100644
index 0000000..89ec006
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/io/class-use/ILazyAsyncSaver.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.io.ILazyAsyncSaver (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/io/class-use/ILazyDynamicLoader.html b/apidocs/2.3.0/org/eclipse/january/io/class-use/ILazyDynamicLoader.html
new file mode 100644
index 0000000..778595c
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/io/class-use/ILazyDynamicLoader.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.io.ILazyDynamicLoader (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/io/class-use/ILazyLoader.html b/apidocs/2.3.0/org/eclipse/january/io/class-use/ILazyLoader.html
new file mode 100644
index 0000000..275b226
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/io/class-use/ILazyLoader.html
@@ -0,0 +1,250 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.io.ILazyLoader (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#loader">loader</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#LazyDataset-org.eclipse.january.io.ILazyLoader-java.lang.String-java.lang.Class-int...-">LazyDataset</a></span>(<a href="../../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a>&nbsp;loader,
+           <a href="https://docs.oracle.com/javase/8/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/8/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,
+           int...&nbsp;shape)</code>
+<div class="block">Create a lazy dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#LazyDataset-org.eclipse.january.io.ILazyLoader-java.lang.String-int-java.lang.Class-int...-">LazyDataset</a></span>(<a href="../../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a>&nbsp;loader,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+           int&nbsp;elements,
+           <a href="https://docs.oracle.com/javase/8/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,
+           int...&nbsp;shape)</code>
+<div class="block">Create a lazy dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#LazyDataset-java.lang.String-int-int:A-org.eclipse.january.io.ILazyLoader-">LazyDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#LazyDataset-org.eclipse.january.io.ILazyLoader-java.lang.String-int-java.lang.Class-int...-"><code>LazyDataset.LazyDataset(ILazyLoader, String, int, Class, int[])</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#LazyDataset-java.lang.String-int-int-int:A-org.eclipse.january.io.ILazyLoader-">LazyDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#LazyDataset-org.eclipse.january.io.ILazyLoader-java.lang.String-int-java.lang.Class-int...-"><code>LazyDataset.LazyDataset(ILazyLoader, String, int, Class, int[])</code></a></span></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#LazyDynamicDataset-java.lang.String-int-int-int:A-int:A-org.eclipse.january.io.ILazyLoader-">LazyDynamicDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/io/ILazyAsyncSaver.html" title="interface in org.eclipse.january.io">ILazyAsyncSaver</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a></span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/io/class-use/ILazySaver.html b/apidocs/2.3.0/org/eclipse/january/io/class-use/ILazySaver.html
new file mode 100644
index 0000000..8863c0d
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/io/class-use/ILazySaver.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 (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.io.ILazySaver (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">ILazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSaver-org.eclipse.january.io.ILazySaver-">setSaver</a></span>(<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"><span class="typeNameLabel">LazyWriteableDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSaver-org.eclipse.january.io.ILazySaver-">setSaver</a></span>(<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>
+</tbody>
+</table>
+<table class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#LazyWriteableDataset-java.lang.String-java.lang.Class-int:A-int:A-int:A-org.eclipse.january.io.ILazySaver-">LazyWriteableDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#LazyWriteableDataset-java.lang.String-java.lang.Class-int-int:A-int:A-int:A-org.eclipse.january.io.ILazySaver-">LazyWriteableDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#LazyWriteableDataset-java.lang.String-int-int:A-int:A-int:A-org.eclipse.january.io.ILazySaver-">LazyWriteableDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#LazyWriteableDataset-java.lang.String-int-int-int:A-int:A-int:A-org.eclipse.january.io.ILazySaver-">LazyWriteableDataset</a></span>(<a href="https://docs.oracle.com/javase/8/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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/io/ILazyAsyncSaver.html" title="interface in org.eclipse.january.io">ILazyAsyncSaver</a></span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/io/class-use/IMetaLoader.html b/apidocs/2.3.0/org/eclipse/january/io/class-use/IMetaLoader.html
new file mode 100644
index 0000000..ebc5204
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/io/class-use/IMetaLoader.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.io.IMetaLoader (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/io/package-frame.html b/apidocs/2.3.0/org/eclipse/january/io/package-frame.html
new file mode 100644
index 0000000..2bca1a6
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/io/package-frame.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</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"><span class="interfaceName">IDataAnalysisObject</span></a></li>
+<li><a href="ILazyAsyncSaver.html" title="interface in org.eclipse.january.io" target="classFrame"><span class="interfaceName">ILazyAsyncSaver</span></a></li>
+<li><a href="ILazyDynamicLoader.html" title="interface in org.eclipse.january.io" target="classFrame"><span class="interfaceName">ILazyDynamicLoader</span></a></li>
+<li><a href="ILazyLoader.html" title="interface in org.eclipse.january.io" target="classFrame"><span class="interfaceName">ILazyLoader</span></a></li>
+<li><a href="ILazySaver.html" title="interface in org.eclipse.january.io" target="classFrame"><span class="interfaceName">ILazySaver</span></a></li>
+<li><a href="IMetaLoader.html" title="interface in org.eclipse.january.io" target="classFrame"><span class="interfaceName">IMetaLoader</span></a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/io/package-summary.html b/apidocs/2.3.0/org/eclipse/january/io/package-summary.html
new file mode 100644
index 0000000..2b050dc
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/io/package-summary.html
@@ -0,0 +1,175 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.eclipse.january.io (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<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&nbsp;Package</a></li>
+<li><a href="../../../../org/eclipse/january/metadata/package-summary.html">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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="typeSummary" 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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<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&nbsp;Package</a></li>
+<li><a href="../../../../org/eclipse/january/metadata/package-summary.html">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/io/package-tree.html b/apidocs/2.3.0/org/eclipse/january/io/package-tree.html
new file mode 100644
index 0000000..0c2469d
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/io/package-tree.html
@@ -0,0 +1,154 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.eclipse.january.io Class Hierarchy (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul 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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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="packageHierarchyLabel">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/8/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">IMetaLoader</span></a></li>
+<li type="circle">java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io"><span class="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">ILazyAsyncSaver</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul 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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/io/package-use.html b/apidocs/2.3.0/org/eclipse/january/io/package-use.html
new file mode 100644
index 0000000..cff4a0f
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/io/package-use.html
@@ -0,0 +1,213 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.eclipse.january.io (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul 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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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 class="useSummary" 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 class="useSummary" 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 class="useSummary" 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 class="useSummary" 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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul 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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/ARPESMetadata.html b/apidocs/2.3.0/org/eclipse/january/metadata/ARPESMetadata.html
new file mode 100644
index 0000000..814d7de
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/ARPESMetadata.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 (1.8.0_222) on Mon Sep 30 16:21:11 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ARPESMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ARPESMetadata (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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&nbsp;Class</li>
+<li><a href="../../../../org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#getAnalyserAngles--">getAnalyserAngles</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#getAngleAxisGlobalOffset--">getAngleAxisGlobalOffset</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#getAzimuthalAngles--">getAzimuthalAngles</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#getBindingEnergies--">getBindingEnergies</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#getEnergyAxisGlobalOffset--">getEnergyAxisGlobalOffset</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#getEnergyAxisOffset--">getEnergyAxisOffset</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i6" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#getKineticEnergies--">getKineticEnergies</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#getPassEnergy--">getPassEnergy</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i8" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#getPhotoelectronMomentum--">getPhotoelectronMomentum</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#getPhotonEnergy--">getPhotonEnergy</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i10" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#getPolarAngles--">getPolarAngles</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#getTemperature--">getTemperature</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i12" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#getTiltAngles--">getTiltAngles</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#getWorkFunction--">getWorkFunction</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#initialize--">initialize</a></span>()</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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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&nbsp;Class</li>
+<li><a href="../../../../org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/AxesMetadata.html b/apidocs/2.3.0/org/eclipse/january/metadata/AxesMetadata.html
new file mode 100644
index 0000000..2eb490e
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/AxesMetadata.html
@@ -0,0 +1,382 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:11 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AxesMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AxesMetadata (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/AxesMetadata.html#addAxis-int-org.eclipse.january.dataset.ILazyDataset-">addAxis</a></span>(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">Add axis data to given dimension.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/AxesMetadata.html#addAxis-int-org.eclipse.january.dataset.ILazyDataset-int...-">addAxis</a></span>(int&nbsp;primaryAxisDim,
+       <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;axisData,
+       int...&nbsp;dimMapping)</code>
+<div class="block">Add axis data to given dimension.</div>
+</td>
+</tr>
+<tr id="i2" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/AxesMetadata.html#getAxes--">getAxes</a></span>()</code>
+<div class="block">Get axis datasets</div>
+</td>
+</tr>
+<tr id="i3" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/AxesMetadata.html#getAxis-int-">getAxis</a></span>(int&nbsp;axisDim)</code>
+<div class="block">Get all axis datasets for the given dimension</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/AxesMetadata.html#initialize-int-">initialize</a></span>(int&nbsp;rank)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/AxesMetadata.html#refresh-int:A-">refresh</a></span>(int[]&nbsp;shape)</code>
+<div class="block">Refresh with given shape</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/AxesMetadata.html#setAxis-int-org.eclipse.january.dataset.ILazyDataset...-">setAxis</a></span>(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="paramLabel">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="returnLabel">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="paramLabel">Parameters:</span></dt>
+<dd><code>axisDim</code> - dimension (n.b. this is zero-based)</dd>
+<dt><span class="returnLabel">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="paramLabel">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;axisDim,
+             <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;axisData)</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="paramLabel">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.67">addAxis</a>(int&nbsp;primaryAxisDim,
+             <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;axisData,
+             int...&nbsp;dimMapping)</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="paramLabel">Parameters:</span></dt>
+<dd><code>primaryAxisDim</code> - dimension (n.b. this is zero-based)</dd>
+<dd><code>axisData</code> - dataset for axis</dd>
+<dd><code>dimMapping</code> - indicates where each axis dimension maps to in the dataset dimensions</dd>
+</dl>
+</li>
+</ul>
+<a name="refresh-int:A-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>refresh</h4>
+<pre>int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/AxesMetadata.html#line.74">refresh</a>(int[]&nbsp;shape)</pre>
+<div class="block">Refresh with given shape</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new shape</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/DimensionMetadata.html b/apidocs/2.3.0/org/eclipse/january/metadata/DimensionMetadata.html
new file mode 100644
index 0000000..2f7b7b7
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/DimensionMetadata.html
@@ -0,0 +1,291 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:11 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DimensionMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DimensionMetadata (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/Dirtiable.html" title="annotation in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/DimensionMetadata.html#getDataChunkDimensions--">getDataChunkDimensions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/DimensionMetadata.html#getDataDimensions--">getDataDimensions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/DimensionMetadata.html#getDataMaxDimensions--">getDataMaxDimensions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/DimensionMetadata.html#initialize-int:A-int:A-int:A-">initialize</a></span>(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:A-int:A-int:A-">
+<!--   -->
+</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="paramLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/Dirtiable.html" title="annotation in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/Dirtiable.html b/apidocs/2.3.0/org/eclipse/january/metadata/Dirtiable.html
new file mode 100644
index 0000000..5d7b4b0
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/Dirtiable.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 (1.8.0_222) on Mon Sep 30 16:21:11 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Dirtiable (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Dirtiable (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&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/8/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/8/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/8/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/8/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/8/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/8/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="simpleTagLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/DynamicConnectionInfo.html b/apidocs/2.3.0/org/eclipse/january/metadata/DynamicConnectionInfo.html
new file mode 100644
index 0000000..9b7fc5d
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/DynamicConnectionInfo.html
@@ -0,0 +1,414 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:11 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DynamicConnectionInfo (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DynamicConnectionInfo (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/DynamicMetadataUtils.html" title="class in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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/8/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/8/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="seeLabel">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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html#DynamicConnectionInfo--">DynamicConnectionInfo</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html#clone--">clone</a></span>()</code>
+<div class="block">Make a deep copy of metadata</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i2" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html#getDroppedCount--">getDroppedCount</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html#getReceivedCount--">getReceivedCount</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html#isConnected--">isConnected</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html#setConnected-boolean-">setConnected</a></span>(boolean&nbsp;connected)</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html#setDroppedCount-int-">setDroppedCount</a></span>(int&nbsp;droppedCount)</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html#setReceivedCount-int-">setReceivedCount</a></span>(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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dt><span class="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/DynamicMetadataUtils.html" title="class in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/DynamicMetadataUtils.html b/apidocs/2.3.0/org/eclipse/january/metadata/DynamicMetadataUtils.html
new file mode 100644
index 0000000..e363eb5
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/DynamicMetadataUtils.html
@@ -0,0 +1,275 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:11 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DynamicMetadataUtils (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DynamicMetadataUtils (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/DynamicMetadataUtils.html#DynamicMetadataUtils--">DynamicMetadataUtils</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/DynamicMetadataUtils.html#refreshDynamicAxesMetadata-java.util.List-int:A-">refreshDynamicAxesMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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-">
+<!--   -->
+</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/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/ErrorMetadata.html b/apidocs/2.3.0/org/eclipse/january/metadata/ErrorMetadata.html
new file mode 100644
index 0000000..cccc5c8
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/ErrorMetadata.html
@@ -0,0 +1,295 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:11 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ErrorMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ErrorMetadata (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/ErrorMetadata.html#getError--">getError</a></span>()</code>
+<div class="block">Get error dataset</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/ErrorMetadata.html#initialize--">initialize</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/ErrorMetadata.html#initialize-org.eclipse.january.dataset.ILazyDataset-">initialize</a></span>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;error)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/ErrorMetadata.html#setError-org.eclipse.january.dataset.ILazyDataset-">setError</a></span>(<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="initialize-org.eclipse.january.dataset.ILazyDataset-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>initialize</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/ErrorMetadata.html#line.28">initialize</a>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;error)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>error</code> - </dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</dd>
+</dl>
+</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.34">getError</a>()</pre>
+<div class="block">Get error dataset</div>
+<dl>
+<dt><span class="returnLabel">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.40">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="paramLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/IExtendedMetadata.html b/apidocs/2.3.0/org/eclipse/january/metadata/IExtendedMetadata.html
new file mode 100644
index 0000000..45deb69
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/IExtendedMetadata.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 (1.8.0_222) on Mon Sep 30 16:21:11 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IExtendedMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="IExtendedMetadata (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html#getCreation--">getCreation</a></span>()</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 id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html#getCreator--">getCreator</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html#getFileName--">getFileName</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html#getFileOwner--">getFileOwner</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html#getFileSize--">getFileSize</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html#getFullPath--">getFullPath</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html#getLastModified--">getLastModified</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html#getScanCommand--">getScanCommand</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html#initialize-java.io.File-">initialize</a></span>(<a href="https://docs.oracle.com/javase/8/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-int...-">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/8/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="paramLabel">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/8/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="returnLabel">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/8/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="returnLabel">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/8/docs/api/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="returnLabel">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/8/docs/api/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="returnLabel">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/8/docs/api/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="returnLabel">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="returnLabel">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/8/docs/api/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="returnLabel">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/8/docs/api/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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/IMetadata.html b/apidocs/2.3.0/org/eclipse/january/metadata/IMetadata.html
new file mode 100644
index 0000000..05edd7c
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/IMetadata.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 (1.8.0_222) on Mon Sep 30 16:21:11 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="IMetadata (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/MaskMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "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/8/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/8/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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/IMetadata.html#serialVersionUID">serialVersionUID</a></span></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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/IMetadata.html#addDataInfo-java.lang.String-int...-">addDataInfo</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/IMetadata.html#addNames-java.util.Collection-">addNames</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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 id="i2" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/IMetadata.html#clone--">clone</a></span>()</code>
+<div class="block">Copy of metadata</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/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/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getDataNames--">getDataNames</a></span>()</code>
+<div class="block">Returns a collection of dataset names or null if not implemented</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/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/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getDataShapes--">getDataShapes</a></span>()</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 id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/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/8/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/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getDataSizes--">getDataSizes</a></span>()</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 id="i6" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getFilePath--">getFilePath</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/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/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getMetaNames--">getMetaNames</a></span>()</code>
+<div class="block">Returns a collection of metadata names</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getMetaValue-java.lang.String-">getMetaValue</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i9" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/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/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getUserObjects--">getUserObjects</a></span>()</code>
+<div class="block">May be implemented to provide custom metadata in the form of a collection of serializable objects</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/IMetadata.html#initialize-java.util.Map-">initialize</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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 id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/IMetadata.html#setFilePath-java.lang.String-">setFilePath</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/IMetadata.html#setMetadata-java.util.Map-">setMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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>
+</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="seeLabel">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/8/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/8/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/8/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="paramLabel">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/8/docs/api/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="returnLabel">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/8/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/8/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="returnLabel">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/8/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/8/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/8/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="returnLabel">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/8/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/8/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="returnLabel">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/8/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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>value</dd>
+<dt><span class="throwsLabel">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/8/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/8/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="returnLabel">Returns:</span></dt>
+<dd>collection</dd>
+<dt><span class="throwsLabel">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/8/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/8/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="returnLabel">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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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/8/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/8/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">Add name and shape of a dataset to metadata</div>
+<dl>
+<dt><span class="paramLabel">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/8/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/8/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/8/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/8/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/8/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><span class="paramLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/MaskMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/MaskMetadata.html b/apidocs/2.3.0/org/eclipse/january/metadata/MaskMetadata.html
new file mode 100644
index 0000000..2950c70
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/MaskMetadata.html
@@ -0,0 +1,263 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:11 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>MaskMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MaskMetadata (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/MaskMetadata.html#getMask--">getMask</a></span>()</code>
+<div class="block">Get mask</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/MaskMetadata.html#initialize-org.eclipse.january.dataset.IDataset-">initialize</a></span>(<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="paramLabel">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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/Metadata.html b/apidocs/2.3.0/org/eclipse/january/metadata/Metadata.html
new file mode 100644
index 0000000..2c598c7
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/Metadata.html
@@ -0,0 +1,622 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:11 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Metadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Metadata (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/MetadataFactory.html" title="class in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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/8/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, <a href="../../../../org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io">IDataAnalysisObject</a>, <a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a>, <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.34">Metadata</a>
+extends <a href="https://docs.oracle.com/javase/8/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="seeLabel">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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/Metadata.html#Metadata--">Metadata</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/Metadata.html#Metadata-java.util.Map-">Metadata</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/Metadata.html#addDataInfo-java.lang.String-int...-">addDataInfo</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/Metadata.html#addNames-java.util.Collection-">addNames</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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 id="i2" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/Metadata.html#clone--">clone</a></span>()</code>
+<div class="block">Copy of metadata</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/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/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/Metadata.html#getDataNames--">getDataNames</a></span>()</code>
+<div class="block">Returns a collection of dataset names or null if not implemented</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/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/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/Metadata.html#getDataShapes--">getDataShapes</a></span>()</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 id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/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/8/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/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/Metadata.html#getDataSizes--">getDataSizes</a></span>()</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 id="i6" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/Metadata.html#getFilePath--">getFilePath</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/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/8/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/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/Metadata.html#getInternalMetadata--">getInternalMetadata</a></span>()</code>
+<div class="block">Internal use only</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/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/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/Metadata.html#getMetaNames--">getMetaNames</a></span>()</code>
+<div class="block">Returns a collection of metadata names</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/Metadata.html#getMetaValue-java.lang.String-">getMetaValue</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i10" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/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/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/Metadata.html#getUserObjects--">getUserObjects</a></span>()</code>
+<div class="block">May be implemented to provide custom metadata in the form of a collection of serializable objects</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/Metadata.html#initialize-java.util.Map-">initialize</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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 id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/Metadata.html#setFilePath-java.lang.String-">setFilePath</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/Metadata.html#setMetadata-java.util.Map-">setMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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 id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/Metadata.html#setUserObjects-java.util.Collection-">setUserObjects</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Metadata--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Metadata</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.46">Metadata</a>()</pre>
+</li>
+</ul>
+<a name="Metadata-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Metadata</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.49">Metadata</a>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&gt;&nbsp;metadata)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="initialize-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>initialize</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.54">initialize</a>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#initialize-java.util.Map-">IMetadata</a></code></span></div>
+<div class="block">Initialize metadata</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#initialize-java.util.Map-">initialize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="addNames-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addNames</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.59">addNames</a>(<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;names)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#addNames-java.util.Collection-">addNames</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="setMetadata-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMetadata</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.72">setMetadata</a>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">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/8/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/8/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/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.80">getInternalMetadata</a>()</pre>
+<div class="block">Internal use only</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>metadata map</dd>
+</dl>
+</li>
+</ul>
+<a name="setUserObjects-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setUserObjects</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.88">setUserObjects</a>(<a href="https://docs.oracle.com/javase/8/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/8/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="paramLabel">Parameters:</span></dt>
+<dd><code>objects</code> - </dd>
+</dl>
+</li>
+</ul>
+<a name="addDataInfo-java.lang.String-int...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addDataInfo</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.92">addDataInfo</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#addDataInfo-java.lang.String-int...-">IMetadata</a></code></span></div>
+<div class="block">Add name and shape of a dataset to metadata</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#addDataInfo-java.lang.String-int...-">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/8/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/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.97">getDataNames</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getDataNames--">IMetadata</a></code></span></div>
+<div class="block">Returns a collection of dataset names or null if not implemented</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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/8/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/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,int[]&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.102">getDataShapes</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getDataShapes--">IMetadata</a></code></span></div>
+<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="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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/8/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/8/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/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.107">getDataSizes</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getDataSizes--">IMetadata</a></code></span></div>
+<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="overrideSpecifyLabel">Specified by:</span></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="returnLabel">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/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.123">getMetaValue</a>(<a href="https://docs.oracle.com/javase/8/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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getMetaValue-java.lang.String-">IMetadata</a></code></span></div>
+<div class="block">Returns string value or null if not implemented</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>value</dd>
+<dt><span class="throwsLabel">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/8/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/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.129">getMetaNames</a>()
+                                throws <a href="../../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">MetadataException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getMetaNames--">IMetadata</a></code></span></div>
+<div class="block">Returns a collection of metadata names</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>collection</dd>
+<dt><span class="throwsLabel">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/8/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/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.134">getUserObjects</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getUserObjects--">IMetadata</a></code></span></div>
+<div class="block">May be implemented to provide custom metadata in the form of a collection of serializable objects</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>collection</dd>
+</dl>
+</li>
+</ul>
+<a name="clone--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.139">clone</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#clone--">IMetadata</a></code></span></div>
+<div class="block">Copy of metadata</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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><span class="overrideSpecifyLabel">Specified by:</span></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="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dt><span class="returnLabel">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/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.182">getFilePath</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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="returnLabel">Returns:</span></dt>
+<dd>the path to the original file, or null if there was not a file.</dd>
+</dl>
+</li>
+</ul>
+<a name="setFilePath-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setFilePath</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.187">setFilePath</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filePath)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/MetadataFactory.html" title="class in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/MetadataFactory.html b/apidocs/2.3.0/org/eclipse/january/metadata/MetadataFactory.html
new file mode 100644
index 0000000..a84f05d
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/MetadataFactory.html
@@ -0,0 +1,279 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:11 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>MetadataFactory (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MetadataFactory (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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.30">MetadataFactory</a>
+extends <a href="https://docs.oracle.com/javase/8/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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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;<br>T</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/MetadataFactory.html#createMetadata-java.lang.Class-java.lang.Object...-">createMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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 id="i1" 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;<br>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/MetadataFactory.html#registerClass-java.lang.Class-">registerClass</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" 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.60">createMetadata</a>(<a href="https://docs.oracle.com/javase/8/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/8/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="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - metadata type</dd>
+<dt><span class="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>metadata object or null if type not available</dd>
+<dt><span class="throwsLabel">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.104">registerClass</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - metadata type</dd>
+<dt><span class="paramLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/MetadataType.html b/apidocs/2.3.0/org/eclipse/january/metadata/MetadataType.html
new file mode 100644
index 0000000..dd3752a
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/MetadataType.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 (1.8.0_222) on Mon Sep 30 16:21:11 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>MetadataType (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MetadataType (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata">ARPESMetadata</a>, <a href="../../../../org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata">AxesMetadata</a>, <a href="../../../../org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata">DimensionMetadata</a>, <a href="../../../../org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata">ErrorMetadata</a>, <a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata">IExtendedMetadata</a>, <a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a>, <a href="../../../../org/eclipse/january/metadata/MaskMetadata.html" title="interface in org.eclipse.january.metadata">MaskMetadata</a>, <a href="../../../../org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata">OriginMetadata</a>, <a href="../../../../org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata">PeemMetadata</a>, <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a>&lt;T&gt;, <a href="../../../../org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata">UnitMetadata</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata">DynamicConnectionInfo</a>, <a href="../../../../org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Metadata</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/metadata/MetadataType.html#line.30">MetadataType</a>
+extends <a href="https://docs.oracle.com/javase/8/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/8/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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/MetadataType.html#clone--">clone</a></span>()</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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/OriginMetadata.html b/apidocs/2.3.0/org/eclipse/january/metadata/OriginMetadata.html
new file mode 100644
index 0000000..17775bf
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/OriginMetadata.html
@@ -0,0 +1,353 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:11 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>OriginMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="OriginMetadata (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/OriginMetadata.html#getDatasetName--">getDatasetName</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/OriginMetadata.html#getFilePath--">getFilePath</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/OriginMetadata.html#getParent--">getParent</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/OriginMetadata.html#getSliceFromInput--">getSliceFromInput</a></span>()</code>
+<div class="block">The starting slice</div>
+</td>
+</tr>
+<tr id="i4" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/OriginMetadata.html#getSliceInOutput--">getSliceInOutput</a></span>()</code>
+<div class="block">Current slice information.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/OriginMetadata.html#initialize-org.eclipse.january.dataset.ILazyDataset-org.eclipse.january.dataset.Slice:A-int:A-java.lang.String-java.lang.String-">initialize</a></span>(<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/8/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/8/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:A-int:A-int:A-">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:A-int:A-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/8/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/8/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="paramLabel">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="returnLabel">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="returnLabel">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/8/docs/api/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="returnLabel">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/8/docs/api/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="returnLabel">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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/PeemMetadata.html b/apidocs/2.3.0/org/eclipse/january/metadata/PeemMetadata.html
new file mode 100644
index 0000000..708cd32
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/PeemMetadata.html
@@ -0,0 +1,360 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:11 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>PeemMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PeemMetadata (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/Reshapeable.html" title="annotation in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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/8/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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/PeemMetadata.html#getFieldOfView--">getFieldOfView</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/PeemMetadata.html#getScaling--">getScaling</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/PeemMetadata.html#getXYMotorPosition--">getXYMotorPosition</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/PeemMetadata.html#initialize-double:A-double-double-">initialize</a></span>(double[]&nbsp;xyPosition,
+          double&nbsp;scaling,
+          double&nbsp;fieldOfView)</code>
+<div class="block">Initialize PEEM metadata</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/PeemMetadata.html#setFieldOfView-double-">setFieldOfView</a></span>(double&nbsp;fieldOfView)</code>
+<div class="block">Sets fieldOfView value in microns</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/PeemMetadata.html#setScaling-double-">setScaling</a></span>(double&nbsp;scaling)</code>
+<div class="block">Sets scaling micron/pixel</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/PeemMetadata.html#setXYMotorPosition-double:A-">setXYMotorPosition</a></span>(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:A-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="paramLabel">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="returnLabel">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="returnLabel">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="returnLabel">Returns:</span></dt>
+<dd>field of view value in microns</dd>
+</dl>
+</li>
+</ul>
+<a name="setXYMotorPosition-double:A-">
+<!--   -->
+</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="paramLabel">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="paramLabel">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="paramLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/Reshapeable.html" title="annotation in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/Reshapeable.html b/apidocs/2.3.0/org/eclipse/january/metadata/Reshapeable.html
new file mode 100644
index 0000000..acb58c0
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/Reshapeable.html
@@ -0,0 +1,225 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:11 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Reshapeable (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Reshapeable (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/Sliceable.html" title="annotation in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&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>Field&nbsp;|&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/8/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/8/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/8/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/8/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/8/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/8/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="memberSummary" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/Reshapeable.html#matchRank--">matchRank</a></span></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="returnLabel">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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/Sliceable.html" title="annotation in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&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>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/Sliceable.html b/apidocs/2.3.0/org/eclipse/january/metadata/Sliceable.html
new file mode 100644
index 0000000..6328ee3
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/Sliceable.html
@@ -0,0 +1,169 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:11 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Sliceable (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Sliceable (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&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/8/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/8/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/8/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/8/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/8/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/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/StatisticsMetadata.html b/apidocs/2.3.0/org/eclipse/january/metadata/StatisticsMetadata.html
new file mode 100644
index 0000000..596777a
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/StatisticsMetadata.html
@@ -0,0 +1,924 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:11 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>StatisticsMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="StatisticsMetadata (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":38,"i29":6,"i30":6,"i31":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/Transposable.html" title="annotation in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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="paramLabel">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/8/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/8/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="simpleTagLabel">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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getArgMaximum-int-boolean...-">getArgMaximum</a></span>(int&nbsp;axis,
+             boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getArgMinimum-int-boolean...-">getArgMinimum</a></span>(int&nbsp;axis,
+             boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getCount-boolean...-">getCount</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getCount-int:A-boolean...-">getCount</a></span>(int[]&nbsp;axes,
+        boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getCount-int-boolean...-">getCount</a></span>(int&nbsp;axis,
+        boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getHash-int:A-">getHash</a></span>(int[]&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr id="i6" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum-boolean...-">getMaximum</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum-int:A-boolean...-">getMaximum</a></span>(int[]&nbsp;axes,
+          boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum-int-boolean...-">getMaximum</a></span>(int&nbsp;axis,
+          boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximumPositions-boolean...-">getMaximumPositions</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i10" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMean-boolean...-">getMean</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMean-int:A-boolean...-">getMean</a></span>(int[]&nbsp;axes,
+       boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMean-int-boolean...-">getMean</a></span>(int&nbsp;axis,
+       boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i13" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMinimum-boolean...-">getMinimum</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMinimum-int:A-boolean...-">getMinimum</a></span>(int[]&nbsp;axes,
+          boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMinimum-int-boolean...-">getMinimum</a></span>(int&nbsp;axis,
+          boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMinimumPositions-boolean...-">getMinimumPositions</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i17" 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><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getSum-boolean...-">getSum</a></span>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getSum-int:A-boolean...-">getSum</a></span>(int[]&nbsp;axes,
+      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getSum-int-boolean...-">getSum</a></span>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getVariance-boolean-boolean...-">getVariance</a></span>(boolean&nbsp;isWholePopulation,
+           boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getVariance-int:A-boolean-boolean...-">getVariance</a></span>(int[]&nbsp;axes,
+           boolean&nbsp;isWholePopulation,
+           boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getVariance-int-boolean-boolean...-">getVariance</a></span>(int&nbsp;axis,
+           boolean&nbsp;isWholePopulation,
+           boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#initialize-org.eclipse.january.dataset.Dataset-">initialize</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset)</code>&nbsp;</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#isDirty--">isDirty</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#isDirty-org.eclipse.january.dataset.Dataset-">isDirty</a></span>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset)</code>&nbsp;</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#setDirty--">setDirty</a></span>()</code>
+<div class="block">Call to indicate dataset has been modified so statistics are not up-to-date</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#setHash-int-">setHash</a></span>(int&nbsp;hash)</code>&nbsp;</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#setMaximumMinimum-T-T-boolean...-">setMaximumMinimum</a></span>(<a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="type parameter in StatisticsMetadata">T</a>&nbsp;maximum,
+                 <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="type parameter in StatisticsMetadata">T</a>&nbsp;minimum,
+                 boolean...&nbsp;ignoreInvalids)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#setMaximumMinimumSum-T-T-T-boolean...-">setMaximumMinimumSum</a></span>(<a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="type parameter in StatisticsMetadata">T</a>&nbsp;maximum,
+                    <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="type parameter in StatisticsMetadata">T</a>&nbsp;minimum,
+                    <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="type parameter in StatisticsMetadata">T</a>&nbsp;sum,
+                    boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#setMaximumPositions-java.util.List-boolean...-">setMaximumPositions</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i31" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#setMinimumPositions-java.util.List-boolean...-">setMinimumPositions</a></span>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>true if dataset has been modified</dd>
+</dl>
+</li>
+</ul>
+<a name="isDirty-org.eclipse.january.dataset.Dataset-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isDirty</h4>
+<pre>boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.47">isDirty</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="paramLabel">Parameters:</span></dt>
+<dd><code>dataset</code> - dataset whose statistics is stored by this metadata</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if dataset has been modified</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</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.52">setHash</a>(int&nbsp;hash)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>hash</code> - the hash to set</dd>
+</dl>
+</li>
+</ul>
+<a name="getHash-int:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHash</h4>
+<pre>int&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.58">getHash</a>(int[]&nbsp;shape)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shape</code> - </dd>
+<dt><span class="returnLabel">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.66">getMaximum</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>the maximum</dd>
+</dl>
+</li>
+</ul>
+<a name="setMaximumMinimum-java.lang.Object-java.lang.Object-boolean:A-">
+<!--   -->
+</a><a name="setMaximumMinimum-T-T-boolean...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMaximumMinimum</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.74">setMaximumMinimum</a>(<a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="type parameter in StatisticsMetadata">T</a>&nbsp;maximum,
+                                   <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="type parameter in StatisticsMetadata">T</a>&nbsp;minimum,
+                                   boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>maximum</code> - the maximum to set</dd>
+<dd><code>minimum</code> - the minimum to set</dd>
+<dd><code>ignoreInvalids</code> - see <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum-boolean...-"><code>getMaximum(boolean...)</code></a> for explanation</dd>
+</dl>
+</li>
+</ul>
+<a name="setMaximumMinimumSum-java.lang.Object-java.lang.Object-java.lang.Object-boolean:A-">
+<!--   -->
+</a><a name="setMaximumMinimumSum-T-T-T-boolean...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMaximumMinimumSum</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.83">setMaximumMinimumSum</a>(<a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="type parameter in StatisticsMetadata">T</a>&nbsp;maximum,
+                          <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="type parameter in StatisticsMetadata">T</a>&nbsp;minimum,
+                          <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="type parameter in StatisticsMetadata">T</a>&nbsp;sum,
+                          boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>maximum</code> - the maximum to set</dd>
+<dd><code>minimum</code> - the minimum to set</dd>
+<dd><code>sum</code> - the sum to set</dd>
+<dd><code>ignoreInvalids</code> - see <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum-boolean...-"><code>getMaximum(boolean...)</code></a> for explanation</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a name="setMaximumPositions-java.util.List-boolean...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMaximumPositions</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.89">setMaximumPositions</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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.95">setMinimumPositions</a>(<a href="https://docs.oracle.com/javase/8/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="paramLabel">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/8/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.101">getMaximumPositions</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.107">getMinimum</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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/8/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.113">getMinimumPositions</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.119">getCount</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.125">getMean</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.131">getSum</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">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.138">getVariance</a>(boolean&nbsp;isWholePopulation,
+                   boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">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="returnLabel">Returns:</span></dt>
+<dd>the variance of samples</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.145">getArgMaximum</a>(int&nbsp;axis,
+                      boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis</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="returnLabel">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.152">getArgMinimum</a>(int&nbsp;axis,
+                      boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis</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="returnLabel">Returns:</span></dt>
+<dd>the argument at which the minimum first occurs</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.161">getMaximum</a>(int&nbsp;axis,
+                   boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis</code> - </dd>
+<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="returnLabel">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.168">getMinimum</a>(int&nbsp;axis,
+                   boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis</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="returnLabel">Returns:</span></dt>
+<dd>the minimum</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.175">getCount</a>(int&nbsp;axis,
+                 boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis</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="returnLabel">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.182">getMean</a>(int&nbsp;axis,
+                boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis</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="returnLabel">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.189">getSum</a>(int&nbsp;axis,
+               boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis</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="returnLabel">Returns:</span></dt>
+<dd>the sum of samples</dd>
+</dl>
+</li>
+</ul>
+<a name="getVariance-int-boolean-boolean...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<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.197">getVariance</a>(int&nbsp;axis,
+                    boolean&nbsp;isWholePopulation,
+                    boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axis</code> - </dd>
+<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="returnLabel">Returns:</span></dt>
+<dd>the variance of samples</dd>
+</dl>
+</li>
+</ul>
+<a name="getMaximum-int:A-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.207">getMaximum</a>(int[]&nbsp;axes,
+                   boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axes</code> - </dd>
+<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="returnLabel">Returns:</span></dt>
+<dd>the maximum</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</dd>
+</dl>
+</li>
+</ul>
+<a name="getMinimum-int:A-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.215">getMinimum</a>(int[]&nbsp;axes,
+                   boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axes</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="returnLabel">Returns:</span></dt>
+<dd>the minimum</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</dd>
+</dl>
+</li>
+</ul>
+<a name="getCount-int:A-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.223">getCount</a>(int[]&nbsp;axes,
+                 boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axes</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="returnLabel">Returns:</span></dt>
+<dd>the number of samples</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</dd>
+</dl>
+</li>
+</ul>
+<a name="getMean-int:A-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.231">getMean</a>(int[]&nbsp;axes,
+                boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axes</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="returnLabel">Returns:</span></dt>
+<dd>the mean of samples</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</dd>
+</dl>
+</li>
+</ul>
+<a name="getSum-int:A-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.239">getSum</a>(int[]&nbsp;axes,
+               boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axes</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="returnLabel">Returns:</span></dt>
+<dd>the sum of samples</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</dd>
+</dl>
+</li>
+</ul>
+<a name="getVariance-int:A-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.248">getVariance</a>(int[]&nbsp;axes,
+                    boolean&nbsp;isWholePopulation,
+                    boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>axes</code> - </dd>
+<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="returnLabel">Returns:</span></dt>
+<dd>the variance of samples</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/Transposable.html" title="annotation in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/Transposable.html b/apidocs/2.3.0/org/eclipse/january/metadata/Transposable.html
new file mode 100644
index 0000000..4f791a5
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/Transposable.html
@@ -0,0 +1,169 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:11 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Transposable (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Transposable (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/Transposable.html" target="_top">Frames</a></li>
+<li><a href="Transposable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&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/8/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/8/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/8/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/8/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/8/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/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-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="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/Transposable.html" target="_top">Frames</a></li>
+<li><a href="Transposable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/UnitMetadata.html b/apidocs/2.3.0/org/eclipse/january/metadata/UnitMetadata.html
new file mode 100644
index 0000000..f2024e1
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/UnitMetadata.html
@@ -0,0 +1,267 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:11 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>UnitMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UnitMetadata (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UnitMetadata.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/Transposable.html" title="annotation in org.eclipse.january.metadata"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/UnitMetadata.html" target="_top">Frames</a></li>
+<li><a href="UnitMetadata.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.metadata</div>
+<h2 title="Interface UnitMetadata" class="title">Interface UnitMetadata</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/metadata/UnitMetadata.html#line.21">UnitMetadata</a>
+extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></pre>
+<div class="block">This metadata describes the unit associated with the quantity stored in a dataset</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>javax.measure.Unit&lt;?&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/UnitMetadata.html#getUnit--">getUnit</a></span>()</code>
+<div class="block">Get unit</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/january/metadata/UnitMetadata.html#initialize-javax.measure.Unit-">initialize</a></span>(javax.measure.Unit&lt;?&gt;&nbsp;unit)</code>
+<div class="block">Initialize unit metadata with given unit</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.january.metadata.MetadataType">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></h3>
+<code><a href="../../../../org/eclipse/january/metadata/MetadataType.html#clone--">clone</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="initialize-javax.measure.Unit-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>initialize</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/UnitMetadata.html#line.27">initialize</a>(javax.measure.Unit&lt;?&gt;&nbsp;unit)</pre>
+<div class="block">Initialize unit metadata with given unit</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>unit</code> - </dd>
+</dl>
+</li>
+</ul>
+<a name="getUnit--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getUnit</h4>
+<pre>javax.measure.Unit&lt;?&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/UnitMetadata.html#line.33">getUnit</a>()</pre>
+<div class="block">Get unit</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>unit of dataset</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UnitMetadata.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/Transposable.html" title="annotation in org.eclipse.january.metadata"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/UnitMetadata.html" target="_top">Frames</a></li>
+<li><a href="UnitMetadata.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/class-use/ARPESMetadata.html b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/ARPESMetadata.html
new file mode 100644
index 0000000..0e333cf
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/ARPESMetadata.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.metadata.ARPESMetadata (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/class-use/AxesMetadata.html b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/AxesMetadata.html
new file mode 100644
index 0000000..06e6356
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/AxesMetadata.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 (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.metadata.AxesMetadata (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">DynamicMetadataUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/DynamicMetadataUtils.html#refreshDynamicAxesMetadata-java.util.List-int:A-">refreshDynamicAxesMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/class-use/DimensionMetadata.html b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/DimensionMetadata.html
new file mode 100644
index 0000000..b72da5f
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/DimensionMetadata.html
@@ -0,0 +1,168 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.metadata.DimensionMetadata (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata">OriginMetadata</a></span></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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/class-use/Dirtiable.html b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/Dirtiable.html
new file mode 100644
index 0000000..0bbf4b4
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/Dirtiable.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.metadata.Dirtiable (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/class-use/DynamicConnectionInfo.html b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/DynamicConnectionInfo.html
new file mode 100644
index 0000000..f85979b
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/DynamicConnectionInfo.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.metadata.DynamicConnectionInfo (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/class-use/DynamicMetadataUtils.html b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/DynamicMetadataUtils.html
new file mode 100644
index 0000000..dd7f9c8
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/DynamicMetadataUtils.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.metadata.DynamicMetadataUtils (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/class-use/ErrorMetadata.html b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/ErrorMetadata.html
new file mode 100644
index 0000000..87fe0b5
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/ErrorMetadata.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 (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.metadata.ErrorMetadata (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">LazyDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata--">getErrorMetadata</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/class-use/IExtendedMetadata.html b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/IExtendedMetadata.html
new file mode 100644
index 0000000..64b0a1c
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/IExtendedMetadata.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.metadata.IExtendedMetadata (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/class-use/IMetadata.html b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/IMetadata.html
new file mode 100644
index 0000000..b05a77b
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/IMetadata.html
@@ -0,0 +1,268 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.metadata.IMetadata (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">IDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IDataset.html#getMetadata--">getMetadata</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <code>getFirstMetadata(IMetadata.class)</code> instead</span></div>
+</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="typeNameLabel">LazyDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata--">getMetadata</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</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="typeNameLabel">IMetadataProvider.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata--">getMetadata</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <code>getFirstMetadata(IMetadata.class)</code> instead</span></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 class="useSummary" 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="typeNameLabel">IMetaLoader.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/io/IMetaLoader.html#getMetadata--">getMetadata</a></span>()</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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata">IExtendedMetadata</a></span></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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Metadata</a></span></code>
+<div class="block">Basic implementation of metadata</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">Metadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/Metadata.html#clone--">clone</a></span>()</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="typeNameLabel">IMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/IMetadata.html#clone--">clone</a></span>()</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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/class-use/MaskMetadata.html b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/MaskMetadata.html
new file mode 100644
index 0000000..3a81514
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/MaskMetadata.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.metadata.MaskMetadata (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/class-use/Metadata.html b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/Metadata.html
new file mode 100644
index 0000000..6031ce8
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/Metadata.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.metadata.Metadata (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/class-use/MetadataFactory.html b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/MetadataFactory.html
new file mode 100644
index 0000000..c8133a8
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/MetadataFactory.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.metadata.MetadataFactory (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/class-use/MetadataType.html b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/MetadataType.html
new file mode 100644
index 0000000..9d1431e
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/MetadataType.html
@@ -0,0 +1,462 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.metadata.MetadataType (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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/8/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/8/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/8/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="typeNameLabel">LazyDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/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/8/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/8/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="typeNameLabel">LazyDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/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/8/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/8/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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#oMetadata">oMetadata</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/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/8/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/8/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="typeNameLabel">LazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#oMetadata">oMetadata</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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;<br>S</code></td>
+<td class="colLast"><span class="typeNameLabel">LazyDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata-java.lang.Class-">getFirstMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/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;<br>S</code></td>
+<td class="colLast"><span class="typeNameLabel">IMetadataProvider.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata-java.lang.Class-">getFirstMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/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;<br><a href="https://docs.oracle.com/javase/8/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="typeNameLabel">LazyDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata-java.lang.Class-">getMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/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;<br><a href="https://docs.oracle.com/javase/8/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="typeNameLabel">IMetadataProvider.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata-java.lang.Class-">getMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/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 class="useSummary" 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/8/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/8/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/8/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="typeNameLabel">LazyDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata--">copyMetadata</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/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/8/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/8/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="typeNameLabel">LazyDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata--">copyMetadata</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/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/8/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/8/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="typeNameLabel">LazyDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata-java.util.Map-">copyMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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="typeNameLabel">LazyDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata-java.util.Map-">copyMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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="typeNameLabel">LazyDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces-java.lang.Class-">findMetadataTypeSubInterfaces</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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="typeNameLabel">LazyDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</a></span>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</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/8/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/8/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/8/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="typeNameLabel">LazyDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadataMap-org.eclipse.january.dataset.ILazyDataset-boolean-">getMetadataMap</a></span>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;a,
+              boolean&nbsp;clone)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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="typeNameLabel">LazyDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata-org.eclipse.january.metadata.MetadataType-">addMetadata</a></span>(<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="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata-org.eclipse.january.metadata.MetadataType-">addMetadata</a></span>(<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="typeNameLabel">LazyDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a></span>(<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="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata-org.eclipse.january.metadata.MetadataType-">setMetadata</a></span>(<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 class="useSummary" 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="typeNameLabel">LazyDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata-java.lang.Class-">clearMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">ILazyDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata-java.lang.Class-">clearMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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="typeNameLabel">LazyDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata-java.util.Map-">copyMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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="typeNameLabel">LazyDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata-java.util.Map-">copyMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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="typeNameLabel">LazyDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces-java.lang.Class-">findMetadataTypeSubInterfaces</a></span>(<a href="https://docs.oracle.com/javase/8/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="typeNameLabel">LazyDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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="typeNameLabel">LazyDatasetBase.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata-java.util.Map-">restoreMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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/8/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 class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata">ARPESMetadata</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata">AxesMetadata</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata">DimensionMetadata</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata">ErrorMetadata</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata">IExtendedMetadata</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/MaskMetadata.html" title="interface in org.eclipse.january.metadata">MaskMetadata</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata">OriginMetadata</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata">PeemMetadata</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a>&lt;T&gt;</span></code>
+<div class="block">Store standard statistics</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata">UnitMetadata</a></span></code>
+<div class="block">This metadata describes the unit associated with the quantity stored in a dataset</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata">DynamicConnectionInfo</a></span></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><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Metadata</a></span></code>
+<div class="block">Basic implementation of metadata</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" 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;<br>T</code></td>
+<td class="colLast"><span class="typeNameLabel">MetadataFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/MetadataFactory.html#createMetadata-java.lang.Class-java.lang.Object...-">createMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/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/8/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;<br>void</code></td>
+<td class="colLast"><span class="typeNameLabel">MetadataFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/MetadataFactory.html#registerClass-java.lang.Class-">registerClass</a></span>(<a href="https://docs.oracle.com/javase/8/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 class="useSummary" 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="typeNameLabel">DynamicConnectionInfo.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html#clone--">clone</a></span>()</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="typeNameLabel">MetadataType.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/metadata/MetadataType.html#clone--">clone</a></span>()</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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/class-use/OriginMetadata.html b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/OriginMetadata.html
new file mode 100644
index 0000000..66bed0c
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/OriginMetadata.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.metadata.OriginMetadata (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/class-use/PeemMetadata.html b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/PeemMetadata.html
new file mode 100644
index 0000000..1da6cd6
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/PeemMetadata.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.metadata.PeemMetadata (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/class-use/Reshapeable.html b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/Reshapeable.html
new file mode 100644
index 0000000..67d1621
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/Reshapeable.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.metadata.Reshapeable (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/class-use/Sliceable.html b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/Sliceable.html
new file mode 100644
index 0000000..a7f270e
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/Sliceable.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.metadata.Sliceable (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/class-use/StatisticsMetadata.html b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/StatisticsMetadata.html
new file mode 100644
index 0000000..9f08903
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/StatisticsMetadata.html
@@ -0,0 +1,174 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.metadata.StatisticsMetadata (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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 class="useSummary" 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 class="useSummary" 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="typeNameLabel">AbstractCompoundDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getCompoundStats--">getCompoundStats</a></span>()</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/8/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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getStats--">getStats</a></span>()</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/8/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="typeNameLabel">AbstractDataset.</span><code><span class="memberNameLink"><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getStringStats--">getStringStats</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/class-use/Transposable.html b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/Transposable.html
new file mode 100644
index 0000000..7caa45a
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/Transposable.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.eclipse.january.metadata.Transposable (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/class-use/UnitMetadata.html b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/UnitMetadata.html
new file mode 100644
index 0000000..869d795
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/class-use/UnitMetadata.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.metadata.UnitMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.eclipse.january.metadata.UnitMetadata (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/UnitMetadata.html" target="_top">Frames</a></li>
+<li><a href="UnitMetadata.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.metadata.UnitMetadata" class="title">Uses of Interface<br>org.eclipse.january.metadata.UnitMetadata</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.metadata.UnitMetadata</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/UnitMetadata.html" target="_top">Frames</a></li>
+<li><a href="UnitMetadata.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/package-frame.html b/apidocs/2.3.0/org/eclipse/january/metadata/package-frame.html
new file mode 100644
index 0000000..ee58962
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/package-frame.html
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</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"><span class="interfaceName">ARPESMetadata</span></a></li>
+<li><a href="AxesMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><span class="interfaceName">AxesMetadata</span></a></li>
+<li><a href="DimensionMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><span class="interfaceName">DimensionMetadata</span></a></li>
+<li><a href="ErrorMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><span class="interfaceName">ErrorMetadata</span></a></li>
+<li><a href="IExtendedMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><span class="interfaceName">IExtendedMetadata</span></a></li>
+<li><a href="IMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><span class="interfaceName">IMetadata</span></a></li>
+<li><a href="MaskMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><span class="interfaceName">MaskMetadata</span></a></li>
+<li><a href="MetadataType.html" title="interface in org.eclipse.january.metadata" target="classFrame"><span class="interfaceName">MetadataType</span></a></li>
+<li><a href="OriginMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><span class="interfaceName">OriginMetadata</span></a></li>
+<li><a href="PeemMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><span class="interfaceName">PeemMetadata</span></a></li>
+<li><a href="StatisticsMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><span class="interfaceName">StatisticsMetadata</span></a></li>
+<li><a href="UnitMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><span class="interfaceName">UnitMetadata</span></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.3.0/org/eclipse/january/metadata/package-summary.html b/apidocs/2.3.0/org/eclipse/january/metadata/package-summary.html
new file mode 100644
index 0000000..4f1234f
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/package-summary.html
@@ -0,0 +1,279 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.eclipse.january.metadata (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<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&nbsp;Package</a></li>
+<li>Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata">ARPESMetadata</a></td>
+<td class="colLast">
+<div class="block">This metadata describes ARPES-related information</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata">AxesMetadata</a></td>
+<td class="colLast">
+<div class="block">This metadata describes any axis information associated with a dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata">DimensionMetadata</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata">ErrorMetadata</a></td>
+<td class="colLast">
+<div class="block">This metadata describes any error associated with a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata">IExtendedMetadata</a></td>
+<td class="colLast">
+<div class="block">This is an interface that has been designed to add information about a file in addition to
+ information which has been implemented in IMetadata.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></td>
+<td class="colLast">
+<div class="block">This interface describes the minimal metadata information that should be 
+ associated with a Dataset or DataHolder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/MaskMetadata.html" title="interface in org.eclipse.january.metadata">MaskMetadata</a></td>
+<td class="colLast">
+<div class="block">This metadata describes masking information associated with a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></td>
+<td class="colLast">
+<div class="block">This is a marker interface for all metadata items which can be associated
+ with a dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata">OriginMetadata</a></td>
+<td class="colLast">
+<div class="block">Defines the origin of a dataset which is a slice of a parent dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata">PeemMetadata</a></td>
+<td class="colLast">
+<div class="block">This metadata describes Peem-related information</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a>&lt;T&gt;</td>
+<td class="colLast">
+<div class="block">Store standard statistics</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata">UnitMetadata</a></td>
+<td class="colLast">
+<div class="block">This metadata describes the unit associated with the quantity stored in a dataset</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" 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="typeSummary" 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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<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&nbsp;Package</a></li>
+<li>Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/package-tree.html b/apidocs/2.3.0/org/eclipse/january/metadata/package-tree.html
new file mode 100644
index 0000000..50134bc
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/package-tree.html
@@ -0,0 +1,216 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.eclipse.january.metadata Class Hierarchy (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul 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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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="packageHierarchyLabel">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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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/8/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">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="typeNameLink">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="typeNameLink">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/8/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="typeNameLink">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="typeNameLink">MetadataType</span></a> (also extends java.io.<a href="https://docs.oracle.com/javase/8/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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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/8/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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">StatisticsMetadata</span></a>&lt;T&gt;</li>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">UnitMetadata</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io"><span class="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">MetadataType</span></a> (also extends java.lang.<a href="https://docs.oracle.com/javase/8/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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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/8/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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">StatisticsMetadata</span></a>&lt;T&gt;</li>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">UnitMetadata</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>
+<ul>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/Transposable.html" title="annotation in org.eclipse.january.metadata"><span class="typeNameLink">Transposable</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/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="typeNameLink">Reshapeable</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/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="typeNameLink">Sliceable</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/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="typeNameLink">Dirtiable</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul 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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/metadata/package-use.html b/apidocs/2.3.0/org/eclipse/january/metadata/package-use.html
new file mode 100644
index 0000000..2024309
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/metadata/package-use.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 (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.eclipse.january.metadata (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul 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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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 class="useSummary" 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 class="useSummary" 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 class="useSummary" 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 class="useSummary" 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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul 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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/package-frame.html b/apidocs/2.3.0/org/eclipse/january/package-frame.html
new file mode 100644
index 0000000..c429ab7
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/package-frame.html
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</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"><span class="interfaceName">IMonitor</span></a></li>
+<li><a href="INameable.html" title="interface in org.eclipse.january" target="classFrame"><span class="interfaceName">INameable</span></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.3.0/org/eclipse/january/package-summary.html b/apidocs/2.3.0/org/eclipse/january/package-summary.html
new file mode 100644
index 0000000..1522276
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/package-summary.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 (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.eclipse.january (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<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&nbsp;Package</li>
+<li><a href="../../../org/eclipse/january/dataset/package-summary.html">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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="typeSummary" 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="typeSummary" 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="typeSummary" 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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<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&nbsp;Package</li>
+<li><a href="../../../org/eclipse/january/dataset/package-summary.html">Next&nbsp;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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/package-tree.html b/apidocs/2.3.0/org/eclipse/january/package-tree.html
new file mode 100644
index 0000000..8011d03
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/package-tree.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 (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.eclipse.january Class Hierarchy (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul 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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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="packageHierarchyLabel">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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">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="typeNameLink">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/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">INameable</span></a></li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul 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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/org/eclipse/january/package-use.html b/apidocs/2.3.0/org/eclipse/january/package-use.html
new file mode 100644
index 0000000..ef24998
--- /dev/null
+++ b/apidocs/2.3.0/org/eclipse/january/package-use.html
@@ -0,0 +1,244 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<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="2019-09-30">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.eclipse.january (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul 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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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 class="useSummary" 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 class="useSummary" 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 class="useSummary" 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 class="useSummary" 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 class="useSummary" 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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul 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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/overview-frame.html b/apidocs/2.3.0/overview-frame.html
new file mode 100644
index 0000000..350efd1
--- /dev/null
+++ b/apidocs/2.3.0/overview-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 (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Overview List (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<div class="indexHeader"><span><a href="allclasses-frame.html" target="packageFrame">All&nbsp;Classes</a></span></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.3.0/overview-summary.html b/apidocs/2.3.0/overview-summary.html
new file mode 100644
index 0000000..866e328
--- /dev/null
+++ b/apidocs/2.3.0/overview-summary.html
@@ -0,0 +1,152 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Overview (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Overview (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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.3.0 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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/overview-tree.html b/apidocs/2.3.0/overview-tree.html
new file mode 100644
index 0000000..ddc848b
--- /dev/null
+++ b/apidocs/2.3.0/overview-tree.html
@@ -0,0 +1,668 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:18 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Class Hierarchy (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Class Hierarchy (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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="packageHierarchyLabel">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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">DynamicMetadataUtils</span></a></li>
+<li type="circle">java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/EventObject.html?is-external=true" title="class or interface in java.util"><span class="typeNameLink">EventObject</span></a> (implements java.io.<a href="https://docs.oracle.com/javase/8/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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">BooleanIterator</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">BooleanBroadcastIterator</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">BooleanContiguousIterator</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">BooleanNullIterator</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">ContiguousIteratorWithPosition</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IntegerIterator.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">SliceNDIterator</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/InterfaceUtils.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">InterfaceUtils</span></a></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="typeNameLink">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="typeNameLink">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/8/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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">RGBDataset</span></a> (implements java.lang.<a href="https://docs.oracle.com/javase/8/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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">LazyDataset</span></a> (implements java.lang.<a href="https://docs.oracle.com/javase/8/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/8/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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">MetadataFactory</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset"><span class="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">Slice</span></a> (implements java.lang.<a href="https://docs.oracle.com/javase/8/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/8/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="typeNameLink">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="typeNameLink">Stats</span></a></li>
+<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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/8/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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/8/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="typeNameLink">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="typeNameLink">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="typeNameLink">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/8/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="typeNameLink">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="typeNameLink">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="typeNameLink">MetadataType</span></a> (also extends java.io.<a href="https://docs.oracle.com/javase/8/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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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/8/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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">StatisticsMetadata</span></a>&lt;T&gt;</li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">UnitMetadata</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">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="typeNameLink">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="typeNameLink">StatisticsMetadata</span></a>&lt;T&gt;</li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">UnitMetadata</span></a></li>
+</ul>
+</li>
+<li type="circle">java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util"><span class="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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/8/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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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/8/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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">UnaryOperation</span></a></li>
+</ul>
+</li>
+<li type="circle">java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io"><span class="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">MetadataType</span></a> (also extends java.lang.<a href="https://docs.oracle.com/javase/8/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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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/8/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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">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="typeNameLink">StatisticsMetadata</span></a>&lt;T&gt;</li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">UnitMetadata</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">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="typeNameLink">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="typeNameLink">StatisticsMetadata</span></a>&lt;T&gt;</li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata"><span class="typeNameLink">UnitMetadata</span></a></li>
+</ul>
+</li>
+</ul>
+<h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>
+<ul>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/Transposable.html" title="annotation in org.eclipse.january.metadata"><span class="typeNameLink">Transposable</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/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="typeNameLink">Reshapeable</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/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="typeNameLink">Sliceable</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/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="typeNameLink">Dirtiable</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/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/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/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/8/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="typeNameLink">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="typeNameLink">Comparisons.Monotonicity</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/package-list b/apidocs/2.3.0/package-list
new file mode 100644
index 0000000..e9f2c05
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/packages b/apidocs/2.3.0/packages
new file mode 100644
index 0000000..db45be9
--- /dev/null
+++ b/apidocs/2.3.0/packages
@@ -0,0 +1,4 @@
+org.eclipse.january.metadata
+org.eclipse.january.dataset
+org.eclipse.january
+org.eclipse.january.io
\ No newline at end of file
diff --git a/apidocs/2.3.0/script.js b/apidocs/2.3.0/script.js
new file mode 100644
index 0000000..b346356
--- /dev/null
+++ b/apidocs/2.3.0/script.js
@@ -0,0 +1,30 @@
+function show(type)
+{
+    count = 0;
+    for (var key in methods) {
+        var row = document.getElementById(key);
+        if ((methods[key] &  type) != 0) {
+            row.style.display = '';
+            row.className = (count++ % 2) ? rowColor : altColor;
+        }
+        else
+            row.style.display = 'none';
+    }
+    updateTabs(type);
+}
+
+function updateTabs(type)
+{
+    for (var value in tabs) {
+        var sNode = document.getElementById(tabs[value][0]);
+        var spanNode = sNode.firstChild;
+        if (value == type) {
+            sNode.className = activeTableTab;
+            spanNode.innerHTML = tabs[value][1];
+        }
+        else {
+            sNode.className = tableTab;
+            spanNode.innerHTML = "<a href=\"javascript:show("+ value + ");\">" + tabs[value][1] + "</a>";
+        }
+    }
+}
diff --git a/apidocs/2.3.0/serialized-form.html b/apidocs/2.3.0/serialized-form.html
new file mode 100644
index 0000000..e24bec8
--- /dev/null
+++ b/apidocs/2.3.0/serialized-form.html
@@ -0,0 +1,917 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_222) on Mon Sep 30 16:21:17 BST 2019 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Serialized Form (The Eclipse January API Documentation)</title>
+<meta name="date" content="2019-09-30">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Serialized Form (The Eclipse January API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.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/8/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">
+<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">
+<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/8/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/8/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">
+<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>clazz</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">T</a>&gt; clazz</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">
+<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">
+<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">
+<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">
+<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">
+<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">
+<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">
+<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">
+<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/8/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">
+<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/8/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/8/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">
+<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">
+<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">
+<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">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>oMetadata</h4>
+<pre><a href="https://docs.oracle.com/javase/8/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/8/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/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">V</a>&gt; oMetadata</pre>
+</li>
+<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>clazz</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">T</a>&gt; clazz</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>begSlice</h4>
+<pre>int[] begSlice</pre>
+</li>
+<li class="blockList">
+<h4>delSlice</h4>
+<pre>int[] delSlice</pre>
+</li>
+<li class="blockList">
+<h4>sShape</h4>
+<pre>int[] sShape</pre>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</dd>
+</dl>
+</li>
+<li class="blockList">
+<h4>padding</h4>
+<pre>int[] padding</pre>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.2</dd>
+</dl>
+</li>
+<li class="blockListLast">
+<h4>map</h4>
+<pre>int[] map</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/8/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">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>name</h4>
+<pre><a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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">
+<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="blockListLast">
+<h4>checkingThread</h4>
+<pre><a href="https://docs.oracle.com/javase/8/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">
+<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/8/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">
+<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">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>data</h4>
+<pre><a href="https://docs.oracle.com/javase/8/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">
+<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/8/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">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>start</h4>
+<pre><a href="https://docs.oracle.com/javase/8/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/8/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">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>data</h4>
+<pre><a href="https://docs.oracle.com/javase/8/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/8/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">
+<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/8/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">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>metadata</h4>
+<pre><a href="https://docs.oracle.com/javase/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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/8/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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<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&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/DatasetException.html b/apidocs/2.3.0/src-html/org/eclipse/january/DatasetException.html
new file mode 100644
index 0000000..91a96ac
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/IMonitor.Stub.html b/apidocs/2.3.0/src-html/org/eclipse/january/IMonitor.Stub.html
new file mode 100644
index 0000000..1337199
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/IMonitor.html b/apidocs/2.3.0/src-html/org/eclipse/january/IMonitor.html
new file mode 100644
index 0000000..1337199
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/INameable.html b/apidocs/2.3.0/src-html/org/eclipse/january/INameable.html
new file mode 100644
index 0000000..6061a3e
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/MetadataException.html b/apidocs/2.3.0/src-html/org/eclipse/january/MetadataException.html
new file mode 100644
index 0000000..8b37028
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html
new file mode 100644
index 0000000..bbd2bc1
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html
@@ -0,0 +1,812 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.Arrays;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import org.eclipse.january.DatasetException;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import org.eclipse.january.IMonitor;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.eclipse.january.metadata.StatisticsMetadata;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import org.eclipse.january.metadata.internal.StatisticsMetadataImpl;<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>/**<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * Generic container class for data that is compound in nature<a name="line.23"></a>
+<span class="sourceLineNo">024</span> * <a name="line.24"></a>
+<span class="sourceLineNo">025</span> * Each subclass has an array of compound types, items of this array are composed of primitive types<a name="line.25"></a>
+<span class="sourceLineNo">026</span> * <a name="line.26"></a>
+<span class="sourceLineNo">027</span> * Data items can be Complex, Vector, etc<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * <a name="line.28"></a>
+<span class="sourceLineNo">029</span> */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>public abstract class AbstractCompoundDataset extends AbstractDataset implements CompoundDataset {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        // pin UID to base class<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        protected int isize; // number of elements per item<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>        @Override<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        public int getElementsPerItem() {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                return isize;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        }<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>        @Override<a name="line.41"></a>
+<span class="sourceLineNo">042</span>        protected int get1DIndex(final int i) {<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                int n = super.get1DIndex(i);<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                return stride == null ? isize * n : n;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>        }<a name="line.45"></a>
+<span class="sourceLineNo">046</span><a name="line.46"></a>
+<span class="sourceLineNo">047</span>        @Override<a name="line.47"></a>
+<span class="sourceLineNo">048</span>        protected int get1DIndex(final int i, final int j) {<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                int n = super.get1DIndex(i, j);<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                return stride == null ? isize * n : n;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>        }<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>        @Override<a name="line.53"></a>
+<span class="sourceLineNo">054</span>        protected int get1DIndexFromShape(final int[] n) {<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                return isize * super.get1DIndexFromShape(n);<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        }<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>        @Override<a name="line.58"></a>
+<span class="sourceLineNo">059</span>        public Dataset getUniqueItems() {<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                throw new UnsupportedOperationException("Cannot sort compound datasets");<a name="line.60"></a>
+<span class="sourceLineNo">061</span>        }<a name="line.61"></a>
+<span class="sourceLineNo">062</span><a name="line.62"></a>
+<span class="sourceLineNo">063</span>        @Override<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        public IndexIterator getIterator(final boolean withPosition) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                if (stride != null) {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                        return base.getSize() == 1 ? <a name="line.66"></a>
+<span class="sourceLineNo">067</span>                                        (withPosition ? new PositionIterator(offset, shape) :  new SingleItemIterator(offset, size)) : new StrideIterator(isize, shape, stride, offset);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                }<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                return withPosition ? getSliceIterator(null, null, null) :<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                        new ContiguousIterator(size, isize);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        }<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>        /**<a name="line.73"></a>
+<span class="sourceLineNo">074</span>         * Get an iterator that picks out the chosen element from all items<a name="line.74"></a>
+<span class="sourceLineNo">075</span>         * @param element<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * @return an iterator<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        public IndexIterator getIterator(int element) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                if (element &lt; 0)<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        element += isize;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        logger.error("Invalid choice of element: {}/{}", element, isize);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                        throw new IllegalArgumentException("Invalid choice of element: " + element + "/" + isize);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                }<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>                final IndexIterator it;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                if (stride != null) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                        it = base.getSize() == 1 ? new SingleItemIterator(offset + element, size) : new StrideIterator(isize, shape, stride, offset, element);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                } else {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                        it = new ContiguousIterator(size, isize, element);<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                }<a name="line.91"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span>                return it;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>        }<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>        @Override<a name="line.96"></a>
+<span class="sourceLineNo">097</span>        public IndexIterator getSliceIterator(SliceND slice) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                if (ShapeUtils.calcLongSize(slice.getShape()) == 0) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        return new NullIterator(shape, slice.getShape());<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                if (stride != null) {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                        return new StrideIterator(isize, shape, stride, offset, slice);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                }<a name="line.103"></a>
+<span class="sourceLineNo">104</span><a name="line.104"></a>
+<span class="sourceLineNo">105</span>                return new SliceIterator(shape, size, isize, slice);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        }<a name="line.106"></a>
+<span class="sourceLineNo">107</span><a name="line.107"></a>
+<span class="sourceLineNo">108</span>        /**<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         * Constructor required for serialisation.<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         */<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        public AbstractCompoundDataset() {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        }<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>        @Override<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        public boolean equals(Object obj) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                if (!super.equals(obj)) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                        return false;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                }<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>                CompoundDataset other = (CompoundDataset) obj;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                return isize == other.getElementsPerItem();<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        }<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>        @Override<a name="line.124"></a>
+<span class="sourceLineNo">125</span>        public int hashCode() {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                return getCompoundStats().getHash(shape);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>        }<a name="line.127"></a>
+<span class="sourceLineNo">128</span><a name="line.128"></a>
+<span class="sourceLineNo">129</span>        @Override<a name="line.129"></a>
+<span class="sourceLineNo">130</span>        public CompoundDataset cast(boolean repeat, int dtype, int isize) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                return (CompoundDataset) super.cast(repeat, dtype, isize);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        }<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span>        @Override<a name="line.134"></a>
+<span class="sourceLineNo">135</span>        public CompoundDataset cast(int dtype) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                return (CompoundDataset) super.cast(dtype);<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        }<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>        @Override<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        abstract public AbstractCompoundDataset clone();<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>        @Override<a name="line.142"></a>
+<span class="sourceLineNo">143</span>        public CompoundDataset flatten() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                return (CompoundDataset) super.flatten();<a name="line.144"></a>
+<span class="sourceLineNo">145</span>        }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>        @Override<a name="line.147"></a>
+<span class="sourceLineNo">148</span>        public CompoundDataset getBy1DIndex(IntegerDataset index) {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                return (CompoundDataset) super.getBy1DIndex(index);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>        }<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>        @Override<a name="line.152"></a>
+<span class="sourceLineNo">153</span>        public CompoundDataset getByBoolean(Dataset selection) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                return (CompoundDataset) super.getByBoolean(selection);<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>        @Override<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        public CompoundDataset getByIndexes(Object... indexes) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                return (CompoundDataset) super.getByIndexes(indexes);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>        }<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>        @Override<a name="line.162"></a>
+<span class="sourceLineNo">163</span>        public CompoundDataset getSlice(IMonitor mon, int[] start, int[] stop, int[] step) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                return (CompoundDataset) super.getSlice(mon, start, stop, step);<a name="line.164"></a>
+<span class="sourceLineNo">165</span>        }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>        @Override<a name="line.167"></a>
+<span class="sourceLineNo">168</span>        public CompoundDataset getSlice(IMonitor mon, Slice... slice) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                return (CompoundDataset) super.getSlice(mon, slice);<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        }<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>        @Override<a name="line.172"></a>
+<span class="sourceLineNo">173</span>        public CompoundDataset getSlice(IMonitor mon, SliceND slice) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                return (CompoundDataset) super.getSlice(mon, slice);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        }<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>        @Override<a name="line.177"></a>
+<span class="sourceLineNo">178</span>        public CompoundDataset getSlice(int[] start, int[] stop, int[] step) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                return (CompoundDataset) super.getSlice(start, stop, step);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>        }<a name="line.180"></a>
+<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">182</span>        @Override<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        public CompoundDataset getSlice(Slice... slice) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                return (CompoundDataset) super.getSlice(slice);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>        }<a name="line.185"></a>
+<span class="sourceLineNo">186</span><a name="line.186"></a>
+<span class="sourceLineNo">187</span>        @Override<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        public CompoundDataset getSlice(SliceND slice) {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                return (CompoundDataset) super.getSlice(slice);<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>        @Override<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        abstract public AbstractCompoundDataset getSlice(SliceIterator iterator);<a name="line.193"></a>
+<span class="sourceLineNo">194</span><a name="line.194"></a>
+<span class="sourceLineNo">195</span>        @Override<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        public CompoundDataset getSliceView(int[] start, int[] stop, int[] step) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                return (CompoundDataset) super.getSliceView(start, stop, step);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        }<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>        @Override<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        public CompoundDataset getSliceView(Slice... slice) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                return (CompoundDataset) super.getSliceView(slice);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        }<a name="line.203"></a>
+<span class="sourceLineNo">204</span><a name="line.204"></a>
+<span class="sourceLineNo">205</span>        @Override<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        public CompoundDataset getSliceView(SliceND slice) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                return (CompoundDataset) super.getSliceView(slice);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        }<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>        @Override<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        public CompoundDataset getTransposedView(int... axes) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                return (CompoundDataset) super.getTransposedView(axes);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        }<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>        @Override<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        abstract public AbstractCompoundDataset getView(boolean deepCopyMetadata);<a name="line.216"></a>
+<span class="sourceLineNo">217</span><a name="line.217"></a>
+<span class="sourceLineNo">218</span>        @Override<a name="line.218"></a>
+<span class="sourceLineNo">219</span>        public CompoundDataset getBroadcastView(int... broadcastShape) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                return (CompoundDataset) super.getBroadcastView(broadcastShape);<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>        @Override<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        public CompoundDataset ifloorDivide(Object o) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                return (CompoundDataset) super.ifloorDivide(o);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        }<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>        @Override<a name="line.228"></a>
+<span class="sourceLineNo">229</span>        public CompoundDataset reshape(int... shape) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                return (CompoundDataset) super.reshape(shape);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>        @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        public CompoundDataset setSlice(Object obj, int[] start, int[] stop, int[] step) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                return (CompoundDataset) super.setSlice(obj, start, stop, step);<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        }<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>        @Override<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        public CompoundDataset setSlice(Object object, Slice... slice) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                return (CompoundDataset) super.setSlice(object, slice);<a name="line.240"></a>
+<span class="sourceLineNo">241</span>        }<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>        @Override<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        public CompoundDataset sort(Integer axis) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                throw new UnsupportedOperationException("Cannot sort dataset");<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>        @Override<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        public CompoundDataset squeezeEnds() {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                return (CompoundDataset) super.squeezeEnds();<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        }<a name="line.251"></a>
+<span class="sourceLineNo">252</span><a name="line.252"></a>
+<span class="sourceLineNo">253</span>        @Override<a name="line.253"></a>
+<span class="sourceLineNo">254</span>        public CompoundDataset squeeze() {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                return (CompoundDataset) super.squeeze();<a name="line.255"></a>
+<span class="sourceLineNo">256</span>        }<a name="line.256"></a>
+<span class="sourceLineNo">257</span><a name="line.257"></a>
+<span class="sourceLineNo">258</span>        @Override<a name="line.258"></a>
+<span class="sourceLineNo">259</span>        public CompoundDataset squeeze(boolean onlyFromEnd) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                return (CompoundDataset) super.squeeze(onlyFromEnd);<a name="line.260"></a>
+<span class="sourceLineNo">261</span>        }<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span>        @Override<a name="line.263"></a>
+<span class="sourceLineNo">264</span>        public CompoundDataset swapAxes(int axis1, int axis2) {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                return (CompoundDataset) super.swapAxes(axis1, axis2);<a name="line.265"></a>
+<span class="sourceLineNo">266</span>        }<a name="line.266"></a>
+<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">268</span>        @Override<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        public synchronized CompoundDataset synchronizedCopy() {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                return clone();<a name="line.270"></a>
+<span class="sourceLineNo">271</span>        }<a name="line.271"></a>
+<span class="sourceLineNo">272</span><a name="line.272"></a>
+<span class="sourceLineNo">273</span>        @Override<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        public CompoundDataset transpose(int... axes) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                return (CompoundDataset) super.transpose(axes);<a name="line.275"></a>
+<span class="sourceLineNo">276</span>        }<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>        /**<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         * @since 2.0<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         * @return first value<a name="line.280"></a>
+<span class="sourceLineNo">281</span>         */<a name="line.281"></a>
+<span class="sourceLineNo">282</span>        abstract protected double getFirstValue();<a name="line.282"></a>
+<span class="sourceLineNo">283</span><a name="line.283"></a>
+<span class="sourceLineNo">284</span>        abstract protected double getFirstValue(final int i);<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>        abstract protected double getFirstValue(final int i, final int j);<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>        abstract protected double getFirstValue(final int...pos);<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() {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                return getFirstValue() != 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) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                return getFirstValue(i) != 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 i, final int j) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                return getFirstValue(i, j) != 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 boolean getBoolean(final int... pos) {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                return getFirstValue(pos) != 0;<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() {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                return (byte) getFirstValue();<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) {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                return (byte) getFirstValue(i);<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 i, final int j) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                return (byte) getFirstValue(i, j);<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 byte getByte(final int... pos) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                return (byte) getFirstValue(pos);<a name="line.327"></a>
+<span class="sourceLineNo">328</span>        }<a name="line.328"></a>
+<span class="sourceLineNo">329</span><a name="line.329"></a>
+<span class="sourceLineNo">330</span>        @Override<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        public short getShort() {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                return (short) getFirstValue();<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) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                return (short) getFirstValue(i);<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 i, final int j) {<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                return (short) getFirstValue(i, j);<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 short getShort(final int... pos) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                return (short) getFirstValue(pos);<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() {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                return (int) getFirstValue();<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) {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                return (int) getFirstValue(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>        @Override<a name="line.360"></a>
+<span class="sourceLineNo">361</span>        public int getInt(final int i, final int j) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                return (int) getFirstValue(i, j);<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 int getInt(final int... pos) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                return (int) getFirstValue(pos);<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() {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                return (long) getFirstValue();<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) {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                return (long) getFirstValue(i);<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 i, final int j) {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                return (long) getFirstValue(i, j);<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 long getLong(final int... pos) {<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                return (long) getFirstValue(pos);<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() {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                return (float) getFirstValue();<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) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                return (float) getFirstValue(i);<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 i, final int j) {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>                return (float) getFirstValue(i, j);<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 float getFloat(final int... pos) {<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                return (float) getFirstValue(pos);<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() {<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                return getFirstValue();<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) {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                return getFirstValue(i);<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 i, final int j) {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                return getFirstValue(i, j);<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 double getDouble(final int... pos) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                return getFirstValue(pos);<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) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                getDoubleArrayAbs(getFirst1DIndex(), 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) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                getDoubleArrayAbs(get1DIndex(i), 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 i, final int j) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                getDoubleArrayAbs(get1DIndex(i, j), 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>        @Override<a name="line.445"></a>
+<span class="sourceLineNo">446</span>        public void getDoubleArray(final double[] darray, final int... pos) {<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                getDoubleArrayAbs(get1DIndex(pos), darray);<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>        /**<a name="line.450"></a>
+<span class="sourceLineNo">451</span>         * @return statistics metadata<a name="line.451"></a>
+<span class="sourceLineNo">452</span>         * @since 2.0<a name="line.452"></a>
+<span class="sourceLineNo">453</span>         */<a name="line.453"></a>
+<span class="sourceLineNo">454</span>        @SuppressWarnings("unchecked")<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        protected StatisticsMetadata&lt;double[]&gt; getCompoundStats() {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                StatisticsMetadata&lt;double[]&gt; md = getFirstMetadata(StatisticsMetadata.class);<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                if (md == null || md.isDirty(this)) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        md = new StatisticsMetadataImpl&lt;double[]&gt;();<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                        md.initialize(this);<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                        setMetadata(md);<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                }<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                return md;<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 argMax(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 IntegerDataset argMin(int axis, 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 Number max(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 CompoundDataset max(int axis, 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 Number min(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>        @Override<a name="line.495"></a>
+<span class="sourceLineNo">496</span>        public CompoundDataset min(int axis, boolean... ignoreInvalids) {<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                logger.error("Cannot compare compound numbers");<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                throw new UnsupportedOperationException("Cannot compare compound numbers");<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>        @Override<a name="line.502"></a>
+<span class="sourceLineNo">503</span>        public int[] maxPos(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 int[] minPos(boolean... ignoreNaNs) {<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 CompoundDataset peakToPeak(int axis, boolean... ignoreInvalids) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                logger.error("Cannot compare compound numbers");<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                throw new UnsupportedOperationException("Cannot compare compound numbers");<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 double[] maxItem() {<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                return getCompoundStats().getMaximum();<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 double[] minItem() {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                return getCompoundStats().getMinimum();<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 mean(boolean... ignoreInvalids) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                return getCompoundStats().getMean();<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 CompoundDataset mean(int axis, boolean... ignoreInvalids) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                return (CompoundDataset) super.mean(axis, ignoreInvalids);<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 CompoundDataset product(int axis, boolean... ignoreInvalids) {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                return (CompoundDataset) super.product(axis, ignoreInvalids);<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 CompoundDataset rootMeanSquare(int axis, boolean... ignoreInvalids) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                return (CompoundDataset) super.rootMeanSquare(axis, ignoreInvalids);<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>        @Override<a name="line.550"></a>
+<span class="sourceLineNo">551</span>        public CompoundDataset stdDeviation(int axis) {<a name="line.551"></a>
+<span class="sourceLineNo">552</span>                return (CompoundDataset) super.stdDeviation(axis, false);<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 CompoundDataset stdDeviation(int axis, boolean isWholePopulation, boolean... ignoreInvalids) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                return (CompoundDataset) super.stdDeviation(axis, isWholePopulation, ignoreInvalids);<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 Object sum(boolean... ignoreInvalids) {<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                return getCompoundStats().getSum();<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 CompoundDataset sum(int axis, boolean... ignoreInvalids) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                return (CompoundDataset) super.sum(axis, ignoreInvalids);<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 double variance(boolean isWholePopulation, boolean... ignoreInvalids) {<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                return getCompoundStats().getVariance(isWholePopulation, ignoreInvalids);<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 CompoundDataset variance(int axis) {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                return (CompoundDataset) super.variance(axis, false);<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 CompoundDataset variance(int axis, boolean isWholePopulation, boolean... ignoreInvalids) {<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                return (CompoundDataset) super.variance(axis, isWholePopulation, ignoreInvalids);<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 double rootMeanSquare(boolean... ignoreInvalids) {<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                StatisticsMetadata&lt;double[]&gt; stats = getCompoundStats();<a name="line.587"></a>
+<span class="sourceLineNo">588</span><a name="line.588"></a>
+<span class="sourceLineNo">589</span>                double[] mean = stats.getMean(ignoreInvalids);<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                double result = 0;<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        double m = mean[i];<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                        result += m * m;<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                }<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                return Math.sqrt(result + stats.getVariance(true));<a name="line.595"></a>
+<span class="sourceLineNo">596</span>        }<a name="line.596"></a>
+<span class="sourceLineNo">597</span><a name="line.597"></a>
+<span class="sourceLineNo">598</span>        /**<a name="line.598"></a>
+<span class="sourceLineNo">599</span>         * @return error<a name="line.599"></a>
+<span class="sourceLineNo">600</span>         */<a name="line.600"></a>
+<span class="sourceLineNo">601</span>        private CompoundDataset getInternalError() {<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                ILazyDataset led = super.getErrors();<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                if (led == null)<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                        return null;<a name="line.604"></a>
+<span class="sourceLineNo">605</span><a name="line.605"></a>
+<span class="sourceLineNo">606</span>                Dataset ed = null;<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                try {<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                        ed = DatasetUtils.sliceAndConvertLazyDataset(led);<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                } catch (DatasetException e) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        logger.error("Could not get data from lazy dataset", e);<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>                CompoundDataset ced; // ensure it has the same number of elements<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                if (!(ed instanceof CompoundDataset) || ed.getElementsPerItem() != isize) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        ced = new CompoundDoubleDataset(isize, true, ed);<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                } else {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                        ced = (CompoundDataset) ed;<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>                if (led != ced) {<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                        setErrors(ced); // set back<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                }<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                return ced;<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>        @Override<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        public CompoundDataset getErrors() {<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                CompoundDataset ed = getInternalError();<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                if (ed == null)<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                        return null;<a name="line.630"></a>
+<span class="sourceLineNo">631</span><a name="line.631"></a>
+<span class="sourceLineNo">632</span>                return ed.getBroadcastView(shape);<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 double getError(final int i) {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                return calcError(getInternalErrorArray(true, i));<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>        @Override<a name="line.640"></a>
+<span class="sourceLineNo">641</span>        public double getError(final int i, final int j) {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                return calcError(getInternalErrorArray(true, i, j));<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 double getError(final int... pos) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                return calcError(getInternalErrorArray(true, pos));<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>        private double calcError(double[] es) {<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                if (es == null)<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                        return 0;<a name="line.652"></a>
+<span class="sourceLineNo">653</span><a name="line.653"></a>
+<span class="sourceLineNo">654</span>                // assume elements are independent<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                double e = 0;<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                        e += es[k];<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                }<a name="line.658"></a>
+<span class="sourceLineNo">659</span><a name="line.659"></a>
+<span class="sourceLineNo">660</span>                return Math.sqrt(e);<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[] getErrorArray(final int i) {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                return getInternalErrorArray(false, i);<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 double[] getErrorArray(final int i, final int j) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                return getInternalErrorArray(false, i, j);<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 double[] getErrorArray(final int... pos) {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                return getInternalErrorArray(false, pos);<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>        private Dataset getInternalError(final boolean squared) {<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                Dataset sed = squared ? getInternalSquaredError() : getInternalError();<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                if (sed == null)<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                        return null;<a name="line.681"></a>
+<span class="sourceLineNo">682</span><a name="line.682"></a>
+<span class="sourceLineNo">683</span>                return sed.getBroadcastView(shape);<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>        private double[] getInternalErrorArray(final boolean squared, final int i) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                Dataset sed = getInternalError(squared);<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                if (sed == null)<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                        return null;<a name="line.689"></a>
+<span class="sourceLineNo">690</span><a name="line.690"></a>
+<span class="sourceLineNo">691</span>                double[] es;<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                if (sed instanceof CompoundDoubleDataset) {<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                        es = ((CompoundDoubleDataset) sed).getDoubleArray(i);<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                        if (sed.getElementsPerItem() != isize) { // ensure error is broadcasted<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                                Arrays.fill(es, es[0]);<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                        }<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                } else {<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                        es = new double[isize];<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                        Arrays.fill(es, ((DoubleDataset) sed).getDouble(i));<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                }<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                return es;<a name="line.701"></a>
+<span class="sourceLineNo">702</span>        }<a name="line.702"></a>
+<span class="sourceLineNo">703</span><a name="line.703"></a>
+<span class="sourceLineNo">704</span>        private double[] getInternalErrorArray(final boolean squared, final int i, final int j) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                Dataset sed = getInternalError(squared);<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                if (sed == null)<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                        return null;<a name="line.707"></a>
+<span class="sourceLineNo">708</span><a name="line.708"></a>
+<span class="sourceLineNo">709</span>                double[] es;<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                if (sed instanceof CompoundDoubleDataset) {<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                        es = ((CompoundDoubleDataset) sed).getDoubleArray(i, j);<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                        if (sed.getElementsPerItem() != isize) { // ensure error is broadcasted<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                                Arrays.fill(es, es[0]);<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                        }<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                } else {<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                        es = new double[isize];<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                        Arrays.fill(es, ((DoubleDataset) sed).getDouble(i, j));<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                }<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                return es;<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>        private double[] getInternalErrorArray(final boolean squared, final int... pos) {<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                Dataset sed = getInternalError(squared);<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                if (sed == null)<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                        return null;<a name="line.725"></a>
+<span class="sourceLineNo">726</span><a name="line.726"></a>
+<span class="sourceLineNo">727</span>                double[] es = new double[isize];<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                if (sed instanceof CompoundDoubleDataset) {<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                        es = ((CompoundDoubleDataset) sed).getDoubleArray(pos);<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                        if (sed.getElementsPerItem() != isize) { // ensure error is broadcasted<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                                Arrays.fill(es, es[0]);<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>                        es = new double[isize];<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                        Arrays.fill(es, ((DoubleDataset) sed).getDouble(pos));<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                }<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                return es;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/AbstractDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/AbstractDataset.html
new file mode 100644
index 0000000..ff8c50f
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/AbstractDataset.html
@@ -0,0 +1,1951 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.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.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.eclipse.january.DatasetException;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.eclipse.january.IMonitor;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.eclipse.january.MetadataException;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.eclipse.january.metadata.ErrorMetadata;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.eclipse.january.metadata.MetadataFactory;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.eclipse.january.metadata.StatisticsMetadata;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.eclipse.january.metadata.internal.ErrorMetadataImpl;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.eclipse.january.metadata.internal.StatisticsMetadataImpl;<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> * Generic container class for data <a name="line.31"></a>
+<span class="sourceLineNo">032</span> * &lt;p&gt;<a name="line.32"></a>
+<span class="sourceLineNo">033</span> * Each subclass has an array of primitive types, elements of this array are grouped or<a name="line.33"></a>
+<span class="sourceLineNo">034</span> * compounded to make items <a name="line.34"></a>
+<span class="sourceLineNo">035</span> * &lt;p&gt;<a name="line.35"></a>
+<span class="sourceLineNo">036</span> * Data items can be boolean, integer, float, complex float, vector float, etc<a name="line.36"></a>
+<span class="sourceLineNo">037</span> */<a name="line.37"></a>
+<span class="sourceLineNo">038</span>public abstract class AbstractDataset extends LazyDatasetBase implements Dataset {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        // pin UID to base class<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>        protected int size; // number of items<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>        transient protected AbstractDataset base; // is null when not a view<a name="line.44"></a>
+<span class="sourceLineNo">045</span>        protected int[] stride; // can be null for row-major, contiguous datasets<a name="line.45"></a>
+<span class="sourceLineNo">046</span>        protected int offset;<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>         * 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.49"></a>
+<span class="sourceLineNo">050</span>         * wanted<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         */<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        protected Serializable odata = 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>         * Set aliased data as base data<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        abstract protected void setData();<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>         * Constructor required for serialisation.<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        public AbstractDataset() {<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 synchronized Dataset synchronizedCopy() {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                return clone();<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 int hashCode() {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                return getStats().getHash(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>        @Override<a name="line.75"></a>
+<span class="sourceLineNo">076</span>        abstract public AbstractDataset clone();<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span>        protected Format stringFormat = null;<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 setStringFormat(Format format) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                stringFormat = format;<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 Dataset copy(final int dtype) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                return copy(DTypeUtils.getInterface(dtype));<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 &lt;T extends Dataset&gt; T copy(Class&lt;T&gt; clazz) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                return DatasetUtils.copy(clazz, this);<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 Dataset cast(final int dtype) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                return cast(DTypeUtils.getInterface(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>        @SuppressWarnings("unchecked")<a name="line.100"></a>
+<span class="sourceLineNo">101</span>        @Override<a name="line.101"></a>
+<span class="sourceLineNo">102</span>        public &lt;T extends Dataset&gt; T cast(Class&lt;T&gt; clazz) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                if (getClass().equals(clazz)) {<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                        return (T) this;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                }<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                return DatasetUtils.cast(clazz, this);<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>         * {@inheritDoc Dataset#cast(int, Class, boolean)}<a name="line.110"></a>
+<span class="sourceLineNo">111</span>         * @since 2.3<a name="line.111"></a>
+<span class="sourceLineNo">112</span>         */<a name="line.112"></a>
+<span class="sourceLineNo">113</span>        @SuppressWarnings("unchecked")<a name="line.113"></a>
+<span class="sourceLineNo">114</span>        @Override<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        public &lt;T extends Dataset&gt; T cast(final int isize, Class&lt;T&gt; clazz, final boolean repeat) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                if (getClass().equals(clazz) &amp;&amp; getElementsPerItem() == isize) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                        return (T) this;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                }<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                return DatasetUtils.cast(isize, clazz, this, repeat);<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 Dataset cast(final boolean repeat, final int dtype, final int isize) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                return cast(isize, DTypeUtils.getInterface(dtype), repeat);<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>        abstract public AbstractDataset getView(boolean deepCopyMetadata);<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>         * Copy fields from original to view<a name="line.131"></a>
+<span class="sourceLineNo">132</span>         * @param orig<a name="line.132"></a>
+<span class="sourceLineNo">133</span>         * @param view<a name="line.133"></a>
+<span class="sourceLineNo">134</span>         * @param clone if true, then clone everything but bulk data<a name="line.134"></a>
+<span class="sourceLineNo">135</span>         * @param cloneMetadata if true, clone metadata<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         */<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        protected static void copyToView(Dataset orig, AbstractDataset view, boolean clone, boolean cloneMetadata) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                view.name = orig.getName();<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                view.size = orig.getSize();<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                view.odata = orig.getBuffer();<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                view.offset = orig.getOffset();<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                view.base = orig instanceof AbstractDataset ? ((AbstractDataset) orig).base : null;<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>                if (clone) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        view.shape = orig.getShapeRef() == null ? null : orig.getShape();<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        view.stride = orig instanceof AbstractDataset &amp;&amp; ((AbstractDataset) orig).stride != null ?<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                                        ((AbstractDataset) orig).stride.clone() : null;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                } else {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                        view.shape = orig.getShapeRef();<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                        view.stride = orig instanceof AbstractDataset ? ((AbstractDataset) orig).stride : null;<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>                view.metadata = getMetadataMap(orig, cloneMetadata);<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                int odtype = orig.getDType();<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                int vdtype = view.getDType();<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                if (odtype != vdtype) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        view.setDirty();<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>        @Override<a name="line.161"></a>
+<span class="sourceLineNo">162</span>        public IntegerDataset getIndices() {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                final IntegerDataset ret = DatasetUtils.indices(shape);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                if (getName() != null) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                        ret.setName("Indices of " + getName());<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                }<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                return ret;<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 Dataset getTransposedView(int... axes) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                axes = checkPermutatedAxes(shape, axes);<a name="line.172"></a>
+<span class="sourceLineNo">173</span><a name="line.173"></a>
+<span class="sourceLineNo">174</span>                AbstractDataset t = getView(true);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                if (axes == null || getRank() == 1)<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                        return t;<a name="line.176"></a>
+<span class="sourceLineNo">177</span><a name="line.177"></a>
+<span class="sourceLineNo">178</span>                int rank = shape.length;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                int[] tstride = new int[rank];<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                int[] toffset = new int[1];<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                int[] nshape = createStrides(new SliceND(shape), this, tstride, toffset);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                int[] nstride = new int[rank];<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>                        final int ax = axes[i];<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                        nstride[i] = tstride[ax];<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        nshape[i] = shape[ax];<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                }<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                t.shape = nshape;<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                t.stride = nstride;<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                t.offset = toffset[0];<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                t.base = this;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                t.setDirty();<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                t.transposeMetadata(axes);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                return t;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        }<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>        @Override<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        public Dataset transpose(int... axes) {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                Dataset t = getTransposedView(axes);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                return t == null ? clone() : t.clone();<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 Dataset swapAxes(int axis1, int axis2) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                int rank = shape.length;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                axis1 = ShapeUtils.checkAxis(rank, axis1);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                axis2 = ShapeUtils.checkAxis(rank, axis2);<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>                if (rank == 1 || axis1 == axis2) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                        return this;<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>                int[] axes = new int[rank];<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                        axes[i] = i;<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>                axes[axis1] = axis2;<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                axes[axis2] = axis1;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                return getTransposedView(axes);<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>        boolean isContiguous() {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                if (stride == null)<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                        return true;<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>                if (offset != 0)<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                        return false;<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span>                int s = getElementsPerItem();<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                for (int j = getRank() - 1; j &gt;= 0; j--) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                        if (stride[j] != s) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                return false;<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                        }<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        s *= shape[j];<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 true;<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 Dataset flatten() {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                if (!isContiguous()) { // need to make a copy if not contiguous<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                        return clone().flatten();<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                }<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                return reshape(size);<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>         * Fill dataset from object at depth dimension<a name="line.250"></a>
+<span class="sourceLineNo">251</span>         * @param obj<a name="line.251"></a>
+<span class="sourceLineNo">252</span>         * @param depth<a name="line.252"></a>
+<span class="sourceLineNo">253</span>         * @param pos position<a name="line.253"></a>
+<span class="sourceLineNo">254</span>         */<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        protected void fillData(Object obj, final int depth, final int[] pos) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                if (obj == null) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                        Class&lt;?&gt; c = InterfaceUtils.getElementClass(getClass());<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        if (Float.class.equals(c)) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                                set(Float.NaN, pos);<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                        } else if (Float.class.equals(c)) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                                set(Double.NaN, pos);<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                        }<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        return;<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>                Class&lt;?&gt; clazz = obj.getClass();<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                if (obj instanceof List&lt;?&gt;) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                        List&lt;?&gt; jl = (List&lt;?&gt;) obj;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                        int l = jl.size();<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                        for (int i = 0; i &lt; l; i++) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                                Object lo = jl.get(i);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                                fillData(lo, depth + 1, pos);<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                                pos[depth]++;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                        }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                        pos[depth] = 0;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                } else if (clazz.isArray()) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                        int l = Array.getLength(obj);<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                        if (clazz.equals(odata.getClass())) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                                System.arraycopy(obj, 0, odata, get1DIndex(pos), l);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                        } else if (clazz.getComponentType().isPrimitive()) {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                                for (int i = 0; i &lt; l; i++) {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                                        set(Array.get(obj, i), pos);<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                                        pos[depth]++;<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                                }<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                                pos[depth] = 0;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                        } else {<a name="line.286"></a>
+<span class="sourceLineNo">287</span>                                for (int i = 0; i &lt; l; i++) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                                        fillData(Array.get(obj, i), depth + 1, pos);<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                                        pos[depth]++;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                                }<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                                pos[depth] = 0;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        }<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                } else if (obj instanceof IDataset) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                        boolean[] a = new boolean[shape.length];<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                        Arrays.fill(a, depth, a.length, true);<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                        setSlice(obj, getSliceIteratorFromAxes(pos, a));<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                } else {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                        set(obj, pos);<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                }<a name="line.299"></a>
+<span class="sourceLineNo">300</span>        }<a name="line.300"></a>
+<span class="sourceLineNo">301</span><a name="line.301"></a>
+<span class="sourceLineNo">302</span>        @Override<a name="line.302"></a>
+<span class="sourceLineNo">303</span>        public IndexIterator getIterator(final boolean withPosition) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                if (stride != null) {<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                        return base.getSize() == 1  ? (withPosition ? new PositionIterator(offset, shape) :<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                                new SingleItemIterator(offset, size)) : new StrideIterator(shape, stride, offset);<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                }<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                if (shape == null) {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                        return new NullIterator(shape, shape);<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 withPosition ? new ContiguousIteratorWithPosition(shape, size) : new ContiguousIterator(size);<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 IndexIterator getIterator() {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                return getIterator(false);<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 PositionIterator getPositionIterator(final int... axes) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                return new PositionIterator(shape, axes);<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 IndexIterator getSliceIterator(final int[] start, final int[] stop, final int[] step) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                return getSliceIterator(new SliceND(shape, start, stop, step));<a name="line.327"></a>
+<span class="sourceLineNo">328</span>        }<a name="line.328"></a>
+<span class="sourceLineNo">329</span><a name="line.329"></a>
+<span class="sourceLineNo">330</span>        /**<a name="line.330"></a>
+<span class="sourceLineNo">331</span>         * @param slice<a name="line.331"></a>
+<span class="sourceLineNo">332</span>         * @return an slice iterator that operates like an IndexIterator<a name="line.332"></a>
+<span class="sourceLineNo">333</span>         */<a name="line.333"></a>
+<span class="sourceLineNo">334</span>        public IndexIterator getSliceIterator(SliceND slice) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                if (ShapeUtils.calcLongSize(slice.getShape()) == 0) {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                        return new NullIterator(shape, slice.getShape());<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                }<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                if (stride != null) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                        return new StrideIterator(getElementsPerItem(), shape, stride, offset, slice);<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                }<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                return new SliceIterator(shape, size, slice);<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 SliceIterator getSliceIteratorFromAxes(final int[] pos, boolean[] axes) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                int rank = shape.length;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                int[] start;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                int[] stop = new int[rank];<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                int[] step = new int[rank];<a name="line.349"></a>
+<span class="sourceLineNo">350</span><a name="line.350"></a>
+<span class="sourceLineNo">351</span>                if (pos == null) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                        start = new int[rank];<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                } else if (pos.length == rank) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                        start = pos.clone();<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                } else {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                        throw new IllegalArgumentException("pos array length is not equal to rank of dataset");<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                }<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                if (axes == null) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                        axes = new boolean[rank];<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                        Arrays.fill(axes, true);<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                } else if (axes.length != rank) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                        throw new IllegalArgumentException("axes array length is not equal to rank of dataset");<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>                for (int i = 0; i &lt; rank; i++) {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                        if (axes[i]) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                                stop[i] = shape[i];<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                        } else {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                                stop[i] = start[i] + 1;<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                        }<a name="line.370"></a>
+<span class="sourceLineNo">371</span>                        step[i] = 1;<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                }<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                return (SliceIterator) getSliceIterator(start, stop, step);<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 BooleanIterator getBooleanIterator(Dataset choice) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                return getBooleanIterator(choice, true);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>        }<a name="line.379"></a>
+<span class="sourceLineNo">380</span><a name="line.380"></a>
+<span class="sourceLineNo">381</span>        @Override<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        public BooleanIterator getBooleanIterator(Dataset choice, boolean value) {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                return BooleanIterator.createIterator(value, this, choice, this);<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        }<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span>        @Override<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        public Dataset getByBoolean(Dataset selection) {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                checkCompatibility(selection);<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>                final int length = ((Number) selection.sum()).intValue();<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                final int is = getElementsPerItem();<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                Dataset r = DatasetFactory.zeros(is, getClass(), length);<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                BooleanIterator biter = getBooleanIterator(selection);<a name="line.393"></a>
+<span class="sourceLineNo">394</span><a name="line.394"></a>
+<span class="sourceLineNo">395</span>                int i = 0;<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                while (biter.hasNext()) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                        r.setObjectAbs(i, getObjectAbs(biter.index));<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                        i += is;<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                }<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                return r;<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 Dataset getBy1DIndex(IntegerDataset index) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>                final int is = getElementsPerItem();<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                final Dataset r = DatasetFactory.zeros(is, getClass(), index.getShapeRef());<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                final IntegerIterator iter = new IntegerIterator(index, size, is);<a name="line.407"></a>
+<span class="sourceLineNo">408</span><a name="line.408"></a>
+<span class="sourceLineNo">409</span>                int i = 0;<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                while (iter.hasNext()) {<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                        r.setObjectAbs(i, getObjectAbs(iter.index));<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                        i += is;<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                }<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                return r;<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>        @Override<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        public Dataset getByIndexes(final Object... indexes) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                final int is = getElementsPerItem();<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                final Dataset r = DatasetFactory.zeros(is, getClass(), iter.getShape());<a name="line.421"></a>
+<span class="sourceLineNo">422</span><a name="line.422"></a>
+<span class="sourceLineNo">423</span>                final int[] pos = iter.getPos();<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                int i = 0;<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                while (iter.hasNext()) {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                        r.setObjectAbs(i, getObject(pos));<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                        i += is;<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                }<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                return r;<a name="line.429"></a>
+<span class="sourceLineNo">430</span>        }<a name="line.430"></a>
+<span class="sourceLineNo">431</span><a name="line.431"></a>
+<span class="sourceLineNo">432</span>        @Override<a name="line.432"></a>
+<span class="sourceLineNo">433</span>        public boolean hasFloatingPointElements() {<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                Class&lt;?&gt; cls = getElementClass();<a name="line.434"></a>
+<span class="sourceLineNo">435</span>                return cls == Float.class || cls == Double.class;<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 int getElementsPerItem() {<a name="line.439"></a>
+<span class="sourceLineNo">440</span>                return DTypeUtils.getElementsPerItem(getDType());<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 int getItemBytes() {<a name="line.444"></a>
+<span class="sourceLineNo">445</span>                return DTypeUtils.getItemBytes(getDType(), getElementsPerItem());<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 int getSize() {<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                return size;<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 int[] getShape() {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                // make a copy of the dimensions data, and put that out<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                if (shape == null) {<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                        logger.warn("Shape is null!!!");<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        return new int[] {};<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                }<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                return shape.clone();<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 getRank() {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                return shape == null ? 0 : shape.length;<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 getNbytes() {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                return getSize() * getItemBytes();<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>        /**<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         * Check for -1 placeholder in shape and replace if necessary<a name="line.474"></a>
+<span class="sourceLineNo">475</span>         * @param shape<a name="line.475"></a>
+<span class="sourceLineNo">476</span>         * @param size<a name="line.476"></a>
+<span class="sourceLineNo">477</span>         */<a name="line.477"></a>
+<span class="sourceLineNo">478</span>        private void checkShape(int[] shape, int size) {<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                int rank = shape.length;<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                int found = -1;<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                int nsize = 1;<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                        int d = shape[i];<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                        if (d == -1) {<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                                if (found == -1) {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                                        found = i;<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                                } else {<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                                        logger.error("Can only have one -1 placeholder in shape");<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                                        throw new IllegalArgumentException("Can only have one -1 placeholder in shape");<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                                }<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                        } else {<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                                nsize *= d;<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>                if (found &gt;= 0) {<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                        shape[found] = size/nsize;<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                } else if (nsize != size &amp;&amp; !(rank == 0 &amp;&amp; size == 0)) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                        logger.error("New shape is not same size as old shape");<a name="line.498"></a>
+<span class="sourceLineNo">499</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.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><a name="line.502"></a>
+<span class="sourceLineNo">503</span>        @Override<a name="line.503"></a>
+<span class="sourceLineNo">504</span>        public void setShape(final int... shape) {<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                int[] nshape = shape.clone();<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                checkShape(nshape, size);<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                if (Arrays.equals(this.shape, nshape)) {<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                        return;<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>                if (stride != null) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                        // the only compatible shapes are ones where new dimensions are factors of old dimensions<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                        // or are combined adjacent old dimensions <a name="line.513"></a>
+<span class="sourceLineNo">514</span>                        int[] oshape = this.shape;<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                        int orank = oshape.length;<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                        int nrank = nshape.length;<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                        int diff = nrank - orank;<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                        int[] nstride = new int[nrank];<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                        boolean ones = true;<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                        // work forwards for broadcasting cases<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                        for (int i = 0, j = 0; i &lt; orank || j &lt; nrank;) {<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                                if (j &gt;= diff &amp;&amp; i &lt; orank &amp;&amp; j &lt; nrank &amp;&amp; oshape[i] == nshape[j]) {<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                                        nstride[j++] = stride[i++];<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                                } else if (j &lt; nrank &amp;&amp; nshape[j] == 1) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                                        nstride[j++] = 0;<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                                } else if (i &lt; orank &amp;&amp; oshape[i] == 1) {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                                        i++;<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                                } else {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                                        if (j &lt; nrank)<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                                                j++;<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                                        if (i &lt; orank)<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                                                i++;<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                                        ones = false;<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                                }<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                        }<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                        if (!ones) { // not just ones differ in shapes<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                                int[] ostride = stride;<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                                int ob = 0;<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                                int oe = 1;<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                                int nb = 0;<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                                int ne = 1;<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                                while (ob &lt; orank &amp;&amp; nb &lt; nrank) {<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                                        int ol = oshape[ob];<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                                        int nl = nshape[nb];<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                                        <a name="line.545"></a>
+<span class="sourceLineNo">546</span>                                        if (nl &lt; ol) { // find group of shape dimensions that form common size<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                                                do { // case where new shape spreads single dimension over several dimensions<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                                                        if (ne == nrank) {<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                                                                break;<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                                                        }<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                                                        nl *= nshape[ne++];<a name="line.551"></a>
+<span class="sourceLineNo">552</span>                                                } while (nl &lt; ol);<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                                                if (nl != ol) {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                                                        logger.error("Subshape is incompatible with single dimension");<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                                                        throw new IllegalArgumentException("Subshape is incompatible with single dimension");<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                                                }<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                                                int on = ne - 1;<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                                                while (nshape[on] == 1) {<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                                                        on--;<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                                                }<a name="line.560"></a>
+<span class="sourceLineNo">561</span><a name="line.561"></a>
+<span class="sourceLineNo">562</span>                                                nstride[on] = ostride[ob];<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                                                for (int n = on - 1; n &gt;= nb; n--) {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                                                        if (nshape[n] == 1)<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                                                                continue;<a name="line.565"></a>
+<span class="sourceLineNo">566</span><a name="line.566"></a>
+<span class="sourceLineNo">567</span>                                                        nstride[n] = nshape[on] * nstride[on];<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                                                        on = n;<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                                                }<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                                        } else if (ol &lt; nl) {<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                                                do { // case where new shape combines several dimensions into one dimension<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                                                        if (oe == orank) {<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>                                                        ol *= oshape[oe++];<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                                                } while (ol &lt; nl);<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                                                if (nl != ol) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                                                        logger.error("Single dimension is incompatible with subshape");<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                                                        throw new IllegalArgumentException("Single dimension is incompatible with subshape");<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>                                                int oo = oe - 1;<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                                                while (oshape[oo] == 1) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                                                        oo--;<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                                                }<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                                                int os = ostride[oo];<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                                                for (int o = oo - 1; o &gt;= ob; o--) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                                                        if (oshape[o] == 1)<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                                                                continue;<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                                                        if (ostride[o] != oshape[oo] * ostride[oo]) {<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                                                                logger.error("Subshape cannot be a non-contiguous view");<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                                                                throw new IllegalArgumentException("Subshape cannot be a non-contiguous view");<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                                                        }<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                                                        oo = o;<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                                                }<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                                                nstride[nb] = os;<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                                        } else {<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                                                nstride[nb] = ostride[ob];<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>                                        ob = oe++;<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                                        nb = ne++;<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>                        stride = nstride;<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>                setDirty();<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                if (this.shape != null &amp;&amp; metadata != null) {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                        reshapeMetadata(this.shape, nshape);<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                }<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                this.shape = nshape;<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>        @Override<a name="line.616"></a>
+<span class="sourceLineNo">617</span>        public int[] getShapeRef() {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                return shape;<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>        @Override<a name="line.621"></a>
+<span class="sourceLineNo">622</span>        public int getOffset() {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                return offset;<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>        @Override<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        public int[] getStrides() {<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                return stride;<a name="line.628"></a>
+<span class="sourceLineNo">629</span>        }<a name="line.629"></a>
+<span class="sourceLineNo">630</span><a name="line.630"></a>
+<span class="sourceLineNo">631</span>        @Override<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        public Serializable getBuffer() {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                return odata;<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>        @Override<a name="line.636"></a>
+<span class="sourceLineNo">637</span>        public void overrideInternal(Serializable buffer, int... shape) {<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                if (buffer != null) {<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                        odata = buffer;<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        setData();<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                        setDirty();<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>                if (shape != null) {<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                        this.shape = shape.clone();<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                        size = ShapeUtils.calcSize(this.shape);<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>        /**<a name="line.650"></a>
+<span class="sourceLineNo">651</span>         * Create a stride array from dataset<a name="line.651"></a>
+<span class="sourceLineNo">652</span>         * @param a dataset<a name="line.652"></a>
+<span class="sourceLineNo">653</span>         * @param offset output offset<a name="line.653"></a>
+<span class="sourceLineNo">654</span>         * @return new strides<a name="line.654"></a>
+<span class="sourceLineNo">655</span>         */<a name="line.655"></a>
+<span class="sourceLineNo">656</span>        public static int[] createStrides(Dataset a, final int[] offset) {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                return createStrides(a.getElementsPerItem(), a.getShapeRef(), a.getStrides(), a.getOffset(), offset);<a name="line.657"></a>
+<span class="sourceLineNo">658</span>        }<a name="line.658"></a>
+<span class="sourceLineNo">659</span><a name="line.659"></a>
+<span class="sourceLineNo">660</span>        /**<a name="line.660"></a>
+<span class="sourceLineNo">661</span>         * Create a stride array from dataset<a name="line.661"></a>
+<span class="sourceLineNo">662</span>         * @param isize<a name="line.662"></a>
+<span class="sourceLineNo">663</span>         * @param shape<a name="line.663"></a>
+<span class="sourceLineNo">664</span>         * @param oStride original stride<a name="line.664"></a>
+<span class="sourceLineNo">665</span>         * @param oOffset original offset (only used if there is an original stride)<a name="line.665"></a>
+<span class="sourceLineNo">666</span>         * @param offset output offset<a name="line.666"></a>
+<span class="sourceLineNo">667</span>         * @return new strides<a name="line.667"></a>
+<span class="sourceLineNo">668</span>         */<a name="line.668"></a>
+<span class="sourceLineNo">669</span>        public static int[] createStrides(final int isize, final int[] shape, final int[] oStride, final int oOffset, final int[] offset) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                int rank = shape.length;<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                final int[] stride;<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                if (oStride == null) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                        offset[0] = 0;<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                        stride = new int[rank];<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        int s = isize;<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                        for (int j = rank - 1; j &gt;= 0; j--) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                                stride[j] = s;<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                                s *= shape[j];<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                        }<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                } else {<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                        offset[0] = oOffset;<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                        stride = oStride.clone();<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                }<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                return stride;<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>        /**<a name="line.687"></a>
+<span class="sourceLineNo">688</span>         * Create a stride array from slice information and a dataset<a name="line.688"></a>
+<span class="sourceLineNo">689</span>         * @param slice<a name="line.689"></a>
+<span class="sourceLineNo">690</span>         * @param a dataset<a name="line.690"></a>
+<span class="sourceLineNo">691</span>         * @param stride output stride<a name="line.691"></a>
+<span class="sourceLineNo">692</span>         * @param offset output offset<a name="line.692"></a>
+<span class="sourceLineNo">693</span>         * @return new shape<a name="line.693"></a>
+<span class="sourceLineNo">694</span>         */<a name="line.694"></a>
+<span class="sourceLineNo">695</span>        public static int[] createStrides(final SliceND slice, final Dataset a, final int[] stride, final int[] offset) {<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                return createStrides(slice, a.getElementsPerItem(), a.getShapeRef(), a.getStrides(), a.getOffset(), stride, offset);<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>        /**<a name="line.699"></a>
+<span class="sourceLineNo">700</span>         * Create a stride array from slice and dataset information<a name="line.700"></a>
+<span class="sourceLineNo">701</span>         * @param slice<a name="line.701"></a>
+<span class="sourceLineNo">702</span>         * @param isize<a name="line.702"></a>
+<span class="sourceLineNo">703</span>         * @param shape<a name="line.703"></a>
+<span class="sourceLineNo">704</span>         * @param oStride original stride<a name="line.704"></a>
+<span class="sourceLineNo">705</span>         * @param oOffset original offset (only used if there is an original stride)<a name="line.705"></a>
+<span class="sourceLineNo">706</span>         * @param stride output stride<a name="line.706"></a>
+<span class="sourceLineNo">707</span>         * @param offset output offset<a name="line.707"></a>
+<span class="sourceLineNo">708</span>         * @return new shape<a name="line.708"></a>
+<span class="sourceLineNo">709</span>         */<a name="line.709"></a>
+<span class="sourceLineNo">710</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.710"></a>
+<span class="sourceLineNo">711</span>                int[] lstart = slice.getStart();<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                int[] lstep = slice.getStep();<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                int[] newShape = slice.getShape();<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                int rank = shape.length;<a name="line.714"></a>
+<span class="sourceLineNo">715</span><a name="line.715"></a>
+<span class="sourceLineNo">716</span>                if (oStride == null) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                        int s = isize;<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                        offset[0] = 0;<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                        for (int j = rank - 1; j &gt;= 0; j--) {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                                stride[j] = s * lstep[j];<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                                offset[0] += s * lstart[j];<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                                s *= shape[j];<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>                        offset[0] = oOffset;<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                        for (int j = 0; j &lt; rank; j++) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                                int s = oStride[j];<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                                stride[j] = lstep[j] * s;<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                                offset[0] += lstart[j] * s;<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><a name="line.732"></a>
+<span class="sourceLineNo">733</span>                return newShape;<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>        @Override<a name="line.736"></a>
+<span class="sourceLineNo">737</span>        public Dataset getBroadcastView(int... broadcastShape) {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                AbstractDataset view = getView(true);<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                <a name="line.739"></a>
+<span class="sourceLineNo">740</span>                if (!Arrays.equals(shape, broadcastShape)) {<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        List&lt;int[]&gt; nShapes = BroadcastUtils.broadcastShapesToMax(broadcastShape, shape);<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                        view.setShape(nShapes.get(0));<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                        view.stride = BroadcastUtils.createBroadcastStrides(view, broadcastShape);<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                        view.base = this;<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                        view.shape = broadcastShape.clone();<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        view.size = ShapeUtils.calcSize(broadcastShape);<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        if (view.name == null || view.name.isEmpty()) {<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                                view.name = "Broadcast from " + Arrays.toString(shape);<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                        } else {<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                                view.name = "Broadcast of " + view.name + " from " + Arrays.toString(shape);<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 view;<a name="line.753"></a>
+<span class="sourceLineNo">754</span>        }<a name="line.754"></a>
+<span class="sourceLineNo">755</span><a name="line.755"></a>
+<span class="sourceLineNo">756</span>        @Override<a name="line.756"></a>
+<span class="sourceLineNo">757</span>        public Dataset getSliceView(final int[] start, final int[] stop, final int[] step) {<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                return getSliceView(new SliceND(shape, start, stop, step));<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>        @Override<a name="line.761"></a>
+<span class="sourceLineNo">762</span>        public Dataset getSliceView(Slice... slice) {<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                if (slice == null || slice.length == 0) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        return getView(true);<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>                return getSliceView(new SliceND(shape, slice));<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>         * Get a slice of the dataset. The returned dataset is a view on a selection of items<a name="line.771"></a>
+<span class="sourceLineNo">772</span>         * @param slice<a name="line.772"></a>
+<span class="sourceLineNo">773</span>         * @return slice view<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 Dataset getSliceView(SliceND slice) {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                if (slice.isAll()) {<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                        return getView(true);<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>                final int rank = shape.length;<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                int[] sStride = new int[rank];<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                int[] sOffset = new int[1];<a name="line.783"></a>
+<span class="sourceLineNo">784</span><a name="line.784"></a>
+<span class="sourceLineNo">785</span>                int[] sShape = createStrides(slice, this, sStride, sOffset);<a name="line.785"></a>
+<span class="sourceLineNo">786</span>        <a name="line.786"></a>
+<span class="sourceLineNo">787</span>                AbstractDataset s = getView(false);<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                s.shape = sShape;<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                s.size = ShapeUtils.calcSize(sShape);<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                s.stride = sStride;<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                s.offset = sOffset[0];<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                s.base = this;<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>                s.metadata = copyMetadata();<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                s.sliceMetadata(true, slice);<a name="line.795"></a>
+<span class="sourceLineNo">796</span><a name="line.796"></a>
+<span class="sourceLineNo">797</span>                s.setDirty();<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                s.setName(name + BLOCK_OPEN + slice + BLOCK_CLOSE);<a name="line.798"></a>
+<span class="sourceLineNo">799</span><a name="line.799"></a>
+<span class="sourceLineNo">800</span>                return s;<a name="line.800"></a>
+<span class="sourceLineNo">801</span>        }<a name="line.801"></a>
+<span class="sourceLineNo">802</span><a name="line.802"></a>
+<span class="sourceLineNo">803</span>        /**<a name="line.803"></a>
+<span class="sourceLineNo">804</span>         * Get flattened view index of given position <a name="line.804"></a>
+<span class="sourceLineNo">805</span>         * @param pos<a name="line.805"></a>
+<span class="sourceLineNo">806</span>         *            the integer array specifying the n-D position<a name="line.806"></a>
+<span class="sourceLineNo">807</span>         * @return the index on the flattened dataset<a name="line.807"></a>
+<span class="sourceLineNo">808</span>         */<a name="line.808"></a>
+<span class="sourceLineNo">809</span>        private int getFlat1DIndex(final int[] pos) {<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                final int imax = pos.length;<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                if (imax == 0) {<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                        return 0;<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                }<a name="line.813"></a>
+<span class="sourceLineNo">814</span><a name="line.814"></a>
+<span class="sourceLineNo">815</span>                return get1DIndexFromShape(pos);<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>         * @since 2.0<a name="line.819"></a>
+<span class="sourceLineNo">820</span>         */<a name="line.820"></a>
+<span class="sourceLineNo">821</span>        protected int getFirst1DIndex() {<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                if (shape == null) {<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                        throw new IllegalArgumentException("Cannot find an index from a null shape");<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                }<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                return stride == null ? 0 : offset;<a name="line.825"></a>
+<span class="sourceLineNo">826</span>        }<a name="line.826"></a>
+<span class="sourceLineNo">827</span><a name="line.827"></a>
+<span class="sourceLineNo">828</span>        @Override<a name="line.828"></a>
+<span class="sourceLineNo">829</span>        public int get1DIndex(final int... n) {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                if (n.length == 0 &amp;&amp; shape.length == 0)<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                        return offset;<a name="line.831"></a>
+<span class="sourceLineNo">832</span><a name="line.832"></a>
+<span class="sourceLineNo">833</span>                return stride == null ? get1DIndexFromShape(n) : get1DIndexFromStrides(n);<a name="line.833"></a>
+<span class="sourceLineNo">834</span>        }<a name="line.834"></a>
+<span class="sourceLineNo">835</span><a name="line.835"></a>
+<span class="sourceLineNo">836</span>        private static void throwAIOOBException(int i, int s, int d) {<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                throw new ArrayIndexOutOfBoundsException("Index (" + i + ") out of range [-" + s + "," + s<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                + "] in dimension " + d);<a name="line.838"></a>
+<span class="sourceLineNo">839</span>        }<a name="line.839"></a>
+<span class="sourceLineNo">840</span><a name="line.840"></a>
+<span class="sourceLineNo">841</span>        /**<a name="line.841"></a>
+<span class="sourceLineNo">842</span>         * @param i<a name="line.842"></a>
+<span class="sourceLineNo">843</span>         * @return the index on the data array corresponding to that location<a name="line.843"></a>
+<span class="sourceLineNo">844</span>         */<a name="line.844"></a>
+<span class="sourceLineNo">845</span>        protected int get1DIndex(int i) {<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                if (shape == null) {<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                        throw new IllegalArgumentException("Cannot find an index from a null shape");<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                }<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                if (shape.length &gt; 1) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        logger.error("This dataset is not 1D but was addressed as such");<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                        throw new UnsupportedOperationException("This dataset is not 1D but was addressed as such");<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                }<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                if (i &lt; 0) {<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                        i += shape[0];<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                if (i &lt; 0 || i &gt;= shape[0]) {<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        throwAIOOBException(i, shape[0], 0);<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                }<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                return stride == null ? i : i*stride[0] + offset;<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>         * @param i<a name="line.863"></a>
+<span class="sourceLineNo">864</span>         * @param j<a name="line.864"></a>
+<span class="sourceLineNo">865</span>         * @return the index on the data array corresponding to that location<a name="line.865"></a>
+<span class="sourceLineNo">866</span>         */<a name="line.866"></a>
+<span class="sourceLineNo">867</span>        protected int get1DIndex(int i, int j) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                if (shape == null) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                        throw new IllegalArgumentException("Cannot find an index from a null shape");<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                }<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                if (shape.length != 2) {<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        logger.error("This dataset is not 2D but was addressed as such");<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                        throw new UnsupportedOperationException("This dataset is not 2D but was addressed as such");<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                }<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                if (i &lt; 0) {<a name="line.875"></a>
+<span class="sourceLineNo">876</span>                        i += shape[0];<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                }<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                if (i &lt; 0 || i &gt;= shape[0]) {<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                        throwAIOOBException(i, shape[0], 0);<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                }<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                if (j &lt; 0) {<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                        j += shape[1];<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                }<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                if (j &lt; 0 || j &gt;= shape[1]) {<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                        throwAIOOBException(i, shape[1], 1);<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                return stride == null ? i*shape[1] + j : i*stride[0] + j*stride[1] + offset;<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>        protected int get1DIndexFromShape(final int[] n) {<a name="line.890"></a>
+<span class="sourceLineNo">891</span>                return get1DIndexFromShape(shape, n);<a name="line.891"></a>
+<span class="sourceLineNo">892</span>        }<a name="line.892"></a>
+<span class="sourceLineNo">893</span><a name="line.893"></a>
+<span class="sourceLineNo">894</span>        protected static int get1DIndexFromShape(final int[] shape, final int[] n) {<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                if (shape == null) {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                        throw new IllegalArgumentException("Cannot find an index from a null shape");<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                }<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                final int rank = shape.length;<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                if (rank != n.length) {<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                        String errMsg = String.format("Number of position values must be equal to rank of %d", rank);<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        logger.error(errMsg);<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        throw new IllegalArgumentException(errMsg);<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                }<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                int index = 0;<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        final int si = shape[i];<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                        int ni = n[i];<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                        if (ni &lt; 0) {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                                ni += si;<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                        }<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                        if (ni &lt; 0 || ni &gt;= si) {<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                                throwAIOOBException(ni, si, i);<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                        }<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                        index = index * si + ni;<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                }<a name="line.915"></a>
+<span class="sourceLineNo">916</span><a name="line.916"></a>
+<span class="sourceLineNo">917</span>                return index;<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>        private int get1DIndexFromStrides(final int[] n) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                return get1DIndexFromStrides(shape, stride, offset, n);<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>        private static int get1DIndexFromStrides(final int[] shape, final int[] stride, final int offset, final int[] n) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                if (shape == null) {<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                        throw new IllegalArgumentException("Cannot find an index from a null shape");<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                }<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                final int rank = shape.length;<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                if (rank != n.length) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                        String errMsg = String.format("Number of position values must be equal to rank of %d", rank);<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                        logger.error(errMsg);<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                        throw new IllegalArgumentException(errMsg);<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                }<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                int index = offset;<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                        final int st = stride[i];<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                        if (st != 0) { // not broadcasted<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                                final int si = shape[i];<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                                int ni = n[i];<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                                if (ni &lt; 0) {<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                                        ni += si;<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                }<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                if (ni &lt; 0 || ni &gt;= si) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                        throwAIOOBException(ni, si, i);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                index += st * ni;<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>                return index;<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 int[] getNDPosition(final int n) {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                if (isIndexInRange(n)) {<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                        throw new IllegalArgumentException("Index provided " + n<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                        + "is larger then the size of the containing array");<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 stride == null ? ShapeUtils.getNDPositionFromShape(n, shape) : getNDPositionFromStrides(n);<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>        private boolean isIndexInRange(final int n) {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                if (stride == null) {<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                        return n &gt;= size;<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                }<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                return n &gt;= getBufferLength();<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>        /**<a name="line.969"></a>
+<span class="sourceLineNo">970</span>         * @return entire buffer length<a name="line.970"></a>
+<span class="sourceLineNo">971</span>         */<a name="line.971"></a>
+<span class="sourceLineNo">972</span>        abstract protected int getBufferLength();<a name="line.972"></a>
+<span class="sourceLineNo">973</span><a name="line.973"></a>
+<span class="sourceLineNo">974</span>        private int[] getNDPositionFromStrides(int n) {<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                n -= offset;<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                int rank = shape.length;<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                if (rank == 1) {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                        return new int[] { n / stride[0] };<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>                int[] output = new int[rank];<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                int i = 0;<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                while (i != n) { // TODO find more efficient way than this exhaustive search<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                        int j = rank - 1;<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                        for (; j &gt;= 0; j--) {<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                output[j]++;<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                i += stride[j];<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                if (output[j] &gt;= shape[j]) {<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                                        output[j] = 0;<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                        i -= shape[j] * stride[j];<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                } else {<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                        break;<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>                        if (j == -1) {<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                logger.error("Index was not found in this strided dataset");<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                                throw new IllegalArgumentException("Index was not found in this strided dataset");<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                        }<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                }<a name="line.999"></a>
+<span class="sourceLineNo">1000</span><a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                return output;<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>        }<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span><a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>        @Override<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>        public int checkAxis(int axis) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                return ShapeUtils.checkAxis(shape.length, axis);<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>        @Deprecated<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>        protected static int checkAxis(int rank, int axis) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                return ShapeUtils.checkAxis(rank, axis);<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>        protected static final char BLOCK_OPEN = '[';<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>        protected static final char BLOCK_CLOSE = ']';<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span><a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>        @Override<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>        public String toString() {<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                final int rank = shape == null ? 0 : shape.length;<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                final StringBuilder out = new StringBuilder();<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span><a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                if (DTypeUtils.isDTypeElemental(getDType())) {<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                        out.append("Dataset ");<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                } else {<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                        out.append("Compound dataset (");<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                        out.append(getElementsPerItem());<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                        out.append(") ");<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>                if (name != null &amp;&amp; name.length() &gt; 0) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                        out.append("'");<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        out.append(name);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                        out.append("' has shape ");<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                } else {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                        out.append("shape is ");<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>                out.append(BLOCK_OPEN);<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                if (rank &gt; 0) {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                        out.append(shape[0]);<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                for (int i = 1; i &lt; rank; i++) {<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                        out.append(", " + shape[i]);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                }<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                out.append(BLOCK_CLOSE);<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                return out.toString();<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 String toString(boolean showData) {<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                if (!showData) {<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                        return toString();<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>                if (size == 0) {<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                        return "[]";<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>                final int rank = shape == null ? 0 : shape.length;<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                final StringBuilder out = new StringBuilder();<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span><a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                if (rank &gt; 0) {<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                        int[] pos = new int[rank];<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                        final StringBuilder lead = new StringBuilder();<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                        printBlocks(out, lead, 0, pos);<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                } else {<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                        out.append(getString());<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                }<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                return out.toString();<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>        /**<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>         * Limit to strings output via the toString() method<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>         */<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>        private static int maxStringLength = 120;<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>         * Set maximum line length for toString() method<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>         * @param maxLineLength<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>         */<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>        public static void setMaxLineLength(int maxLineLength) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                maxStringLength = maxLineLength;<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>        }<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span><a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>        /**<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>         * @return maximum line length for toString() method<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>         */<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>        public static int getMaxLineLength() {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                return maxStringLength;<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>        }<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>         * Limit to number of sub-blocks output via the toString() method<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>         */<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>        private static final int MAX_SUBBLOCKS = 6;<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span><a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>        private final static String SEPARATOR = ",";<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>        private final static String SPACE = " ";<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>        private final static String ELLIPSIS = "...";<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>        private final static String NEWLINE = "\n";<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>         * Make a line of output for last dimension of dataset<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>         * <a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>         * @param start<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>         * @return line<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>         */<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>        private StringBuilder makeLine(final int end, final int[] start) {<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                StringBuilder line = new StringBuilder();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                final int[] pos;<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                if (end &gt;= start.length) {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                        pos = Arrays.copyOf(start, end + 1);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                } else {<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                        pos = start;<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                pos[end] = 0;<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                line.append(BLOCK_OPEN);<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                line.append(getString(pos));<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span><a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                final int length = shape[end];<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span><a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                // trim elements printed if length exceed estimate of maximum elements<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                int excess = length - maxStringLength / 3; // space + number + separator<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                int midIndex = -1;<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                if (excess &gt; 0) {<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                        int index = (length - excess) / 2;<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                        for (int y = 1; y &lt; index; y++) {<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                line.append(SEPARATOR + SPACE);<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                pos[end] = y;<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                line.append(getString(pos));<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                        }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                        midIndex = line.length() + 2;<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                        index = (length + excess) / 2;<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                        for (int y = index; y &lt; length; y++) {<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                line.append(SEPARATOR + SPACE);<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                pos[end] = y;<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                line.append(getString(pos));<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                        }<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                } else {<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                        for (int y = 1; y &lt; length; y++) {<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                line.append(SEPARATOR + SPACE);<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                                pos[end] = y;<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                                line.append(getString(pos));<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                        }<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                }<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                line.append(BLOCK_CLOSE);<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span><a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                // trim string down to limit<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                int lineLength = line.length();<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                excess = lineLength - maxStringLength - ELLIPSIS.length() - 1;<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                if (excess &gt; 0) {<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                        int index = (lineLength - excess) / 2;<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                        if (midIndex &gt; 0 &amp;&amp; index &gt; midIndex) {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                index = midIndex;<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                        } else {<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                index = line.lastIndexOf(SEPARATOR, index) + 2;<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                        }<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                        StringBuilder out = new StringBuilder(line.subSequence(0, index));<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        out.append(ELLIPSIS + SEPARATOR);<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                        index = (lineLength + excess) / 2;<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                        if (midIndex &gt; 0 &amp;&amp; index &lt;= midIndex) {<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                                index = midIndex - 1;<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                        } else {<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                                index = line.indexOf(SEPARATOR, index) + 1;<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                        }<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                        out.append(line.subSequence(index, lineLength));<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                        return out;<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                } else if (midIndex &gt; 0) { // add ellipsis<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                        StringBuilder out = new StringBuilder(line.subSequence(0, midIndex));<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                        out.append(ELLIPSIS + SEPARATOR + SPACE);<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                        out.append(line.subSequence(midIndex, lineLength));<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                        return out;<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>                return line;<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>         * recursive method to print blocks<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>         */<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>        private void printBlocks(final StringBuilder out, final StringBuilder lead, final int level, final int[] pos) {<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                if (out.length() &gt; 0) {<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                        char last = out.charAt(out.length() - 1);<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                        if (last != BLOCK_OPEN) {<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>                                out.append(lead);<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                        }<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                }<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                final int end = getRank() - 1;<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                if (level != end) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                        out.append(BLOCK_OPEN);<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                        int length = shape[level];<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                        // first sub-block<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                        pos[level] = 0;<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                        StringBuilder newlead = new StringBuilder(lead);<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                        newlead.append(SPACE);<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                        printBlocks(out, newlead, level + 1, pos);<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                        if (length &lt; 2) { // escape<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                                out.append(BLOCK_CLOSE);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                                return;<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>                        out.append(SEPARATOR + NEWLINE);<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                        for (int i = level + 1; i &lt; end; i++) {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                out.append(NEWLINE);<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                        }<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span><a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                        // middle sub-blocks<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                        if (length &lt; MAX_SUBBLOCKS) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                                for (int x = 1; x &lt; length - 1; x++) {<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                                        pos[level] = x;<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                                        printBlocks(out, newlead, level + 1, pos);<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                                        if (end &lt;= level + 1) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                                out.append(SEPARATOR + NEWLINE);<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                        } else {<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                                out.append(SEPARATOR + NEWLINE + NEWLINE);<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>                        } else {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                final int excess = length - MAX_SUBBLOCKS;<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                int xmax = (length - excess) / 2;<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                for (int x = 1; x &lt; xmax; x++) {<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                        pos[level] = x;<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                        printBlocks(out, newlead, level + 1, pos);<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        if (end &lt;= level + 1) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                                out.append(SEPARATOR + NEWLINE);<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                        } else {<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                                out.append(SEPARATOR + NEWLINE + NEWLINE);<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>                                out.append(newlead);<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                out.append(ELLIPSIS + SEPARATOR + NEWLINE);<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                xmax = (length + excess) / 2;<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                for (int x = xmax; x &lt; length - 1; x++) {<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                        pos[level] = x;<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                        printBlocks(out, newlead, level + 1, pos);<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                                        if (end &lt;= level + 1) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                                                out.append(SEPARATOR + NEWLINE);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                                        } else {<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                                                out.append(SEPARATOR + NEWLINE + NEWLINE);<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>                        // last sub-block<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                        pos[level] = length - 1;<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                        printBlocks(out, newlead, level + 1, pos);<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                        out.append(BLOCK_CLOSE);<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                } else {<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                        out.append(makeLine(end, pos));<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>        @Override<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>        public Dataset squeezeEnds() {<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                return squeeze(true);<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>        @Override<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>        public Dataset squeeze() {<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                return squeeze(false);<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>        @Override<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>        public Dataset squeeze(boolean onlyFromEnds) {<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                final int[] tshape = ShapeUtils.squeezeShape(shape, onlyFromEnds);<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                final int[] oshape = shape;<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                if (stride == null) {<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        shape = tshape;<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                } else {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                        int rank = shape.length;<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                        int trank = tshape.length;<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                        if (trank &lt; rank) {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                int[] tstride = new int[tshape.length];<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                if (onlyFromEnds) {<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                        for (int i = 0; i &lt; rank; i++) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                                if (shape[i] != 1) {<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                        for (int k = 0; k &lt; trank; k++) {<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                                                tstride[k] = stride[i++];<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                                        }<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                                        break;<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>                                        int t = 0;<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        for (int i = 0; i &lt; rank; i++) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                                if (shape[i] != 1) {<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                                        tstride[t++] = stride[i];<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>                                }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                                shape = tshape;<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                                stride = tstride;<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                        }<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                }<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span><a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                setDirty();<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                reshapeMetadata(oshape, shape);<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                return this;<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>        @Override<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>        public boolean isCompatibleWith(final ILazyDataset g) {<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                return ShapeUtils.areShapesCompatible(shape, g.getShape());<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>        }<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span><a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>        @Override<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>        public void checkCompatibility(final ILazyDataset g) throws IllegalArgumentException {<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                ShapeUtils.checkCompatibility(this, g);<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>        @Override<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>        public Dataset reshape(final int... shape) {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                Dataset a;<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                try {<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                        a = getView(true);<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                        a.setShape(shape);<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                } catch (IllegalArgumentException e) {<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                        a = clone();<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                        a.setShape(shape);<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                }<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                return a;<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>        /**<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>         * @param start<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>         * @param stop<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>         * @param step<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>         * @return number of steps to take<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>         */<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>        protected static int calcSteps(final double start, final double stop, final double step) {<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                return Math.max(0, (int) Math.ceil((stop - start) / step));<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>        }<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span><a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>        @Override<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>        public boolean isComplex() {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                int type = getDType();<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                return type == COMPLEX64 || type == COMPLEX128;<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>        @Override<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>        public Dataset getRealPart() {<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                return this;<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>        @Override<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>        public Dataset getRealView() {<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                return getView(true);<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>        }<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span><a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>        @Override<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>        public Dataset getSlice(final int[] start, final int[] stop, final int[] step) {<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                return getSlice(new SliceND(shape, start, stop, step));<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>        }<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span><a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>        @Override<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>        public Dataset getSlice(Slice... slice) {<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                return getSlice(new SliceND(shape, slice));<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>        }<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span><a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>        @Override<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>        public Dataset getSlice(IMonitor monitor, Slice... slice) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                return getSlice(slice);<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>        }<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span><a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>        @Override<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>        public Dataset getSlice(IMonitor monitor, SliceND slice) {<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                return getSlice(slice);<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>        }<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span><a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>        @Override<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>        public Dataset getSlice(IMonitor monitor, int[] start, int[] stop, int[] step) {<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                return getSlice(start, stop, step);<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>        }<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>         * Get a slice of the dataset. The returned dataset is a copied selection of items<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>         * @param slice<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>         * @return The dataset of the sliced data<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>         */<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>        @Override<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>        public Dataset getSlice(final SliceND slice) {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                SliceIterator it = (SliceIterator) getSliceIterator(slice);<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                AbstractDataset s = getSlice(it);<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                s.metadata = copyMetadata();<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                s.setDirty();<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                s.sliceMetadata(true, slice);<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                return s;<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>        }<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span><a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>        /**<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>         * Get a slice of the dataset. The returned dataset is a copied selection of items<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>         * <a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>         * @param iterator Slice iterator<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>         * @return The dataset of the sliced data<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>         */<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>        abstract public AbstractDataset getSlice(final SliceIterator iterator);<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span><a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>        @Override<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>        public Dataset setSlice(final Object obj, final SliceND slice) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                Dataset ds;<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                if (obj instanceof Dataset) {<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                        ds = (Dataset) obj;<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                } else if (obj instanceof IDataset) {<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                        ds = DatasetUtils.convertToDataset((IDataset) obj);<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                } else {<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                        Class&lt;? extends Dataset&gt; dClass = getClass();<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                        if (!BooleanDataset.class.equals(dClass)) {<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                                dClass = DTypeUtils.getLargestDataset(dClass);<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                        }<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                        ds = DatasetFactory.createFromObject(getElementsPerItem(), dClass, obj);<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>                return setSlicedView(getSliceView(slice), ds);<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>        }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span><a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>        @Override<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>        public Dataset setSlice(final Object obj, final int[] start, final int[] stop, final int[] step) {<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                return setSlice(obj, new SliceND(shape, start, stop, step));<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>         * Set a view of current dataset to given dataset with broadcasting<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>         * @param view<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>         * @param d<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>         * @return this dataset<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>         */<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>        abstract Dataset setSlicedView(Dataset view, Dataset d);<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span><a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>        @Override<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>        public Dataset setSlice(Object obj, Slice... slice) {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                if (slice == null || slice.length == 0) {<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                        return setSlice(obj, new SliceND(shape));<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                }<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                return setSlice(obj, new SliceND(shape, slice));<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>        @Override<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>        public boolean all() {<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                return Comparisons.allTrue(this);<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>        }<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span><a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>        @Override<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>        public BooleanDataset all(final int axis) {<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                return Comparisons.allTrue(this, axis);<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>        }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span><a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>        @Override<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>        public boolean any() {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                return Comparisons.anyTrue(this);<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>        }<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span><a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>        @Override<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>        public BooleanDataset any(final int axis) {<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                return Comparisons.anyTrue(this, axis);<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>        @Override<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>        public Dataset ifloorDivide(final Object o) {<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                return idivide(o).ifloor();<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>        }<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span><a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>        @Override<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>        public double residual(final Object o) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                return residual(o, null, false);<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>        @Override<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>        public double residual(final Object o, boolean ignoreNaNs) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                return residual(o, null, ignoreNaNs);<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>        }<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span><a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>        /**<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>         * @since 2.0<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>         */<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>        @SuppressWarnings("unchecked")<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>        protected StatisticsMetadata&lt;Number&gt; getStats() {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                StatisticsMetadata&lt;Number&gt; md = getFirstMetadata(StatisticsMetadata.class);<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                if (md == null || md.isDirty(this)) {<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                        md = new StatisticsMetadataImpl&lt;Number&gt;();<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                        md.initialize(this);<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                        setMetadata(md);<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                return md;<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>        }<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span><a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>        /**<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>         * @since 2.0<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>         */<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>        @SuppressWarnings("unchecked")<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>        protected StatisticsMetadata&lt;String&gt; getStringStats() {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                StatisticsMetadata&lt;String&gt; md = getFirstMetadata(StatisticsMetadata.class);<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                if (md == null || md.isDirty(this)) {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                        md = new StatisticsMetadataImpl&lt;String&gt;();<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                        md.initialize(this);<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                        setMetadata(md);<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                }<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                return md;<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>        }<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span><a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>        @Override<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>        public Number max(boolean... ignoreInvalids) {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                return getStats().getMaximum(ignoreInvalids);<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>        }<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span><a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>        @Override<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>        public Dataset max(int axis, boolean... ignoreInvalids) {<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                return getStats().getMaximum(axis, ignoreInvalids);<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>        @Override<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>        public Dataset max(int[] axes, boolean... ignoreInvalids) {<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                return getStats().getMaximum(axes, ignoreInvalids);<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>        @Override<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>        public Number min(boolean... ignoreInvalids) {<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                return getStats().getMinimum(ignoreInvalids);<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>        }<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span><a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>        @Override<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>        public Dataset min(int axis, boolean... ignoreInvalids) {<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                return getStats().getMinimum(axis, ignoreInvalids);<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>        @Override<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>        public Dataset min(int[] axes, boolean... ignoreInvalids) {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                return getStats().getMinimum(axes, ignoreInvalids);<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>        }<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span><a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>        @Override<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>        public int argMax(boolean... ignoreInvalids) {<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                return getFlat1DIndex(maxPos(ignoreInvalids));<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>        }<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span><a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>        /**<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>         * @since 2.0<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>         */<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>        @Override<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>        public IntegerDataset argMax(int axis, boolean... ignoreInvalids) {<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                return (IntegerDataset) getStats().getArgMaximum(axis, ignoreInvalids);<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>        }<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span><a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>        @Override<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>        public int argMin(boolean... ignoreInvalids) {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                return getFlat1DIndex(minPos(ignoreInvalids));<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>        /**<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>         * @since 2.0<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>         */<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>        @Override<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>        public IntegerDataset argMin(int axis, boolean... ignoreInvalids) {<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                return (IntegerDataset) getStats().getArgMinimum(axis, ignoreInvalids);<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>        @Override<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>        public Number peakToPeak(boolean... ignoreInvalids) {<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>                return InterfaceUtils.fromDoubleToBiggestNumber(getClass(), max(ignoreInvalids).doubleValue() - min(ignoreInvalids).doubleValue());<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>        @Override<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>        public Dataset peakToPeak(int axis,  boolean... ignoreInvalids) {<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                return Maths.subtract(max(axis, ignoreInvalids), min(axis, ignoreInvalids));<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>        }<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span><a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>        @Override<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>        public Dataset peakToPeak(int[] axes,  boolean... ignoreInvalids) {<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                return Maths.subtract(max(axes, ignoreInvalids), min(axes, ignoreInvalids));<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 long count(boolean... ignoreInvalids) {<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                return getStats().getCount(ignoreInvalids);<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>        @Override<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>        public Dataset count(int axis, boolean... ignoreInvalids) {<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                return getStats().getCount(axis, ignoreInvalids);<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>        @Override<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>        public Dataset count(int[] axes, boolean... ignoreInvalids) {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                return getStats().getCount(axes, ignoreInvalids);<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>        @Override<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>        public Object sum(boolean... ignoreInvalids) {<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                return InterfaceUtils.toBiggestNumber(getClass(), getStats().getSum(ignoreInvalids));<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>        @Override<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>        public Dataset sum(int axis, boolean... ignoreInvalids) {<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                return getStats().getSum(axis, ignoreInvalids);<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>        @Override<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>        public Dataset sum(int[] axes, boolean... ignoreInvalids) {<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                return getStats().getSum(axes, ignoreInvalids);<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>        }<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span><a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>        @Override<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>        public Object product(boolean... ignoreInvalids) {<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                return Stats.product(this, ignoreInvalids);<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>        }<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span><a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>        @Override<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>        public Dataset product(int axis, boolean... ignoreInvalids) {<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                return Stats.product(this, axis, ignoreInvalids);<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>        @Override<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>        public Dataset product(int[] axes, boolean... ignoreInvalids) {<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                return Stats.product(this, axes, ignoreInvalids);<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>        @Override<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>        public Object mean(boolean... ignoreInvalids) {<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                return getStats().getMean(ignoreInvalids);<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>        @Override<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>        public Dataset mean(int axis, boolean... ignoreInvalids) {<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                return getStats().getMean(axis, ignoreInvalids);<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>        }<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span><a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>        @Override<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>        public Dataset mean(int[] axes, boolean... ignoreInvalids) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                return getStats().getMean(axes, ignoreInvalids);<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 double variance() {<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                return variance(false);<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 double variance(boolean isWholePopulation, boolean... ignoreInvalids) {<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                return getStats().getVariance(isWholePopulation, 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 Dataset variance(int axis) {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                return getStats().getVariance(axis, false);<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 variance(int[] axes) {<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                return getStats().getVariance(axes, false);<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 Dataset variance(int axis, boolean isWholePopulation, boolean... ignoreInvalids) {<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>                return getStats().getVariance(axis, isWholePopulation, 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 variance(int[] axes, boolean isWholePopulation, boolean... ignoreInvalids) {<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                return getStats().getVariance(axes, isWholePopulation, 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 double stdDeviation() {<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                return Math.sqrt(variance());<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 double stdDeviation(boolean isWholePopulation, boolean... ignoreInvalids) {<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                return Math.sqrt(variance(isWholePopulation, 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 Dataset stdDeviation(int axis) {<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                return Maths.sqrt(variance(axis, 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 Dataset stdDeviation(int[] axes) {<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                return Maths.sqrt(variance(axes, false));<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>        }<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span><a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>        @Override<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>        public Dataset stdDeviation(int axis, boolean isWholePopulation, boolean... ignoreInvalids) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                return Maths.sqrt(variance(axis, isWholePopulation, ignoreInvalids));<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 stdDeviation(int[] axes, boolean isWholePopulation, boolean... ignoreInvalids) {<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                return Maths.sqrt(variance(axes, 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 rootMeanSquare(boolean... ignoreInvalids) {<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                StatisticsMetadata&lt;Number&gt; stats = getStats();<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                final double mean = stats.getMean(ignoreInvalids).doubleValue();<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                final double var = stats.getVariance(true, ignoreInvalids);<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                return Math.sqrt(var + mean * mean);<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>        }<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span><a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>        @Override<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>        public Dataset rootMeanSquare(int axis, boolean... ignoreInvalids) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                StatisticsMetadata&lt;Number&gt; stats = getStats();<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                Dataset v = stats.getVariance(axis, true, ignoreInvalids);<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                Dataset m = stats.getMean(axis, ignoreInvalids);<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                Dataset result = Maths.multiply(m, m);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                return Maths.sqrt(result.iadd(v));<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>        @Override<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>        public Dataset rootMeanSquare(int[] axes, boolean... ignoreInvalids) {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                StatisticsMetadata&lt;Number&gt; stats = getStats();<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                Dataset v = stats.getVariance(axes, true, ignoreInvalids);<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                Dataset m = stats.getMean(axes, ignoreInvalids);<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                Dataset result = Maths.multiply(m, m);<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                return Maths.sqrt(result.iadd(v));<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>         * Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>         * <a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>         * @param dindex<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>         * @param sindex<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>         * @param src<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>         *            is the source data buffer<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>         */<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>        protected abstract void setItemDirect(final int dindex, final int sindex, final Object src);<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>         * @return error broadcasted to current shape<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>         */<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>        private Dataset getBroadcastedInternalError() {<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                if (shape == null) {<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                        throw new IllegalArgumentException("Cannot get error for null dataset");<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                }<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                ILazyDataset led = super.getErrors();<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                if (led == null)<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                        return null;<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span><a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                Dataset ed = null;<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                try {<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                        ed = DatasetUtils.sliceAndConvertLazyDataset(led);<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                } catch (DatasetException e) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                        logger.error("Could not get data from lazy dataset", e);<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                }<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                if (led != ed) {<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                        setErrors(ed); // set back<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span><a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                return ed.getBroadcastView(shape);<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>        }<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span><a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>        @Override<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>        public Dataset getErrors() {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                Dataset ed = getBroadcastedInternalError();<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                if (ed == null)<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                        return null;<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span><a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                return ed;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>        }<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span><a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>        @Override<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>        public double getError() {<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                Dataset ed = getBroadcastedInternalError();<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                if (ed == null)<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                        return 0;<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span><a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                return ed.getDouble();<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>        }<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span><a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>        @Override<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>        public double getError(final int i) {<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                Dataset ed = getBroadcastedInternalError();<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                if (ed == null)<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                        return 0;<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span><a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                return ed.getDouble(i);<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>        }<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span><a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>        @Override<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>        public double getError(final int i, final int j) {<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                Dataset ed = getBroadcastedInternalError();<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                if (ed == null)<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                        return 0;<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span><a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                return ed.getDouble(i, j);<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>        }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span><a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>        @Override<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>        public double getError(int... pos) {<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                Dataset ed = getBroadcastedInternalError();<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                if (ed == null)<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                        return 0;<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span><a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                return ed.getDouble(pos);<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>        }<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span><a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>        @Override<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>        public double[] getErrorArray(final int i) {<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                Dataset ed = getBroadcastedInternalError();<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                if (ed == null)<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                        return null;<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span><a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                return new double[] {getError(i)};<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>        }<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span><a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>        @Override<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>        public double[] getErrorArray(final int i, final int j) {<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                Dataset ed = getBroadcastedInternalError();<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                if (ed == null)<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                        return null;<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span><a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                return new double[] {getError(i, j)};<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>        }<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span><a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>        @Override<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>        public double[] getErrorArray(int... pos) {<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                Dataset ed = getBroadcastedInternalError();<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                if (ed == null)<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                        return null;<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span><a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>                return new double[] {getError(pos)};<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>        }<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span><a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>        protected Dataset getInternalSquaredError() {<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                Dataset sed = getErrorBuffer().getBroadcastView(shape);<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                return sed;<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>        }<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span><a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>        @Override<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>        public Dataset getErrorBuffer() {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                ErrorMetadata emd = getErrorMetadata();<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                if (emd == null)<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                        return null;<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span><a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                if (!(emd instanceof ErrorMetadataImpl)) {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                        ILazyDataset led = emd.getError();<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                        Dataset ed;<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                        try {<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                ed = DatasetUtils.sliceAndConvertLazyDataset(led);<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                emd = MetadataFactory.createMetadata(ErrorMetadata.class);<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                setMetadata(emd);<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                emd.setError(ed);<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                        } catch (MetadataException me) {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                logger.error("Could not create metadata", me);<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                        } catch (DatasetException e) {<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                logger.error("Could not get data from lazy dataset", e);<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                        }<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                }<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span><a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                return ((ErrorMetadataImpl) emd).getSquaredError();<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>        }<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span><a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>        /**<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span>         * Set a copy of the buffer that backs the (squared) error data<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>         * @param buffer can be null, anything that can be used to create a DoubleDataset or CompoundDoubleDataset<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>         */<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>        @Override<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>        public void setErrorBuffer(Serializable buffer) {<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                if (shape == null) {<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                        throw new IllegalArgumentException("Cannot set error buffer for null dataset");<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                }<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                if (buffer == null) {<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                        clearMetadata(ErrorMetadata.class);<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                        return;<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                }<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span><a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                IDataset d = (IDataset) createFromSerializable(buffer, false);<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                ErrorMetadata emd = getErrorMetadata();<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                if (!(emd instanceof ErrorMetadataImpl)) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                        try {<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                emd = MetadataFactory.createMetadata(ErrorMetadata.class);<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                setMetadata(emd);<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                        } catch (MetadataException me) {<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                logger.error("Could not create metadata", me);<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                        }<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                }<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                ((ErrorMetadataImpl) emd).setSquaredError(d);<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/AggregateDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/AggregateDataset.html
new file mode 100644
index 0000000..629fde2
--- /dev/null
+++ b/apidocs/2.3.0/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 Class&lt;? extends Dataset&gt; clazz = null;<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, Class&lt;? extends Dataset&gt; clazz, int... shape) {<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.clazz = clazz;<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>        AggregateDataset(int itemSize, int[] shape, int dtype) {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                this(itemSize, DTypeUtils.getInterface(dtype), shape);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>        }<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>        /**<a name="line.103"></a>
+<span class="sourceLineNo">104</span>         * Create an aggregate dataset<a name="line.104"></a>
+<span class="sourceLineNo">105</span>         * @param extend if true, extend rank by one<a name="line.105"></a>
+<span class="sourceLineNo">106</span>         * @param datasets<a name="line.106"></a>
+<span class="sourceLineNo">107</span>         */<a name="line.107"></a>
+<span class="sourceLineNo">108</span>        public AggregateDataset(boolean extend, ILazyDataset... datasets) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span>                final int[][] shapes = calcShapes(extend, datasets);<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>                // check for same (sub-)shape<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                final int[] s = shapes[0];<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                final int axis = extend ? -1 : 0;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                for (int j = 1; j &lt; shapes.length; j++) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                        if (!ShapeUtils.areShapesCompatible(s, shapes[j], axis))<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                                throw new IllegalArgumentException("Dataset '" + datasets[j].getName() + "' has wrong shape");<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>                // set shapes of datasets<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                final int maxRank = s.length;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                data = new ILazyDataset[datasets.length];<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                isize = datasets[0].getElementsPerItem();<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                for (int j = 0; j &lt; datasets.length; j++) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                        ILazyDataset d = datasets[j];<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                        int[] ds = d.getShape();<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                        if (ds.length &lt; maxRank) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                                d = d.clone();<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                                d.setShape(shapes[j]);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        }<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        data[j] = d;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        if (d.getElementsPerItem() != isize) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                                throw new IllegalArgumentException("All datasets must have the same number of elements");<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>                // calculate new shape<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                shape = new int[maxRank];<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                for (int i = 1; i &lt; shape.length; i++) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        shape[i] = s[i];<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                if (extend) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                        shape[0] = data.length;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                } else {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        for (int j = 0; j &lt; datasets.length; j++) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                                shape[0] += shapes[j][0];<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>                try {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                        size = ShapeUtils.calcSize(shape);<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                } catch (IllegalArgumentException e) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        size = Integer.MAX_VALUE; // this indicates that the entire dataset cannot be read in! <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>                // work out offsets from cumulative lengths<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                offset = new int[data.length];<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                int cd = 0;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                for (int i = 0; i &lt; data.length; i++) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                        offset[i] = cd;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        cd += data[i].getShape()[0];<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>                // calculate mapping from aggregate dimension to dataset array index<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                map = new int[shape[0]];<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                int k = 0;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                for (int i = 0; i &lt; data.length; i++) {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                        int jmax = data[i].getShape()[0];<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                        for (int j = 0; j &lt; jmax; j++)<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                                map[k++] = i;<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>                for (ILazyDataset d : data) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                        clazz = InterfaceUtils.getBestInterface(clazz, InterfaceUtils.getInterfaceFromClass(d.getElementsPerItem(), d.getElementClass()));<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 InterfaceUtils.getElementClass(clazz);<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 DTypeUtils.getDType(clazz);<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(clazz));<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(clazz));<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, clazz, slice.getShape());<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.3.0/src-html/org/eclipse/january/dataset/BinaryOperation.Stub.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BinaryOperation.Stub.html
new file mode 100644
index 0000000..da7c31f
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BinaryOperation.Stub.html
@@ -0,0 +1,169 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>/**<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * Interface to represent a binary operation for implementations over different output domains<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>public interface BinaryOperation extends IOperation {<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>        /**<a name="line.20"></a>
+<span class="sourceLineNo">021</span>         * @param a<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * @param b<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * @return a op b<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         */<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        boolean booleanOperate(long a, long b);<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>        /**<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * @param a<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         * @param b<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         * @return a op b<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         */<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        long longOperate(long a, long b);<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        /**<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * @param a<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         * @param b<a name="line.36"></a>
+<span class="sourceLineNo">037</span>         * @return a op b<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         */<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        double doubleOperate(double a, double b);<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>        /**<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @param out holds (ra, ia) op (rb, ib)<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param ra<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param ia<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * @param rb<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @param ib<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         */<a name="line.47"></a>
+<span class="sourceLineNo">048</span>        void complexOperate(double[] out, double ra, double ia, double rb, double ib);<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>        /**<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         * @param a<a name="line.51"></a>
+<span class="sourceLineNo">052</span>         * @param b<a name="line.52"></a>
+<span class="sourceLineNo">053</span>         * @return string to represent output<a name="line.53"></a>
+<span class="sourceLineNo">054</span>         * @since 2.0<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         */<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        String toString(String a, String b);<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>        /**<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * Stub class where only three methods need to be overridden:<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         *  {@link #complexOperate(double[], double, double, double, double)},<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         *  {@link #toString(String, String)}<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        public static class Stub implements BinaryOperation {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                double[] z = new double[2];<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>                @Override<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                public double doubleOperate(double a, double b) {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        complexOperate(z, a, 0, b, 0);<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                        return z[0];<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                }<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>                @Override<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                public boolean booleanOperate(long a, long b) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        return doubleOperate(a, b) != 0;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                }<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>                @Override<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                public long longOperate(long a, long b) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        return DTypeUtils.toLong(doubleOperate(a, b));<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                }<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>                /**<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                 * override this<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                 */<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                @Override<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                }<a name="line.87"></a>
+<span class="sourceLineNo">088</span><a name="line.88"></a>
+<span class="sourceLineNo">089</span>                /**<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                 * override this<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                 */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                @Override<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                public String toString(String string, String string2) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        return null;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                }<a name="line.95"></a>
+<span class="sourceLineNo">096</span>        }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>}<a name="line.97"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BinaryOperation.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BinaryOperation.html
new file mode 100644
index 0000000..da7c31f
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BinaryOperation.html
@@ -0,0 +1,169 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>/**<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * Interface to represent a binary operation for implementations over different output domains<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>public interface BinaryOperation extends IOperation {<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>        /**<a name="line.20"></a>
+<span class="sourceLineNo">021</span>         * @param a<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * @param b<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * @return a op b<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         */<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        boolean booleanOperate(long a, long b);<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>        /**<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * @param a<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         * @param b<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         * @return a op b<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         */<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        long longOperate(long a, long b);<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        /**<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * @param a<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         * @param b<a name="line.36"></a>
+<span class="sourceLineNo">037</span>         * @return a op b<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         */<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        double doubleOperate(double a, double b);<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>        /**<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @param out holds (ra, ia) op (rb, ib)<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param ra<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param ia<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * @param rb<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @param ib<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         */<a name="line.47"></a>
+<span class="sourceLineNo">048</span>        void complexOperate(double[] out, double ra, double ia, double rb, double ib);<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>        /**<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         * @param a<a name="line.51"></a>
+<span class="sourceLineNo">052</span>         * @param b<a name="line.52"></a>
+<span class="sourceLineNo">053</span>         * @return string to represent output<a name="line.53"></a>
+<span class="sourceLineNo">054</span>         * @since 2.0<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         */<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        String toString(String a, String b);<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>        /**<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * Stub class where only three methods need to be overridden:<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         *  {@link #complexOperate(double[], double, double, double, double)},<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         *  {@link #toString(String, String)}<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        public static class Stub implements BinaryOperation {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                double[] z = new double[2];<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>                @Override<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                public double doubleOperate(double a, double b) {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        complexOperate(z, a, 0, b, 0);<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                        return z[0];<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                }<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>                @Override<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                public boolean booleanOperate(long a, long b) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        return doubleOperate(a, b) != 0;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                }<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>                @Override<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                public long longOperate(long a, long b) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        return DTypeUtils.toLong(doubleOperate(a, b));<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                }<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>                /**<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                 * override this<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                 */<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                @Override<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                }<a name="line.87"></a>
+<span class="sourceLineNo">088</span><a name="line.88"></a>
+<span class="sourceLineNo">089</span>                /**<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                 * override this<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                 */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                @Override<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                public String toString(String string, String string2) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        return null;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                }<a name="line.95"></a>
+<span class="sourceLineNo">096</span>        }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>}<a name="line.97"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BooleanBroadcastIterator.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BooleanBroadcastIterator.html
new file mode 100644
index 0000000..5d43f91
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BooleanBroadcastIterator.html
@@ -0,0 +1,242 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2017 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>import java.util.Arrays;<a name="line.12"></a>
+<span class="sourceLineNo">013</span>import java.util.List;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>/**<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * Class to run over a pair of datasets in parallel with NumPy broadcasting to promote shapes<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * which have lower rank and outputs to a third dataset<a name="line.17"></a>
+<span class="sourceLineNo">018</span> * @since 2.1<a name="line.18"></a>
+<span class="sourceLineNo">019</span> */<a name="line.19"></a>
+<span class="sourceLineNo">020</span>public class BooleanBroadcastIterator extends BooleanIteratorBase {<a name="line.20"></a>
+<span class="sourceLineNo">021</span>        private int[] cShape;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>        private int[] cStride;<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>        private final int[] cDelta;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        private final int cStep;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        private int cMax;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        private int cStart;<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>        /**<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         * Construct a boolean iterator that stops at every position in the choice dataset where its value matches<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         * the given boolean<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * @param v boolean value<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * @param a primary dataset<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * @param c choice dataset<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * @param o output dataset, can be null<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         * @param createIfNull if true create the output dataset if that is null<a name="line.36"></a>
+<span class="sourceLineNo">037</span>         */<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        public BooleanBroadcastIterator(boolean v, Dataset a, Dataset c, Dataset o, boolean createIfNull) {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                super(v, a, c, o);<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                List&lt;int[]&gt; fullShapes = BroadcastUtils.broadcastShapes(a.getShapeRef(), c.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>                maxShape = fullShapes.remove(0);<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>                oStride = null;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                if (o != null &amp;&amp; !Arrays.equals(maxShape, o.getShapeRef())) {<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                        throw new IllegalArgumentException("Output does not match broadcasted shape");<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                }<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                aShape = fullShapes.remove(0);<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                cShape = fullShapes.remove(0);<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>                int rank = maxShape.length;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                endrank = rank - 1;<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>                aDataset = a.reshape(aShape);<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                cDataset = c.reshape(cShape);<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                aStride = BroadcastUtils.createBroadcastStrides(aDataset, maxShape);<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                cStride = BroadcastUtils.createBroadcastStrides(cDataset, maxShape);<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                if (outputA) {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                        oStride = aStride;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                        oDelta = null;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                        oStep = 0;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                } else if (o != null) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                        oStride = BroadcastUtils.createBroadcastStrides(o, maxShape);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                        oDelta = new int[rank];<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                        oStep = o.getElementsPerItem();<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                } else if (createIfNull) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        oDataset = BroadcastUtils.createDataset(a, c, maxShape);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        oStride = BroadcastUtils.createBroadcastStrides(oDataset, maxShape);<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                        oDelta = new int[rank];<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                        oStep = oDataset.getElementsPerItem();<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                } else {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        oDelta = null;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        oStep = 0;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                }<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>                pos = new int[rank];<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                aDelta = new int[rank];<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                cDelta = new int[rank];<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                cStep = cDataset.getElementsPerItem();<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                for (int j = endrank; j &gt;= 0; j--) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        aDelta[j] = aStride[j] * aShape[j];<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        cDelta[j] = cStride[j] * cShape[j];<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                        if (oDelta != null) {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                                oDelta[j] = oStride[j] * maxShape[j];<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                        }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                }<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                aStart = aDataset.getOffset();<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                cStart = cDataset.getOffset();<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                aMax = endrank &lt; 0 ? aStep + aStart: Integer.MIN_VALUE;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                cMax = endrank &lt; 0 ? cStep + cStart: Integer.MIN_VALUE;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                oStart = oDelta == null ? 0 : oDataset.getOffset();<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                reset();<a name="line.92"></a>
+<span class="sourceLineNo">093</span>        }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>        @Override<a name="line.95"></a>
+<span class="sourceLineNo">096</span>        public boolean hasNext() {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                do {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        int j = endrank;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        for (; j &gt;= 0; j--) {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                pos[j]++;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                                index += aStride[j];<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                cIndex += cStride[j];<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                if (oDelta != null) {<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                        oIndex += oStride[j];<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                                }<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                if (pos[j] &gt;= maxShape[j]) {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                                        pos[j] = 0;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                                        index -= aDelta[j]; // reset these dimensions<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                                        cIndex -= cDelta[j];<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                                        if (oDelta != null) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                                                oIndex -= oDelta[j];<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                                        }<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                                } else {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                                        break;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                                }<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                        }<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                        if (j == -1) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                if (endrank &gt;= 0) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                                        return false;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                }<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                index += aStep;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                cIndex += cStep;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                if (oDelta != null) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                                        oIndex += oStep;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                }<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                        }<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                        if (outputA) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                                oIndex = index;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        }<a name="line.129"></a>
+<span class="sourceLineNo">130</span>        <a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        if (index == aMax || cIndex == cMax) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                                return false;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                        }<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                } while (cDataset.getElementBooleanAbs(cIndex) != value);<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>                return true;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        }<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>        /**<a name="line.139"></a>
+<span class="sourceLineNo">140</span>         * @return shape of first broadcasted dataset<a name="line.140"></a>
+<span class="sourceLineNo">141</span>         */<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        public int[] getFirstShape() {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                return aShape;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        }<a name="line.144"></a>
+<span class="sourceLineNo">145</span><a name="line.145"></a>
+<span class="sourceLineNo">146</span>        /**<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         * @return shape of second broadcasted dataset<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         */<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        public int[] getMaskShape() {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                return cShape;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        }<a name="line.151"></a>
+<span class="sourceLineNo">152</span><a name="line.152"></a>
+<span class="sourceLineNo">153</span>        @Override<a name="line.153"></a>
+<span class="sourceLineNo">154</span>        public void reset() {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                for (int i = 0; i &lt;= endrank; i++) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        pos[i] = 0;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                }<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>                if (endrank &gt;= 0) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        pos[endrank] = -1;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        index = aStart - aStride[endrank];<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        cIndex = cStart - cStride[endrank];<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                        oIndex = oStart - (oStride == null ? 0 : oStride[endrank]);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                } else {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                        index = aStart - aStep;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        cIndex = cStart - cStep;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                        oIndex = oStart - oStep;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                }<a name="line.168"></a>
+<span class="sourceLineNo">169</span>        }<a name="line.169"></a>
+<span class="sourceLineNo">170</span>}<a name="line.170"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BooleanContiguousIterator.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BooleanContiguousIterator.html
new file mode 100644
index 0000000..6520c33
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BooleanContiguousIterator.html
@@ -0,0 +1,151 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2017 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>/**<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * Class to run over a pair of contiguous datasets<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * @since 2.1<a name="line.14"></a>
+<span class="sourceLineNo">015</span> */<a name="line.15"></a>
+<span class="sourceLineNo">016</span>public class BooleanContiguousIterator extends BooleanIterator {<a name="line.16"></a>
+<span class="sourceLineNo">017</span>        private final int cMax; // maximum index in array<a name="line.17"></a>
+<span class="sourceLineNo">018</span>        private final int cStep;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>        /**<a name="line.20"></a>
+<span class="sourceLineNo">021</span>         * Construct a boolean iterator that stops at the position in choice dataset where its value matches<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * the given boolean<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * @param v boolean value<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * @param a primary dataset<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * @param c choice dataset<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @param o output dataset, can be null<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         * @param createIfNull if true create the output dataset if that is null<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         */<a name="line.28"></a>
+<span class="sourceLineNo">029</span>        public BooleanContiguousIterator(boolean v, Dataset a, Dataset c, Dataset o, boolean createIfNull) {<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                super(v, a, c, o);<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                aMax = a.getSize() * aStep;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                cStep = c.getElementsPerItem();<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                cMax = c.getSize() * cStep;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                if (outputA) {<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                        oStep = aStep;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                } else if (o != null) {<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                        oStep = o.getElementsPerItem();<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                } else if (createIfNull) {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                        oDataset = BroadcastUtils.createDataset(a, c, a.getShapeRef());<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                        oStep = oDataset.getElementsPerItem();<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                } else {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                        oStep = 1;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                }<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                maxShape = a.getShape();<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                reset();<a name="line.45"></a>
+<span class="sourceLineNo">046</span>        }<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>        @Override<a name="line.48"></a>
+<span class="sourceLineNo">049</span>        public boolean hasNext() {<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                do {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                        index += aStep;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                        cIndex += cStep;<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>                        if (outputA) {<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                                oIndex = index;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                        } else {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                                oIndex += oStep;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>                        if (index &gt;= aMax || cIndex &gt;= cMax) {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                                return false;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                        }<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                } while (cDataset.getElementBooleanAbs(cIndex) != value);<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>                return true;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>        @Override<a name="line.68"></a>
+<span class="sourceLineNo">069</span>        public int[] getPos() {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                return null;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        }<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>        @Override<a name="line.73"></a>
+<span class="sourceLineNo">074</span>        public void reset() {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                index = -aStep;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                cIndex = -cStep;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                oIndex = -oStep;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        }<a name="line.78"></a>
+<span class="sourceLineNo">079</span>}<a name="line.79"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BooleanDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BooleanDataset.html
new file mode 100644
index 0000000..92a7697
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BooleanDataset.html
@@ -0,0 +1,434 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.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>                if (obj == null) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        return new BooleanDataset();<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                }<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                BooleanDatasetBase result = BooleanDatasetBase.createFromObject(obj);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                BooleanDataset ds = new BooleanDataset(result.data, result.shape);<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                if (result.shape.length == 0) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        ds.setShape(result.shape); // special case of single item<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                return ds;<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>         * @param shape<a name="line.98"></a>
+<span class="sourceLineNo">099</span>         * @return a dataset filled with trues<a name="line.99"></a>
+<span class="sourceLineNo">100</span>         */<a name="line.100"></a>
+<span class="sourceLineNo">101</span>        static BooleanDataset ones(final int... shape) {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                BooleanDatasetBase result = BooleanDatasetBase.ones(shape);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                return new BooleanDataset(result.data, result.shape);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>        @Override<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                return data[index];<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 double getElementDoubleAbs(final int index) {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                return data[index] ? 1 : 0;<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 long getElementLongAbs(final int index) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                return data[index] ? 1 : 0;<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 double getDouble() {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                return getInt();<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(final int i) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                return getInt(i);<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(final int i, final int j) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                return getInt(i, j);<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(final int... pos) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                return getInt(pos);<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 float getFloat() {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                return getInt();<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(final int i) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                return getInt(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>        @Override<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        public float getFloat(final int i, final int j) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                return getInt(i, j);<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(final int... pos) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                return getInt(pos);<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 long getLong() {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                return getInt();<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(final int i) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                return getInt(i);<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(final int i, final int j) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                return getInt(i, j);<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(final int... pos) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                return getInt(pos);<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 int getInt() {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                return get() ? 1 : 0;<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(final int i) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                return get(i) ? 1 : 0;<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(final int i, final int j) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                return get(i, j) ? 1 : 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 int getInt(final int... pos) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                return get(pos) ? 1 : 0;<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>                return (short) getInt();<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(final int i) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                return (short) getInt(i);<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(final int i, final int j) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                return (short) getInt(i, j);<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(final int... pos) {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                return (short) getInt(pos);<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>                return (byte) getInt();<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(final int i) {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                return (byte) getInt(i);<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(final int i, final int j) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                return (byte) getInt(i, j);<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(final int... pos) {<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                return (byte) getInt(pos);<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>                return get();<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(final int i) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                return get(i);<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(final int i, final int j) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                return get(i, j);<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(final int... pos) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                return get(pos);<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("%b", 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 BooleanDataset getSlice(SliceIterator siter) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                BooleanDatasetBase base = super.getSlice(siter);<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>                BooleanDataset slice = new BooleanDataset();<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                copyToView(base, slice, false, false);<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                slice.setData();<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                return slice;<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>         * OR<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 BooleanDataset iadd(final Object b) {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                while (it.hasNext()) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                        data[it.aIndex] |= bds.getElementBooleanAbs(it.bIndex);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                }<a name="line.286"></a>
+<span class="sourceLineNo">287</span>                setDirty();<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                return this;<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>         * XOR<a name="line.292"></a>
+<span class="sourceLineNo">293</span>         */<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        @Override<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        public BooleanDataset isubtract(final Object b) {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                while (it.hasNext()) {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                        data[it.aIndex] ^= bds.getElementBooleanAbs(it.bIndex);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                }<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                setDirty();<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                return this;<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>         * AND<a name="line.306"></a>
+<span class="sourceLineNo">307</span>         */<a name="line.307"></a>
+<span class="sourceLineNo">308</span>        @Override<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        public BooleanDataset imultiply(final Object b) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                while (it.hasNext()) {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                        data[it.aIndex] &amp;= bds.getElementBooleanAbs(it.bIndex);<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                }<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                setDirty();<a name="line.315"></a>
+<span class="sourceLineNo">316</span>                return this;<a name="line.316"></a>
+<span class="sourceLineNo">317</span>        }<a name="line.317"></a>
+<span class="sourceLineNo">318</span><a name="line.318"></a>
+<span class="sourceLineNo">319</span>        @Override<a name="line.319"></a>
+<span class="sourceLineNo">320</span>        public BooleanDataset idivide(final Object b) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                return imultiply(b);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>        }<a name="line.322"></a>
+<span class="sourceLineNo">323</span><a name="line.323"></a>
+<span class="sourceLineNo">324</span>        @Override<a name="line.324"></a>
+<span class="sourceLineNo">325</span>        public BooleanDataset iremainder(final Object b) {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                logger.error("Unsupported method for class");<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 BooleanDataset ipower(final Object b) {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                logger.error("Unsupported method for class");<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                double sum = 0;<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                {<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                        if (w == null) {<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                                while (it.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>                                                sum++;<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                                }<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                        } else {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                                IndexIterator itw = w.getIterator();<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                                double comp = 0;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                                        if (data[it.aIndex] ^ bds.getElementBooleanAbs(it.bIndex)) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                                                final double err = w.getElementDoubleAbs(itw.index) - comp;<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                                                final double temp = sum + err;<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                                                comp = (temp - sum) - err;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                                                sum = temp;<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>                }<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                return sum;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BooleanDatasetBase.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BooleanDatasetBase.html
new file mode 100644
index 0000000..8735333
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BooleanDatasetBase.html
@@ -0,0 +1,1034 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// This is generated from DoubleDataset.java by fromdouble.py<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.ArrayList;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.Arrays;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.List;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.Set;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.TreeSet;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.eclipse.january.metadata.StatisticsMetadata;<a name="line.23"></a>
+<span class="sourceLineNo">024</span><a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>/**<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * Extend dataset for boolean values // PRIM_TYPE<a name="line.27"></a>
+<span class="sourceLineNo">028</span> */<a name="line.28"></a>
+<span class="sourceLineNo">029</span>public class BooleanDatasetBase extends AbstractDataset {<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        // pin UID to base class<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>        protected boolean[] data; // subclass alias // PRIM_TYPE<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>        @Override<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        protected void setData() {<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                data = (boolean[]) odata; // PRIM_TYPE<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        protected static boolean[] createArray(final int size) { // PRIM_TYPE<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                boolean[] array = null; // PRIM_TYPE<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>                try {<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                        array = new boolean[size]; // PRIM_TYPE<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                } catch (OutOfMemoryError e) {<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                }<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                return array;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        }<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        @Override<a name="line.54"></a>
+<span class="sourceLineNo">055</span>        public int getDType() {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                return BOOL; // DATA_TYPE<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        }<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>        /**<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * Create a null dataset<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        BooleanDatasetBase() {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        }<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>        /**<a name="line.65"></a>
+<span class="sourceLineNo">066</span>         * Create a zero-filled dataset of given shape<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * @param shape<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         */<a name="line.68"></a>
+<span class="sourceLineNo">069</span>        BooleanDatasetBase(final int... shape) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                if (shape != null) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                        size = ShapeUtils.calcSize(shape);<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        this.shape = shape.clone();<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        try {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                                odata = data = createArray(size);<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        } catch (Throwable t) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                throw new IllegalArgumentException(t);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        }<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                }<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        }<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>        /**<a name="line.83"></a>
+<span class="sourceLineNo">084</span>         * Create a dataset using given data<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         * @param data<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @param shape<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         *            (can be null to create 1D dataset)<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         */<a name="line.88"></a>
+<span class="sourceLineNo">089</span>        BooleanDatasetBase(final boolean[] data, int... shape) { // PRIM_TYPE<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                if (data == null) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                        throw new IllegalArgumentException("Data must not be null");<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                }<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                if (shape == null || shape.length == 0) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        shape = new int[] { data.length };<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                }<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                size = ShapeUtils.calcSize(shape);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                if (size != data.length) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                        Arrays.toString(shape), data.length));<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                this.shape = size == 0 ? null : shape.clone();<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>                odata = this.data = data;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>        /**<a name="line.106"></a>
+<span class="sourceLineNo">107</span>         * Copy a dataset<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * @param dataset<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         */<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        BooleanDatasetBase(final BooleanDatasetBase dataset) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                copyToView(dataset, this, true, true);<a name="line.111"></a>
+<span class="sourceLineNo">112</span><a name="line.112"></a>
+<span class="sourceLineNo">113</span>                try {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                        if (dataset.stride == null) {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                                if (dataset.data != null) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                        odata = data = dataset.data.clone();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                                }<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                        } else {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                                offset = 0;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                stride = null;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                base = null;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                odata = data = createArray(size);<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>                                IndexIterator iter = dataset.getIterator();<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                for (int i = 0; iter.hasNext(); i++) {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                                        data[i] = dataset.data[iter.index];<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                                }<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                } catch (Throwable t) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        throw new IllegalArgumentException(t);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                }<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        }<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>        /**<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         * Copy and cast a dataset to this class type<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         * @param dataset<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         */<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        BooleanDatasetBase(final Dataset dataset) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                copyToView(dataset, this, true, false);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                offset = 0;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                stride = null;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                base = null;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                try {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        odata = data = createArray(size);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                } catch (Throwable t) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                        throw new IllegalArgumentException(t);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                }<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                IndexIterator iter = dataset.getIterator();<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                for (int i = 0; iter.hasNext(); i++) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        data[i] = dataset.getElementBooleanAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                }<a name="line.153"></a>
+<span class="sourceLineNo">154</span>        }<a name="line.154"></a>
+<span class="sourceLineNo">155</span><a name="line.155"></a>
+<span class="sourceLineNo">156</span>        @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        public boolean equals(Object obj) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                if (this == obj) {<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>                if (obj == null) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                        return false;<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>                if (!getClass().equals(obj.getClass())) {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                        if (getRank() == 0) { // for zero-rank datasets<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                                return obj.equals(getObjectAbs(offset));<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                        }<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                        return false;<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>                BooleanDatasetBase other = (BooleanDatasetBase) obj;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                if (size != other.size) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                        return false;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                }<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                if (!Arrays.equals(shape, other.shape)) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        return false;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                }<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                if (data == other.data &amp;&amp; stride == null &amp;&amp; other.stride == null) {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                        return true;<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>                IndexIterator iter = getIterator();<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                IndexIterator oiter = other.getIterator();<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                        if (data[iter.index] != other.data[oiter.index]) { // OBJECT_UNEQUAL<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                                return false;<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>                return true;<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 int hashCode() {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                return super.hashCode();<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 BooleanDatasetBase clone() {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                return new BooleanDatasetBase(this);<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 dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.205"></a>
+<span class="sourceLineNo">206</span>         * sequences or arrays are padded with zeros.<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         *<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * @param obj<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * @return dataset with contents given by input<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         */<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        static BooleanDatasetBase createFromObject(final Object obj) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                BooleanDatasetBase result = new BooleanDatasetBase();<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>                if (obj != null) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                        result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                        result.size = ShapeUtils.calcSize(result.shape);<a name="line.216"></a>
+<span class="sourceLineNo">217</span><a name="line.217"></a>
+<span class="sourceLineNo">218</span>                        try {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                                result.odata = result.data = createArray(result.size);<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                        } catch (Throwable t) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(result.shape), t);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                                throw new IllegalArgumentException(t);<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>                        int[] pos = new int[result.shape.length];<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                        result.fillData(obj, 0, pos);<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>                return result;<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>         * @param shape<a name="line.233"></a>
+<span class="sourceLineNo">234</span>         * @return a dataset filled with ones<a name="line.234"></a>
+<span class="sourceLineNo">235</span>         */<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        static BooleanDatasetBase ones(final int... shape) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                return new BooleanDatasetBase(shape).fill(1);<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 BooleanDatasetBase fill(final Object obj) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                setDirty();<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                boolean dv = DTypeUtils.toBoolean(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                IndexIterator iter = getIterator();<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                while (iter.hasNext()) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        data[iter.index] = dv;<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 this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.253"></a>
+<span class="sourceLineNo">254</span>         * @return data buffer as linear array<a name="line.254"></a>
+<span class="sourceLineNo">255</span>         */<a name="line.255"></a>
+<span class="sourceLineNo">256</span>        public boolean[] getData() { // PRIM_TYPE<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                return data;<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>        protected int getBufferLength() {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                if (data == null)<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        return 0;<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                return data.length;<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 BooleanDatasetBase getView(boolean deepCopyMetadata) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                BooleanDatasetBase view = new BooleanDatasetBase();<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                view.setData();<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                return view;<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>         * 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.276"></a>
+<span class="sourceLineNo">277</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.277"></a>
+<span class="sourceLineNo">278</span>         *<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         * @param index<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         *            absolute index<a name="line.280"></a>
+<span class="sourceLineNo">281</span>         * @return value<a name="line.281"></a>
+<span class="sourceLineNo">282</span>         */<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        public boolean getAbs(final int index) { // PRIM_TYPE<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                return data[index];<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 boolean getElementBooleanAbs(final int index) {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                return false;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>        }<a name="line.290"></a>
+<span class="sourceLineNo">291</span><a name="line.291"></a>
+<span class="sourceLineNo">292</span>        @Override<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        public double getElementDoubleAbs(final int index) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                return 0;<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 long getElementLongAbs(final int index) {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                return 0;<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 Object getObjectAbs(final int index) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                return data[index];<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 String getStringAbs(final int index) {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                return stringFormat == null ? String.format("%b", data[index]) : // FORMAT_STRING<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                        stringFormat.format(data[index]);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        }<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>        /**<a name="line.313"></a>
+<span class="sourceLineNo">314</span>         * Set a value at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.314"></a>
+<span class="sourceLineNo">315</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.315"></a>
+<span class="sourceLineNo">316</span>         *<a name="line.316"></a>
+<span class="sourceLineNo">317</span>         * @param index<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         *            absolute index<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * @param val<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         *            new value<a name="line.320"></a>
+<span class="sourceLineNo">321</span>         */<a name="line.321"></a>
+<span class="sourceLineNo">322</span>        public void setAbs(final int index, final boolean val) { // PRIM_TYPE<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                setDirty();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                data[index] = val;<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>        @Override<a name="line.327"></a>
+<span class="sourceLineNo">328</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                setDirty();<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                boolean[] dsrc = (boolean[]) src; // PRIM_TYPE<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                data[dindex] = dsrc[sindex];<a name="line.331"></a>
+<span class="sourceLineNo">332</span>        }<a name="line.332"></a>
+<span class="sourceLineNo">333</span><a name="line.333"></a>
+<span class="sourceLineNo">334</span>        @Override<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        public void setObjectAbs(final int index, final Object obj) {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                if (index &lt; 0 || index &gt; data.length) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                        throw new IndexOutOfBoundsException("Index given is outside dataset");<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>                setAbs(index, DTypeUtils.toBoolean(obj)); // FROM_OBJECT<a name="line.340"></a>
+<span class="sourceLineNo">341</span>        }<a name="line.341"></a>
+<span class="sourceLineNo">342</span><a name="line.342"></a>
+<span class="sourceLineNo">343</span>        /**<a name="line.343"></a>
+<span class="sourceLineNo">344</span>         * @return item in first position<a name="line.344"></a>
+<span class="sourceLineNo">345</span>         * @since 2.0<a name="line.345"></a>
+<span class="sourceLineNo">346</span>         */<a name="line.346"></a>
+<span class="sourceLineNo">347</span>        public boolean get() { // PRIM_TYPE<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                return data[getFirst1DIndex()];<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>         * @param i<a name="line.352"></a>
+<span class="sourceLineNo">353</span>         * @return item in given position<a name="line.353"></a>
+<span class="sourceLineNo">354</span>         */<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        public boolean get(final int i) { // PRIM_TYPE<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                return data[get1DIndex(i)];<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        }<a name="line.357"></a>
+<span class="sourceLineNo">358</span><a name="line.358"></a>
+<span class="sourceLineNo">359</span>        /**<a name="line.359"></a>
+<span class="sourceLineNo">360</span>         * @param i<a name="line.360"></a>
+<span class="sourceLineNo">361</span>         * @param j<a name="line.361"></a>
+<span class="sourceLineNo">362</span>         * @return item in given position<a name="line.362"></a>
+<span class="sourceLineNo">363</span>         */<a name="line.363"></a>
+<span class="sourceLineNo">364</span>        public boolean get(final int i, final int j) { // PRIM_TYPE<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                return data[get1DIndex(i, j)];<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 pos<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 boolean get(final int... pos) { // PRIM_TYPE<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                return data[get1DIndex(pos)];<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 Object getObject() {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                return Boolean.valueOf(get()); // CLASS_TYPE<a name="line.378"></a>
+<span class="sourceLineNo">379</span>        }<a name="line.379"></a>
+<span class="sourceLineNo">380</span><a name="line.380"></a>
+<span class="sourceLineNo">381</span>        @Override<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        public Object getObject(final int i) {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                return Boolean.valueOf(get(i)); // CLASS_TYPE<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        }<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span>        @Override<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        public Object getObject(final int i, final int j) {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                return Boolean.valueOf(get(i, j)); // CLASS_TYPE<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>        @Override<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        public Object getObject(final int... pos) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                return Boolean.valueOf(get(pos)); // CLASS_TYPE<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>        @Override<a name="line.396"></a>
+<span class="sourceLineNo">397</span>        public String getString() {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                return getStringAbs(getFirst1DIndex());<a name="line.398"></a>
+<span class="sourceLineNo">399</span>        }<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span>        @Override<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        public String getString(final int i) {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                return getStringAbs(get1DIndex(i));<a name="line.403"></a>
+<span class="sourceLineNo">404</span>        }<a name="line.404"></a>
+<span class="sourceLineNo">405</span><a name="line.405"></a>
+<span class="sourceLineNo">406</span>        @Override<a name="line.406"></a>
+<span class="sourceLineNo">407</span>        public String getString(final int i, final int j) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                return getStringAbs(get1DIndex(i, j));<a name="line.408"></a>
+<span class="sourceLineNo">409</span>        }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>        @Override<a name="line.411"></a>
+<span class="sourceLineNo">412</span>        public String getString(final int... pos) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                return getStringAbs(get1DIndex(pos));<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 getDouble() {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                return 0;<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 double getDouble(final int i) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                return 0;<a name="line.423"></a>
+<span class="sourceLineNo">424</span>        }<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>        @Override<a name="line.426"></a>
+<span class="sourceLineNo">427</span>        public double getDouble(final int i, final int j) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                return 0;<a name="line.428"></a>
+<span class="sourceLineNo">429</span>        }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>        @Override<a name="line.431"></a>
+<span class="sourceLineNo">432</span>        public double getDouble(final int... pos) {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                return 0;<a name="line.433"></a>
+<span class="sourceLineNo">434</span>        }<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span>        @Override<a name="line.436"></a>
+<span class="sourceLineNo">437</span>        public float getFloat() {<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                return 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>        @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>        public float getFloat(final int i) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                return 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 float getFloat(final int i, final int j) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                return 0;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>        }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>        @Override<a name="line.451"></a>
+<span class="sourceLineNo">452</span>        public float getFloat(final int... pos) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                return 0;<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 long getLong() {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                return 0;<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 long getLong(final int i) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                return 0;<a name="line.463"></a>
+<span class="sourceLineNo">464</span>        }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>        @Override<a name="line.466"></a>
+<span class="sourceLineNo">467</span>        public long getLong(final int i, final int j) {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                return 0;<a name="line.468"></a>
+<span class="sourceLineNo">469</span>        }<a name="line.469"></a>
+<span class="sourceLineNo">470</span><a name="line.470"></a>
+<span class="sourceLineNo">471</span>        @Override<a name="line.471"></a>
+<span class="sourceLineNo">472</span>        public long getLong(final int... pos) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                return 0;<a name="line.473"></a>
+<span class="sourceLineNo">474</span>        }<a name="line.474"></a>
+<span class="sourceLineNo">475</span><a name="line.475"></a>
+<span class="sourceLineNo">476</span>        @Override<a name="line.476"></a>
+<span class="sourceLineNo">477</span>        public int getInt() {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                return 0;<a name="line.478"></a>
+<span class="sourceLineNo">479</span>        }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span>        @Override<a name="line.481"></a>
+<span class="sourceLineNo">482</span>        public int getInt(final int i) {<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                return 0;<a name="line.483"></a>
+<span class="sourceLineNo">484</span>        }<a name="line.484"></a>
+<span class="sourceLineNo">485</span><a name="line.485"></a>
+<span class="sourceLineNo">486</span>        @Override<a name="line.486"></a>
+<span class="sourceLineNo">487</span>        public int getInt(final int i, final int j) {<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                return 0;<a name="line.488"></a>
+<span class="sourceLineNo">489</span>        }<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span>        @Override<a name="line.491"></a>
+<span class="sourceLineNo">492</span>        public int getInt(final int... pos) {<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                return 0;<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 short getShort() {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                return 0;<a name="line.498"></a>
+<span class="sourceLineNo">499</span>        }<a name="line.499"></a>
+<span class="sourceLineNo">500</span><a name="line.500"></a>
+<span class="sourceLineNo">501</span>        @Override<a name="line.501"></a>
+<span class="sourceLineNo">502</span>        public short getShort(final int i) {<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                return 0;<a name="line.503"></a>
+<span class="sourceLineNo">504</span>        }<a name="line.504"></a>
+<span class="sourceLineNo">505</span><a name="line.505"></a>
+<span class="sourceLineNo">506</span>        @Override<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        public short getShort(final int i, final int j) {<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                return 0;<a name="line.508"></a>
+<span class="sourceLineNo">509</span>        }<a name="line.509"></a>
+<span class="sourceLineNo">510</span><a name="line.510"></a>
+<span class="sourceLineNo">511</span>        @Override<a name="line.511"></a>
+<span class="sourceLineNo">512</span>        public short getShort(final int... pos) {<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                return 0;<a name="line.513"></a>
+<span class="sourceLineNo">514</span>        }<a name="line.514"></a>
+<span class="sourceLineNo">515</span><a name="line.515"></a>
+<span class="sourceLineNo">516</span>        @Override<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        public byte getByte() {<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                return 0;<a name="line.518"></a>
+<span class="sourceLineNo">519</span>        }<a name="line.519"></a>
+<span class="sourceLineNo">520</span><a name="line.520"></a>
+<span class="sourceLineNo">521</span>        @Override<a name="line.521"></a>
+<span class="sourceLineNo">522</span>        public byte getByte(final int i) {<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                return 0;<a name="line.523"></a>
+<span class="sourceLineNo">524</span>        }<a name="line.524"></a>
+<span class="sourceLineNo">525</span><a name="line.525"></a>
+<span class="sourceLineNo">526</span>        @Override<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        public byte getByte(final int i, final int j) {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                return 0;<a name="line.528"></a>
+<span class="sourceLineNo">529</span>        }<a name="line.529"></a>
+<span class="sourceLineNo">530</span><a name="line.530"></a>
+<span class="sourceLineNo">531</span>        @Override<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        public byte getByte(final int... pos) {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                return 0;<a name="line.533"></a>
+<span class="sourceLineNo">534</span>        }<a name="line.534"></a>
+<span class="sourceLineNo">535</span><a name="line.535"></a>
+<span class="sourceLineNo">536</span>        @Override<a name="line.536"></a>
+<span class="sourceLineNo">537</span>        public boolean getBoolean() {<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                return false;<a name="line.538"></a>
+<span class="sourceLineNo">539</span>        }<a name="line.539"></a>
+<span class="sourceLineNo">540</span><a name="line.540"></a>
+<span class="sourceLineNo">541</span>        @Override<a name="line.541"></a>
+<span class="sourceLineNo">542</span>        public boolean getBoolean(final int i) {<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                return false;<a name="line.543"></a>
+<span class="sourceLineNo">544</span>        }<a name="line.544"></a>
+<span class="sourceLineNo">545</span><a name="line.545"></a>
+<span class="sourceLineNo">546</span>        @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        public boolean getBoolean(final int i, final int j) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                return false;<a name="line.548"></a>
+<span class="sourceLineNo">549</span>        }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>        @Override<a name="line.551"></a>
+<span class="sourceLineNo">552</span>        public boolean getBoolean(final int... pos) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                return false;<a name="line.553"></a>
+<span class="sourceLineNo">554</span>        }<a name="line.554"></a>
+<span class="sourceLineNo">555</span><a name="line.555"></a>
+<span class="sourceLineNo">556</span>        /**<a name="line.556"></a>
+<span class="sourceLineNo">557</span>         * Sets the value at first point to the passed value. The dataset must not be null<a name="line.557"></a>
+<span class="sourceLineNo">558</span>         *<a name="line.558"></a>
+<span class="sourceLineNo">559</span>         * @param value<a name="line.559"></a>
+<span class="sourceLineNo">560</span>         * @since 2.0<a name="line.560"></a>
+<span class="sourceLineNo">561</span>         */<a name="line.561"></a>
+<span class="sourceLineNo">562</span>        public void setItem(final boolean value) { // PRIM_TYPE<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                setAbs(getFirst1DIndex(), value);<a name="line.563"></a>
+<span class="sourceLineNo">564</span>        }<a name="line.564"></a>
+<span class="sourceLineNo">565</span><a name="line.565"></a>
+<span class="sourceLineNo">566</span>        /**<a name="line.566"></a>
+<span class="sourceLineNo">567</span>         * Sets the value at a particular point to the passed value. The dataset must be 1D<a name="line.567"></a>
+<span class="sourceLineNo">568</span>         *<a name="line.568"></a>
+<span class="sourceLineNo">569</span>         * @param value<a name="line.569"></a>
+<span class="sourceLineNo">570</span>         * @param i<a name="line.570"></a>
+<span class="sourceLineNo">571</span>         */<a name="line.571"></a>
+<span class="sourceLineNo">572</span>        public void setItem(final boolean value, final int i) { // PRIM_TYPE<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                setAbs(get1DIndex(i), value);<a name="line.573"></a>
+<span class="sourceLineNo">574</span>        }<a name="line.574"></a>
+<span class="sourceLineNo">575</span><a name="line.575"></a>
+<span class="sourceLineNo">576</span>        /**<a name="line.576"></a>
+<span class="sourceLineNo">577</span>         * Sets the value at a particular point to the passed value. The dataset must be 2D<a name="line.577"></a>
+<span class="sourceLineNo">578</span>         *<a name="line.578"></a>
+<span class="sourceLineNo">579</span>         * @param value<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * @param i<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         * @param j<a name="line.581"></a>
+<span class="sourceLineNo">582</span>         */<a name="line.582"></a>
+<span class="sourceLineNo">583</span>        public void setItem(final boolean value, final int i, final int j) { // PRIM_TYPE<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                setAbs(get1DIndex(i, j), value);<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>         * Sets the value at a particular point to the passed value<a name="line.588"></a>
+<span class="sourceLineNo">589</span>         *<a name="line.589"></a>
+<span class="sourceLineNo">590</span>         * @param value<a name="line.590"></a>
+<span class="sourceLineNo">591</span>         * @param pos<a name="line.591"></a>
+<span class="sourceLineNo">592</span>         */<a name="line.592"></a>
+<span class="sourceLineNo">593</span>        public void setItem(final boolean value, final int... pos) { // PRIM_TYPE<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                setAbs(get1DIndex(pos), value);<a name="line.594"></a>
+<span class="sourceLineNo">595</span>        }<a name="line.595"></a>
+<span class="sourceLineNo">596</span><a name="line.596"></a>
+<span class="sourceLineNo">597</span>        @Override<a name="line.597"></a>
+<span class="sourceLineNo">598</span>        public void set(final Object obj) {<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                setItem(DTypeUtils.toBoolean(obj)); // FROM_OBJECT<a name="line.599"></a>
+<span class="sourceLineNo">600</span>        }<a name="line.600"></a>
+<span class="sourceLineNo">601</span><a name="line.601"></a>
+<span class="sourceLineNo">602</span>        @Override<a name="line.602"></a>
+<span class="sourceLineNo">603</span>        public void set(final Object obj, final int i) {<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                setItem(DTypeUtils.toBoolean(obj), i); // FROM_OBJECT<a name="line.604"></a>
+<span class="sourceLineNo">605</span>        }<a name="line.605"></a>
+<span class="sourceLineNo">606</span><a name="line.606"></a>
+<span class="sourceLineNo">607</span>        @Override<a name="line.607"></a>
+<span class="sourceLineNo">608</span>        public void set(final Object obj, final int i, final int j) {<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                setItem(DTypeUtils.toBoolean(obj), i, j); // FROM_OBJECT<a name="line.609"></a>
+<span class="sourceLineNo">610</span>        }<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>        @Override<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        public void set(final Object obj, int... pos) {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        pos = new int[shape.length];<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>                setItem(DTypeUtils.toBoolean(obj), pos); // FROM_OBJECT<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>        @Override<a name="line.621"></a>
+<span class="sourceLineNo">622</span>        public void resize(int... newShape) {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                setDirty();<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                final IndexIterator iter = getIterator();<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                final int nsize = ShapeUtils.calcSize(newShape);<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                final boolean[] ndata; // PRIM_TYPE<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                try {<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                        ndata = createArray(nsize);<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                } catch (Throwable t) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                        throw new IllegalArgumentException(t);<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                }<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                for (int i = 0; iter.hasNext() &amp;&amp; i &lt; nsize; i++) {<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                        ndata[i] = data[iter.index];<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                }<a name="line.635"></a>
+<span class="sourceLineNo">636</span><a name="line.636"></a>
+<span class="sourceLineNo">637</span>                odata = data = ndata;<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                size = nsize;<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                shape = newShape;<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                stride = null;<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                offset = 0;<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                base = null;<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 BooleanDatasetBase sort(Integer axis) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                throw new UnsupportedOperationException("Cannot sort dataset"); // BOOLEAN_USE<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 getUniqueItems() {<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                Set&lt;Boolean&gt; set = new TreeSet&lt;Boolean&gt;(); // CLASS_TYPE<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                IndexIterator it = getIterator();<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                while (it.hasNext()) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                        set.add(data[it.index]);<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>                BooleanDataset u = new BooleanDataset(set.size()); // CLASS_TYPE<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                int i = 0;<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                boolean[] udata = u.getData(); // PRIM_TYPE<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                for (Boolean v : set) { // CLASS_TYPE<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                        udata[i++] = v;<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                }<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                return u;<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 BooleanDatasetBase getSlice(final SliceIterator siter) {<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                BooleanDatasetBase result = new BooleanDatasetBase(siter.getShape());<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                boolean[] rdata = result.data; // PRIM_TYPE<a name="line.670"></a>
+<span class="sourceLineNo">671</span><a name="line.671"></a>
+<span class="sourceLineNo">672</span>                for (int i = 0; siter.hasNext(); i++)<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                        rdata[i] = data[siter.index];<a name="line.673"></a>
+<span class="sourceLineNo">674</span><a name="line.674"></a>
+<span class="sourceLineNo">675</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                return result;<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>        @Override<a name="line.679"></a>
+<span class="sourceLineNo">680</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                IndexIterator riter = result.getIterator();<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                result.setDirty();<a name="line.682"></a>
+<span class="sourceLineNo">683</span><a name="line.683"></a>
+<span class="sourceLineNo">684</span>                boolean[] rdata = ((BooleanDatasetBase) result).data; // PRIM_TYPE<a name="line.684"></a>
+<span class="sourceLineNo">685</span><a name="line.685"></a>
+<span class="sourceLineNo">686</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                        rdata[riter.index] = data[iter.index];<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                }<a name="line.688"></a>
+<span class="sourceLineNo">689</span>        }<a name="line.689"></a>
+<span class="sourceLineNo">690</span><a name="line.690"></a>
+<span class="sourceLineNo">691</span>        @Override<a name="line.691"></a>
+<span class="sourceLineNo">692</span>        public BooleanDatasetBase setByBoolean(final Object obj, Dataset selection) {<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                setDirty();<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                if (obj instanceof Dataset) {<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                        final Dataset ds = (Dataset) obj;<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                        if (length != ds.getSize()) {<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                                throw new IllegalArgumentException(<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.703"></a>
+<span class="sourceLineNo">704</span><a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        while (biter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                                data[biter.index] = ds.getElementBooleanAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                        }<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                } else {<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                        final boolean dv = DTypeUtils.toBoolean(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.710"></a>
+<span class="sourceLineNo">711</span><a name="line.711"></a>
+<span class="sourceLineNo">712</span>                        while (biter.hasNext()) {<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                                data[biter.index] = dv;<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>                return this;<a name="line.716"></a>
+<span class="sourceLineNo">717</span>        }<a name="line.717"></a>
+<span class="sourceLineNo">718</span><a name="line.718"></a>
+<span class="sourceLineNo">719</span>        @Override<a name="line.719"></a>
+<span class="sourceLineNo">720</span>        public BooleanDatasetBase setBy1DIndex(final Object obj, final Dataset index) {<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                setDirty();<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                if (obj instanceof Dataset) {<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                        final Dataset ds = (Dataset) obj;<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                        if (index.getSize() != ds.getSize()) {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                                throw new IllegalArgumentException(<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                                                "Number of items in index dataset does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                        final IntegerIterator iter = new IntegerIterator(index, size);<a name="line.730"></a>
+<span class="sourceLineNo">731</span><a name="line.731"></a>
+<span class="sourceLineNo">732</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                                data[iter.index] = ds.getElementBooleanAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                        }<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                } else {<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                        final boolean dv = DTypeUtils.toBoolean(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                        IntegerIterator iter = new IntegerIterator(index, size);<a name="line.737"></a>
+<span class="sourceLineNo">738</span><a name="line.738"></a>
+<span class="sourceLineNo">739</span>                        while (iter.hasNext()) {<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                                data[iter.index] = dv;<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        }<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                }<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                return this;<a name="line.743"></a>
+<span class="sourceLineNo">744</span>        }<a name="line.744"></a>
+<span class="sourceLineNo">745</span><a name="line.745"></a>
+<span class="sourceLineNo">746</span>        @Override<a name="line.746"></a>
+<span class="sourceLineNo">747</span>        public BooleanDatasetBase setByIndexes(final Object obj, final Object... indexes) {<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                setDirty();<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                final int[] pos = iter.getPos();<a name="line.750"></a>
+<span class="sourceLineNo">751</span><a name="line.751"></a>
+<span class="sourceLineNo">752</span>                if (obj instanceof Dataset) {<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                        final Dataset ds = (Dataset) obj;<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                                throw new IllegalArgumentException(<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                                                "Number of items in index datasets does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.759"></a>
+<span class="sourceLineNo">760</span><a name="line.760"></a>
+<span class="sourceLineNo">761</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                                setItem(ds.getElementBooleanAbs(oiter.index), pos); // GET_ELEMENT_WITH_CAST<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                        }<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                } else {<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        final boolean dv = DTypeUtils.toBoolean(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.765"></a>
+<span class="sourceLineNo">766</span><a name="line.766"></a>
+<span class="sourceLineNo">767</span>                        while (iter.hasNext()) {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                                setItem(dv, pos);<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 this;<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>        @Override<a name="line.774"></a>
+<span class="sourceLineNo">775</span>        BooleanDatasetBase setSlicedView(Dataset view, Dataset d) {<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                setDirty();<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.777"></a>
+<span class="sourceLineNo">778</span><a name="line.778"></a>
+<span class="sourceLineNo">779</span>                while (it.hasNext()) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                        data[it.aIndex] = d.getElementBooleanAbs(it.bIndex);<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                }<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                return this;<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>        @Override<a name="line.785"></a>
+<span class="sourceLineNo">786</span>        public BooleanDatasetBase setSlice(final Object obj, final IndexIterator siter) {<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                setDirty();<a name="line.787"></a>
+<span class="sourceLineNo">788</span><a name="line.788"></a>
+<span class="sourceLineNo">789</span>                if (obj instanceof IDataset) {<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                        final IDataset ds = (IDataset) obj;<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        final int[] oshape = ds.getShape();<a name="line.791"></a>
+<span class="sourceLineNo">792</span><a name="line.792"></a>
+<span class="sourceLineNo">793</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                                throw new IllegalArgumentException(String.format(<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                                                Arrays.toString(siter.getShape())));<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>                        if (ds instanceof Dataset) {<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                                final Dataset ads = (Dataset) ds;<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                                final IndexIterator oiter = ads.getIterator();<a name="line.801"></a>
+<span class="sourceLineNo">802</span><a name="line.802"></a>
+<span class="sourceLineNo">803</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                                        data[siter.index] = ads.getElementBooleanAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                        } else {<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                                final int[] pos = oiter.getPos();<a name="line.807"></a>
+<span class="sourceLineNo">808</span><a name="line.808"></a>
+<span class="sourceLineNo">809</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                                        data[siter.index] = ds.getBoolean(pos); // PRIM_TYPE<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>                        try {<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                                boolean v = DTypeUtils.toBoolean(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.814"></a>
+<span class="sourceLineNo">815</span><a name="line.815"></a>
+<span class="sourceLineNo">816</span>                                while (siter.hasNext())<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                                        data[siter.index] = v;<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                        } catch (IllegalArgumentException e) {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<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>                return this;<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>        @Override<a name="line.825"></a>
+<span class="sourceLineNo">826</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                boolean[] ddata = (boolean[]) dest.getBuffer(); // PRIM_TYPE<a name="line.827"></a>
+<span class="sourceLineNo">828</span><a name="line.828"></a>
+<span class="sourceLineNo">829</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.830"></a>
+<span class="sourceLineNo">831</span><a name="line.831"></a>
+<span class="sourceLineNo">832</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.832"></a>
+<span class="sourceLineNo">833</span><a name="line.833"></a>
+<span class="sourceLineNo">834</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<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>                dest.setDirty();<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                        ddata[diter.index] = data[siter.index];<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>        @Override<a name="line.844"></a>
+<span class="sourceLineNo">845</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                setDirty();<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                boolean[] sdata = (boolean[]) src; // PRIM_TYPE<a name="line.847"></a>
+<span class="sourceLineNo">848</span><a name="line.848"></a>
+<span class="sourceLineNo">849</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.849"></a>
+<span class="sourceLineNo">850</span><a name="line.850"></a>
+<span class="sourceLineNo">851</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                        throw new IllegalArgumentException("destination array is not large enough");<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>                for (int i = 0; siter.hasNext(); i++) {<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                        data[siter.index] = sdata[i];<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                }<a name="line.857"></a>
+<span class="sourceLineNo">858</span>        }<a name="line.858"></a>
+<span class="sourceLineNo">859</span><a name="line.859"></a>
+<span class="sourceLineNo">860</span>        private List&lt;int[]&gt; findPositions(final boolean value) { // PRIM_TYPE<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                IndexIterator iter = getIterator(true);<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                List&lt;int[]&gt; posns = new ArrayList&lt;int[]&gt;();<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                int[] pos = iter.getPos();<a name="line.863"></a>
+<span class="sourceLineNo">864</span><a name="line.864"></a>
+<span class="sourceLineNo">865</span>                {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                        while (iter.hasNext()) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                if (data[iter.index] == value) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                        posns.add(pos.clone());<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>                return posns;<a name="line.872"></a>
+<span class="sourceLineNo">873</span>        }<a name="line.873"></a>
+<span class="sourceLineNo">874</span><a name="line.874"></a>
+<span class="sourceLineNo">875</span>        @Override<a name="line.875"></a>
+<span class="sourceLineNo">876</span>        public int[] maxPos(boolean... ignoreInvalids) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                List&lt;int[]&gt; max = md.getMaximumPositions(ignoreInvalids);<a name="line.879"></a>
+<span class="sourceLineNo">880</span><a name="line.880"></a>
+<span class="sourceLineNo">881</span>                if (max == null) {<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                        max = findPositions(md.getMaximum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.883"></a>
+<span class="sourceLineNo">884</span><a name="line.884"></a>
+<span class="sourceLineNo">885</span>                        md.setMaximumPositions(max);<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                }<a name="line.886"></a>
+<span class="sourceLineNo">887</span><a name="line.887"></a>
+<span class="sourceLineNo">888</span>                return max.get(0); // first maximum<a name="line.888"></a>
+<span class="sourceLineNo">889</span>        }<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>        @Override<a name="line.891"></a>
+<span class="sourceLineNo">892</span>        public int[] minPos(boolean... ignoreInvalids) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                List&lt;int[]&gt; min = md.getMinimumPositions(ignoreInvalids);<a name="line.895"></a>
+<span class="sourceLineNo">896</span><a name="line.896"></a>
+<span class="sourceLineNo">897</span>                if (min == null) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                        min = findPositions(md.getMinimum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.899"></a>
+<span class="sourceLineNo">900</span><a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        md.setMinimumPositions(min);<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 min.get(0); // first minimum<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 boolean containsNans() {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                return false;<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 containsInfs() {<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 containsInvalidNumbers() {<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 BooleanDatasetBase iadd(final Object b) {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                return this;<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 BooleanDatasetBase isubtract(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 BooleanDatasetBase imultiply(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 BooleanDatasetBase idivide(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 BooleanDatasetBase ifloor() {<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 BooleanDatasetBase iremainder(final Object b) {<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 BooleanDatasetBase ipower(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 double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                double sum = 0;<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                return sum;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BooleanIterator.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BooleanIterator.html
new file mode 100644
index 0000000..1716f42
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BooleanIterator.html
@@ -0,0 +1,226 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>import java.util.Arrays;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>/**<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * Base class for boolean iterators for pairs of dataset where the second dataset could be broadcast to the first and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * is used to select where {{@link #hasNext()} returns true. An optional third dataset can specify the output.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * For speed, there are public members.<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>public abstract class BooleanIterator extends IndexIterator {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        /**<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * Create a boolean iterator that stops at every position in the choice dataset with a true value<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * @param a primary dataset<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * @param c choice dataset, can be null to choose all<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * @since 2.1<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         */<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        public static BooleanIterator createIterator(Dataset a, Dataset c) {<a name="line.27"></a>
+<span class="sourceLineNo">028</span>                return createIterator(true, a, c, null, false);<a name="line.28"></a>
+<span class="sourceLineNo">029</span>        }<a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span>        /**<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * Create a boolean iterator that stops at every position in the choice dataset with a true value<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * @param a primary dataset<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * @param c choice dataset, can be null to choose all<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * @param o output dataset, can be null<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         * @since 2.1<a name="line.36"></a>
+<span class="sourceLineNo">037</span>         */<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        public static BooleanIterator createIterator(Dataset a, Dataset c, Dataset o) {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                return createIterator(true, a, c, o, false);<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        }<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>        /**<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * Create a boolean iterator that stops at every position in the choice dataset where its value matches<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * the given boolean<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * @param v boolean value<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @param a primary dataset<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         * @param c choice dataset, can be null to choose all<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @param o output dataset, can be null<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         * @since 2.1<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         */<a name="line.50"></a>
+<span class="sourceLineNo">051</span>        public static BooleanIterator createIterator(boolean v, Dataset a, Dataset c, Dataset o) {<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return createIterator(v, a, c, o, false);<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        /**<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * Create a boolean iterator that stops at every position in the choice dataset where its value matches<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * the given boolean<a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param v boolean value<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param a primary dataset<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @param c choice dataset, can be null to choose all<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * @param o output dataset, can be null<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * @param createIfNull if true create the output dataset if that is null<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         * @since 2.1<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         */<a name="line.64"></a>
+<span class="sourceLineNo">065</span>        public static BooleanIterator createIterator(boolean v, Dataset a, Dataset c, Dataset o, boolean createIfNull) {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                if (c == null) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        return new BooleanNullIterator(a, o, createIfNull);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                }<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                if (Arrays.equals(a.getShapeRef(), c.getShapeRef()) &amp;&amp; a.getStrides() == null &amp;&amp; c.getStrides() == null) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                        if (o == null || (o.getStrides() == null &amp;&amp; Arrays.equals(a.getShapeRef(), o.getShapeRef()))) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                                return new BooleanContiguousIterator(v, a, c, o, createIfNull);<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        }<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                }<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                return new BooleanBroadcastIterator(v, a, c, o, createIfNull);<a name="line.74"></a>
+<span class="sourceLineNo">075</span>        }<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>        protected final boolean value;<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>        /**<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         * Index in choice dataset<a name="line.80"></a>
+<span class="sourceLineNo">081</span>         */<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        public int cIndex;<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>        /**<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         * Index in output dataset<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         */<a name="line.86"></a>
+<span class="sourceLineNo">087</span>        public int oIndex;<a name="line.87"></a>
+<span class="sourceLineNo">088</span><a name="line.88"></a>
+<span class="sourceLineNo">089</span>        /**<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         * Output dataset<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>        protected Dataset oDataset;<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>        final protected boolean outputA;<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>        protected int[] maxShape;<a name="line.96"></a>
+<span class="sourceLineNo">097</span><a name="line.97"></a>
+<span class="sourceLineNo">098</span>        protected final int aStep; // step over items<a name="line.98"></a>
+<span class="sourceLineNo">099</span>        protected int oStep;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>        protected int aMax; // maximum index in array<a name="line.100"></a>
+<span class="sourceLineNo">101</span>        protected int aStart, oStart;<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>        protected Dataset aDataset;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        protected Dataset cDataset;<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>        /**<a name="line.106"></a>
+<span class="sourceLineNo">107</span>         * @return choice<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * @since 2.1<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         */<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        public Dataset getChoice() {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                return cDataset;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        }<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>        @Override<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        public int[] getShape() {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                return maxShape;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>        /**<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         * Construct a boolean iterator that stops at the given boolean value in choice dataset<a name="line.120"></a>
+<span class="sourceLineNo">121</span>         * @param v boolean value<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         * @param a primary dataset<a name="line.122"></a>
+<span class="sourceLineNo">123</span>         * @param c choice dataset<a name="line.123"></a>
+<span class="sourceLineNo">124</span>         * @param o output dataset, can be null<a name="line.124"></a>
+<span class="sourceLineNo">125</span>         */<a name="line.125"></a>
+<span class="sourceLineNo">126</span>        protected BooleanIterator(boolean v, Dataset a, Dataset c, Dataset o) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                value = v;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                aDataset = a;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                aStep = a.getElementsPerItem();<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                cDataset = c;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                oDataset = o;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                outputA = a == o;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                if (c != null &amp;&amp; c == o) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        throw new IllegalArgumentException("Output dataset must not be same as mask dataset");<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                }<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span>                if (c != null) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        BroadcastUtils.checkItemSize(a, c, o);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                } else if (o != null) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        BroadcastUtils.checkItemSize(a, o);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                if (o != null) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                        o.setDirty();<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                }<a name="line.144"></a>
+<span class="sourceLineNo">145</span>        }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>        /**<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         * @return output dataset (can be null)<a name="line.148"></a>
+<span class="sourceLineNo">149</span>         * @since 2.1<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         */<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        public Dataset getOutput() {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                return oDataset;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>        }<a name="line.153"></a>
+<span class="sourceLineNo">154</span>}<a name="line.154"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BooleanNullIterator.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BooleanNullIterator.html
new file mode 100644
index 0000000..a69b535
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BooleanNullIterator.html
@@ -0,0 +1,234 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2017 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>import java.util.Arrays;<a name="line.12"></a>
+<span class="sourceLineNo">013</span>import java.util.List;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>/**<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * Class to run over a single dataset with NumPy broadcasting to promote shapes<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * which have lower rank and outputs to a second dataset<a name="line.17"></a>
+<span class="sourceLineNo">018</span> * @since 2.1<a name="line.18"></a>
+<span class="sourceLineNo">019</span> */<a name="line.19"></a>
+<span class="sourceLineNo">020</span>public class BooleanNullIterator extends BooleanIteratorBase {<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>        /**<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * @param a<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * @param o (can be null for new dataset, or a)<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         */<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        public BooleanNullIterator(Dataset a, Dataset o) {<a name="line.26"></a>
+<span class="sourceLineNo">027</span>                this(a, o, false);<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        }<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>        /**<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         * @param a<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * @param o (can be null for new dataset, or a)<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * @param createIfNull if true create the output dataset if that is null<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * (by default, can create float or complex datasets)<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         */<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        public BooleanNullIterator(Dataset a, Dataset o, boolean createIfNull) {<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                this(a, o, createIfNull, false, true);<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        /**<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * @param a<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @param o (can be null for new dataset, or a)<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param createIfNull if true create the output dataset if that is null<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param allowInteger if true, can create integer datasets<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * @param allowComplex if true, can create complex datasets<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         */<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        public BooleanNullIterator(Dataset a, Dataset o, boolean createIfNull, boolean allowInteger, boolean allowComplex) {<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                super(true, a, null, o);<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                List&lt;int[]&gt; fullShapes = BroadcastUtils.broadcastShapes(a.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>                BroadcastUtils.checkItemSize(a, o);<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>                maxShape = fullShapes.remove(0);<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>                oStride = null;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                if (o != null &amp;&amp; !Arrays.equals(maxShape, o.getShapeRef())) {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                        throw new IllegalArgumentException("Output does not match broadcasted shape");<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>                aShape = fullShapes.remove(0);<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>                int rank = maxShape.length;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                endrank = rank - 1;<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>                aDataset = a.reshape(aShape);<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                aStride = BroadcastUtils.createBroadcastStrides(aDataset, maxShape);<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                if (outputA) {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        oStride = aStride;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                        oDelta = null;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                        oStep = 0;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                } else if (o != null) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        oStride = BroadcastUtils.createBroadcastStrides(o, maxShape);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        oDelta = new int[rank];<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        oStep = o.getElementsPerItem();<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                } else if (createIfNull) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        int is = aDataset.getElementsPerItem();<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        Class&lt;? extends Dataset&gt; dc = aDataset.getClass();<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                        if (aDataset.isComplex() &amp;&amp; !allowComplex) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                is = 1;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                dc = InterfaceUtils.getBestFloatInterface(dc);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        } else if (!aDataset.hasFloatingPointElements() &amp;&amp; !allowInteger) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                                dc = InterfaceUtils.getBestFloatInterface(dc);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                        }<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                        oDataset = DatasetFactory.zeros(is, dc, maxShape);<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                        oStride = BroadcastUtils.createBroadcastStrides(oDataset, maxShape);<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                        oDelta = new int[rank];<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        oStep = is;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                } else {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                        oDelta = null;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                        oStep = 0;<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>                pos = new int[rank];<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                aDelta = new int[rank];<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                for (int j = endrank; j &gt;= 0; j--) {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                        aDelta[j] = aStride[j] * aShape[j];<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        if (oDelta != null) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                                oDelta[j] = oStride[j] * maxShape[j];<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>
+<span class="sourceLineNo">102</span>                aStart = aDataset.getOffset();<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                aMax = endrank &lt; 0 ? aStep + aStart : Integer.MIN_VALUE;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                oStart = oDelta == null ? 0 : oDataset.getOffset();<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                reset();<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>        @Override<a name="line.108"></a>
+<span class="sourceLineNo">109</span>        public boolean hasNext() {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                int j = endrank;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                for (; j &gt;= 0; j--) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        pos[j]++;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                        index += aStride[j];<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                        if (oDelta != null) {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                                oIndex += oStride[j];<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                        }<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                        if (pos[j] &gt;= maxShape[j]) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                pos[j] = 0;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                                index -= aDelta[j]; // reset these dimensions<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                if (oDelta != null) {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                        oIndex -= oDelta[j];<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                }<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                        } else {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                                break;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                        }<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                }<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                if (j == -1) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        if (endrank &gt;= 0) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                                return false;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        }<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        index += aStep;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        if (oDelta != null) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                                oIndex += oStep;<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>                if (outputA) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                        oIndex = index;<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 (index == aMax) {<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>                return true;<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 void reset() {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                for (int i = 0; i &lt;= endrank; i++) {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                        pos[i] = 0;<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 (endrank &gt;= 0) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        pos[endrank] = -1;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                        index = aStart - aStride[endrank];<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        oIndex = oStart - (oStride == null ? 0 : oStride[endrank]);<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                } else {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                        index = aStart - aStep;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                        oIndex = oStart - oStep;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BroadcastIterator.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BroadcastIterator.html
new file mode 100644
index 0000000..203347d
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BroadcastIterator.html
@@ -0,0 +1,166 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.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.&lt;p&gt;<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 BroadcastIterator extends BroadcastIteratorBase {<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>        public static BroadcastIterator createIterator(Dataset a, Dataset b) {<a name="line.20"></a>
+<span class="sourceLineNo">021</span>                return createIterator(a, b, null, false);<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>        public static BroadcastIterator createIterator(Dataset a, Dataset b, Dataset o) {<a name="line.24"></a>
+<span class="sourceLineNo">025</span>                return createIterator(a, b, o, false);<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>        public static BroadcastIterator createIterator(Dataset a, Dataset b, Dataset o, boolean createIfNull) {<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                if (Arrays.equals(a.getShapeRef(), b.getShapeRef()) &amp;&amp; a.getStrides() == null &amp;&amp; b.getStrides() == null) {<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                        if (o == null || (o.getStrides() == null &amp;&amp; Arrays.equals(a.getShapeRef(), o.getShapeRef()))) {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                                return new ContiguousPairIterator(a, b, o, createIfNull);<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>                return new BroadcastPairIterator(a, b, o, createIfNull);<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>         * Index in output dataset<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         */<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        public int oIndex;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>        /**<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * Current value in first dataset<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         */<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        public double aDouble;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>        /**<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * Current value in first dataset<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         */<a name="line.47"></a>
+<span class="sourceLineNo">048</span>        public long aLong;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>        /**<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         * Output dataset<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         */<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        protected Dataset oDataset;<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        final protected boolean outputA;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>        final protected boolean outputB;<a name="line.55"></a>
+<span class="sourceLineNo">056</span><a name="line.56"></a>
+<span class="sourceLineNo">057</span>        protected BroadcastIterator(Dataset a, Dataset b, Dataset o) {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                super(a, b);<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                oDataset = o;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                outputA = a == o;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                outputB = b == o;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                read = DTypeUtils.isDTypeNumerical(a.getDType()) &amp;&amp; DTypeUtils.isDTypeNumerical(b.getDType());<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                asDouble = aDataset.hasFloatingPointElements() || bDataset.hasFloatingPointElements();<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                BroadcastUtils.checkItemSize(a, b, o);<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                if (o != null) {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                        o.setDirty();<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>        /**<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         * @return output dataset (can be null)<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         */<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        public Dataset getOutput() {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                return oDataset;<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>        protected void storeCurrentValues() {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                if (aIndex &gt;= 0) {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        if (asDouble) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                                aDouble = aDataset.getElementDoubleAbs(aIndex);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        } else {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                                aLong = aDataset.getElementLongAbs(aIndex);<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>                if (bIndex &gt;= 0) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        if (asDouble) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                                bDouble = bDataset.getElementDoubleAbs(bIndex);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                        } else {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                                bLong = bDataset.getElementLongAbs(bIndex);<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BroadcastIteratorBase.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BroadcastIteratorBase.html
new file mode 100644
index 0000000..459f30d
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/dataset/BroadcastPairIterator.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BroadcastPairIterator.html
new file mode 100644
index 0000000..c39f85d
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BroadcastPairIterator.html
@@ -0,0 +1,278 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.Arrays;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.List;<a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>/**<a name="line.18"></a>
+<span class="sourceLineNo">019</span> * Class to run over a pair of datasets in parallel with NumPy broadcasting to promote shapes<a name="line.19"></a>
+<span class="sourceLineNo">020</span> * which have lower rank and outputs to a third dataset<a name="line.20"></a>
+<span class="sourceLineNo">021</span> */<a name="line.21"></a>
+<span class="sourceLineNo">022</span>public class BroadcastPairIterator extends BroadcastIterator {<a name="line.22"></a>
+<span class="sourceLineNo">023</span>        private int[] aShape;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>        private int[] bShape;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        private int[] aStride;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        private int[] bStride;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        private int[] oStride;<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>        final private int endrank;<a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span>        private final int[] aDelta, bDelta;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        private final int[] oDelta; // this being non-null means output is different from inputs<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        private final int aStep, bStep, oStep;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>        private int aMax, bMax;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        private int aStart, bStart, oStart;<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>        /**<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         * <a name="line.38"></a>
+<span class="sourceLineNo">039</span>         * @param a<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * @param b<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * @param o (can be null for new dataset, a or b)<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @param createIfNull<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         */<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        public BroadcastPairIterator(Dataset a, Dataset b, Dataset o, boolean createIfNull) {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                super(a, b, o);<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                List&lt;int[]&gt; fullShapes = BroadcastUtils.broadcastShapes(a.getShapeRef(), b.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>                maxShape = fullShapes.remove(0);<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>                oStride = null;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                if (o != null &amp;&amp; !Arrays.equals(maxShape, o.getShapeRef())) {<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                        throw new IllegalArgumentException("Output does not match broadcasted shape");<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                }<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                aShape = fullShapes.remove(0);<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                bShape = fullShapes.remove(0);<a name="line.55"></a>
+<span class="sourceLineNo">056</span><a name="line.56"></a>
+<span class="sourceLineNo">057</span>                int rank = maxShape.length;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                endrank = rank - 1;<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>                aDataset = a.reshape(aShape);<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                bDataset = b.reshape(bShape);<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                aStride = BroadcastUtils.createBroadcastStrides(aDataset, maxShape);<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                bStride = BroadcastUtils.createBroadcastStrides(bDataset, maxShape);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                if (outputA) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                        oStride = aStride;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                        oDelta = null;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        oStep = 0;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                } else if (outputB) {<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                        oStride = bStride;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                        oDelta = null;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                        oStep = 0;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                } else if (o != null) {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        oStride = BroadcastUtils.createBroadcastStrides(o, maxShape);<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        oDelta = new int[rank];<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        oStep = o.getElementsPerItem();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                } else if (createIfNull) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        oDataset = BroadcastUtils.createDataset(a, b, maxShape);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                        oStride = BroadcastUtils.createBroadcastStrides(oDataset, maxShape);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        oDelta = new int[rank];<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        oStep = oDataset.getElementsPerItem();<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                } else {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        oDelta = null;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                        oStep = 0;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                }<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>                pos = new int[rank];<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                aDelta = new int[rank];<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                aStep = aDataset.getElementsPerItem();<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                bDelta = new int[rank];<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                bStep = bDataset.getElementsPerItem();<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                for (int j = endrank; j &gt;= 0; j--) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        aDelta[j] = aStride[j] * aShape[j];<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                        bDelta[j] = bStride[j] * bShape[j];<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        if (oDelta != null) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                                oDelta[j] = oStride[j] * maxShape[j];<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                        }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                }<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                aStart = aDataset.getOffset();<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                bStart = bDataset.getOffset();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                aMax = endrank &lt; 0 ? aStep + aStart: Integer.MIN_VALUE;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                bMax = endrank &lt; 0 ? bStep + bStart: Integer.MIN_VALUE;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                oStart = oDelta == null ? 0 : oDataset.getOffset();<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                reset();<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>        @Override<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        public boolean hasNext() {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                int j = endrank;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                int oldA = aIndex;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                int oldB = bIndex;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                for (; j &gt;= 0; j--) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        pos[j]++;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                        aIndex += aStride[j];<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                        bIndex += bStride[j];<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        if (oDelta != null) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                oIndex += oStride[j];<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                        }<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                        if (pos[j] &gt;= maxShape[j]) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                                pos[j] = 0;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                aIndex -= aDelta[j]; // reset these dimensions<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                bIndex -= bDelta[j];<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                if (oDelta != null) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                        oIndex -= oDelta[j];<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                                }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                        } else {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                                break;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                        }<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                if (j == -1) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        if (endrank &gt;= 0) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                                return false;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        }<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                        aIndex += aStep;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        bIndex += bStep;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                        if (oDelta != null) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                                oIndex += oStep;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                        }<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                }<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                if (outputA) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        oIndex = aIndex;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                } else if (outputB) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                        oIndex = bIndex;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                }<a name="line.143"></a>
+<span class="sourceLineNo">144</span><a name="line.144"></a>
+<span class="sourceLineNo">145</span>                if (aIndex == aMax || bIndex == bMax) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        return false;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                }<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>                if (read) {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                        if (oldA != aIndex) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                                if (asDouble) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                                        aDouble = aDataset.getElementDoubleAbs(aIndex);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                                } else {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                                        aLong = aDataset.getElementLongAbs(aIndex);<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                                }<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        }<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        if (oldB != bIndex) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                                if (asDouble) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                                        bDouble = bDataset.getElementDoubleAbs(bIndex);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                                } else {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                                        bLong = bDataset.getElementLongAbs(bIndex);<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                                }<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                        }<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                }<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>                return true;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>        /**<a name="line.169"></a>
+<span class="sourceLineNo">170</span>         * @return shape of first broadcasted dataset<a name="line.170"></a>
+<span class="sourceLineNo">171</span>         */<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        public int[] getFirstShape() {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                return aShape;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>        }<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>        /**<a name="line.176"></a>
+<span class="sourceLineNo">177</span>         * @return shape of second broadcasted dataset<a name="line.177"></a>
+<span class="sourceLineNo">178</span>         */<a name="line.178"></a>
+<span class="sourceLineNo">179</span>        public int[] getSecondShape() {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                return bShape;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>        }<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>        @Override<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        public void reset() {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                for (int i = 0; i &lt;= endrank; i++) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        pos[i] = 0;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                }<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>                if (endrank &gt;= 0) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                        pos[endrank] = -1;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                        aIndex = aStart - aStride[endrank];<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                        bIndex = bStart - bStride[endrank];<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                        oIndex = oStart - (oStride == null ? 0 : oStride[endrank]);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                } else {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                        aIndex = aStart - aStep;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                        bIndex = bStart - bStep;<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                        oIndex = oStart - oStep;<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>                if (aIndex == 0 || bIndex == 0 || (endrank &gt;= 0 &amp;&amp; (aStride[endrank] == 0 || bStride[endrank] == 0))) { // for zero-ranked datasets or extended shape<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                        if (read) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                                storeCurrentValues();<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        }<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                }<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        }<a name="line.205"></a>
+<span class="sourceLineNo">206</span>}<a name="line.206"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BroadcastSelfIterator.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BroadcastSelfIterator.html
new file mode 100644
index 0000000..ea50000
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BroadcastSelfIterator.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.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<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * and it is also read into either bLong or bDouble fields.&lt;p&gt;<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * For speed, there are public members. Note, index is not updated<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>public abstract class BroadcastSelfIterator extends BroadcastIteratorBase {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        public static BroadcastSelfIterator createIterator(Dataset a, Dataset b) {<a name="line.21"></a>
+<span class="sourceLineNo">022</span>                if (Arrays.equals(a.getShapeRef(), b.getShapeRef()) &amp;&amp; a.getStrides() == null &amp;&amp; b.getStrides() == null) {<a name="line.22"></a>
+<span class="sourceLineNo">023</span>                        return new ContiguousSingleIterator(a, b);<a name="line.23"></a>
+<span class="sourceLineNo">024</span>                }<a name="line.24"></a>
+<span class="sourceLineNo">025</span>                return new BroadcastSingleIterator(a, 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>        protected BroadcastSelfIterator(Dataset a, Dataset b) {<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                super(a, b);<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                read = DTypeUtils.isDTypeNumerical(b.getDType());<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                asDouble = aDataset.hasFloatingPointElements();<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                BroadcastUtils.checkItemSize(a, b, null);<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>        protected void storeCurrentValues() {<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                if (bIndex &gt;= 0) {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                        if (asDouble) {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                                bDouble = bDataset.getElementDoubleAbs(bIndex);<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                        } else {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                                bLong = bDataset.getElementLongAbs(bIndex);<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BroadcastSingleIterator.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BroadcastSingleIterator.html
new file mode 100644
index 0000000..39f783f
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BroadcastSingleIterator.html
@@ -0,0 +1,214 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>import java.util.List;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>/**<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * Class to run over a pair of datasets in parallel with NumPy broadcasting of second dataset<a name="line.15"></a>
+<span class="sourceLineNo">016</span> */<a name="line.16"></a>
+<span class="sourceLineNo">017</span>public class BroadcastSingleIterator extends BroadcastSelfIterator {<a name="line.17"></a>
+<span class="sourceLineNo">018</span>        private int[] bShape;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>        private int[] aStride;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>        private int[] bStride;<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>        final private int endrank;<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>        private final int[] aDelta, bDelta;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        private final int aStep, bStep;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        private int aMax, bMax;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        private int aStart, bStart;<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>        /**<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         * <a name="line.30"></a>
+<span class="sourceLineNo">031</span>         * @param a<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * @param b<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         */<a name="line.33"></a>
+<span class="sourceLineNo">034</span>        public BroadcastSingleIterator(Dataset a, Dataset b) {<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                super(a, b);<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>                int[] aShape = a.getShapeRef();<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                maxShape = aShape;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                List&lt;int[]&gt; fullShapes = BroadcastUtils.broadcastShapesToMax(maxShape, b.getShapeRef());<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                bShape = fullShapes.remove(0);<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>                int rank = maxShape.length;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                endrank = rank - 1;<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span>                bDataset = b.reshape(bShape);<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                int[] aOffset = new int[1];<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                aStride = AbstractDataset.createStrides(aDataset, aOffset);<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                bStride = BroadcastUtils.createBroadcastStrides(bDataset, maxShape);<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>                pos = new int[rank];<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                aDelta = new int[rank];<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                aStep = aDataset.getElementsPerItem();<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                bDelta = new int[rank];<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                bStep = bDataset.getElementsPerItem();<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                for (int j = endrank; j &gt;= 0; j--) {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                        aDelta[j] = aStride[j] * aShape[j];<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                        bDelta[j] = bStride[j] * bShape[j];<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                }<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                aStart = aOffset[0];<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                bStart = bDataset.getOffset();<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                aMax = endrank &lt; 0 ? aStep + aStart: Integer.MIN_VALUE;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                bMax = endrank &lt; 0 ? bStep + bStart: Integer.MIN_VALUE;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                reset();<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        }<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>        @Override<a name="line.66"></a>
+<span class="sourceLineNo">067</span>        public boolean hasNext() {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                int j = endrank;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                int oldB = bIndex;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                for (; j &gt;= 0; j--) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                        pos[j]++;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        aIndex += aStride[j];<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        bIndex += bStride[j];<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        if (pos[j] &gt;= maxShape[j]) {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                                pos[j] = 0;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                                aIndex -= aDelta[j]; // reset these dimensions<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                                bIndex -= bDelta[j];<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                        } else {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                break;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        }<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                if (j == -1) {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                        if (endrank &gt;= 0) {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                                return false;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                        }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                        aIndex += aStep;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        bIndex += bStep;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>                if (aIndex == aMax || bIndex == bMax) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                        return false;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                }<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>                if (read) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                        if (oldB != bIndex) {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                                if (asDouble) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                                        bDouble = bDataset.getElementDoubleAbs(bIndex);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                                } else {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                        bLong = bDataset.getElementLongAbs(bIndex);<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                        }<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>                return true;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>        }<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>        /**<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * @return shape of first broadcasted dataset<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         */<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        public int[] getFirstShape() {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                return maxShape;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        }<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>        /**<a name="line.114"></a>
+<span class="sourceLineNo">115</span>         * @return shape of second broadcasted dataset<a name="line.115"></a>
+<span class="sourceLineNo">116</span>         */<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        public int[] getSecondShape() {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                return bShape;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        }<a name="line.119"></a>
+<span class="sourceLineNo">120</span><a name="line.120"></a>
+<span class="sourceLineNo">121</span>        @Override<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        public void reset() {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                for (int i = 0; i &lt;= endrank; i++) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        pos[i] = 0;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>                if (endrank &gt;= 0) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        pos[endrank] = -1;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        aIndex = aStart - aStride[endrank];<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        bIndex = bStart - bStride[endrank];<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                } else {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        aIndex = aStart - aStep;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                        bIndex = bStart - bStep;<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>                if (aIndex == 0 || bIndex == 0 || (endrank &gt;= 0 &amp;&amp; bStride[endrank] == 0)) { // for zero-ranked datasets or extended shape<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                        if (read) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                                storeCurrentValues();<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BroadcastUtils.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BroadcastUtils.html
new file mode 100644
index 0000000..8891525
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/BroadcastUtils.html
@@ -0,0 +1,392 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.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>        static Dataset createDataset(final Dataset a, final Dataset b, final int[] shape) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                final Class&lt;? extends Dataset&gt; rc;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                final int ar = a.getRank();<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                final int br = b.getRank();<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                Class&lt;? extends Dataset&gt; tc = InterfaceUtils.getBestInterface(a.getClass(), b.getClass());<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                if (ar == 0 ^ br == 0) { // ignore type of zero-rank dataset unless it's floating point <a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        if (ar == 0) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                                rc = a.hasFloatingPointElements() ? tc : b.getClass();<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                        } else {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                                rc = b.hasFloatingPointElements() ? tc : a.getClass();<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                        }<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                } else {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                        rc = tc;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                }<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                final int ia = a.getElementsPerItem();<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                final int ib = b.getElementsPerItem();<a name="line.180"></a>
+<span class="sourceLineNo">181</span>        <a name="line.181"></a>
+<span class="sourceLineNo">182</span>                return DatasetFactory.zeros(ia &gt; ib ? ia : ib, rc, shape);<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>         * Check if dataset item sizes are compatible<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         * &lt;p&gt;<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         * Dataset a is considered compatible with the output dataset if any of the<a name="line.188"></a>
+<span class="sourceLineNo">189</span>         * conditions are true:<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         * &lt;ul&gt;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         * &lt;li&gt;o is undefined&lt;/li&gt;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         * &lt;li&gt;a has item size equal to o's&lt;/li&gt;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         * &lt;li&gt;a has item size equal to 1&lt;/li&gt;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         * &lt;li&gt;o has item size equal to 1&lt;/li&gt;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>         * &lt;/ul&gt;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>         * @param a input dataset a<a name="line.196"></a>
+<span class="sourceLineNo">197</span>         * @param o output dataset (can be null)<a name="line.197"></a>
+<span class="sourceLineNo">198</span>         */<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        static void checkItemSize(Dataset a, Dataset o) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                final int isa = a.getElementsPerItem();<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                if (o != null) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        final int iso = o.getElementsPerItem();<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        if (isa != iso &amp;&amp; isa != 1 &amp;&amp; iso != 1) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                                throw new IllegalArgumentException("Can not output to dataset whose number of elements per item mismatch inputs'");<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                        }<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                }<a name="line.206"></a>
+<span class="sourceLineNo">207</span>        }<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>        /**<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         * Check if dataset item sizes are compatible<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         * &lt;p&gt;<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         * Dataset a is considered compatible with the output dataset if any of the<a name="line.212"></a>
+<span class="sourceLineNo">213</span>         * conditions are true:<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         * &lt;ul&gt;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>         * &lt;li&gt;a has item size equal to b's&lt;/li&gt;<a name="line.215"></a>
+<span class="sourceLineNo">216</span>         * &lt;li&gt;a has item size equal to 1&lt;/li&gt;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>         * &lt;li&gt;b has item size equal to 1&lt;/li&gt;<a name="line.217"></a>
+<span class="sourceLineNo">218</span>         * &lt;li&gt;a or b are single-valued&lt;/li&gt;<a name="line.218"></a>
+<span class="sourceLineNo">219</span>         * &lt;/ul&gt;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>         * and, o is undefined, or any of the following are true:<a name="line.220"></a>
+<span class="sourceLineNo">221</span>         * &lt;ul&gt;<a name="line.221"></a>
+<span class="sourceLineNo">222</span>         * &lt;li&gt;o has item size equal to maximum of a and b's&lt;/li&gt;<a name="line.222"></a>
+<span class="sourceLineNo">223</span>         * &lt;li&gt;o has item size equal to 1&lt;/li&gt;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * &lt;li&gt;a and b have item sizes of 1&lt;/li&gt;<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         * &lt;/ul&gt;<a name="line.225"></a>
+<span class="sourceLineNo">226</span>         * @param a input dataset a<a name="line.226"></a>
+<span class="sourceLineNo">227</span>         * @param b input dataset b<a name="line.227"></a>
+<span class="sourceLineNo">228</span>         * @param o output dataset<a name="line.228"></a>
+<span class="sourceLineNo">229</span>         */<a name="line.229"></a>
+<span class="sourceLineNo">230</span>        static void checkItemSize(Dataset a, Dataset b, Dataset o) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                final int isa = a.getElementsPerItem();<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                final int isb = b.getElementsPerItem();<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                if (isa != isb &amp;&amp; isa != 1 &amp;&amp; isb != 1) {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                        // exempt single-value dataset case too<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        if ((isa == 1 || b.getSize() != 1) &amp;&amp; (isb == 1 || a.getSize() != 1) ) {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                                throw new IllegalArgumentException("Can not broadcast where number of elements per item mismatch and one does not equal another");<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>                if (o != null &amp;&amp; o.getDType() != Dataset.BOOL) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        final int ism = Math.max(isa, isb);<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                        final int iso = o.getElementsPerItem();<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                        if (iso != ism &amp;&amp; iso != 1 &amp;&amp; ism != 1) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                throw new IllegalArgumentException("Can not output to dataset whose number of elements per item mismatch inputs'");<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>        /**<a name="line.248"></a>
+<span class="sourceLineNo">249</span>         * Create a stride array from a dataset to a broadcast shape<a name="line.249"></a>
+<span class="sourceLineNo">250</span>         * @param a dataset<a name="line.250"></a>
+<span class="sourceLineNo">251</span>         * @param broadcastShape<a name="line.251"></a>
+<span class="sourceLineNo">252</span>         * @return stride array<a name="line.252"></a>
+<span class="sourceLineNo">253</span>         */<a name="line.253"></a>
+<span class="sourceLineNo">254</span>        public static int[] createBroadcastStrides(Dataset a, final int[] broadcastShape) {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                return createBroadcastStrides(a.getElementsPerItem(), a.getShapeRef(), a.getStrides(), broadcastShape);<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>        /**<a name="line.258"></a>
+<span class="sourceLineNo">259</span>         * Create a stride array from a dataset to a broadcast shape<a name="line.259"></a>
+<span class="sourceLineNo">260</span>         * @param isize<a name="line.260"></a>
+<span class="sourceLineNo">261</span>         * @param oShape original shape<a name="line.261"></a>
+<span class="sourceLineNo">262</span>         * @param oStride original stride<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         * @param broadcastShape<a name="line.263"></a>
+<span class="sourceLineNo">264</span>         * @return stride array<a name="line.264"></a>
+<span class="sourceLineNo">265</span>         */<a name="line.265"></a>
+<span class="sourceLineNo">266</span>        public static int[] createBroadcastStrides(final int isize, final int[] oShape, final int[] oStride, final int[] broadcastShape) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                int rank = oShape.length;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                if (broadcastShape.length != rank) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                        throw new IllegalArgumentException("Dataset must have same rank as broadcast shape");<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>                int[] stride = new int[rank];<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                if (oStride == null) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                        int s = isize;<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                        for (int j = rank - 1; j &gt;= 0; j--) {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                                if (broadcastShape[j] == oShape[j]) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                                        stride[j] = s;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                                        s *= oShape[j];<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                                } else {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                                        stride[j] = 0;<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>                } else {<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                        for (int j = 0; j &lt; rank; j++) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                                if (broadcastShape[j] == oShape[j]) {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                                        stride[j] = oStride[j];<a name="line.286"></a>
+<span class="sourceLineNo">287</span>                                } else {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                                        stride[j] = 0;<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>        <a name="line.292"></a>
+<span class="sourceLineNo">293</span>                return stride;<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>         * Converts and broadcast all objects as datasets of same shape<a name="line.297"></a>
+<span class="sourceLineNo">298</span>         * @param objects<a name="line.298"></a>
+<span class="sourceLineNo">299</span>         * @return all as broadcasted to same shape<a name="line.299"></a>
+<span class="sourceLineNo">300</span>         */<a name="line.300"></a>
+<span class="sourceLineNo">301</span>        public static Dataset[] convertAndBroadcast(Object... objects) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                final int n = objects.length;<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span>                Dataset[] datasets = new Dataset[n];<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                int[][] shapes = new int[n][];<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                for (int i = 0; i &lt; n; i++) {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                        Dataset d = DatasetFactory.createFromObject(objects[i]);<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                        datasets[i] = d;<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                        shapes[i] = d.getShapeRef();<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>                List&lt;int[]&gt; nShapes = BroadcastUtils.broadcastShapes(shapes);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                int[] mshape = nShapes.get(0);<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                for (int i = 0; i &lt; n; i++) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                        datasets[i] = datasets[i].getBroadcastView(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>                return datasets;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ByteDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ByteDataset.html
new file mode 100644
index 0000000..b2fc1f7
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ByteDataset.html
@@ -0,0 +1,1354 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// This is generated from DoubleDataset.java by fromdouble.py<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.ArrayList;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.Arrays;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.List;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.Set;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.TreeSet;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.commons.math3.complex.Complex;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.eclipse.january.metadata.StatisticsMetadata;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>/**<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * Extend dataset for byte values // PRIM_TYPE<a name="line.28"></a>
+<span class="sourceLineNo">029</span> */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>public class ByteDataset extends AbstractDataset {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        // pin UID to base class<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        protected byte[] data; // subclass alias // PRIM_TYPE<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>        @Override<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        protected void setData() {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                data = (byte[]) odata; // PRIM_TYPE<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        }<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>        protected static byte[] createArray(final int size) { // PRIM_TYPE<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                byte[] array = null; // PRIM_TYPE<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>                try {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                        array = new byte[size]; // PRIM_TYPE<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                } catch (OutOfMemoryError e) {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                }<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return array;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        @Override<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        public int getDType() {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                return INT8; // DATA_TYPE<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * Create a null dataset<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        ByteDataset() {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        }<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>        /**<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * Create a zero-filled dataset of given shape<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         * @param shape<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         */<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        ByteDataset(final int... shape) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                if (shape != null) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        size = ShapeUtils.calcSize(shape);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        this.shape = shape.clone();<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        try {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                                odata = data = createArray(size);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        } catch (Throwable t) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                throw new IllegalArgumentException(t);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        }<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>        /**<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         * Create a dataset using given data<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @param data<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         * @param shape<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         *            (can be null to create 1D dataset)<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        ByteDataset(final byte[] data, int... shape) { // PRIM_TYPE<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                if (data == null) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        throw new IllegalArgumentException("Data must not be null");<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                if (shape == null || shape.length == 0) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                        shape = new int[] { data.length };<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                size = ShapeUtils.calcSize(shape);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                if (size != data.length) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                        Arrays.toString(shape), data.length));<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                }<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                this.shape = size == 0 ? null : shape.clone();<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>                odata = this.data = data;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>        }<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>        /**<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * Copy a dataset<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         * @param dataset<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         */<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        ByteDataset(final ByteDataset dataset) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                copyToView(dataset, this, true, true);<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>                try {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        if (dataset.stride == null) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                if (dataset.data != null) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                                        odata = data = dataset.data.clone();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                }<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        } else {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                offset = 0;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                stride = null;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                base = null;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                odata = data = createArray(size);<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                IndexIterator iter = dataset.getIterator();<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                                for (int i = 0; iter.hasNext(); i++) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                                        data[i] = dataset.data[iter.index];<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                                }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        }<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                } catch (Throwable t) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        throw new IllegalArgumentException(t);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                }<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>        /**<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         * Copy and cast a dataset to this class type<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         * @param dataset<a name="line.138"></a>
+<span class="sourceLineNo">139</span>         */<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        ByteDataset(final Dataset dataset) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                copyToView(dataset, this, true, false);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                offset = 0;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                stride = null;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                base = null;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                try {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        odata = data = createArray(size);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                } catch (Throwable t) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                        throw new IllegalArgumentException(t);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                }<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                IndexIterator iter = dataset.getIterator();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                for (int i = 0; iter.hasNext(); i++) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                        data[i] = (byte) dataset.getElementLongAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                }<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>        @Override<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        public boolean equals(Object obj) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                if (this == obj) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        return true;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                }<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>                if (obj == null) {<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 (!getClass().equals(obj.getClass())) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                        if (getRank() == 0) { // for zero-rank datasets<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                                return obj.equals(getObjectAbs(offset));<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                        }<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><a name="line.173"></a>
+<span class="sourceLineNo">174</span>                ByteDataset other = (ByteDataset) obj;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                if (size != other.size) {<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>                if (!Arrays.equals(shape, other.shape)) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                        return false;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                if (data == other.data &amp;&amp; stride == null &amp;&amp; other.stride == null) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        return true;<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>                IndexIterator iter = getIterator();<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                IndexIterator oiter = other.getIterator();<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                        if (data[iter.index] != other.data[oiter.index]) { // OBJECT_UNEQUAL<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                                return false;<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>                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 int hashCode() {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                return super.hashCode();<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 ByteDataset clone() {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                return new ByteDataset(this);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        }<a name="line.203"></a>
+<span class="sourceLineNo">204</span><a name="line.204"></a>
+<span class="sourceLineNo">205</span>        /**<a name="line.205"></a>
+<span class="sourceLineNo">206</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * sequences or arrays are padded with zeros.<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         *<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * @param obj<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         * @return dataset with contents given by input<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         */<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        static ByteDataset createFromObject(final Object obj) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                ByteDataset result = new ByteDataset();<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>                if (obj != null) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                        result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                        result.size = ShapeUtils.calcSize(result.shape);<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>                                result.odata = result.data = createArray(result.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(result.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><a name="line.225"></a>
+<span class="sourceLineNo">226</span>                        int[] pos = new int[result.shape.length];<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                        result.fillData(obj, 0, pos);<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>                return result;<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>         *<a name="line.234"></a>
+<span class="sourceLineNo">235</span>         * @param stop<a name="line.235"></a>
+<span class="sourceLineNo">236</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         */<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        static ByteDataset createRange(final double stop) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                return createRange(0, stop, 1);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        }<a name="line.240"></a>
+<span class="sourceLineNo">241</span>        <a name="line.241"></a>
+<span class="sourceLineNo">242</span>        /**<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         *<a name="line.243"></a>
+<span class="sourceLineNo">244</span>         * @param start<a name="line.244"></a>
+<span class="sourceLineNo">245</span>         * @param stop<a name="line.245"></a>
+<span class="sourceLineNo">246</span>         * @param step<a name="line.246"></a>
+<span class="sourceLineNo">247</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.247"></a>
+<span class="sourceLineNo">248</span>         */<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        static ByteDataset createRange(final double start, final double stop, final double step) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                int size = calcSteps(start, stop, step);<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                ByteDataset result = new ByteDataset(size);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                for (int i = 0; i &lt; size; i++) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        result.data[i] = (byte) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                }<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                return result;<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>        /**<a name="line.258"></a>
+<span class="sourceLineNo">259</span>         * @param shape<a name="line.259"></a>
+<span class="sourceLineNo">260</span>         * @return a dataset filled with ones<a name="line.260"></a>
+<span class="sourceLineNo">261</span>         */<a name="line.261"></a>
+<span class="sourceLineNo">262</span>        static ByteDataset ones(final int... shape) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                return new ByteDataset(shape).fill(1);<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 ByteDataset fill(final Object obj) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                setDirty();<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                byte dv = (byte) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                IndexIterator iter = getIterator();<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                while (iter.hasNext()) {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                        data[iter.index] = dv;<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>                return this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         * @return data buffer as linear array<a name="line.280"></a>
+<span class="sourceLineNo">281</span>         */<a name="line.281"></a>
+<span class="sourceLineNo">282</span>        public byte[] getData() { // PRIM_TYPE<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                return data;<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>        protected int getBufferLength() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                if (data == null)<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                        return 0;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                return data.length;<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>        @Override<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        public ByteDataset getView(boolean deepCopyMetadata) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                ByteDataset view = new ByteDataset();<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                view.setData();<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                return view;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>        }<a name="line.299"></a>
+<span class="sourceLineNo">300</span><a name="line.300"></a>
+<span class="sourceLineNo">301</span>        /**<a name="line.301"></a>
+<span class="sourceLineNo">302</span>         * 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.302"></a>
+<span class="sourceLineNo">303</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.303"></a>
+<span class="sourceLineNo">304</span>         *<a name="line.304"></a>
+<span class="sourceLineNo">305</span>         * @param index<a name="line.305"></a>
+<span class="sourceLineNo">306</span>         *            absolute index<a name="line.306"></a>
+<span class="sourceLineNo">307</span>         * @return value<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         */<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        public byte getAbs(final int index) { // PRIM_TYPE<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                return data[index];<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>        @Override<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                return data[index] != 0; // BOOLEAN_FALSE<a name="line.315"></a>
+<span class="sourceLineNo">316</span>        }<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span>        @Override<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        public double getElementDoubleAbs(final int index) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                return data[index]; // BOOLEAN_ZERO<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 long getElementLongAbs(final int index) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                return data[index]; // BOOLEAN_ZERO // OMIT_TOLONG_INT<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>        @Override<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        public Object getObjectAbs(final int index) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                return data[index];<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>        @Override<a name="line.333"></a>
+<span class="sourceLineNo">334</span>        public String getStringAbs(final int index) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                return stringFormat == null ? String.format("%d", data[index]) : // FORMAT_STRING<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                        stringFormat.format(data[index]);<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>         * Set a value at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.341"></a>
+<span class="sourceLineNo">342</span>         *<a name="line.342"></a>
+<span class="sourceLineNo">343</span>         * @param index<a name="line.343"></a>
+<span class="sourceLineNo">344</span>         *            absolute index<a name="line.344"></a>
+<span class="sourceLineNo">345</span>         * @param val<a name="line.345"></a>
+<span class="sourceLineNo">346</span>         *            new value<a name="line.346"></a>
+<span class="sourceLineNo">347</span>         */<a name="line.347"></a>
+<span class="sourceLineNo">348</span>        public void setAbs(final int index, final byte val) { // PRIM_TYPE<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                setDirty();<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                data[index] = val;<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>        @Override<a name="line.353"></a>
+<span class="sourceLineNo">354</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                setDirty();<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                byte[] dsrc = (byte[]) src; // PRIM_TYPE<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                data[dindex] = dsrc[sindex];<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 void setObjectAbs(final int index, final Object obj) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                if (index &lt; 0 || index &gt; data.length) {<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                        throw new IndexOutOfBoundsException("Index given is outside dataset");<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>                setAbs(index, (byte) DTypeUtils.toLong(obj)); // FROM_OBJECT<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>         * @return item in first position<a name="line.370"></a>
+<span class="sourceLineNo">371</span>         * @since 2.0<a name="line.371"></a>
+<span class="sourceLineNo">372</span>         */<a name="line.372"></a>
+<span class="sourceLineNo">373</span>        public byte get() { // PRIM_TYPE<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                return data[getFirst1DIndex()];<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>         * @return item in given position<a name="line.379"></a>
+<span class="sourceLineNo">380</span>         */<a name="line.380"></a>
+<span class="sourceLineNo">381</span>        public byte get(final int i) { // PRIM_TYPE<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                return data[get1DIndex(i)];<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        }<a name="line.383"></a>
+<span class="sourceLineNo">384</span><a name="line.384"></a>
+<span class="sourceLineNo">385</span>        /**<a name="line.385"></a>
+<span class="sourceLineNo">386</span>         * @param i<a name="line.386"></a>
+<span class="sourceLineNo">387</span>         * @param j<a name="line.387"></a>
+<span class="sourceLineNo">388</span>         * @return item in given position<a name="line.388"></a>
+<span class="sourceLineNo">389</span>         */<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        public byte get(final int i, final int j) { // PRIM_TYPE<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                return data[get1DIndex(i, j)];<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        }<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>        /**<a name="line.394"></a>
+<span class="sourceLineNo">395</span>         * @param pos<a name="line.395"></a>
+<span class="sourceLineNo">396</span>         * @return item in given position<a name="line.396"></a>
+<span class="sourceLineNo">397</span>         */<a name="line.397"></a>
+<span class="sourceLineNo">398</span>        public byte get(final int... pos) { // PRIM_TYPE<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                return data[get1DIndex(pos)];<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>        @Override<a name="line.402"></a>
+<span class="sourceLineNo">403</span>        public Object getObject() {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                return Byte.valueOf(get()); // CLASS_TYPE<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>        @Override<a name="line.407"></a>
+<span class="sourceLineNo">408</span>        public Object getObject(final int i) {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                return Byte.valueOf(get(i)); // CLASS_TYPE<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>        @Override<a name="line.412"></a>
+<span class="sourceLineNo">413</span>        public Object getObject(final int i, final int j) {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                return Byte.valueOf(get(i, j)); // CLASS_TYPE<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>        @Override<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        public Object getObject(final int... pos) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                return Byte.valueOf(get(pos)); // CLASS_TYPE<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>        @Override<a name="line.422"></a>
+<span class="sourceLineNo">423</span>        public String getString() {<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                return getStringAbs(getFirst1DIndex());<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>        @Override<a name="line.427"></a>
+<span class="sourceLineNo">428</span>        public String getString(final int i) {<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                return getStringAbs(get1DIndex(i));<a name="line.429"></a>
+<span class="sourceLineNo">430</span>        }<a name="line.430"></a>
+<span class="sourceLineNo">431</span><a name="line.431"></a>
+<span class="sourceLineNo">432</span>        @Override<a name="line.432"></a>
+<span class="sourceLineNo">433</span>        public String getString(final int i, final int j) {<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                return getStringAbs(get1DIndex(i, j));<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 String getString(final int... pos) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                return getStringAbs(get1DIndex(pos));<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        }<a name="line.440"></a>
+<span class="sourceLineNo">441</span><a name="line.441"></a>
+<span class="sourceLineNo">442</span>        @Override<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        public double getDouble() {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                return get(); // BOOLEAN_ZERO<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>        @Override<a name="line.447"></a>
+<span class="sourceLineNo">448</span>        public double getDouble(final int i) {<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                return get(i); // BOOLEAN_ZERO<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>        @Override<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        public double getDouble(final int i, final int j) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                return get(i, j); // BOOLEAN_ZERO<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>        @Override<a name="line.457"></a>
+<span class="sourceLineNo">458</span>        public double getDouble(final int... pos) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                return get(pos); // BOOLEAN_ZERO<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>        @Override<a name="line.462"></a>
+<span class="sourceLineNo">463</span>        public float getFloat() {<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                return get(); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        }<a name="line.465"></a>
+<span class="sourceLineNo">466</span><a name="line.466"></a>
+<span class="sourceLineNo">467</span>        @Override<a name="line.467"></a>
+<span class="sourceLineNo">468</span>        public float getFloat(final int i) {<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                return get(i); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        }<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>        @Override<a name="line.472"></a>
+<span class="sourceLineNo">473</span>        public float getFloat(final int i, final int j) {<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_REAL_CAST<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 float getFloat(final int... pos) {<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                return get(pos); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        }<a name="line.480"></a>
+<span class="sourceLineNo">481</span><a name="line.481"></a>
+<span class="sourceLineNo">482</span>        @Override<a name="line.482"></a>
+<span class="sourceLineNo">483</span>        public long getLong() {<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.484"></a>
+<span class="sourceLineNo">485</span>        }<a name="line.485"></a>
+<span class="sourceLineNo">486</span><a name="line.486"></a>
+<span class="sourceLineNo">487</span>        @Override<a name="line.487"></a>
+<span class="sourceLineNo">488</span>        public long getLong(final int i) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.489"></a>
+<span class="sourceLineNo">490</span>        }<a name="line.490"></a>
+<span class="sourceLineNo">491</span><a name="line.491"></a>
+<span class="sourceLineNo">492</span>        @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span>        public long getLong(final int i, final int j) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.497"></a>
+<span class="sourceLineNo">498</span>        public long getLong(final int... pos) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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 getInt() {<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.507"></a>
+<span class="sourceLineNo">508</span>        public int getInt(final int i) {<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.509"></a>
+<span class="sourceLineNo">510</span>        }<a name="line.510"></a>
+<span class="sourceLineNo">511</span><a name="line.511"></a>
+<span class="sourceLineNo">512</span>        @Override<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        public int getInt(final int i, final int j) {<a name="line.513"></a>
+<span class="sourceLineNo">514</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.514"></a>
+<span class="sourceLineNo">515</span>        }<a name="line.515"></a>
+<span class="sourceLineNo">516</span><a name="line.516"></a>
+<span class="sourceLineNo">517</span>        @Override<a name="line.517"></a>
+<span class="sourceLineNo">518</span>        public int getInt(final int... pos) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.519"></a>
+<span class="sourceLineNo">520</span>        }<a name="line.520"></a>
+<span class="sourceLineNo">521</span><a name="line.521"></a>
+<span class="sourceLineNo">522</span>        @Override<a name="line.522"></a>
+<span class="sourceLineNo">523</span>        public short getShort() {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.524"></a>
+<span class="sourceLineNo">525</span>        }<a name="line.525"></a>
+<span class="sourceLineNo">526</span><a name="line.526"></a>
+<span class="sourceLineNo">527</span>        @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        public short getShort(final int i) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.529"></a>
+<span class="sourceLineNo">530</span>        }<a name="line.530"></a>
+<span class="sourceLineNo">531</span><a name="line.531"></a>
+<span class="sourceLineNo">532</span>        @Override<a name="line.532"></a>
+<span class="sourceLineNo">533</span>        public short getShort(final int i, final int j) {<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.537"></a>
+<span class="sourceLineNo">538</span>        public short getShort(final int... pos) {<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.539"></a>
+<span class="sourceLineNo">540</span>        }<a name="line.540"></a>
+<span class="sourceLineNo">541</span><a name="line.541"></a>
+<span class="sourceLineNo">542</span>        @Override<a name="line.542"></a>
+<span class="sourceLineNo">543</span>        public byte getByte() {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte(final int i) {<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.549"></a>
+<span class="sourceLineNo">550</span>        }<a name="line.550"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>        @Override<a name="line.552"></a>
+<span class="sourceLineNo">553</span>        public byte getByte(final int i, final int j) {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte(final int... pos) {<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.559"></a>
+<span class="sourceLineNo">560</span>        }<a name="line.560"></a>
+<span class="sourceLineNo">561</span><a name="line.561"></a>
+<span class="sourceLineNo">562</span>        @Override<a name="line.562"></a>
+<span class="sourceLineNo">563</span>        public boolean getBoolean() {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                return get() != 0; // BOOLEAN_FALSE<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>        @Override<a name="line.567"></a>
+<span class="sourceLineNo">568</span>        public boolean getBoolean(final int i) {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                return get(i) != 0; // BOOLEAN_FALSE<a name="line.569"></a>
+<span class="sourceLineNo">570</span>        }<a name="line.570"></a>
+<span class="sourceLineNo">571</span><a name="line.571"></a>
+<span class="sourceLineNo">572</span>        @Override<a name="line.572"></a>
+<span class="sourceLineNo">573</span>        public boolean getBoolean(final int i, final int j) {<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                return get(i, j) != 0; // BOOLEAN_FALSE<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>        @Override<a name="line.577"></a>
+<span class="sourceLineNo">578</span>        public boolean getBoolean(final int... pos) {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                return get(pos) != 0; // BOOLEAN_FALSE<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>         * Sets the value at first point to the passed value. The dataset must not be null<a name="line.583"></a>
+<span class="sourceLineNo">584</span>         *<a name="line.584"></a>
+<span class="sourceLineNo">585</span>         * @param value<a name="line.585"></a>
+<span class="sourceLineNo">586</span>         * @since 2.0<a name="line.586"></a>
+<span class="sourceLineNo">587</span>         */<a name="line.587"></a>
+<span class="sourceLineNo">588</span>        public void setItem(final byte value) { // PRIM_TYPE<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                setAbs(getFirst1DIndex(), value);<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>         * Sets the value at a particular point to the passed value. The dataset must be 1D<a name="line.593"></a>
+<span class="sourceLineNo">594</span>         *<a name="line.594"></a>
+<span class="sourceLineNo">595</span>         * @param value<a name="line.595"></a>
+<span class="sourceLineNo">596</span>         * @param i<a name="line.596"></a>
+<span class="sourceLineNo">597</span>         */<a name="line.597"></a>
+<span class="sourceLineNo">598</span>        public void setItem(final byte value, final int i) { // PRIM_TYPE<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                setAbs(get1DIndex(i), value);<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>         * Sets the value at a particular point to the passed value. The dataset must be 2D<a name="line.603"></a>
+<span class="sourceLineNo">604</span>         *<a name="line.604"></a>
+<span class="sourceLineNo">605</span>         * @param value<a name="line.605"></a>
+<span class="sourceLineNo">606</span>         * @param i<a name="line.606"></a>
+<span class="sourceLineNo">607</span>         * @param j<a name="line.607"></a>
+<span class="sourceLineNo">608</span>         */<a name="line.608"></a>
+<span class="sourceLineNo">609</span>        public void setItem(final byte value, final int i, final int j) { // PRIM_TYPE<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                setAbs(get1DIndex(i, j), value);<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>         * Sets the value at a particular point to the passed value<a name="line.614"></a>
+<span class="sourceLineNo">615</span>         *<a name="line.615"></a>
+<span class="sourceLineNo">616</span>         * @param value<a name="line.616"></a>
+<span class="sourceLineNo">617</span>         * @param pos<a name="line.617"></a>
+<span class="sourceLineNo">618</span>         */<a name="line.618"></a>
+<span class="sourceLineNo">619</span>        public void setItem(final byte value, final int... pos) { // PRIM_TYPE<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                setAbs(get1DIndex(pos), value);<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 void set(final Object obj) {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                setItem((byte) DTypeUtils.toLong(obj)); // FROM_OBJECT<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 void set(final Object obj, final int i) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                setItem((byte) DTypeUtils.toLong(obj), i); // FROM_OBJECT<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 void set(final Object obj, final int i, final int j) {<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                setItem((byte) DTypeUtils.toLong(obj), i, j); // FROM_OBJECT<a name="line.635"></a>
+<span class="sourceLineNo">636</span>        }<a name="line.636"></a>
+<span class="sourceLineNo">637</span><a name="line.637"></a>
+<span class="sourceLineNo">638</span>        @Override<a name="line.638"></a>
+<span class="sourceLineNo">639</span>        public void set(final Object obj, int... pos) {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                        pos = new int[shape.length];<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>                setItem((byte) DTypeUtils.toLong(obj), pos); // FROM_OBJECT<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>        @Override<a name="line.647"></a>
+<span class="sourceLineNo">648</span>        public void resize(int... newShape) {<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                setDirty();<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                final IndexIterator iter = getIterator();<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                final int nsize = ShapeUtils.calcSize(newShape);<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                final byte[] ndata; // PRIM_TYPE<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                try {<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                        ndata = createArray(nsize);<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                } catch (Throwable t) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                        throw new IllegalArgumentException(t);<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                }<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                for (int i = 0; iter.hasNext() &amp;&amp; i &lt; nsize; i++) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        ndata[i] = data[iter.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>                odata = data = ndata;<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                size = nsize;<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                shape = newShape;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                stride = null;<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                offset = 0;<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                base = null;<a name="line.668"></a>
+<span class="sourceLineNo">669</span>        }<a name="line.669"></a>
+<span class="sourceLineNo">670</span><a name="line.670"></a>
+<span class="sourceLineNo">671</span>        @Override<a name="line.671"></a>
+<span class="sourceLineNo">672</span>        public ByteDataset sort(Integer axis) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                setDirty();<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                if (axis == null) {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        if (stride == null) {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                                Arrays.sort(data);<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                        } else {<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                                ByteDataset ads = clone().sort(null);<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                                setSlicedView(getView(false), ads);<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                        }<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                } else {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                        axis = checkAxis(axis);<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                        <a name="line.683"></a>
+<span class="sourceLineNo">684</span>                        ByteDataset ads = new ByteDataset(shape[axis]);<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                        PositionIterator pi = getPositionIterator(axis);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                        int[] pos = pi.getPos();<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                        boolean[] hit = pi.getOmit();<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                        while (pi.hasNext()) {<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                                copyItemsFromAxes(pos, hit, ads);<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                                Arrays.sort(ads.data);<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                                setItemsOnAxes(pos, hit, ads.data);<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>                return this;<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                // throw new UnsupportedOperationException("Cannot sort dataset"); // BOOLEAN_USE<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 getUniqueItems() {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                Set&lt;Byte&gt; set = new TreeSet&lt;Byte&gt;(); // CLASS_TYPE<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                IndexIterator it = getIterator();<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                while (it.hasNext()) {<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                        set.add(data[it.index]);<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>                ByteDataset u = new ByteDataset(set.size()); // CLASS_TYPE<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                int i = 0;<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                byte[] udata = u.getData(); // PRIM_TYPE<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                for (Byte v : set) { // CLASS_TYPE<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        udata[i++] = v;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                return u;<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 ByteDataset getSlice(final SliceIterator siter) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                ByteDataset result = new ByteDataset(siter.getShape());<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                byte[] rdata = result.data; // PRIM_TYPE<a name="line.718"></a>
+<span class="sourceLineNo">719</span><a name="line.719"></a>
+<span class="sourceLineNo">720</span>                for (int i = 0; siter.hasNext(); i++)<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                        rdata[i] = data[siter.index];<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                return result;<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>        @Override<a name="line.727"></a>
+<span class="sourceLineNo">728</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                IndexIterator riter = result.getIterator();<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                result.setDirty();<a name="line.730"></a>
+<span class="sourceLineNo">731</span><a name="line.731"></a>
+<span class="sourceLineNo">732</span>                byte[] rdata = ((ByteDataset) result).data; // PRIM_TYPE<a name="line.732"></a>
+<span class="sourceLineNo">733</span><a name="line.733"></a>
+<span class="sourceLineNo">734</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                        rdata[riter.index] = data[iter.index];<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                }<a name="line.736"></a>
+<span class="sourceLineNo">737</span>        }<a name="line.737"></a>
+<span class="sourceLineNo">738</span><a name="line.738"></a>
+<span class="sourceLineNo">739</span>        @Override<a name="line.739"></a>
+<span class="sourceLineNo">740</span>        public ByteDataset setByBoolean(final Object obj, Dataset selection) {<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                setDirty();<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                if (obj instanceof Dataset) {<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                        final Dataset ds = (Dataset) obj;<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                        if (length != ds.getSize()) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                                throw new IllegalArgumentException(<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.751"></a>
+<span class="sourceLineNo">752</span><a name="line.752"></a>
+<span class="sourceLineNo">753</span>                        while (biter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                                data[biter.index] = (byte) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        }<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                } else {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                        final byte dv = (byte) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.758"></a>
+<span class="sourceLineNo">759</span><a name="line.759"></a>
+<span class="sourceLineNo">760</span>                        while (biter.hasNext()) {<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                                data[biter.index] = dv;<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>                return this;<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>        @Override<a name="line.767"></a>
+<span class="sourceLineNo">768</span>        public ByteDataset setBy1DIndex(final Object obj, final Dataset index) {<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                setDirty();<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                if (obj instanceof Dataset) {<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                        final Dataset ds = (Dataset) obj;<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                        if (index.getSize() != ds.getSize()) {<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                                throw new IllegalArgumentException(<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                                                "Number of items in index dataset does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                        final IntegerIterator iter = new IntegerIterator(index, size);<a name="line.778"></a>
+<span class="sourceLineNo">779</span><a name="line.779"></a>
+<span class="sourceLineNo">780</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                                data[iter.index] = (byte) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                        }<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                } else {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                        final byte dv = (byte) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        IntegerIterator iter = new IntegerIterator(index, size);<a name="line.785"></a>
+<span class="sourceLineNo">786</span><a name="line.786"></a>
+<span class="sourceLineNo">787</span>                        while (iter.hasNext()) {<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                                data[iter.index] = dv;<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                        }<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                }<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                return this;<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 ByteDataset setByIndexes(final Object obj, final Object... indexes) {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                setDirty();<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                final int[] pos = iter.getPos();<a name="line.798"></a>
+<span class="sourceLineNo">799</span><a name="line.799"></a>
+<span class="sourceLineNo">800</span>                if (obj instanceof Dataset) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                        final Dataset ds = (Dataset) obj;<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                                throw new IllegalArgumentException(<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                                                "Number of items in index datasets does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.807"></a>
+<span class="sourceLineNo">808</span><a name="line.808"></a>
+<span class="sourceLineNo">809</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                                setItem((byte) ds.getElementLongAbs(oiter.index), pos); // GET_ELEMENT_WITH_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>                        final byte dv = (byte) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.813"></a>
+<span class="sourceLineNo">814</span><a name="line.814"></a>
+<span class="sourceLineNo">815</span>                        while (iter.hasNext()) {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                                setItem(dv, pos);<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                        }<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                }<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                return this;<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>        ByteDataset setSlicedView(Dataset view, Dataset d) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                setDirty();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span>                while (it.hasNext()) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                        data[it.aIndex] = (byte) it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                }<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                return this;<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 ByteDataset setSlice(final Object obj, final IndexIterator siter) {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                setDirty();<a name="line.835"></a>
+<span class="sourceLineNo">836</span><a name="line.836"></a>
+<span class="sourceLineNo">837</span>                if (obj instanceof IDataset) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                        final IDataset ds = (IDataset) obj;<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                        final int[] oshape = ds.getShape();<a name="line.839"></a>
+<span class="sourceLineNo">840</span><a name="line.840"></a>
+<span class="sourceLineNo">841</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                                throw new IllegalArgumentException(String.format(<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                                                Arrays.toString(siter.getShape())));<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>                        if (ds instanceof Dataset) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                final Dataset ads = (Dataset) ds;<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                final IndexIterator oiter = ads.getIterator();<a name="line.849"></a>
+<span class="sourceLineNo">850</span><a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                        data[siter.index] = (byte) ads.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                        } else {<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                final int[] pos = oiter.getPos();<a name="line.855"></a>
+<span class="sourceLineNo">856</span><a name="line.856"></a>
+<span class="sourceLineNo">857</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                                        data[siter.index] = ds.getByte(pos); // PRIM_TYPE<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        }<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                } else {<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        try {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                byte v = (byte) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.862"></a>
+<span class="sourceLineNo">863</span><a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                while (siter.hasNext())<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                                        data[siter.index] = v;<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                        } catch (IllegalArgumentException e) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<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 this;<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>        @Override<a name="line.873"></a>
+<span class="sourceLineNo">874</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                byte[] ddata = (byte[]) dest.getBuffer(); // PRIM_TYPE<a name="line.875"></a>
+<span class="sourceLineNo">876</span><a name="line.876"></a>
+<span class="sourceLineNo">877</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.878"></a>
+<span class="sourceLineNo">879</span><a name="line.879"></a>
+<span class="sourceLineNo">880</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.880"></a>
+<span class="sourceLineNo">881</span><a name="line.881"></a>
+<span class="sourceLineNo">882</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<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>                dest.setDirty();<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                        ddata[diter.index] = data[siter.index];<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                }<a name="line.889"></a>
+<span class="sourceLineNo">890</span>        }<a name="line.890"></a>
+<span class="sourceLineNo">891</span><a name="line.891"></a>
+<span class="sourceLineNo">892</span>        @Override<a name="line.892"></a>
+<span class="sourceLineNo">893</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                setDirty();<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                byte[] sdata = (byte[]) src; // PRIM_TYPE<a name="line.895"></a>
+<span class="sourceLineNo">896</span><a name="line.896"></a>
+<span class="sourceLineNo">897</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.897"></a>
+<span class="sourceLineNo">898</span><a name="line.898"></a>
+<span class="sourceLineNo">899</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                        throw new IllegalArgumentException("destination array is not large enough");<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>                for (int i = 0; siter.hasNext(); i++) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        data[siter.index] = sdata[i];<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                }<a name="line.905"></a>
+<span class="sourceLineNo">906</span>        }<a name="line.906"></a>
+<span class="sourceLineNo">907</span><a name="line.907"></a>
+<span class="sourceLineNo">908</span>        private List&lt;int[]&gt; findPositions(final byte value) { // PRIM_TYPE<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                IndexIterator iter = getIterator(true);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                List&lt;int[]&gt; posns = new ArrayList&lt;int[]&gt;();<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                int[] pos = iter.getPos();<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>                        while (iter.hasNext()) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                if (data[iter.index] == value) {<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                        posns.add(pos.clone());<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>                }<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                return posns;<a name="line.920"></a>
+<span class="sourceLineNo">921</span>        }<a name="line.921"></a>
+<span class="sourceLineNo">922</span><a name="line.922"></a>
+<span class="sourceLineNo">923</span>        @Override<a name="line.923"></a>
+<span class="sourceLineNo">924</span>        public int[] maxPos(boolean... ignoreInvalids) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                List&lt;int[]&gt; max = md.getMaximumPositions(ignoreInvalids);<a name="line.928"></a>
+<span class="sourceLineNo">929</span><a name="line.929"></a>
+<span class="sourceLineNo">930</span>                if (max == null) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                        max = findPositions(md.getMaximum(ignoreInvalids).byteValue()); // PRIM_TYPE<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.933"></a>
+<span class="sourceLineNo">934</span><a name="line.934"></a>
+<span class="sourceLineNo">935</span>                        md.setMaximumPositions(max);<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>                return max.get(0); // first maximum<a name="line.938"></a>
+<span class="sourceLineNo">939</span>        }<a name="line.939"></a>
+<span class="sourceLineNo">940</span><a name="line.940"></a>
+<span class="sourceLineNo">941</span>        @Override<a name="line.941"></a>
+<span class="sourceLineNo">942</span>        public int[] minPos(boolean... ignoreInvalids) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                List&lt;int[]&gt; min = md.getMinimumPositions(ignoreInvalids);<a name="line.946"></a>
+<span class="sourceLineNo">947</span><a name="line.947"></a>
+<span class="sourceLineNo">948</span>                if (min == null) {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                        min = findPositions(md.getMinimum(ignoreInvalids).byteValue()); // PRIM_TYPE<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.951"></a>
+<span class="sourceLineNo">952</span><a name="line.952"></a>
+<span class="sourceLineNo">953</span>                        md.setMinimumPositions(min);<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 min.get(0); // first minimum<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 containsNans() {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                return false;<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>        @Override<a name="line.964"></a>
+<span class="sourceLineNo">965</span>        public boolean containsInfs() {<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>                return false;<a name="line.971"></a>
+<span class="sourceLineNo">972</span>        }<a name="line.972"></a>
+<span class="sourceLineNo">973</span><a name="line.973"></a>
+<span class="sourceLineNo">974</span>        @Override<a name="line.974"></a>
+<span class="sourceLineNo">975</span>        public ByteDataset iadd(final Object b) {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                setDirty();<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                if (bds.getSize() == 1) {<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                        final IndexIterator it = getIterator();<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                        final int bOffset = bds.getOffset();<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                        if (useLong) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                while (it.hasNext()) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                        data[it.index] += lb;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                }<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                        } else {<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                final double db = bds.getElementDoubleAbs(bOffset);<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] += db;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                }<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                        }<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                } else {<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                        it.setOutputDouble(!useLong);<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                        if (useLong) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                                while (it.hasNext()) {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                        data[it.aIndex] += it.bLong;<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                }<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                        } else {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                while (it.hasNext()) {<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        data[it.aIndex] += it.bDouble;<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                }<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                        }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                return this;<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 ByteDataset isubtract(final Object b) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                setDirty();<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                if (bds.getSize() == 1) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                        final IndexIterator it = getIterator();<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                        final int bOffset = bds.getOffset();<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                        if (useLong) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                while (it.hasNext()) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                        data[it.index] -= lb;<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>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                while (it.hasNext()) {<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                        data[it.index] -= db;<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                }<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                        }<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                } else {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                        if (useLong) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                it.setOutputDouble(false);<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                                while (it.hasNext()) {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                        data[it.aIndex] -= it.bLong;<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                }<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                        } else {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                it.setOutputDouble(true);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                while (it.hasNext()) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                        data[it.aIndex] -= it.bDouble;<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>                return this;<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>        @Override<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>        public ByteDataset imultiply(final Object b) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                setDirty();<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                if (bds.getSize() == 1) {<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                        final IndexIterator it = getIterator();<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                        final int bOffset = bds.getOffset();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                        if (useLong) {<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                while (it.hasNext()) {<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                                        data[it.index] *= lb;<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                                }<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                        } else {<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                                while (it.hasNext()) {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                                        data[it.index] *= db;<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                        }<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                } else {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                        it.setOutputDouble(!useLong);<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                        if (useLong) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                while (it.hasNext()) {<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                        data[it.aIndex] *= it.bLong;<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>                                        data[it.aIndex] *= it.bDouble;<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>                return this;<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>        @Override<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>        public ByteDataset idivide(final Object b) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                setDirty();<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                if (bds.getSize() == 1) {<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                        final int bOffset = bds.getOffset();<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                        if (useLong) {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                if (lb == 0) { // INT_USE<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        fill(0); // INT_USE<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                } else { // INT_USE<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                final IndexIterator it = getIterator();<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                while (it.hasNext()) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                        data[it.index] /= lb;<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                } // INT_USE<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        } else {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                if (db == 0) { // INT_USE<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        fill(0); // INT_USE<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                } else { // INT_USE<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                final IndexIterator it = getIterator();<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                while (it.hasNext()) {<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                        data[it.index] /= db;<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                                } // INT_USE<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        }<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                } else {<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                        it.setOutputDouble(!useLong);<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        if (useLong) {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                while (it.hasNext()) {<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                        if (it.bLong == 0) { // INT_USE<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                        } else { // INT_USE<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                        data[it.aIndex] /= it.bLong;<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        } // INT_USE<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                }<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                        } else {<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                while (it.hasNext()) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                        if (it.bDouble == 0) { // INT_USE<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                        } else { // INT_USE<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                        data[it.aIndex] /= it.bDouble;<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                        } // INT_USE<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>                }<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                return this;<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>        @Override<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>        public ByteDataset ifloor() {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                return this;<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>        }<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span><a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>        @Override<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>        public ByteDataset iremainder(final Object b) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                setDirty();<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                if (bds.getSize() == 1) {<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                        final int bOffset = bds.getOffset();<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                        if (useLong) {<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                if (lb == 0) { // INT_USE<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                        fill(0); // INT_USE<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                } else { // INT_USE<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                final IndexIterator it = getIterator();<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                while (it.hasNext()) {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                        data[it.index] %= lb;<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                }<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                                } // INT_USE<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                        } else {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                if (lb == 0) { // INT_USE<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        fill(0); // INT_USE<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                } else { // INT_USE<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                                final IndexIterator it = getIterator();<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                                while (it.hasNext()) {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                                        data[it.index] %= lb;<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                                }<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                                } // INT_USE<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                        }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                } else {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                        it.setOutputDouble(!useLong);<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                        if (useLong) {<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                while (it.hasNext()) {<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                                try {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                                data[it.aIndex] %= it.bLong; // INT_EXCEPTION<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                } catch (ArithmeticException e) {<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                        data[it.aIndex] = 0;<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>                                        data[it.aIndex] %= it.bDouble;<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>                }<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                return this;<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>        }<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span><a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>        @Override<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>        public ByteDataset ipower(final Object b) {<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                setDirty();<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                if (bds.getSize() == 1) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                        final int bOffset = bds.getOffset();<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                        final double vr = bds.getElementDoubleAbs(bOffset);<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                        final IndexIterator it = getIterator();<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                        if (bds.isComplex()) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                                final double vi = bds.getElementDoubleAbs(bOffset + 1);<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                if (vi == 0) {<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 v = Math.pow(data[it.index], vr);<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                                                        data[it.index] = 0; // INT_USE<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                                                } else { // INT_USE<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                                                data[it.index] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                                                } // INT_USE<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                                        }<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                                } else {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                        final Complex zv = new Complex(vr, vi);<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                                        while (it.hasNext()) {<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                                                Complex zd = new Complex(data[it.index], 0);<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                                                final double v = zd.pow(zv).getReal();<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                                                        data[it.index] = 0; // INT_USE<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                                                } else { // INT_USE<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                                                data[it.index] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                                                } // INT_USE<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                        }<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                }<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                        } else {// NAN_OMIT<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                                while (it.hasNext()) {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                        final double v = Math.pow(data[it.index], vr);<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                                data[it.index] = 0; // INT_USE<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                        } else { // INT_USE<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                        data[it.index] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                        } // INT_USE<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                }<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                        }<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                } else {<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                        it.setOutputDouble(true);<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                        if (bds.isComplex()) {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                while (it.hasNext()) {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                        final double v = new Complex(it.aDouble, 0).pow(zv).getReal();<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                        } else { // INT_USE<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                        data[it.aIndex] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                                        } // INT_USE<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                                }<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        } else {// NAN_OMIT<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                                while (it.hasNext()) {<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                                        final double v = Math.pow(it.aDouble, it.bDouble);<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                        } else { // INT_USE<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                                        data[it.aIndex] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                        } // INT_USE<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                }<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                        }<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                }<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                return this;<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>        @Override<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                it.setOutputDouble(true);<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                double sum = 0;<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                double comp = 0;<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                {<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                        if (w == null) {<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                while (it.hasNext()) {<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                        final double err = diff * diff - comp;<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                                        final double temp = sum + err;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                        comp = (temp - sum) - err;<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                                        sum = temp;<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                }<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        } else {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                IndexIterator itw = w.getIterator();<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                                        final double err = diff * diff * w.getElementDoubleAbs(itw.index) - comp;<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                        final double temp = sum + err;<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                        comp = (temp - sum) - err;<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                        sum = temp;<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                }<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                        }<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                return sum;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/CollectionStats.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/CollectionStats.html
new file mode 100644
index 0000000..9fd3883
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/dataset/Comparisons.Monotonicity.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Comparisons.Monotonicity.html
new file mode 100644
index 0000000..a9bca55
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Comparisons.Monotonicity.html
@@ -0,0 +1,1839 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.ArrayList;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.List;<a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>/**<a name="line.18"></a>
+<span class="sourceLineNo">019</span> * Comparison and logical methods<a name="line.19"></a>
+<span class="sourceLineNo">020</span> */<a name="line.20"></a>
+<span class="sourceLineNo">021</span>public class Comparisons {<a name="line.21"></a>
+<span class="sourceLineNo">022</span>        /**<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * Compare item-wise for whether a's element is equal b's<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * &lt;p&gt;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * For multi-element items, comparison is true if all elements in an item<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * are equal. Where the datasets have mismatched item sizes, the first element<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         * of the dataset with smaller items is used for comparison.<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * @param a<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         * @param b<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         * @return dataset where item is true if {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code abs(a - b) &lt;= absTol + relTol*max(abs(a),abs(b))}<a name="line.784"></a>
+<span class="sourceLineNo">785</span>         */<a name="line.785"></a>
+<span class="sourceLineNo">786</span>        public static boolean allCloseTo(Object a, Object b, double relTolerance, double absTolerance) {<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.788"></a>
+<span class="sourceLineNo">789</span><a name="line.789"></a>
+<span class="sourceLineNo">790</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db);<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                it.setOutputDouble(true);<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                final int as = da.getElementsPerItem();<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                final int bs = db.getElementsPerItem();<a name="line.793"></a>
+<span class="sourceLineNo">794</span><a name="line.794"></a>
+<span class="sourceLineNo">795</span>                if (as &gt; bs) {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        if (da.isComplex()) {<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                                while (it.hasNext()) {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                                        if (!isCloseNP(it.aDouble, it.bDouble, relTolerance, absTolerance))<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                                                return false;<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                                        if (!isCloseNP(da.getElementDoubleAbs(it.aIndex + 1), relTolerance, absTolerance))<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                                                return false;<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                                }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                        } else {<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                                while (it.hasNext()) {<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                                        final double bd = it.bDouble;<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                                        for (int j = 0; j &lt; as; j++) {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                                                if (!isCloseNP(da.getElementDoubleAbs(it.aIndex + j), bd, relTolerance, absTolerance))<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                                                        return false;<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                                        }<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                                }<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                        }<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                } else if (as &lt; bs) {<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                        if (db.isComplex()) {<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                                while (it.hasNext()) {<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                                        if (!isCloseNP(it.aDouble, it.bDouble, relTolerance, absTolerance))<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                                                return false;<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                                        if (!isCloseNP(db.getElementDoubleAbs(it.bIndex + 1), relTolerance, absTolerance))<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                                                return false;<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                                }<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                        } else {<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                                while (it.hasNext()) {<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                                        final double ad = it.aDouble;<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                                        for (int j = 0; j &lt; bs; j++) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                                                if (!isCloseNP(ad, db.getElementDoubleAbs(it.bIndex + j), relTolerance, absTolerance))<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                                                        return false;<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                                        }<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                                }<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                        }<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                } else {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                        if (as == 1) {<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                                while (it.hasNext()) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                        if (!isCloseNP(it.aDouble, it.bDouble, relTolerance, absTolerance))<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                                return false;<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                }<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        } else {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                while (it.hasNext()) {<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                        for (int j = 0; j &lt; bs; j++) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                                if (!isCloseNP(da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j), relTolerance, absTolerance))<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                                        return false;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                        }<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        }<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                }<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                <a name="line.844"></a>
+<span class="sourceLineNo">845</span>                return true;<a name="line.845"></a>
+<span class="sourceLineNo">846</span>        }<a name="line.846"></a>
+<span class="sourceLineNo">847</span><a name="line.847"></a>
+<span class="sourceLineNo">848</span>        /**<a name="line.848"></a>
+<span class="sourceLineNo">849</span>         * @param a<a name="line.849"></a>
+<span class="sourceLineNo">850</span>         * @return true if all elements are true<a name="line.850"></a>
+<span class="sourceLineNo">851</span>         */<a name="line.851"></a>
+<span class="sourceLineNo">852</span>        public static boolean allTrue(Object a) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                final IndexIterator it = da.getIterator();<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                final int as = da.getElementsPerItem();<a name="line.855"></a>
+<span class="sourceLineNo">856</span><a name="line.856"></a>
+<span class="sourceLineNo">857</span>                if (as == 1) {<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                        while (it.hasNext()) {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                                if (!da.getElementBooleanAbs(it.index))<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                                        return false;<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        }<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                } else {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                        while (it.hasNext()) {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                for (int j = 0; j &lt; as; j++) {<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                                        if (!da.getElementBooleanAbs(it.index + j))<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                                return false;<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                }<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                        }<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                }<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                return true;<a name="line.870"></a>
+<span class="sourceLineNo">871</span>        }<a name="line.871"></a>
+<span class="sourceLineNo">872</span><a name="line.872"></a>
+<span class="sourceLineNo">873</span>        /**<a name="line.873"></a>
+<span class="sourceLineNo">874</span>         * Test if all items along given axis are true in the input dataset<a name="line.874"></a>
+<span class="sourceLineNo">875</span>         * @param a<a name="line.875"></a>
+<span class="sourceLineNo">876</span>         * @param axis axis to reduce <a name="line.876"></a>
+<span class="sourceLineNo">877</span>         * @return boolean dataset<a name="line.877"></a>
+<span class="sourceLineNo">878</span>         */<a name="line.878"></a>
+<span class="sourceLineNo">879</span>        public static BooleanDataset allTrue(IDataset a, int axis) {<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                axis = ShapeUtils.checkAxis(a.getRank(), axis);<a name="line.880"></a>
+<span class="sourceLineNo">881</span><a name="line.881"></a>
+<span class="sourceLineNo">882</span>                int rank = a.getRank();<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                int[] oshape = a.getShape();<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                int alen = oshape[axis];<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                oshape[axis] = 1;<a name="line.885"></a>
+<span class="sourceLineNo">886</span><a name="line.886"></a>
+<span class="sourceLineNo">887</span>                int[] nshape = ShapeUtils.squeezeShape(oshape, false);<a name="line.887"></a>
+<span class="sourceLineNo">888</span><a name="line.888"></a>
+<span class="sourceLineNo">889</span>                BooleanDataset result = DatasetFactory.zeros(BooleanDataset.class, nshape);<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>                IndexIterator qiter = result.getIterator(true);<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                int[] qpos = qiter.getPos();<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                int[] spos = oshape;<a name="line.893"></a>
+<span class="sourceLineNo">894</span><a name="line.894"></a>
+<span class="sourceLineNo">895</span>                while (qiter.hasNext()) {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                        int i = 0;<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                        for (; i &lt; axis; i++) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                spos[i] = qpos[i];<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                        }<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                        spos[i++] = 0;<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        for (; i &lt; rank; i++) {<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                                spos[i] = qpos[i-1];<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                        }<a name="line.903"></a>
+<span class="sourceLineNo">904</span><a name="line.904"></a>
+<span class="sourceLineNo">905</span>                        boolean br = true;<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        for (int j = 0; br &amp;&amp; j &lt; alen; j++) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                spos[axis] = j;<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                br &amp;= a.getBoolean(spos);<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                        }<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                        result.set(br, qpos);<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                }<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                return result;<a name="line.912"></a>
+<span class="sourceLineNo">913</span>        }<a name="line.913"></a>
+<span class="sourceLineNo">914</span><a name="line.914"></a>
+<span class="sourceLineNo">915</span>        /**<a name="line.915"></a>
+<span class="sourceLineNo">916</span>         * @param a<a name="line.916"></a>
+<span class="sourceLineNo">917</span>         * @return true if any element is true<a name="line.917"></a>
+<span class="sourceLineNo">918</span>         */<a name="line.918"></a>
+<span class="sourceLineNo">919</span>        public static boolean anyTrue(Object a) {<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                final IndexIterator it = da.getIterator();<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                final int as = da.getElementsPerItem();<a name="line.922"></a>
+<span class="sourceLineNo">923</span><a name="line.923"></a>
+<span class="sourceLineNo">924</span>                if (as == 1) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                        while (it.hasNext()) {<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                if (da.getElementBooleanAbs(it.index))<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                                        return true;<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                        }<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                } else {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                        while (it.hasNext()) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                for (int j = 0; j &lt; as; j++) {<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                        if (da.getElementBooleanAbs(it.index + j))<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                                return true;<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                        }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                }<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                return false;<a name="line.937"></a>
+<span class="sourceLineNo">938</span>        }<a name="line.938"></a>
+<span class="sourceLineNo">939</span><a name="line.939"></a>
+<span class="sourceLineNo">940</span>        /**<a name="line.940"></a>
+<span class="sourceLineNo">941</span>         * Test if any items along given axis are true in the input dataset<a name="line.941"></a>
+<span class="sourceLineNo">942</span>         * @param a<a name="line.942"></a>
+<span class="sourceLineNo">943</span>         * @param axis axis to reduce <a name="line.943"></a>
+<span class="sourceLineNo">944</span>         * @return boolean dataset<a name="line.944"></a>
+<span class="sourceLineNo">945</span>         */<a name="line.945"></a>
+<span class="sourceLineNo">946</span>        public static BooleanDataset anyTrue(IDataset a, int axis) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                axis = ShapeUtils.checkAxis(a.getRank(), axis);<a name="line.947"></a>
+<span class="sourceLineNo">948</span><a name="line.948"></a>
+<span class="sourceLineNo">949</span>                int rank = a.getRank();<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                int[] oshape = a.getShape();<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                int alen = oshape[axis];<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                oshape[axis] = 1;<a name="line.952"></a>
+<span class="sourceLineNo">953</span><a name="line.953"></a>
+<span class="sourceLineNo">954</span>                int[] nshape = ShapeUtils.squeezeShape(oshape, false);<a name="line.954"></a>
+<span class="sourceLineNo">955</span><a name="line.955"></a>
+<span class="sourceLineNo">956</span>                BooleanDataset result = DatasetFactory.zeros(BooleanDataset.class, nshape);<a name="line.956"></a>
+<span class="sourceLineNo">957</span><a name="line.957"></a>
+<span class="sourceLineNo">958</span>                IndexIterator qiter = result.getIterator(true);<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                int[] qpos = qiter.getPos();<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                int[] spos = oshape;<a name="line.960"></a>
+<span class="sourceLineNo">961</span><a name="line.961"></a>
+<span class="sourceLineNo">962</span>                while (qiter.hasNext()) {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                        int i = 0;<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                        for (; i &lt; axis; i++) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                spos[i] = qpos[i];<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                        }<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                        spos[i++] = 0;<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                        for (; i &lt; rank; i++) {<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                spos[i] = qpos[i-1];<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                        }<a name="line.970"></a>
+<span class="sourceLineNo">971</span><a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        boolean br = false;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                        for (int j = 0; !br &amp;&amp; j &lt; alen; j++) {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                                spos[axis] = j;<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                                br |= a.getBoolean(spos);<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        }<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                        result.set(br, qpos);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                }<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                return result;<a name="line.979"></a>
+<span class="sourceLineNo">980</span>        }<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>        /**<a name="line.982"></a>
+<span class="sourceLineNo">983</span>         * Negate item-wise<a name="line.983"></a>
+<span class="sourceLineNo">984</span>         * &lt;p&gt;<a name="line.984"></a>
+<span class="sourceLineNo">985</span>         * For multi-element items, negation is false if all elements in a pair of items<a name="line.985"></a>
+<span class="sourceLineNo">986</span>         * are true.<a name="line.986"></a>
+<span class="sourceLineNo">987</span>         * @param a<a name="line.987"></a>
+<span class="sourceLineNo">988</span>         * @return dataset where item is true when a is false<a name="line.988"></a>
+<span class="sourceLineNo">989</span>         */<a name="line.989"></a>
+<span class="sourceLineNo">990</span>        public static BooleanDataset logicalNot(Object a) {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                return logicalNot(a, null);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>        }<a name="line.992"></a>
+<span class="sourceLineNo">993</span><a name="line.993"></a>
+<span class="sourceLineNo">994</span>        /**<a name="line.994"></a>
+<span class="sourceLineNo">995</span>         * Negate item-wise<a name="line.995"></a>
+<span class="sourceLineNo">996</span>         * &lt;p&gt;<a name="line.996"></a>
+<span class="sourceLineNo">997</span>         * For multi-element items, negation is false if all elements in a pair of items<a name="line.997"></a>
+<span class="sourceLineNo">998</span>         * are true.<a name="line.998"></a>
+<span class="sourceLineNo">999</span>         * @param a<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>         * @return dataset where item is true when a is false<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>         */<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>        public static BooleanDataset logicalNot(Object a, BooleanDataset o) {<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span><a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span><a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span><a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                final int as = da.getElementsPerItem();<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span><a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                if (as == 1) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        while (it.hasNext()) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                r.setAbs(it.oIndex, !da.getElementBooleanAbs(it.aIndex));<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                        }<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                } else {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                        boolean br = true;<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                        while (it.hasNext()) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                for (int j = 0; j &lt; as; j++) {<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                        br &amp;= da.getElementBooleanAbs(it.aIndex + j);<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                r.setAbs(it.oIndex, !br);<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                        }<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                return r;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>        }<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span><a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        /**<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>         * Compare item-wise for whether a's item is true and b's true too.<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>         * &lt;p&gt;<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>         * For multi-element items, comparison is true if all elements in a pair of items<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>         * are true. Where the datasets have mismatched item sizes, the first element<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>         * of the dataset with smaller items is used for comparison.<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>         * @param a<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>         * @param b<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>         * @return dataset where item is true if {@code a &amp;&amp; b} is true<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>         */<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>        public static BooleanDataset logicalAnd(Object a, Object b) {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                return logicalAnd(a, b, null);<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>        }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span><a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>        /**<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>         * Compare item-wise for whether a's item is true and b's true too.<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>         * &lt;p&gt;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>         * For multi-element items, comparison is true if all elements in a pair of items<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>         * are true. Where the datasets have mismatched item sizes, the first element<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>         * of the dataset with smaller items is used for comparison.<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>         * @param a<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>         * @param b<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>         * @return dataset where item is true if {@code a &amp;&amp; b} is true<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>         */<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>        public static BooleanDataset logicalAnd(Object a, Object b, BooleanDataset o) {<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span><a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span><a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span><a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                it.setOutputDouble(true);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                final int as = da.getElementsPerItem();<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                final int bs = db.getElementsPerItem();<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span><a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                if (as &gt; bs) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                        while (it.hasNext()) {<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                final boolean bb = db.getElementBooleanAbs(it.bIndex);<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                                boolean rb = true;<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                                for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                                        rb &amp;= da.getElementBooleanAbs(it.aIndex + j) &amp;&amp; bb;<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                                }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                                r.setAbs(it.oIndex, rb);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                        }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                } else if (as &lt; bs) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                        while (it.hasNext()) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                final boolean ab = da.getElementBooleanAbs(it.aIndex);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                boolean rb = true;<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                        rb &amp;= ab &amp;&amp; db.getElementBooleanAbs(it.bIndex + j);<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                }<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                r.setAbs(it.oIndex, rb);<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                        }<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                } else {<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                        if (as == 1) {<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                while (it.hasNext()) {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                        r.setAbs(it.oIndex, da.getElementBooleanAbs(it.aIndex) &amp;&amp; db.getElementBooleanAbs(it.bIndex));<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                }<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                        } else {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                while (it.hasNext()) {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                        boolean rb = true;<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                                rb &amp;= da.getElementBooleanAbs(it.aIndex + j) &amp;&amp; db.getElementBooleanAbs(it.bIndex + j);<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                        }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                                }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                        }<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                }<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span><a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                return r;<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>        }<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span><a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>        /**<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>         * Compare item-wise for whether a's item is true or b's true.<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>         * &lt;p&gt;<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>         * For multi-element items, comparison is true if any elements in a pair of items<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>         * are true. Where the datasets have mismatched item sizes, the first element<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>         * of the dataset with smaller items is used for comparison.<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>         * @param a<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>         * @param b<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>         * @return dataset where item is true if {@code a || b} is true<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>         */<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        public static BooleanDataset logicalOr(Object a, Object b) {<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                return logicalOr(a, b, null);<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>        }<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span><a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>        /**<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>         * Compare item-wise for whether a's item is true or b's true.<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>         * &lt;p&gt;<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>         * For multi-element items, comparison is true if any elements in a pair of items<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>         * are true. Where the datasets have mismatched item sizes, the first element<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>         * of the dataset with smaller items is used for comparison.<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>         * @param a<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>         * @param b<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>         * @return dataset where item is true if {@code a || b} is true<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>         */<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>        public static BooleanDataset logicalOr(Object a, Object b, BooleanDataset o) {<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span><a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span><a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span><a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                it.setOutputDouble(true);<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                final int as = da.getElementsPerItem();<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                final int bs = db.getElementsPerItem();<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span><a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                if (as &gt; bs) {<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                        while (it.hasNext()) {<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                final boolean bb = db.getElementBooleanAbs(it.bIndex);<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                boolean rb = true;<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                for (int j = 0; j &lt; as; j++) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                        rb |= da.getElementBooleanAbs(it.aIndex + j) || bb;<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                }<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                r.setAbs(it.oIndex, rb);<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                        }<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                } else if (as &lt; bs) {<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                        while (it.hasNext()) {<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                                final boolean ab = da.getElementBooleanAbs(it.aIndex);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                boolean rb = true;<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                        rb |= ab || db.getElementBooleanAbs(it.bIndex + j);<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                }<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                r.setAbs(it.oIndex, rb);<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                } else {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                        if (as == 1) {<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                                while (it.hasNext()) {<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                                        r.setAbs(it.oIndex, da.getElementBooleanAbs(it.aIndex) || db.getElementBooleanAbs(it.bIndex));<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                                }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                        } else {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                while (it.hasNext()) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                        boolean rb = true;<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                                rb &amp;= da.getElementBooleanAbs(it.aIndex + j) || db.getElementBooleanAbs(it.bIndex + j);<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                                        }<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                }<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                        }<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                }<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span><a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                return r;<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>        }<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span><a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>        /**<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>         * Compare item-wise for whether a's item is true or b's true exclusively.<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>         * &lt;p&gt;<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>         * For multi-element items, comparison is true if one element in a pair of items<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>         * is true. Where the datasets have mismatched item sizes, the first element<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>         * of the dataset with smaller items is used for comparison.<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>         * @param a<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>         * @param b<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>         * @return dataset where item is true if {@code a ^ b} is true<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>         */<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>        public static BooleanDataset logicalXor(Object a, Object b) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                return logicalXor(a, b, null);<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>        }<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>        /**<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>         * Compare item-wise for whether a's item is true or b's true exclusively.<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>         * &lt;p&gt;<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>         * For multi-element items, comparison is true if one element in a pair of items<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>         * is true. Where the datasets have mismatched item sizes, the first element<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>         * of the dataset with smaller items is used for comparison.<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>         * @param a<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>         * @param b<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>         * @return dataset where item is true if a ^ b is true<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>         */<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>        public static BooleanDataset logicalXor(Object a, Object b, BooleanDataset o) {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span><a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span><a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span><a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                it.setOutputDouble(true);<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                final int as = da.getElementsPerItem();<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                final int bs = db.getElementsPerItem();<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span><a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                if (as &gt; bs) {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                        while (it.hasNext()) {<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                boolean rb = db.getElementBooleanAbs(it.bIndex);<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                for (int j = 0; j &lt; as; j++) {<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                        rb ^= da.getElementBooleanAbs(it.aIndex + j);<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                }<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                r.setAbs(it.oIndex, rb);<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                        }<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                } else if (as &lt; bs) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                        while (it.hasNext()) {<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                boolean rb = da.getElementBooleanAbs(it.aIndex);<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                        rb ^= db.getElementBooleanAbs(it.bIndex + j);<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                }<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                r.setAbs(it.oIndex, rb);<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                        }<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                } else {<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                        if (as == 1) {<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                while (it.hasNext()) {<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                        r.setAbs(it.oIndex, da.getElementBooleanAbs(it.aIndex) ^ db.getElementBooleanAbs(it.bIndex));<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                                }<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                        } else {<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                                while (it.hasNext()) {<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                                        boolean rb = true;<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                                rb &amp;= da.getElementBooleanAbs(it.aIndex + j) ^ db.getElementBooleanAbs(it.bIndex + j);<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                        }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                                }<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                        }<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                }<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span><a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                return r;<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>        }<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span><a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>        /**<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>         * Create a list of indices of positions where items are non-zero<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>         * @param a<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>         * @return list of positions as integer datasets<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>         */<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>        public static List&lt;IntegerDataset&gt; nonZero(Dataset a) {<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                final int rank = a.getRank();<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                final List&lt;List&lt;Integer&gt;&gt; indices = new ArrayList&lt;List&lt;Integer&gt;&gt;();<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                List&lt;IntegerDataset&gt; indexList = new ArrayList&lt;IntegerDataset&gt;();<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span><a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                if (rank == 0)<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                        return indexList;<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span><a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                for (int j = 0; j &lt; rank; j++) {<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                        indices.add(new ArrayList&lt;Integer&gt;());<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                }<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span><a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                final IndexIterator iter = a.getIterator(true);<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                final int[] pos = iter.getPos();<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                while (iter.hasNext()) {<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                        if (a.getElementBooleanAbs(iter.index)) {<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                                for (int j = 0; j &lt; rank; j++) {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                        indices.get(j).add(pos[j]);<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                }<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                        }<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                }<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span><a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                for (int j = 0; j &lt; rank; j++) {<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                        indexList.add((IntegerDataset) DatasetFactory.createFromList(IntegerDataset.class, indices.get(j)));<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                }<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                return indexList;<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>        }<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span><a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>        /**<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>         * Check item-wise for whether any a's elements are Not-a-Numbers<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>         * &lt;p&gt;<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>         * For multi-element items, check is true if any elements in an item is Not-a-Number.<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>         * @param a<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>         * @return dataset where item is true if any of its elements are NaNs<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>         */<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>        public static BooleanDataset isNaN(Object a) {<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                return isNaN(a, null);<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>        }<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span><a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>        /**<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>         * Check item-wise for whether any a's elements are Not-a-Numbers<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>         * &lt;p&gt;<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>         * For multi-element items, check is true if any elements in an item is Not-a-Number.<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>         * @param a<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>         * @return dataset where item is true if any of its elements are NaNs<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>         */<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>        public static BooleanDataset isNaN(Object a, BooleanDataset o) {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span><a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span><a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span><a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                if (!da.hasFloatingPointElements()) {<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                        if (r == o) {<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                r.fill(false);<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                        }<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                        return r;<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                }<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span><a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                it.setOutputDouble(true);<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                final int as = da.getElementsPerItem();<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span><a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                if (as == 1) {<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                        while (it.hasNext()) {<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                                r.setAbs(it.oIndex, Double.isNaN(it.aDouble));<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                        }<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                } else {<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                        if (da instanceof ComplexFloatDataset || da instanceof ComplexDoubleDataset) {<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                                while (it.hasNext()) {<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                                        r.setAbs(it.oIndex, Double.isNaN(it.aDouble) || Double.isNaN(da.getElementDoubleAbs(it.aIndex + 1)));<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                                }<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                        } else {<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                while (it.hasNext()) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                        boolean rb = false;<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                                        for (int j = 0; !rb &amp;&amp; j &lt; as; j++) {<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                                                rb &amp;= Double.isNaN(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                                        }<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                                }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                        }<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                return r;<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>        }<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span><a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>        /**<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>         * Check item-wise for whether any a's elements are infinite<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>         * &lt;p&gt;<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>         * For multi-element items, check is true if any elements in an item is infinite<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>         * @param a<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>         * @return dataset where item is true if any of its elements are infinite<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>         */<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>        public static BooleanDataset isInfinite(Object a) {<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>                return isInfinite(a, null);<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>        }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span><a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>        /**<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>         * Check item-wise for whether any a's elements are infinite<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>         * &lt;p&gt;<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>         * For multi-element items, check is true if any elements in an item is infinite<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>         * @param a<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>         * @return dataset where item is true if any of its elements are infinite<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>         */<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>        public static BooleanDataset isInfinite(Object a, BooleanDataset o) {<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span><a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span><a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span><a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                if (!da.hasFloatingPointElements()) {<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                        if (r == o) {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                                r.fill(false);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                        }<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                        return r;<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                }<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span><a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                it.setOutputDouble(true);<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                final int as = da.getElementsPerItem();<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span><a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                if (as == 1) {<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                        while (it.hasNext()) {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                                r.setAbs(it.oIndex, Double.isInfinite(it.aDouble));<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                        }<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                } else {<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                        if (da instanceof ComplexFloatDataset || da instanceof ComplexDoubleDataset) {<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                                while (it.hasNext()) {<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                        r.setAbs(it.oIndex, Double.isInfinite(it.aDouble) || Double.isInfinite(da.getElementDoubleAbs(it.aIndex + 1)));<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                                }<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                        } else {<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                while (it.hasNext()) {<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                        boolean rb = false;<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                        for (int j = 0; !rb &amp;&amp; j &lt; as; j++) {<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                                rb &amp;= Double.isInfinite(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                                        }<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                        }<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                }<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                return r;<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>        }<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span><a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>        /**<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>         * Check item-wise for whether any a's elements are positive infinite<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>         * &lt;p&gt;<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>         * For multi-element items, the check is true if any elements in an item is positive infinite<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>         * @param a<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>         * @return dataset where items are true if any of its elements are positive infinite<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>         */<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>        public static BooleanDataset isPositiveInfinite(Object a) {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                return isEqual(a, null, Double.POSITIVE_INFINITY);<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>        }<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span><a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>        /**<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>         * Check item-wise for whether any a's elements are positive infinite<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>         * &lt;p&gt;<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>         * For multi-element items, the check is true if any elements in an item is positive infinite<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>         * @param a<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>         * @return dataset where items are true if any of its elements are positive infinite<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>         */<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>        public static BooleanDataset isPositiveInfinite(Object a, BooleanDataset o) {<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                return isEqual(a, o, Double.POSITIVE_INFINITY);<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>        }<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span><a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>        /**<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>         * Check item-wise for whether any a's elements are negative infinite<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>         * &lt;p&gt;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>         * For multi-element items, the check is true if any elements in an item is negative infinite<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>         * @param a<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>         * @return dataset where items are true if any of its elements are negative infinite<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>         */<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>        public static BooleanDataset isNegativeInfinite(Object a) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                return isEqual(a, null, Double.NEGATIVE_INFINITY);<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>        }<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span><a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>        /**<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>         * Check item-wise for whether any a's elements are negative infinite<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>         * &lt;p&gt;<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>         * For multi-element items, the check is true if any elements in an item is negative infinite<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>         * @param a<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>         * @return dataset where items are true if any of its elements are negative infinite<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>         */<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>        public static BooleanDataset isNegativeInfinite(Object a, BooleanDataset o) {<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                return isEqual(a, o, Double.NEGATIVE_INFINITY);<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>        }<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span><a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>        /**<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>         * Check item-wise for whether any a's elements match given item<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>         * &lt;p&gt;<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>         * For multi-element items, the check is true if any elements in an item matches<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>         * @param a<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>         * @param match<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>         * @return dataset where items are true if any of its elements match<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>         */<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>        private static BooleanDataset isEqual(Object a, BooleanDataset o, final double match) {<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span><a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span><a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span><a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                if (!da.hasFloatingPointElements()) {<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                        if (r == o) {<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                                r.fill(false);<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                        }<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                        return r;<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                }<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span><a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                it.setOutputDouble(true);<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                final int as = da.getElementsPerItem();<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span><a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                if (as == 1) {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                        while (it.hasNext()) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                r.setAbs(it.oIndex, it.aDouble == match);<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                        }<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                } else {<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                        if (da instanceof ComplexFloatDataset || da instanceof ComplexDoubleDataset) {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                while (it.hasNext()) {<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                        final double rv = it.aDouble;<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                        final double iv = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                        r.setAbs(it.oIndex, (rv == match) || (iv == match));<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                                }<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                        } else {<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                                while (it.hasNext()) {<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                                        boolean rb = false;<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>                                        for (int j = 0; !rb &amp;&amp; j &lt; as; j++) {<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                                                rb &amp;= da.getElementDoubleAbs(it.aIndex + j) == match;<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                        }<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                }<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                        }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                }<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                return r;<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>        }<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span><a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>        /**<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>         * Check item-wise for whether any a's elements are finite (or not infinite and not Not-a-Number)<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>         * &lt;p&gt;<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>         * For multi-element items, check is true if any elements in an item is finite<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>         * @param a<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>         * @return dataset where item is true if any of its elements are finite<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>         */<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>        public static BooleanDataset isFinite(Object a) {<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                return isFinite(a, null);<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>        }<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span><a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>        /**<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>         * Check item-wise for whether any a's elements are finite (or not infinite and not Not-a-Number)<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>         * &lt;p&gt;<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>         * For multi-element items, check is true if any elements in an item is finite<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>         * @param a<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>         * @return dataset where item is true if any of its elements are finite<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>         */<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>        public static BooleanDataset isFinite(Object a, BooleanDataset o) {<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span><a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span><a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span><a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                if (!da.hasFloatingPointElements()) {<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                        r.fill(true);<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                        return r;<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                }<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span><a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                it.setOutputDouble(true);<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                final int as = da.getElementsPerItem();<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span><a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                if (as == 1) {<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                        while (it.hasNext()) {<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                final double rv = it.aDouble;<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                r.setAbs(it.oIndex, !(Double.isInfinite(rv) || Double.isNaN(rv)));<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                        }<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                } else {<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                        if (da instanceof ComplexFloatDataset || da instanceof ComplexDoubleDataset) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                while (it.hasNext()) {<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                        final double rv = it.aDouble;<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                        final double iv = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                        r.setAbs(it.oIndex, !(Double.isInfinite(rv) || Double.isNaN(rv) || Double.isInfinite(iv) || Double.isNaN(iv)));<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                }<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                        } else {<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                while (it.hasNext()) {<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                        boolean rb = false;<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                        for (int j = 0; !rb &amp;&amp; j &lt; as; j++) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                final double rv = it.aDouble;<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                                rb &amp;= !(Double.isInfinite(rv) || Double.isNaN(rv));<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                        }<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                                }<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        }<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                }<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                return r;<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>        }<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span><a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>        /**<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>         * Enumeration of monotonicity. NaNs are ignored or considered not equal<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>         */<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>        public static enum Monotonicity {<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                /**<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                 * No order: {@code x_0 != x_1 != x_2 ...}<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                 */<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                NOT_ORDERED,<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                /**<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                 * All equal: {@code x_0 == x_1 == x_2 ...}<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                 */<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                ALL_EQUAL,<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                /**<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                 * Strictly decreasing {@code x_0 &gt; x_1 &gt; x_2 ...}<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                 */<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                STRICTLY_DECREASING,<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                /**<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                 * Non-increasing or weakly decreasing {@code x_0 &gt;= x_1 &gt;= x_2 ...}<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                 */<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                NONINCREASING,<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                /**<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                 * Non-decreasing or weakly increasing {@code x_0 &lt;= x_1 &lt;= x_2 ...}<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                 */<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                NONDECREASING,<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                /**<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                 * Strictly increasing {@code x_0 &lt; x_1 &lt; x_2 ...}<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                 */<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                STRICTLY_INCREASING,<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>        }<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span><a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>        /**<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>         * @param a<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>         * @return true if all elements are in a monotonic order<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>         * @see #findMonotonicity(Object)<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>         */<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>        public static boolean isMonotonic(Object a) {<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                return findMonotonicity(a) != Monotonicity.NOT_ORDERED;<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>        }<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span><a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>        /**<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>         * @param a<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>         * @param monotonicity<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>         * @return true if all elements are in given monotonic ordering<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>         */<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>        public static boolean isMonotonic(Object a, Monotonicity monotonicity) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                if (da.getRank() &gt; 1) {<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                        throw new IllegalArgumentException("Only 0 or 1D datasets are allowed");<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                }<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span><a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                if (da.getElementsPerItem() &gt; 1) {<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                        throw new IllegalArgumentException("Cannot compare compound datsets");<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                }<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span><a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                final IndexIterator it = da.getIterator();<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                double previous = Double.NaN;<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                while (Double.isNaN(previous) &amp;&amp; it.hasNext()) { // look for first non-NaN<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                        previous = da.getElementDoubleAbs(it.index);<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span><a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                Boolean increasing = null;<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                boolean equality = false;<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                while (it.hasNext()) { // look for first change<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                        double next = da.getElementDoubleAbs(it.index);<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                        if (!Double.isNaN(next)) {<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>                                if (previous != next) {<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                                        increasing = previous &lt; next;<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                        previous = next;<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                        break;<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                } else if (!equality) {<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                                        equality = true;<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                                        if (monotonicity == Monotonicity.STRICTLY_DECREASING || monotonicity == Monotonicity.STRICTLY_DECREASING)<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                                                return false;<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                }<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                        }<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                }<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span><a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                if (increasing == null) {<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                        if (equality)<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                                return monotonicity == Monotonicity.ALL_EQUAL || monotonicity == Monotonicity.NONDECREASING || monotonicity == Monotonicity.NONINCREASING;<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                        return Double.isNaN(previous) ? monotonicity == Monotonicity.NOT_ORDERED : true;<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                }<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span><a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                if (increasing) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                        if (monotonicity == Monotonicity.ALL_EQUAL || monotonicity == Monotonicity.NONINCREASING || monotonicity == Monotonicity.STRICTLY_DECREASING)<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                return false;<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span><a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                        while (it.hasNext()) {<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                double next = da.getElementDoubleAbs(it.index);<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                                if (!Double.isNaN(next)) {<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                                        if (previous &gt; next) {<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                                                return monotonicity == Monotonicity.NOT_ORDERED;<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                                        } else if (previous &lt; next) {<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>                                                previous = next;<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                                        } else if (!equality) {<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                                equality = true;<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                                if (monotonicity == Monotonicity.STRICTLY_INCREASING)<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                                        return false;<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                                        }<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                }<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                        }<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span><a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                        return monotonicity != Monotonicity.NOT_ORDERED;<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                }<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span><a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                if (monotonicity == Monotonicity.ALL_EQUAL || monotonicity == Monotonicity.NONDECREASING || monotonicity == Monotonicity.STRICTLY_INCREASING)<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                        return false;<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span><a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                while (it.hasNext()) {<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                        double next = da.getElementDoubleAbs(it.index);<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                        if (!Double.isNaN(next)) {<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                if (previous &lt; next) {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                        return monotonicity == Monotonicity.NOT_ORDERED;<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                } else if (previous &gt; next) {<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                        previous = next;<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                } else if (!equality) {<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                        equality = true;<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                                        if (monotonicity == Monotonicity.STRICTLY_DECREASING)<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                                                return false;<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                                }<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                        }<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>                }<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span><a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                return monotonicity != Monotonicity.NOT_ORDERED;<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>        }<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span><a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>        /**<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>         * @param a<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>         * @return true if all elements are in a strictly monotonic order<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>         * @see #findMonotonicity(Object)<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>         */<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>        public static boolean isStrictlyMonotonic(Object a) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                Monotonicity mono = findMonotonicity(a);<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                return mono == Monotonicity.STRICTLY_DECREASING || mono == Monotonicity.STRICTLY_INCREASING;<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>        }<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span><a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>        /**<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>         * Find monotonicity. NaNs are ignored or considered not equal<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>         * @param a<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>         * @return monotonicity<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>         */<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>        public static Monotonicity findMonotonicity(Object a) {<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                if (da.getRank() &gt; 1) {<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                        throw new IllegalArgumentException("Only 0 or 1D datasets are allowed");<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span><a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                if (da.getElementsPerItem() &gt; 1) {<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                        throw new IllegalArgumentException("Cannot compare compound datsets");<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                }<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span><a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                final IndexIterator it = da.getIterator();<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                double previous = Double.NaN;<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                while (Double.isNaN(previous) &amp;&amp; it.hasNext()) { // look for first non-NaN<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                        previous = da.getElementDoubleAbs(it.index);<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                }<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span><a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                Boolean increasing = null;<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                boolean equality = false;<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                while (it.hasNext()) { // look for first change<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                        double next = da.getElementDoubleAbs(it.index);<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                        if (!Double.isNaN(next)) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                if (previous != next) {<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                        increasing = previous &lt; next;<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                        previous = next;<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                        break;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                } else if (!equality) {<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        equality = true;<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                }<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                        }<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                }<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span><a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                if (increasing == null) {<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                        return Double.isNaN(previous) ? Monotonicity.NOT_ORDERED : Monotonicity.ALL_EQUAL;<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span><a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                if (increasing) {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                        while (it.hasNext()) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                double next = da.getElementDoubleAbs(it.index);<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                if (!Double.isNaN(next)) {<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                        if (previous &gt; next) {<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                return Monotonicity.NOT_ORDERED;<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                        } else if (previous &lt; next) {<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                                previous = next;<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                        } else if (!equality) {<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                                equality = true;<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                                        }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                                }<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                        }<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                        return equality ? Monotonicity.NONDECREASING : Monotonicity.STRICTLY_INCREASING;<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>                }<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span><a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                while (it.hasNext()) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                        double next = da.getElementDoubleAbs(it.index);<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                        if (!Double.isNaN(next)) {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                if (previous &lt; next) {<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                        return Monotonicity.NOT_ORDERED;<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                } else if (previous &gt; next) {<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                        previous = next;<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                } else if (!equality) {<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                        equality = true;<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                                }<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                        }<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                }<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                return equality ? Monotonicity.NONINCREASING : Monotonicity.STRICTLY_DECREASING;<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>        }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>}<a name="line.1767"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Comparisons.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Comparisons.html
new file mode 100644
index 0000000..a9bca55
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Comparisons.html
@@ -0,0 +1,1839 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.ArrayList;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.List;<a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>/**<a name="line.18"></a>
+<span class="sourceLineNo">019</span> * Comparison and logical methods<a name="line.19"></a>
+<span class="sourceLineNo">020</span> */<a name="line.20"></a>
+<span class="sourceLineNo">021</span>public class Comparisons {<a name="line.21"></a>
+<span class="sourceLineNo">022</span>        /**<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * Compare item-wise for whether a's element is equal b's<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * &lt;p&gt;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * For multi-element items, comparison is true if all elements in an item<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * are equal. Where the datasets have mismatched item sizes, the first element<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         * of the dataset with smaller items is used for comparison.<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * @param a<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         * @param b<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         * @return dataset where item is true if {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code abs(a - b) &lt;= absTol + relTol*max(abs(a),abs(b))}<a name="line.784"></a>
+<span class="sourceLineNo">785</span>         */<a name="line.785"></a>
+<span class="sourceLineNo">786</span>        public static boolean allCloseTo(Object a, Object b, double relTolerance, double absTolerance) {<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.788"></a>
+<span class="sourceLineNo">789</span><a name="line.789"></a>
+<span class="sourceLineNo">790</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db);<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                it.setOutputDouble(true);<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                final int as = da.getElementsPerItem();<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                final int bs = db.getElementsPerItem();<a name="line.793"></a>
+<span class="sourceLineNo">794</span><a name="line.794"></a>
+<span class="sourceLineNo">795</span>                if (as &gt; bs) {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        if (da.isComplex()) {<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                                while (it.hasNext()) {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                                        if (!isCloseNP(it.aDouble, it.bDouble, relTolerance, absTolerance))<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                                                return false;<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                                        if (!isCloseNP(da.getElementDoubleAbs(it.aIndex + 1), relTolerance, absTolerance))<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                                                return false;<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                                }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                        } else {<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                                while (it.hasNext()) {<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                                        final double bd = it.bDouble;<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                                        for (int j = 0; j &lt; as; j++) {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                                                if (!isCloseNP(da.getElementDoubleAbs(it.aIndex + j), bd, relTolerance, absTolerance))<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                                                        return false;<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                                        }<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                                }<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                        }<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                } else if (as &lt; bs) {<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                        if (db.isComplex()) {<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                                while (it.hasNext()) {<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                                        if (!isCloseNP(it.aDouble, it.bDouble, relTolerance, absTolerance))<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                                                return false;<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                                        if (!isCloseNP(db.getElementDoubleAbs(it.bIndex + 1), relTolerance, absTolerance))<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                                                return false;<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                                }<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                        } else {<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                                while (it.hasNext()) {<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                                        final double ad = it.aDouble;<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                                        for (int j = 0; j &lt; bs; j++) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                                                if (!isCloseNP(ad, db.getElementDoubleAbs(it.bIndex + j), relTolerance, absTolerance))<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                                                        return false;<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                                        }<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                                }<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                        }<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                } else {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                        if (as == 1) {<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                                while (it.hasNext()) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                        if (!isCloseNP(it.aDouble, it.bDouble, relTolerance, absTolerance))<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                                return false;<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                }<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        } else {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                while (it.hasNext()) {<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                        for (int j = 0; j &lt; bs; j++) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                                if (!isCloseNP(da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j), relTolerance, absTolerance))<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                                        return false;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                        }<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        }<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                }<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                <a name="line.844"></a>
+<span class="sourceLineNo">845</span>                return true;<a name="line.845"></a>
+<span class="sourceLineNo">846</span>        }<a name="line.846"></a>
+<span class="sourceLineNo">847</span><a name="line.847"></a>
+<span class="sourceLineNo">848</span>        /**<a name="line.848"></a>
+<span class="sourceLineNo">849</span>         * @param a<a name="line.849"></a>
+<span class="sourceLineNo">850</span>         * @return true if all elements are true<a name="line.850"></a>
+<span class="sourceLineNo">851</span>         */<a name="line.851"></a>
+<span class="sourceLineNo">852</span>        public static boolean allTrue(Object a) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                final IndexIterator it = da.getIterator();<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                final int as = da.getElementsPerItem();<a name="line.855"></a>
+<span class="sourceLineNo">856</span><a name="line.856"></a>
+<span class="sourceLineNo">857</span>                if (as == 1) {<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                        while (it.hasNext()) {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                                if (!da.getElementBooleanAbs(it.index))<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                                        return false;<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        }<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                } else {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                        while (it.hasNext()) {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                for (int j = 0; j &lt; as; j++) {<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                                        if (!da.getElementBooleanAbs(it.index + j))<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                                return false;<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                }<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                        }<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                }<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                return true;<a name="line.870"></a>
+<span class="sourceLineNo">871</span>        }<a name="line.871"></a>
+<span class="sourceLineNo">872</span><a name="line.872"></a>
+<span class="sourceLineNo">873</span>        /**<a name="line.873"></a>
+<span class="sourceLineNo">874</span>         * Test if all items along given axis are true in the input dataset<a name="line.874"></a>
+<span class="sourceLineNo">875</span>         * @param a<a name="line.875"></a>
+<span class="sourceLineNo">876</span>         * @param axis axis to reduce <a name="line.876"></a>
+<span class="sourceLineNo">877</span>         * @return boolean dataset<a name="line.877"></a>
+<span class="sourceLineNo">878</span>         */<a name="line.878"></a>
+<span class="sourceLineNo">879</span>        public static BooleanDataset allTrue(IDataset a, int axis) {<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                axis = ShapeUtils.checkAxis(a.getRank(), axis);<a name="line.880"></a>
+<span class="sourceLineNo">881</span><a name="line.881"></a>
+<span class="sourceLineNo">882</span>                int rank = a.getRank();<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                int[] oshape = a.getShape();<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                int alen = oshape[axis];<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                oshape[axis] = 1;<a name="line.885"></a>
+<span class="sourceLineNo">886</span><a name="line.886"></a>
+<span class="sourceLineNo">887</span>                int[] nshape = ShapeUtils.squeezeShape(oshape, false);<a name="line.887"></a>
+<span class="sourceLineNo">888</span><a name="line.888"></a>
+<span class="sourceLineNo">889</span>                BooleanDataset result = DatasetFactory.zeros(BooleanDataset.class, nshape);<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>                IndexIterator qiter = result.getIterator(true);<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                int[] qpos = qiter.getPos();<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                int[] spos = oshape;<a name="line.893"></a>
+<span class="sourceLineNo">894</span><a name="line.894"></a>
+<span class="sourceLineNo">895</span>                while (qiter.hasNext()) {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                        int i = 0;<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                        for (; i &lt; axis; i++) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                spos[i] = qpos[i];<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                        }<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                        spos[i++] = 0;<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        for (; i &lt; rank; i++) {<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                                spos[i] = qpos[i-1];<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                        }<a name="line.903"></a>
+<span class="sourceLineNo">904</span><a name="line.904"></a>
+<span class="sourceLineNo">905</span>                        boolean br = true;<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        for (int j = 0; br &amp;&amp; j &lt; alen; j++) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                spos[axis] = j;<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                br &amp;= a.getBoolean(spos);<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                        }<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                        result.set(br, qpos);<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                }<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                return result;<a name="line.912"></a>
+<span class="sourceLineNo">913</span>        }<a name="line.913"></a>
+<span class="sourceLineNo">914</span><a name="line.914"></a>
+<span class="sourceLineNo">915</span>        /**<a name="line.915"></a>
+<span class="sourceLineNo">916</span>         * @param a<a name="line.916"></a>
+<span class="sourceLineNo">917</span>         * @return true if any element is true<a name="line.917"></a>
+<span class="sourceLineNo">918</span>         */<a name="line.918"></a>
+<span class="sourceLineNo">919</span>        public static boolean anyTrue(Object a) {<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                final IndexIterator it = da.getIterator();<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                final int as = da.getElementsPerItem();<a name="line.922"></a>
+<span class="sourceLineNo">923</span><a name="line.923"></a>
+<span class="sourceLineNo">924</span>                if (as == 1) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                        while (it.hasNext()) {<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                if (da.getElementBooleanAbs(it.index))<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                                        return true;<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                        }<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                } else {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                        while (it.hasNext()) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                for (int j = 0; j &lt; as; j++) {<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                        if (da.getElementBooleanAbs(it.index + j))<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                                return true;<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                        }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                }<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                return false;<a name="line.937"></a>
+<span class="sourceLineNo">938</span>        }<a name="line.938"></a>
+<span class="sourceLineNo">939</span><a name="line.939"></a>
+<span class="sourceLineNo">940</span>        /**<a name="line.940"></a>
+<span class="sourceLineNo">941</span>         * Test if any items along given axis are true in the input dataset<a name="line.941"></a>
+<span class="sourceLineNo">942</span>         * @param a<a name="line.942"></a>
+<span class="sourceLineNo">943</span>         * @param axis axis to reduce <a name="line.943"></a>
+<span class="sourceLineNo">944</span>         * @return boolean dataset<a name="line.944"></a>
+<span class="sourceLineNo">945</span>         */<a name="line.945"></a>
+<span class="sourceLineNo">946</span>        public static BooleanDataset anyTrue(IDataset a, int axis) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                axis = ShapeUtils.checkAxis(a.getRank(), axis);<a name="line.947"></a>
+<span class="sourceLineNo">948</span><a name="line.948"></a>
+<span class="sourceLineNo">949</span>                int rank = a.getRank();<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                int[] oshape = a.getShape();<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                int alen = oshape[axis];<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                oshape[axis] = 1;<a name="line.952"></a>
+<span class="sourceLineNo">953</span><a name="line.953"></a>
+<span class="sourceLineNo">954</span>                int[] nshape = ShapeUtils.squeezeShape(oshape, false);<a name="line.954"></a>
+<span class="sourceLineNo">955</span><a name="line.955"></a>
+<span class="sourceLineNo">956</span>                BooleanDataset result = DatasetFactory.zeros(BooleanDataset.class, nshape);<a name="line.956"></a>
+<span class="sourceLineNo">957</span><a name="line.957"></a>
+<span class="sourceLineNo">958</span>                IndexIterator qiter = result.getIterator(true);<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                int[] qpos = qiter.getPos();<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                int[] spos = oshape;<a name="line.960"></a>
+<span class="sourceLineNo">961</span><a name="line.961"></a>
+<span class="sourceLineNo">962</span>                while (qiter.hasNext()) {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                        int i = 0;<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                        for (; i &lt; axis; i++) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                spos[i] = qpos[i];<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                        }<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                        spos[i++] = 0;<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                        for (; i &lt; rank; i++) {<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                spos[i] = qpos[i-1];<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                        }<a name="line.970"></a>
+<span class="sourceLineNo">971</span><a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        boolean br = false;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                        for (int j = 0; !br &amp;&amp; j &lt; alen; j++) {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                                spos[axis] = j;<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                                br |= a.getBoolean(spos);<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        }<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                        result.set(br, qpos);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                }<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                return result;<a name="line.979"></a>
+<span class="sourceLineNo">980</span>        }<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>        /**<a name="line.982"></a>
+<span class="sourceLineNo">983</span>         * Negate item-wise<a name="line.983"></a>
+<span class="sourceLineNo">984</span>         * &lt;p&gt;<a name="line.984"></a>
+<span class="sourceLineNo">985</span>         * For multi-element items, negation is false if all elements in a pair of items<a name="line.985"></a>
+<span class="sourceLineNo">986</span>         * are true.<a name="line.986"></a>
+<span class="sourceLineNo">987</span>         * @param a<a name="line.987"></a>
+<span class="sourceLineNo">988</span>         * @return dataset where item is true when a is false<a name="line.988"></a>
+<span class="sourceLineNo">989</span>         */<a name="line.989"></a>
+<span class="sourceLineNo">990</span>        public static BooleanDataset logicalNot(Object a) {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                return logicalNot(a, null);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>        }<a name="line.992"></a>
+<span class="sourceLineNo">993</span><a name="line.993"></a>
+<span class="sourceLineNo">994</span>        /**<a name="line.994"></a>
+<span class="sourceLineNo">995</span>         * Negate item-wise<a name="line.995"></a>
+<span class="sourceLineNo">996</span>         * &lt;p&gt;<a name="line.996"></a>
+<span class="sourceLineNo">997</span>         * For multi-element items, negation is false if all elements in a pair of items<a name="line.997"></a>
+<span class="sourceLineNo">998</span>         * are true.<a name="line.998"></a>
+<span class="sourceLineNo">999</span>         * @param a<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>         * @return dataset where item is true when a is false<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>         */<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>        public static BooleanDataset logicalNot(Object a, BooleanDataset o) {<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span><a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span><a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span><a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                final int as = da.getElementsPerItem();<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span><a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                if (as == 1) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        while (it.hasNext()) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                r.setAbs(it.oIndex, !da.getElementBooleanAbs(it.aIndex));<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                        }<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                } else {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                        boolean br = true;<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                        while (it.hasNext()) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                for (int j = 0; j &lt; as; j++) {<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                        br &amp;= da.getElementBooleanAbs(it.aIndex + j);<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                r.setAbs(it.oIndex, !br);<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                        }<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                return r;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>        }<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span><a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        /**<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>         * Compare item-wise for whether a's item is true and b's true too.<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>         * &lt;p&gt;<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>         * For multi-element items, comparison is true if all elements in a pair of items<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>         * are true. Where the datasets have mismatched item sizes, the first element<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>         * of the dataset with smaller items is used for comparison.<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>         * @param a<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>         * @param b<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>         * @return dataset where item is true if {@code a &amp;&amp; b} is true<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>         */<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>        public static BooleanDataset logicalAnd(Object a, Object b) {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                return logicalAnd(a, b, null);<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>        }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span><a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>        /**<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>         * Compare item-wise for whether a's item is true and b's true too.<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>         * &lt;p&gt;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>         * For multi-element items, comparison is true if all elements in a pair of items<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>         * are true. Where the datasets have mismatched item sizes, the first element<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>         * of the dataset with smaller items is used for comparison.<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>         * @param a<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>         * @param b<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>         * @return dataset where item is true if {@code a &amp;&amp; b} is true<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>         */<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>        public static BooleanDataset logicalAnd(Object a, Object b, BooleanDataset o) {<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span><a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span><a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span><a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                it.setOutputDouble(true);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                final int as = da.getElementsPerItem();<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                final int bs = db.getElementsPerItem();<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span><a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                if (as &gt; bs) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                        while (it.hasNext()) {<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                final boolean bb = db.getElementBooleanAbs(it.bIndex);<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                                boolean rb = true;<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                                for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                                        rb &amp;= da.getElementBooleanAbs(it.aIndex + j) &amp;&amp; bb;<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                                }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                                r.setAbs(it.oIndex, rb);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                        }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                } else if (as &lt; bs) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                        while (it.hasNext()) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                final boolean ab = da.getElementBooleanAbs(it.aIndex);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                boolean rb = true;<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                        rb &amp;= ab &amp;&amp; db.getElementBooleanAbs(it.bIndex + j);<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                }<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                r.setAbs(it.oIndex, rb);<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                        }<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                } else {<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                        if (as == 1) {<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                while (it.hasNext()) {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                        r.setAbs(it.oIndex, da.getElementBooleanAbs(it.aIndex) &amp;&amp; db.getElementBooleanAbs(it.bIndex));<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                }<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                        } else {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                while (it.hasNext()) {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                        boolean rb = true;<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                                rb &amp;= da.getElementBooleanAbs(it.aIndex + j) &amp;&amp; db.getElementBooleanAbs(it.bIndex + j);<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                        }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                                }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                        }<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                }<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span><a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                return r;<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>        }<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span><a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>        /**<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>         * Compare item-wise for whether a's item is true or b's true.<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>         * &lt;p&gt;<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>         * For multi-element items, comparison is true if any elements in a pair of items<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>         * are true. Where the datasets have mismatched item sizes, the first element<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>         * of the dataset with smaller items is used for comparison.<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>         * @param a<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>         * @param b<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>         * @return dataset where item is true if {@code a || b} is true<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>         */<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        public static BooleanDataset logicalOr(Object a, Object b) {<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                return logicalOr(a, b, null);<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>        }<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span><a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>        /**<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>         * Compare item-wise for whether a's item is true or b's true.<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>         * &lt;p&gt;<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>         * For multi-element items, comparison is true if any elements in a pair of items<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>         * are true. Where the datasets have mismatched item sizes, the first element<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>         * of the dataset with smaller items is used for comparison.<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>         * @param a<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>         * @param b<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>         * @return dataset where item is true if {@code a || b} is true<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>         */<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>        public static BooleanDataset logicalOr(Object a, Object b, BooleanDataset o) {<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span><a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span><a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span><a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                it.setOutputDouble(true);<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                final int as = da.getElementsPerItem();<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                final int bs = db.getElementsPerItem();<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span><a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                if (as &gt; bs) {<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                        while (it.hasNext()) {<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                final boolean bb = db.getElementBooleanAbs(it.bIndex);<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                boolean rb = true;<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                for (int j = 0; j &lt; as; j++) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                        rb |= da.getElementBooleanAbs(it.aIndex + j) || bb;<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                }<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                r.setAbs(it.oIndex, rb);<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                        }<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                } else if (as &lt; bs) {<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                        while (it.hasNext()) {<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                                final boolean ab = da.getElementBooleanAbs(it.aIndex);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                boolean rb = true;<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                        rb |= ab || db.getElementBooleanAbs(it.bIndex + j);<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                }<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                r.setAbs(it.oIndex, rb);<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                } else {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                        if (as == 1) {<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                                while (it.hasNext()) {<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                                        r.setAbs(it.oIndex, da.getElementBooleanAbs(it.aIndex) || db.getElementBooleanAbs(it.bIndex));<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                                }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                        } else {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                while (it.hasNext()) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                        boolean rb = true;<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                                rb &amp;= da.getElementBooleanAbs(it.aIndex + j) || db.getElementBooleanAbs(it.bIndex + j);<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                                        }<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                }<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                        }<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                }<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span><a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                return r;<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>        }<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span><a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>        /**<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>         * Compare item-wise for whether a's item is true or b's true exclusively.<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>         * &lt;p&gt;<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>         * For multi-element items, comparison is true if one element in a pair of items<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>         * is true. Where the datasets have mismatched item sizes, the first element<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>         * of the dataset with smaller items is used for comparison.<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>         * @param a<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>         * @param b<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>         * @return dataset where item is true if {@code a ^ b} is true<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>         */<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>        public static BooleanDataset logicalXor(Object a, Object b) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                return logicalXor(a, b, null);<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>        }<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>        /**<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>         * Compare item-wise for whether a's item is true or b's true exclusively.<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>         * &lt;p&gt;<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>         * For multi-element items, comparison is true if one element in a pair of items<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>         * is true. Where the datasets have mismatched item sizes, the first element<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>         * of the dataset with smaller items is used for comparison.<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>         * @param a<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>         * @param b<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>         * @return dataset where item is true if a ^ b is true<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>         */<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>        public static BooleanDataset logicalXor(Object a, Object b, BooleanDataset o) {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span><a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span><a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span><a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                it.setOutputDouble(true);<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                final int as = da.getElementsPerItem();<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                final int bs = db.getElementsPerItem();<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span><a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                if (as &gt; bs) {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                        while (it.hasNext()) {<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                boolean rb = db.getElementBooleanAbs(it.bIndex);<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                for (int j = 0; j &lt; as; j++) {<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                        rb ^= da.getElementBooleanAbs(it.aIndex + j);<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                }<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                r.setAbs(it.oIndex, rb);<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                        }<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                } else if (as &lt; bs) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                        while (it.hasNext()) {<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                boolean rb = da.getElementBooleanAbs(it.aIndex);<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                        rb ^= db.getElementBooleanAbs(it.bIndex + j);<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                }<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                r.setAbs(it.oIndex, rb);<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                        }<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                } else {<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                        if (as == 1) {<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                while (it.hasNext()) {<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                        r.setAbs(it.oIndex, da.getElementBooleanAbs(it.aIndex) ^ db.getElementBooleanAbs(it.bIndex));<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                                }<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                        } else {<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                                while (it.hasNext()) {<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                                        boolean rb = true;<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                                rb &amp;= da.getElementBooleanAbs(it.aIndex + j) ^ db.getElementBooleanAbs(it.bIndex + j);<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                        }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                                }<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                        }<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                }<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span><a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                return r;<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>        }<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span><a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>        /**<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>         * Create a list of indices of positions where items are non-zero<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>         * @param a<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>         * @return list of positions as integer datasets<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>         */<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>        public static List&lt;IntegerDataset&gt; nonZero(Dataset a) {<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                final int rank = a.getRank();<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                final List&lt;List&lt;Integer&gt;&gt; indices = new ArrayList&lt;List&lt;Integer&gt;&gt;();<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                List&lt;IntegerDataset&gt; indexList = new ArrayList&lt;IntegerDataset&gt;();<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span><a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                if (rank == 0)<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                        return indexList;<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span><a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                for (int j = 0; j &lt; rank; j++) {<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                        indices.add(new ArrayList&lt;Integer&gt;());<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                }<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span><a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                final IndexIterator iter = a.getIterator(true);<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                final int[] pos = iter.getPos();<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                while (iter.hasNext()) {<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                        if (a.getElementBooleanAbs(iter.index)) {<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                                for (int j = 0; j &lt; rank; j++) {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                        indices.get(j).add(pos[j]);<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                }<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                        }<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                }<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span><a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                for (int j = 0; j &lt; rank; j++) {<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                        indexList.add((IntegerDataset) DatasetFactory.createFromList(IntegerDataset.class, indices.get(j)));<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                }<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                return indexList;<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>        }<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span><a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>        /**<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>         * Check item-wise for whether any a's elements are Not-a-Numbers<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>         * &lt;p&gt;<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>         * For multi-element items, check is true if any elements in an item is Not-a-Number.<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>         * @param a<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>         * @return dataset where item is true if any of its elements are NaNs<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>         */<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>        public static BooleanDataset isNaN(Object a) {<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                return isNaN(a, null);<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>        }<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span><a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>        /**<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>         * Check item-wise for whether any a's elements are Not-a-Numbers<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>         * &lt;p&gt;<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>         * For multi-element items, check is true if any elements in an item is Not-a-Number.<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>         * @param a<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>         * @return dataset where item is true if any of its elements are NaNs<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>         */<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>        public static BooleanDataset isNaN(Object a, BooleanDataset o) {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span><a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span><a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span><a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                if (!da.hasFloatingPointElements()) {<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                        if (r == o) {<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                r.fill(false);<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                        }<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                        return r;<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                }<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span><a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                it.setOutputDouble(true);<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                final int as = da.getElementsPerItem();<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span><a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                if (as == 1) {<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                        while (it.hasNext()) {<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                                r.setAbs(it.oIndex, Double.isNaN(it.aDouble));<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                        }<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                } else {<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                        if (da instanceof ComplexFloatDataset || da instanceof ComplexDoubleDataset) {<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                                while (it.hasNext()) {<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                                        r.setAbs(it.oIndex, Double.isNaN(it.aDouble) || Double.isNaN(da.getElementDoubleAbs(it.aIndex + 1)));<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                                }<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                        } else {<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                while (it.hasNext()) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                        boolean rb = false;<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                                        for (int j = 0; !rb &amp;&amp; j &lt; as; j++) {<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                                                rb &amp;= Double.isNaN(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                                        }<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                                }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                        }<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                return r;<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>        }<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span><a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>        /**<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>         * Check item-wise for whether any a's elements are infinite<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>         * &lt;p&gt;<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>         * For multi-element items, check is true if any elements in an item is infinite<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>         * @param a<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>         * @return dataset where item is true if any of its elements are infinite<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>         */<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>        public static BooleanDataset isInfinite(Object a) {<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>                return isInfinite(a, null);<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>        }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span><a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>        /**<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>         * Check item-wise for whether any a's elements are infinite<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>         * &lt;p&gt;<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>         * For multi-element items, check is true if any elements in an item is infinite<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>         * @param a<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>         * @return dataset where item is true if any of its elements are infinite<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>         */<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>        public static BooleanDataset isInfinite(Object a, BooleanDataset o) {<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span><a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span><a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span><a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                if (!da.hasFloatingPointElements()) {<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                        if (r == o) {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                                r.fill(false);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                        }<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                        return r;<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                }<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span><a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                it.setOutputDouble(true);<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                final int as = da.getElementsPerItem();<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span><a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                if (as == 1) {<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                        while (it.hasNext()) {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                                r.setAbs(it.oIndex, Double.isInfinite(it.aDouble));<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                        }<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                } else {<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                        if (da instanceof ComplexFloatDataset || da instanceof ComplexDoubleDataset) {<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                                while (it.hasNext()) {<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                        r.setAbs(it.oIndex, Double.isInfinite(it.aDouble) || Double.isInfinite(da.getElementDoubleAbs(it.aIndex + 1)));<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                                }<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                        } else {<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                while (it.hasNext()) {<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                        boolean rb = false;<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                        for (int j = 0; !rb &amp;&amp; j &lt; as; j++) {<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                                rb &amp;= Double.isInfinite(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                                        }<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                        }<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                }<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                return r;<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>        }<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span><a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>        /**<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>         * Check item-wise for whether any a's elements are positive infinite<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>         * &lt;p&gt;<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>         * For multi-element items, the check is true if any elements in an item is positive infinite<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>         * @param a<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>         * @return dataset where items are true if any of its elements are positive infinite<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>         */<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>        public static BooleanDataset isPositiveInfinite(Object a) {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                return isEqual(a, null, Double.POSITIVE_INFINITY);<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>        }<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span><a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>        /**<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>         * Check item-wise for whether any a's elements are positive infinite<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>         * &lt;p&gt;<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>         * For multi-element items, the check is true if any elements in an item is positive infinite<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>         * @param a<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>         * @return dataset where items are true if any of its elements are positive infinite<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>         */<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>        public static BooleanDataset isPositiveInfinite(Object a, BooleanDataset o) {<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                return isEqual(a, o, Double.POSITIVE_INFINITY);<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>        }<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span><a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>        /**<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>         * Check item-wise for whether any a's elements are negative infinite<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>         * &lt;p&gt;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>         * For multi-element items, the check is true if any elements in an item is negative infinite<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>         * @param a<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>         * @return dataset where items are true if any of its elements are negative infinite<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>         */<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>        public static BooleanDataset isNegativeInfinite(Object a) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                return isEqual(a, null, Double.NEGATIVE_INFINITY);<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>        }<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span><a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>        /**<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>         * Check item-wise for whether any a's elements are negative infinite<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>         * &lt;p&gt;<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>         * For multi-element items, the check is true if any elements in an item is negative infinite<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>         * @param a<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>         * @return dataset where items are true if any of its elements are negative infinite<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>         */<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>        public static BooleanDataset isNegativeInfinite(Object a, BooleanDataset o) {<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                return isEqual(a, o, Double.NEGATIVE_INFINITY);<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>        }<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span><a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>        /**<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>         * Check item-wise for whether any a's elements match given item<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>         * &lt;p&gt;<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>         * For multi-element items, the check is true if any elements in an item matches<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>         * @param a<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>         * @param match<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>         * @return dataset where items are true if any of its elements match<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>         */<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>        private static BooleanDataset isEqual(Object a, BooleanDataset o, final double match) {<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span><a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span><a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span><a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                if (!da.hasFloatingPointElements()) {<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                        if (r == o) {<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                                r.fill(false);<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                        }<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                        return r;<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                }<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span><a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                it.setOutputDouble(true);<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                final int as = da.getElementsPerItem();<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span><a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                if (as == 1) {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                        while (it.hasNext()) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                r.setAbs(it.oIndex, it.aDouble == match);<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                        }<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                } else {<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                        if (da instanceof ComplexFloatDataset || da instanceof ComplexDoubleDataset) {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                while (it.hasNext()) {<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                        final double rv = it.aDouble;<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                        final double iv = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                        r.setAbs(it.oIndex, (rv == match) || (iv == match));<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                                }<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                        } else {<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                                while (it.hasNext()) {<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                                        boolean rb = false;<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>                                        for (int j = 0; !rb &amp;&amp; j &lt; as; j++) {<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                                                rb &amp;= da.getElementDoubleAbs(it.aIndex + j) == match;<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                        }<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                }<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                        }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                }<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                return r;<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>        }<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span><a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>        /**<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>         * Check item-wise for whether any a's elements are finite (or not infinite and not Not-a-Number)<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>         * &lt;p&gt;<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>         * For multi-element items, check is true if any elements in an item is finite<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>         * @param a<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>         * @return dataset where item is true if any of its elements are finite<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>         */<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>        public static BooleanDataset isFinite(Object a) {<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                return isFinite(a, null);<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>        }<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span><a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>        /**<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>         * Check item-wise for whether any a's elements are finite (or not infinite and not Not-a-Number)<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>         * &lt;p&gt;<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>         * For multi-element items, check is true if any elements in an item is finite<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>         * @param a<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>         * @return dataset where item is true if any of its elements are finite<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>         */<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>        public static BooleanDataset isFinite(Object a, BooleanDataset o) {<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span><a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span><a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span><a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                if (!da.hasFloatingPointElements()) {<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                        r.fill(true);<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                        return r;<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                }<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span><a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                it.setOutputDouble(true);<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                final int as = da.getElementsPerItem();<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span><a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                if (as == 1) {<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                        while (it.hasNext()) {<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                final double rv = it.aDouble;<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                r.setAbs(it.oIndex, !(Double.isInfinite(rv) || Double.isNaN(rv)));<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                        }<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                } else {<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                        if (da instanceof ComplexFloatDataset || da instanceof ComplexDoubleDataset) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                while (it.hasNext()) {<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                        final double rv = it.aDouble;<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                        final double iv = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                        r.setAbs(it.oIndex, !(Double.isInfinite(rv) || Double.isNaN(rv) || Double.isInfinite(iv) || Double.isNaN(iv)));<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                }<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                        } else {<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                while (it.hasNext()) {<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                        boolean rb = false;<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                        for (int j = 0; !rb &amp;&amp; j &lt; as; j++) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                final double rv = it.aDouble;<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                                rb &amp;= !(Double.isInfinite(rv) || Double.isNaN(rv));<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                        }<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                                }<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        }<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                }<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                return r;<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>        }<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span><a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>        /**<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>         * Enumeration of monotonicity. NaNs are ignored or considered not equal<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>         */<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>        public static enum Monotonicity {<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                /**<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                 * No order: {@code x_0 != x_1 != x_2 ...}<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                 */<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                NOT_ORDERED,<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                /**<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                 * All equal: {@code x_0 == x_1 == x_2 ...}<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                 */<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                ALL_EQUAL,<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                /**<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                 * Strictly decreasing {@code x_0 &gt; x_1 &gt; x_2 ...}<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                 */<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                STRICTLY_DECREASING,<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                /**<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                 * Non-increasing or weakly decreasing {@code x_0 &gt;= x_1 &gt;= x_2 ...}<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                 */<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                NONINCREASING,<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                /**<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                 * Non-decreasing or weakly increasing {@code x_0 &lt;= x_1 &lt;= x_2 ...}<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                 */<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                NONDECREASING,<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                /**<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                 * Strictly increasing {@code x_0 &lt; x_1 &lt; x_2 ...}<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                 */<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                STRICTLY_INCREASING,<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>        }<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span><a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>        /**<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>         * @param a<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>         * @return true if all elements are in a monotonic order<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>         * @see #findMonotonicity(Object)<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>         */<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>        public static boolean isMonotonic(Object a) {<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                return findMonotonicity(a) != Monotonicity.NOT_ORDERED;<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>        }<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span><a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>        /**<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>         * @param a<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>         * @param monotonicity<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>         * @return true if all elements are in given monotonic ordering<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>         */<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>        public static boolean isMonotonic(Object a, Monotonicity monotonicity) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                if (da.getRank() &gt; 1) {<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                        throw new IllegalArgumentException("Only 0 or 1D datasets are allowed");<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                }<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span><a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                if (da.getElementsPerItem() &gt; 1) {<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                        throw new IllegalArgumentException("Cannot compare compound datsets");<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                }<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span><a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                final IndexIterator it = da.getIterator();<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                double previous = Double.NaN;<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                while (Double.isNaN(previous) &amp;&amp; it.hasNext()) { // look for first non-NaN<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                        previous = da.getElementDoubleAbs(it.index);<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span><a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                Boolean increasing = null;<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                boolean equality = false;<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                while (it.hasNext()) { // look for first change<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                        double next = da.getElementDoubleAbs(it.index);<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                        if (!Double.isNaN(next)) {<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>                                if (previous != next) {<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                                        increasing = previous &lt; next;<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                        previous = next;<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                        break;<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                } else if (!equality) {<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                                        equality = true;<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                                        if (monotonicity == Monotonicity.STRICTLY_DECREASING || monotonicity == Monotonicity.STRICTLY_DECREASING)<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                                                return false;<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                }<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                        }<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                }<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span><a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                if (increasing == null) {<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                        if (equality)<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                                return monotonicity == Monotonicity.ALL_EQUAL || monotonicity == Monotonicity.NONDECREASING || monotonicity == Monotonicity.NONINCREASING;<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                        return Double.isNaN(previous) ? monotonicity == Monotonicity.NOT_ORDERED : true;<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                }<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span><a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                if (increasing) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                        if (monotonicity == Monotonicity.ALL_EQUAL || monotonicity == Monotonicity.NONINCREASING || monotonicity == Monotonicity.STRICTLY_DECREASING)<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                return false;<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span><a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                        while (it.hasNext()) {<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                double next = da.getElementDoubleAbs(it.index);<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                                if (!Double.isNaN(next)) {<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                                        if (previous &gt; next) {<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                                                return monotonicity == Monotonicity.NOT_ORDERED;<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                                        } else if (previous &lt; next) {<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>                                                previous = next;<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                                        } else if (!equality) {<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                                equality = true;<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                                if (monotonicity == Monotonicity.STRICTLY_INCREASING)<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                                        return false;<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                                        }<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                }<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                        }<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span><a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                        return monotonicity != Monotonicity.NOT_ORDERED;<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                }<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span><a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                if (monotonicity == Monotonicity.ALL_EQUAL || monotonicity == Monotonicity.NONDECREASING || monotonicity == Monotonicity.STRICTLY_INCREASING)<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                        return false;<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span><a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                while (it.hasNext()) {<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                        double next = da.getElementDoubleAbs(it.index);<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                        if (!Double.isNaN(next)) {<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                if (previous &lt; next) {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                        return monotonicity == Monotonicity.NOT_ORDERED;<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                } else if (previous &gt; next) {<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                        previous = next;<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                } else if (!equality) {<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                        equality = true;<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                                        if (monotonicity == Monotonicity.STRICTLY_DECREASING)<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                                                return false;<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                                }<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                        }<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>                }<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span><a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                return monotonicity != Monotonicity.NOT_ORDERED;<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>        }<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span><a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>        /**<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>         * @param a<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>         * @return true if all elements are in a strictly monotonic order<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>         * @see #findMonotonicity(Object)<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>         */<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>        public static boolean isStrictlyMonotonic(Object a) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                Monotonicity mono = findMonotonicity(a);<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                return mono == Monotonicity.STRICTLY_DECREASING || mono == Monotonicity.STRICTLY_INCREASING;<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>        }<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span><a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>        /**<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>         * Find monotonicity. NaNs are ignored or considered not equal<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>         * @param a<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>         * @return monotonicity<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>         */<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>        public static Monotonicity findMonotonicity(Object a) {<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                if (da.getRank() &gt; 1) {<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                        throw new IllegalArgumentException("Only 0 or 1D datasets are allowed");<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span><a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                if (da.getElementsPerItem() &gt; 1) {<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                        throw new IllegalArgumentException("Cannot compare compound datsets");<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                }<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span><a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                final IndexIterator it = da.getIterator();<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                double previous = Double.NaN;<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                while (Double.isNaN(previous) &amp;&amp; it.hasNext()) { // look for first non-NaN<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                        previous = da.getElementDoubleAbs(it.index);<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                }<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span><a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                Boolean increasing = null;<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                boolean equality = false;<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                while (it.hasNext()) { // look for first change<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                        double next = da.getElementDoubleAbs(it.index);<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                        if (!Double.isNaN(next)) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                if (previous != next) {<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                        increasing = previous &lt; next;<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                        previous = next;<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                        break;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                } else if (!equality) {<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        equality = true;<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                }<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                        }<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                }<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span><a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                if (increasing == null) {<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                        return Double.isNaN(previous) ? Monotonicity.NOT_ORDERED : Monotonicity.ALL_EQUAL;<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span><a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                if (increasing) {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                        while (it.hasNext()) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                double next = da.getElementDoubleAbs(it.index);<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                if (!Double.isNaN(next)) {<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                        if (previous &gt; next) {<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                return Monotonicity.NOT_ORDERED;<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                        } else if (previous &lt; next) {<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                                previous = next;<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                        } else if (!equality) {<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                                equality = true;<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                                        }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                                }<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                        }<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                        return equality ? Monotonicity.NONDECREASING : Monotonicity.STRICTLY_INCREASING;<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>                }<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span><a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                while (it.hasNext()) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                        double next = da.getElementDoubleAbs(it.index);<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                        if (!Double.isNaN(next)) {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                if (previous &lt; next) {<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                        return Monotonicity.NOT_ORDERED;<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                } else if (previous &gt; next) {<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                        previous = next;<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                } else if (!equality) {<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                        equality = true;<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                                }<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                        }<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                }<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                return equality ? Monotonicity.NONINCREASING : Monotonicity.STRICTLY_DECREASING;<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>        }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>}<a name="line.1767"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html
new file mode 100644
index 0000000..d0915bd
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html
@@ -0,0 +1,1133 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.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>                try {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                        odata = data = createArray(size);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                } catch (Throwable t) {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                        throw new IllegalArgumentException(t);<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>                IndexIterator iter = dataset.getIterator();<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                if (dataset.isComplex()) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                        for (int i = 0; iter.hasNext(); i += isize) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                                data[i] = dataset.getElementDoubleAbs(iter.index); // ADD_CAST<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                                data[i+1] = dataset.getElementDoubleAbs(iter.index+1); // ADD_CAST<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; iter.hasNext(); i += isize) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                                data[i] = dataset.getElementDoubleAbs(iter.index); // ADD_CAST<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><a name="line.151"></a>
+<span class="sourceLineNo">152</span>        @Override<a name="line.152"></a>
+<span class="sourceLineNo">153</span>        public ComplexDoubleDataset clone() {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                return new ComplexDoubleDataset(this);<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>         * Create a dataset from an object which could be a Java list, array (of arrays...)<a name="line.158"></a>
+<span class="sourceLineNo">159</span>         * or Number. Ragged sequences or arrays are padded with zeros.<a name="line.159"></a>
+<span class="sourceLineNo">160</span>         * <a name="line.160"></a>
+<span class="sourceLineNo">161</span>         * @param obj<a name="line.161"></a>
+<span class="sourceLineNo">162</span>         * @return dataset with contents given by input<a name="line.162"></a>
+<span class="sourceLineNo">163</span>         */<a name="line.163"></a>
+<span class="sourceLineNo">164</span>        static ComplexDoubleDataset createFromObject(final Object obj) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                ComplexDoubleDataset result = new ComplexDoubleDataset();<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>                result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                result.size = ShapeUtils.calcSize(result.shape);<a name="line.168"></a>
+<span class="sourceLineNo">169</span><a name="line.169"></a>
+<span class="sourceLineNo">170</span>                try {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        result.odata = result.data = result.createArray(result.size);<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                } catch (Throwable t) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(result.shape), t);<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                        throw new IllegalArgumentException(t);<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>                int[] pos = new int[result.shape.length];<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                result.fillData(obj, 0, pos);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                return result;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>        }<a name="line.180"></a>
+<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">182</span>        /**<a name="line.182"></a>
+<span class="sourceLineNo">183</span>         * @param stop<a name="line.183"></a>
+<span class="sourceLineNo">184</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.184"></a>
+<span class="sourceLineNo">185</span>         */<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        static ComplexDoubleDataset createRange(final double stop) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                return createRange(0, stop, 1);<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>         * @param start<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         * @param stop<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         * @param step<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.194"></a>
+<span class="sourceLineNo">195</span>         */<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        static ComplexDoubleDataset createRange(final double start, final double stop, final double step) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                int size = calcSteps(start, stop, step);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                ComplexDoubleDataset result = new ComplexDoubleDataset(size);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                for (int i = 0; i &lt; size; i ++) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        result.data[i*ISIZE] = (start + i*step); // ADD_CAST<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                }<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                return result;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        }<a name="line.203"></a>
+<span class="sourceLineNo">204</span><a name="line.204"></a>
+<span class="sourceLineNo">205</span>        /**<a name="line.205"></a>
+<span class="sourceLineNo">206</span>         * @param shape<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * @return a dataset filled with ones<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         */<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        static ComplexDoubleDataset ones(final int... shape) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                return new ComplexDoubleDataset(shape).fill(1);<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 ComplexDoubleDataset fill(final Object obj) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                setDirty();<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                double vr = DTypeUtils.toReal(obj); // PRIM_TYPE // ADD_CAST<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                double vi = DTypeUtils.toImag(obj); // PRIM_TYPE // ADD_CAST<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                IndexIterator iter = getIterator();<a name="line.218"></a>
+<span class="sourceLineNo">219</span><a name="line.219"></a>
+<span class="sourceLineNo">220</span>                while (iter.hasNext()) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                        data[iter.index] = vr;<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        data[iter.index+1] = vi;<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>                return this;<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        }<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>        @Override<a name="line.228"></a>
+<span class="sourceLineNo">229</span>        public ComplexDoubleDataset getView(boolean deepCopyMetadata) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                ComplexDoubleDataset view = new ComplexDoubleDataset();<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                view.data = data;<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                return view;<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        }<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>        /**<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         * Get complex value at absolute index in the internal array.<a name="line.237"></a>
+<span class="sourceLineNo">238</span>         * <a name="line.238"></a>
+<span class="sourceLineNo">239</span>         * This is an internal method with no checks so can be dangerous. Use with care or ideally with an iterator.<a name="line.239"></a>
+<span class="sourceLineNo">240</span>         *<a name="line.240"></a>
+<span class="sourceLineNo">241</span>         * @param index absolute index<a name="line.241"></a>
+<span class="sourceLineNo">242</span>         * @return value<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         */<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        public Complex getComplexAbs(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 Object getObjectAbs(final int index) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                return new Complex(data[index], data[index+1]);<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 String getStringAbs(final int index) {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                double di = data[index + 1]; // PRIM_TYPE<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                if (stringFormat == null) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                        return di &gt;= 0 ? String.format("%.8g + %.8gj", data[index], di) : // FORMAT_STRING<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                                String.format("%.8g - %.8gj", data[index], -di); // FORMAT_STRING<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                }<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                StringBuilder s = new StringBuilder();<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                s.append(stringFormat.format(data[index]));<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                if (di &gt;= 0) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        s.append(" + ");<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                        s.append(stringFormat.format(di));<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                } else {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                        s.append(" - ");<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                        s.append(stringFormat.format(-di));<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                }<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                s.append('j');<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                return s.toString();<a name="line.270"></a>
+<span class="sourceLineNo">271</span>        }<a name="line.271"></a>
+<span class="sourceLineNo">272</span><a name="line.272"></a>
+<span class="sourceLineNo">273</span>        /**<a name="line.273"></a>
+<span class="sourceLineNo">274</span>         * Set values at absolute index in the internal array.<a name="line.274"></a>
+<span class="sourceLineNo">275</span>         * <a name="line.275"></a>
+<span class="sourceLineNo">276</span>         * This is an internal method with no checks so can be dangerous. Use with care or ideally with an iterator.<a name="line.276"></a>
+<span class="sourceLineNo">277</span>         * @param index absolute index<a name="line.277"></a>
+<span class="sourceLineNo">278</span>         * @param val new values<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>        public void setAbs(final int index, final Complex val) {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                setAbs(index, (double) val.getReal(), (double) val.getImaginary()); // PRIM_TYPE<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>        @SuppressWarnings("cast")<a name="line.285"></a>
+<span class="sourceLineNo">286</span>        @Override<a name="line.286"></a>
+<span class="sourceLineNo">287</span>        public void setObjectAbs(final int index, final Object obj) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                setAbs(index, (double) DTypeUtils.toReal(obj), (double) DTypeUtils.toImag(obj)); // PRIM_TYPE<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>         * Set item at index to complex value given by real and imaginary parts <a name="line.292"></a>
+<span class="sourceLineNo">293</span>         * @param index absolute index<a name="line.293"></a>
+<span class="sourceLineNo">294</span>         * @param real<a name="line.294"></a>
+<span class="sourceLineNo">295</span>         * @param imag<a name="line.295"></a>
+<span class="sourceLineNo">296</span>         */<a name="line.296"></a>
+<span class="sourceLineNo">297</span>        public void setAbs(final int index, final double real, final double imag) { // PRIM_TYPE<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                setDirty();<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                data[index] = real;<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                data[index+1] = imag;<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>        /**<a name="line.303"></a>
+<span class="sourceLineNo">304</span>         * @return item in first position<a name="line.304"></a>
+<span class="sourceLineNo">305</span>         * @since 2.0<a name="line.305"></a>
+<span class="sourceLineNo">306</span>         */<a name="line.306"></a>
+<span class="sourceLineNo">307</span>        public Complex get() {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                int n = getFirst1DIndex();<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                Complex z = new Complex(data[n], data[n+1]);<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                return z;<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 i<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 Complex get(final int i) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                int n = get1DIndex(i);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                Complex z = new Complex(data[n], data[n+1]);<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                return z;<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        }<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>        /**<a name="line.323"></a>
+<span class="sourceLineNo">324</span>         * @param i<a name="line.324"></a>
+<span class="sourceLineNo">325</span>         * @param j<a name="line.325"></a>
+<span class="sourceLineNo">326</span>         * @return item in given position<a name="line.326"></a>
+<span class="sourceLineNo">327</span>         */<a name="line.327"></a>
+<span class="sourceLineNo">328</span>        public Complex get(final int i, final int j) {<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                int n = get1DIndex(i, j);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                Complex z = new Complex(data[n], data[n+1]);<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                return z;<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>         * @param pos<a name="line.335"></a>
+<span class="sourceLineNo">336</span>         * @return item in given position<a name="line.336"></a>
+<span class="sourceLineNo">337</span>         */<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        public Complex get(final int... pos) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                int n = get1DIndex(pos);<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                Complex z = new Complex(data[n], data[n+1]);<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                return z;<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() {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                return get();<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) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                return get(i);<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 i, final int j) {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                return get(i, j);<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        }<a name="line.357"></a>
+<span class="sourceLineNo">358</span><a name="line.358"></a>
+<span class="sourceLineNo">359</span>        @Override<a name="line.359"></a>
+<span class="sourceLineNo">360</span>        public Object getObject(final int... pos) {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                return getComplex(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>         * @return item in first 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>        @SuppressWarnings("cast")<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        public double getReal() { // PRIM_TYPE<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                return (double) getFirstValue(); // 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>         * @return item in given position<a name="line.375"></a>
+<span class="sourceLineNo">376</span>         */<a name="line.376"></a>
+<span class="sourceLineNo">377</span>        @SuppressWarnings("cast")<a name="line.377"></a>
+<span class="sourceLineNo">378</span>        public double getReal(final int i) { // PRIM_TYPE<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                return (double) getFirstValue(i); // 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 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>        @SuppressWarnings("cast")<a name="line.387"></a>
+<span class="sourceLineNo">388</span>        public double getReal(final int i, final int j) { // PRIM_TYPE<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                return (double) getFirstValue(i, j); // PRIM_TYPE<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>        /**<a name="line.392"></a>
+<span class="sourceLineNo">393</span>         * @param pos<a name="line.393"></a>
+<span class="sourceLineNo">394</span>         * @return item in given position<a name="line.394"></a>
+<span class="sourceLineNo">395</span>         */<a name="line.395"></a>
+<span class="sourceLineNo">396</span>        @SuppressWarnings("cast")<a name="line.396"></a>
+<span class="sourceLineNo">397</span>        public double getReal(final int... pos) { // PRIM_TYPE<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                return (double) getFirstValue(pos); // PRIM_TYPE<a name="line.398"></a>
+<span class="sourceLineNo">399</span>        }<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span>        /**<a name="line.401"></a>
+<span class="sourceLineNo">402</span>         * @return item in first position<a name="line.402"></a>
+<span class="sourceLineNo">403</span>         * @since 2.0<a name="line.403"></a>
+<span class="sourceLineNo">404</span>         */<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        public double getImag() { // PRIM_TYPE<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                return data[getFirst1DIndex() + 1];<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>        /**<a name="line.409"></a>
+<span class="sourceLineNo">410</span>         * @param i<a name="line.410"></a>
+<span class="sourceLineNo">411</span>         * @return item in given position<a name="line.411"></a>
+<span class="sourceLineNo">412</span>         */<a name="line.412"></a>
+<span class="sourceLineNo">413</span>        public double getImag(final int i) { // PRIM_TYPE<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                return data[get1DIndex(i) + 1];<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>         * @param i<a name="line.418"></a>
+<span class="sourceLineNo">419</span>         * @param j<a name="line.419"></a>
+<span class="sourceLineNo">420</span>         * @return item in given position<a name="line.420"></a>
+<span class="sourceLineNo">421</span>         */<a name="line.421"></a>
+<span class="sourceLineNo">422</span>        public double getImag(final int i, final int j) { // PRIM_TYPE<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                return data[get1DIndex(i, j) + 1];<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>         * @param pos<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 getImag(final int... pos) { // PRIM_TYPE<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                return data[get1DIndex(pos) + 1];<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>        /**<a name="line.434"></a>
+<span class="sourceLineNo">435</span>         * @return item in first position<a name="line.435"></a>
+<span class="sourceLineNo">436</span>         * @since 2.0<a name="line.436"></a>
+<span class="sourceLineNo">437</span>         */<a name="line.437"></a>
+<span class="sourceLineNo">438</span>        public Complex getComplex() {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                return get();<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>         * @param i<a name="line.443"></a>
+<span class="sourceLineNo">444</span>         * @return item in given position<a name="line.444"></a>
+<span class="sourceLineNo">445</span>         */<a name="line.445"></a>
+<span class="sourceLineNo">446</span>        public Complex getComplex(final int i) {<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                return get(i);<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>        /**<a name="line.450"></a>
+<span class="sourceLineNo">451</span>         * @param i<a name="line.451"></a>
+<span class="sourceLineNo">452</span>         * @param j<a name="line.452"></a>
+<span class="sourceLineNo">453</span>         * @return item in given position<a name="line.453"></a>
+<span class="sourceLineNo">454</span>         */<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        public Complex getComplex(final int i, final int j) {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                return get(i, j);<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>        /**<a name="line.459"></a>
+<span class="sourceLineNo">460</span>         * @param pos<a name="line.460"></a>
+<span class="sourceLineNo">461</span>         * @return item in given position<a name="line.461"></a>
+<span class="sourceLineNo">462</span>         */<a name="line.462"></a>
+<span class="sourceLineNo">463</span>        public Complex getComplex(final int... pos) {<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                return get(pos);<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        }<a name="line.465"></a>
+<span class="sourceLineNo">466</span><a name="line.466"></a>
+<span class="sourceLineNo">467</span>        @SuppressWarnings("cast")<a name="line.467"></a>
+<span class="sourceLineNo">468</span>        @Override<a name="line.468"></a>
+<span class="sourceLineNo">469</span>        public void set(final Object obj, final int i) {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                setItem(new double[] {(double) DTypeUtils.toReal(obj), (double) DTypeUtils.toImag(obj)}, i); // PRIM_TYPE<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>        @SuppressWarnings("cast")<a name="line.473"></a>
+<span class="sourceLineNo">474</span>        @Override<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        public void set(final Object obj, final int i, final int j) {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                setItem(new double[] {(double) DTypeUtils.toReal(obj), (double) DTypeUtils.toImag(obj)}, i, j); // PRIM_TYPE<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>        @SuppressWarnings("cast")<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        @Override<a name="line.480"></a>
+<span class="sourceLineNo">481</span>        public void set(final Object obj, int... pos) {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                        pos = new int[shape.length];<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>                setItem(new double[] {(double) DTypeUtils.toReal(obj), (double) DTypeUtils.toImag(obj)}, pos); // PRIM_TYPE<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>        /**<a name="line.489"></a>
+<span class="sourceLineNo">490</span>         * Set real and imaginary values at given position<a name="line.490"></a>
+<span class="sourceLineNo">491</span>         * @param dr<a name="line.491"></a>
+<span class="sourceLineNo">492</span>         * @param di<a name="line.492"></a>
+<span class="sourceLineNo">493</span>         * @param i<a name="line.493"></a>
+<span class="sourceLineNo">494</span>         */<a name="line.494"></a>
+<span class="sourceLineNo">495</span>        public void set(final double dr, final double di, final int i) { // PRIM_TYPE<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                setItem(new double[] {dr, di}, i); // PRIM_TYPE<a name="line.496"></a>
+<span class="sourceLineNo">497</span>        }<a name="line.497"></a>
+<span class="sourceLineNo">498</span><a name="line.498"></a>
+<span class="sourceLineNo">499</span>        /**<a name="line.499"></a>
+<span class="sourceLineNo">500</span>         * Set real and imaginary values at given position<a name="line.500"></a>
+<span class="sourceLineNo">501</span>         * @param dr<a name="line.501"></a>
+<span class="sourceLineNo">502</span>         * @param di<a name="line.502"></a>
+<span class="sourceLineNo">503</span>         * @param i<a name="line.503"></a>
+<span class="sourceLineNo">504</span>         * @param j<a name="line.504"></a>
+<span class="sourceLineNo">505</span>         */<a name="line.505"></a>
+<span class="sourceLineNo">506</span>        public void set(final double dr, final double di, final int i, final int j) { // PRIM_TYPE<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                setItem(new double[] {dr, di}, i, j); // PRIM_TYPE<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>        /**<a name="line.510"></a>
+<span class="sourceLineNo">511</span>         * Set real and imaginary values at given position<a name="line.511"></a>
+<span class="sourceLineNo">512</span>         * @param dr<a name="line.512"></a>
+<span class="sourceLineNo">513</span>         * @param di<a name="line.513"></a>
+<span class="sourceLineNo">514</span>         * @param pos<a name="line.514"></a>
+<span class="sourceLineNo">515</span>         * @since 2.0<a name="line.515"></a>
+<span class="sourceLineNo">516</span>         */<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        public void set(final double dr, final double di, final int... pos) { // PRIM_TYPE<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                setItem(new double[] {dr, di}, pos); // PRIM_TYPE<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>         * @since 2.0<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 DoubleDataset getRealPart() { // CLASS_TYPE<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                return getElements(0);<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>         * @since 2.0<a name="line.530"></a>
+<span class="sourceLineNo">531</span>         */<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        @Override<a name="line.532"></a>
+<span class="sourceLineNo">533</span>        public DoubleDataset getRealView() { // CLASS_TYPE<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                return getElementsView(0);<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>        /**<a name="line.537"></a>
+<span class="sourceLineNo">538</span>         * @return imaginary part of dataset as new dataset<a name="line.538"></a>
+<span class="sourceLineNo">539</span>         * @since 2.0<a name="line.539"></a>
+<span class="sourceLineNo">540</span>         */<a name="line.540"></a>
+<span class="sourceLineNo">541</span>        public DoubleDataset getImaginaryPart() { // CLASS_TYPE<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                return getElements(1);<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>         * @return view of imaginary values<a name="line.546"></a>
+<span class="sourceLineNo">547</span>         */<a name="line.547"></a>
+<span class="sourceLineNo">548</span>        public DoubleDataset getImaginaryView() { // CLASS_TYPE<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                return getElementsView(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>
+<span class="sourceLineNo">552</span>        @Override<a name="line.552"></a>
+<span class="sourceLineNo">553</span>        public Number max(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 Number min(boolean... switches) {<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                throw new UnsupportedOperationException("Cannot compare complex numbers");<a name="line.559"></a>
+<span class="sourceLineNo">560</span>        }<a name="line.560"></a>
+<span class="sourceLineNo">561</span><a name="line.561"></a>
+<span class="sourceLineNo">562</span>        @Override<a name="line.562"></a>
+<span class="sourceLineNo">563</span>        public Object sum(boolean... switches) { // FIXME<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                double[] sum = (double[]) super.sum(switches);<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                return new Complex(sum[0], sum[1]);<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 Object mean(boolean... switches) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                double[] mean = (double[]) super.mean(switches);<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                return new Complex(mean[0], mean[1]);<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[] maxPos(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 int[] minPos(boolean... switches) {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                throw new UnsupportedOperationException("Cannot compare complex numbers");<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 ComplexDoubleDataset getSlice(final SliceIterator siter) {<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                ComplexDoubleDataset result = new ComplexDoubleDataset(siter.getShape());<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                double[] rdata = result.data; // PRIM_TYPE<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                IndexIterator riter = result.getIterator();<a name="line.588"></a>
+<span class="sourceLineNo">589</span><a name="line.589"></a>
+<span class="sourceLineNo">590</span>                while (siter.hasNext() &amp;&amp; riter.hasNext()) {<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                        rdata[riter.index] = data[siter.index];<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        rdata[riter.index+1] = data[siter.index+1];<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>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                return result;<a name="line.596"></a>
+<span class="sourceLineNo">597</span>        }<a name="line.597"></a>
+<span class="sourceLineNo">598</span><a name="line.598"></a>
+<span class="sourceLineNo">599</span>        @Override<a name="line.599"></a>
+<span class="sourceLineNo">600</span>        ComplexDoubleDataset setSlicedView(Dataset view, Dataset d) {<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                setDirty();<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.602"></a>
+<span class="sourceLineNo">603</span><a name="line.603"></a>
+<span class="sourceLineNo">604</span>                if (d instanceof ComplexFloatDataset || d instanceof ComplexDoubleDataset) {<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] = d.getElementDoubleAbs(it.bIndex + 1); // GET_ELEMENT_WITH_CAST<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                        }<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                } else {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        while (it.hasNext()) {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                                data[it.aIndex] = it.bDouble; // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                                data[it.aIndex + 1] = 0;<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>                return this;<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 ComplexDoubleDataset setSlice(final Object o, final IndexIterator siter) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                setDirty();<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                if (o instanceof ComplexFloatDataset) {<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                        ComplexFloatDataset zds = (ComplexFloatDataset) o;<a name="line.622"></a>
+<span class="sourceLineNo">623</span><a name="line.623"></a>
+<span class="sourceLineNo">624</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), zds.shape)) {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                                throw new IllegalArgumentException(String.format(<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(zds.shape),<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                                                Arrays.toString(siter.getShape())));<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>                        IndexIterator oiter = zds.getIterator();<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                        float[] odata = zds.data;<a name="line.631"></a>
+<span class="sourceLineNo">632</span><a name="line.632"></a>
+<span class="sourceLineNo">633</span>                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                                data[siter.index] = odata[oiter.index];<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                                data[siter.index+1] = odata[oiter.index+1];<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                        }<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                } else if (o instanceof ComplexDoubleDataset) { // IGNORE_CLASS<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                        ComplexDoubleDataset zds = (ComplexDoubleDataset) o; // IGNORE_CLASS<a name="line.638"></a>
+<span class="sourceLineNo">639</span><a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), zds.shape)) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                                throw new IllegalArgumentException(String.format(<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(zds.shape),<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                                                Arrays.toString(siter.getShape())));<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>                        IndexIterator oiter = zds.getIterator();<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                        double[] odata = zds.data;<a name="line.647"></a>
+<span class="sourceLineNo">648</span><a name="line.648"></a>
+<span class="sourceLineNo">649</span>                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                                data[siter.index] = odata[oiter.index]; // PRIM_TYPE // ADD_CAST<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                                data[siter.index+1] = odata[oiter.index+1]; // PRIM_TYPE // ADD_CAST<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                        }<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                } else if (o instanceof IDataset) {<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                        super.setSlice(o, siter);<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                } else {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                        try {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                                double vr = DTypeUtils.toReal(o); // PRIM_TYPE // ADD_CAST<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                                double vi = DTypeUtils.toImag(o); // PRIM_TYPE // ADD_CAST<a name="line.658"></a>
+<span class="sourceLineNo">659</span><a name="line.659"></a>
+<span class="sourceLineNo">660</span>                                while (siter.hasNext()) {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                                        data[siter.index]     = vr;<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                        data[siter.index + 1] = vi;<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                                }<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                        } catch (IllegalArgumentException e) {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<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>                return this;<a name="line.668"></a>
+<span class="sourceLineNo">669</span>        }<a name="line.669"></a>
+<span class="sourceLineNo">670</span><a name="line.670"></a>
+<span class="sourceLineNo">671</span>        @Override<a name="line.671"></a>
+<span class="sourceLineNo">672</span>        public ComplexDoubleDataset iadd(final Object b) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                setDirty();<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                if (bds.getSize() == 1) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                        final IndexIterator it = getIterator();<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                        final int bOffset = bds.getOffset();<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                        if (useLong) { // note no complex longs<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                                final long lb = bds.getElementLongAbs(bOffset);<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] += lb;<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 db = bds.getElementDoubleAbs(bOffset);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                                if (!bds.isComplex() || bds.getElementDoubleAbs(bOffset + 1) == 0) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                                        while (it.hasNext()) {<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                                                data[it.index] += db;<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                                        }<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                                } else {<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                                        final double vi = bds.getElementDoubleAbs(bOffset + 1);<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.index]     += db;<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                                                data[it.index + 1] += vi;<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                                        }<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                                }<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                        }<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                } else {<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        it.setOutputDouble(!useLong);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                        if (useLong) { // note no complex longs<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                                while (it.hasNext()) {<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                                        data[it.aIndex] += it.bLong;<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>                                if (bds.isComplex()) {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                                        while (it.hasNext()) {<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                                                data[it.aIndex]     += it.bDouble;<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                                                data[it.aIndex + 1] += bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                                        }<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                                } else {<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                                        while (it.hasNext()) {<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                                                data[it.aIndex] += it.bDouble;<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>                }<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                return this;<a name="line.718"></a>
+<span class="sourceLineNo">719</span>        }<a name="line.719"></a>
+<span class="sourceLineNo">720</span><a name="line.720"></a>
+<span class="sourceLineNo">721</span>        @Override<a name="line.721"></a>
+<span class="sourceLineNo">722</span>        public ComplexDoubleDataset isubtract(final Object b) {<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                setDirty();<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                if (bds.getSize() == 1) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        final IndexIterator it = getIterator();<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                        final int bOffset = bds.getOffset();<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                        if (useLong) { // note no complex longs<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                                while (it.hasNext()) {<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                                        data[it.index] -= lb;<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                                }<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                        } else {<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                                if (!bds.isComplex() || bds.getElementDoubleAbs(bOffset + 1) == 0) {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                                        while (it.hasNext()) {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                                                data[it.index] -= db;<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                                        }<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                                } else {<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                                        final double vi = bds.getElementDoubleAbs(bOffset + 1);<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                                        while (it.hasNext()) {<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                                                data[it.index]     -= db;<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                                                data[it.index + 1] -= vi;<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>                        }<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                } else {<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                        it.setOutputDouble(!useLong);<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                        if (useLong) { // note no complex longs<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                                while (it.hasNext()) {<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                                        data[it.aIndex] -= it.bLong;<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>                                if (bds.isComplex()) {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                                        while (it.hasNext()) {<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                                                data[it.aIndex]     -= it.bDouble;<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                                                data[it.aIndex + 1] -= bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                                        }<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                                } else {<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] -= it.bDouble;<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                                        }<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                                }<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                        }<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                }<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                return this;<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>        @Override<a name="line.771"></a>
+<span class="sourceLineNo">772</span>        public ComplexDoubleDataset imultiply(final Object b) {<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                setDirty();<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                if (bds.getSize() == 1) {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                        final IndexIterator it = getIterator();<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                        final int bOffset = bds.getOffset();<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                        if (useLong) { // note no complex longs<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                                final long r2 = bds.getElementLongAbs(bOffset);<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                                while (it.hasNext()) {<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                                        data[it.index]     *= r2;<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                                        data[it.index + 1] *= r2;<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 double r2 = bds.getElementDoubleAbs(bOffset);<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                if (!bds.isComplex() || bds.getElementDoubleAbs(bOffset + 1) == 0) {<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                                        while (it.hasNext()) {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                                data[it.index]     *= r2;<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                                data[it.index + 1] *= r2;<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                                        }<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                                } else {<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                                        final double i2 = bds.getElementDoubleAbs(bOffset + 1);<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                                        while (it.hasNext()) {<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                                                double r1 = data[it.index];<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                                                double i1 = data[it.index + 1];<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                                                data[it.index]     = (r1*r2 - i1*i2); // ADD_CAST<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                                                data[it.index + 1] = (r1*i2 + i1*r2); // ADD_CAST<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                                        }<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>                } else {<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                        it.setOutputDouble(!useLong);<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                        if (useLong) { // note no complex longs<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                                while (it.hasNext()) {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                                        data[it.aIndex]     *= it.bDouble;<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                                        data[it.aIndex + 1] *= it.bDouble;<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                                }<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                        } else {<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                                if (bds.isComplex()) {<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                                        while (it.hasNext()) {<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                                                double r1 = it.aDouble;<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                                                double r2 = it.bDouble;<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                                                double i1 = data[it.aIndex + 1];<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                                                double i2 = bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                                                data[it.aIndex]     = (r1*r2 - i1*i2); // ADD_CAST<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                                                data[it.aIndex + 1] = (r1*i2 + i1*r2); // ADD_CAST<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>                                                data[it.aIndex]     *= it.bDouble;<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                                                data[it.aIndex + 1] *= it.bDouble;<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>                }<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                return this;<a name="line.828"></a>
+<span class="sourceLineNo">829</span>        }<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>        @Override<a name="line.831"></a>
+<span class="sourceLineNo">832</span>        public ComplexDoubleDataset idivide(final Object b) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                setDirty();<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                if (bds.getSize() == 1) {<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                        final IndexIterator it = getIterator();<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                        final int bOffset = bds.getOffset();<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                        if (useLong) { // note no complex longs<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                final long r2 = bds.getElementLongAbs(bOffset);<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                while (it.hasNext()) {<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                                        data[it.index]     /= r2;<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                                        data[it.index + 1] /= r2;<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>                                final double r2 = bds.getElementDoubleAbs(bOffset);<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                if (!bds.isComplex() || bds.getElementDoubleAbs(bOffset + 1) == 0) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                        while (it.hasNext()) {<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                                data[it.index]     /= r2;<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                                                data[it.index + 1] /= r2;<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                        }<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                } else {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                        final double i2 = bds.getElementDoubleAbs(bOffset + 1);<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                        if (Math.abs(r2) &lt; Math.abs(i2)) {<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                                double q = r2/i2;<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                                                double den = r2*q + i2;<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                                                while (it.hasNext()) {<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                                                        double r1 = data[it.index];<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                                                        double i1 = data[it.index + 1];<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                                                        data[it.index]     = ((r1*q + i1) / den); // ADD_CAST<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                                                        data[it.index + 1] = ((i1*q - r1) / den); // ADD_CAST<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                                }<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                                        } else {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                                double q = i2/r2;<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                                                double den = i2*q + r2;<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                                if (den == 0) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                                        while (it.hasNext()) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                                                data[it.index]     = Double.NaN; // CLASS_TYPE<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                                                data[it.index + 1] = Double.NaN; // CLASS_TYPE<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                                        }<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                                                } else {<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                                                        while (it.hasNext()) {<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                                                                double r1 = data[it.index];<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                                                                double i1 = data[it.index + 1];<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                                                                data[it.index]     = ((i1 * q + r1) / den); // ADD_CAST<a name="line.875"></a>
+<span class="sourceLineNo">876</span>                                                                data[it.index + 1] = ((i1 - r1 * q) / den); // ADD_CAST<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>                                        }<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>                } else {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                        it.setOutputDouble(!useLong);<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                        if (useLong) {<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                                while (it.hasNext()) {<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                                        data[it.aIndex]     /= it.bLong;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                                        data[it.aIndex + 1] /= it.bLong;<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                                }<a name="line.889"></a>
+<span class="sourceLineNo">890</span>                        } else {<a name="line.890"></a>
+<span class="sourceLineNo">891</span>                                if (bds.isComplex()) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                        while (it.hasNext()) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                                double r1 = it.aDouble;<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                                double r2 = it.bDouble;<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                                                double i1 = data[it.aIndex + 1];<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                                double i2 = bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                                if (Math.abs(r2) &lt; Math.abs(i2)) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                                        double q = r2/i2;<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                                        double den = r2*q + i2;<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                                        data[it.aIndex]     = ((r1*q + i1) / den); // ADD_CAST<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                                                        data[it.aIndex + 1] = ((i1*q - r1) / den); // ADD_CAST<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                                                } else {<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                                                        double q = i2/r2;<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                                                        double den = i2*q + r2;<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                                                        if (den == 0) {<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                                                                data[it.aIndex]     = Double.NaN; // CLASS_TYPE<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                                                data[it.aIndex + 1] = Double.NaN; // CLASS_TYPE<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                                        } else {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                                                                data[it.aIndex]     = ((i1 * q + r1) / den); // ADD_CAST<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                                                                data[it.aIndex + 1] = ((i1 - r1 * q) / den); // ADD_CAST<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>                                } else {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                        while (it.hasNext()) {<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                                data[it.aIndex]     /= it.bDouble;<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                                                data[it.aIndex + 1] /= it.bDouble;<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>                        }<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                }<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 ComplexDoubleDataset iremainder(final Object b) {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 ComplexDoubleDataset ipower(final Object b) {<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                setDirty();<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                if (bds.getSize() == 1) {<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                        final IndexIterator it = getIterator();<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                        final int bOffset = bds.getOffset();<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                        final double r2 = bds.getElementDoubleAbs(bOffset);<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                        if (!bds.isComplex() || bds.getElementDoubleAbs(bOffset + 1) == 0) {<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                                while (it.hasNext()) {<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                                        final Complex zd = new Complex(data[it.index], data[it.index + 1]).pow(r2);<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                                        data[it.index]     = zd.getReal(); // ADD_CAST<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                        data[it.index + 1] = zd.getImaginary(); // ADD_CAST<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                }<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                        } else {<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                final Complex zv = new Complex(r2, bds.getElementDoubleAbs(bOffset + 1));<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 zd = new Complex(data[it.index], data[it.index + 1]).pow(zv);<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                                        data[it.index]     = zd.getReal(); // ADD_CAST<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                        data[it.index + 1] = zd.getImaginary(); // ADD_CAST<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>                } else {<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                        it.setOutputDouble(true);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                        if (bds.isComplex()) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                while (it.hasNext()) {<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                                        final Complex zd = new Complex(it.aDouble, data[it.aIndex + 1]).pow(zv);<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                                        data[it.aIndex]     = zd.getReal(); // ADD_CAST<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                                        data[it.aIndex + 1] = zd.getImaginary(); // ADD_CAST<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>                                while (it.hasNext()) {<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                                        final Complex zd = new Complex(it.aDouble, data[it.aIndex + 1]).pow(it.bDouble);<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                        data[it.aIndex]     = zd.getReal(); // ADD_CAST<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                                        data[it.aIndex + 1] = zd.getImaginary(); // ADD_CAST<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>                }<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                return this;<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>        @Override<a name="line.973"></a>
+<span class="sourceLineNo">974</span>        public double residual(final Object b, Dataset w, boolean ignoreNaNs) {<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                it.setOutputDouble(true);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                double sum = 0;<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                double comp = 0;<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                final int bis = bds.getElementsPerItem();<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>                if (bis == 1) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                        if (w == null) {<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                while (it.hasNext()) {<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 - 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 - 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>                        } else {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                IndexIterator itw = w.getIterator();<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<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 + 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 * dw - 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 * dw - 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>                        }<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                } else {<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                        if (w == null) {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                while (it.hasNext()) {<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 - 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 - 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>                        } else {<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                IndexIterator itw = w.getIterator();<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                                        double diffr = it.aDouble - it.bDouble;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                                        double diffi = data[it.aIndex] - bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                                        if (ignoreNaNs &amp;&amp; (Double.isNaN(diffr) || Double.isNaN(diffi))) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                                                continue;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                                        }<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                                        double err = diffr * diffr * dw - comp;<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                                        double temp = sum + err;<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                        comp = (temp - sum) - err;<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                                        sum = temp;<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span><a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                                        err = diffi * diffi * dw - comp;<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                                        temp = sum + err;<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                        comp = (temp - sum) - err;<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                        sum = temp;<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>                return sum;<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>        }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>}<a name="line.1061"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ComplexFloatDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ComplexFloatDataset.html
new file mode 100644
index 0000000..6ab54c2
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ComplexFloatDataset.html
@@ -0,0 +1,1124 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.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>                try {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                        odata = data = createArray(size);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                } catch (Throwable t) {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                        throw new IllegalArgumentException(t);<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>                IndexIterator iter = dataset.getIterator();<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                if (dataset.isComplex()) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                        for (int i = 0; iter.hasNext(); i += isize) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                                data[i] = (float) dataset.getElementDoubleAbs(iter.index); // ADD_CAST<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                                data[i+1] = (float) dataset.getElementDoubleAbs(iter.index+1); // ADD_CAST<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; iter.hasNext(); i += isize) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                                data[i] = (float) dataset.getElementDoubleAbs(iter.index); // ADD_CAST<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><a name="line.151"></a>
+<span class="sourceLineNo">152</span>        @Override<a name="line.152"></a>
+<span class="sourceLineNo">153</span>        public ComplexFloatDataset clone() {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                return new ComplexFloatDataset(this);<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>         * Create a dataset from an object which could be a Java list, array (of arrays...)<a name="line.158"></a>
+<span class="sourceLineNo">159</span>         * or Number. Ragged sequences or arrays are padded with zeros.<a name="line.159"></a>
+<span class="sourceLineNo">160</span>         *<a name="line.160"></a>
+<span class="sourceLineNo">161</span>         * @param obj<a name="line.161"></a>
+<span class="sourceLineNo">162</span>         * @return dataset with contents given by input<a name="line.162"></a>
+<span class="sourceLineNo">163</span>         */<a name="line.163"></a>
+<span class="sourceLineNo">164</span>        static ComplexFloatDataset createFromObject(final Object obj) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                ComplexFloatDataset result = new ComplexFloatDataset();<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>                result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                result.size = ShapeUtils.calcSize(result.shape);<a name="line.168"></a>
+<span class="sourceLineNo">169</span><a name="line.169"></a>
+<span class="sourceLineNo">170</span>                try {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        result.odata = result.data = result.createArray(result.size);<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                } catch (Throwable t) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(result.shape), t);<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                        throw new IllegalArgumentException(t);<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>                int[] pos = new int[result.shape.length];<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                result.fillData(obj, 0, pos);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                return result;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>        }<a name="line.180"></a>
+<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">182</span>        /**<a name="line.182"></a>
+<span class="sourceLineNo">183</span>         * @param stop<a name="line.183"></a>
+<span class="sourceLineNo">184</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.184"></a>
+<span class="sourceLineNo">185</span>         */<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        static ComplexFloatDataset createRange(final double stop) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                return createRange(0, stop, 1);<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>         * @param start<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         * @param stop<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         * @param step<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.194"></a>
+<span class="sourceLineNo">195</span>         */<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        static ComplexFloatDataset createRange(final double start, final double stop, final double step) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                int size = calcSteps(start, stop, step);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                ComplexFloatDataset result = new ComplexFloatDataset(size);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                for (int i = 0; i &lt; size; i ++) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        result.data[i*ISIZE] = (float) (start + i*step); // ADD_CAST<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                }<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                return result;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        }<a name="line.203"></a>
+<span class="sourceLineNo">204</span><a name="line.204"></a>
+<span class="sourceLineNo">205</span>        /**<a name="line.205"></a>
+<span class="sourceLineNo">206</span>         * @param shape<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * @return a dataset filled with ones<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         */<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        static ComplexFloatDataset ones(final int... shape) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                return new ComplexFloatDataset(shape).fill(1);<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 ComplexFloatDataset fill(final Object obj) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                setDirty();<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                float vr = (float) DTypeUtils.toReal(obj); // PRIM_TYPE // ADD_CAST<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                float vi = (float) DTypeUtils.toImag(obj); // PRIM_TYPE // ADD_CAST<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                IndexIterator iter = getIterator();<a name="line.218"></a>
+<span class="sourceLineNo">219</span><a name="line.219"></a>
+<span class="sourceLineNo">220</span>                while (iter.hasNext()) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                        data[iter.index] = vr;<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        data[iter.index+1] = vi;<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>                return this;<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        }<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>        @Override<a name="line.228"></a>
+<span class="sourceLineNo">229</span>        public ComplexFloatDataset getView(boolean deepCopyMetadata) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                ComplexFloatDataset view = new ComplexFloatDataset();<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                view.data = data;<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                return view;<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        }<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>        /**<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         * Get complex value at absolute index in the internal array.<a name="line.237"></a>
+<span class="sourceLineNo">238</span>         *<a name="line.238"></a>
+<span class="sourceLineNo">239</span>         * This is an internal method with no checks so can be dangerous. Use with care or ideally with an iterator.<a name="line.239"></a>
+<span class="sourceLineNo">240</span>         *<a name="line.240"></a>
+<span class="sourceLineNo">241</span>         * @param index absolute index<a name="line.241"></a>
+<span class="sourceLineNo">242</span>         * @return value<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         */<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        public Complex getComplexAbs(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 Object getObjectAbs(final int index) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                return new Complex(data[index], data[index+1]);<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 String getStringAbs(final int index) {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                float di = data[index + 1]; // PRIM_TYPE<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                if (stringFormat == null) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                        return di &gt;= 0 ? String.format("%.8g + %.8gj", data[index], di) : // FORMAT_STRING<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                                String.format("%.8g - %.8gj", data[index], -di); // FORMAT_STRING<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                }<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                StringBuilder s = new StringBuilder();<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                s.append(stringFormat.format(data[index]));<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                if (di &gt;= 0) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        s.append(" + ");<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                        s.append(stringFormat.format(di));<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                } else {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                        s.append(" - ");<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                        s.append(stringFormat.format(-di));<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                }<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                s.append('j');<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                return s.toString();<a name="line.270"></a>
+<span class="sourceLineNo">271</span>        }<a name="line.271"></a>
+<span class="sourceLineNo">272</span><a name="line.272"></a>
+<span class="sourceLineNo">273</span>        /**<a name="line.273"></a>
+<span class="sourceLineNo">274</span>         * Set values at absolute index in the internal array.<a name="line.274"></a>
+<span class="sourceLineNo">275</span>         *<a name="line.275"></a>
+<span class="sourceLineNo">276</span>         * This is an internal method with no checks so can be dangerous. Use with care or ideally with an iterator.<a name="line.276"></a>
+<span class="sourceLineNo">277</span>         * @param index absolute index<a name="line.277"></a>
+<span class="sourceLineNo">278</span>         * @param val new values<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         */<a name="line.279"></a>
+<span class="sourceLineNo">280</span>        public void setAbs(final int index, final Complex val) {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                setAbs(index, (float) val.getReal(), (float) val.getImaginary()); // 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>        @Override<a name="line.284"></a>
+<span class="sourceLineNo">285</span>        public void setObjectAbs(final int index, final Object obj) {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                setAbs(index, (float) DTypeUtils.toReal(obj), (float) DTypeUtils.toImag(obj)); // PRIM_TYPE<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>         * Set item at index to complex value given by real and imaginary parts<a name="line.290"></a>
+<span class="sourceLineNo">291</span>         * @param index absolute index<a name="line.291"></a>
+<span class="sourceLineNo">292</span>         * @param real<a name="line.292"></a>
+<span class="sourceLineNo">293</span>         * @param imag<a name="line.293"></a>
+<span class="sourceLineNo">294</span>         */<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        public void setAbs(final int index, final float real, final float imag) { // PRIM_TYPE<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                setDirty();<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                data[index] = real;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                data[index+1] = imag;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>        }<a name="line.299"></a>
+<span class="sourceLineNo">300</span><a name="line.300"></a>
+<span class="sourceLineNo">301</span>        /**<a name="line.301"></a>
+<span class="sourceLineNo">302</span>         * @return item in first position<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 Complex get() {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                int n = getFirst1DIndex();<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                Complex z = new Complex(data[n], data[n+1]);<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                return z;<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>         * @param i<a name="line.312"></a>
+<span class="sourceLineNo">313</span>         * @return item in given position<a name="line.313"></a>
+<span class="sourceLineNo">314</span>         */<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        public Complex get(final int i) {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>                int n = get1DIndex(i);<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                Complex z = new Complex(data[n], data[n+1]);<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                return z;<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 i<a name="line.322"></a>
+<span class="sourceLineNo">323</span>         * @param j<a name="line.323"></a>
+<span class="sourceLineNo">324</span>         * @return item in given position<a name="line.324"></a>
+<span class="sourceLineNo">325</span>         */<a name="line.325"></a>
+<span class="sourceLineNo">326</span>        public Complex get(final int i, final int j) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                int n = get1DIndex(i, j);<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                Complex z = new Complex(data[n], data[n+1]);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                return z;<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>         * @param pos<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 Complex get(final int... pos) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                int n = get1DIndex(pos);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                Complex z = new Complex(data[n], data[n+1]);<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                return z;<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() {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                return get();<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) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                return get(i);<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 i, final int j) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                return get(i, j);<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 Object getObject(final int... pos) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                return getComplex(pos);<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>        /**<a name="line.362"></a>
+<span class="sourceLineNo">363</span>         * @return item in first position<a name="line.363"></a>
+<span class="sourceLineNo">364</span>         * @since 2.0<a name="line.364"></a>
+<span class="sourceLineNo">365</span>         */<a name="line.365"></a>
+<span class="sourceLineNo">366</span>        public float getReal() { // PRIM_TYPE<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                return (float) getFirstValue(); // PRIM_TYPE<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        }<a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span>        /**<a name="line.370"></a>
+<span class="sourceLineNo">371</span>         * @param i<a name="line.371"></a>
+<span class="sourceLineNo">372</span>         * @return item in given position<a name="line.372"></a>
+<span class="sourceLineNo">373</span>         */<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        public float getReal(final int i) { // PRIM_TYPE<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                return (float) getFirstValue(i); // PRIM_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>        /**<a name="line.378"></a>
+<span class="sourceLineNo">379</span>         * @param i<a name="line.379"></a>
+<span class="sourceLineNo">380</span>         * @param j<a name="line.380"></a>
+<span class="sourceLineNo">381</span>         * @return item in given position<a name="line.381"></a>
+<span class="sourceLineNo">382</span>         */<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        public float getReal(final int i, final int j) { // PRIM_TYPE<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                return (float) 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>        public float getReal(final int... pos) { // PRIM_TYPE<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                return (float) getFirstValue(pos); // PRIM_TYPE<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>        /**<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 getImag() { // PRIM_TYPE<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                return data[getFirst1DIndex() + 1];<a name="line.400"></a>
+<span class="sourceLineNo">401</span>        }<a name="line.401"></a>
+<span class="sourceLineNo">402</span><a name="line.402"></a>
+<span class="sourceLineNo">403</span>        /**<a name="line.403"></a>
+<span class="sourceLineNo">404</span>         * @param i<a name="line.404"></a>
+<span class="sourceLineNo">405</span>         * @return item in given position<a name="line.405"></a>
+<span class="sourceLineNo">406</span>         */<a name="line.406"></a>
+<span class="sourceLineNo">407</span>        public float getImag(final int i) { // PRIM_TYPE<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                return data[get1DIndex(i) + 1];<a name="line.408"></a>
+<span class="sourceLineNo">409</span>        }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>        /**<a name="line.411"></a>
+<span class="sourceLineNo">412</span>         * @param i<a name="line.412"></a>
+<span class="sourceLineNo">413</span>         * @param j<a name="line.413"></a>
+<span class="sourceLineNo">414</span>         * @return item in given position<a name="line.414"></a>
+<span class="sourceLineNo">415</span>         */<a name="line.415"></a>
+<span class="sourceLineNo">416</span>        public float getImag(final int i, final int j) { // PRIM_TYPE<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                return data[get1DIndex(i, j) + 1];<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>        /**<a name="line.420"></a>
+<span class="sourceLineNo">421</span>         * @param pos<a name="line.421"></a>
+<span class="sourceLineNo">422</span>         * @return item in given position<a name="line.422"></a>
+<span class="sourceLineNo">423</span>         */<a name="line.423"></a>
+<span class="sourceLineNo">424</span>        public float getImag(final int... pos) { // PRIM_TYPE<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                return data[get1DIndex(pos) + 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>         * @return item in first position<a name="line.429"></a>
+<span class="sourceLineNo">430</span>         * @since 2.0<a name="line.430"></a>
+<span class="sourceLineNo">431</span>         */<a name="line.431"></a>
+<span class="sourceLineNo">432</span>        public Complex getComplex() {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                return get();<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 i<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         * @return item in given position<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         */<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        public Complex getComplex(final int i) {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                return get(i);<a name="line.441"></a>
+<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
+<span class="sourceLineNo">443</span><a name="line.443"></a>
+<span class="sourceLineNo">444</span>        /**<a name="line.444"></a>
+<span class="sourceLineNo">445</span>         * @param i<a name="line.445"></a>
+<span class="sourceLineNo">446</span>         * @param j<a name="line.446"></a>
+<span class="sourceLineNo">447</span>         * @return item in given position<a name="line.447"></a>
+<span class="sourceLineNo">448</span>         */<a name="line.448"></a>
+<span class="sourceLineNo">449</span>        public Complex getComplex(final int i, final int j) {<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                return get(i, j);<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>        /**<a name="line.453"></a>
+<span class="sourceLineNo">454</span>         * @param pos<a name="line.454"></a>
+<span class="sourceLineNo">455</span>         * @return item in given position<a name="line.455"></a>
+<span class="sourceLineNo">456</span>         */<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        public Complex getComplex(final int... pos) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                return get(pos);<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) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                setItem(new float[] {(float) DTypeUtils.toReal(obj), (float) DTypeUtils.toImag(obj)}, i); // 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, final int i, final int j) {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                setItem(new float[] {(float) DTypeUtils.toReal(obj), (float) DTypeUtils.toImag(obj)}, i, j); // PRIM_TYPE<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 void set(final Object obj, int... pos) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                        pos = new int[shape.length];<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>                setItem(new float[] {(float) DTypeUtils.toReal(obj), (float) DTypeUtils.toImag(obj)}, pos); // PRIM_TYPE<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>         * Set real and imaginary values at given position<a name="line.481"></a>
+<span class="sourceLineNo">482</span>         * @param dr<a name="line.482"></a>
+<span class="sourceLineNo">483</span>         * @param di<a name="line.483"></a>
+<span class="sourceLineNo">484</span>         * @param i<a name="line.484"></a>
+<span class="sourceLineNo">485</span>         */<a name="line.485"></a>
+<span class="sourceLineNo">486</span>        public void set(final float dr, final float di, final int i) { // PRIM_TYPE<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                setItem(new float[] {dr, di}, i); // PRIM_TYPE<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>         * Set real and imaginary values at given position<a name="line.491"></a>
+<span class="sourceLineNo">492</span>         * @param dr<a name="line.492"></a>
+<span class="sourceLineNo">493</span>         * @param di<a name="line.493"></a>
+<span class="sourceLineNo">494</span>         * @param i<a name="line.494"></a>
+<span class="sourceLineNo">495</span>         * @param j<a name="line.495"></a>
+<span class="sourceLineNo">496</span>         */<a name="line.496"></a>
+<span class="sourceLineNo">497</span>        public void set(final float dr, final float di, final int i, final int j) { // PRIM_TYPE<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                setItem(new float[] {dr, di}, i, j); // PRIM_TYPE<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 real and imaginary values at given position<a name="line.502"></a>
+<span class="sourceLineNo">503</span>         * @param dr<a name="line.503"></a>
+<span class="sourceLineNo">504</span>         * @param di<a name="line.504"></a>
+<span class="sourceLineNo">505</span>         * @param pos<a name="line.505"></a>
+<span class="sourceLineNo">506</span>         * @since 2.0<a name="line.506"></a>
+<span class="sourceLineNo">507</span>         */<a name="line.507"></a>
+<span class="sourceLineNo">508</span>        public void set(final float dr, final float di, final int... pos) { // PRIM_TYPE<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                setItem(new float[] {dr, di}, pos); // PRIM_TYPE<a name="line.509"></a>
+<span class="sourceLineNo">510</span>        }<a name="line.510"></a>
+<span class="sourceLineNo">511</span><a name="line.511"></a>
+<span class="sourceLineNo">512</span>        /**<a name="line.512"></a>
+<span class="sourceLineNo">513</span>         * @since 2.0<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 FloatDataset getRealPart() { // CLASS_TYPE<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                return getElements(0);<a name="line.517"></a>
+<span class="sourceLineNo">518</span>        }<a name="line.518"></a>
+<span class="sourceLineNo">519</span><a name="line.519"></a>
+<span class="sourceLineNo">520</span>        /**<a name="line.520"></a>
+<span class="sourceLineNo">521</span>         * @since 2.0<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 FloatDataset getRealView() { // CLASS_TYPE<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                return getElementsView(0);<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>         * @return imaginary part of dataset as new dataset<a name="line.529"></a>
+<span class="sourceLineNo">530</span>         * @since 2.0<a name="line.530"></a>
+<span class="sourceLineNo">531</span>         */<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        public FloatDataset getImaginaryPart() { // CLASS_TYPE<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                return getElements(1);<a name="line.533"></a>
+<span class="sourceLineNo">534</span>        }<a name="line.534"></a>
+<span class="sourceLineNo">535</span><a name="line.535"></a>
+<span class="sourceLineNo">536</span>        /**<a name="line.536"></a>
+<span class="sourceLineNo">537</span>         * @return view of imaginary values<a name="line.537"></a>
+<span class="sourceLineNo">538</span>         */<a name="line.538"></a>
+<span class="sourceLineNo">539</span>        public FloatDataset getImaginaryView() { // CLASS_TYPE<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                return getElementsView(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>        @Override<a name="line.543"></a>
+<span class="sourceLineNo">544</span>        public Number max(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 Number min(boolean... switches) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                throw new UnsupportedOperationException("Cannot compare complex numbers");<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 Object sum(boolean... switches) { // FIXME<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                double[] sum = (double[]) super.sum(switches);<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                return new Complex(sum[0], sum[1]);<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 Object mean(boolean... switches) {<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                double[] mean = (double[]) super.mean(switches);<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                return new Complex(mean[0], mean[1]);<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[] maxPos(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 int[] minPos(boolean... switches) {<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                throw new UnsupportedOperationException("Cannot compare complex numbers");<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 ComplexFloatDataset getSlice(final SliceIterator siter) {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                ComplexFloatDataset result = new ComplexFloatDataset(siter.getShape());<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                float[] rdata = result.data; // PRIM_TYPE<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                IndexIterator riter = result.getIterator();<a name="line.579"></a>
+<span class="sourceLineNo">580</span><a name="line.580"></a>
+<span class="sourceLineNo">581</span>                while (siter.hasNext() &amp;&amp; riter.hasNext()) {<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                        rdata[riter.index] = data[siter.index];<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                        rdata[riter.index+1] = data[siter.index+1];<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>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                return result;<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>        @Override<a name="line.590"></a>
+<span class="sourceLineNo">591</span>        ComplexFloatDataset setSlicedView(Dataset view, Dataset d) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                setDirty();<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.593"></a>
+<span class="sourceLineNo">594</span><a name="line.594"></a>
+<span class="sourceLineNo">595</span>                if (d instanceof ComplexFloatDataset || d instanceof ComplexFloatDataset) {<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] = (float) d.getElementDoubleAbs(it.bIndex + 1); // GET_ELEMENT_WITH_CAST<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                        }<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                } else {<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                        while (it.hasNext()) {<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                                data[it.aIndex] = (float) it.bDouble; // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                                data[it.aIndex + 1] = 0;<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>                return this;<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>        @Override<a name="line.609"></a>
+<span class="sourceLineNo">610</span>        public ComplexFloatDataset setSlice(final Object o, final IndexIterator siter) {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                setDirty();<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                if (o instanceof ComplexFloatDataset) {<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                        ComplexFloatDataset zds = (ComplexFloatDataset) o;<a name="line.613"></a>
+<span class="sourceLineNo">614</span><a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), zds.shape)) {<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                                throw new IllegalArgumentException(String.format(<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(zds.shape),<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                                                Arrays.toString(siter.getShape())));<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>                        IndexIterator oiter = zds.getIterator();<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                        float[] odata = zds.data;<a name="line.622"></a>
+<span class="sourceLineNo">623</span><a name="line.623"></a>
+<span class="sourceLineNo">624</span>                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                                data[siter.index] = odata[oiter.index];<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                                data[siter.index+1] = odata[oiter.index+1];<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                        }<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                } else if (o instanceof ComplexDoubleDataset) { // IGNORE_CLASS<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                        ComplexDoubleDataset zds = (ComplexDoubleDataset) o; // IGNORE_CLASS<a name="line.629"></a>
+<span class="sourceLineNo">630</span><a name="line.630"></a>
+<span class="sourceLineNo">631</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), zds.shape)) {<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                                throw new IllegalArgumentException(String.format(<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(zds.shape),<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                                                Arrays.toString(siter.getShape())));<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                        }<a name="line.635"></a>
+<span class="sourceLineNo">636</span><a name="line.636"></a>
+<span class="sourceLineNo">637</span>                        IndexIterator oiter = zds.getIterator();<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                        double[] odata = zds.data;<a name="line.638"></a>
+<span class="sourceLineNo">639</span><a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                                data[siter.index] = (float) odata[oiter.index]; // PRIM_TYPE // ADD_CAST<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                                data[siter.index+1] = (float) odata[oiter.index+1]; // PRIM_TYPE // ADD_CAST<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                        }<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                } else if (o instanceof IDataset) {<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                        super.setSlice(o, siter);<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                } else {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                        try {<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                                float vr = (float) DTypeUtils.toReal(o); // PRIM_TYPE // ADD_CAST<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                                float vi = (float) DTypeUtils.toImag(o); // PRIM_TYPE // ADD_CAST<a name="line.649"></a>
+<span class="sourceLineNo">650</span><a name="line.650"></a>
+<span class="sourceLineNo">651</span>                                while (siter.hasNext()) {<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                                        data[siter.index]     = vr;<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                                        data[siter.index + 1] = vi;<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                                }<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                        } catch (IllegalArgumentException e) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<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>                return this;<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 ComplexFloatDataset iadd(final Object b) {<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                setDirty();<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                if (bds.getSize() == 1) {<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                        final IndexIterator it = getIterator();<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                        final int bOffset = bds.getOffset();<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        if (useLong) { // note no complex longs<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                                final long lb = bds.getElementLongAbs(bOffset);<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] += lb;<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 db = bds.getElementDoubleAbs(bOffset);<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                                if (!bds.isComplex() || bds.getElementDoubleAbs(bOffset + 1) == 0) {<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                                        while (it.hasNext()) {<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                                                data[it.index] += db;<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                                        }<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                                } else {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                                        final double vi = bds.getElementDoubleAbs(bOffset + 1);<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                                        while (it.hasNext()) {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                                                data[it.index]     += db;<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                                                data[it.index + 1] += vi;<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                                        }<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                                }<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                        }<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                } else {<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                        it.setOutputDouble(!useLong);<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        if (useLong) { // note no complex longs<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                                while (it.hasNext()) {<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                                        data[it.aIndex] += it.bLong;<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>                                if (bds.isComplex()) {<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                                        while (it.hasNext()) {<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                                                data[it.aIndex]     += it.bDouble;<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                                                data[it.aIndex + 1] += bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                                        }<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                                } else {<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                                        while (it.hasNext()) {<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                                                data[it.aIndex] += it.bDouble;<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>                        }<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                }<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                return this;<a name="line.709"></a>
+<span class="sourceLineNo">710</span>        }<a name="line.710"></a>
+<span class="sourceLineNo">711</span><a name="line.711"></a>
+<span class="sourceLineNo">712</span>        @Override<a name="line.712"></a>
+<span class="sourceLineNo">713</span>        public ComplexFloatDataset isubtract(final Object b) {<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                setDirty();<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                if (bds.getSize() == 1) {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                        final IndexIterator it = getIterator();<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                        final int bOffset = bds.getOffset();<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        if (useLong) { // note no complex longs<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                                while (it.hasNext()) {<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                                        data[it.index] -= lb;<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                                }<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                        } else {<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                                if (!bds.isComplex() || bds.getElementDoubleAbs(bOffset + 1) == 0) {<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                                        while (it.hasNext()) {<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                                                data[it.index] -= db;<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                                        }<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                                } else {<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                                        final double vi = bds.getElementDoubleAbs(bOffset + 1);<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                                        while (it.hasNext()) {<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                                                data[it.index]     -= db;<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                                                data[it.index + 1] -= vi;<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                                        }<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                                }<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                        }<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                } else {<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        it.setOutputDouble(!useLong);<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                        if (useLong) { // note no complex longs<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                                while (it.hasNext()) {<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                                        data[it.aIndex] -= it.bLong;<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                                }<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        } else {<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                                if (bds.isComplex()) {<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                                        while (it.hasNext()) {<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                                                data[it.aIndex]     -= it.bDouble;<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                                                data[it.aIndex + 1] -= bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                                        }<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                                } else {<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                                        while (it.hasNext()) {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                                                data[it.aIndex] -= it.bDouble;<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>                }<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                return this;<a name="line.759"></a>
+<span class="sourceLineNo">760</span>        }<a name="line.760"></a>
+<span class="sourceLineNo">761</span><a name="line.761"></a>
+<span class="sourceLineNo">762</span>        @Override<a name="line.762"></a>
+<span class="sourceLineNo">763</span>        public ComplexFloatDataset imultiply(final Object b) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                setDirty();<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                if (bds.getSize() == 1) {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                        final IndexIterator it = getIterator();<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                        final int bOffset = bds.getOffset();<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        if (useLong) { // note no complex longs<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                                final long r2 = bds.getElementLongAbs(bOffset);<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                                while (it.hasNext()) {<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                                        data[it.index]     *= r2;<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                                        data[it.index + 1] *= r2;<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                                }<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                        } else {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                                final double r2 = bds.getElementDoubleAbs(bOffset);<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                                if (!bds.isComplex() || bds.getElementDoubleAbs(bOffset + 1) == 0) {<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                                        while (it.hasNext()) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                                                data[it.index]     *= r2;<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                                                data[it.index + 1] *= r2;<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                                        }<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                                } else {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                                        final double i2 = bds.getElementDoubleAbs(bOffset + 1);<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                                        while (it.hasNext()) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                                double r1 = data[it.index];<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                                double i1 = data[it.index + 1];<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                                                data[it.index]     = (float) (r1*r2 - i1*i2); // ADD_CAST<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                                data[it.index + 1] = (float) (r1*i2 + i1*r2); // ADD_CAST<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>                } else {<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                        it.setOutputDouble(!useLong);<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        if (useLong) { // note no complex longs<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                                while (it.hasNext()) {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                                        data[it.aIndex]     *= it.bDouble;<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                                        data[it.aIndex + 1] *= it.bDouble;<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>                                if (bds.isComplex()) {<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                                        while (it.hasNext()) {<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                                                double r1 = it.aDouble;<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                                                double r2 = it.bDouble;<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                                                double i1 = data[it.aIndex + 1];<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                                                double i2 = bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                                                data[it.aIndex]     = (float) (r1*r2 - i1*i2); // ADD_CAST<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                                                data[it.aIndex + 1] = (float) (r1*i2 + i1*r2); // ADD_CAST<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                                        }<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                                } else {<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                                        while (it.hasNext()) {<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                                                data[it.aIndex]     *= it.bDouble;<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                                                data[it.aIndex + 1] *= 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>                        }<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                }<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                return this;<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 ComplexFloatDataset idivide(final Object b) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                setDirty();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                if (bds.getSize() == 1) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                        final IndexIterator it = getIterator();<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        final int bOffset = bds.getOffset();<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(bOffset);<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(bOffset);<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                if (!bds.isComplex() || bds.getElementDoubleAbs(bOffset + 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(bOffset + 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]     = (float) ((r1*q + i1) / den); // ADD_CAST<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                                        data[it.index + 1] = (float) ((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]     = Float.NaN; // CLASS_TYPE<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                                                                data[it.index + 1] = Float.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]     = (float) ((i1 * q + r1) / den); // ADD_CAST<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                                                data[it.index + 1] = (float) ((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]     = (float) ((r1*q + i1) / den); // ADD_CAST<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                                        data[it.aIndex + 1] = (float) ((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]     = Float.NaN; // CLASS_TYPE<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                                                data[it.aIndex + 1] = Float.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]     = (float) ((i1 * q + r1) / den); // ADD_CAST<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                                                                data[it.aIndex + 1] = (float) ((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 ComplexFloatDataset 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 ComplexFloatDataset 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 int bOffset = bds.getOffset();<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                        final double r2 = bds.getElementDoubleAbs(bOffset);<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                        if (!bds.isComplex() || bds.getElementDoubleAbs(bOffset + 1) == 0) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                while (it.hasNext()) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                        final Complex zd = new Complex(data[it.index], data[it.index + 1]).pow(r2);<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                        data[it.index]     = (float) zd.getReal(); // ADD_CAST<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                        data[it.index + 1] = (float) zd.getImaginary(); // ADD_CAST<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                        } else {<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                                final Complex zv = new Complex(r2, bds.getElementDoubleAbs(bOffset + 1));<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 zd = new Complex(data[it.index], data[it.index + 1]).pow(zv);<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                                        data[it.index]     = (float) zd.getReal(); // ADD_CAST<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                                        data[it.index + 1] = (float) zd.getImaginary(); // ADD_CAST<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                                }<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                        }<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                } else {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                        it.setOutputDouble(true);<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                        if (bds.isComplex()) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                while (it.hasNext()) {<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                        final Complex zd = new Complex(it.aDouble, data[it.aIndex + 1]).pow(zv);<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                        data[it.aIndex]     = (float) zd.getReal(); // ADD_CAST<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                        data[it.aIndex + 1] = (float) zd.getImaginary(); // ADD_CAST<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>                                while (it.hasNext()) {<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                        final Complex zd = new Complex(it.aDouble, data[it.aIndex + 1]).pow(it.bDouble);<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                        data[it.aIndex]     = (float) zd.getReal(); // ADD_CAST<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                                        data[it.aIndex + 1] = (float) zd.getImaginary(); // ADD_CAST<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>                }<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                return this;<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>        @Override<a name="line.964"></a>
+<span class="sourceLineNo">965</span>        public double residual(final Object b, Dataset w, boolean ignoreNaNs) {<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                it.setOutputDouble(true);<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                double sum = 0;<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                double comp = 0;<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                final int bis = bds.getElementsPerItem();<a name="line.971"></a>
+<span class="sourceLineNo">972</span><a name="line.972"></a>
+<span class="sourceLineNo">973</span>                if (bis == 1) {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        if (w == null) {<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                                while (it.hasNext()) {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                                        double diffr = it.aDouble - it.bDouble;<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                                        double diffi = data[it.aIndex + 1];<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                                        if (ignoreNaNs &amp;&amp; (Double.isNaN(diffr) || Double.isNaN(diffi))) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                                                continue;<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                        }<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                        double err = diffr * diffr - comp;<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                                        double temp = sum + err;<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                        comp = (temp - sum) - err;<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                        sum = temp;<a name="line.984"></a>
+<span class="sourceLineNo">985</span><a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                        err = diffi * diffi - comp;<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                        temp = sum + err;<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                        comp = (temp - sum) - err;<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                                        sum = temp;<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                }<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                        } else {<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                IndexIterator itw = w.getIterator();<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                                        double diffr = it.aDouble - it.bDouble;<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                        double diffi = data[it.aIndex + 1];<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                                        if (ignoreNaNs &amp;&amp; (Double.isNaN(diffr) || Double.isNaN(diffi))) {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                                continue;<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                        }<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                        double err = diffr * diffr * dw - comp;<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                        double temp = sum + err;<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        comp = (temp - sum) - err;<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                        sum = temp;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span><a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                        err = diffi * diffi * dw - comp;<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                                        temp = sum + err;<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                                        comp = (temp - sum) - err;<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                                        sum = temp;<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>                } else {<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                        if (w == null) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                while (it.hasNext()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                        double diffr = it.aDouble - it.bDouble;<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                        double diffi = data[it.aIndex] - bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                        if (ignoreNaNs &amp;&amp; (Double.isNaN(diffr) || Double.isNaN(diffi))) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                                continue;<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                        }<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                        double err = diffr * diffr - comp;<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                        double temp = sum + err;<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                        comp = (temp - sum) - err;<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                        sum = temp;<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span><a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                        err = diffi * diffi - comp;<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                        temp = sum + err;<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                        comp = (temp - sum) - err;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                        sum = temp;<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                }<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                        } else {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                IndexIterator itw = w.getIterator();<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                        double diffr = it.aDouble - it.bDouble;<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                        double diffi = data[it.aIndex] - bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                        if (ignoreNaNs &amp;&amp; (Double.isNaN(diffr) || Double.isNaN(diffi))) {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                                continue;<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                        }<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                        double err = diffr * diffr * dw - comp;<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                        double temp = sum + err;<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                        comp = (temp - sum) - err;<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                                        sum = temp;<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span><a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                                        err = diffi * diffi * dw - comp;<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                                        temp = sum + err;<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                                        comp = (temp - sum) - err;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                                        sum = temp;<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                                }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                        }<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                return sum;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/CompoundByteDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/CompoundByteDataset.html
new file mode 100644
index 0000000..7a17981
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/CompoundByteDataset.html
@@ -0,0 +1,2182 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// This is generated from CompoundDoubleDataset.java by fromcpddouble.py<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.Arrays;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.commons.math3.complex.Complex;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>/**<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * Extend compound dataset for byte values // PRIM_TYPE<a name="line.22"></a>
+<span class="sourceLineNo">023</span> */<a name="line.23"></a>
+<span class="sourceLineNo">024</span>public class CompoundByteDataset extends AbstractCompoundDataset {<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        // pin UID to base class<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>        protected byte[] data; // subclass alias // PRIM_TYPE<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>        @Override<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        protected void setData() {<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                data = (byte[]) odata; // PRIM_TYPE<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        }<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>        protected byte[] createArray(final int size) { // PRIM_TYPE<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                byte[] array = null; // PRIM_TYPE<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>                try {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                        array = new byte[isize * size]; // PRIM_TYPE<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                } catch (OutOfMemoryError e) {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                }<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                return array;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        }<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>        @Override<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public int getDType() {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                return Dataset.ARRAYINT8; // DATA_TYPE<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        }<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        /**<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         * Create a null dataset<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        CompoundByteDataset() {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * Create a null dataset<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * @param itemSize<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         */<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        CompoundByteDataset(final int itemSize) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                isize = itemSize;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>        /**<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         * Create a zero-filled dataset of given item size and shape<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         * @param itemSize<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         * @param shape<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         */<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        CompoundByteDataset(final int itemSize, final int[] shape) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                isize = itemSize;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                if (shape != null) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        size = ShapeUtils.calcSize(shape);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        this.shape = shape.clone();<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        try {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                odata = data = createArray(size);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        } catch (Throwable t) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                                throw new IllegalArgumentException(t);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                        }<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        }<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>        /**<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         * Copy a dataset<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         * @param dataset<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>        CompoundByteDataset(final CompoundByteDataset dataset) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                isize = dataset.isize;<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                copyToView(dataset, this, true, true);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                try {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        if (dataset.stride == null) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                                if (dataset.data != null) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                        odata = data = dataset.data.clone();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                        } else {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                offset = 0;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                stride = null;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                base = null;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                                odata = data = createArray(size);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                IndexIterator iter = dataset.getIterator();<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                                for (int j = 0; iter.hasNext();) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                                                data[j++] = dataset.data[iter.index + i];<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                                        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                                }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        }<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                } catch (Throwable t) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        throw new IllegalArgumentException(t);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                }<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>        /**<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         * Create a dataset using given dataset<a name="line.120"></a>
+<span class="sourceLineNo">121</span>         * @param dataset<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         */<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        CompoundByteDataset(final CompoundDataset dataset) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                copyToView(dataset, this, true, false);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                offset = 0;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                stride = null;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                base = null;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                isize = dataset.getElementsPerItem();<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                try {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        odata = data = createArray(size);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                } catch (Throwable t) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                        throw new IllegalArgumentException(t);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>                IndexIterator iter = dataset.getIterator();<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                for (int j = 0; iter.hasNext();) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                                data[j++] = (byte) dataset.getElementLongAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        }<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        }<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>        /**<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * Create a dataset using given data (elements are grouped together)<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         * @param itemSize<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         * @param data<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         * @param shape<a name="line.148"></a>
+<span class="sourceLineNo">149</span>         *            (can be null to create 1D dataset)<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         */<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        CompoundByteDataset(final int itemSize, final byte[] data, int... shape) { // PRIM_TYPE<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                isize = itemSize;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                if (data != null) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        if (shape == null || (shape.length == 0 &amp;&amp; data.length &gt; isize)) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                                shape = new int[] { data.length / isize };<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        }<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        size = ShapeUtils.calcSize(shape);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                        if (size * isize != data.length) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                                throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                                                Arrays.toString(shape), data.length / isize));<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        this.shape = size == 0 ? null : shape.clone();<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        odata = this.data = data;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                }<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        }<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>        /**<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         * Create a dataset using given datasets<a name="line.169"></a>
+<span class="sourceLineNo">170</span>         * @param datasets<a name="line.170"></a>
+<span class="sourceLineNo">171</span>         */<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        CompoundByteDataset(final Dataset... datasets) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                if (datasets.length &lt; 1) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                        throw new IllegalArgumentException("Array of datasets must have length greater than zero");<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                }<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>                for (int i = 1; i &lt; datasets.length; i++) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        datasets[0].checkCompatibility(datasets[i]);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>                isize = datasets.length;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                size = ShapeUtils.calcSize(datasets[0].getShapeRef());<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                shape = datasets[0].getShape();<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>                try {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        odata = data = createArray(size);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                } catch (Throwable t) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                        throw new IllegalArgumentException(t);<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>                IndexIterator[] iters = new IndexIterator[isize];<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                for (int i = 0; i &lt; datasets.length; i++) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                        iters[i] = datasets[i].getIterator();<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                }<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>                for (int j = 0; iters[0].hasNext();) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        data[j++] = (byte) datasets[0].getElementLongAbs(iters[0].index); // GET_ELEMENT_WITH_CAST<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        for (int i = 1; i &lt; datasets.length; i++) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                                iters[i].hasNext();<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                                data[j++] = (byte) datasets[i].getElementLongAbs(iters[i].index); // GET_ELEMENT_WITH_CAST<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        }<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                }<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>        /**<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * Cast a dataset to this compound type. If repeat is set, the first element of each item in the given dataset is<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * repeated across all elements of an item. Otherwise, each item comprises a truncated or zero-padded copy of<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * elements from the given dataset.<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         * @param itemSize<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         * @param repeat<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         *            repeat first element<a name="line.212"></a>
+<span class="sourceLineNo">213</span>         * @param dataset<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         */<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        CompoundByteDataset(final int itemSize, final boolean repeat, final Dataset dataset) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                isize = itemSize;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                size = dataset.getSize();<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                shape = dataset.getShape();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                name = new String(dataset.getName());<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>                try {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        odata = data = createArray(size);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                } catch (Throwable t) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                        throw new IllegalArgumentException(t);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                }<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                final int os = dataset.getElementsPerItem();<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>                IndexIterator iter = dataset.getIterator();<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                if (repeat) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                        int i = 0;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                        while (iter.hasNext()) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                final byte v = (byte) dataset.getElementLongAbs(iter.index); // PRIM_TYPE // GET_ELEMENT_WITH_CAST<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                                        data[i++] = v;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                        }<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                } else {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                        final int kmax = Math.min(isize, os);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        int i = 0;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                        while (iter.hasNext()) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                                for (int k = 0; k &lt; kmax; k++) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                        data[i + k] = (byte) dataset.getElementLongAbs(iter.index + k); // GET_ELEMENT_WITH_CAST<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                                }<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                                i += isize;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        }<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                }<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>        @Override<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        public boolean equals(Object obj) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                if (this == obj) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        return true;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                }<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>                if (obj == null) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                        return false;<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>                if (!getClass().equals(obj.getClass())) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                        if (getRank() == 0) { // for zero-rank datasets<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                return obj.equals(getObjectAbs(offset));<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                        return false;<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>                CompoundByteDataset other = (CompoundByteDataset) obj;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                if (isize != other.isize) {<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>                if (size != other.size) {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                        return false;<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                }<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                if (!Arrays.equals(shape, other.shape)) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                        return false;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                if (data == other.data &amp;&amp; stride == null &amp;&amp; other.stride == null) {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                        return true;<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>                IndexIterator iter = getIterator();<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                IndexIterator oiter = other.getIterator();<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                                if (data[iter.index+j] != other.data[oiter.index+j]) {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                                        return false;<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>                return true;<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>        @Override<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        public int hashCode() {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                return super.hashCode();<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>        @Override<a name="line.298"></a>
+<span class="sourceLineNo">299</span>        public CompoundByteDataset clone() {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                return new CompoundByteDataset(this);<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>        /**<a name="line.303"></a>
+<span class="sourceLineNo">304</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.304"></a>
+<span class="sourceLineNo">305</span>         * sequences or arrays are padded with zeros. The item size is the last dimension of the corresponding<a name="line.305"></a>
+<span class="sourceLineNo">306</span>         * elemental dataset<a name="line.306"></a>
+<span class="sourceLineNo">307</span>         *<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         * @param obj<a name="line.308"></a>
+<span class="sourceLineNo">309</span>         * @return dataset with contents given by input<a name="line.309"></a>
+<span class="sourceLineNo">310</span>         */<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        static CompoundByteDataset createFromObject(final Object obj) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                ByteDataset result = ByteDataset.createFromObject(obj); // CLASS_TYPE<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                return createCompoundDatasetWithLastDimension(result, true);<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>         * Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * sequences or arrays are padded with zeros.<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         *<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         * @param itemSize<a name="line.320"></a>
+<span class="sourceLineNo">321</span>         * @param obj<a name="line.321"></a>
+<span class="sourceLineNo">322</span>         * @return dataset with contents given by input<a name="line.322"></a>
+<span class="sourceLineNo">323</span>         */<a name="line.323"></a>
+<span class="sourceLineNo">324</span>        public static CompoundByteDataset createFromObject(final int itemSize, final Object obj) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                ByteDataset result = ByteDataset.createFromObject(obj); // CLASS_TYPE<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                boolean zeroRank = result.shape == null ? false : result.shape.length == 0;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                if (zeroRank) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                        result.resize(itemSize); // special case of single item<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        result.fill(obj);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                CompoundByteDataset ds = new CompoundByteDataset(itemSize, result.getData(), null);<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                if (zeroRank) {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        ds.setShape(new int[0]);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                return ds;<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>         * @param stop<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         */<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        static CompoundByteDataset createRange(final int itemSize, final double stop) {<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                return createRange(itemSize, 0., stop, 1.);<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>         * @param start<a name="line.347"></a>
+<span class="sourceLineNo">348</span>         * @param stop<a name="line.348"></a>
+<span class="sourceLineNo">349</span>         * @param step<a name="line.349"></a>
+<span class="sourceLineNo">350</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.350"></a>
+<span class="sourceLineNo">351</span>         */<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        static CompoundByteDataset createRange(final int itemSize, final double start, final double stop,<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                        final double step) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                int size = calcSteps(start, stop, step);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                CompoundByteDataset result = new CompoundByteDataset(itemSize, new int[] { size });<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                for (int i = 0; i &lt; size; i++) {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                        result.data[i * result.isize] = (byte) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                return result;<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>        /**<a name="line.362"></a>
+<span class="sourceLineNo">363</span>         * @param shape<a name="line.363"></a>
+<span class="sourceLineNo">364</span>         * @return a dataset filled with ones<a name="line.364"></a>
+<span class="sourceLineNo">365</span>         */<a name="line.365"></a>
+<span class="sourceLineNo">366</span>        static CompoundByteDataset ones(final int itemSize, final int... shape) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                return new CompoundByteDataset(itemSize, shape).fill(1);<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>         * Create a compound dataset using last dimension of given dataset<a name="line.371"></a>
+<span class="sourceLineNo">372</span>         * @param a<a name="line.372"></a>
+<span class="sourceLineNo">373</span>         * @param shareData if true, then share data when possible otherwise copy it<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * @return compound dataset<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         */<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        public static CompoundByteDataset createCompoundDatasetWithLastDimension(final Dataset a, final boolean shareData) {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                if (a.getElementsPerItem() != 1) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                        logger.error("Need a single-element dataset");<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                        throw new IllegalArgumentException("Need a single-element dataset");<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                }<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                if (a.getDType() != Dataset.INT8) { // DATA_TYPE<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                        logger.error("Dataset type must be byte"); // PRIM_TYPE<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                        throw new IllegalArgumentException("Dataset type must be byte"); // PRIM_TYPE<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                }<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span>                final int[] shape = a.getShapeRef();<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                if (shape == null) {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                        return new CompoundByteDataset(0);<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>                final int rank = shape.length - 1;<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                final int is = rank &lt; 0 ? 1 : shape[rank];<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>                CompoundByteDataset result = new CompoundByteDataset(is);<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                result.shape = rank &gt; 0 ? Arrays.copyOf(shape, rank) : (rank &lt; 0 ? new int[0] : new int[] {1});<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                result.size = ShapeUtils.calcSize(result.shape);<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                result.odata = shareData ? a.flatten().getBuffer() : a.clone().getBuffer();<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                result.setName(a.getName());<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                result.setData();<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                return result;<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 ByteDataset asNonCompoundDataset(final boolean shareData) { // CLASS_TYPE<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                ByteDataset result = new ByteDataset(); // CLASS_TYPE<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                final int is = getElementsPerItem();<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                final int rank = is == 1 ? shape.length : shape.length + 1;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                final int[] nshape = Arrays.copyOf(shape, rank);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                if (is != 1)<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                        nshape[rank-1] = is;<a name="line.411"></a>
+<span class="sourceLineNo">412</span><a name="line.412"></a>
+<span class="sourceLineNo">413</span>                result.shape = nshape;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                result.size = ShapeUtils.calcSize(nshape);<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                result.odata = shareData &amp;&amp; isContiguous() ? data : clone().getBuffer();<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                result.setName(name);<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                result.setData();<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                return result;<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 CompoundByteDataset fill(Object obj) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                setDirty();<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                if (obj instanceof Complex) {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                        obj = new Complex(((Complex) obj).getReal(), 0);<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                }<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                byte[] vr = DTypeUtils.toByteArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                IndexIterator iter = getIterator();<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span>                while (iter.hasNext()) {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                                data[iter.index + i] = vr[i]; // PRIM_TYPE<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                        }<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                }<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span>                return this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.440"></a>
+<span class="sourceLineNo">441</span>         * @return data buffer as linear array<a name="line.441"></a>
+<span class="sourceLineNo">442</span>         */<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        public byte[] getData() { // PRIM_TYPE<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                return data;<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>        @Override<a name="line.447"></a>
+<span class="sourceLineNo">448</span>        protected int getBufferLength() {<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                if (data == null)<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                        return 0;<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                return data.length;<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 CompoundByteDataset getView(boolean deepCopyMetadata) {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                CompoundByteDataset view = new CompoundByteDataset(isize);<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                view.setData();<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                return view;<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>        /**<a name="line.462"></a>
+<span class="sourceLineNo">463</span>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.463"></a>
+<span class="sourceLineNo">464</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.464"></a>
+<span class="sourceLineNo">465</span>         *<a name="line.465"></a>
+<span class="sourceLineNo">466</span>         * @param index<a name="line.466"></a>
+<span class="sourceLineNo">467</span>         *            absolute index<a name="line.467"></a>
+<span class="sourceLineNo">468</span>         * @return values<a name="line.468"></a>
+<span class="sourceLineNo">469</span>         */<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        public byte[] getAbs(final int index) { // PRIM_TYPE<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                byte[] result = new byte[isize]; // PRIM_TYPE<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                        result[i] = data[index + i];<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                }<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                return result;<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>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.479"></a>
+<span class="sourceLineNo">480</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.480"></a>
+<span class="sourceLineNo">481</span>         *<a name="line.481"></a>
+<span class="sourceLineNo">482</span>         * @param index<a name="line.482"></a>
+<span class="sourceLineNo">483</span>         *            absolute index<a name="line.483"></a>
+<span class="sourceLineNo">484</span>         * @param values<a name="line.484"></a>
+<span class="sourceLineNo">485</span>         */<a name="line.485"></a>
+<span class="sourceLineNo">486</span>        public void getAbs(final int index, final byte[] values) { // PRIM_TYPE<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                        values[i] = data[index + i];<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                }<a name="line.489"></a>
+<span class="sourceLineNo">490</span>        }<a name="line.490"></a>
+<span class="sourceLineNo">491</span><a name="line.491"></a>
+<span class="sourceLineNo">492</span>        @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                return data[index] != 0;<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>        @Override<a name="line.497"></a>
+<span class="sourceLineNo">498</span>        public double getElementDoubleAbs(final int index) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                return data[index];<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 long getElementLongAbs(final int index) {<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                return data[index]; // OMIT_TOLONG_INT<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>        @Override<a name="line.507"></a>
+<span class="sourceLineNo">508</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                setDirty();<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                byte[] dsrc = (byte[]) src; // PRIM_TYPE<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                        data[dindex + i] = dsrc[sindex + i];<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>        /**<a name="line.516"></a>
+<span class="sourceLineNo">517</span>         * Set values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.517"></a>
+<span class="sourceLineNo">518</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.518"></a>
+<span class="sourceLineNo">519</span>         *<a name="line.519"></a>
+<span class="sourceLineNo">520</span>         * @param index<a name="line.520"></a>
+<span class="sourceLineNo">521</span>         *            absolute index<a name="line.521"></a>
+<span class="sourceLineNo">522</span>         * @param val<a name="line.522"></a>
+<span class="sourceLineNo">523</span>         *            new values<a name="line.523"></a>
+<span class="sourceLineNo">524</span>         */<a name="line.524"></a>
+<span class="sourceLineNo">525</span>        public void setAbs(final int index, final byte[] val) { // PRIM_TYPE<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                setDirty();<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                        data[index + i] = val[i];<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>        /**<a name="line.532"></a>
+<span class="sourceLineNo">533</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.533"></a>
+<span class="sourceLineNo">534</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.534"></a>
+<span class="sourceLineNo">535</span>         *<a name="line.535"></a>
+<span class="sourceLineNo">536</span>         * @param index<a name="line.536"></a>
+<span class="sourceLineNo">537</span>         *            absolute index<a name="line.537"></a>
+<span class="sourceLineNo">538</span>         * @param val<a name="line.538"></a>
+<span class="sourceLineNo">539</span>         *            new value<a name="line.539"></a>
+<span class="sourceLineNo">540</span>         */<a name="line.540"></a>
+<span class="sourceLineNo">541</span>        public void setAbs(final int index, final byte val) { // PRIM_TYPE<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                setDirty();<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                data[index] = val;<a name="line.543"></a>
+<span class="sourceLineNo">544</span>        }<a name="line.544"></a>
+<span class="sourceLineNo">545</span><a name="line.545"></a>
+<span class="sourceLineNo">546</span>        @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        public Object getObject() {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                return getByteArray(); // PRIM_TYPE<a name="line.548"></a>
+<span class="sourceLineNo">549</span>        }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>        @Override<a name="line.551"></a>
+<span class="sourceLineNo">552</span>        public Object getObject(final int i) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                return getByteArray(i); // PRIM_TYPE<a name="line.553"></a>
+<span class="sourceLineNo">554</span>        }<a name="line.554"></a>
+<span class="sourceLineNo">555</span><a name="line.555"></a>
+<span class="sourceLineNo">556</span>        @Override<a name="line.556"></a>
+<span class="sourceLineNo">557</span>        public Object getObject(final int i, final int j) {<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                return getByteArray(i, j); // PRIM_TYPE<a name="line.558"></a>
+<span class="sourceLineNo">559</span>        }<a name="line.559"></a>
+<span class="sourceLineNo">560</span><a name="line.560"></a>
+<span class="sourceLineNo">561</span>        @Override<a name="line.561"></a>
+<span class="sourceLineNo">562</span>        public Object getObject(final int... pos) {<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                return getByteArray(pos); // PRIM_TYPE<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>        @Override<a name="line.566"></a>
+<span class="sourceLineNo">567</span>        public byte[] getByteArray() {<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                byte[] result = new byte[isize];<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                int index = getFirst1DIndex();<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                }<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                return result;<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>        @Override<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        public byte[] getByteArray(final int i) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                byte[] result = new byte[isize];<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                int index = get1DIndex(i);<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                }<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                return result;<a name="line.583"></a>
+<span class="sourceLineNo">584</span>        }<a name="line.584"></a>
+<span class="sourceLineNo">585</span><a name="line.585"></a>
+<span class="sourceLineNo">586</span>        @Override<a name="line.586"></a>
+<span class="sourceLineNo">587</span>        public byte[] getByteArray(final int i, final int j) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                byte[] result = new byte[isize];<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                int index = get1DIndex(i, j);<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                }<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                return result;<a name="line.593"></a>
+<span class="sourceLineNo">594</span>        }<a name="line.594"></a>
+<span class="sourceLineNo">595</span><a name="line.595"></a>
+<span class="sourceLineNo">596</span>        @Override<a name="line.596"></a>
+<span class="sourceLineNo">597</span>        public byte[] getByteArray(final int... pos) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                byte[] result = new byte[isize];<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                int index = get1DIndex(pos);<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                }<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                return result;<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>        @Override<a name="line.606"></a>
+<span class="sourceLineNo">607</span>        public short[] getShortArray() {<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                short[] result = new short[isize];<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                int index = getFirst1DIndex();<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                }<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                return result;<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>        @Override<a name="line.616"></a>
+<span class="sourceLineNo">617</span>        public short[] getShortArray(final int i) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                short[] result = new short[isize];<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                int index = get1DIndex(i);<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                }<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                return result;<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>        @Override<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        public short[] getShortArray(final int i, final int j) {<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                short[] result = new short[isize];<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                int index = get1DIndex(i, j);<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                }<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                return result;<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>        @Override<a name="line.636"></a>
+<span class="sourceLineNo">637</span>        public short[] getShortArray(final int... pos) {<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                short[] result = new short[isize];<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                int index = get1DIndex(pos);<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                }<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                return result;<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>        @Override<a name="line.646"></a>
+<span class="sourceLineNo">647</span>        public int[] getIntArray() {<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                int[] result = new int[isize];<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                int index = getFirst1DIndex();<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>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                }<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                return result;<a name="line.653"></a>
+<span class="sourceLineNo">654</span>        }<a name="line.654"></a>
+<span class="sourceLineNo">655</span><a name="line.655"></a>
+<span class="sourceLineNo">656</span>        @Override<a name="line.656"></a>
+<span class="sourceLineNo">657</span>        public int[] getIntArray(final int i) {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                int[] result = new int[isize];<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                int index = get1DIndex(i);<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                }<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                return result;<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 int[] getIntArray(final int i, final int j) {<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                int[] result = new int[isize];<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                int index = get1DIndex(i, j);<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                }<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                return result;<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>        @Override<a name="line.676"></a>
+<span class="sourceLineNo">677</span>        public int[] getIntArray(final int... pos) {<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                int[] result = new int[isize];<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                int index = get1DIndex(pos);<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                }<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                return result;<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>        @Override<a name="line.686"></a>
+<span class="sourceLineNo">687</span>        public long[] getLongArray() {<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                long[] result = new long[isize];<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                int index = getFirst1DIndex();<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                }<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                return result;<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 long[] getLongArray(final int i) {<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                long[] result = new long[isize];<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                int index = get1DIndex(i);<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                }<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                return result;<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 long[] getLongArray(final int i, final int j) {<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                long[] result = new long[isize];<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                int index = get1DIndex(i, j);<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                }<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                return result;<a name="line.713"></a>
+<span class="sourceLineNo">714</span>        }<a name="line.714"></a>
+<span class="sourceLineNo">715</span><a name="line.715"></a>
+<span class="sourceLineNo">716</span>        @Override<a name="line.716"></a>
+<span class="sourceLineNo">717</span>        public long[] getLongArray(final int... pos) {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                long[] result = new long[isize];<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                int index = get1DIndex(pos);<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                }<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                return result;<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>        @Override<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        public float[] getFloatArray() {<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                float[] result = new float[isize];<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                int index = getFirst1DIndex();<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                }<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                return result;<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>        @Override<a name="line.736"></a>
+<span class="sourceLineNo">737</span>        public float[] getFloatArray(final int i) {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                float[] result = new float[isize];<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                int index = get1DIndex(i);<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                }<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                return result;<a name="line.743"></a>
+<span class="sourceLineNo">744</span>        }<a name="line.744"></a>
+<span class="sourceLineNo">745</span><a name="line.745"></a>
+<span class="sourceLineNo">746</span>        @Override<a name="line.746"></a>
+<span class="sourceLineNo">747</span>        public float[] getFloatArray(final int i, final int j) {<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                float[] result = new float[isize];<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                int index = get1DIndex(i, j);<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<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>        @Override<a name="line.756"></a>
+<span class="sourceLineNo">757</span>        public float[] getFloatArray(final int... pos) {<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                float[] result = new float[isize];<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                int index = get1DIndex(pos);<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                }<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                return result;<a name="line.763"></a>
+<span class="sourceLineNo">764</span>        }<a name="line.764"></a>
+<span class="sourceLineNo">765</span><a name="line.765"></a>
+<span class="sourceLineNo">766</span>        @Override<a name="line.766"></a>
+<span class="sourceLineNo">767</span>        public double[] getDoubleArray() {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                double[] result = new double[isize];<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                int index = getFirst1DIndex();<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                }<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                return result;<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>        @Override<a name="line.776"></a>
+<span class="sourceLineNo">777</span>        public double[] getDoubleArray(final int i) {<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                double[] result = new double[isize];<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                int index = get1DIndex(i);<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                }<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                return result;<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>        @Override<a name="line.786"></a>
+<span class="sourceLineNo">787</span>        public double[] getDoubleArray(final int i, final int j) {<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                double[] result = new double[isize];<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                int index = get1DIndex(i, j);<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                }<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                return result;<a name="line.793"></a>
+<span class="sourceLineNo">794</span>        }<a name="line.794"></a>
+<span class="sourceLineNo">795</span><a name="line.795"></a>
+<span class="sourceLineNo">796</span>        @Override<a name="line.796"></a>
+<span class="sourceLineNo">797</span>        public double[] getDoubleArray(final int... pos) {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                double[] result = new double[isize];<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                int index = get1DIndex(pos);<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return result;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        @Override<a name="line.806"></a>
+<span class="sourceLineNo">807</span>        public void getDoubleArrayAbs(final int index, final double[] darray) {<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                        darray[i] = data[index + 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><a name="line.812"></a>
+<span class="sourceLineNo">813</span>        @Override<a name="line.813"></a>
+<span class="sourceLineNo">814</span>        public String getString() {<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                return getStringAbs(getFirst1DIndex());<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>        @Override<a name="line.818"></a>
+<span class="sourceLineNo">819</span>        public String getString(final int i) {<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                return getStringAbs(get1DIndex(i));<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 String getString(final int i, final int j) {<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                return getStringAbs(get1DIndex(i, j));<a name="line.825"></a>
+<span class="sourceLineNo">826</span>        }<a name="line.826"></a>
+<span class="sourceLineNo">827</span><a name="line.827"></a>
+<span class="sourceLineNo">828</span>        @Override<a name="line.828"></a>
+<span class="sourceLineNo">829</span>        public String getString(final int... pos) {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                return getStringAbs(get1DIndex(pos));<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>        protected double getFirstValue() {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                return data[getFirst1DIndex()];<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>        protected double getFirstValue(int i) {<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                return data[get1DIndex(i)];<a name="line.840"></a>
+<span class="sourceLineNo">841</span>        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span><a name="line.842"></a>
+<span class="sourceLineNo">843</span>        @Override<a name="line.843"></a>
+<span class="sourceLineNo">844</span>        protected double getFirstValue(int i, int j) {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                return data[get1DIndex(i, j)];<a name="line.845"></a>
+<span class="sourceLineNo">846</span>        }<a name="line.846"></a>
+<span class="sourceLineNo">847</span><a name="line.847"></a>
+<span class="sourceLineNo">848</span>        @Override<a name="line.848"></a>
+<span class="sourceLineNo">849</span>        protected double getFirstValue(final int... pos) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                return data[get1DIndex(pos)];<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>        @Override<a name="line.853"></a>
+<span class="sourceLineNo">854</span>        public Object getObjectAbs(final int index) {<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                byte[] result = new byte[isize]; // PRIM_TYPE<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        result[i] = data[index + i];<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                }<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                return result;<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 String getStringAbs(final int index) {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                StringBuilder s = new StringBuilder();<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                s.append('(');<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                s.append(stringFormat == null ? String.format("%d", data[index]) : // FORMAT_STRING<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                        stringFormat.format(data[index]));<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                for (int i = 1; i &lt; isize; i++) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                        s.append(' ');<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                        s.append(stringFormat == null ? String.format("%d", data[index + i]) : // FORMAT_STRING<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                                stringFormat.format(data[index + i]));<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                }<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                s.append(')');<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                return s.toString();<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>        @Override<a name="line.877"></a>
+<span class="sourceLineNo">878</span>        public void setObjectAbs(final int index, Object obj) {<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                if (obj instanceof Complex) {<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                        obj = new Complex(((Complex) obj).getReal(), 0);<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                }<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                byte[] oa = DTypeUtils.toByteArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                setAbs(index, oa);<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>        @Override<a name="line.886"></a>
+<span class="sourceLineNo">887</span>        public void set(final Object obj) {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                setItem(DTypeUtils.toByteArray(obj, isize)); // CLASS_TYPE<a name="line.888"></a>
+<span class="sourceLineNo">889</span>        }<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>        @Override<a name="line.891"></a>
+<span class="sourceLineNo">892</span>        public void set(final Object obj, final int i) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                setItem(DTypeUtils.toByteArray(obj, isize), i); // CLASS_TYPE<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 void set(final Object obj, final int i, final int j) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                setItem(DTypeUtils.toByteArray(obj, isize), i, j); // CLASS_TYPE<a name="line.898"></a>
+<span class="sourceLineNo">899</span>        }<a name="line.899"></a>
+<span class="sourceLineNo">900</span><a name="line.900"></a>
+<span class="sourceLineNo">901</span>        @Override<a name="line.901"></a>
+<span class="sourceLineNo">902</span>        public void set(final Object obj, int... pos) {<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        pos = new int[shape.length];<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>                setItem(DTypeUtils.toByteArray(obj, isize), pos); // CLASS_TYPE<a name="line.907"></a>
+<span class="sourceLineNo">908</span>        }<a name="line.908"></a>
+<span class="sourceLineNo">909</span><a name="line.909"></a>
+<span class="sourceLineNo">910</span>        /**<a name="line.910"></a>
+<span class="sourceLineNo">911</span>         * Set values at first position. The dataset must not be null<a name="line.911"></a>
+<span class="sourceLineNo">912</span>         *<a name="line.912"></a>
+<span class="sourceLineNo">913</span>         * @param d<a name="line.913"></a>
+<span class="sourceLineNo">914</span>         * @since 2.0<a name="line.914"></a>
+<span class="sourceLineNo">915</span>         */<a name="line.915"></a>
+<span class="sourceLineNo">916</span>        public void setItem(final byte[] d) { // PRIM_TYPE<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                if (d.length &gt; isize) {<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                }<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                setAbs(getFirst1DIndex(), d);<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>        /**<a name="line.923"></a>
+<span class="sourceLineNo">924</span>         * Set values at given position. The dataset must be 1D<a name="line.924"></a>
+<span class="sourceLineNo">925</span>         *<a name="line.925"></a>
+<span class="sourceLineNo">926</span>         * @param d<a name="line.926"></a>
+<span class="sourceLineNo">927</span>         * @param i<a name="line.927"></a>
+<span class="sourceLineNo">928</span>         */<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        public void setItem(final byte[] d, final int i) { // PRIM_TYPE<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                if (d.length &gt; isize) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                }<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                setAbs(get1DIndex(i), d);<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>         * Set values at given position. The dataset must be 1D<a name="line.937"></a>
+<span class="sourceLineNo">938</span>         *<a name="line.938"></a>
+<span class="sourceLineNo">939</span>         * @param d<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>         */<a name="line.942"></a>
+<span class="sourceLineNo">943</span>        public void setItem(final byte[] d, final int i, final int j) { // PRIM_TYPE<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                if (d.length &gt; isize) {<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                }<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                setAbs(get1DIndex(i, j), d);<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>         * Set values at given position<a name="line.951"></a>
+<span class="sourceLineNo">952</span>         *<a name="line.952"></a>
+<span class="sourceLineNo">953</span>         * @param d<a name="line.953"></a>
+<span class="sourceLineNo">954</span>         * @param pos<a name="line.954"></a>
+<span class="sourceLineNo">955</span>         */<a name="line.955"></a>
+<span class="sourceLineNo">956</span>        public void setItem(final byte[] d, final int... pos) { // PRIM_TYPE<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                if (d.length &gt; isize) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                }<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                setAbs(get1DIndex(pos), d);<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>        private void setDoubleArrayAbs(final int index, final double[] d) {<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                for (int i = 0; i &lt; isize; i++)<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                        data[index + i] = (byte) d[i]; // ADD_CAST<a name="line.965"></a>
+<span class="sourceLineNo">966</span>        }<a name="line.966"></a>
+<span class="sourceLineNo">967</span><a name="line.967"></a>
+<span class="sourceLineNo">968</span>        @Override<a name="line.968"></a>
+<span class="sourceLineNo">969</span>        public void resize(int... newShape) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                setDirty();<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                IndexIterator iter = getIterator();<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                int nsize = ShapeUtils.calcSize(newShape);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                byte[] ndata; // PRIM_TYPE<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                try {<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                        ndata = createArray(nsize);<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                } catch (Throwable t) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                        throw new IllegalArgumentException(t);<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>                int i = 0;<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                while (iter.hasNext() &amp;&amp; i &lt; nsize) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                ndata[i++] = data[iter.index + j];<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>                odata = data = ndata;<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                size = nsize;<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                shape = newShape;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                stride = null;<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                offset = 0;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                base = null;<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>        @Override<a name="line.996"></a>
+<span class="sourceLineNo">997</span>        public CompoundByteDataset getSlice(final SliceIterator siter) {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                CompoundByteDataset result = new CompoundByteDataset(isize, siter.getShape());<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                byte[] rdata = result.data; // PRIM_TYPE<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                IndexIterator riter = result.getIterator();<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span><a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                while (siter.hasNext() &amp;&amp; riter.hasNext()) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                        for (int i = 0; i &lt; isize; i++)<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                rdata[riter.index + i] = data[siter.index + i];<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>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                return result;<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>        @Override<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>        public ByteDataset getElementsView(int element) { // CLASS_TYPE<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                if (element &lt; 0)<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        element += isize;<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<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>                ByteDataset view = new ByteDataset(shape); // CLASS_TYPE<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span><a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                copyToView(this, view, true, true);<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                view.setData();<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                if (view.stride == null) {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                        int[] offset = new int[1];<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                        view.stride = createStrides(this, offset);<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                        view.offset = offset[0] + element;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                        view.base = base == null ? this : base;<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                } else {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                        view.offset += element;<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>                return view;<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>        }<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span><a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>        @Override<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>        public ByteDataset getElements(int element) { // CLASS_TYPE<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                final ByteDataset elements = new ByteDataset(shape); // CLASS_TYPE<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span><a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                copyElements(elements, element);<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                return elements;<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>        @Override<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>        public void copyElements(Dataset destination, int element) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                if (element &lt; 0)<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        element += isize;<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                if (getElementClass() != destination.getElementClass()) {<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<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>                final IndexIterator it = getIterator(element);<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                final byte[] elements = ((ByteDataset) destination).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                destination.setDirty();<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span><a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                int n = 0;<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                while (it.hasNext()) {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                        elements[n] = data[it.index];<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        n++;<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>        }<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span><a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>        @Override<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>        public void setElements(Dataset source, int element) {<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                setDirty();<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                if (element &lt; 0)<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                        element += isize;<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                }<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                if (getElementClass() != source.getElementClass()) {<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        throw new IllegalArgumentException("Element class of destination does not match this 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>                final IndexIterator it = getIterator(element);<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                final byte[] elements = ((ByteDataset) source).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span><a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                int n = 0;<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                while (it.hasNext()) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                        data[it.index] = elements[n];<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                        n++;<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>        @Override<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                IndexIterator riter = result.getIterator();<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                result.setDirty();<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span><a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                byte[] rdata = ((CompoundByteDataset) result).data; // PRIM_TYPE<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span><a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                rdata[riter.index + i] = data[iter.index + i];<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>        @Override<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>        public CompoundByteDataset setByBoolean(final Object o, Dataset selection) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                setDirty();<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                if (o instanceof Dataset) {<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                        Dataset ds = (Dataset) o;<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        if (length != ds.getSize()) {<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                                throw new IllegalArgumentException(<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        IndexIterator iter = ds.getIterator();<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                        BooleanIterator biter = getBooleanIterator(selection);<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span><a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                }<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span><a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                data[biter.index + i] = (byte) ds.getElementLongAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<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>                        } else {<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                        data[biter.index] = (byte) ds.getElementLongAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                                data[biter.index + i] = 0;<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>                        try {<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                final byte[] vr = DTypeUtils.toByteArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span><a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                final BooleanIterator biter = getBooleanIterator(selection);<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span><a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                while (biter.hasNext()) {<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                                data[biter.index + i] = vr[i];<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>                        } catch (IllegalArgumentException e) {<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>        }<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span><a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>        @Override<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        public CompoundByteDataset setBy1DIndex(final Object o, Dataset index) {<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                setDirty();<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                if (o instanceof Dataset) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                        Dataset ds = (Dataset) o;<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                        if (index.getSize() != ds.getSize()) {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                throw new IllegalArgumentException(<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                                "Number of items in selection does not match number of items in dataset");<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span><a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                        IndexIterator oiter = ds.getIterator();<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span><a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                double[] temp = new double[isize];<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                        ((AbstractCompoundDataset) ds).getDoubleArrayAbs(oiter.index, temp);<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                        setDoubleArrayAbs(iter.index, temp);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                }<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                                                data[iter.index + i] = (byte) ds.getElementLongAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<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>                        } else {<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>                                        data[iter.index] = (byte) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                                                data[iter.index + i] = 0;<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>                } else {<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                        try {<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                                final byte[] vr = DTypeUtils.toByteArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span><a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                                final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                while (iter.hasNext()) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                                        setAbs(iter.index, vr);<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                }<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                        } catch (IllegalArgumentException e) {<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<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>        @Override<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>        public CompoundByteDataset setByIndexes(final Object o, final Object... indexes) {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                setDirty();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                final int[] pos = iter.getPos();<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span><a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                if (o instanceof Dataset) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                        Dataset ds = (Dataset) o;<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                                throw new IllegalArgumentException(<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                                                "Number of items in selection does not match number of items in dataset");<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                        }<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span><a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                        IndexIterator oiter = ds.getIterator();<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span><a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                }<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span><a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                double[] temp = new double[isize];<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        ((AbstractCompoundDataset) ds).getDoubleArray(temp, pos);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                        setDoubleArrayAbs(get1DIndex(pos), temp);<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                }<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                        } else {<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        int n = get1DIndex(pos);<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                        data[n] = (byte) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                                data[n + i] = 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>                } else {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                        try {<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                                final byte[] vr = DTypeUtils.toByteArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                                while (iter.hasNext()) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                        setAbs(get1DIndex(pos), vr);<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                        } catch (IllegalArgumentException e) {<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<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>        @Override<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>        CompoundByteDataset setSlicedView(Dataset view, Dataset d) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                setDirty();<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span><a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                final int is = view.getElementsPerItem();<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span><a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                if (is &gt; 1) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                        if (d.getElementsPerItem() == 1) {<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                while (it.hasNext()) {<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                        final byte bv = (byte) it.bLong; // PRIM_TYPE // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                        data[it.aIndex] = bv;<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                                data[it.aIndex + j] = bv;<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                                        }<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                        } else {<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                while (it.hasNext()) {<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                                        data[it.aIndex] = (byte) it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                                data[it.aIndex + j] = (byte) d.getElementLongAbs(it.bIndex + j); // GET_ELEMENT_WITH_CAST<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>                } else {<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                        while (it.hasNext()) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                data[it.aIndex] = (byte) it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                        }<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                return this;<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>        @Override<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>        public CompoundByteDataset setSlice(final Object o, final IndexIterator siter) {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                setDirty();<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                if (o instanceof IDataset) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                        final IDataset ds = (IDataset) o;<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                        final int[] oshape = ds.getShape();<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span><a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                throw new IllegalArgumentException(String.format(<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                                                Arrays.toString(siter.getShape())));<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                        }<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span><a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>                        if (ds instanceof Dataset) {<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                                final Dataset ads = (Dataset) ds;<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                IndexIterator oiter = ads.getIterator();<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span><a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                if (ds instanceof AbstractCompoundDataset) {<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                                        if (isize != ads.getElementsPerItem()) {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                                throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                                        data[siter.index + i] = (byte) ads.getElementLongAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                                }<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        }<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                } else {<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                                data[siter.index] = (byte) ads.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                                        data[siter.index + i] = 0;<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                                }<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                        }<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                }<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                        } else {<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                                final int[] pos = oiter.getPos();<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span><a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                                if (ds.getElementsPerItem() == 1) {<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                                                data[siter.index] = ds.getByte(pos); // PRIM_TYPE<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                                        data[siter.index + i] = 0;<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                                }<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>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                                                final byte[] val = DTypeUtils.toByteArray(ds.getObject(pos), isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                                        data[siter.index + i] = val[i];<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>                } else {<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                        try {<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                                final byte[] vr = DTypeUtils.toByteArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span><a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                while (siter.hasNext()) {<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                                                data[siter.index + i] = vr[i];<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>                        } catch (IllegalArgumentException e) {<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                        }<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                }<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                return this;<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>        }<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span><a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>        @Override<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                byte[] ddata = (byte[]) dest.getBuffer(); // PRIM_TYPE<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span><a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                if (dest.getElementsPerItem() != isize) {<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                        throw new IllegalArgumentException(String.format(<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                        "Destination dataset is incompatible as it has %d elements per item not %d",<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                                        dest.getElementsPerItem(), isize));<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>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span><a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span><a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                }<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span><a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                dest.setDirty();<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                                ddata[diter.index + i] = data[siter.index + i];<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                        }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                }<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>        }<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span><a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>        @Override<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                setDirty();<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                byte[] sdata = (byte[]) src; // PRIM_TYPE<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span><a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span><a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                        throw new IllegalArgumentException("source array is not large enough");<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                }<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span><a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                for (int i = 0; siter.hasNext(); i++) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                data[siter.index + j] = sdata[isize * i + j];<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><a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>        @Override<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>        public boolean containsNans() {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                return false;<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>        @Override<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>        public boolean containsInfs() {<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                return false;<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>        }<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span><a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>        @Override<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>        public boolean containsInvalidNumbers() {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                return false;<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 CompoundByteDataset iadd(final Object b) {<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                setDirty();<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                int is = bds.getElementsPerItem();<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                if (bds.getSize() == 1) {<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>                        final IndexIterator it = getIterator();<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        final int bOffset = bds.getOffset();<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                        if (is == 1) {<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                                if (useLong) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                                        while (it.hasNext()) {<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                                        data[it.index + i] += lb;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                                }<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                        }<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                } else {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                        while (it.hasNext()) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                        data[it.index + i] += db;<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>                                }<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                        } else if (is == isize) {<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                                if (useLong) {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                        while (it.hasNext()) {<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                        data[it.index + i] += bds.getElementLongAbs(i);<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>                                } else {<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        while (it.hasNext()) {<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                        data[it.index + i] += bds.getElementDoubleAbs(i);<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                }<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                        }<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                }<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                        } else {<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                        }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                } else {<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                        it.setOutputDouble(!useLong);<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                        if (is == 1) {<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                if (useLong) {<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                                        while (it.hasNext()) {<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                                                final long lb = it.bLong;<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                                data[it.aIndex] += lb;<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                                        data[it.aIndex + i] += lb;<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 {<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                        while (it.hasNext()) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                                                final double db = it.bDouble;<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                                                data[it.aIndex] += db;<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                                        data[it.aIndex + i] += db;<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>                                }<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                        } else if (is == isize) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                if (useLong) {<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                        while (it.hasNext()) {<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                                data[it.aIndex] += it.bLong;<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                                        data[it.aIndex + i] += bds.getElementLongAbs(it.bIndex + i);<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>                                } else {<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                                        while (it.hasNext()) {<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                                                        data[it.aIndex + i] += bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>                                                }<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>                        } else {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                        }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                }<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                return this;<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>        }<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span><a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>        @Override<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>        public CompoundByteDataset isubtract(final Object b) {<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                setDirty();<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                int is = bds.getElementsPerItem();<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                if (bds.getSize() == 1) {<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                        final IndexIterator it = getIterator();<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                        final int bOffset = bds.getOffset();<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>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                        while (it.hasNext()) {<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                        data[it.index + i] -= lb;<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                        }<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                } else {<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<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] -= db;<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 if (is == isize) {<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                                if (useLong) {<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                                        while (it.hasNext()) {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                                        data[it.index + i] -= bds.getElementLongAbs(i);<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>                                } else {<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                        while (it.hasNext()) {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                                        data[it.index + i] -= bds.getElementDoubleAbs(i);<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                                }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                        }<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                }<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                        } else {<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                        }<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                } else {<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                        it.setOutputDouble(!useLong);<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                        if (is == 1) {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                if (useLong) {<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                        while (it.hasNext()) {<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                                final long lb = it.bLong;<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                                data[it.aIndex] += lb;<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                        data[it.aIndex + i] -= lb;<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>                                } else {<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                                        while (it.hasNext()) {<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                                                final double db = it.bDouble;<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                                                data[it.aIndex] += db;<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>                                                        data[it.aIndex + i] -= db;<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>                                }<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                        } else if (is == isize) {<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                if (useLong) {<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                        while (it.hasNext()) {<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                                data[it.aIndex] += it.bLong;<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                                        data[it.aIndex + i] -= bds.getElementLongAbs(it.bIndex + i);<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>                                } else {<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                                        while (it.hasNext()) {<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                                                        data[it.aIndex + i] -= bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                                                }<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                        }<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                }<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                        } else {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                return this;<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>        }<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span><a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>        @Override<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>        public CompoundByteDataset imultiply(final Object b) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                setDirty();<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                int is = bds.getElementsPerItem();<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                if (bds.getSize() == 1) {<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                        final IndexIterator it = getIterator();<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                        final int bOffset = bds.getOffset();<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                        if (useLong) {<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                                if (is == 1) {<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                                        while (it.hasNext()) {<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                                        data[it.index + i] *= lb;<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>                                } else if (is == isize) {<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                        while (it.hasNext()) {<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                                        data[it.index + i] *= bds.getElementLongAbs(i);<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                                }<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                        }<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                } else {<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                                if (is == 1) {<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                                        while (it.hasNext()) {<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                                                        data[it.index + i] *= db;<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                                }<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                        }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                } else if (is == isize) {<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                        while (it.hasNext()) {<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.index + i] *= bds.getElementDoubleAbs(i);<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 {<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                }<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                        }<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                } else {<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                        it.setOutputDouble(!useLong);<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                        if (useLong) {<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                if (is == 1) {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                                        while (it.hasNext()) {<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                                                final double lb = it.bLong;<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                                                        data[it.aIndex + i] *= lb;<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>                                } else if (is == isize) {<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                                        while (it.hasNext()) {<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                                                data[it.aIndex] *= it.bLong;<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                                                        data[it.aIndex + i] *= bds.getElementLongAbs(it.bIndex + i);<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                                }<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                        }<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                } else {<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                                if (is == 1) {<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                                        while (it.hasNext()) {<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>                                                final double db = it.bDouble;<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                                        data[it.aIndex + i] *= db;<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>                                } else if (is == isize) {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                        while (it.hasNext()) {<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                                data[it.aIndex] *= it.bDouble;<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                                        data[it.aIndex + i] *= bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                                }<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                        }<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                } else {<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                }<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                        }<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                return this;<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>        }<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span><a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>        @Override<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>        public CompoundByteDataset idivide(final Object b) {<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                setDirty();<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                int is = bds.getElementsPerItem();<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                if (bds.getSize() == 1) {<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                        final IndexIterator it = getIterator();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>                        final int bOffset = bds.getOffset();<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                        if (useLong) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                if (is == 1) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                        if (lb == 0) { // INT_USE<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                                fill(0); // INT_USE<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                        } else { // INT_USE<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                        while (it.hasNext()) {<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                                        data[it.index + i] /= lb;<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>                                        } // INT_USE<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                } else if (is == isize) {<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                        while (it.hasNext()) {<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                                                        final long lb = bds.getElementLongAbs(i);<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                                try {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                                                                data[it.index + i] /= lb; // INT_EXCEPTION<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                                } catch (ArithmeticException e) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                        data[it.index + i] = 0;<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>                                } else {<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                }<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                        } else {<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                if (is == 1) {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                        if (db == 0) { // INT_USE<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                fill(0); // INT_USE<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                        } else { // INT_USE<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                        while (it.hasNext()) {<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                                        data[it.index + i] /= db;<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>                                        } // INT_USE<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                } else if (is == isize) {<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                        while (it.hasNext()) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                                        final double db = bds.getElementDoubleAbs(i);<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                try {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                                                data[it.index + i] /= db; // INT_EXCEPTION<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                } catch (ArithmeticException e) {<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        data[it.index + i] = 0;<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                }<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                                }<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                        }<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                } else {<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                        it.setOutputDouble(!useLong);<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                        if (useLong) {<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 long lb = it.bLong;<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                if (lb == 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] /= lb;<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 long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                try {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                                                data[it.aIndex + i] /= lb; // INT_EXCEPTION<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                } catch (ArithmeticException e) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                        data[it.aIndex + i] = 0;<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>                                        }<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                                } else {<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                                }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                        } else {<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>                                if (is == 1) {<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                                        while (it.hasNext()) {<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                                                final double db = it.bDouble;<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                                                if (db == 0) { // INT_USE<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                                                        for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                                                        }// INT_USE<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                                                } else { // INT_USE<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                                                        data[it.aIndex + i] /= db;<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                                }<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                                } // INT_USE<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                        }<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                } else if (is == isize) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                        while (it.hasNext()) {<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                try {<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                                                data[it.aIndex + i] /= db; // INT_EXCEPTION<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                } catch (ArithmeticException e) {<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                                        data[it.aIndex + i] = 0;<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>                                        }<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                } else {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                return this;<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>        }<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span><a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>        @Override<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>        public CompoundByteDataset ifloor() {<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                return this;<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>        @Override<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>        public CompoundByteDataset iremainder(final Object b) {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                setDirty();<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                int is = bds.getElementsPerItem();<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                if (bds.getSize() == 1) {<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                        final IndexIterator it = getIterator();<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                        final int bOffset = bds.getOffset();<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                        if (useLong) {<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                if (is == 1) {<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                                        if (lb == 0) { // INT_USE<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                                                fill(0); // INT_USE<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                                        } else { // INT_USE<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                                        while (it.hasNext()) {<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                                                        data[it.index + i] %= lb;<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>                                        } // INT_USE<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                } else if (is == isize) {<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                                        while (it.hasNext()) {<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                try {<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                                                data[it.index + i] %= bds.getElementLongAbs(i); // INT_EXCEPTION<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                } catch (ArithmeticException e) {<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                        data[it.index + i] = 0;<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>                                        }<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                } else {<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                                if (is == 1) {<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                        if (db == 0) { // INT_USE<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                                                fill(0); // INT_USE<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                        } else { // INT_USE<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                        while (it.hasNext()) {<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                                        data[it.index + i] %= db;<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>                                        } // INT_USE<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                                } else if (is == isize) {<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                                        while (it.hasNext()) {<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span>                                try {<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                                                                data[it.index + i] %= bds.getElementDoubleAbs(i); // INT_EXCEPTION<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                } catch (ArithmeticException e) {<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                        data[it.index + i] = 0;<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>                                } else {<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                } else {<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                        it.setOutputDouble(!useLong);<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                        if (useLong) {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                if (is == 1) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                        while (it.hasNext()) {<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                final long lb = it.bLong;<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                                if (lb == 0) { // INT_USE<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                        for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                                } else { // INT_USE<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                                                for (int i = 0; i &lt; isize; i++)<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                                        data[it.aIndex + i] %= lb;<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                                } // INT_USE<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                        }<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                } else if (is == isize) {<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                        while (it.hasNext()) {<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                                try {<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                                                                data[it.aIndex + i] %= lb; // INT_EXCEPTION<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                                } catch (ArithmeticException e) {<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>                                        data[it.aIndex + i] = 0;<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                                }<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                                                }<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>                                        }<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                                } else {<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>                                }<a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>                        } else {<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span>                                if (is == 1) {<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>                                        while (it.hasNext()) {<a name="line.1896"></a>
+<span class="sourceLineNo">1897</span>                                                final double db = it.bDouble;<a name="line.1897"></a>
+<span class="sourceLineNo">1898</span>                                                if (db == 0) { // INT_USE<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>                                                        for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>                                                } else { // INT_USE<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>                                                        data[it.aIndex + i] %= db;<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span>                                                }<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>                                } else if (is == isize) {<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span>                                        while (it.hasNext()) {<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span>                                try {<a name="line.1911"></a>
+<span class="sourceLineNo">1912</span>                                                                data[it.aIndex + i] %= db; // INT_EXCEPTION<a name="line.1912"></a>
+<span class="sourceLineNo">1913</span>                                } catch (ArithmeticException e) {<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>                                        data[it.aIndex + i] = 0;<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>                                }<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>                                                }<a name="line.1916"></a>
+<span class="sourceLineNo">1917</span>                                        }<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span>                                } else {<a name="line.1918"></a>
+<span class="sourceLineNo">1919</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                }<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>                return this;<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span>        }<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span><a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>        @Override<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>        public CompoundByteDataset ipower(final Object b) {<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>                setDirty();<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>                final int is = bds.getElementsPerItem();<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>                if (bds.getSize() == 1) {<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>                        final int bOffset = bds.getOffset();<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span>                        final double vr = bds.getElementDoubleAbs(bOffset);<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span>                        final IndexIterator it = getIterator();<a name="line.1934"></a>
+<span class="sourceLineNo">1935</span>                        if (bds.isComplex()) {<a name="line.1935"></a>
+<span class="sourceLineNo">1936</span>                                final double vi = bds.getElementDoubleAbs(bOffset + 1);<a name="line.1936"></a>
+<span class="sourceLineNo">1937</span>                                if (vi == 0) {<a name="line.1937"></a>
+<span class="sourceLineNo">1938</span>                                        while (it.hasNext()) {<a name="line.1938"></a>
+<span class="sourceLineNo">1939</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1939"></a>
+<span class="sourceLineNo">1940</span>                                                        final double v = Math.pow(data[it.index + i], vr);<a name="line.1940"></a>
+<span class="sourceLineNo">1941</span>                                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1941"></a>
+<span class="sourceLineNo">1942</span>                                                                data[it.index + i] = 0; // INT_USE<a name="line.1942"></a>
+<span class="sourceLineNo">1943</span>                                                        } else { // INT_USE<a name="line.1943"></a>
+<span class="sourceLineNo">1944</span>                                                        data[it.index + i] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1944"></a>
+<span class="sourceLineNo">1945</span>                                                        } // INT_USE<a name="line.1945"></a>
+<span class="sourceLineNo">1946</span>                                                }<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span>                                        }<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span>                                } else {<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span>                                        final Complex zv = new Complex(vr, vi);<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span>                                        while (it.hasNext()) {<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1951"></a>
+<span class="sourceLineNo">1952</span>                                                        Complex zd = new Complex(data[it.index + i], 0);<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span>                                                        final double v = zd.pow(zv).getReal();<a name="line.1953"></a>
+<span class="sourceLineNo">1954</span>                                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1954"></a>
+<span class="sourceLineNo">1955</span>                                                                data[it.index + i] = 0; // INT_USE<a name="line.1955"></a>
+<span class="sourceLineNo">1956</span>                                                        } else { // INT_USE<a name="line.1956"></a>
+<span class="sourceLineNo">1957</span>                                                        data[it.index + i] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1957"></a>
+<span class="sourceLineNo">1958</span>                                                        } // INT_USE<a name="line.1958"></a>
+<span class="sourceLineNo">1959</span>                                                }<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span>                                        }<a name="line.1960"></a>
+<span class="sourceLineNo">1961</span>                                }<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span>                        } else if (is == 1) {<a name="line.1962"></a>
+<span class="sourceLineNo">1963</span>                                while (it.hasNext()) {<a name="line.1963"></a>
+<span class="sourceLineNo">1964</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1964"></a>
+<span class="sourceLineNo">1965</span>                                                final double v = Math.pow(data[it.index + i], vr);<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.index + i] = 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.index + i] = (byte) (long) 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>                                        }<a name="line.1971"></a>
+<span class="sourceLineNo">1972</span>                                }<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span>                        } else if (is == isize) {<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span>                                while (it.hasNext()) {<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span>                                                final double v = Math.pow(data[it.index + i], bds.getElementDoubleAbs(i));<a name="line.1976"></a>
+<span class="sourceLineNo">1977</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1977"></a>
+<span class="sourceLineNo">1978</span>                                                        data[it.index + i] = 0; // INT_USE<a name="line.1978"></a>
+<span class="sourceLineNo">1979</span>                                                } else { // INT_USE<a name="line.1979"></a>
+<span class="sourceLineNo">1980</span>                                                data[it.index + i] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1980"></a>
+<span class="sourceLineNo">1981</span>                                                } // INT_USE<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>                } else {<a name="line.1985"></a>
+<span class="sourceLineNo">1986</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1986"></a>
+<span class="sourceLineNo">1987</span>                        it.setOutputDouble(true);<a name="line.1987"></a>
+<span class="sourceLineNo">1988</span>                        if (bds.isComplex()) {<a name="line.1988"></a>
+<span class="sourceLineNo">1989</span>                                while (it.hasNext()) {<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.1990"></a>
+<span class="sourceLineNo">1991</span>                                        double v = new Complex(it.aDouble, 0).pow(zv).getReal();<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1993"></a>
+<span class="sourceLineNo">1994</span>                                        } else { // INT_USE<a name="line.1994"></a>
+<span class="sourceLineNo">1995</span>                                        data[it.aIndex] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1995"></a>
+<span class="sourceLineNo">1996</span>                                        } // INT_USE<a name="line.1996"></a>
+<span class="sourceLineNo">1997</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1997"></a>
+<span class="sourceLineNo">1998</span>                                                v = new Complex(data[it.aIndex + i], 0).pow(zv).getReal();<a name="line.1998"></a>
+<span class="sourceLineNo">1999</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1999"></a>
+<span class="sourceLineNo">2000</span>                                                        data[it.aIndex + i] = 0; // INT_USE<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span>                                                } else { // INT_USE<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span>                                                data[it.aIndex + i] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>                                                } // INT_USE<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>                                        }<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span>                                }<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>                        } else {<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>                                while (it.hasNext()) {<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span>                                        double v = Math.pow(it.aDouble, it.bDouble);<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span>                                        } else { // INT_USE<a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>                                        data[it.aIndex] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>                                        } // INT_USE<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>                                                v = Math.pow(data[it.aIndex + i], bds.getElementDoubleAbs(it.bIndex + i));<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span>                                                        data[it.aIndex + i] = 0; // INT_USE<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>                                                } else { // INT_USE<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span>                                                data[it.aIndex + i] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>                                                } // INT_USE<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>                                        }<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>                                }<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>                        }<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>                }<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span>                return this;<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>        @Override<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.2030"></a>
+<span class="sourceLineNo">2031</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.2031"></a>
+<span class="sourceLineNo">2032</span>                it.setOutputDouble(true);<a name="line.2032"></a>
+<span class="sourceLineNo">2033</span>                double sum = 0;<a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>                double comp = 0;<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>                final int bis = bds.getElementsPerItem();<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span><a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>                if (bis == 1) {<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>                        if (w == null) {<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span>                                while (it.hasNext()) {<a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>                                        final double db = it.bDouble;<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>                                        double diff = it.aDouble - db;<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>                                        double err = diff * diff - comp;<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>                                        double temp = sum + err;<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>                                        comp = (temp - sum) - err;<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span>                                        sum = temp;<a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>                                                err = diff * diff - comp;<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>                                                temp = sum + err;<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>                                                comp = (temp - sum) - err;<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span>                                                sum = temp;<a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>                                        }<a name="line.2052"></a>
+<span class="sourceLineNo">2053</span>                                }<a name="line.2053"></a>
+<span class="sourceLineNo">2054</span>                        } else {<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span>                                IndexIterator itw = w.getIterator();<a name="line.2055"></a>
+<span class="sourceLineNo">2056</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2056"></a>
+<span class="sourceLineNo">2057</span>                                        final double db = it.bDouble;<a name="line.2057"></a>
+<span class="sourceLineNo">2058</span>                                        double diff = it.aDouble - db;<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span>                                        double err = diff * diff * dw - comp;<a name="line.2060"></a>
+<span class="sourceLineNo">2061</span>                                        double 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>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>                                                err = diff * diff * dw - comp;<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>                                                temp = sum + err;<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>                                                comp = (temp - sum) - err;<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span>                                                sum = temp;<a name="line.2069"></a>
+<span class="sourceLineNo">2070</span>                                        }<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span>                                }<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span>                        }<a name="line.2072"></a>
+<span class="sourceLineNo">2073</span>                } else {<a name="line.2073"></a>
+<span class="sourceLineNo">2074</span>                        if (w == null) {<a name="line.2074"></a>
+<span class="sourceLineNo">2075</span>                                while (it.hasNext()) {<a name="line.2075"></a>
+<span class="sourceLineNo">2076</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2076"></a>
+<span class="sourceLineNo">2077</span>                                        double err = diff * diff - comp;<a name="line.2077"></a>
+<span class="sourceLineNo">2078</span>                                        double temp = sum + err;<a name="line.2078"></a>
+<span class="sourceLineNo">2079</span>                                        comp = (temp - sum) - err;<a name="line.2079"></a>
+<span class="sourceLineNo">2080</span>                                        sum = temp;<a name="line.2080"></a>
+<span class="sourceLineNo">2081</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2081"></a>
+<span class="sourceLineNo">2082</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2082"></a>
+<span class="sourceLineNo">2083</span>                                                err = diff * diff - comp;<a name="line.2083"></a>
+<span class="sourceLineNo">2084</span>                                                temp = sum + err;<a name="line.2084"></a>
+<span class="sourceLineNo">2085</span>                                                comp = (temp - sum) - err;<a name="line.2085"></a>
+<span class="sourceLineNo">2086</span>                                                sum = temp;<a name="line.2086"></a>
+<span class="sourceLineNo">2087</span>                                        }<a name="line.2087"></a>
+<span class="sourceLineNo">2088</span>                                }<a name="line.2088"></a>
+<span class="sourceLineNo">2089</span>                        } else {<a name="line.2089"></a>
+<span class="sourceLineNo">2090</span>                                IndexIterator itw = w.getIterator();<a name="line.2090"></a>
+<span class="sourceLineNo">2091</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2091"></a>
+<span class="sourceLineNo">2092</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2092"></a>
+<span class="sourceLineNo">2093</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2093"></a>
+<span class="sourceLineNo">2094</span>                                        double err = diff * diff * dw - comp;<a name="line.2094"></a>
+<span class="sourceLineNo">2095</span>                                        double temp = sum + err;<a name="line.2095"></a>
+<span class="sourceLineNo">2096</span>                                        comp = (temp - sum) - err;<a name="line.2096"></a>
+<span class="sourceLineNo">2097</span>                                        sum = temp;<a name="line.2097"></a>
+<span class="sourceLineNo">2098</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2098"></a>
+<span class="sourceLineNo">2099</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2099"></a>
+<span class="sourceLineNo">2100</span>                                                err = diff * diff * dw - comp;<a name="line.2100"></a>
+<span class="sourceLineNo">2101</span>                                                temp = sum + err;<a name="line.2101"></a>
+<span class="sourceLineNo">2102</span>                                                comp = (temp - sum) - err;<a name="line.2102"></a>
+<span class="sourceLineNo">2103</span>                                                sum = temp;<a name="line.2103"></a>
+<span class="sourceLineNo">2104</span>                                        }<a name="line.2104"></a>
+<span class="sourceLineNo">2105</span>                                }<a name="line.2105"></a>
+<span class="sourceLineNo">2106</span>                        }<a name="line.2106"></a>
+<span class="sourceLineNo">2107</span>                }<a name="line.2107"></a>
+<span class="sourceLineNo">2108</span>                return sum;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/CompoundDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/CompoundDataset.html
new file mode 100644
index 0000000..73da098
--- /dev/null
+++ b/apidocs/2.3.0/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, then share data when possible 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.3.0/src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html
new file mode 100644
index 0000000..d6731c9
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html
@@ -0,0 +1,2235 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// GEN_COMMENT<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.Arrays;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.commons.math3.complex.Complex;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>/**<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * Extend compound dataset for double values // PRIM_TYPE<a name="line.22"></a>
+<span class="sourceLineNo">023</span> */<a name="line.23"></a>
+<span class="sourceLineNo">024</span>public class CompoundDoubleDataset extends AbstractCompoundDataset {<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        // pin UID to base class<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>        protected double[] data; // subclass alias // PRIM_TYPE<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>        @Override<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        protected void setData() {<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                data = (double[]) odata; // PRIM_TYPE<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        }<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>        protected double[] createArray(final int size) { // PRIM_TYPE<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                double[] array = null; // PRIM_TYPE<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>                try {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                        array = new double[isize * size]; // PRIM_TYPE<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                } catch (OutOfMemoryError e) {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                }<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                return array;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        }<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>        @Override<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public int getDType() {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                return Dataset.ARRAYFLOAT64; // DATA_TYPE<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        }<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        /**<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         * Create a null dataset<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        CompoundDoubleDataset() {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * Create a null dataset<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * @param itemSize<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         */<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        CompoundDoubleDataset(final int itemSize) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                isize = itemSize;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>        /**<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         * Create a zero-filled dataset of given item size and shape<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         * @param itemSize<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         * @param shape<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         */<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        CompoundDoubleDataset(final int itemSize, final int[] shape) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                isize = itemSize;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                if (shape != null) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        size = ShapeUtils.calcSize(shape);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        this.shape = shape.clone();<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        <a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        try {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                odata = data = createArray(size);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        } catch (Throwable t) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                                throw new IllegalArgumentException(t);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                        }<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        }<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>        /**<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         * Copy a dataset<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         * @param dataset<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>        CompoundDoubleDataset(final CompoundDoubleDataset dataset) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                isize = dataset.isize;<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                copyToView(dataset, this, true, true);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                try {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        if (dataset.stride == null) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                                if (dataset.data != null) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                        odata = data = dataset.data.clone();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                        } else {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                offset = 0;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                stride = null;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                base = null;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                                odata = data = createArray(size);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                IndexIterator iter = dataset.getIterator();<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                                for (int j = 0; iter.hasNext();) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                                                data[j++] = dataset.data[iter.index + i];<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                                        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                                }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        }<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                } catch (Throwable t) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        throw new IllegalArgumentException(t);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                }<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>        /**<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         * Create a dataset using given dataset<a name="line.120"></a>
+<span class="sourceLineNo">121</span>         * @param dataset<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         */<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        CompoundDoubleDataset(final CompoundDataset dataset) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                copyToView(dataset, this, true, false);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                offset = 0;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                stride = null;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                base = null;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                isize = dataset.getElementsPerItem();<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                try {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        odata = data = createArray(size);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                } catch (Throwable t) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                        throw new IllegalArgumentException(t);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>                IndexIterator iter = dataset.getIterator();<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                for (int j = 0; iter.hasNext();) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                                data[j++] = dataset.getElementDoubleAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        }<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        }<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>        /**<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * Create a dataset using given data (elements are grouped together)<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         * @param itemSize<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         * @param data<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         * @param shape<a name="line.148"></a>
+<span class="sourceLineNo">149</span>         *            (can be null to create 1D dataset)<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         */<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        CompoundDoubleDataset(final int itemSize, final double[] data, int... shape) { // PRIM_TYPE<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                isize = itemSize;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                if (data != null) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        if (shape == null || (shape.length == 0 &amp;&amp; data.length &gt; isize)) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                                shape = new int[] { data.length / isize };<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        }<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        size = ShapeUtils.calcSize(shape);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                        if (size * isize != data.length) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                                throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                                                Arrays.toString(shape), data.length / isize));<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        this.shape = size == 0 ? null : shape.clone();<a name="line.162"></a>
+<span class="sourceLineNo">163</span>        <a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        odata = this.data = data;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                }<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        }<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>        /**<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         * Create a dataset using given datasets<a name="line.169"></a>
+<span class="sourceLineNo">170</span>         * @param datasets<a name="line.170"></a>
+<span class="sourceLineNo">171</span>         */<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        CompoundDoubleDataset(final Dataset... datasets) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                if (datasets.length &lt; 1) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                        throw new IllegalArgumentException("Array of datasets must have length greater than zero");<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                }<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>                for (int i = 1; i &lt; datasets.length; i++) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        datasets[0].checkCompatibility(datasets[i]);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>                isize = datasets.length;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                size = ShapeUtils.calcSize(datasets[0].getShapeRef());<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                shape = datasets[0].getShape();<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>                try {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        odata = data = createArray(size);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                } catch (Throwable t) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                        throw new IllegalArgumentException(t);<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>                IndexIterator[] iters = new IndexIterator[isize];<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                for (int i = 0; i &lt; datasets.length; i++) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                        iters[i] = datasets[i].getIterator();<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                }<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>                for (int j = 0; iters[0].hasNext();) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        data[j++] = datasets[0].getElementDoubleAbs(iters[0].index); // GET_ELEMENT_WITH_CAST<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        for (int i = 1; i &lt; datasets.length; i++) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                                iters[i].hasNext();<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                                data[j++] = datasets[i].getElementDoubleAbs(iters[i].index); // GET_ELEMENT_WITH_CAST<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        }<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                }<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>        /**<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * Cast a dataset to this compound type. If repeat is set, the first element of each item in the given dataset is<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * repeated across all elements of an item. Otherwise, each item comprises a truncated or zero-padded copy of<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * elements from the given dataset.<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         * @param itemSize<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         * @param repeat<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         *            repeat first element<a name="line.212"></a>
+<span class="sourceLineNo">213</span>         * @param dataset<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         */<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        CompoundDoubleDataset(final int itemSize, final boolean repeat, final Dataset dataset) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                isize = itemSize;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                size = dataset.getSize();<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                shape = dataset.getShape();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                name = new String(dataset.getName());<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>                try {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        odata = data = createArray(size);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                } catch (Throwable t) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                        throw new IllegalArgumentException(t);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                }<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                final int os = dataset.getElementsPerItem();<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>                IndexIterator iter = dataset.getIterator();<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                if (repeat) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                        int i = 0;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                        while (iter.hasNext()) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                final double v = dataset.getElementDoubleAbs(iter.index); // PRIM_TYPE // GET_ELEMENT_WITH_CAST<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                                        data[i++] = v;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                        }<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                } else {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                        final int kmax = Math.min(isize, os);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        int i = 0;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                        while (iter.hasNext()) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                                for (int k = 0; k &lt; kmax; k++) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                        data[i + k] = dataset.getElementDoubleAbs(iter.index + k); // GET_ELEMENT_WITH_CAST<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                                }<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                                i += isize;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        }<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                }<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>        @Override<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        public boolean equals(Object obj) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                if (this == obj) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        return true;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                }<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>                if (obj == null) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                        return false;<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>                if (!getClass().equals(obj.getClass())) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                        if (getRank() == 0) { // for zero-rank datasets<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                return obj.equals(getObjectAbs(offset));<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                        return false;<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>                CompoundDoubleDataset other = (CompoundDoubleDataset) obj;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                if (isize != other.isize) {<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>                if (size != other.size) {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                        return false;<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                }<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                if (!Arrays.equals(shape, other.shape)) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                        return false;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                if (data == other.data &amp;&amp; stride == null &amp;&amp; other.stride == null) {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                        return true;<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>                IndexIterator iter = getIterator();<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                IndexIterator oiter = other.getIterator();<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                                if (data[iter.index+j] != other.data[oiter.index+j]) {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                                        return false;<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>                return true;<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>        @Override<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        public int hashCode() {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                return super.hashCode();<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>        @Override<a name="line.298"></a>
+<span class="sourceLineNo">299</span>        public CompoundDoubleDataset clone() {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                return new CompoundDoubleDataset(this);<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>        /**<a name="line.303"></a>
+<span class="sourceLineNo">304</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.304"></a>
+<span class="sourceLineNo">305</span>         * sequences or arrays are padded with zeros. The item size is the last dimension of the corresponding<a name="line.305"></a>
+<span class="sourceLineNo">306</span>         * elemental dataset<a name="line.306"></a>
+<span class="sourceLineNo">307</span>         * <a name="line.307"></a>
+<span class="sourceLineNo">308</span>         * @param obj<a name="line.308"></a>
+<span class="sourceLineNo">309</span>         * @return dataset with contents given by input<a name="line.309"></a>
+<span class="sourceLineNo">310</span>         */<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        static CompoundDoubleDataset createFromObject(final Object obj) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                DoubleDataset result = DoubleDataset.createFromObject(obj); // CLASS_TYPE<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                return createCompoundDatasetWithLastDimension(result, true);<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>         * Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * sequences or arrays are padded with zeros.<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * <a name="line.319"></a>
+<span class="sourceLineNo">320</span>         * @param itemSize<a name="line.320"></a>
+<span class="sourceLineNo">321</span>         * @param obj<a name="line.321"></a>
+<span class="sourceLineNo">322</span>         * @return dataset with contents given by input<a name="line.322"></a>
+<span class="sourceLineNo">323</span>         */<a name="line.323"></a>
+<span class="sourceLineNo">324</span>        public static CompoundDoubleDataset createFromObject(final int itemSize, final Object obj) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                DoubleDataset result = DoubleDataset.createFromObject(obj); // CLASS_TYPE<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                boolean zeroRank = result.shape == null ? false : result.shape.length == 0;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                if (zeroRank) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                        result.resize(itemSize); // special case of single item<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        result.fill(obj);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                CompoundDoubleDataset ds = new CompoundDoubleDataset(itemSize, result.getData(), null);<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                if (zeroRank) {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        ds.setShape(new int[0]);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                return ds;<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>         * @param stop<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         */<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        static CompoundDoubleDataset createRange(final int itemSize, final double stop) {<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                return createRange(itemSize, 0., stop, 1.);<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>         * @param start<a name="line.347"></a>
+<span class="sourceLineNo">348</span>         * @param stop<a name="line.348"></a>
+<span class="sourceLineNo">349</span>         * @param step<a name="line.349"></a>
+<span class="sourceLineNo">350</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.350"></a>
+<span class="sourceLineNo">351</span>         */<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        static CompoundDoubleDataset createRange(final int itemSize, final double start, final double stop,<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                        final double step) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                int size = calcSteps(start, stop, step);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                CompoundDoubleDataset result = new CompoundDoubleDataset(itemSize, new int[] { size });<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                for (int i = 0; i &lt; size; i++) {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                        result.data[i * result.isize] = (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                return result;<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>        /**<a name="line.362"></a>
+<span class="sourceLineNo">363</span>         * @param shape<a name="line.363"></a>
+<span class="sourceLineNo">364</span>         * @return a dataset filled with ones<a name="line.364"></a>
+<span class="sourceLineNo">365</span>         */<a name="line.365"></a>
+<span class="sourceLineNo">366</span>        static CompoundDoubleDataset ones(final int itemSize, final int... shape) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                return new CompoundDoubleDataset(itemSize, shape).fill(1);<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>         * Create a compound dataset using last dimension of given dataset<a name="line.371"></a>
+<span class="sourceLineNo">372</span>         * @param a<a name="line.372"></a>
+<span class="sourceLineNo">373</span>         * @param shareData if true, then share data when possible otherwise copy it<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * @return compound dataset<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         */<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        public static CompoundDoubleDataset createCompoundDatasetWithLastDimension(final Dataset a, final boolean shareData) {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                if (a.getElementsPerItem() != 1) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                        logger.error("Need a single-element dataset");<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                        throw new IllegalArgumentException("Need a single-element dataset");<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                }<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                if (a.getDType() != Dataset.FLOAT64) { // DATA_TYPE<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                        logger.error("Dataset type must be double"); // PRIM_TYPE <a name="line.382"></a>
+<span class="sourceLineNo">383</span>                        throw new IllegalArgumentException("Dataset type must be double"); // PRIM_TYPE <a name="line.383"></a>
+<span class="sourceLineNo">384</span>                }<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span>                final int[] shape = a.getShapeRef();<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                if (shape == null) {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                        return new CompoundDoubleDataset(0);<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>                final int rank = shape.length - 1;<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                final int is = rank &lt; 0 ? 1 : shape[rank];<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>                CompoundDoubleDataset result = new CompoundDoubleDataset(is);<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                result.shape = rank &gt; 0 ? Arrays.copyOf(shape, rank) : (rank &lt; 0 ? new int[0] : new int[] {1});<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                result.size = ShapeUtils.calcSize(result.shape);<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                result.odata = shareData ? a.flatten().getBuffer() : a.clone().getBuffer();<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                result.setName(a.getName());<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                result.setData();<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                return result;<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 DoubleDataset asNonCompoundDataset(final boolean shareData) { // CLASS_TYPE<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                DoubleDataset result = new DoubleDataset(); // CLASS_TYPE<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                final int is = getElementsPerItem();<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                final int rank = is == 1 ? shape.length : shape.length + 1;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                final int[] nshape = Arrays.copyOf(shape, rank);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                if (is != 1)<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                        nshape[rank-1] = is;<a name="line.411"></a>
+<span class="sourceLineNo">412</span><a name="line.412"></a>
+<span class="sourceLineNo">413</span>                result.shape = nshape;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                result.size = ShapeUtils.calcSize(nshape);<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                result.odata = shareData &amp;&amp; isContiguous() ? data : clone().getBuffer();<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                result.setName(name);<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                result.setData();<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                return result;<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 CompoundDoubleDataset fill(Object obj) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                setDirty();<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                if (obj instanceof Complex) {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                        obj = new Complex(((Complex) obj).getReal(), 0);<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                }<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                double[] vr = DTypeUtils.toDoubleArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                IndexIterator iter = getIterator();<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span>                while (iter.hasNext()) {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                                data[iter.index + i] = vr[i]; // PRIM_TYPE<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                        }<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                }<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span>                return this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.440"></a>
+<span class="sourceLineNo">441</span>         * @return data buffer as linear array<a name="line.441"></a>
+<span class="sourceLineNo">442</span>         */<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        public double[] getData() { // PRIM_TYPE<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                return data;<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>        @Override<a name="line.447"></a>
+<span class="sourceLineNo">448</span>        protected int getBufferLength() {<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                if (data == null)<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                        return 0;<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                return data.length;<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 CompoundDoubleDataset getView(boolean deepCopyMetadata) {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                CompoundDoubleDataset view = new CompoundDoubleDataset(isize);<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                view.setData();<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                return view;<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>        /**<a name="line.462"></a>
+<span class="sourceLineNo">463</span>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.463"></a>
+<span class="sourceLineNo">464</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.464"></a>
+<span class="sourceLineNo">465</span>         * <a name="line.465"></a>
+<span class="sourceLineNo">466</span>         * @param index<a name="line.466"></a>
+<span class="sourceLineNo">467</span>         *            absolute index<a name="line.467"></a>
+<span class="sourceLineNo">468</span>         * @return values<a name="line.468"></a>
+<span class="sourceLineNo">469</span>         */<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        public double[] getAbs(final int index) { // PRIM_TYPE<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                double[] result = new double[isize]; // PRIM_TYPE<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                        result[i] = data[index + i];<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                }<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                return result;<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>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.479"></a>
+<span class="sourceLineNo">480</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.480"></a>
+<span class="sourceLineNo">481</span>         *<a name="line.481"></a>
+<span class="sourceLineNo">482</span>         * @param index<a name="line.482"></a>
+<span class="sourceLineNo">483</span>         *            absolute index<a name="line.483"></a>
+<span class="sourceLineNo">484</span>         * @param values<a name="line.484"></a>
+<span class="sourceLineNo">485</span>         */<a name="line.485"></a>
+<span class="sourceLineNo">486</span>        public void getAbs(final int index, final double[] values) { // PRIM_TYPE<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                        values[i] = data[index + i];<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                }<a name="line.489"></a>
+<span class="sourceLineNo">490</span>        }<a name="line.490"></a>
+<span class="sourceLineNo">491</span><a name="line.491"></a>
+<span class="sourceLineNo">492</span>        @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                return data[index] != 0;<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>        @Override<a name="line.497"></a>
+<span class="sourceLineNo">498</span>        public double getElementDoubleAbs(final int index) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                return data[index];<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 long getElementLongAbs(final int index) {<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                return DTypeUtils.toLong(data[index]); // OMIT_TOLONG_INT<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>        @Override<a name="line.507"></a>
+<span class="sourceLineNo">508</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                setDirty();<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                double[] dsrc = (double[]) src; // PRIM_TYPE<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                        data[dindex + i] = dsrc[sindex + i];<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>        /**<a name="line.516"></a>
+<span class="sourceLineNo">517</span>         * Set values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.517"></a>
+<span class="sourceLineNo">518</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.518"></a>
+<span class="sourceLineNo">519</span>         *<a name="line.519"></a>
+<span class="sourceLineNo">520</span>         * @param index<a name="line.520"></a>
+<span class="sourceLineNo">521</span>         *            absolute index<a name="line.521"></a>
+<span class="sourceLineNo">522</span>         * @param val<a name="line.522"></a>
+<span class="sourceLineNo">523</span>         *            new values<a name="line.523"></a>
+<span class="sourceLineNo">524</span>         */<a name="line.524"></a>
+<span class="sourceLineNo">525</span>        public void setAbs(final int index, final double[] val) { // PRIM_TYPE<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                setDirty();<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                        data[index + i] = val[i];<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>        /**<a name="line.532"></a>
+<span class="sourceLineNo">533</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.533"></a>
+<span class="sourceLineNo">534</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.534"></a>
+<span class="sourceLineNo">535</span>         *<a name="line.535"></a>
+<span class="sourceLineNo">536</span>         * @param index<a name="line.536"></a>
+<span class="sourceLineNo">537</span>         *            absolute index<a name="line.537"></a>
+<span class="sourceLineNo">538</span>         * @param val<a name="line.538"></a>
+<span class="sourceLineNo">539</span>         *            new value<a name="line.539"></a>
+<span class="sourceLineNo">540</span>         */<a name="line.540"></a>
+<span class="sourceLineNo">541</span>        public void setAbs(final int index, final double val) { // PRIM_TYPE<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                setDirty();<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                data[index] = val;<a name="line.543"></a>
+<span class="sourceLineNo">544</span>        }<a name="line.544"></a>
+<span class="sourceLineNo">545</span><a name="line.545"></a>
+<span class="sourceLineNo">546</span>        @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        public Object getObject() {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                return getDoubleArray(); // PRIM_TYPE<a name="line.548"></a>
+<span class="sourceLineNo">549</span>        }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>        @Override<a name="line.551"></a>
+<span class="sourceLineNo">552</span>        public Object getObject(final int i) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                return getDoubleArray(i); // PRIM_TYPE<a name="line.553"></a>
+<span class="sourceLineNo">554</span>        }<a name="line.554"></a>
+<span class="sourceLineNo">555</span><a name="line.555"></a>
+<span class="sourceLineNo">556</span>        @Override<a name="line.556"></a>
+<span class="sourceLineNo">557</span>        public Object getObject(final int i, final int j) {<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                return getDoubleArray(i, j); // PRIM_TYPE<a name="line.558"></a>
+<span class="sourceLineNo">559</span>        }<a name="line.559"></a>
+<span class="sourceLineNo">560</span><a name="line.560"></a>
+<span class="sourceLineNo">561</span>        @Override<a name="line.561"></a>
+<span class="sourceLineNo">562</span>        public Object getObject(final int... pos) {<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                return getDoubleArray(pos); // PRIM_TYPE<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>        @Override<a name="line.566"></a>
+<span class="sourceLineNo">567</span>        public byte[] getByteArray() {<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                byte[] result = new byte[isize];<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                int index = getFirst1DIndex();<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                }<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                return result;<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>        @Override<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        public byte[] getByteArray(final int i) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                byte[] result = new byte[isize];<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                int index = get1DIndex(i);<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                }<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                return result;<a name="line.583"></a>
+<span class="sourceLineNo">584</span>        }<a name="line.584"></a>
+<span class="sourceLineNo">585</span><a name="line.585"></a>
+<span class="sourceLineNo">586</span>        @Override<a name="line.586"></a>
+<span class="sourceLineNo">587</span>        public byte[] getByteArray(final int i, final int j) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                byte[] result = new byte[isize];<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                int index = get1DIndex(i, j);<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                }<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                return result;<a name="line.593"></a>
+<span class="sourceLineNo">594</span>        }<a name="line.594"></a>
+<span class="sourceLineNo">595</span><a name="line.595"></a>
+<span class="sourceLineNo">596</span>        @Override<a name="line.596"></a>
+<span class="sourceLineNo">597</span>        public byte[] getByteArray(final int... pos) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                byte[] result = new byte[isize];<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                int index = get1DIndex(pos);<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                }<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                return result;<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>        @Override<a name="line.606"></a>
+<span class="sourceLineNo">607</span>        public short[] getShortArray() {<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                short[] result = new short[isize];<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                int index = getFirst1DIndex();<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                }<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                return result;<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>        @Override<a name="line.616"></a>
+<span class="sourceLineNo">617</span>        public short[] getShortArray(final int i) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                short[] result = new short[isize];<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                int index = get1DIndex(i);<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                }<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                return result;<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>        @Override<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        public short[] getShortArray(final int i, final int j) {<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                short[] result = new short[isize];<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                int index = get1DIndex(i, j);<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                }<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                return result;<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>        @Override<a name="line.636"></a>
+<span class="sourceLineNo">637</span>        public short[] getShortArray(final int... pos) {<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                short[] result = new short[isize];<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                int index = get1DIndex(pos);<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                }<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                return result;<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>        @Override<a name="line.646"></a>
+<span class="sourceLineNo">647</span>        public int[] getIntArray() {<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                int[] result = new int[isize];<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                int index = getFirst1DIndex();<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>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                }<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                return result;<a name="line.653"></a>
+<span class="sourceLineNo">654</span>        }<a name="line.654"></a>
+<span class="sourceLineNo">655</span><a name="line.655"></a>
+<span class="sourceLineNo">656</span>        @Override<a name="line.656"></a>
+<span class="sourceLineNo">657</span>        public int[] getIntArray(final int i) {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                int[] result = new int[isize];<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                int index = get1DIndex(i);<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                }<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                return result;<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 int[] getIntArray(final int i, final int j) {<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                int[] result = new int[isize];<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                int index = get1DIndex(i, j);<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                }<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                return result;<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>        @Override<a name="line.676"></a>
+<span class="sourceLineNo">677</span>        public int[] getIntArray(final int... pos) {<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                int[] result = new int[isize];<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                int index = get1DIndex(pos);<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                }<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                return result;<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>        @Override<a name="line.686"></a>
+<span class="sourceLineNo">687</span>        public long[] getLongArray() {<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                long[] result = new long[isize];<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                int index = getFirst1DIndex();<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                        result[k] = (long) data[index + k]; // OMIT_UPCAST<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                }<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                return result;<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 long[] getLongArray(final int i) {<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                long[] result = new long[isize];<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                int index = get1DIndex(i);<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                        result[k] = (long) data[index + k]; // OMIT_UPCAST<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                }<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                return result;<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 long[] getLongArray(final int i, final int j) {<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                long[] result = new long[isize];<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                int index = get1DIndex(i, j);<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                        result[k] = (long) data[index + k]; // OMIT_UPCAST<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                }<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                return result;<a name="line.713"></a>
+<span class="sourceLineNo">714</span>        }<a name="line.714"></a>
+<span class="sourceLineNo">715</span><a name="line.715"></a>
+<span class="sourceLineNo">716</span>        @Override<a name="line.716"></a>
+<span class="sourceLineNo">717</span>        public long[] getLongArray(final int... pos) {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                long[] result = new long[isize];<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                int index = get1DIndex(pos);<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                        result[k] = (long) data[index + k]; // OMIT_UPCAST<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                }<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                return result;<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>        @Override<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        public float[] getFloatArray() {<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                float[] result = new float[isize];<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                int index = getFirst1DIndex();<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                        result[k] = (float) data[index + k]; // OMIT_REAL_CAST<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                }<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                return result;<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>        @Override<a name="line.736"></a>
+<span class="sourceLineNo">737</span>        public float[] getFloatArray(final int i) {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                float[] result = new float[isize];<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                int index = get1DIndex(i);<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        result[k] = (float) data[index + k]; // OMIT_REAL_CAST<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                }<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                return result;<a name="line.743"></a>
+<span class="sourceLineNo">744</span>        }<a name="line.744"></a>
+<span class="sourceLineNo">745</span><a name="line.745"></a>
+<span class="sourceLineNo">746</span>        @Override<a name="line.746"></a>
+<span class="sourceLineNo">747</span>        public float[] getFloatArray(final int i, final int j) {<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                float[] result = new float[isize];<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                int index = get1DIndex(i, j);<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                        result[k] = (float) data[index + k]; // OMIT_REAL_CAST<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>        @Override<a name="line.756"></a>
+<span class="sourceLineNo">757</span>        public float[] getFloatArray(final int... pos) {<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                float[] result = new float[isize];<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                int index = get1DIndex(pos);<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                        result[k] = (float) data[index + k]; // OMIT_REAL_CAST<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                }<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                return result;<a name="line.763"></a>
+<span class="sourceLineNo">764</span>        }<a name="line.764"></a>
+<span class="sourceLineNo">765</span><a name="line.765"></a>
+<span class="sourceLineNo">766</span>        @Override<a name="line.766"></a>
+<span class="sourceLineNo">767</span>        public double[] getDoubleArray() {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                double[] result = new double[isize];<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                int index = getFirst1DIndex();<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                }<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                return result;<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>        @Override<a name="line.776"></a>
+<span class="sourceLineNo">777</span>        public double[] getDoubleArray(final int i) {<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                double[] result = new double[isize];<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                int index = get1DIndex(i);<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                }<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                return result;<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>        @Override<a name="line.786"></a>
+<span class="sourceLineNo">787</span>        public double[] getDoubleArray(final int i, final int j) {<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                double[] result = new double[isize];<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                int index = get1DIndex(i, j);<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                }<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                return result;<a name="line.793"></a>
+<span class="sourceLineNo">794</span>        }<a name="line.794"></a>
+<span class="sourceLineNo">795</span><a name="line.795"></a>
+<span class="sourceLineNo">796</span>        @Override<a name="line.796"></a>
+<span class="sourceLineNo">797</span>        public double[] getDoubleArray(final int... pos) {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                double[] result = new double[isize];<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                int index = get1DIndex(pos);<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return result;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        @Override<a name="line.806"></a>
+<span class="sourceLineNo">807</span>        public void getDoubleArrayAbs(final int index, final double[] darray) {<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                        darray[i] = data[index + 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><a name="line.812"></a>
+<span class="sourceLineNo">813</span>        @Override<a name="line.813"></a>
+<span class="sourceLineNo">814</span>        public String getString() {<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                return getStringAbs(getFirst1DIndex());<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>        @Override<a name="line.818"></a>
+<span class="sourceLineNo">819</span>        public String getString(final int i) {<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                return getStringAbs(get1DIndex(i));<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 String getString(final int i, final int j) {<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                return getStringAbs(get1DIndex(i, j));<a name="line.825"></a>
+<span class="sourceLineNo">826</span>        }<a name="line.826"></a>
+<span class="sourceLineNo">827</span><a name="line.827"></a>
+<span class="sourceLineNo">828</span>        @Override<a name="line.828"></a>
+<span class="sourceLineNo">829</span>        public String getString(final int... pos) {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                return getStringAbs(get1DIndex(pos));<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>        protected double getFirstValue() {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                return data[getFirst1DIndex()];<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>        protected double getFirstValue(int i) {<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                return data[get1DIndex(i)];<a name="line.840"></a>
+<span class="sourceLineNo">841</span>        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span><a name="line.842"></a>
+<span class="sourceLineNo">843</span>        @Override<a name="line.843"></a>
+<span class="sourceLineNo">844</span>        protected double getFirstValue(int i, int j) {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                return data[get1DIndex(i, j)];<a name="line.845"></a>
+<span class="sourceLineNo">846</span>        }<a name="line.846"></a>
+<span class="sourceLineNo">847</span><a name="line.847"></a>
+<span class="sourceLineNo">848</span>        @Override<a name="line.848"></a>
+<span class="sourceLineNo">849</span>        protected double getFirstValue(final int... pos) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                return data[get1DIndex(pos)];<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>        @Override<a name="line.853"></a>
+<span class="sourceLineNo">854</span>        public Object getObjectAbs(final int index) {<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                double[] result = new double[isize]; // PRIM_TYPE<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        result[i] = data[index + i];<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                }<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                return result;<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 String getStringAbs(final int index) {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                StringBuilder s = new StringBuilder();<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                s.append('(');<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                s.append(stringFormat == null ? String.format("%.8g", data[index]) : // FORMAT_STRING<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                        stringFormat.format(data[index]));<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                for (int i = 1; i &lt; isize; i++) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                        s.append(' ');<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                        s.append(stringFormat == null ? String.format("%.8g", data[index + i]) : // FORMAT_STRING<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                                stringFormat.format(data[index + i]));<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                }<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                s.append(')');<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                return s.toString();<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>        @Override<a name="line.877"></a>
+<span class="sourceLineNo">878</span>        public void setObjectAbs(final int index, Object obj) {<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                if (obj instanceof Complex) {<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                        obj = new Complex(((Complex) obj).getReal(), 0);<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                }<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                double[] oa = DTypeUtils.toDoubleArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                setAbs(index, oa);<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>        @Override<a name="line.886"></a>
+<span class="sourceLineNo">887</span>        public void set(final Object obj) {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                setItem(DTypeUtils.toDoubleArray(obj, isize)); // CLASS_TYPE<a name="line.888"></a>
+<span class="sourceLineNo">889</span>        }<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>        @Override<a name="line.891"></a>
+<span class="sourceLineNo">892</span>        public void set(final Object obj, final int i) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                setItem(DTypeUtils.toDoubleArray(obj, isize), i); // CLASS_TYPE<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 void set(final Object obj, final int i, final int j) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                setItem(DTypeUtils.toDoubleArray(obj, isize), i, j); // CLASS_TYPE<a name="line.898"></a>
+<span class="sourceLineNo">899</span>        }<a name="line.899"></a>
+<span class="sourceLineNo">900</span><a name="line.900"></a>
+<span class="sourceLineNo">901</span>        @Override<a name="line.901"></a>
+<span class="sourceLineNo">902</span>        public void set(final Object obj, int... pos) {<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        pos = new int[shape.length];<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>                setItem(DTypeUtils.toDoubleArray(obj, isize), pos); // CLASS_TYPE<a name="line.907"></a>
+<span class="sourceLineNo">908</span>        }<a name="line.908"></a>
+<span class="sourceLineNo">909</span><a name="line.909"></a>
+<span class="sourceLineNo">910</span>        /**<a name="line.910"></a>
+<span class="sourceLineNo">911</span>         * Set values at first position. The dataset must not be null<a name="line.911"></a>
+<span class="sourceLineNo">912</span>         * <a name="line.912"></a>
+<span class="sourceLineNo">913</span>         * @param d<a name="line.913"></a>
+<span class="sourceLineNo">914</span>         * @since 2.0<a name="line.914"></a>
+<span class="sourceLineNo">915</span>         */<a name="line.915"></a>
+<span class="sourceLineNo">916</span>        public void setItem(final double[] d) { // PRIM_TYPE<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                if (d.length &gt; isize) {<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                }<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                setAbs(getFirst1DIndex(), d);<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>        /**<a name="line.923"></a>
+<span class="sourceLineNo">924</span>         * Set values at given position. The dataset must be 1D<a name="line.924"></a>
+<span class="sourceLineNo">925</span>         * <a name="line.925"></a>
+<span class="sourceLineNo">926</span>         * @param d<a name="line.926"></a>
+<span class="sourceLineNo">927</span>         * @param i<a name="line.927"></a>
+<span class="sourceLineNo">928</span>         */<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        public void setItem(final double[] d, final int i) { // PRIM_TYPE<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                if (d.length &gt; isize) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                }<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                setAbs(get1DIndex(i), d);<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>         * Set values at given position. The dataset must be 1D<a name="line.937"></a>
+<span class="sourceLineNo">938</span>         * <a name="line.938"></a>
+<span class="sourceLineNo">939</span>         * @param d<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>         */<a name="line.942"></a>
+<span class="sourceLineNo">943</span>        public void setItem(final double[] d, final int i, final int j) { // PRIM_TYPE<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                if (d.length &gt; isize) {<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                }<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                setAbs(get1DIndex(i, j), d);<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>         * Set values at given position<a name="line.951"></a>
+<span class="sourceLineNo">952</span>         * <a name="line.952"></a>
+<span class="sourceLineNo">953</span>         * @param d<a name="line.953"></a>
+<span class="sourceLineNo">954</span>         * @param pos<a name="line.954"></a>
+<span class="sourceLineNo">955</span>         */<a name="line.955"></a>
+<span class="sourceLineNo">956</span>        public void setItem(final double[] d, final int... pos) { // PRIM_TYPE<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                if (d.length &gt; isize) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                }<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                setAbs(get1DIndex(pos), d);<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>        private void setDoubleArrayAbs(final int index, final double[] d) {<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                for (int i = 0; i &lt; isize; i++)<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                        data[index + i] = d[i]; // ADD_CAST<a name="line.965"></a>
+<span class="sourceLineNo">966</span>        }<a name="line.966"></a>
+<span class="sourceLineNo">967</span><a name="line.967"></a>
+<span class="sourceLineNo">968</span>        @Override<a name="line.968"></a>
+<span class="sourceLineNo">969</span>        public void resize(int... newShape) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                setDirty();<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                IndexIterator iter = getIterator();<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                int nsize = ShapeUtils.calcSize(newShape);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                double[] ndata; // PRIM_TYPE<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                try {<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                        ndata = createArray(nsize);<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                } catch (Throwable t) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                        throw new IllegalArgumentException(t);<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>                int i = 0;<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                while (iter.hasNext() &amp;&amp; i &lt; nsize) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                ndata[i++] = data[iter.index + j];<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>                odata = data = ndata;<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                size = nsize;<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                shape = newShape;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                stride = null;<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                offset = 0;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                base = null;<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>        @Override<a name="line.996"></a>
+<span class="sourceLineNo">997</span>        public CompoundDoubleDataset getSlice(final SliceIterator siter) {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                CompoundDoubleDataset result = new CompoundDoubleDataset(isize, siter.getShape());<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                double[] rdata = result.data; // PRIM_TYPE<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                IndexIterator riter = result.getIterator();<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span><a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                while (siter.hasNext() &amp;&amp; riter.hasNext()) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                        for (int i = 0; i &lt; isize; i++)<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                rdata[riter.index + i] = data[siter.index + i];<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>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                return result;<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>        @Override<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>        public DoubleDataset getElementsView(int element) { // CLASS_TYPE<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                if (element &lt; 0)<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        element += isize;<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<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>                DoubleDataset view = new DoubleDataset(shape); // CLASS_TYPE<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span><a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                copyToView(this, view, true, true);<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                view.setData();<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                if (view.stride == null) {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                        int[] offset = new int[1];<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                        view.stride = createStrides(this, offset);<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                        view.offset = offset[0] + element;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                        view.base = base == null ? this : base;<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                } else {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                        view.offset += element;<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>                return view;<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>        }<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span><a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>        @Override<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>        public DoubleDataset getElements(int element) { // CLASS_TYPE<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                final DoubleDataset elements = new DoubleDataset(shape); // CLASS_TYPE<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span><a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                copyElements(elements, element);<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                return elements;<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>        @Override<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>        public void copyElements(Dataset destination, int element) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                if (element &lt; 0)<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        element += isize;<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                if (getElementClass() != destination.getElementClass()) {<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<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>                final IndexIterator it = getIterator(element);<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                final double[] elements = ((DoubleDataset) destination).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                destination.setDirty();<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span><a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                int n = 0;<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                while (it.hasNext()) {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                        elements[n] = data[it.index];<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        n++;<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>        }<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span><a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>        @Override<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>        public void setElements(Dataset source, int element) {<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                setDirty();<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                if (element &lt; 0)<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                        element += isize;<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                }<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                if (getElementClass() != source.getElementClass()) {<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        throw new IllegalArgumentException("Element class of destination does not match this 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>                final IndexIterator it = getIterator(element);<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                final double[] elements = ((DoubleDataset) source).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span><a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                int n = 0;<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                while (it.hasNext()) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                        data[it.index] = elements[n];<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                        n++;<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>        @Override<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                IndexIterator riter = result.getIterator();<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                result.setDirty();<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span><a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                double[] rdata = ((CompoundDoubleDataset) result).data; // PRIM_TYPE<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span><a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                rdata[riter.index + i] = data[iter.index + i];<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>        @Override<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>        public CompoundDoubleDataset setByBoolean(final Object o, Dataset selection) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                setDirty();<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                if (o instanceof Dataset) {<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                        Dataset ds = (Dataset) o;<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        if (length != ds.getSize()) {<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                                throw new IllegalArgumentException(<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        IndexIterator iter = ds.getIterator();<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                        BooleanIterator biter = getBooleanIterator(selection);<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span><a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                }<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span><a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                data[biter.index + i] = ds.getElementDoubleAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<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>                        } else {<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                        data[biter.index] = ds.getElementDoubleAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                                data[biter.index + i] = 0;<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>                        try {<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                final double[] vr = DTypeUtils.toDoubleArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span><a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                final BooleanIterator biter = getBooleanIterator(selection);<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span><a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                while (biter.hasNext()) {<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                                data[biter.index + i] = vr[i];<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>                        } catch (IllegalArgumentException e) {<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>        }<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span><a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>        @Override<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        public CompoundDoubleDataset setBy1DIndex(final Object o, Dataset index) {<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                setDirty();<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                if (o instanceof Dataset) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                        Dataset ds = (Dataset) o;<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                        if (index.getSize() != ds.getSize()) {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                throw new IllegalArgumentException(<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                                "Number of items in selection does not match number of items in dataset");<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span><a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                        IndexIterator oiter = ds.getIterator();<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span><a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                double[] temp = new double[isize];<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                        ((AbstractCompoundDataset) ds).getDoubleArrayAbs(oiter.index, temp);<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                        setDoubleArrayAbs(iter.index, temp);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                }<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                                                data[iter.index + i] = ds.getElementDoubleAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<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>                        } else {<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>                                        data[iter.index] = ds.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                                                data[iter.index + i] = 0;<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>                } else {<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                        try {<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                                final double[] vr = DTypeUtils.toDoubleArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span><a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                                final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                while (iter.hasNext()) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                                        setAbs(iter.index, vr);<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                }<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                        } catch (IllegalArgumentException e) {<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<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>        @Override<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>        public CompoundDoubleDataset setByIndexes(final Object o, final Object... indexes) {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                setDirty();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                final int[] pos = iter.getPos();<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span><a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                if (o instanceof Dataset) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                        Dataset ds = (Dataset) o;<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                                throw new IllegalArgumentException(<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                                                "Number of items in selection does not match number of items in dataset");<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                        }<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span><a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                        IndexIterator oiter = ds.getIterator();<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span><a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                }<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span><a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                double[] temp = new double[isize];<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        ((AbstractCompoundDataset) ds).getDoubleArray(temp, pos);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                        setDoubleArrayAbs(get1DIndex(pos), temp);<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                }<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                        } else {<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        int n = get1DIndex(pos);<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                        data[n] = ds.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                                data[n + i] = 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>                } else {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                        try {<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                                final double[] vr = DTypeUtils.toDoubleArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                                while (iter.hasNext()) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                        setAbs(get1DIndex(pos), vr);<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                        } catch (IllegalArgumentException e) {<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<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>        @Override<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>        CompoundDoubleDataset setSlicedView(Dataset view, Dataset d) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                setDirty();<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span><a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                final int is = view.getElementsPerItem();<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span><a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                if (is &gt; 1) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                        if (d.getElementsPerItem() == 1) {<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                while (it.hasNext()) {<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                        final double bv = it.bDouble; // PRIM_TYPE // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                        data[it.aIndex] = bv;<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                                data[it.aIndex + j] = bv;<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                                        }<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                        } else {<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                while (it.hasNext()) {<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                                        data[it.aIndex] = it.bDouble; // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                                data[it.aIndex + j] = d.getElementDoubleAbs(it.bIndex + j); // GET_ELEMENT_WITH_CAST<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>                } else {<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                        while (it.hasNext()) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                data[it.aIndex] = it.bDouble; // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                        }<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                return this;<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>        @Override<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>        public CompoundDoubleDataset setSlice(final Object o, final IndexIterator siter) {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                setDirty();<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                if (o instanceof IDataset) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                        final IDataset ds = (IDataset) o;<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                        final int[] oshape = ds.getShape();<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span><a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                throw new IllegalArgumentException(String.format(<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                                                Arrays.toString(siter.getShape())));<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                        }<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span><a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>                        if (ds instanceof Dataset) {<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                                final Dataset ads = (Dataset) ds;<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                IndexIterator oiter = ads.getIterator();<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span><a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                if (ds instanceof AbstractCompoundDataset) {<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                                        if (isize != ads.getElementsPerItem()) {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                                throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                                        data[siter.index + i] = ads.getElementDoubleAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                                }<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        }<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                } else {<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                                data[siter.index] = ads.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                                        data[siter.index + i] = 0;<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                                }<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                        }<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                }<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                        } else {<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                                final int[] pos = oiter.getPos();<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span><a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                                if (ds.getElementsPerItem() == 1) {<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                                                data[siter.index] = ds.getDouble(pos); // PRIM_TYPE<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                                        data[siter.index + i] = 0;<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                                }<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>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                                                final double[] val = DTypeUtils.toDoubleArray(ds.getObject(pos), isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                                        data[siter.index + i] = val[i];<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>                } else {<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                        try {<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                                final double[] vr = DTypeUtils.toDoubleArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span><a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                while (siter.hasNext()) {<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                                                data[siter.index + i] = vr[i];<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>                        } catch (IllegalArgumentException e) {<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                        }<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                }<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                return this;<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>        }<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span><a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>        @Override<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                double[] ddata = (double[]) dest.getBuffer(); // PRIM_TYPE<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span><a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                if (dest.getElementsPerItem() != isize) {<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                        throw new IllegalArgumentException(String.format(<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                        "Destination dataset is incompatible as it has %d elements per item not %d",<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                                        dest.getElementsPerItem(), isize));<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>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span><a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span><a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                }<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span><a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                dest.setDirty();<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                                ddata[diter.index + i] = data[siter.index + i];<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                        }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                }<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>        }<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span><a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>        @Override<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                setDirty();<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                double[] sdata = (double[]) src; // PRIM_TYPE<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span><a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span><a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                        throw new IllegalArgumentException("source array is not large enough");<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                }<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span><a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                for (int i = 0; siter.hasNext(); i++) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                data[siter.index + j] = sdata[isize * i + j];<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><a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>        @Override<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>        public boolean containsNans() {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                final IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                        for (int i = 0; i &lt; isize; i++) { // REAL_ONLY<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                                if (Double.isNaN(data[iter.index + i])) // CLASS_TYPE // REAL_ONLY<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                        return true; // REAL_ONLY<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                        } // REAL_ONLY<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                } // REAL_ONLY<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                return false;<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>        @Override<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>        public boolean containsInfs() {<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                final IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                        for (int i = 0; i &lt; isize; i++) { // REAL_ONLY<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                                if (Double.isInfinite(data[iter.index + i])) // CLASS_TYPE // REAL_ONLY<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                                        return true; // REAL_ONLY<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                        } // REAL_ONLY<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                } // REAL_ONLY<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                return false;<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>        @Override<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>        public boolean containsInvalidNumbers() {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                        for (int i = 0; i &lt; isize; i++) { // REAL_ONLY<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                double x = data[iter.index + i]; // PRIM_TYPE // REAL_ONLY<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                if (Double.isNaN(x) || Double.isInfinite(x)) // CLASS_TYPE // REAL_ONLY<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                        return true; // REAL_ONLY<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                        } // REAL_ONLY<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                } // REAL_ONLY<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                return false;<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>        }<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span><a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>        @Override<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>        public CompoundDoubleDataset iadd(final Object b) {<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                setDirty();<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                int is = bds.getElementsPerItem();<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                if (bds.getSize() == 1) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                        final IndexIterator it = getIterator();<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                        final int bOffset = bds.getOffset();<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                        if (is == 1) {<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                if (useLong) {<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                        while (it.hasNext()) {<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                        data[it.index + i] += lb;<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                                }<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                        }<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                } else {<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                        while (it.hasNext()) {<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                                        data[it.index + i] += db;<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                                                }<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                                        }<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                }<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                        } else if (is == isize) {<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                                if (useLong) {<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                        while (it.hasNext()) {<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                                        data[it.index + i] += bds.getElementLongAbs(i);<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 {<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                        while (it.hasNext()) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                                                        data[it.index + i] += bds.getElementDoubleAbs(i);<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                                }<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                        }<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                }<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                        } else {<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                        }<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                } else {<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                        it.setOutputDouble(!useLong);<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                        if (is == 1) {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                if (useLong) {<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                        while (it.hasNext()) {<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                                final long lb = it.bLong;<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                                data[it.aIndex] += lb;<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                                                        data[it.aIndex + i] += lb;<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>                                } else {<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                                        while (it.hasNext()) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                                final double db = it.bDouble;<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                                data[it.aIndex] += db;<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                                                        data[it.aIndex + i] += db;<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>                                }<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                        } else if (is == isize) {<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                if (useLong) {<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                        while (it.hasNext()) {<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                                                data[it.aIndex] += it.bLong;<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                                        data[it.aIndex + i] += bds.getElementLongAbs(it.bIndex + i);<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 {<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                                        while (it.hasNext()) {<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                                        data[it.aIndex + i] += bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                                }<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                        }<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                }<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                        } else {<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                        }<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                }<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                return this;<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 CompoundDoubleDataset isubtract(final Object b) {<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                setDirty();<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                int is = bds.getElementsPerItem();<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                if (bds.getSize() == 1) {<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                        final IndexIterator it = getIterator();<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                        final int bOffset = bds.getOffset();<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>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                        while (it.hasNext()) {<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                                        data[it.index + i] -= lb;<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                                }<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                        }<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                } else {<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                        while (it.hasNext()) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                                        data[it.index + i] -= db;<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                                }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                        }<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                }<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                        } else if (is == isize) {<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                if (useLong) {<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                        while (it.hasNext()) {<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                        data[it.index + i] -= bds.getElementLongAbs(i);<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>                                } else {<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                                        while (it.hasNext()) {<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                                                        data[it.index + i] -= bds.getElementDoubleAbs(i);<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                                                }<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>                                        }<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                                }<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                        } else {<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                        }<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                } else {<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                        it.setOutputDouble(!useLong);<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                        if (is == 1) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                if (useLong) {<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                                        while (it.hasNext()) {<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                                                final long lb = it.bLong;<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                                                data[it.aIndex] += lb;<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                                        data[it.aIndex + i] -= lb;<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>                                } else {<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                        while (it.hasNext()) {<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                                final double db = it.bDouble;<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                                                data[it.aIndex] += db;<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                                                        data[it.aIndex + i] -= db;<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                                                }<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                                        }<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                                }<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                        } else if (is == isize) {<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                                if (useLong) {<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                                        while (it.hasNext()) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                                                data[it.aIndex] += it.bLong;<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                                                        data[it.aIndex + i] -= bds.getElementLongAbs(it.bIndex + i);<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>                                        while (it.hasNext()) {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                                                        data[it.aIndex + i] -= bds.getElementDoubleAbs(it.bIndex + i);<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>                        } else {<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                        }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                }<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                return this;<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 CompoundDoubleDataset imultiply(final Object b) {<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                setDirty();<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                int is = bds.getElementsPerItem();<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                if (bds.getSize() == 1) {<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                        final IndexIterator it = getIterator();<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                        final int bOffset = bds.getOffset();<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                        if (useLong) {<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                if (is == 1) {<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                        while (it.hasNext()) {<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                                                        data[it.index + i] *= lb;<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                                                }<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                                        }<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                                } else if (is == isize) {<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>                                        while (it.hasNext()) {<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                                        data[it.index + i] *= bds.getElementLongAbs(i);<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>                                } else {<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                                }<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                        } else {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                                if (is == 1) {<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                        while (it.hasNext()) {<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                                                        data[it.index + i] *= db;<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>                                } else if (is == isize) {<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                                        while (it.hasNext()) {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                                                        data[it.index + i] *= bds.getElementDoubleAbs(i);<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                                }<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                        }<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                } else {<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                } else {<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>                        it.setOutputDouble(!useLong);<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                        if (useLong) {<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                if (is == 1) {<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                        while (it.hasNext()) {<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                                final double lb = it.bLong;<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>                                                        data[it.aIndex + i] *= lb;<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>                                } else if (is == isize) {<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                        while (it.hasNext()) {<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                                data[it.aIndex] *= it.bLong;<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                                                        data[it.aIndex + i] *= bds.getElementLongAbs(it.bIndex + i);<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                                }<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                        }<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                } else {<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                }<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                        } else {<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                if (is == 1) {<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                        while (it.hasNext()) {<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                                final double db = it.bDouble;<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                                                        data[it.aIndex + i] *= db;<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>                                } else if (is == isize) {<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>                                        while (it.hasNext()) {<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                                                data[it.aIndex] *= it.bDouble;<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                                        data[it.aIndex + i] *= bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                                }<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                        }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                } else {<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                }<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                return this;<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>        }<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span><a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>        @Override<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>        public CompoundDoubleDataset idivide(final Object b) {<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                setDirty();<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                int is = bds.getElementsPerItem();<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                if (bds.getSize() == 1) {<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                        final IndexIterator it = getIterator();<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                        final int bOffset = bds.getOffset();<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                        if (useLong) {<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                if (is == 1) {<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                        // if (lb == 0) { // INT_USE<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                        //      fill(0); // INT_USE<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                        // } else { // INT_USE<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                        while (it.hasNext()) {<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                        data[it.index + i] /= lb;<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                                }<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                        }<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                        // } // INT_USE<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                } else if (is == isize) {<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                        while (it.hasNext()) {<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                                        final long lb = bds.getElementLongAbs(i);<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                                        data[it.index + i] /= lb; // INT_EXCEPTION<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                                }<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                        }<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                } else {<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                }<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                        } else {<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                if (is == 1) {<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                        // if (db == 0) { // INT_USE<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                        //      fill(0); // INT_USE<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                        // } else { // INT_USE<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                        while (it.hasNext()) {<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                        data[it.index + i] /= db;<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                                }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                        }<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                        // } // INT_USE<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                } else if (is == isize) {<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                        while (it.hasNext()) {<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                        final double db = bds.getElementDoubleAbs(i);<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                        data[it.index + i] /= db; // INT_EXCEPTION<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>                                } else {<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                } else {<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                        it.setOutputDouble(!useLong);<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                        if (useLong) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                if (is == 1) {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                        while (it.hasNext()) {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                                final long lb = it.bLong;<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                                // if (lb == 0) { // INT_USE<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                                //      for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                                //              data[it.aIndex + i] = 0; // INT_USE<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                                //      }// INT_USE<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                                // } else { // INT_USE<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                                                        data[it.aIndex + i] /= lb;<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                                                }<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                                                // } // INT_USE<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                                        }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                                } else if (is == isize) {<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>                                        while (it.hasNext()) {<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                                                        data[it.aIndex + i] /= lb; // INT_EXCEPTION<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                                                }<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                                        }<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                                } else {<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                                if (is == 1) {<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                        while (it.hasNext()) {<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                                final double db = it.bDouble;<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                                // if (db == 0) { // INT_USE<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                                //      for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                                //              data[it.aIndex + i] = 0; // INT_USE<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                                                //      }// INT_USE<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                                // } else { // INT_USE<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                                        data[it.aIndex + i] /= db;<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                                                }<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                                // } // INT_USE<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                        }<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                } else if (is == isize) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                        while (it.hasNext()) {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                                                        data[it.aIndex + i] /= db; // INT_EXCEPTION<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 {<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                                }<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                        }<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                }<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                return this;<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>        }<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span><a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>        @Override<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>        public CompoundDoubleDataset ifloor() {<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                setDirty(); // REAL_ONLY<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                final IndexIterator it = getIterator(); // REAL_ONLY<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                while (it.hasNext()) { // REAL_ONLY<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                        for (int i = 0; i &lt; isize; i++) { // REAL_ONLY<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                data[it.index + i] = Math.floor(data[it.index] + i); // REAL_ONLY // ADD_CAST<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                        } // REAL_ONLY<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                } // REAL_ONLY<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                return this;<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>        }<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span><a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>        @Override<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>        public CompoundDoubleDataset iremainder(final Object b) {<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                setDirty();<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                int is = bds.getElementsPerItem();<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                if (bds.getSize() == 1) {<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                        final IndexIterator it = getIterator();<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                        final int bOffset = bds.getOffset();<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                        if (useLong) {<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                if (is == 1) {<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                        // if (lb == 0) { // INT_USE<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                        //      fill(0); // INT_USE<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                        // } else { // INT_USE<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                        while (it.hasNext()) {<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                                        data[it.index + i] %= lb;<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                                }<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                        }<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                        // } // INT_USE<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                } else if (is == isize) {<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                        while (it.hasNext()) {<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                                        data[it.index + i] %= bds.getElementLongAbs(i); // INT_EXCEPTION<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>                                } else {<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                }<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                        } else {<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                                if (is == 1) {<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                                        // if (db == 0) { // INT_USE<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                                        //      fill(0); // INT_USE<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                                        // } else { // INT_USE<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span>                                        while (it.hasNext()) {<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                                        data[it.index + i] %= db;<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                                }<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                        }<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                        // } // INT_USE<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                } else if (is == isize) {<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                        while (it.hasNext()) {<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                                        data[it.index + i] %= bds.getElementDoubleAbs(i); // INT_EXCEPTION<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                }<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                        }<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                } else {<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                } else {<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                        it.setOutputDouble(!useLong);<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                        if (useLong) {<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                if (is == 1) {<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                        while (it.hasNext()) {<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                                                final long lb = it.bLong;<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                                // if (lb == 0) { // INT_USE<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                                //      for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                                //              data[it.aIndex + i] = 0; // INT_USE<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                                // } else { // INT_USE<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                                for (int i = 0; i &lt; isize; i++)<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                                                        data[it.aIndex + i] %= lb;<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                                                // } // INT_USE<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                                        }<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                                } else if (is == isize) {<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                                        while (it.hasNext()) {<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                                                        data[it.aIndex + i] %= lb; // INT_EXCEPTION<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>                                                }<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                                        }<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>                                } else {<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>                                }<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span>                        } else {<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>                                if (is == 1) {<a name="line.1896"></a>
+<span class="sourceLineNo">1897</span>                                        while (it.hasNext()) {<a name="line.1897"></a>
+<span class="sourceLineNo">1898</span>                                                final double db = it.bDouble;<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>                                                // if (db == 0) { // INT_USE<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>                                                //      for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>                                                //              data[it.aIndex + i] = 0; // INT_USE<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span>                                                // } else { // INT_USE<a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span>                                                        data[it.aIndex + i] %= db;<a name="line.1904"></a>
+<span class="sourceLineNo">1905</span>                                                }<a name="line.1905"></a>
+<span class="sourceLineNo">1906</span>                                                // } // INT_USE<a name="line.1906"></a>
+<span class="sourceLineNo">1907</span>                                        }<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span>                                } else if (is == isize) {<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>                                        while (it.hasNext()) {<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1911"></a>
+<span class="sourceLineNo">1912</span>                                                        data[it.aIndex + i] %= db; // INT_EXCEPTION<a name="line.1912"></a>
+<span class="sourceLineNo">1913</span>                                                }<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>                                        }<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>                                } else {<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                }<a name="line.1919"></a>
+<span class="sourceLineNo">1920</span>                return this;<a name="line.1920"></a>
+<span class="sourceLineNo">1921</span>        }<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span><a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>        @Override<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span>        public CompoundDoubleDataset ipower(final Object b) {<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span>                setDirty();<a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>                final int is = bds.getElementsPerItem();<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>                if (bds.getSize() == 1) {<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>                        final int bOffset = bds.getOffset();<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>                        final double vr = bds.getElementDoubleAbs(bOffset);<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>                        final IndexIterator it = getIterator();<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>                        if (bds.isComplex()) {<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span>                                final double vi = bds.getElementDoubleAbs(bOffset + 1);<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span>                                if (vi == 0) {<a name="line.1934"></a>
+<span class="sourceLineNo">1935</span>                                        while (it.hasNext()) {<a name="line.1935"></a>
+<span class="sourceLineNo">1936</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1936"></a>
+<span class="sourceLineNo">1937</span>                                                        final double v = Math.pow(data[it.index + i], vr);<a name="line.1937"></a>
+<span class="sourceLineNo">1938</span>                                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1938"></a>
+<span class="sourceLineNo">1939</span>                                                        //      data[it.index + i] = 0; // INT_USE<a name="line.1939"></a>
+<span class="sourceLineNo">1940</span>                                                        // } else { // INT_USE<a name="line.1940"></a>
+<span class="sourceLineNo">1941</span>                                                        data[it.index + i] = v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1941"></a>
+<span class="sourceLineNo">1942</span>                                                        // } // INT_USE<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 Complex zv = new Complex(vr, vi);<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span>                                        while (it.hasNext()) {<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span>                                                        Complex zd = new Complex(data[it.index + i], 0);<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span>                                                        final double v = zd.pow(zv).getReal();<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span>                                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1951"></a>
+<span class="sourceLineNo">1952</span>                                                        //      data[it.index + i] = 0; // INT_USE<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span>                                                        // } else { // INT_USE<a name="line.1953"></a>
+<span class="sourceLineNo">1954</span>                                                        data[it.index + i] = v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1954"></a>
+<span class="sourceLineNo">1955</span>                                                        // } // INT_USE<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>                        } else if (is == 1) {<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span>                                while (it.hasNext()) {<a name="line.1960"></a>
+<span class="sourceLineNo">1961</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span>                                                final double v = Math.pow(data[it.index + i], vr);<a name="line.1962"></a>
+<span class="sourceLineNo">1963</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1963"></a>
+<span class="sourceLineNo">1964</span>                                                //      data[it.index + i] = 0; // INT_USE<a name="line.1964"></a>
+<span class="sourceLineNo">1965</span>                                                // } else { // INT_USE<a name="line.1965"></a>
+<span class="sourceLineNo">1966</span>                                                data[it.index + i] = v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1966"></a>
+<span class="sourceLineNo">1967</span>                                                // } // INT_USE<a name="line.1967"></a>
+<span class="sourceLineNo">1968</span>                                        }<a name="line.1968"></a>
+<span class="sourceLineNo">1969</span>                                }<a name="line.1969"></a>
+<span class="sourceLineNo">1970</span>                        } else if (is == isize) {<a name="line.1970"></a>
+<span class="sourceLineNo">1971</span>                                while (it.hasNext()) {<a name="line.1971"></a>
+<span class="sourceLineNo">1972</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span>                                                final double v = Math.pow(data[it.index + i], bds.getElementDoubleAbs(i));<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span>                                                //      data[it.index + i] = 0; // INT_USE<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span>                                                // } else { // INT_USE<a name="line.1976"></a>
+<span class="sourceLineNo">1977</span>                                                data[it.index + i] = v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1977"></a>
+<span class="sourceLineNo">1978</span>                                                // } // INT_USE<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>                } else {<a name="line.1982"></a>
+<span class="sourceLineNo">1983</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1983"></a>
+<span class="sourceLineNo">1984</span>                        it.setOutputDouble(true);<a name="line.1984"></a>
+<span class="sourceLineNo">1985</span>                        if (bds.isComplex()) {<a name="line.1985"></a>
+<span class="sourceLineNo">1986</span>                                while (it.hasNext()) {<a name="line.1986"></a>
+<span class="sourceLineNo">1987</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.1987"></a>
+<span class="sourceLineNo">1988</span>                                        double v = new Complex(it.aDouble, 0).pow(zv).getReal();<a name="line.1988"></a>
+<span class="sourceLineNo">1989</span>                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span>                                        //      data[it.aIndex] = 0; // INT_USE<a name="line.1990"></a>
+<span class="sourceLineNo">1991</span>                                        // } else { // INT_USE<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span>                                        data[it.aIndex] = v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span>                                        // } // INT_USE<a name="line.1993"></a>
+<span class="sourceLineNo">1994</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1994"></a>
+<span class="sourceLineNo">1995</span>                                                v = new Complex(data[it.aIndex + i], 0).pow(zv).getReal();<a name="line.1995"></a>
+<span class="sourceLineNo">1996</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1996"></a>
+<span class="sourceLineNo">1997</span>                                                //      data[it.aIndex + i] = 0; // INT_USE<a name="line.1997"></a>
+<span class="sourceLineNo">1998</span>                                                // } else { // INT_USE<a name="line.1998"></a>
+<span class="sourceLineNo">1999</span>                                                data[it.aIndex + i] = v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1999"></a>
+<span class="sourceLineNo">2000</span>                                                // } // INT_USE<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span>                                        }<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span>                                }<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>                        } else {<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>                                while (it.hasNext()) {<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span>                                        double v = Math.pow(it.aDouble, it.bDouble);<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>                                        //      data[it.aIndex] = 0; // INT_USE<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span>                                        // } else { // INT_USE<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>                                        data[it.aIndex] = v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>                                        // } // INT_USE<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>                                                v = Math.pow(data[it.aIndex + i], bds.getElementDoubleAbs(it.bIndex + i));<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>                                                //      data[it.aIndex + i] = 0; // INT_USE<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>                                                // } else { // INT_USE<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>                                                data[it.aIndex + i] = v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span>                                                // } // INT_USE<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>                                        }<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span>                                }<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>                        }<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>                }<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>                return this;<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>        @Override<a name="line.2025"></a>
+<span class="sourceLineNo">2026</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.2026"></a>
+<span class="sourceLineNo">2027</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.2027"></a>
+<span class="sourceLineNo">2028</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span>                it.setOutputDouble(true);<a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>                double sum = 0;<a name="line.2030"></a>
+<span class="sourceLineNo">2031</span>                double comp = 0;<a name="line.2031"></a>
+<span class="sourceLineNo">2032</span>                final int bis = bds.getElementsPerItem();<a name="line.2032"></a>
+<span class="sourceLineNo">2033</span><a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>                if (bis == 1) {<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>                        if (w == null) {<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span>                                while (it.hasNext()) {<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>                                        final double db = it.bDouble;<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>                                        double diff = it.aDouble - db;<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span>                                        if (ignoreNaNs) { // REAL_ONLY<a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>                                                if (Double.isNaN(diff)) // 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>                                                boolean skip = false; // REAL_ONLY<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>                                                for (int i = 1; i &lt; isize; i++) { // REAL_ONLY<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>                                                        if (Double.isNaN(data[it.aIndex + i])) { // REAL_ONLY<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span>                                                                skip = true; // REAL_ONLY<a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>                                                                break; // REAL_ONLY<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>                                                        } // REAL_ONLY<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>                                                } // REAL_ONLY<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>                                                if (skip) { // REAL_ONLY<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>                                                        continue; // REAL_ONLY<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span>                                                } // REAL_ONLY<a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>                                        } // REAL_ONLY<a name="line.2052"></a>
+<span class="sourceLineNo">2053</span>                                        double err = diff * diff - comp;<a name="line.2053"></a>
+<span class="sourceLineNo">2054</span>                                        double temp = sum + err;<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span>                                        comp = (temp - sum) - err;<a name="line.2055"></a>
+<span class="sourceLineNo">2056</span>                                        sum = temp;<a name="line.2056"></a>
+<span class="sourceLineNo">2057</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2057"></a>
+<span class="sourceLineNo">2058</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>                                                err = diff * diff - comp;<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span>                                                temp = sum + err;<a name="line.2060"></a>
+<span class="sourceLineNo">2061</span>                                                comp = (temp - sum) - err;<a name="line.2061"></a>
+<span class="sourceLineNo">2062</span>                                                sum = temp;<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span>                                        }<a name="line.2063"></a>
+<span class="sourceLineNo">2064</span>                                }<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>                        } else {<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>                                IndexIterator itw = w.getIterator();<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>                                        final double db = it.bDouble;<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span>                                        double diff = it.aDouble - db;<a name="line.2069"></a>
+<span class="sourceLineNo">2070</span>                                        if (ignoreNaNs) { // REAL_ONLY<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span>                                                if (Double.isNaN(diff)) // REAL_ONLY<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span>                                                        continue; // REAL_ONLY<a name="line.2072"></a>
+<span class="sourceLineNo">2073</span>                                                boolean skip = false; // REAL_ONLY<a name="line.2073"></a>
+<span class="sourceLineNo">2074</span>                                                for (int i = 1; i &lt; isize; i++) { // REAL_ONLY<a name="line.2074"></a>
+<span class="sourceLineNo">2075</span>                                                        if (Double.isNaN(data[it.aIndex + i])) { // REAL_ONLY<a name="line.2075"></a>
+<span class="sourceLineNo">2076</span>                                                                skip = true; // REAL_ONLY<a name="line.2076"></a>
+<span class="sourceLineNo">2077</span>                                                                break; // REAL_ONLY<a name="line.2077"></a>
+<span class="sourceLineNo">2078</span>                                                        } // REAL_ONLY<a name="line.2078"></a>
+<span class="sourceLineNo">2079</span>                                                } // REAL_ONLY<a name="line.2079"></a>
+<span class="sourceLineNo">2080</span>                                                if (skip) { // REAL_ONLY<a name="line.2080"></a>
+<span class="sourceLineNo">2081</span>                                                        continue; // REAL_ONLY<a name="line.2081"></a>
+<span class="sourceLineNo">2082</span>                                                } // REAL_ONLY<a name="line.2082"></a>
+<span class="sourceLineNo">2083</span>                                        } // REAL_ONLY<a name="line.2083"></a>
+<span class="sourceLineNo">2084</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2084"></a>
+<span class="sourceLineNo">2085</span>                                        double err = diff * diff * dw - comp;<a name="line.2085"></a>
+<span class="sourceLineNo">2086</span>                                        double temp = sum + err;<a name="line.2086"></a>
+<span class="sourceLineNo">2087</span>                                        comp = (temp - sum) - err;<a name="line.2087"></a>
+<span class="sourceLineNo">2088</span>                                        sum = temp;<a name="line.2088"></a>
+<span class="sourceLineNo">2089</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2089"></a>
+<span class="sourceLineNo">2090</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2090"></a>
+<span class="sourceLineNo">2091</span>                                                err = diff * diff * dw - comp;<a name="line.2091"></a>
+<span class="sourceLineNo">2092</span>                                                temp = sum + err;<a name="line.2092"></a>
+<span class="sourceLineNo">2093</span>                                                comp = (temp - sum) - err;<a name="line.2093"></a>
+<span class="sourceLineNo">2094</span>                                                sum = temp;<a name="line.2094"></a>
+<span class="sourceLineNo">2095</span>                                        }<a name="line.2095"></a>
+<span class="sourceLineNo">2096</span>                                }<a name="line.2096"></a>
+<span class="sourceLineNo">2097</span>                        }<a name="line.2097"></a>
+<span class="sourceLineNo">2098</span>                } else {<a name="line.2098"></a>
+<span class="sourceLineNo">2099</span>                        if (w == null) {<a name="line.2099"></a>
+<span class="sourceLineNo">2100</span>                                while (it.hasNext()) {<a name="line.2100"></a>
+<span class="sourceLineNo">2101</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2101"></a>
+<span class="sourceLineNo">2102</span>                                        if (ignoreNaNs) { // REAL_ONLY<a name="line.2102"></a>
+<span class="sourceLineNo">2103</span>                                                if (Double.isNaN(diff)) // REAL_ONLY<a name="line.2103"></a>
+<span class="sourceLineNo">2104</span>                                                        continue; // REAL_ONLY<a name="line.2104"></a>
+<span class="sourceLineNo">2105</span>                                                boolean skip = false; // REAL_ONLY<a name="line.2105"></a>
+<span class="sourceLineNo">2106</span>                                                for (int i = 1; i &lt; isize; i++) { // REAL_ONLY<a name="line.2106"></a>
+<span class="sourceLineNo">2107</span>                                                        if (Double.isNaN(data[it.aIndex + i]) || Double.isNaN(bds.getElementDoubleAbs(it.bIndex + i))) { // REAL_ONLY<a name="line.2107"></a>
+<span class="sourceLineNo">2108</span>                                                                skip = true; // REAL_ONLY<a name="line.2108"></a>
+<span class="sourceLineNo">2109</span>                                                                break; // REAL_ONLY<a name="line.2109"></a>
+<span class="sourceLineNo">2110</span>                                                        } // REAL_ONLY<a name="line.2110"></a>
+<span class="sourceLineNo">2111</span>                                                } // REAL_ONLY<a name="line.2111"></a>
+<span class="sourceLineNo">2112</span>                                                if (skip) { // REAL_ONLY<a name="line.2112"></a>
+<span class="sourceLineNo">2113</span>                                                        continue; // REAL_ONLY<a name="line.2113"></a>
+<span class="sourceLineNo">2114</span>                                                } // REAL_ONLY<a name="line.2114"></a>
+<span class="sourceLineNo">2115</span>                                        } // REAL_ONLY<a name="line.2115"></a>
+<span class="sourceLineNo">2116</span>                                        double err = diff * diff - comp;<a name="line.2116"></a>
+<span class="sourceLineNo">2117</span>                                        double temp = sum + err;<a name="line.2117"></a>
+<span class="sourceLineNo">2118</span>                                        comp = (temp - sum) - err;<a name="line.2118"></a>
+<span class="sourceLineNo">2119</span>                                        sum = temp;<a name="line.2119"></a>
+<span class="sourceLineNo">2120</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2120"></a>
+<span class="sourceLineNo">2121</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2121"></a>
+<span class="sourceLineNo">2122</span>                                                err = diff * diff - comp;<a name="line.2122"></a>
+<span class="sourceLineNo">2123</span>                                                temp = sum + err;<a name="line.2123"></a>
+<span class="sourceLineNo">2124</span>                                                comp = (temp - sum) - err;<a name="line.2124"></a>
+<span class="sourceLineNo">2125</span>                                                sum = temp;<a name="line.2125"></a>
+<span class="sourceLineNo">2126</span>                                        }<a name="line.2126"></a>
+<span class="sourceLineNo">2127</span>                                }<a name="line.2127"></a>
+<span class="sourceLineNo">2128</span>                        } else {<a name="line.2128"></a>
+<span class="sourceLineNo">2129</span>                                IndexIterator itw = w.getIterator();<a name="line.2129"></a>
+<span class="sourceLineNo">2130</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2130"></a>
+<span class="sourceLineNo">2131</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2131"></a>
+<span class="sourceLineNo">2132</span>                                        if (ignoreNaNs) { // REAL_ONLY<a name="line.2132"></a>
+<span class="sourceLineNo">2133</span>                                                if (Double.isNaN(diff)) // REAL_ONLY<a name="line.2133"></a>
+<span class="sourceLineNo">2134</span>                                                        continue; // REAL_ONLY<a name="line.2134"></a>
+<span class="sourceLineNo">2135</span>                                                boolean skip = false; // REAL_ONLY<a name="line.2135"></a>
+<span class="sourceLineNo">2136</span>                                                for (int i = 1; i &lt; isize; i++) { // REAL_ONLY<a name="line.2136"></a>
+<span class="sourceLineNo">2137</span>                                                        if (Double.isNaN(data[it.aIndex + i]) || Double.isNaN(bds.getElementDoubleAbs(it.bIndex + i))) { // REAL_ONLY<a name="line.2137"></a>
+<span class="sourceLineNo">2138</span>                                                                skip = true; // REAL_ONLY<a name="line.2138"></a>
+<span class="sourceLineNo">2139</span>                                                                break; // REAL_ONLY<a name="line.2139"></a>
+<span class="sourceLineNo">2140</span>                                                        } // REAL_ONLY<a name="line.2140"></a>
+<span class="sourceLineNo">2141</span>                                                } // REAL_ONLY<a name="line.2141"></a>
+<span class="sourceLineNo">2142</span>                                                if (skip) { // REAL_ONLY<a name="line.2142"></a>
+<span class="sourceLineNo">2143</span>                                                        continue; // REAL_ONLY<a name="line.2143"></a>
+<span class="sourceLineNo">2144</span>                                                } // REAL_ONLY<a name="line.2144"></a>
+<span class="sourceLineNo">2145</span>                                        } // REAL_ONLY<a name="line.2145"></a>
+<span class="sourceLineNo">2146</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2146"></a>
+<span class="sourceLineNo">2147</span>                                        double err = diff * diff * dw - comp;<a name="line.2147"></a>
+<span class="sourceLineNo">2148</span>                                        double temp = sum + err;<a name="line.2148"></a>
+<span class="sourceLineNo">2149</span>                                        comp = (temp - sum) - err;<a name="line.2149"></a>
+<span class="sourceLineNo">2150</span>                                        sum = temp;<a name="line.2150"></a>
+<span class="sourceLineNo">2151</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2151"></a>
+<span class="sourceLineNo">2152</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2152"></a>
+<span class="sourceLineNo">2153</span>                                                err = diff * diff * dw - comp;<a name="line.2153"></a>
+<span class="sourceLineNo">2154</span>                                                temp = sum + err;<a name="line.2154"></a>
+<span class="sourceLineNo">2155</span>                                                comp = (temp - sum) - err;<a name="line.2155"></a>
+<span class="sourceLineNo">2156</span>                                                sum = temp;<a name="line.2156"></a>
+<span class="sourceLineNo">2157</span>                                        }<a name="line.2157"></a>
+<span class="sourceLineNo">2158</span>                                }<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>                return sum;<a name="line.2161"></a>
+<span class="sourceLineNo">2162</span>        }<a name="line.2162"></a>
+<span class="sourceLineNo">2163</span>}<a name="line.2163"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/CompoundFloatDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/CompoundFloatDataset.html
new file mode 100644
index 0000000..e7dedea
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/CompoundFloatDataset.html
@@ -0,0 +1,2235 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// This is generated from CompoundDoubleDataset.java by fromcpddouble.py<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.Arrays;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.commons.math3.complex.Complex;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>/**<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * Extend compound dataset for float values // PRIM_TYPE<a name="line.22"></a>
+<span class="sourceLineNo">023</span> */<a name="line.23"></a>
+<span class="sourceLineNo">024</span>public class CompoundFloatDataset extends AbstractCompoundDataset {<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        // pin UID to base class<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>        protected float[] data; // subclass alias // PRIM_TYPE<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>        @Override<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        protected void setData() {<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                data = (float[]) odata; // PRIM_TYPE<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        }<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>        protected float[] createArray(final int size) { // PRIM_TYPE<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                float[] array = null; // PRIM_TYPE<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>                try {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                        array = new float[isize * size]; // PRIM_TYPE<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                } catch (OutOfMemoryError e) {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                }<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                return array;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        }<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>        @Override<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public int getDType() {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                return Dataset.ARRAYFLOAT32; // DATA_TYPE<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        }<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        /**<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         * Create a null dataset<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        CompoundFloatDataset() {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * Create a null dataset<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * @param itemSize<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         */<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        CompoundFloatDataset(final int itemSize) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                isize = itemSize;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>        /**<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         * Create a zero-filled dataset of given item size and shape<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         * @param itemSize<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         * @param shape<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         */<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        CompoundFloatDataset(final int itemSize, final int[] shape) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                isize = itemSize;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                if (shape != null) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        size = ShapeUtils.calcSize(shape);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        this.shape = shape.clone();<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        try {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                odata = data = createArray(size);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        } catch (Throwable t) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                                throw new IllegalArgumentException(t);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                        }<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        }<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>        /**<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         * Copy a dataset<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         * @param dataset<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>        CompoundFloatDataset(final CompoundFloatDataset dataset) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                isize = dataset.isize;<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                copyToView(dataset, this, true, true);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                try {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        if (dataset.stride == null) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                                if (dataset.data != null) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                        odata = data = dataset.data.clone();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                        } else {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                offset = 0;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                stride = null;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                base = null;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                                odata = data = createArray(size);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                IndexIterator iter = dataset.getIterator();<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                                for (int j = 0; iter.hasNext();) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                                                data[j++] = dataset.data[iter.index + i];<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                                        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                                }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        }<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                } catch (Throwable t) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        throw new IllegalArgumentException(t);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                }<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>        /**<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         * Create a dataset using given dataset<a name="line.120"></a>
+<span class="sourceLineNo">121</span>         * @param dataset<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         */<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        CompoundFloatDataset(final CompoundDataset dataset) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                copyToView(dataset, this, true, false);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                offset = 0;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                stride = null;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                base = null;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                isize = dataset.getElementsPerItem();<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                try {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        odata = data = createArray(size);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                } catch (Throwable t) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                        throw new IllegalArgumentException(t);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>                IndexIterator iter = dataset.getIterator();<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                for (int j = 0; iter.hasNext();) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                                data[j++] = (float) dataset.getElementDoubleAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        }<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        }<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>        /**<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * Create a dataset using given data (elements are grouped together)<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         * @param itemSize<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         * @param data<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         * @param shape<a name="line.148"></a>
+<span class="sourceLineNo">149</span>         *            (can be null to create 1D dataset)<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         */<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        CompoundFloatDataset(final int itemSize, final float[] data, int... shape) { // PRIM_TYPE<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                isize = itemSize;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                if (data != null) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        if (shape == null || (shape.length == 0 &amp;&amp; data.length &gt; isize)) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                                shape = new int[] { data.length / isize };<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        }<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        size = ShapeUtils.calcSize(shape);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                        if (size * isize != data.length) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                                throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                                                Arrays.toString(shape), data.length / isize));<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        this.shape = size == 0 ? null : shape.clone();<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        odata = this.data = data;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                }<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        }<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>        /**<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         * Create a dataset using given datasets<a name="line.169"></a>
+<span class="sourceLineNo">170</span>         * @param datasets<a name="line.170"></a>
+<span class="sourceLineNo">171</span>         */<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        CompoundFloatDataset(final Dataset... datasets) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                if (datasets.length &lt; 1) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                        throw new IllegalArgumentException("Array of datasets must have length greater than zero");<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                }<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>                for (int i = 1; i &lt; datasets.length; i++) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        datasets[0].checkCompatibility(datasets[i]);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>                isize = datasets.length;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                size = ShapeUtils.calcSize(datasets[0].getShapeRef());<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                shape = datasets[0].getShape();<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>                try {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        odata = data = createArray(size);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                } catch (Throwable t) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                        throw new IllegalArgumentException(t);<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>                IndexIterator[] iters = new IndexIterator[isize];<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                for (int i = 0; i &lt; datasets.length; i++) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                        iters[i] = datasets[i].getIterator();<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                }<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>                for (int j = 0; iters[0].hasNext();) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        data[j++] = (float) datasets[0].getElementDoubleAbs(iters[0].index); // GET_ELEMENT_WITH_CAST<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        for (int i = 1; i &lt; datasets.length; i++) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                                iters[i].hasNext();<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                                data[j++] = (float) datasets[i].getElementDoubleAbs(iters[i].index); // GET_ELEMENT_WITH_CAST<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        }<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                }<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>        /**<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * Cast a dataset to this compound type. If repeat is set, the first element of each item in the given dataset is<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * repeated across all elements of an item. Otherwise, each item comprises a truncated or zero-padded copy of<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * elements from the given dataset.<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         * @param itemSize<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         * @param repeat<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         *            repeat first element<a name="line.212"></a>
+<span class="sourceLineNo">213</span>         * @param dataset<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         */<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        CompoundFloatDataset(final int itemSize, final boolean repeat, final Dataset dataset) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                isize = itemSize;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                size = dataset.getSize();<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                shape = dataset.getShape();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                name = new String(dataset.getName());<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>                try {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        odata = data = createArray(size);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                } catch (Throwable t) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                        throw new IllegalArgumentException(t);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                }<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                final int os = dataset.getElementsPerItem();<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>                IndexIterator iter = dataset.getIterator();<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                if (repeat) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                        int i = 0;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                        while (iter.hasNext()) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                final float v = (float) dataset.getElementDoubleAbs(iter.index); // PRIM_TYPE // GET_ELEMENT_WITH_CAST<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                                        data[i++] = v;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                        }<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                } else {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                        final int kmax = Math.min(isize, os);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        int i = 0;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                        while (iter.hasNext()) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                                for (int k = 0; k &lt; kmax; k++) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                        data[i + k] = (float) dataset.getElementDoubleAbs(iter.index + k); // GET_ELEMENT_WITH_CAST<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                                }<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                                i += isize;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        }<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                }<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>        @Override<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        public boolean equals(Object obj) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                if (this == obj) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        return true;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                }<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>                if (obj == null) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                        return false;<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>                if (!getClass().equals(obj.getClass())) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                        if (getRank() == 0) { // for zero-rank datasets<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                return obj.equals(getObjectAbs(offset));<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                        return false;<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>                CompoundFloatDataset other = (CompoundFloatDataset) obj;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                if (isize != other.isize) {<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>                if (size != other.size) {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                        return false;<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                }<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                if (!Arrays.equals(shape, other.shape)) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                        return false;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                if (data == other.data &amp;&amp; stride == null &amp;&amp; other.stride == null) {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                        return true;<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>                IndexIterator iter = getIterator();<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                IndexIterator oiter = other.getIterator();<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                                if (data[iter.index+j] != other.data[oiter.index+j]) {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                                        return false;<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>                return true;<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>        @Override<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        public int hashCode() {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                return super.hashCode();<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>        @Override<a name="line.298"></a>
+<span class="sourceLineNo">299</span>        public CompoundFloatDataset clone() {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                return new CompoundFloatDataset(this);<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>        /**<a name="line.303"></a>
+<span class="sourceLineNo">304</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.304"></a>
+<span class="sourceLineNo">305</span>         * sequences or arrays are padded with zeros. The item size is the last dimension of the corresponding<a name="line.305"></a>
+<span class="sourceLineNo">306</span>         * elemental dataset<a name="line.306"></a>
+<span class="sourceLineNo">307</span>         *<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         * @param obj<a name="line.308"></a>
+<span class="sourceLineNo">309</span>         * @return dataset with contents given by input<a name="line.309"></a>
+<span class="sourceLineNo">310</span>         */<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        static CompoundFloatDataset createFromObject(final Object obj) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                FloatDataset result = FloatDataset.createFromObject(obj); // CLASS_TYPE<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                return createCompoundDatasetWithLastDimension(result, true);<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>         * Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * sequences or arrays are padded with zeros.<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         *<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         * @param itemSize<a name="line.320"></a>
+<span class="sourceLineNo">321</span>         * @param obj<a name="line.321"></a>
+<span class="sourceLineNo">322</span>         * @return dataset with contents given by input<a name="line.322"></a>
+<span class="sourceLineNo">323</span>         */<a name="line.323"></a>
+<span class="sourceLineNo">324</span>        public static CompoundFloatDataset createFromObject(final int itemSize, final Object obj) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                FloatDataset result = FloatDataset.createFromObject(obj); // CLASS_TYPE<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                boolean zeroRank = result.shape == null ? false : result.shape.length == 0;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                if (zeroRank) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                        result.resize(itemSize); // special case of single item<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        result.fill(obj);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                CompoundFloatDataset ds = new CompoundFloatDataset(itemSize, result.getData(), null);<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                if (zeroRank) {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        ds.setShape(new int[0]);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                return ds;<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>         * @param stop<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         */<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        static CompoundFloatDataset createRange(final int itemSize, final double stop) {<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                return createRange(itemSize, 0., stop, 1.);<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>         * @param start<a name="line.347"></a>
+<span class="sourceLineNo">348</span>         * @param stop<a name="line.348"></a>
+<span class="sourceLineNo">349</span>         * @param step<a name="line.349"></a>
+<span class="sourceLineNo">350</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.350"></a>
+<span class="sourceLineNo">351</span>         */<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        static CompoundFloatDataset createRange(final int itemSize, final double start, final double stop,<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                        final double step) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                int size = calcSteps(start, stop, step);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                CompoundFloatDataset result = new CompoundFloatDataset(itemSize, new int[] { size });<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                for (int i = 0; i &lt; size; i++) {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                        result.data[i * result.isize] = (float) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                return result;<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>        /**<a name="line.362"></a>
+<span class="sourceLineNo">363</span>         * @param shape<a name="line.363"></a>
+<span class="sourceLineNo">364</span>         * @return a dataset filled with ones<a name="line.364"></a>
+<span class="sourceLineNo">365</span>         */<a name="line.365"></a>
+<span class="sourceLineNo">366</span>        static CompoundFloatDataset ones(final int itemSize, final int... shape) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                return new CompoundFloatDataset(itemSize, shape).fill(1);<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>         * Create a compound dataset using last dimension of given dataset<a name="line.371"></a>
+<span class="sourceLineNo">372</span>         * @param a<a name="line.372"></a>
+<span class="sourceLineNo">373</span>         * @param shareData if true, then share data when possible otherwise copy it<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * @return compound dataset<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         */<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        public static CompoundFloatDataset createCompoundDatasetWithLastDimension(final Dataset a, final boolean shareData) {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                if (a.getElementsPerItem() != 1) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                        logger.error("Need a single-element dataset");<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                        throw new IllegalArgumentException("Need a single-element dataset");<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                }<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                if (a.getDType() != Dataset.FLOAT32) { // DATA_TYPE<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                        logger.error("Dataset type must be float"); // PRIM_TYPE<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                        throw new IllegalArgumentException("Dataset type must be float"); // PRIM_TYPE<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                }<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span>                final int[] shape = a.getShapeRef();<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                if (shape == null) {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                        return new CompoundFloatDataset(0);<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>                final int rank = shape.length - 1;<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                final int is = rank &lt; 0 ? 1 : shape[rank];<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>                CompoundFloatDataset result = new CompoundFloatDataset(is);<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                result.shape = rank &gt; 0 ? Arrays.copyOf(shape, rank) : (rank &lt; 0 ? new int[0] : new int[] {1});<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                result.size = ShapeUtils.calcSize(result.shape);<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                result.odata = shareData ? a.flatten().getBuffer() : a.clone().getBuffer();<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                result.setName(a.getName());<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                result.setData();<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                return result;<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 FloatDataset asNonCompoundDataset(final boolean shareData) { // CLASS_TYPE<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                FloatDataset result = new FloatDataset(); // CLASS_TYPE<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                final int is = getElementsPerItem();<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                final int rank = is == 1 ? shape.length : shape.length + 1;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                final int[] nshape = Arrays.copyOf(shape, rank);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                if (is != 1)<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                        nshape[rank-1] = is;<a name="line.411"></a>
+<span class="sourceLineNo">412</span><a name="line.412"></a>
+<span class="sourceLineNo">413</span>                result.shape = nshape;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                result.size = ShapeUtils.calcSize(nshape);<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                result.odata = shareData &amp;&amp; isContiguous() ? data : clone().getBuffer();<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                result.setName(name);<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                result.setData();<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                return result;<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 CompoundFloatDataset fill(Object obj) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                setDirty();<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                if (obj instanceof Complex) {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                        obj = new Complex(((Complex) obj).getReal(), 0);<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                }<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                float[] vr = DTypeUtils.toFloatArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                IndexIterator iter = getIterator();<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span>                while (iter.hasNext()) {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                                data[iter.index + i] = vr[i]; // PRIM_TYPE<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                        }<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                }<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span>                return this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.440"></a>
+<span class="sourceLineNo">441</span>         * @return data buffer as linear array<a name="line.441"></a>
+<span class="sourceLineNo">442</span>         */<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        public float[] getData() { // PRIM_TYPE<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                return data;<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>        @Override<a name="line.447"></a>
+<span class="sourceLineNo">448</span>        protected int getBufferLength() {<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                if (data == null)<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                        return 0;<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                return data.length;<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 CompoundFloatDataset getView(boolean deepCopyMetadata) {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                CompoundFloatDataset view = new CompoundFloatDataset(isize);<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                view.setData();<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                return view;<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>        /**<a name="line.462"></a>
+<span class="sourceLineNo">463</span>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.463"></a>
+<span class="sourceLineNo">464</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.464"></a>
+<span class="sourceLineNo">465</span>         *<a name="line.465"></a>
+<span class="sourceLineNo">466</span>         * @param index<a name="line.466"></a>
+<span class="sourceLineNo">467</span>         *            absolute index<a name="line.467"></a>
+<span class="sourceLineNo">468</span>         * @return values<a name="line.468"></a>
+<span class="sourceLineNo">469</span>         */<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        public float[] getAbs(final int index) { // PRIM_TYPE<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                float[] result = new float[isize]; // PRIM_TYPE<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                        result[i] = data[index + i];<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                }<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                return result;<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>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.479"></a>
+<span class="sourceLineNo">480</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.480"></a>
+<span class="sourceLineNo">481</span>         *<a name="line.481"></a>
+<span class="sourceLineNo">482</span>         * @param index<a name="line.482"></a>
+<span class="sourceLineNo">483</span>         *            absolute index<a name="line.483"></a>
+<span class="sourceLineNo">484</span>         * @param values<a name="line.484"></a>
+<span class="sourceLineNo">485</span>         */<a name="line.485"></a>
+<span class="sourceLineNo">486</span>        public void getAbs(final int index, final float[] values) { // PRIM_TYPE<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                        values[i] = data[index + i];<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                }<a name="line.489"></a>
+<span class="sourceLineNo">490</span>        }<a name="line.490"></a>
+<span class="sourceLineNo">491</span><a name="line.491"></a>
+<span class="sourceLineNo">492</span>        @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                return data[index] != 0;<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>        @Override<a name="line.497"></a>
+<span class="sourceLineNo">498</span>        public double getElementDoubleAbs(final int index) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                return data[index];<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 long getElementLongAbs(final int index) {<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                return DTypeUtils.toLong(data[index]); // OMIT_TOLONG_INT<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>        @Override<a name="line.507"></a>
+<span class="sourceLineNo">508</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                setDirty();<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                float[] dsrc = (float[]) src; // PRIM_TYPE<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                        data[dindex + i] = dsrc[sindex + i];<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>        /**<a name="line.516"></a>
+<span class="sourceLineNo">517</span>         * Set values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.517"></a>
+<span class="sourceLineNo">518</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.518"></a>
+<span class="sourceLineNo">519</span>         *<a name="line.519"></a>
+<span class="sourceLineNo">520</span>         * @param index<a name="line.520"></a>
+<span class="sourceLineNo">521</span>         *            absolute index<a name="line.521"></a>
+<span class="sourceLineNo">522</span>         * @param val<a name="line.522"></a>
+<span class="sourceLineNo">523</span>         *            new values<a name="line.523"></a>
+<span class="sourceLineNo">524</span>         */<a name="line.524"></a>
+<span class="sourceLineNo">525</span>        public void setAbs(final int index, final float[] val) { // PRIM_TYPE<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                setDirty();<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                        data[index + i] = val[i];<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>        /**<a name="line.532"></a>
+<span class="sourceLineNo">533</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.533"></a>
+<span class="sourceLineNo">534</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.534"></a>
+<span class="sourceLineNo">535</span>         *<a name="line.535"></a>
+<span class="sourceLineNo">536</span>         * @param index<a name="line.536"></a>
+<span class="sourceLineNo">537</span>         *            absolute index<a name="line.537"></a>
+<span class="sourceLineNo">538</span>         * @param val<a name="line.538"></a>
+<span class="sourceLineNo">539</span>         *            new value<a name="line.539"></a>
+<span class="sourceLineNo">540</span>         */<a name="line.540"></a>
+<span class="sourceLineNo">541</span>        public void setAbs(final int index, final float val) { // PRIM_TYPE<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                setDirty();<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                data[index] = val;<a name="line.543"></a>
+<span class="sourceLineNo">544</span>        }<a name="line.544"></a>
+<span class="sourceLineNo">545</span><a name="line.545"></a>
+<span class="sourceLineNo">546</span>        @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        public Object getObject() {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                return getFloatArray(); // PRIM_TYPE<a name="line.548"></a>
+<span class="sourceLineNo">549</span>        }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>        @Override<a name="line.551"></a>
+<span class="sourceLineNo">552</span>        public Object getObject(final int i) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                return getFloatArray(i); // PRIM_TYPE<a name="line.553"></a>
+<span class="sourceLineNo">554</span>        }<a name="line.554"></a>
+<span class="sourceLineNo">555</span><a name="line.555"></a>
+<span class="sourceLineNo">556</span>        @Override<a name="line.556"></a>
+<span class="sourceLineNo">557</span>        public Object getObject(final int i, final int j) {<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                return getFloatArray(i, j); // PRIM_TYPE<a name="line.558"></a>
+<span class="sourceLineNo">559</span>        }<a name="line.559"></a>
+<span class="sourceLineNo">560</span><a name="line.560"></a>
+<span class="sourceLineNo">561</span>        @Override<a name="line.561"></a>
+<span class="sourceLineNo">562</span>        public Object getObject(final int... pos) {<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                return getFloatArray(pos); // PRIM_TYPE<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>        @Override<a name="line.566"></a>
+<span class="sourceLineNo">567</span>        public byte[] getByteArray() {<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                byte[] result = new byte[isize];<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                int index = getFirst1DIndex();<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                }<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                return result;<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>        @Override<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        public byte[] getByteArray(final int i) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                byte[] result = new byte[isize];<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                int index = get1DIndex(i);<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                }<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                return result;<a name="line.583"></a>
+<span class="sourceLineNo">584</span>        }<a name="line.584"></a>
+<span class="sourceLineNo">585</span><a name="line.585"></a>
+<span class="sourceLineNo">586</span>        @Override<a name="line.586"></a>
+<span class="sourceLineNo">587</span>        public byte[] getByteArray(final int i, final int j) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                byte[] result = new byte[isize];<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                int index = get1DIndex(i, j);<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                }<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                return result;<a name="line.593"></a>
+<span class="sourceLineNo">594</span>        }<a name="line.594"></a>
+<span class="sourceLineNo">595</span><a name="line.595"></a>
+<span class="sourceLineNo">596</span>        @Override<a name="line.596"></a>
+<span class="sourceLineNo">597</span>        public byte[] getByteArray(final int... pos) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                byte[] result = new byte[isize];<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                int index = get1DIndex(pos);<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                }<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                return result;<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>        @Override<a name="line.606"></a>
+<span class="sourceLineNo">607</span>        public short[] getShortArray() {<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                short[] result = new short[isize];<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                int index = getFirst1DIndex();<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                }<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                return result;<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>        @Override<a name="line.616"></a>
+<span class="sourceLineNo">617</span>        public short[] getShortArray(final int i) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                short[] result = new short[isize];<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                int index = get1DIndex(i);<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                }<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                return result;<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>        @Override<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        public short[] getShortArray(final int i, final int j) {<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                short[] result = new short[isize];<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                int index = get1DIndex(i, j);<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                }<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                return result;<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>        @Override<a name="line.636"></a>
+<span class="sourceLineNo">637</span>        public short[] getShortArray(final int... pos) {<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                short[] result = new short[isize];<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                int index = get1DIndex(pos);<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                }<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                return result;<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>        @Override<a name="line.646"></a>
+<span class="sourceLineNo">647</span>        public int[] getIntArray() {<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                int[] result = new int[isize];<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                int index = getFirst1DIndex();<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>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                }<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                return result;<a name="line.653"></a>
+<span class="sourceLineNo">654</span>        }<a name="line.654"></a>
+<span class="sourceLineNo">655</span><a name="line.655"></a>
+<span class="sourceLineNo">656</span>        @Override<a name="line.656"></a>
+<span class="sourceLineNo">657</span>        public int[] getIntArray(final int i) {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                int[] result = new int[isize];<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                int index = get1DIndex(i);<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                }<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                return result;<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 int[] getIntArray(final int i, final int j) {<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                int[] result = new int[isize];<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                int index = get1DIndex(i, j);<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                }<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                return result;<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>        @Override<a name="line.676"></a>
+<span class="sourceLineNo">677</span>        public int[] getIntArray(final int... pos) {<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                int[] result = new int[isize];<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                int index = get1DIndex(pos);<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                }<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                return result;<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>        @Override<a name="line.686"></a>
+<span class="sourceLineNo">687</span>        public long[] getLongArray() {<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                long[] result = new long[isize];<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                int index = getFirst1DIndex();<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                        result[k] = (long) data[index + k]; // OMIT_UPCAST<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                }<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                return result;<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 long[] getLongArray(final int i) {<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                long[] result = new long[isize];<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                int index = get1DIndex(i);<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                        result[k] = (long) data[index + k]; // OMIT_UPCAST<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                }<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                return result;<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 long[] getLongArray(final int i, final int j) {<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                long[] result = new long[isize];<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                int index = get1DIndex(i, j);<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                        result[k] = (long) data[index + k]; // OMIT_UPCAST<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                }<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                return result;<a name="line.713"></a>
+<span class="sourceLineNo">714</span>        }<a name="line.714"></a>
+<span class="sourceLineNo">715</span><a name="line.715"></a>
+<span class="sourceLineNo">716</span>        @Override<a name="line.716"></a>
+<span class="sourceLineNo">717</span>        public long[] getLongArray(final int... pos) {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                long[] result = new long[isize];<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                int index = get1DIndex(pos);<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                        result[k] = (long) data[index + k]; // OMIT_UPCAST<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                }<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                return result;<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>        @Override<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        public float[] getFloatArray() {<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                float[] result = new float[isize];<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                int index = getFirst1DIndex();<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                }<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                return result;<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>        @Override<a name="line.736"></a>
+<span class="sourceLineNo">737</span>        public float[] getFloatArray(final int i) {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                float[] result = new float[isize];<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                int index = get1DIndex(i);<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                }<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                return result;<a name="line.743"></a>
+<span class="sourceLineNo">744</span>        }<a name="line.744"></a>
+<span class="sourceLineNo">745</span><a name="line.745"></a>
+<span class="sourceLineNo">746</span>        @Override<a name="line.746"></a>
+<span class="sourceLineNo">747</span>        public float[] getFloatArray(final int i, final int j) {<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                float[] result = new float[isize];<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                int index = get1DIndex(i, j);<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<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>        @Override<a name="line.756"></a>
+<span class="sourceLineNo">757</span>        public float[] getFloatArray(final int... pos) {<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                float[] result = new float[isize];<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                int index = get1DIndex(pos);<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                }<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                return result;<a name="line.763"></a>
+<span class="sourceLineNo">764</span>        }<a name="line.764"></a>
+<span class="sourceLineNo">765</span><a name="line.765"></a>
+<span class="sourceLineNo">766</span>        @Override<a name="line.766"></a>
+<span class="sourceLineNo">767</span>        public double[] getDoubleArray() {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                double[] result = new double[isize];<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                int index = getFirst1DIndex();<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                }<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                return result;<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>        @Override<a name="line.776"></a>
+<span class="sourceLineNo">777</span>        public double[] getDoubleArray(final int i) {<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                double[] result = new double[isize];<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                int index = get1DIndex(i);<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                }<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                return result;<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>        @Override<a name="line.786"></a>
+<span class="sourceLineNo">787</span>        public double[] getDoubleArray(final int i, final int j) {<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                double[] result = new double[isize];<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                int index = get1DIndex(i, j);<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                }<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                return result;<a name="line.793"></a>
+<span class="sourceLineNo">794</span>        }<a name="line.794"></a>
+<span class="sourceLineNo">795</span><a name="line.795"></a>
+<span class="sourceLineNo">796</span>        @Override<a name="line.796"></a>
+<span class="sourceLineNo">797</span>        public double[] getDoubleArray(final int... pos) {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                double[] result = new double[isize];<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                int index = get1DIndex(pos);<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return result;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        @Override<a name="line.806"></a>
+<span class="sourceLineNo">807</span>        public void getDoubleArrayAbs(final int index, final double[] darray) {<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                        darray[i] = data[index + 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><a name="line.812"></a>
+<span class="sourceLineNo">813</span>        @Override<a name="line.813"></a>
+<span class="sourceLineNo">814</span>        public String getString() {<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                return getStringAbs(getFirst1DIndex());<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>        @Override<a name="line.818"></a>
+<span class="sourceLineNo">819</span>        public String getString(final int i) {<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                return getStringAbs(get1DIndex(i));<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 String getString(final int i, final int j) {<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                return getStringAbs(get1DIndex(i, j));<a name="line.825"></a>
+<span class="sourceLineNo">826</span>        }<a name="line.826"></a>
+<span class="sourceLineNo">827</span><a name="line.827"></a>
+<span class="sourceLineNo">828</span>        @Override<a name="line.828"></a>
+<span class="sourceLineNo">829</span>        public String getString(final int... pos) {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                return getStringAbs(get1DIndex(pos));<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>        protected double getFirstValue() {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                return data[getFirst1DIndex()];<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>        protected double getFirstValue(int i) {<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                return data[get1DIndex(i)];<a name="line.840"></a>
+<span class="sourceLineNo">841</span>        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span><a name="line.842"></a>
+<span class="sourceLineNo">843</span>        @Override<a name="line.843"></a>
+<span class="sourceLineNo">844</span>        protected double getFirstValue(int i, int j) {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                return data[get1DIndex(i, j)];<a name="line.845"></a>
+<span class="sourceLineNo">846</span>        }<a name="line.846"></a>
+<span class="sourceLineNo">847</span><a name="line.847"></a>
+<span class="sourceLineNo">848</span>        @Override<a name="line.848"></a>
+<span class="sourceLineNo">849</span>        protected double getFirstValue(final int... pos) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                return data[get1DIndex(pos)];<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>        @Override<a name="line.853"></a>
+<span class="sourceLineNo">854</span>        public Object getObjectAbs(final int index) {<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                float[] result = new float[isize]; // PRIM_TYPE<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        result[i] = data[index + i];<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                }<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                return result;<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 String getStringAbs(final int index) {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                StringBuilder s = new StringBuilder();<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                s.append('(');<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                s.append(stringFormat == null ? String.format("%.8g", data[index]) : // FORMAT_STRING<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                        stringFormat.format(data[index]));<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                for (int i = 1; i &lt; isize; i++) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                        s.append(' ');<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                        s.append(stringFormat == null ? String.format("%.8g", data[index + i]) : // FORMAT_STRING<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                                stringFormat.format(data[index + i]));<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                }<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                s.append(')');<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                return s.toString();<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>        @Override<a name="line.877"></a>
+<span class="sourceLineNo">878</span>        public void setObjectAbs(final int index, Object obj) {<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                if (obj instanceof Complex) {<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                        obj = new Complex(((Complex) obj).getReal(), 0);<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                }<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                float[] oa = DTypeUtils.toFloatArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                setAbs(index, oa);<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>        @Override<a name="line.886"></a>
+<span class="sourceLineNo">887</span>        public void set(final Object obj) {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                setItem(DTypeUtils.toFloatArray(obj, isize)); // CLASS_TYPE<a name="line.888"></a>
+<span class="sourceLineNo">889</span>        }<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>        @Override<a name="line.891"></a>
+<span class="sourceLineNo">892</span>        public void set(final Object obj, final int i) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                setItem(DTypeUtils.toFloatArray(obj, isize), i); // CLASS_TYPE<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 void set(final Object obj, final int i, final int j) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                setItem(DTypeUtils.toFloatArray(obj, isize), i, j); // CLASS_TYPE<a name="line.898"></a>
+<span class="sourceLineNo">899</span>        }<a name="line.899"></a>
+<span class="sourceLineNo">900</span><a name="line.900"></a>
+<span class="sourceLineNo">901</span>        @Override<a name="line.901"></a>
+<span class="sourceLineNo">902</span>        public void set(final Object obj, int... pos) {<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        pos = new int[shape.length];<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>                setItem(DTypeUtils.toFloatArray(obj, isize), pos); // CLASS_TYPE<a name="line.907"></a>
+<span class="sourceLineNo">908</span>        }<a name="line.908"></a>
+<span class="sourceLineNo">909</span><a name="line.909"></a>
+<span class="sourceLineNo">910</span>        /**<a name="line.910"></a>
+<span class="sourceLineNo">911</span>         * Set values at first position. The dataset must not be null<a name="line.911"></a>
+<span class="sourceLineNo">912</span>         *<a name="line.912"></a>
+<span class="sourceLineNo">913</span>         * @param d<a name="line.913"></a>
+<span class="sourceLineNo">914</span>         * @since 2.0<a name="line.914"></a>
+<span class="sourceLineNo">915</span>         */<a name="line.915"></a>
+<span class="sourceLineNo">916</span>        public void setItem(final float[] d) { // PRIM_TYPE<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                if (d.length &gt; isize) {<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                }<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                setAbs(getFirst1DIndex(), d);<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>        /**<a name="line.923"></a>
+<span class="sourceLineNo">924</span>         * Set values at given position. The dataset must be 1D<a name="line.924"></a>
+<span class="sourceLineNo">925</span>         *<a name="line.925"></a>
+<span class="sourceLineNo">926</span>         * @param d<a name="line.926"></a>
+<span class="sourceLineNo">927</span>         * @param i<a name="line.927"></a>
+<span class="sourceLineNo">928</span>         */<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        public void setItem(final float[] d, final int i) { // PRIM_TYPE<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                if (d.length &gt; isize) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                }<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                setAbs(get1DIndex(i), d);<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>         * Set values at given position. The dataset must be 1D<a name="line.937"></a>
+<span class="sourceLineNo">938</span>         *<a name="line.938"></a>
+<span class="sourceLineNo">939</span>         * @param d<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>         */<a name="line.942"></a>
+<span class="sourceLineNo">943</span>        public void setItem(final float[] d, final int i, final int j) { // PRIM_TYPE<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                if (d.length &gt; isize) {<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                }<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                setAbs(get1DIndex(i, j), d);<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>         * Set values at given position<a name="line.951"></a>
+<span class="sourceLineNo">952</span>         *<a name="line.952"></a>
+<span class="sourceLineNo">953</span>         * @param d<a name="line.953"></a>
+<span class="sourceLineNo">954</span>         * @param pos<a name="line.954"></a>
+<span class="sourceLineNo">955</span>         */<a name="line.955"></a>
+<span class="sourceLineNo">956</span>        public void setItem(final float[] d, final int... pos) { // PRIM_TYPE<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                if (d.length &gt; isize) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                }<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                setAbs(get1DIndex(pos), d);<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>        private void setDoubleArrayAbs(final int index, final double[] d) {<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                for (int i = 0; i &lt; isize; i++)<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                        data[index + i] = (float) d[i]; // ADD_CAST<a name="line.965"></a>
+<span class="sourceLineNo">966</span>        }<a name="line.966"></a>
+<span class="sourceLineNo">967</span><a name="line.967"></a>
+<span class="sourceLineNo">968</span>        @Override<a name="line.968"></a>
+<span class="sourceLineNo">969</span>        public void resize(int... newShape) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                setDirty();<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                IndexIterator iter = getIterator();<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                int nsize = ShapeUtils.calcSize(newShape);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                float[] ndata; // PRIM_TYPE<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                try {<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                        ndata = createArray(nsize);<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                } catch (Throwable t) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                        throw new IllegalArgumentException(t);<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>                int i = 0;<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                while (iter.hasNext() &amp;&amp; i &lt; nsize) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                ndata[i++] = data[iter.index + j];<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>                odata = data = ndata;<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                size = nsize;<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                shape = newShape;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                stride = null;<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                offset = 0;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                base = null;<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>        @Override<a name="line.996"></a>
+<span class="sourceLineNo">997</span>        public CompoundFloatDataset getSlice(final SliceIterator siter) {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                CompoundFloatDataset result = new CompoundFloatDataset(isize, siter.getShape());<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                float[] rdata = result.data; // PRIM_TYPE<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                IndexIterator riter = result.getIterator();<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span><a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                while (siter.hasNext() &amp;&amp; riter.hasNext()) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                        for (int i = 0; i &lt; isize; i++)<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                rdata[riter.index + i] = data[siter.index + i];<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>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                return result;<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>        @Override<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>        public FloatDataset getElementsView(int element) { // CLASS_TYPE<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                if (element &lt; 0)<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        element += isize;<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<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>                FloatDataset view = new FloatDataset(shape); // CLASS_TYPE<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span><a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                copyToView(this, view, true, true);<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                view.setData();<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                if (view.stride == null) {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                        int[] offset = new int[1];<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                        view.stride = createStrides(this, offset);<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                        view.offset = offset[0] + element;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                        view.base = base == null ? this : base;<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                } else {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                        view.offset += element;<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>                return view;<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>        }<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span><a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>        @Override<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>        public FloatDataset getElements(int element) { // CLASS_TYPE<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                final FloatDataset elements = new FloatDataset(shape); // CLASS_TYPE<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span><a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                copyElements(elements, element);<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                return elements;<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>        @Override<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>        public void copyElements(Dataset destination, int element) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                if (element &lt; 0)<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        element += isize;<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                if (getElementClass() != destination.getElementClass()) {<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<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>                final IndexIterator it = getIterator(element);<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                final float[] elements = ((FloatDataset) destination).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                destination.setDirty();<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span><a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                int n = 0;<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                while (it.hasNext()) {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                        elements[n] = data[it.index];<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        n++;<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>        }<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span><a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>        @Override<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>        public void setElements(Dataset source, int element) {<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                setDirty();<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                if (element &lt; 0)<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                        element += isize;<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                }<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                if (getElementClass() != source.getElementClass()) {<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        throw new IllegalArgumentException("Element class of destination does not match this 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>                final IndexIterator it = getIterator(element);<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                final float[] elements = ((FloatDataset) source).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span><a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                int n = 0;<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                while (it.hasNext()) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                        data[it.index] = elements[n];<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                        n++;<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>        @Override<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                IndexIterator riter = result.getIterator();<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                result.setDirty();<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span><a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                float[] rdata = ((CompoundFloatDataset) result).data; // PRIM_TYPE<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span><a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                rdata[riter.index + i] = data[iter.index + i];<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>        @Override<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>        public CompoundFloatDataset setByBoolean(final Object o, Dataset selection) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                setDirty();<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                if (o instanceof Dataset) {<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                        Dataset ds = (Dataset) o;<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        if (length != ds.getSize()) {<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                                throw new IllegalArgumentException(<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        IndexIterator iter = ds.getIterator();<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                        BooleanIterator biter = getBooleanIterator(selection);<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span><a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                }<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span><a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                data[biter.index + i] = (float) ds.getElementDoubleAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<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>                        } else {<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                        data[biter.index] = (float) ds.getElementDoubleAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                                data[biter.index + i] = 0;<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>                        try {<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                final float[] vr = DTypeUtils.toFloatArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span><a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                final BooleanIterator biter = getBooleanIterator(selection);<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span><a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                while (biter.hasNext()) {<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                                data[biter.index + i] = vr[i];<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>                        } catch (IllegalArgumentException e) {<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>        }<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span><a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>        @Override<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        public CompoundFloatDataset setBy1DIndex(final Object o, Dataset index) {<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                setDirty();<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                if (o instanceof Dataset) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                        Dataset ds = (Dataset) o;<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                        if (index.getSize() != ds.getSize()) {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                throw new IllegalArgumentException(<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                                "Number of items in selection does not match number of items in dataset");<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span><a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                        IndexIterator oiter = ds.getIterator();<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span><a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                double[] temp = new double[isize];<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                        ((AbstractCompoundDataset) ds).getDoubleArrayAbs(oiter.index, temp);<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                        setDoubleArrayAbs(iter.index, temp);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                }<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                                                data[iter.index + i] = (float) ds.getElementDoubleAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<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>                        } else {<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>                                        data[iter.index] = (float) ds.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                                                data[iter.index + i] = 0;<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>                } else {<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                        try {<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                                final float[] vr = DTypeUtils.toFloatArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span><a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                                final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                while (iter.hasNext()) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                                        setAbs(iter.index, vr);<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                }<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                        } catch (IllegalArgumentException e) {<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<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>        @Override<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>        public CompoundFloatDataset setByIndexes(final Object o, final Object... indexes) {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                setDirty();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                final int[] pos = iter.getPos();<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span><a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                if (o instanceof Dataset) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                        Dataset ds = (Dataset) o;<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                                throw new IllegalArgumentException(<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                                                "Number of items in selection does not match number of items in dataset");<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                        }<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span><a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                        IndexIterator oiter = ds.getIterator();<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span><a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                }<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span><a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                double[] temp = new double[isize];<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        ((AbstractCompoundDataset) ds).getDoubleArray(temp, pos);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                        setDoubleArrayAbs(get1DIndex(pos), temp);<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                }<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                        } else {<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        int n = get1DIndex(pos);<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                        data[n] = (float) ds.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                                data[n + i] = 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>                } else {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                        try {<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                                final float[] vr = DTypeUtils.toFloatArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                                while (iter.hasNext()) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                        setAbs(get1DIndex(pos), vr);<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                        } catch (IllegalArgumentException e) {<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<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>        @Override<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>        CompoundFloatDataset setSlicedView(Dataset view, Dataset d) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                setDirty();<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span><a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                final int is = view.getElementsPerItem();<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span><a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                if (is &gt; 1) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                        if (d.getElementsPerItem() == 1) {<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                while (it.hasNext()) {<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                        final float bv = (float) it.bDouble; // PRIM_TYPE // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                        data[it.aIndex] = bv;<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                                data[it.aIndex + j] = bv;<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                                        }<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                        } else {<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                while (it.hasNext()) {<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                                        data[it.aIndex] = (float) it.bDouble; // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                                data[it.aIndex + j] = (float) d.getElementDoubleAbs(it.bIndex + j); // GET_ELEMENT_WITH_CAST<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>                } else {<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                        while (it.hasNext()) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                data[it.aIndex] = (float) it.bDouble; // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                        }<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                return this;<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>        @Override<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>        public CompoundFloatDataset setSlice(final Object o, final IndexIterator siter) {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                setDirty();<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                if (o instanceof IDataset) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                        final IDataset ds = (IDataset) o;<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                        final int[] oshape = ds.getShape();<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span><a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                throw new IllegalArgumentException(String.format(<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                                                Arrays.toString(siter.getShape())));<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                        }<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span><a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>                        if (ds instanceof Dataset) {<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                                final Dataset ads = (Dataset) ds;<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                IndexIterator oiter = ads.getIterator();<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span><a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                if (ds instanceof AbstractCompoundDataset) {<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                                        if (isize != ads.getElementsPerItem()) {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                                throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                                        data[siter.index + i] = (float) ads.getElementDoubleAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                                }<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        }<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                } else {<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                                data[siter.index] = (float) ads.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                                        data[siter.index + i] = 0;<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                                }<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                        }<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                }<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                        } else {<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                                final int[] pos = oiter.getPos();<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span><a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                                if (ds.getElementsPerItem() == 1) {<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                                                data[siter.index] = ds.getFloat(pos); // PRIM_TYPE<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                                        data[siter.index + i] = 0;<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                                }<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>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                                                final float[] val = DTypeUtils.toFloatArray(ds.getObject(pos), isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                                        data[siter.index + i] = val[i];<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>                } else {<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                        try {<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                                final float[] vr = DTypeUtils.toFloatArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span><a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                while (siter.hasNext()) {<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                                                data[siter.index + i] = vr[i];<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>                        } catch (IllegalArgumentException e) {<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                        }<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                }<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                return this;<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>        }<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span><a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>        @Override<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                float[] ddata = (float[]) dest.getBuffer(); // PRIM_TYPE<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span><a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                if (dest.getElementsPerItem() != isize) {<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                        throw new IllegalArgumentException(String.format(<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                        "Destination dataset is incompatible as it has %d elements per item not %d",<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                                        dest.getElementsPerItem(), isize));<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>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span><a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span><a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                }<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span><a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                dest.setDirty();<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                                ddata[diter.index + i] = data[siter.index + i];<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                        }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                }<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>        }<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span><a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>        @Override<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                setDirty();<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                float[] sdata = (float[]) src; // PRIM_TYPE<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span><a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span><a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                        throw new IllegalArgumentException("source array is not large enough");<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                }<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span><a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                for (int i = 0; siter.hasNext(); i++) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                data[siter.index + j] = sdata[isize * i + j];<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><a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>        @Override<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>        public boolean containsNans() {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                final IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                        for (int i = 0; i &lt; isize; i++) { // REAL_ONLY<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                                if (Float.isNaN(data[iter.index + i])) // CLASS_TYPE // REAL_ONLY<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                        return true; // REAL_ONLY<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                        } // REAL_ONLY<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                } // REAL_ONLY<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                return false;<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>        @Override<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>        public boolean containsInfs() {<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                final IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                        for (int i = 0; i &lt; isize; i++) { // REAL_ONLY<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                                if (Float.isInfinite(data[iter.index + i])) // CLASS_TYPE // REAL_ONLY<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                                        return true; // REAL_ONLY<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                        } // REAL_ONLY<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                } // REAL_ONLY<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                return false;<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>        @Override<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>        public boolean containsInvalidNumbers() {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                        for (int i = 0; i &lt; isize; i++) { // REAL_ONLY<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                float x = data[iter.index + i]; // PRIM_TYPE // REAL_ONLY<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                if (Float.isNaN(x) || Float.isInfinite(x)) // CLASS_TYPE // REAL_ONLY<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                        return true; // REAL_ONLY<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                        } // REAL_ONLY<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                } // REAL_ONLY<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                return false;<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>        }<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span><a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>        @Override<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>        public CompoundFloatDataset iadd(final Object b) {<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                setDirty();<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                int is = bds.getElementsPerItem();<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                if (bds.getSize() == 1) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                        final IndexIterator it = getIterator();<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                        final int bOffset = bds.getOffset();<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                        if (is == 1) {<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                if (useLong) {<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                        while (it.hasNext()) {<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                        data[it.index + i] += lb;<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                                }<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                        }<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                } else {<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                        while (it.hasNext()) {<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                                        data[it.index + i] += db;<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                                                }<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                                        }<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                }<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                        } else if (is == isize) {<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                                if (useLong) {<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                        while (it.hasNext()) {<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                                        data[it.index + i] += bds.getElementLongAbs(i);<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 {<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                        while (it.hasNext()) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                                                        data[it.index + i] += bds.getElementDoubleAbs(i);<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                                }<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                        }<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                }<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                        } else {<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                        }<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                } else {<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                        it.setOutputDouble(!useLong);<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                        if (is == 1) {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                if (useLong) {<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                        while (it.hasNext()) {<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                                final long lb = it.bLong;<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                                data[it.aIndex] += lb;<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                                                        data[it.aIndex + i] += lb;<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>                                } else {<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                                        while (it.hasNext()) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                                final double db = it.bDouble;<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                                data[it.aIndex] += db;<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                                                        data[it.aIndex + i] += db;<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>                                }<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                        } else if (is == isize) {<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                if (useLong) {<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                        while (it.hasNext()) {<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                                                data[it.aIndex] += it.bLong;<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                                        data[it.aIndex + i] += bds.getElementLongAbs(it.bIndex + i);<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 {<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                                        while (it.hasNext()) {<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                                        data[it.aIndex + i] += bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                                }<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                        }<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                }<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                        } else {<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                        }<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                }<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                return this;<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 CompoundFloatDataset isubtract(final Object b) {<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                setDirty();<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                int is = bds.getElementsPerItem();<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                if (bds.getSize() == 1) {<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                        final IndexIterator it = getIterator();<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                        final int bOffset = bds.getOffset();<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>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                        while (it.hasNext()) {<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                                        data[it.index + i] -= lb;<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                                }<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                        }<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                } else {<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                        while (it.hasNext()) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                                        data[it.index + i] -= db;<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                                }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                        }<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                }<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                        } else if (is == isize) {<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                if (useLong) {<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                        while (it.hasNext()) {<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                        data[it.index + i] -= bds.getElementLongAbs(i);<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>                                } else {<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                                        while (it.hasNext()) {<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                                                        data[it.index + i] -= bds.getElementDoubleAbs(i);<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                                                }<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>                                        }<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                                }<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                        } else {<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                        }<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                } else {<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                        it.setOutputDouble(!useLong);<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                        if (is == 1) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                if (useLong) {<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                                        while (it.hasNext()) {<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                                                final long lb = it.bLong;<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                                                data[it.aIndex] += lb;<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                                        data[it.aIndex + i] -= lb;<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>                                } else {<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                        while (it.hasNext()) {<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                                final double db = it.bDouble;<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                                                data[it.aIndex] += db;<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                                                        data[it.aIndex + i] -= db;<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                                                }<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                                        }<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                                }<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                        } else if (is == isize) {<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                                if (useLong) {<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                                        while (it.hasNext()) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                                                data[it.aIndex] += it.bLong;<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                                                        data[it.aIndex + i] -= bds.getElementLongAbs(it.bIndex + i);<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>                                        while (it.hasNext()) {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                                                        data[it.aIndex + i] -= bds.getElementDoubleAbs(it.bIndex + i);<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>                        } else {<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                        }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                }<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                return this;<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 CompoundFloatDataset imultiply(final Object b) {<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                setDirty();<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                int is = bds.getElementsPerItem();<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                if (bds.getSize() == 1) {<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                        final IndexIterator it = getIterator();<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                        final int bOffset = bds.getOffset();<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                        if (useLong) {<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                if (is == 1) {<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                        while (it.hasNext()) {<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                                                        data[it.index + i] *= lb;<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                                                }<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                                        }<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                                } else if (is == isize) {<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>                                        while (it.hasNext()) {<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                                        data[it.index + i] *= bds.getElementLongAbs(i);<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>                                } else {<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                                }<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                        } else {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                                if (is == 1) {<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                        while (it.hasNext()) {<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                                                        data[it.index + i] *= db;<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>                                } else if (is == isize) {<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                                        while (it.hasNext()) {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                                                        data[it.index + i] *= bds.getElementDoubleAbs(i);<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                                }<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                        }<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                } else {<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                } else {<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>                        it.setOutputDouble(!useLong);<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                        if (useLong) {<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                if (is == 1) {<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                        while (it.hasNext()) {<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                                final double lb = it.bLong;<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>                                                        data[it.aIndex + i] *= lb;<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>                                } else if (is == isize) {<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                        while (it.hasNext()) {<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                                data[it.aIndex] *= it.bLong;<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                                                        data[it.aIndex + i] *= bds.getElementLongAbs(it.bIndex + i);<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                                }<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                        }<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                } else {<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                }<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                        } else {<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                if (is == 1) {<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                        while (it.hasNext()) {<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                                final double db = it.bDouble;<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                                                        data[it.aIndex + i] *= db;<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>                                } else if (is == isize) {<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>                                        while (it.hasNext()) {<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                                                data[it.aIndex] *= it.bDouble;<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                                        data[it.aIndex + i] *= bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                                }<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                        }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                } else {<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                }<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                return this;<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>        }<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span><a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>        @Override<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>        public CompoundFloatDataset idivide(final Object b) {<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                setDirty();<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                int is = bds.getElementsPerItem();<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                if (bds.getSize() == 1) {<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                        final IndexIterator it = getIterator();<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                        final int bOffset = bds.getOffset();<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                        if (useLong) {<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                if (is == 1) {<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                        // if (lb == 0) { // INT_USE<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                        //      fill(0); // INT_USE<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                        // } else { // INT_USE<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                        while (it.hasNext()) {<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                        data[it.index + i] /= lb;<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                                }<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                        }<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                        // } // INT_USE<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                } else if (is == isize) {<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                        while (it.hasNext()) {<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                                        final long lb = bds.getElementLongAbs(i);<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                                        data[it.index + i] /= lb; // INT_EXCEPTION<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                                }<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                        }<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                } else {<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                }<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                        } else {<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                if (is == 1) {<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                        // if (db == 0) { // INT_USE<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                        //      fill(0); // INT_USE<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                        // } else { // INT_USE<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                        while (it.hasNext()) {<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                        data[it.index + i] /= db;<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                                }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                        }<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                        // } // INT_USE<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                } else if (is == isize) {<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                        while (it.hasNext()) {<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                        final double db = bds.getElementDoubleAbs(i);<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                        data[it.index + i] /= db; // INT_EXCEPTION<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>                                } else {<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                } else {<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                        it.setOutputDouble(!useLong);<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                        if (useLong) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                if (is == 1) {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                        while (it.hasNext()) {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                                final long lb = it.bLong;<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                                // if (lb == 0) { // INT_USE<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                                //      for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                                //              data[it.aIndex + i] = 0; // INT_USE<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                                //      }// INT_USE<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                                // } else { // INT_USE<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                                                        data[it.aIndex + i] /= lb;<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                                                }<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                                                // } // INT_USE<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                                        }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                                } else if (is == isize) {<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>                                        while (it.hasNext()) {<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                                                        data[it.aIndex + i] /= lb; // INT_EXCEPTION<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                                                }<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                                        }<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                                } else {<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                                if (is == 1) {<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                        while (it.hasNext()) {<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                                final double db = it.bDouble;<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                                // if (db == 0) { // INT_USE<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                                //      for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                                //              data[it.aIndex + i] = 0; // INT_USE<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                                                //      }// INT_USE<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                                // } else { // INT_USE<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                                        data[it.aIndex + i] /= db;<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                                                }<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                                // } // INT_USE<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                        }<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                } else if (is == isize) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                        while (it.hasNext()) {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                                                        data[it.aIndex + i] /= db; // INT_EXCEPTION<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 {<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                                }<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                        }<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                }<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                return this;<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>        }<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span><a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>        @Override<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>        public CompoundFloatDataset ifloor() {<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                setDirty(); // REAL_ONLY<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                final IndexIterator it = getIterator(); // REAL_ONLY<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                while (it.hasNext()) { // REAL_ONLY<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                        for (int i = 0; i &lt; isize; i++) { // REAL_ONLY<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                data[it.index + i] = (float) Math.floor(data[it.index] + i); // REAL_ONLY // ADD_CAST<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                        } // REAL_ONLY<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                } // REAL_ONLY<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                return this;<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>        }<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span><a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>        @Override<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>        public CompoundFloatDataset iremainder(final Object b) {<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                setDirty();<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                int is = bds.getElementsPerItem();<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                if (bds.getSize() == 1) {<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                        final IndexIterator it = getIterator();<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                        final int bOffset = bds.getOffset();<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                        if (useLong) {<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                if (is == 1) {<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                        // if (lb == 0) { // INT_USE<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                        //      fill(0); // INT_USE<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                        // } else { // INT_USE<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                        while (it.hasNext()) {<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                                        data[it.index + i] %= lb;<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                                }<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                        }<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                        // } // INT_USE<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                } else if (is == isize) {<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                        while (it.hasNext()) {<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                                        data[it.index + i] %= bds.getElementLongAbs(i); // INT_EXCEPTION<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>                                } else {<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                }<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                        } else {<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                                if (is == 1) {<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                                        // if (db == 0) { // INT_USE<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                                        //      fill(0); // INT_USE<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                                        // } else { // INT_USE<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span>                                        while (it.hasNext()) {<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                                        data[it.index + i] %= db;<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                                }<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                        }<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                        // } // INT_USE<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                } else if (is == isize) {<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                        while (it.hasNext()) {<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                                        data[it.index + i] %= bds.getElementDoubleAbs(i); // INT_EXCEPTION<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                }<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                        }<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                } else {<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                } else {<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                        it.setOutputDouble(!useLong);<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                        if (useLong) {<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                if (is == 1) {<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                        while (it.hasNext()) {<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                                                final long lb = it.bLong;<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                                // if (lb == 0) { // INT_USE<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                                //      for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                                //              data[it.aIndex + i] = 0; // INT_USE<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                                // } else { // INT_USE<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                                for (int i = 0; i &lt; isize; i++)<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                                                        data[it.aIndex + i] %= lb;<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                                                // } // INT_USE<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                                        }<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                                } else if (is == isize) {<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                                        while (it.hasNext()) {<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                                                        data[it.aIndex + i] %= lb; // INT_EXCEPTION<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>                                                }<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                                        }<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>                                } else {<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>                                }<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span>                        } else {<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>                                if (is == 1) {<a name="line.1896"></a>
+<span class="sourceLineNo">1897</span>                                        while (it.hasNext()) {<a name="line.1897"></a>
+<span class="sourceLineNo">1898</span>                                                final double db = it.bDouble;<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>                                                // if (db == 0) { // INT_USE<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>                                                //      for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>                                                //              data[it.aIndex + i] = 0; // INT_USE<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span>                                                // } else { // INT_USE<a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span>                                                        data[it.aIndex + i] %= db;<a name="line.1904"></a>
+<span class="sourceLineNo">1905</span>                                                }<a name="line.1905"></a>
+<span class="sourceLineNo">1906</span>                                                // } // INT_USE<a name="line.1906"></a>
+<span class="sourceLineNo">1907</span>                                        }<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span>                                } else if (is == isize) {<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>                                        while (it.hasNext()) {<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1911"></a>
+<span class="sourceLineNo">1912</span>                                                        data[it.aIndex + i] %= db; // INT_EXCEPTION<a name="line.1912"></a>
+<span class="sourceLineNo">1913</span>                                                }<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>                                        }<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>                                } else {<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                }<a name="line.1919"></a>
+<span class="sourceLineNo">1920</span>                return this;<a name="line.1920"></a>
+<span class="sourceLineNo">1921</span>        }<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span><a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>        @Override<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span>        public CompoundFloatDataset ipower(final Object b) {<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span>                setDirty();<a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>                final int is = bds.getElementsPerItem();<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>                if (bds.getSize() == 1) {<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>                        final int bOffset = bds.getOffset();<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>                        final double vr = bds.getElementDoubleAbs(bOffset);<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>                        final IndexIterator it = getIterator();<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>                        if (bds.isComplex()) {<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span>                                final double vi = bds.getElementDoubleAbs(bOffset + 1);<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span>                                if (vi == 0) {<a name="line.1934"></a>
+<span class="sourceLineNo">1935</span>                                        while (it.hasNext()) {<a name="line.1935"></a>
+<span class="sourceLineNo">1936</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1936"></a>
+<span class="sourceLineNo">1937</span>                                                        final double v = Math.pow(data[it.index + i], vr);<a name="line.1937"></a>
+<span class="sourceLineNo">1938</span>                                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1938"></a>
+<span class="sourceLineNo">1939</span>                                                        //      data[it.index + i] = 0; // INT_USE<a name="line.1939"></a>
+<span class="sourceLineNo">1940</span>                                                        // } else { // INT_USE<a name="line.1940"></a>
+<span class="sourceLineNo">1941</span>                                                        data[it.index + i] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1941"></a>
+<span class="sourceLineNo">1942</span>                                                        // } // INT_USE<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 Complex zv = new Complex(vr, vi);<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span>                                        while (it.hasNext()) {<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span>                                                        Complex zd = new Complex(data[it.index + i], 0);<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span>                                                        final double v = zd.pow(zv).getReal();<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span>                                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1951"></a>
+<span class="sourceLineNo">1952</span>                                                        //      data[it.index + i] = 0; // INT_USE<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span>                                                        // } else { // INT_USE<a name="line.1953"></a>
+<span class="sourceLineNo">1954</span>                                                        data[it.index + i] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1954"></a>
+<span class="sourceLineNo">1955</span>                                                        // } // INT_USE<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>                        } else if (is == 1) {<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span>                                while (it.hasNext()) {<a name="line.1960"></a>
+<span class="sourceLineNo">1961</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span>                                                final double v = Math.pow(data[it.index + i], vr);<a name="line.1962"></a>
+<span class="sourceLineNo">1963</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1963"></a>
+<span class="sourceLineNo">1964</span>                                                //      data[it.index + i] = 0; // INT_USE<a name="line.1964"></a>
+<span class="sourceLineNo">1965</span>                                                // } else { // INT_USE<a name="line.1965"></a>
+<span class="sourceLineNo">1966</span>                                                data[it.index + i] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1966"></a>
+<span class="sourceLineNo">1967</span>                                                // } // INT_USE<a name="line.1967"></a>
+<span class="sourceLineNo">1968</span>                                        }<a name="line.1968"></a>
+<span class="sourceLineNo">1969</span>                                }<a name="line.1969"></a>
+<span class="sourceLineNo">1970</span>                        } else if (is == isize) {<a name="line.1970"></a>
+<span class="sourceLineNo">1971</span>                                while (it.hasNext()) {<a name="line.1971"></a>
+<span class="sourceLineNo">1972</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span>                                                final double v = Math.pow(data[it.index + i], bds.getElementDoubleAbs(i));<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span>                                                //      data[it.index + i] = 0; // INT_USE<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span>                                                // } else { // INT_USE<a name="line.1976"></a>
+<span class="sourceLineNo">1977</span>                                                data[it.index + i] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1977"></a>
+<span class="sourceLineNo">1978</span>                                                // } // INT_USE<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>                } else {<a name="line.1982"></a>
+<span class="sourceLineNo">1983</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1983"></a>
+<span class="sourceLineNo">1984</span>                        it.setOutputDouble(true);<a name="line.1984"></a>
+<span class="sourceLineNo">1985</span>                        if (bds.isComplex()) {<a name="line.1985"></a>
+<span class="sourceLineNo">1986</span>                                while (it.hasNext()) {<a name="line.1986"></a>
+<span class="sourceLineNo">1987</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.1987"></a>
+<span class="sourceLineNo">1988</span>                                        double v = new Complex(it.aDouble, 0).pow(zv).getReal();<a name="line.1988"></a>
+<span class="sourceLineNo">1989</span>                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span>                                        //      data[it.aIndex] = 0; // INT_USE<a name="line.1990"></a>
+<span class="sourceLineNo">1991</span>                                        // } else { // INT_USE<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span>                                        data[it.aIndex] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span>                                        // } // INT_USE<a name="line.1993"></a>
+<span class="sourceLineNo">1994</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1994"></a>
+<span class="sourceLineNo">1995</span>                                                v = new Complex(data[it.aIndex + i], 0).pow(zv).getReal();<a name="line.1995"></a>
+<span class="sourceLineNo">1996</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1996"></a>
+<span class="sourceLineNo">1997</span>                                                //      data[it.aIndex + i] = 0; // INT_USE<a name="line.1997"></a>
+<span class="sourceLineNo">1998</span>                                                // } else { // INT_USE<a name="line.1998"></a>
+<span class="sourceLineNo">1999</span>                                                data[it.aIndex + i] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1999"></a>
+<span class="sourceLineNo">2000</span>                                                // } // INT_USE<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span>                                        }<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span>                                }<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>                        } else {<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>                                while (it.hasNext()) {<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span>                                        double v = Math.pow(it.aDouble, it.bDouble);<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>                                        //      data[it.aIndex] = 0; // INT_USE<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span>                                        // } else { // INT_USE<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>                                        data[it.aIndex] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>                                        // } // INT_USE<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>                                                v = Math.pow(data[it.aIndex + i], bds.getElementDoubleAbs(it.bIndex + i));<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>                                                //      data[it.aIndex + i] = 0; // INT_USE<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>                                                // } else { // INT_USE<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>                                                data[it.aIndex + i] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span>                                                // } // INT_USE<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>                                        }<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span>                                }<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>                        }<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>                }<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>                return this;<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>        @Override<a name="line.2025"></a>
+<span class="sourceLineNo">2026</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.2026"></a>
+<span class="sourceLineNo">2027</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.2027"></a>
+<span class="sourceLineNo">2028</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span>                it.setOutputDouble(true);<a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>                double sum = 0;<a name="line.2030"></a>
+<span class="sourceLineNo">2031</span>                double comp = 0;<a name="line.2031"></a>
+<span class="sourceLineNo">2032</span>                final int bis = bds.getElementsPerItem();<a name="line.2032"></a>
+<span class="sourceLineNo">2033</span><a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>                if (bis == 1) {<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>                        if (w == null) {<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span>                                while (it.hasNext()) {<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>                                        final double db = it.bDouble;<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>                                        double diff = it.aDouble - db;<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span>                                        if (ignoreNaNs) { // REAL_ONLY<a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>                                                if (Double.isNaN(diff)) // 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>                                                boolean skip = false; // REAL_ONLY<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>                                                for (int i = 1; i &lt; isize; i++) { // REAL_ONLY<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>                                                        if (Double.isNaN(data[it.aIndex + i])) { // REAL_ONLY<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span>                                                                skip = true; // REAL_ONLY<a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>                                                                break; // REAL_ONLY<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>                                                        } // REAL_ONLY<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>                                                } // REAL_ONLY<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>                                                if (skip) { // REAL_ONLY<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>                                                        continue; // REAL_ONLY<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span>                                                } // REAL_ONLY<a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>                                        } // REAL_ONLY<a name="line.2052"></a>
+<span class="sourceLineNo">2053</span>                                        double err = diff * diff - comp;<a name="line.2053"></a>
+<span class="sourceLineNo">2054</span>                                        double temp = sum + err;<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span>                                        comp = (temp - sum) - err;<a name="line.2055"></a>
+<span class="sourceLineNo">2056</span>                                        sum = temp;<a name="line.2056"></a>
+<span class="sourceLineNo">2057</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2057"></a>
+<span class="sourceLineNo">2058</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>                                                err = diff * diff - comp;<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span>                                                temp = sum + err;<a name="line.2060"></a>
+<span class="sourceLineNo">2061</span>                                                comp = (temp - sum) - err;<a name="line.2061"></a>
+<span class="sourceLineNo">2062</span>                                                sum = temp;<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span>                                        }<a name="line.2063"></a>
+<span class="sourceLineNo">2064</span>                                }<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>                        } else {<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>                                IndexIterator itw = w.getIterator();<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>                                        final double db = it.bDouble;<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span>                                        double diff = it.aDouble - db;<a name="line.2069"></a>
+<span class="sourceLineNo">2070</span>                                        if (ignoreNaNs) { // REAL_ONLY<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span>                                                if (Double.isNaN(diff)) // REAL_ONLY<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span>                                                        continue; // REAL_ONLY<a name="line.2072"></a>
+<span class="sourceLineNo">2073</span>                                                boolean skip = false; // REAL_ONLY<a name="line.2073"></a>
+<span class="sourceLineNo">2074</span>                                                for (int i = 1; i &lt; isize; i++) { // REAL_ONLY<a name="line.2074"></a>
+<span class="sourceLineNo">2075</span>                                                        if (Double.isNaN(data[it.aIndex + i])) { // REAL_ONLY<a name="line.2075"></a>
+<span class="sourceLineNo">2076</span>                                                                skip = true; // REAL_ONLY<a name="line.2076"></a>
+<span class="sourceLineNo">2077</span>                                                                break; // REAL_ONLY<a name="line.2077"></a>
+<span class="sourceLineNo">2078</span>                                                        } // REAL_ONLY<a name="line.2078"></a>
+<span class="sourceLineNo">2079</span>                                                } // REAL_ONLY<a name="line.2079"></a>
+<span class="sourceLineNo">2080</span>                                                if (skip) { // REAL_ONLY<a name="line.2080"></a>
+<span class="sourceLineNo">2081</span>                                                        continue; // REAL_ONLY<a name="line.2081"></a>
+<span class="sourceLineNo">2082</span>                                                } // REAL_ONLY<a name="line.2082"></a>
+<span class="sourceLineNo">2083</span>                                        } // REAL_ONLY<a name="line.2083"></a>
+<span class="sourceLineNo">2084</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2084"></a>
+<span class="sourceLineNo">2085</span>                                        double err = diff * diff * dw - comp;<a name="line.2085"></a>
+<span class="sourceLineNo">2086</span>                                        double temp = sum + err;<a name="line.2086"></a>
+<span class="sourceLineNo">2087</span>                                        comp = (temp - sum) - err;<a name="line.2087"></a>
+<span class="sourceLineNo">2088</span>                                        sum = temp;<a name="line.2088"></a>
+<span class="sourceLineNo">2089</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2089"></a>
+<span class="sourceLineNo">2090</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2090"></a>
+<span class="sourceLineNo">2091</span>                                                err = diff * diff * dw - comp;<a name="line.2091"></a>
+<span class="sourceLineNo">2092</span>                                                temp = sum + err;<a name="line.2092"></a>
+<span class="sourceLineNo">2093</span>                                                comp = (temp - sum) - err;<a name="line.2093"></a>
+<span class="sourceLineNo">2094</span>                                                sum = temp;<a name="line.2094"></a>
+<span class="sourceLineNo">2095</span>                                        }<a name="line.2095"></a>
+<span class="sourceLineNo">2096</span>                                }<a name="line.2096"></a>
+<span class="sourceLineNo">2097</span>                        }<a name="line.2097"></a>
+<span class="sourceLineNo">2098</span>                } else {<a name="line.2098"></a>
+<span class="sourceLineNo">2099</span>                        if (w == null) {<a name="line.2099"></a>
+<span class="sourceLineNo">2100</span>                                while (it.hasNext()) {<a name="line.2100"></a>
+<span class="sourceLineNo">2101</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2101"></a>
+<span class="sourceLineNo">2102</span>                                        if (ignoreNaNs) { // REAL_ONLY<a name="line.2102"></a>
+<span class="sourceLineNo">2103</span>                                                if (Double.isNaN(diff)) // REAL_ONLY<a name="line.2103"></a>
+<span class="sourceLineNo">2104</span>                                                        continue; // REAL_ONLY<a name="line.2104"></a>
+<span class="sourceLineNo">2105</span>                                                boolean skip = false; // REAL_ONLY<a name="line.2105"></a>
+<span class="sourceLineNo">2106</span>                                                for (int i = 1; i &lt; isize; i++) { // REAL_ONLY<a name="line.2106"></a>
+<span class="sourceLineNo">2107</span>                                                        if (Double.isNaN(data[it.aIndex + i]) || Double.isNaN(bds.getElementDoubleAbs(it.bIndex + i))) { // REAL_ONLY<a name="line.2107"></a>
+<span class="sourceLineNo">2108</span>                                                                skip = true; // REAL_ONLY<a name="line.2108"></a>
+<span class="sourceLineNo">2109</span>                                                                break; // REAL_ONLY<a name="line.2109"></a>
+<span class="sourceLineNo">2110</span>                                                        } // REAL_ONLY<a name="line.2110"></a>
+<span class="sourceLineNo">2111</span>                                                } // REAL_ONLY<a name="line.2111"></a>
+<span class="sourceLineNo">2112</span>                                                if (skip) { // REAL_ONLY<a name="line.2112"></a>
+<span class="sourceLineNo">2113</span>                                                        continue; // REAL_ONLY<a name="line.2113"></a>
+<span class="sourceLineNo">2114</span>                                                } // REAL_ONLY<a name="line.2114"></a>
+<span class="sourceLineNo">2115</span>                                        } // REAL_ONLY<a name="line.2115"></a>
+<span class="sourceLineNo">2116</span>                                        double err = diff * diff - comp;<a name="line.2116"></a>
+<span class="sourceLineNo">2117</span>                                        double temp = sum + err;<a name="line.2117"></a>
+<span class="sourceLineNo">2118</span>                                        comp = (temp - sum) - err;<a name="line.2118"></a>
+<span class="sourceLineNo">2119</span>                                        sum = temp;<a name="line.2119"></a>
+<span class="sourceLineNo">2120</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2120"></a>
+<span class="sourceLineNo">2121</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2121"></a>
+<span class="sourceLineNo">2122</span>                                                err = diff * diff - comp;<a name="line.2122"></a>
+<span class="sourceLineNo">2123</span>                                                temp = sum + err;<a name="line.2123"></a>
+<span class="sourceLineNo">2124</span>                                                comp = (temp - sum) - err;<a name="line.2124"></a>
+<span class="sourceLineNo">2125</span>                                                sum = temp;<a name="line.2125"></a>
+<span class="sourceLineNo">2126</span>                                        }<a name="line.2126"></a>
+<span class="sourceLineNo">2127</span>                                }<a name="line.2127"></a>
+<span class="sourceLineNo">2128</span>                        } else {<a name="line.2128"></a>
+<span class="sourceLineNo">2129</span>                                IndexIterator itw = w.getIterator();<a name="line.2129"></a>
+<span class="sourceLineNo">2130</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2130"></a>
+<span class="sourceLineNo">2131</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2131"></a>
+<span class="sourceLineNo">2132</span>                                        if (ignoreNaNs) { // REAL_ONLY<a name="line.2132"></a>
+<span class="sourceLineNo">2133</span>                                                if (Double.isNaN(diff)) // REAL_ONLY<a name="line.2133"></a>
+<span class="sourceLineNo">2134</span>                                                        continue; // REAL_ONLY<a name="line.2134"></a>
+<span class="sourceLineNo">2135</span>                                                boolean skip = false; // REAL_ONLY<a name="line.2135"></a>
+<span class="sourceLineNo">2136</span>                                                for (int i = 1; i &lt; isize; i++) { // REAL_ONLY<a name="line.2136"></a>
+<span class="sourceLineNo">2137</span>                                                        if (Double.isNaN(data[it.aIndex + i]) || Double.isNaN(bds.getElementDoubleAbs(it.bIndex + i))) { // REAL_ONLY<a name="line.2137"></a>
+<span class="sourceLineNo">2138</span>                                                                skip = true; // REAL_ONLY<a name="line.2138"></a>
+<span class="sourceLineNo">2139</span>                                                                break; // REAL_ONLY<a name="line.2139"></a>
+<span class="sourceLineNo">2140</span>                                                        } // REAL_ONLY<a name="line.2140"></a>
+<span class="sourceLineNo">2141</span>                                                } // REAL_ONLY<a name="line.2141"></a>
+<span class="sourceLineNo">2142</span>                                                if (skip) { // REAL_ONLY<a name="line.2142"></a>
+<span class="sourceLineNo">2143</span>                                                        continue; // REAL_ONLY<a name="line.2143"></a>
+<span class="sourceLineNo">2144</span>                                                } // REAL_ONLY<a name="line.2144"></a>
+<span class="sourceLineNo">2145</span>                                        } // REAL_ONLY<a name="line.2145"></a>
+<span class="sourceLineNo">2146</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2146"></a>
+<span class="sourceLineNo">2147</span>                                        double err = diff * diff * dw - comp;<a name="line.2147"></a>
+<span class="sourceLineNo">2148</span>                                        double temp = sum + err;<a name="line.2148"></a>
+<span class="sourceLineNo">2149</span>                                        comp = (temp - sum) - err;<a name="line.2149"></a>
+<span class="sourceLineNo">2150</span>                                        sum = temp;<a name="line.2150"></a>
+<span class="sourceLineNo">2151</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2151"></a>
+<span class="sourceLineNo">2152</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2152"></a>
+<span class="sourceLineNo">2153</span>                                                err = diff * diff * dw - comp;<a name="line.2153"></a>
+<span class="sourceLineNo">2154</span>                                                temp = sum + err;<a name="line.2154"></a>
+<span class="sourceLineNo">2155</span>                                                comp = (temp - sum) - err;<a name="line.2155"></a>
+<span class="sourceLineNo">2156</span>                                                sum = temp;<a name="line.2156"></a>
+<span class="sourceLineNo">2157</span>                                        }<a name="line.2157"></a>
+<span class="sourceLineNo">2158</span>                                }<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>                return sum;<a name="line.2161"></a>
+<span class="sourceLineNo">2162</span>        }<a name="line.2162"></a>
+<span class="sourceLineNo">2163</span>}<a name="line.2163"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html
new file mode 100644
index 0000000..f8ab0e9
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html
@@ -0,0 +1,2182 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// This is generated from CompoundDoubleDataset.java by fromcpddouble.py<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.Arrays;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.commons.math3.complex.Complex;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>/**<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * Extend compound dataset for int values // PRIM_TYPE<a name="line.22"></a>
+<span class="sourceLineNo">023</span> */<a name="line.23"></a>
+<span class="sourceLineNo">024</span>public class CompoundIntegerDataset extends AbstractCompoundDataset {<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        // pin UID to base class<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>        protected int[] data; // subclass alias // PRIM_TYPE<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>        @Override<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        protected void setData() {<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                data = (int[]) odata; // PRIM_TYPE<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        }<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>        protected int[] createArray(final int size) { // PRIM_TYPE<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                int[] array = null; // PRIM_TYPE<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>                try {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                        array = new int[isize * size]; // PRIM_TYPE<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                } catch (OutOfMemoryError e) {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                }<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                return array;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        }<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>        @Override<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public int getDType() {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                return Dataset.ARRAYINT32; // DATA_TYPE<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        }<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        /**<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         * Create a null dataset<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        CompoundIntegerDataset() {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * Create a null dataset<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * @param itemSize<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         */<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        CompoundIntegerDataset(final int itemSize) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                isize = itemSize;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>        /**<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         * Create a zero-filled dataset of given item size and shape<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         * @param itemSize<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         * @param shape<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         */<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        CompoundIntegerDataset(final int itemSize, final int[] shape) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                isize = itemSize;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                if (shape != null) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        size = ShapeUtils.calcSize(shape);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        this.shape = shape.clone();<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        try {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                odata = data = createArray(size);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        } catch (Throwable t) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                                throw new IllegalArgumentException(t);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                        }<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        }<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>        /**<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         * Copy a dataset<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         * @param dataset<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>        CompoundIntegerDataset(final CompoundIntegerDataset dataset) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                isize = dataset.isize;<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                copyToView(dataset, this, true, true);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                try {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        if (dataset.stride == null) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                                if (dataset.data != null) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                        odata = data = dataset.data.clone();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                        } else {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                offset = 0;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                stride = null;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                base = null;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                                odata = data = createArray(size);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                IndexIterator iter = dataset.getIterator();<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                                for (int j = 0; iter.hasNext();) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                                                data[j++] = dataset.data[iter.index + i];<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                                        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                                }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        }<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                } catch (Throwable t) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        throw new IllegalArgumentException(t);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                }<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>        /**<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         * Create a dataset using given dataset<a name="line.120"></a>
+<span class="sourceLineNo">121</span>         * @param dataset<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         */<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        CompoundIntegerDataset(final CompoundDataset dataset) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                copyToView(dataset, this, true, false);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                offset = 0;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                stride = null;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                base = null;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                isize = dataset.getElementsPerItem();<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                try {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        odata = data = createArray(size);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                } catch (Throwable t) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                        throw new IllegalArgumentException(t);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>                IndexIterator iter = dataset.getIterator();<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                for (int j = 0; iter.hasNext();) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                                data[j++] = (int) dataset.getElementLongAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        }<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        }<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>        /**<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * Create a dataset using given data (elements are grouped together)<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         * @param itemSize<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         * @param data<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         * @param shape<a name="line.148"></a>
+<span class="sourceLineNo">149</span>         *            (can be null to create 1D dataset)<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         */<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        CompoundIntegerDataset(final int itemSize, final int[] data, int... shape) { // PRIM_TYPE<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                isize = itemSize;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                if (data != null) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        if (shape == null || (shape.length == 0 &amp;&amp; data.length &gt; isize)) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                                shape = new int[] { data.length / isize };<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        }<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        size = ShapeUtils.calcSize(shape);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                        if (size * isize != data.length) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                                throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                                                Arrays.toString(shape), data.length / isize));<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        this.shape = size == 0 ? null : shape.clone();<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        odata = this.data = data;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                }<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        }<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>        /**<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         * Create a dataset using given datasets<a name="line.169"></a>
+<span class="sourceLineNo">170</span>         * @param datasets<a name="line.170"></a>
+<span class="sourceLineNo">171</span>         */<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        CompoundIntegerDataset(final Dataset... datasets) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                if (datasets.length &lt; 1) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                        throw new IllegalArgumentException("Array of datasets must have length greater than zero");<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                }<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>                for (int i = 1; i &lt; datasets.length; i++) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        datasets[0].checkCompatibility(datasets[i]);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>                isize = datasets.length;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                size = ShapeUtils.calcSize(datasets[0].getShapeRef());<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                shape = datasets[0].getShape();<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>                try {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        odata = data = createArray(size);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                } catch (Throwable t) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                        throw new IllegalArgumentException(t);<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>                IndexIterator[] iters = new IndexIterator[isize];<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                for (int i = 0; i &lt; datasets.length; i++) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                        iters[i] = datasets[i].getIterator();<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                }<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>                for (int j = 0; iters[0].hasNext();) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        data[j++] = (int) datasets[0].getElementLongAbs(iters[0].index); // GET_ELEMENT_WITH_CAST<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        for (int i = 1; i &lt; datasets.length; i++) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                                iters[i].hasNext();<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                                data[j++] = (int) datasets[i].getElementLongAbs(iters[i].index); // GET_ELEMENT_WITH_CAST<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        }<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                }<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>        /**<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * Cast a dataset to this compound type. If repeat is set, the first element of each item in the given dataset is<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * repeated across all elements of an item. Otherwise, each item comprises a truncated or zero-padded copy of<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * elements from the given dataset.<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         * @param itemSize<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         * @param repeat<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         *            repeat first element<a name="line.212"></a>
+<span class="sourceLineNo">213</span>         * @param dataset<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         */<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        CompoundIntegerDataset(final int itemSize, final boolean repeat, final Dataset dataset) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                isize = itemSize;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                size = dataset.getSize();<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                shape = dataset.getShape();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                name = new String(dataset.getName());<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>                try {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        odata = data = createArray(size);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                } catch (Throwable t) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                        throw new IllegalArgumentException(t);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                }<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                final int os = dataset.getElementsPerItem();<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>                IndexIterator iter = dataset.getIterator();<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                if (repeat) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                        int i = 0;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                        while (iter.hasNext()) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                final int v = (int) dataset.getElementLongAbs(iter.index); // PRIM_TYPE // GET_ELEMENT_WITH_CAST<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                                        data[i++] = v;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                        }<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                } else {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                        final int kmax = Math.min(isize, os);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        int i = 0;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                        while (iter.hasNext()) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                                for (int k = 0; k &lt; kmax; k++) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                        data[i + k] = (int) dataset.getElementLongAbs(iter.index + k); // GET_ELEMENT_WITH_CAST<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                                }<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                                i += isize;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        }<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                }<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>        @Override<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        public boolean equals(Object obj) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                if (this == obj) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        return true;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                }<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>                if (obj == null) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                        return false;<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>                if (!getClass().equals(obj.getClass())) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                        if (getRank() == 0) { // for zero-rank datasets<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                return obj.equals(getObjectAbs(offset));<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                        return false;<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>                CompoundIntegerDataset other = (CompoundIntegerDataset) obj;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                if (isize != other.isize) {<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>                if (size != other.size) {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                        return false;<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                }<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                if (!Arrays.equals(shape, other.shape)) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                        return false;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                if (data == other.data &amp;&amp; stride == null &amp;&amp; other.stride == null) {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                        return true;<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>                IndexIterator iter = getIterator();<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                IndexIterator oiter = other.getIterator();<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                                if (data[iter.index+j] != other.data[oiter.index+j]) {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                                        return false;<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>                return true;<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>        @Override<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        public int hashCode() {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                return super.hashCode();<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>        @Override<a name="line.298"></a>
+<span class="sourceLineNo">299</span>        public CompoundIntegerDataset clone() {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                return new CompoundIntegerDataset(this);<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>        /**<a name="line.303"></a>
+<span class="sourceLineNo">304</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.304"></a>
+<span class="sourceLineNo">305</span>         * sequences or arrays are padded with zeros. The item size is the last dimension of the corresponding<a name="line.305"></a>
+<span class="sourceLineNo">306</span>         * elemental dataset<a name="line.306"></a>
+<span class="sourceLineNo">307</span>         *<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         * @param obj<a name="line.308"></a>
+<span class="sourceLineNo">309</span>         * @return dataset with contents given by input<a name="line.309"></a>
+<span class="sourceLineNo">310</span>         */<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        static CompoundIntegerDataset createFromObject(final Object obj) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                IntegerDataset result = IntegerDataset.createFromObject(obj); // CLASS_TYPE<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                return createCompoundDatasetWithLastDimension(result, true);<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>         * Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * sequences or arrays are padded with zeros.<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         *<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         * @param itemSize<a name="line.320"></a>
+<span class="sourceLineNo">321</span>         * @param obj<a name="line.321"></a>
+<span class="sourceLineNo">322</span>         * @return dataset with contents given by input<a name="line.322"></a>
+<span class="sourceLineNo">323</span>         */<a name="line.323"></a>
+<span class="sourceLineNo">324</span>        public static CompoundIntegerDataset createFromObject(final int itemSize, final Object obj) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                IntegerDataset result = IntegerDataset.createFromObject(obj); // CLASS_TYPE<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                boolean zeroRank = result.shape == null ? false : result.shape.length == 0;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                if (zeroRank) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                        result.resize(itemSize); // special case of single item<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        result.fill(obj);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                CompoundIntegerDataset ds = new CompoundIntegerDataset(itemSize, result.getData(), null);<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                if (zeroRank) {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        ds.setShape(new int[0]);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                return ds;<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>         * @param stop<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         */<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        static CompoundIntegerDataset createRange(final int itemSize, final double stop) {<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                return createRange(itemSize, 0., stop, 1.);<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>         * @param start<a name="line.347"></a>
+<span class="sourceLineNo">348</span>         * @param stop<a name="line.348"></a>
+<span class="sourceLineNo">349</span>         * @param step<a name="line.349"></a>
+<span class="sourceLineNo">350</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.350"></a>
+<span class="sourceLineNo">351</span>         */<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        static CompoundIntegerDataset createRange(final int itemSize, final double start, final double stop,<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                        final double step) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                int size = calcSteps(start, stop, step);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                CompoundIntegerDataset result = new CompoundIntegerDataset(itemSize, new int[] { size });<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                for (int i = 0; i &lt; size; i++) {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                        result.data[i * result.isize] = (int) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                return result;<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>        /**<a name="line.362"></a>
+<span class="sourceLineNo">363</span>         * @param shape<a name="line.363"></a>
+<span class="sourceLineNo">364</span>         * @return a dataset filled with ones<a name="line.364"></a>
+<span class="sourceLineNo">365</span>         */<a name="line.365"></a>
+<span class="sourceLineNo">366</span>        static CompoundIntegerDataset ones(final int itemSize, final int... shape) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                return new CompoundIntegerDataset(itemSize, shape).fill(1);<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>         * Create a compound dataset using last dimension of given dataset<a name="line.371"></a>
+<span class="sourceLineNo">372</span>         * @param a<a name="line.372"></a>
+<span class="sourceLineNo">373</span>         * @param shareData if true, then share data when possible otherwise copy it<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * @return compound dataset<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         */<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        public static CompoundIntegerDataset createCompoundDatasetWithLastDimension(final Dataset a, final boolean shareData) {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                if (a.getElementsPerItem() != 1) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                        logger.error("Need a single-element dataset");<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                        throw new IllegalArgumentException("Need a single-element dataset");<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                }<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                if (a.getDType() != Dataset.INT32) { // DATA_TYPE<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                        logger.error("Dataset type must be int"); // PRIM_TYPE<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                        throw new IllegalArgumentException("Dataset type must be int"); // PRIM_TYPE<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                }<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span>                final int[] shape = a.getShapeRef();<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                if (shape == null) {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                        return new CompoundIntegerDataset(0);<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>                final int rank = shape.length - 1;<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                final int is = rank &lt; 0 ? 1 : shape[rank];<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>                CompoundIntegerDataset result = new CompoundIntegerDataset(is);<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                result.shape = rank &gt; 0 ? Arrays.copyOf(shape, rank) : (rank &lt; 0 ? new int[0] : new int[] {1});<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                result.size = ShapeUtils.calcSize(result.shape);<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                result.odata = shareData ? a.flatten().getBuffer() : a.clone().getBuffer();<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                result.setName(a.getName());<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                result.setData();<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                return result;<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 IntegerDataset asNonCompoundDataset(final boolean shareData) { // CLASS_TYPE<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                IntegerDataset result = new IntegerDataset(); // CLASS_TYPE<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                final int is = getElementsPerItem();<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                final int rank = is == 1 ? shape.length : shape.length + 1;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                final int[] nshape = Arrays.copyOf(shape, rank);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                if (is != 1)<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                        nshape[rank-1] = is;<a name="line.411"></a>
+<span class="sourceLineNo">412</span><a name="line.412"></a>
+<span class="sourceLineNo">413</span>                result.shape = nshape;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                result.size = ShapeUtils.calcSize(nshape);<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                result.odata = shareData &amp;&amp; isContiguous() ? data : clone().getBuffer();<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                result.setName(name);<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                result.setData();<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                return result;<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 CompoundIntegerDataset fill(Object obj) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                setDirty();<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                if (obj instanceof Complex) {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                        obj = new Complex(((Complex) obj).getReal(), 0);<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                }<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                int[] vr = DTypeUtils.toIntegerArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                IndexIterator iter = getIterator();<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span>                while (iter.hasNext()) {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                                data[iter.index + i] = vr[i]; // PRIM_TYPE<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                        }<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                }<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span>                return this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.440"></a>
+<span class="sourceLineNo">441</span>         * @return data buffer as linear array<a name="line.441"></a>
+<span class="sourceLineNo">442</span>         */<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        public int[] getData() { // PRIM_TYPE<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                return data;<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>        @Override<a name="line.447"></a>
+<span class="sourceLineNo">448</span>        protected int getBufferLength() {<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                if (data == null)<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                        return 0;<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                return data.length;<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 CompoundIntegerDataset getView(boolean deepCopyMetadata) {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                CompoundIntegerDataset view = new CompoundIntegerDataset(isize);<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                view.setData();<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                return view;<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>        /**<a name="line.462"></a>
+<span class="sourceLineNo">463</span>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.463"></a>
+<span class="sourceLineNo">464</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.464"></a>
+<span class="sourceLineNo">465</span>         *<a name="line.465"></a>
+<span class="sourceLineNo">466</span>         * @param index<a name="line.466"></a>
+<span class="sourceLineNo">467</span>         *            absolute index<a name="line.467"></a>
+<span class="sourceLineNo">468</span>         * @return values<a name="line.468"></a>
+<span class="sourceLineNo">469</span>         */<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        public int[] getAbs(final int index) { // PRIM_TYPE<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                int[] result = new int[isize]; // PRIM_TYPE<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                        result[i] = data[index + i];<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                }<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                return result;<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>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.479"></a>
+<span class="sourceLineNo">480</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.480"></a>
+<span class="sourceLineNo">481</span>         *<a name="line.481"></a>
+<span class="sourceLineNo">482</span>         * @param index<a name="line.482"></a>
+<span class="sourceLineNo">483</span>         *            absolute index<a name="line.483"></a>
+<span class="sourceLineNo">484</span>         * @param values<a name="line.484"></a>
+<span class="sourceLineNo">485</span>         */<a name="line.485"></a>
+<span class="sourceLineNo">486</span>        public void getAbs(final int index, final int[] values) { // PRIM_TYPE<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                        values[i] = data[index + i];<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                }<a name="line.489"></a>
+<span class="sourceLineNo">490</span>        }<a name="line.490"></a>
+<span class="sourceLineNo">491</span><a name="line.491"></a>
+<span class="sourceLineNo">492</span>        @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                return data[index] != 0;<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>        @Override<a name="line.497"></a>
+<span class="sourceLineNo">498</span>        public double getElementDoubleAbs(final int index) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                return data[index];<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 long getElementLongAbs(final int index) {<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                return data[index]; // OMIT_TOLONG_INT<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>        @Override<a name="line.507"></a>
+<span class="sourceLineNo">508</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                setDirty();<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                int[] dsrc = (int[]) src; // PRIM_TYPE<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                        data[dindex + i] = dsrc[sindex + i];<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>        /**<a name="line.516"></a>
+<span class="sourceLineNo">517</span>         * Set values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.517"></a>
+<span class="sourceLineNo">518</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.518"></a>
+<span class="sourceLineNo">519</span>         *<a name="line.519"></a>
+<span class="sourceLineNo">520</span>         * @param index<a name="line.520"></a>
+<span class="sourceLineNo">521</span>         *            absolute index<a name="line.521"></a>
+<span class="sourceLineNo">522</span>         * @param val<a name="line.522"></a>
+<span class="sourceLineNo">523</span>         *            new values<a name="line.523"></a>
+<span class="sourceLineNo">524</span>         */<a name="line.524"></a>
+<span class="sourceLineNo">525</span>        public void setAbs(final int index, final int[] val) { // PRIM_TYPE<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                setDirty();<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                        data[index + i] = val[i];<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>        /**<a name="line.532"></a>
+<span class="sourceLineNo">533</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.533"></a>
+<span class="sourceLineNo">534</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.534"></a>
+<span class="sourceLineNo">535</span>         *<a name="line.535"></a>
+<span class="sourceLineNo">536</span>         * @param index<a name="line.536"></a>
+<span class="sourceLineNo">537</span>         *            absolute index<a name="line.537"></a>
+<span class="sourceLineNo">538</span>         * @param val<a name="line.538"></a>
+<span class="sourceLineNo">539</span>         *            new value<a name="line.539"></a>
+<span class="sourceLineNo">540</span>         */<a name="line.540"></a>
+<span class="sourceLineNo">541</span>        public void setAbs(final int index, final int val) { // PRIM_TYPE<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                setDirty();<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                data[index] = val;<a name="line.543"></a>
+<span class="sourceLineNo">544</span>        }<a name="line.544"></a>
+<span class="sourceLineNo">545</span><a name="line.545"></a>
+<span class="sourceLineNo">546</span>        @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        public Object getObject() {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                return getIntArray(); // PRIM_TYPE<a name="line.548"></a>
+<span class="sourceLineNo">549</span>        }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>        @Override<a name="line.551"></a>
+<span class="sourceLineNo">552</span>        public Object getObject(final int i) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                return getIntArray(i); // PRIM_TYPE<a name="line.553"></a>
+<span class="sourceLineNo">554</span>        }<a name="line.554"></a>
+<span class="sourceLineNo">555</span><a name="line.555"></a>
+<span class="sourceLineNo">556</span>        @Override<a name="line.556"></a>
+<span class="sourceLineNo">557</span>        public Object getObject(final int i, final int j) {<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                return getIntArray(i, j); // PRIM_TYPE<a name="line.558"></a>
+<span class="sourceLineNo">559</span>        }<a name="line.559"></a>
+<span class="sourceLineNo">560</span><a name="line.560"></a>
+<span class="sourceLineNo">561</span>        @Override<a name="line.561"></a>
+<span class="sourceLineNo">562</span>        public Object getObject(final int... pos) {<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                return getIntArray(pos); // PRIM_TYPE<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>        @Override<a name="line.566"></a>
+<span class="sourceLineNo">567</span>        public byte[] getByteArray() {<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                byte[] result = new byte[isize];<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                int index = getFirst1DIndex();<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                }<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                return result;<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>        @Override<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        public byte[] getByteArray(final int i) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                byte[] result = new byte[isize];<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                int index = get1DIndex(i);<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                }<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                return result;<a name="line.583"></a>
+<span class="sourceLineNo">584</span>        }<a name="line.584"></a>
+<span class="sourceLineNo">585</span><a name="line.585"></a>
+<span class="sourceLineNo">586</span>        @Override<a name="line.586"></a>
+<span class="sourceLineNo">587</span>        public byte[] getByteArray(final int i, final int j) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                byte[] result = new byte[isize];<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                int index = get1DIndex(i, j);<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                }<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                return result;<a name="line.593"></a>
+<span class="sourceLineNo">594</span>        }<a name="line.594"></a>
+<span class="sourceLineNo">595</span><a name="line.595"></a>
+<span class="sourceLineNo">596</span>        @Override<a name="line.596"></a>
+<span class="sourceLineNo">597</span>        public byte[] getByteArray(final int... pos) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                byte[] result = new byte[isize];<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                int index = get1DIndex(pos);<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                }<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                return result;<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>        @Override<a name="line.606"></a>
+<span class="sourceLineNo">607</span>        public short[] getShortArray() {<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                short[] result = new short[isize];<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                int index = getFirst1DIndex();<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                }<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                return result;<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>        @Override<a name="line.616"></a>
+<span class="sourceLineNo">617</span>        public short[] getShortArray(final int i) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                short[] result = new short[isize];<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                int index = get1DIndex(i);<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                }<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                return result;<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>        @Override<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        public short[] getShortArray(final int i, final int j) {<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                short[] result = new short[isize];<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                int index = get1DIndex(i, j);<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                }<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                return result;<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>        @Override<a name="line.636"></a>
+<span class="sourceLineNo">637</span>        public short[] getShortArray(final int... pos) {<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                short[] result = new short[isize];<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                int index = get1DIndex(pos);<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                }<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                return result;<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>        @Override<a name="line.646"></a>
+<span class="sourceLineNo">647</span>        public int[] getIntArray() {<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                int[] result = new int[isize];<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                int index = getFirst1DIndex();<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>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                }<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                return result;<a name="line.653"></a>
+<span class="sourceLineNo">654</span>        }<a name="line.654"></a>
+<span class="sourceLineNo">655</span><a name="line.655"></a>
+<span class="sourceLineNo">656</span>        @Override<a name="line.656"></a>
+<span class="sourceLineNo">657</span>        public int[] getIntArray(final int i) {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                int[] result = new int[isize];<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                int index = get1DIndex(i);<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                }<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                return result;<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 int[] getIntArray(final int i, final int j) {<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                int[] result = new int[isize];<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                int index = get1DIndex(i, j);<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                }<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                return result;<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>        @Override<a name="line.676"></a>
+<span class="sourceLineNo">677</span>        public int[] getIntArray(final int... pos) {<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                int[] result = new int[isize];<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                int index = get1DIndex(pos);<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                }<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                return result;<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>        @Override<a name="line.686"></a>
+<span class="sourceLineNo">687</span>        public long[] getLongArray() {<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                long[] result = new long[isize];<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                int index = getFirst1DIndex();<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                }<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                return result;<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 long[] getLongArray(final int i) {<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                long[] result = new long[isize];<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                int index = get1DIndex(i);<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                }<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                return result;<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 long[] getLongArray(final int i, final int j) {<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                long[] result = new long[isize];<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                int index = get1DIndex(i, j);<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                }<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                return result;<a name="line.713"></a>
+<span class="sourceLineNo">714</span>        }<a name="line.714"></a>
+<span class="sourceLineNo">715</span><a name="line.715"></a>
+<span class="sourceLineNo">716</span>        @Override<a name="line.716"></a>
+<span class="sourceLineNo">717</span>        public long[] getLongArray(final int... pos) {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                long[] result = new long[isize];<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                int index = get1DIndex(pos);<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                }<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                return result;<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>        @Override<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        public float[] getFloatArray() {<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                float[] result = new float[isize];<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                int index = getFirst1DIndex();<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                }<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                return result;<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>        @Override<a name="line.736"></a>
+<span class="sourceLineNo">737</span>        public float[] getFloatArray(final int i) {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                float[] result = new float[isize];<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                int index = get1DIndex(i);<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                }<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                return result;<a name="line.743"></a>
+<span class="sourceLineNo">744</span>        }<a name="line.744"></a>
+<span class="sourceLineNo">745</span><a name="line.745"></a>
+<span class="sourceLineNo">746</span>        @Override<a name="line.746"></a>
+<span class="sourceLineNo">747</span>        public float[] getFloatArray(final int i, final int j) {<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                float[] result = new float[isize];<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                int index = get1DIndex(i, j);<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<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>        @Override<a name="line.756"></a>
+<span class="sourceLineNo">757</span>        public float[] getFloatArray(final int... pos) {<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                float[] result = new float[isize];<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                int index = get1DIndex(pos);<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                }<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                return result;<a name="line.763"></a>
+<span class="sourceLineNo">764</span>        }<a name="line.764"></a>
+<span class="sourceLineNo">765</span><a name="line.765"></a>
+<span class="sourceLineNo">766</span>        @Override<a name="line.766"></a>
+<span class="sourceLineNo">767</span>        public double[] getDoubleArray() {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                double[] result = new double[isize];<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                int index = getFirst1DIndex();<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                }<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                return result;<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>        @Override<a name="line.776"></a>
+<span class="sourceLineNo">777</span>        public double[] getDoubleArray(final int i) {<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                double[] result = new double[isize];<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                int index = get1DIndex(i);<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                }<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                return result;<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>        @Override<a name="line.786"></a>
+<span class="sourceLineNo">787</span>        public double[] getDoubleArray(final int i, final int j) {<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                double[] result = new double[isize];<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                int index = get1DIndex(i, j);<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                }<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                return result;<a name="line.793"></a>
+<span class="sourceLineNo">794</span>        }<a name="line.794"></a>
+<span class="sourceLineNo">795</span><a name="line.795"></a>
+<span class="sourceLineNo">796</span>        @Override<a name="line.796"></a>
+<span class="sourceLineNo">797</span>        public double[] getDoubleArray(final int... pos) {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                double[] result = new double[isize];<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                int index = get1DIndex(pos);<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return result;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        @Override<a name="line.806"></a>
+<span class="sourceLineNo">807</span>        public void getDoubleArrayAbs(final int index, final double[] darray) {<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                        darray[i] = data[index + 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><a name="line.812"></a>
+<span class="sourceLineNo">813</span>        @Override<a name="line.813"></a>
+<span class="sourceLineNo">814</span>        public String getString() {<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                return getStringAbs(getFirst1DIndex());<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>        @Override<a name="line.818"></a>
+<span class="sourceLineNo">819</span>        public String getString(final int i) {<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                return getStringAbs(get1DIndex(i));<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 String getString(final int i, final int j) {<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                return getStringAbs(get1DIndex(i, j));<a name="line.825"></a>
+<span class="sourceLineNo">826</span>        }<a name="line.826"></a>
+<span class="sourceLineNo">827</span><a name="line.827"></a>
+<span class="sourceLineNo">828</span>        @Override<a name="line.828"></a>
+<span class="sourceLineNo">829</span>        public String getString(final int... pos) {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                return getStringAbs(get1DIndex(pos));<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>        protected double getFirstValue() {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                return data[getFirst1DIndex()];<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>        protected double getFirstValue(int i) {<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                return data[get1DIndex(i)];<a name="line.840"></a>
+<span class="sourceLineNo">841</span>        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span><a name="line.842"></a>
+<span class="sourceLineNo">843</span>        @Override<a name="line.843"></a>
+<span class="sourceLineNo">844</span>        protected double getFirstValue(int i, int j) {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                return data[get1DIndex(i, j)];<a name="line.845"></a>
+<span class="sourceLineNo">846</span>        }<a name="line.846"></a>
+<span class="sourceLineNo">847</span><a name="line.847"></a>
+<span class="sourceLineNo">848</span>        @Override<a name="line.848"></a>
+<span class="sourceLineNo">849</span>        protected double getFirstValue(final int... pos) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                return data[get1DIndex(pos)];<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>        @Override<a name="line.853"></a>
+<span class="sourceLineNo">854</span>        public Object getObjectAbs(final int index) {<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                int[] result = new int[isize]; // PRIM_TYPE<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        result[i] = data[index + i];<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                }<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                return result;<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 String getStringAbs(final int index) {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                StringBuilder s = new StringBuilder();<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                s.append('(');<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                s.append(stringFormat == null ? String.format("%d", data[index]) : // FORMAT_STRING<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                        stringFormat.format(data[index]));<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                for (int i = 1; i &lt; isize; i++) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                        s.append(' ');<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                        s.append(stringFormat == null ? String.format("%d", data[index + i]) : // FORMAT_STRING<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                                stringFormat.format(data[index + i]));<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                }<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                s.append(')');<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                return s.toString();<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>        @Override<a name="line.877"></a>
+<span class="sourceLineNo">878</span>        public void setObjectAbs(final int index, Object obj) {<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                if (obj instanceof Complex) {<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                        obj = new Complex(((Complex) obj).getReal(), 0);<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                }<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                int[] oa = DTypeUtils.toIntegerArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                setAbs(index, oa);<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>        @Override<a name="line.886"></a>
+<span class="sourceLineNo">887</span>        public void set(final Object obj) {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                setItem(DTypeUtils.toIntegerArray(obj, isize)); // CLASS_TYPE<a name="line.888"></a>
+<span class="sourceLineNo">889</span>        }<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>        @Override<a name="line.891"></a>
+<span class="sourceLineNo">892</span>        public void set(final Object obj, final int i) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                setItem(DTypeUtils.toIntegerArray(obj, isize), i); // CLASS_TYPE<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 void set(final Object obj, final int i, final int j) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                setItem(DTypeUtils.toIntegerArray(obj, isize), i, j); // CLASS_TYPE<a name="line.898"></a>
+<span class="sourceLineNo">899</span>        }<a name="line.899"></a>
+<span class="sourceLineNo">900</span><a name="line.900"></a>
+<span class="sourceLineNo">901</span>        @Override<a name="line.901"></a>
+<span class="sourceLineNo">902</span>        public void set(final Object obj, int... pos) {<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        pos = new int[shape.length];<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>                setItem(DTypeUtils.toIntegerArray(obj, isize), pos); // CLASS_TYPE<a name="line.907"></a>
+<span class="sourceLineNo">908</span>        }<a name="line.908"></a>
+<span class="sourceLineNo">909</span><a name="line.909"></a>
+<span class="sourceLineNo">910</span>        /**<a name="line.910"></a>
+<span class="sourceLineNo">911</span>         * Set values at first position. The dataset must not be null<a name="line.911"></a>
+<span class="sourceLineNo">912</span>         *<a name="line.912"></a>
+<span class="sourceLineNo">913</span>         * @param d<a name="line.913"></a>
+<span class="sourceLineNo">914</span>         * @since 2.0<a name="line.914"></a>
+<span class="sourceLineNo">915</span>         */<a name="line.915"></a>
+<span class="sourceLineNo">916</span>        public void setItem(final int[] d) { // PRIM_TYPE<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                if (d.length &gt; isize) {<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                }<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                setAbs(getFirst1DIndex(), d);<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>        /**<a name="line.923"></a>
+<span class="sourceLineNo">924</span>         * Set values at given position. The dataset must be 1D<a name="line.924"></a>
+<span class="sourceLineNo">925</span>         *<a name="line.925"></a>
+<span class="sourceLineNo">926</span>         * @param d<a name="line.926"></a>
+<span class="sourceLineNo">927</span>         * @param i<a name="line.927"></a>
+<span class="sourceLineNo">928</span>         */<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        public void setItem(final int[] d, final int i) { // PRIM_TYPE<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                if (d.length &gt; isize) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                }<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                setAbs(get1DIndex(i), d);<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>         * Set values at given position. The dataset must be 1D<a name="line.937"></a>
+<span class="sourceLineNo">938</span>         *<a name="line.938"></a>
+<span class="sourceLineNo">939</span>         * @param d<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>         */<a name="line.942"></a>
+<span class="sourceLineNo">943</span>        public void setItem(final int[] d, final int i, final int j) { // PRIM_TYPE<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                if (d.length &gt; isize) {<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                }<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                setAbs(get1DIndex(i, j), d);<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>         * Set values at given position<a name="line.951"></a>
+<span class="sourceLineNo">952</span>         *<a name="line.952"></a>
+<span class="sourceLineNo">953</span>         * @param d<a name="line.953"></a>
+<span class="sourceLineNo">954</span>         * @param pos<a name="line.954"></a>
+<span class="sourceLineNo">955</span>         */<a name="line.955"></a>
+<span class="sourceLineNo">956</span>        public void setItem(final int[] d, final int... pos) { // PRIM_TYPE<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                if (d.length &gt; isize) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                }<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                setAbs(get1DIndex(pos), d);<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>        private void setDoubleArrayAbs(final int index, final double[] d) {<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                for (int i = 0; i &lt; isize; i++)<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                        data[index + i] = (int) d[i]; // ADD_CAST<a name="line.965"></a>
+<span class="sourceLineNo">966</span>        }<a name="line.966"></a>
+<span class="sourceLineNo">967</span><a name="line.967"></a>
+<span class="sourceLineNo">968</span>        @Override<a name="line.968"></a>
+<span class="sourceLineNo">969</span>        public void resize(int... newShape) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                setDirty();<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                IndexIterator iter = getIterator();<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                int nsize = ShapeUtils.calcSize(newShape);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                int[] ndata; // PRIM_TYPE<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                try {<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                        ndata = createArray(nsize);<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                } catch (Throwable t) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                        throw new IllegalArgumentException(t);<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>                int i = 0;<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                while (iter.hasNext() &amp;&amp; i &lt; nsize) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                ndata[i++] = data[iter.index + j];<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>                odata = data = ndata;<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                size = nsize;<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                shape = newShape;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                stride = null;<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                offset = 0;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                base = null;<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>        @Override<a name="line.996"></a>
+<span class="sourceLineNo">997</span>        public CompoundIntegerDataset getSlice(final SliceIterator siter) {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                CompoundIntegerDataset result = new CompoundIntegerDataset(isize, siter.getShape());<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                int[] rdata = result.data; // PRIM_TYPE<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                IndexIterator riter = result.getIterator();<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span><a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                while (siter.hasNext() &amp;&amp; riter.hasNext()) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                        for (int i = 0; i &lt; isize; i++)<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                rdata[riter.index + i] = data[siter.index + i];<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>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                return result;<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>        @Override<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>        public IntegerDataset getElementsView(int element) { // CLASS_TYPE<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                if (element &lt; 0)<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        element += isize;<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<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>                IntegerDataset view = new IntegerDataset(shape); // CLASS_TYPE<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span><a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                copyToView(this, view, true, true);<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                view.setData();<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                if (view.stride == null) {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                        int[] offset = new int[1];<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                        view.stride = createStrides(this, offset);<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                        view.offset = offset[0] + element;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                        view.base = base == null ? this : base;<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                } else {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                        view.offset += element;<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>                return view;<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>        }<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span><a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>        @Override<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>        public IntegerDataset getElements(int element) { // CLASS_TYPE<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                final IntegerDataset elements = new IntegerDataset(shape); // CLASS_TYPE<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span><a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                copyElements(elements, element);<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                return elements;<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>        @Override<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>        public void copyElements(Dataset destination, int element) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                if (element &lt; 0)<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        element += isize;<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                if (getElementClass() != destination.getElementClass()) {<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<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>                final IndexIterator it = getIterator(element);<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                final int[] elements = ((IntegerDataset) destination).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                destination.setDirty();<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span><a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                int n = 0;<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                while (it.hasNext()) {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                        elements[n] = data[it.index];<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        n++;<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>        }<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span><a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>        @Override<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>        public void setElements(Dataset source, int element) {<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                setDirty();<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                if (element &lt; 0)<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                        element += isize;<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                }<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                if (getElementClass() != source.getElementClass()) {<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        throw new IllegalArgumentException("Element class of destination does not match this 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>                final IndexIterator it = getIterator(element);<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                final int[] elements = ((IntegerDataset) source).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span><a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                int n = 0;<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                while (it.hasNext()) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                        data[it.index] = elements[n];<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                        n++;<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>        @Override<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                IndexIterator riter = result.getIterator();<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                result.setDirty();<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span><a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                int[] rdata = ((CompoundIntegerDataset) result).data; // PRIM_TYPE<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span><a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                rdata[riter.index + i] = data[iter.index + i];<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>        @Override<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>        public CompoundIntegerDataset setByBoolean(final Object o, Dataset selection) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                setDirty();<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                if (o instanceof Dataset) {<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                        Dataset ds = (Dataset) o;<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        if (length != ds.getSize()) {<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                                throw new IllegalArgumentException(<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        IndexIterator iter = ds.getIterator();<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                        BooleanIterator biter = getBooleanIterator(selection);<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span><a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                }<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span><a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                data[biter.index + i] = (int) ds.getElementLongAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<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>                        } else {<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                        data[biter.index] = (int) ds.getElementLongAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                                data[biter.index + i] = 0;<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>                        try {<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                final int[] vr = DTypeUtils.toIntegerArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span><a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                final BooleanIterator biter = getBooleanIterator(selection);<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span><a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                while (biter.hasNext()) {<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                                data[biter.index + i] = vr[i];<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>                        } catch (IllegalArgumentException e) {<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>        }<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span><a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>        @Override<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        public CompoundIntegerDataset setBy1DIndex(final Object o, Dataset index) {<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                setDirty();<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                if (o instanceof Dataset) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                        Dataset ds = (Dataset) o;<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                        if (index.getSize() != ds.getSize()) {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                throw new IllegalArgumentException(<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                                "Number of items in selection does not match number of items in dataset");<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span><a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                        IndexIterator oiter = ds.getIterator();<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span><a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                double[] temp = new double[isize];<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                        ((AbstractCompoundDataset) ds).getDoubleArrayAbs(oiter.index, temp);<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                        setDoubleArrayAbs(iter.index, temp);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                }<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                                                data[iter.index + i] = (int) ds.getElementLongAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<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>                        } else {<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>                                        data[iter.index] = (int) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                                                data[iter.index + i] = 0;<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>                } else {<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                        try {<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                                final int[] vr = DTypeUtils.toIntegerArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span><a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                                final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                while (iter.hasNext()) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                                        setAbs(iter.index, vr);<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                }<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                        } catch (IllegalArgumentException e) {<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<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>        @Override<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>        public CompoundIntegerDataset setByIndexes(final Object o, final Object... indexes) {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                setDirty();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                final int[] pos = iter.getPos();<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span><a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                if (o instanceof Dataset) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                        Dataset ds = (Dataset) o;<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                                throw new IllegalArgumentException(<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                                                "Number of items in selection does not match number of items in dataset");<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                        }<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span><a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                        IndexIterator oiter = ds.getIterator();<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span><a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                }<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span><a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                double[] temp = new double[isize];<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        ((AbstractCompoundDataset) ds).getDoubleArray(temp, pos);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                        setDoubleArrayAbs(get1DIndex(pos), temp);<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                }<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                        } else {<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        int n = get1DIndex(pos);<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                        data[n] = (int) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                                data[n + i] = 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>                } else {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                        try {<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                                final int[] vr = DTypeUtils.toIntegerArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                                while (iter.hasNext()) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                        setAbs(get1DIndex(pos), vr);<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                        } catch (IllegalArgumentException e) {<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<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>        @Override<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>        CompoundIntegerDataset setSlicedView(Dataset view, Dataset d) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                setDirty();<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span><a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                final int is = view.getElementsPerItem();<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span><a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                if (is &gt; 1) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                        if (d.getElementsPerItem() == 1) {<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                while (it.hasNext()) {<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                        final int bv = (int) it.bLong; // PRIM_TYPE // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                        data[it.aIndex] = bv;<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                                data[it.aIndex + j] = bv;<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                                        }<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                        } else {<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                while (it.hasNext()) {<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                                        data[it.aIndex] = (int) it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                                data[it.aIndex + j] = (int) d.getElementLongAbs(it.bIndex + j); // GET_ELEMENT_WITH_CAST<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>                } else {<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                        while (it.hasNext()) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                data[it.aIndex] = (int) it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                        }<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                return this;<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>        @Override<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>        public CompoundIntegerDataset setSlice(final Object o, final IndexIterator siter) {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                setDirty();<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                if (o instanceof IDataset) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                        final IDataset ds = (IDataset) o;<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                        final int[] oshape = ds.getShape();<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span><a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                throw new IllegalArgumentException(String.format(<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                                                Arrays.toString(siter.getShape())));<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                        }<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span><a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>                        if (ds instanceof Dataset) {<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                                final Dataset ads = (Dataset) ds;<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                IndexIterator oiter = ads.getIterator();<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span><a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                if (ds instanceof AbstractCompoundDataset) {<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                                        if (isize != ads.getElementsPerItem()) {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                                throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                                        data[siter.index + i] = (int) ads.getElementLongAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                                }<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        }<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                } else {<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                                data[siter.index] = (int) ads.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                                        data[siter.index + i] = 0;<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                                }<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                        }<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                }<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                        } else {<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                                final int[] pos = oiter.getPos();<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span><a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                                if (ds.getElementsPerItem() == 1) {<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                                                data[siter.index] = ds.getInt(pos); // PRIM_TYPE<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                                        data[siter.index + i] = 0;<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                                }<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>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                                                final int[] val = DTypeUtils.toIntegerArray(ds.getObject(pos), isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                                        data[siter.index + i] = val[i];<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>                } else {<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                        try {<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                                final int[] vr = DTypeUtils.toIntegerArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span><a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                while (siter.hasNext()) {<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                                                data[siter.index + i] = vr[i];<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>                        } catch (IllegalArgumentException e) {<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                        }<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                }<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                return this;<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>        }<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span><a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>        @Override<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                int[] ddata = (int[]) dest.getBuffer(); // PRIM_TYPE<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span><a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                if (dest.getElementsPerItem() != isize) {<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                        throw new IllegalArgumentException(String.format(<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                        "Destination dataset is incompatible as it has %d elements per item not %d",<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                                        dest.getElementsPerItem(), isize));<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>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span><a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span><a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                }<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span><a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                dest.setDirty();<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                                ddata[diter.index + i] = data[siter.index + i];<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                        }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                }<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>        }<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span><a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>        @Override<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                setDirty();<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                int[] sdata = (int[]) src; // PRIM_TYPE<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span><a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span><a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                        throw new IllegalArgumentException("source array is not large enough");<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                }<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span><a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                for (int i = 0; siter.hasNext(); i++) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                data[siter.index + j] = sdata[isize * i + j];<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><a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>        @Override<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>        public boolean containsNans() {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                return false;<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>        @Override<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>        public boolean containsInfs() {<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                return false;<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>        }<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span><a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>        @Override<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>        public boolean containsInvalidNumbers() {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                return false;<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 CompoundIntegerDataset iadd(final Object b) {<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                setDirty();<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                int is = bds.getElementsPerItem();<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                if (bds.getSize() == 1) {<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>                        final IndexIterator it = getIterator();<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        final int bOffset = bds.getOffset();<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                        if (is == 1) {<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                                if (useLong) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                                        while (it.hasNext()) {<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                                        data[it.index + i] += lb;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                                }<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                        }<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                } else {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                        while (it.hasNext()) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                        data[it.index + i] += db;<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>                                }<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                        } else if (is == isize) {<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                                if (useLong) {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                        while (it.hasNext()) {<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                        data[it.index + i] += bds.getElementLongAbs(i);<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>                                } else {<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        while (it.hasNext()) {<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                        data[it.index + i] += bds.getElementDoubleAbs(i);<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                }<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                        }<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                }<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                        } else {<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                        }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                } else {<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                        it.setOutputDouble(!useLong);<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                        if (is == 1) {<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                if (useLong) {<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                                        while (it.hasNext()) {<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                                                final long lb = it.bLong;<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                                data[it.aIndex] += lb;<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                                        data[it.aIndex + i] += lb;<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 {<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                        while (it.hasNext()) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                                                final double db = it.bDouble;<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                                                data[it.aIndex] += db;<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                                        data[it.aIndex + i] += db;<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>                                }<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                        } else if (is == isize) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                if (useLong) {<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                        while (it.hasNext()) {<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                                data[it.aIndex] += it.bLong;<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                                        data[it.aIndex + i] += bds.getElementLongAbs(it.bIndex + i);<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>                                } else {<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                                        while (it.hasNext()) {<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                                                        data[it.aIndex + i] += bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>                                                }<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>                        } else {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                        }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                }<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                return this;<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>        }<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span><a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>        @Override<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>        public CompoundIntegerDataset isubtract(final Object b) {<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                setDirty();<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                int is = bds.getElementsPerItem();<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                if (bds.getSize() == 1) {<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                        final IndexIterator it = getIterator();<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                        final int bOffset = bds.getOffset();<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>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                        while (it.hasNext()) {<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                        data[it.index + i] -= lb;<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                        }<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                } else {<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<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] -= db;<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 if (is == isize) {<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                                if (useLong) {<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                                        while (it.hasNext()) {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                                        data[it.index + i] -= bds.getElementLongAbs(i);<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>                                } else {<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                        while (it.hasNext()) {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                                        data[it.index + i] -= bds.getElementDoubleAbs(i);<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                                }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                        }<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                }<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                        } else {<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                        }<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                } else {<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                        it.setOutputDouble(!useLong);<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                        if (is == 1) {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                if (useLong) {<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                        while (it.hasNext()) {<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                                final long lb = it.bLong;<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                                data[it.aIndex] += lb;<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                        data[it.aIndex + i] -= lb;<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>                                } else {<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                                        while (it.hasNext()) {<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                                                final double db = it.bDouble;<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                                                data[it.aIndex] += db;<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>                                                        data[it.aIndex + i] -= db;<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>                                }<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                        } else if (is == isize) {<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                if (useLong) {<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                        while (it.hasNext()) {<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                                data[it.aIndex] += it.bLong;<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                                        data[it.aIndex + i] -= bds.getElementLongAbs(it.bIndex + i);<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>                                } else {<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                                        while (it.hasNext()) {<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                                                        data[it.aIndex + i] -= bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                                                }<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                        }<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                }<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                        } else {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                return this;<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>        }<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span><a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>        @Override<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>        public CompoundIntegerDataset imultiply(final Object b) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                setDirty();<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                int is = bds.getElementsPerItem();<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                if (bds.getSize() == 1) {<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                        final IndexIterator it = getIterator();<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                        final int bOffset = bds.getOffset();<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                        if (useLong) {<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                                if (is == 1) {<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                                        while (it.hasNext()) {<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                                        data[it.index + i] *= lb;<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>                                } else if (is == isize) {<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                        while (it.hasNext()) {<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                                        data[it.index + i] *= bds.getElementLongAbs(i);<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                                }<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                        }<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                } else {<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                                if (is == 1) {<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                                        while (it.hasNext()) {<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                                                        data[it.index + i] *= db;<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                                }<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                        }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                } else if (is == isize) {<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                        while (it.hasNext()) {<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.index + i] *= bds.getElementDoubleAbs(i);<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 {<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                }<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                        }<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                } else {<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                        it.setOutputDouble(!useLong);<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                        if (useLong) {<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                if (is == 1) {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                                        while (it.hasNext()) {<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                                                final double lb = it.bLong;<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                                                        data[it.aIndex + i] *= lb;<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>                                } else if (is == isize) {<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                                        while (it.hasNext()) {<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                                                data[it.aIndex] *= it.bLong;<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                                                        data[it.aIndex + i] *= bds.getElementLongAbs(it.bIndex + i);<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                                }<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                        }<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                } else {<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                                if (is == 1) {<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                                        while (it.hasNext()) {<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>                                                final double db = it.bDouble;<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                                        data[it.aIndex + i] *= db;<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>                                } else if (is == isize) {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                        while (it.hasNext()) {<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                                data[it.aIndex] *= it.bDouble;<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                                        data[it.aIndex + i] *= bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                                }<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                        }<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                } else {<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                }<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                        }<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                return this;<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>        }<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span><a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>        @Override<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>        public CompoundIntegerDataset idivide(final Object b) {<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                setDirty();<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                int is = bds.getElementsPerItem();<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                if (bds.getSize() == 1) {<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                        final IndexIterator it = getIterator();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>                        final int bOffset = bds.getOffset();<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                        if (useLong) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                if (is == 1) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                        if (lb == 0) { // INT_USE<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                                fill(0); // INT_USE<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                        } else { // INT_USE<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                        while (it.hasNext()) {<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                                        data[it.index + i] /= lb;<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>                                        } // INT_USE<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                } else if (is == isize) {<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                        while (it.hasNext()) {<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                                                        final long lb = bds.getElementLongAbs(i);<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                                try {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                                                                data[it.index + i] /= lb; // INT_EXCEPTION<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                                } catch (ArithmeticException e) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                        data[it.index + i] = 0;<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>                                } else {<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                }<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                        } else {<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                if (is == 1) {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                        if (db == 0) { // INT_USE<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                fill(0); // INT_USE<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                        } else { // INT_USE<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                        while (it.hasNext()) {<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                                        data[it.index + i] /= db;<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>                                        } // INT_USE<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                } else if (is == isize) {<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                        while (it.hasNext()) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                                        final double db = bds.getElementDoubleAbs(i);<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                try {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                                                data[it.index + i] /= db; // INT_EXCEPTION<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                } catch (ArithmeticException e) {<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        data[it.index + i] = 0;<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                }<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                                }<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                        }<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                } else {<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                        it.setOutputDouble(!useLong);<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                        if (useLong) {<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 long lb = it.bLong;<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                if (lb == 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] /= lb;<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 long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                try {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                                                data[it.aIndex + i] /= lb; // INT_EXCEPTION<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                } catch (ArithmeticException e) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                        data[it.aIndex + i] = 0;<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>                                        }<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                                } else {<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                                }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                        } else {<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>                                if (is == 1) {<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                                        while (it.hasNext()) {<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                                                final double db = it.bDouble;<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                                                if (db == 0) { // INT_USE<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                                                        for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                                                        }// INT_USE<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                                                } else { // INT_USE<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                                                        data[it.aIndex + i] /= db;<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                                }<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                                } // INT_USE<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                        }<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                } else if (is == isize) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                        while (it.hasNext()) {<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                try {<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                                                data[it.aIndex + i] /= db; // INT_EXCEPTION<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                } catch (ArithmeticException e) {<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                                        data[it.aIndex + i] = 0;<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>                                        }<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                } else {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                return this;<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>        }<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span><a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>        @Override<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>        public CompoundIntegerDataset ifloor() {<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                return this;<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>        @Override<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>        public CompoundIntegerDataset iremainder(final Object b) {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                setDirty();<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                int is = bds.getElementsPerItem();<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                if (bds.getSize() == 1) {<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                        final IndexIterator it = getIterator();<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                        final int bOffset = bds.getOffset();<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                        if (useLong) {<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                if (is == 1) {<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                                        if (lb == 0) { // INT_USE<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                                                fill(0); // INT_USE<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                                        } else { // INT_USE<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                                        while (it.hasNext()) {<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                                                        data[it.index + i] %= lb;<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>                                        } // INT_USE<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                } else if (is == isize) {<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                                        while (it.hasNext()) {<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                try {<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                                                data[it.index + i] %= bds.getElementLongAbs(i); // INT_EXCEPTION<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                } catch (ArithmeticException e) {<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                        data[it.index + i] = 0;<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>                                        }<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                } else {<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                                if (is == 1) {<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                        if (db == 0) { // INT_USE<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                                                fill(0); // INT_USE<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                        } else { // INT_USE<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                        while (it.hasNext()) {<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                                        data[it.index + i] %= db;<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>                                        } // INT_USE<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                                } else if (is == isize) {<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                                        while (it.hasNext()) {<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span>                                try {<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                                                                data[it.index + i] %= bds.getElementDoubleAbs(i); // INT_EXCEPTION<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                } catch (ArithmeticException e) {<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                        data[it.index + i] = 0;<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>                                } else {<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                } else {<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                        it.setOutputDouble(!useLong);<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                        if (useLong) {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                if (is == 1) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                        while (it.hasNext()) {<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                final long lb = it.bLong;<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                                if (lb == 0) { // INT_USE<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                        for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                                } else { // INT_USE<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                                                for (int i = 0; i &lt; isize; i++)<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                                        data[it.aIndex + i] %= lb;<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                                } // INT_USE<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                        }<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                } else if (is == isize) {<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                        while (it.hasNext()) {<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                                try {<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                                                                data[it.aIndex + i] %= lb; // INT_EXCEPTION<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                                } catch (ArithmeticException e) {<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>                                        data[it.aIndex + i] = 0;<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                                }<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                                                }<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>                                        }<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                                } else {<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>                                }<a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>                        } else {<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span>                                if (is == 1) {<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>                                        while (it.hasNext()) {<a name="line.1896"></a>
+<span class="sourceLineNo">1897</span>                                                final double db = it.bDouble;<a name="line.1897"></a>
+<span class="sourceLineNo">1898</span>                                                if (db == 0) { // INT_USE<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>                                                        for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>                                                } else { // INT_USE<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>                                                        data[it.aIndex + i] %= db;<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span>                                                }<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>                                } else if (is == isize) {<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span>                                        while (it.hasNext()) {<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span>                                try {<a name="line.1911"></a>
+<span class="sourceLineNo">1912</span>                                                                data[it.aIndex + i] %= db; // INT_EXCEPTION<a name="line.1912"></a>
+<span class="sourceLineNo">1913</span>                                } catch (ArithmeticException e) {<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>                                        data[it.aIndex + i] = 0;<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>                                }<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>                                                }<a name="line.1916"></a>
+<span class="sourceLineNo">1917</span>                                        }<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span>                                } else {<a name="line.1918"></a>
+<span class="sourceLineNo">1919</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                }<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>                return this;<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span>        }<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span><a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>        @Override<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>        public CompoundIntegerDataset ipower(final Object b) {<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>                setDirty();<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>                final int is = bds.getElementsPerItem();<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>                if (bds.getSize() == 1) {<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>                        final int bOffset = bds.getOffset();<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span>                        final double vr = bds.getElementDoubleAbs(bOffset);<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span>                        final IndexIterator it = getIterator();<a name="line.1934"></a>
+<span class="sourceLineNo">1935</span>                        if (bds.isComplex()) {<a name="line.1935"></a>
+<span class="sourceLineNo">1936</span>                                final double vi = bds.getElementDoubleAbs(bOffset + 1);<a name="line.1936"></a>
+<span class="sourceLineNo">1937</span>                                if (vi == 0) {<a name="line.1937"></a>
+<span class="sourceLineNo">1938</span>                                        while (it.hasNext()) {<a name="line.1938"></a>
+<span class="sourceLineNo">1939</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1939"></a>
+<span class="sourceLineNo">1940</span>                                                        final double v = Math.pow(data[it.index + i], vr);<a name="line.1940"></a>
+<span class="sourceLineNo">1941</span>                                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1941"></a>
+<span class="sourceLineNo">1942</span>                                                                data[it.index + i] = 0; // INT_USE<a name="line.1942"></a>
+<span class="sourceLineNo">1943</span>                                                        } else { // INT_USE<a name="line.1943"></a>
+<span class="sourceLineNo">1944</span>                                                        data[it.index + i] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1944"></a>
+<span class="sourceLineNo">1945</span>                                                        } // INT_USE<a name="line.1945"></a>
+<span class="sourceLineNo">1946</span>                                                }<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span>                                        }<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span>                                } else {<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span>                                        final Complex zv = new Complex(vr, vi);<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span>                                        while (it.hasNext()) {<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1951"></a>
+<span class="sourceLineNo">1952</span>                                                        Complex zd = new Complex(data[it.index + i], 0);<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span>                                                        final double v = zd.pow(zv).getReal();<a name="line.1953"></a>
+<span class="sourceLineNo">1954</span>                                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1954"></a>
+<span class="sourceLineNo">1955</span>                                                                data[it.index + i] = 0; // INT_USE<a name="line.1955"></a>
+<span class="sourceLineNo">1956</span>                                                        } else { // INT_USE<a name="line.1956"></a>
+<span class="sourceLineNo">1957</span>                                                        data[it.index + i] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1957"></a>
+<span class="sourceLineNo">1958</span>                                                        } // INT_USE<a name="line.1958"></a>
+<span class="sourceLineNo">1959</span>                                                }<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span>                                        }<a name="line.1960"></a>
+<span class="sourceLineNo">1961</span>                                }<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span>                        } else if (is == 1) {<a name="line.1962"></a>
+<span class="sourceLineNo">1963</span>                                while (it.hasNext()) {<a name="line.1963"></a>
+<span class="sourceLineNo">1964</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1964"></a>
+<span class="sourceLineNo">1965</span>                                                final double v = Math.pow(data[it.index + i], vr);<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.index + i] = 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.index + i] = (int) (long) 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>                                        }<a name="line.1971"></a>
+<span class="sourceLineNo">1972</span>                                }<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span>                        } else if (is == isize) {<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span>                                while (it.hasNext()) {<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span>                                                final double v = Math.pow(data[it.index + i], bds.getElementDoubleAbs(i));<a name="line.1976"></a>
+<span class="sourceLineNo">1977</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1977"></a>
+<span class="sourceLineNo">1978</span>                                                        data[it.index + i] = 0; // INT_USE<a name="line.1978"></a>
+<span class="sourceLineNo">1979</span>                                                } else { // INT_USE<a name="line.1979"></a>
+<span class="sourceLineNo">1980</span>                                                data[it.index + i] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1980"></a>
+<span class="sourceLineNo">1981</span>                                                } // INT_USE<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>                } else {<a name="line.1985"></a>
+<span class="sourceLineNo">1986</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1986"></a>
+<span class="sourceLineNo">1987</span>                        it.setOutputDouble(true);<a name="line.1987"></a>
+<span class="sourceLineNo">1988</span>                        if (bds.isComplex()) {<a name="line.1988"></a>
+<span class="sourceLineNo">1989</span>                                while (it.hasNext()) {<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.1990"></a>
+<span class="sourceLineNo">1991</span>                                        double v = new Complex(it.aDouble, 0).pow(zv).getReal();<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1993"></a>
+<span class="sourceLineNo">1994</span>                                        } else { // INT_USE<a name="line.1994"></a>
+<span class="sourceLineNo">1995</span>                                        data[it.aIndex] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1995"></a>
+<span class="sourceLineNo">1996</span>                                        } // INT_USE<a name="line.1996"></a>
+<span class="sourceLineNo">1997</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1997"></a>
+<span class="sourceLineNo">1998</span>                                                v = new Complex(data[it.aIndex + i], 0).pow(zv).getReal();<a name="line.1998"></a>
+<span class="sourceLineNo">1999</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1999"></a>
+<span class="sourceLineNo">2000</span>                                                        data[it.aIndex + i] = 0; // INT_USE<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span>                                                } else { // INT_USE<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span>                                                data[it.aIndex + i] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>                                                } // INT_USE<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>                                        }<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span>                                }<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>                        } else {<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>                                while (it.hasNext()) {<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span>                                        double v = Math.pow(it.aDouble, it.bDouble);<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span>                                        } else { // INT_USE<a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>                                        data[it.aIndex] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>                                        } // INT_USE<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>                                                v = Math.pow(data[it.aIndex + i], bds.getElementDoubleAbs(it.bIndex + i));<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span>                                                        data[it.aIndex + i] = 0; // INT_USE<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>                                                } else { // INT_USE<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span>                                                data[it.aIndex + i] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>                                                } // INT_USE<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>                                        }<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>                                }<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>                        }<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>                }<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span>                return this;<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>        @Override<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.2030"></a>
+<span class="sourceLineNo">2031</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.2031"></a>
+<span class="sourceLineNo">2032</span>                it.setOutputDouble(true);<a name="line.2032"></a>
+<span class="sourceLineNo">2033</span>                double sum = 0;<a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>                double comp = 0;<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>                final int bis = bds.getElementsPerItem();<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span><a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>                if (bis == 1) {<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>                        if (w == null) {<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span>                                while (it.hasNext()) {<a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>                                        final double db = it.bDouble;<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>                                        double diff = it.aDouble - db;<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>                                        double err = diff * diff - comp;<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>                                        double temp = sum + err;<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>                                        comp = (temp - sum) - err;<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span>                                        sum = temp;<a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>                                                err = diff * diff - comp;<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>                                                temp = sum + err;<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>                                                comp = (temp - sum) - err;<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span>                                                sum = temp;<a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>                                        }<a name="line.2052"></a>
+<span class="sourceLineNo">2053</span>                                }<a name="line.2053"></a>
+<span class="sourceLineNo">2054</span>                        } else {<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span>                                IndexIterator itw = w.getIterator();<a name="line.2055"></a>
+<span class="sourceLineNo">2056</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2056"></a>
+<span class="sourceLineNo">2057</span>                                        final double db = it.bDouble;<a name="line.2057"></a>
+<span class="sourceLineNo">2058</span>                                        double diff = it.aDouble - db;<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span>                                        double err = diff * diff * dw - comp;<a name="line.2060"></a>
+<span class="sourceLineNo">2061</span>                                        double 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>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>                                                err = diff * diff * dw - comp;<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>                                                temp = sum + err;<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>                                                comp = (temp - sum) - err;<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span>                                                sum = temp;<a name="line.2069"></a>
+<span class="sourceLineNo">2070</span>                                        }<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span>                                }<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span>                        }<a name="line.2072"></a>
+<span class="sourceLineNo">2073</span>                } else {<a name="line.2073"></a>
+<span class="sourceLineNo">2074</span>                        if (w == null) {<a name="line.2074"></a>
+<span class="sourceLineNo">2075</span>                                while (it.hasNext()) {<a name="line.2075"></a>
+<span class="sourceLineNo">2076</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2076"></a>
+<span class="sourceLineNo">2077</span>                                        double err = diff * diff - comp;<a name="line.2077"></a>
+<span class="sourceLineNo">2078</span>                                        double temp = sum + err;<a name="line.2078"></a>
+<span class="sourceLineNo">2079</span>                                        comp = (temp - sum) - err;<a name="line.2079"></a>
+<span class="sourceLineNo">2080</span>                                        sum = temp;<a name="line.2080"></a>
+<span class="sourceLineNo">2081</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2081"></a>
+<span class="sourceLineNo">2082</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2082"></a>
+<span class="sourceLineNo">2083</span>                                                err = diff * diff - comp;<a name="line.2083"></a>
+<span class="sourceLineNo">2084</span>                                                temp = sum + err;<a name="line.2084"></a>
+<span class="sourceLineNo">2085</span>                                                comp = (temp - sum) - err;<a name="line.2085"></a>
+<span class="sourceLineNo">2086</span>                                                sum = temp;<a name="line.2086"></a>
+<span class="sourceLineNo">2087</span>                                        }<a name="line.2087"></a>
+<span class="sourceLineNo">2088</span>                                }<a name="line.2088"></a>
+<span class="sourceLineNo">2089</span>                        } else {<a name="line.2089"></a>
+<span class="sourceLineNo">2090</span>                                IndexIterator itw = w.getIterator();<a name="line.2090"></a>
+<span class="sourceLineNo">2091</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2091"></a>
+<span class="sourceLineNo">2092</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2092"></a>
+<span class="sourceLineNo">2093</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2093"></a>
+<span class="sourceLineNo">2094</span>                                        double err = diff * diff * dw - comp;<a name="line.2094"></a>
+<span class="sourceLineNo">2095</span>                                        double temp = sum + err;<a name="line.2095"></a>
+<span class="sourceLineNo">2096</span>                                        comp = (temp - sum) - err;<a name="line.2096"></a>
+<span class="sourceLineNo">2097</span>                                        sum = temp;<a name="line.2097"></a>
+<span class="sourceLineNo">2098</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2098"></a>
+<span class="sourceLineNo">2099</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2099"></a>
+<span class="sourceLineNo">2100</span>                                                err = diff * diff * dw - comp;<a name="line.2100"></a>
+<span class="sourceLineNo">2101</span>                                                temp = sum + err;<a name="line.2101"></a>
+<span class="sourceLineNo">2102</span>                                                comp = (temp - sum) - err;<a name="line.2102"></a>
+<span class="sourceLineNo">2103</span>                                                sum = temp;<a name="line.2103"></a>
+<span class="sourceLineNo">2104</span>                                        }<a name="line.2104"></a>
+<span class="sourceLineNo">2105</span>                                }<a name="line.2105"></a>
+<span class="sourceLineNo">2106</span>                        }<a name="line.2106"></a>
+<span class="sourceLineNo">2107</span>                }<a name="line.2107"></a>
+<span class="sourceLineNo">2108</span>                return sum;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/CompoundLongDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/CompoundLongDataset.html
new file mode 100644
index 0000000..c24be8f
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/CompoundLongDataset.html
@@ -0,0 +1,2182 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// This is generated from CompoundDoubleDataset.java by fromcpddouble.py<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.Arrays;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.commons.math3.complex.Complex;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>/**<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * Extend compound dataset for long values // PRIM_TYPE<a name="line.22"></a>
+<span class="sourceLineNo">023</span> */<a name="line.23"></a>
+<span class="sourceLineNo">024</span>public class CompoundLongDataset extends AbstractCompoundDataset {<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        // pin UID to base class<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>        protected long[] data; // subclass alias // PRIM_TYPE<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>        @Override<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        protected void setData() {<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                data = (long[]) odata; // PRIM_TYPE<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        }<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>        protected long[] createArray(final int size) { // PRIM_TYPE<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                long[] array = null; // PRIM_TYPE<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>                try {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                        array = new long[isize * size]; // PRIM_TYPE<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                } catch (OutOfMemoryError e) {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                }<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                return array;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        }<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>        @Override<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public int getDType() {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                return Dataset.ARRAYINT64; // DATA_TYPE<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        }<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        /**<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         * Create a null dataset<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        CompoundLongDataset() {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * Create a null dataset<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * @param itemSize<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         */<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        CompoundLongDataset(final int itemSize) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                isize = itemSize;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>        /**<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         * Create a zero-filled dataset of given item size and shape<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         * @param itemSize<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         * @param shape<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         */<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        CompoundLongDataset(final int itemSize, final int[] shape) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                isize = itemSize;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                if (shape != null) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        size = ShapeUtils.calcSize(shape);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        this.shape = shape.clone();<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        try {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                odata = data = createArray(size);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        } catch (Throwable t) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                                throw new IllegalArgumentException(t);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                        }<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        }<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>        /**<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         * Copy a dataset<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         * @param dataset<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>        CompoundLongDataset(final CompoundLongDataset dataset) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                isize = dataset.isize;<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                copyToView(dataset, this, true, true);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                try {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        if (dataset.stride == null) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                                if (dataset.data != null) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                        odata = data = dataset.data.clone();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                        } else {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                offset = 0;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                stride = null;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                base = null;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                                odata = data = createArray(size);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                IndexIterator iter = dataset.getIterator();<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                                for (int j = 0; iter.hasNext();) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                                                data[j++] = dataset.data[iter.index + i];<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                                        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                                }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        }<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                } catch (Throwable t) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        throw new IllegalArgumentException(t);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                }<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>        /**<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         * Create a dataset using given dataset<a name="line.120"></a>
+<span class="sourceLineNo">121</span>         * @param dataset<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         */<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        CompoundLongDataset(final CompoundDataset dataset) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                copyToView(dataset, this, true, false);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                offset = 0;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                stride = null;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                base = null;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                isize = dataset.getElementsPerItem();<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                try {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        odata = data = createArray(size);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                } catch (Throwable t) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                        throw new IllegalArgumentException(t);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>                IndexIterator iter = dataset.getIterator();<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                for (int j = 0; iter.hasNext();) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                                data[j++] = dataset.getElementLongAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        }<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        }<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>        /**<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * Create a dataset using given data (elements are grouped together)<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         * @param itemSize<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         * @param data<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         * @param shape<a name="line.148"></a>
+<span class="sourceLineNo">149</span>         *            (can be null to create 1D dataset)<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         */<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        CompoundLongDataset(final int itemSize, final long[] data, int... shape) { // PRIM_TYPE<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                isize = itemSize;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                if (data != null) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        if (shape == null || (shape.length == 0 &amp;&amp; data.length &gt; isize)) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                                shape = new int[] { data.length / isize };<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        }<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        size = ShapeUtils.calcSize(shape);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                        if (size * isize != data.length) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                                throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                                                Arrays.toString(shape), data.length / isize));<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        this.shape = size == 0 ? null : shape.clone();<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        odata = this.data = data;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                }<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        }<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>        /**<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         * Create a dataset using given datasets<a name="line.169"></a>
+<span class="sourceLineNo">170</span>         * @param datasets<a name="line.170"></a>
+<span class="sourceLineNo">171</span>         */<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        CompoundLongDataset(final Dataset... datasets) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                if (datasets.length &lt; 1) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                        throw new IllegalArgumentException("Array of datasets must have length greater than zero");<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                }<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>                for (int i = 1; i &lt; datasets.length; i++) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        datasets[0].checkCompatibility(datasets[i]);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>                isize = datasets.length;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                size = ShapeUtils.calcSize(datasets[0].getShapeRef());<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                shape = datasets[0].getShape();<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>                try {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        odata = data = createArray(size);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                } catch (Throwable t) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                        throw new IllegalArgumentException(t);<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>                IndexIterator[] iters = new IndexIterator[isize];<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                for (int i = 0; i &lt; datasets.length; i++) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                        iters[i] = datasets[i].getIterator();<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                }<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>                for (int j = 0; iters[0].hasNext();) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        data[j++] = datasets[0].getElementLongAbs(iters[0].index); // GET_ELEMENT_WITH_CAST<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        for (int i = 1; i &lt; datasets.length; i++) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                                iters[i].hasNext();<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                                data[j++] = datasets[i].getElementLongAbs(iters[i].index); // GET_ELEMENT_WITH_CAST<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        }<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                }<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>        /**<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * Cast a dataset to this compound type. If repeat is set, the first element of each item in the given dataset is<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * repeated across all elements of an item. Otherwise, each item comprises a truncated or zero-padded copy of<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * elements from the given dataset.<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         * @param itemSize<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         * @param repeat<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         *            repeat first element<a name="line.212"></a>
+<span class="sourceLineNo">213</span>         * @param dataset<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         */<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        CompoundLongDataset(final int itemSize, final boolean repeat, final Dataset dataset) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                isize = itemSize;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                size = dataset.getSize();<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                shape = dataset.getShape();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                name = new String(dataset.getName());<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>                try {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        odata = data = createArray(size);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                } catch (Throwable t) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                        throw new IllegalArgumentException(t);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                }<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                final int os = dataset.getElementsPerItem();<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>                IndexIterator iter = dataset.getIterator();<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                if (repeat) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                        int i = 0;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                        while (iter.hasNext()) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                final long v = dataset.getElementLongAbs(iter.index); // PRIM_TYPE // GET_ELEMENT_WITH_CAST<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                                        data[i++] = v;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                        }<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                } else {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                        final int kmax = Math.min(isize, os);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        int i = 0;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                        while (iter.hasNext()) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                                for (int k = 0; k &lt; kmax; k++) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                        data[i + k] = dataset.getElementLongAbs(iter.index + k); // GET_ELEMENT_WITH_CAST<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                                }<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                                i += isize;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        }<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                }<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>        @Override<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        public boolean equals(Object obj) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                if (this == obj) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        return true;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                }<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>                if (obj == null) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                        return false;<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>                if (!getClass().equals(obj.getClass())) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                        if (getRank() == 0) { // for zero-rank datasets<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                return obj.equals(getObjectAbs(offset));<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                        return false;<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>                CompoundLongDataset other = (CompoundLongDataset) obj;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                if (isize != other.isize) {<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>                if (size != other.size) {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                        return false;<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                }<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                if (!Arrays.equals(shape, other.shape)) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                        return false;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                if (data == other.data &amp;&amp; stride == null &amp;&amp; other.stride == null) {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                        return true;<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>                IndexIterator iter = getIterator();<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                IndexIterator oiter = other.getIterator();<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                                if (data[iter.index+j] != other.data[oiter.index+j]) {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                                        return false;<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>                return true;<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>        @Override<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        public int hashCode() {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                return super.hashCode();<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>        @Override<a name="line.298"></a>
+<span class="sourceLineNo">299</span>        public CompoundLongDataset clone() {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                return new CompoundLongDataset(this);<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>        /**<a name="line.303"></a>
+<span class="sourceLineNo">304</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.304"></a>
+<span class="sourceLineNo">305</span>         * sequences or arrays are padded with zeros. The item size is the last dimension of the corresponding<a name="line.305"></a>
+<span class="sourceLineNo">306</span>         * elemental dataset<a name="line.306"></a>
+<span class="sourceLineNo">307</span>         *<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         * @param obj<a name="line.308"></a>
+<span class="sourceLineNo">309</span>         * @return dataset with contents given by input<a name="line.309"></a>
+<span class="sourceLineNo">310</span>         */<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        static CompoundLongDataset createFromObject(final Object obj) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                LongDataset result = LongDataset.createFromObject(obj); // CLASS_TYPE<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                return createCompoundDatasetWithLastDimension(result, true);<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>         * Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * sequences or arrays are padded with zeros.<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         *<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         * @param itemSize<a name="line.320"></a>
+<span class="sourceLineNo">321</span>         * @param obj<a name="line.321"></a>
+<span class="sourceLineNo">322</span>         * @return dataset with contents given by input<a name="line.322"></a>
+<span class="sourceLineNo">323</span>         */<a name="line.323"></a>
+<span class="sourceLineNo">324</span>        public static CompoundLongDataset createFromObject(final int itemSize, final Object obj) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                LongDataset result = LongDataset.createFromObject(obj); // CLASS_TYPE<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                boolean zeroRank = result.shape == null ? false : result.shape.length == 0;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                if (zeroRank) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                        result.resize(itemSize); // special case of single item<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        result.fill(obj);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                CompoundLongDataset ds = new CompoundLongDataset(itemSize, result.getData(), null);<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                if (zeroRank) {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        ds.setShape(new int[0]);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                return ds;<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>         * @param stop<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         */<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        static CompoundLongDataset createRange(final int itemSize, final double stop) {<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                return createRange(itemSize, 0., stop, 1.);<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>         * @param start<a name="line.347"></a>
+<span class="sourceLineNo">348</span>         * @param stop<a name="line.348"></a>
+<span class="sourceLineNo">349</span>         * @param step<a name="line.349"></a>
+<span class="sourceLineNo">350</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.350"></a>
+<span class="sourceLineNo">351</span>         */<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        static CompoundLongDataset createRange(final int itemSize, final double start, final double stop,<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                        final double step) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                int size = calcSteps(start, stop, step);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                CompoundLongDataset result = new CompoundLongDataset(itemSize, new int[] { size });<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                for (int i = 0; i &lt; size; i++) {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                        result.data[i * result.isize] = (long) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                return result;<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>        /**<a name="line.362"></a>
+<span class="sourceLineNo">363</span>         * @param shape<a name="line.363"></a>
+<span class="sourceLineNo">364</span>         * @return a dataset filled with ones<a name="line.364"></a>
+<span class="sourceLineNo">365</span>         */<a name="line.365"></a>
+<span class="sourceLineNo">366</span>        static CompoundLongDataset ones(final int itemSize, final int... shape) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                return new CompoundLongDataset(itemSize, shape).fill(1);<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>         * Create a compound dataset using last dimension of given dataset<a name="line.371"></a>
+<span class="sourceLineNo">372</span>         * @param a<a name="line.372"></a>
+<span class="sourceLineNo">373</span>         * @param shareData if true, then share data when possible otherwise copy it<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * @return compound dataset<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         */<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        public static CompoundLongDataset createCompoundDatasetWithLastDimension(final Dataset a, final boolean shareData) {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                if (a.getElementsPerItem() != 1) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                        logger.error("Need a single-element dataset");<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                        throw new IllegalArgumentException("Need a single-element dataset");<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                }<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                if (a.getDType() != Dataset.INT64) { // DATA_TYPE<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                        logger.error("Dataset type must be long"); // PRIM_TYPE<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                        throw new IllegalArgumentException("Dataset type must be long"); // PRIM_TYPE<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                }<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span>                final int[] shape = a.getShapeRef();<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                if (shape == null) {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                        return new CompoundLongDataset(0);<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>                final int rank = shape.length - 1;<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                final int is = rank &lt; 0 ? 1 : shape[rank];<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>                CompoundLongDataset result = new CompoundLongDataset(is);<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                result.shape = rank &gt; 0 ? Arrays.copyOf(shape, rank) : (rank &lt; 0 ? new int[0] : new int[] {1});<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                result.size = ShapeUtils.calcSize(result.shape);<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                result.odata = shareData ? a.flatten().getBuffer() : a.clone().getBuffer();<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                result.setName(a.getName());<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                result.setData();<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                return result;<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 LongDataset asNonCompoundDataset(final boolean shareData) { // CLASS_TYPE<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                LongDataset result = new LongDataset(); // CLASS_TYPE<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                final int is = getElementsPerItem();<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                final int rank = is == 1 ? shape.length : shape.length + 1;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                final int[] nshape = Arrays.copyOf(shape, rank);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                if (is != 1)<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                        nshape[rank-1] = is;<a name="line.411"></a>
+<span class="sourceLineNo">412</span><a name="line.412"></a>
+<span class="sourceLineNo">413</span>                result.shape = nshape;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                result.size = ShapeUtils.calcSize(nshape);<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                result.odata = shareData &amp;&amp; isContiguous() ? data : clone().getBuffer();<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                result.setName(name);<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                result.setData();<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                return result;<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 CompoundLongDataset fill(Object obj) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                setDirty();<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                if (obj instanceof Complex) {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                        obj = new Complex(((Complex) obj).getReal(), 0);<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                }<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                long[] vr = DTypeUtils.toLongArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                IndexIterator iter = getIterator();<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span>                while (iter.hasNext()) {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                                data[iter.index + i] = vr[i]; // PRIM_TYPE<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                        }<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                }<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span>                return this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.440"></a>
+<span class="sourceLineNo">441</span>         * @return data buffer as linear array<a name="line.441"></a>
+<span class="sourceLineNo">442</span>         */<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        public long[] getData() { // PRIM_TYPE<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                return data;<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>        @Override<a name="line.447"></a>
+<span class="sourceLineNo">448</span>        protected int getBufferLength() {<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                if (data == null)<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                        return 0;<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                return data.length;<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 CompoundLongDataset getView(boolean deepCopyMetadata) {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                CompoundLongDataset view = new CompoundLongDataset(isize);<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                view.setData();<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                return view;<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>        /**<a name="line.462"></a>
+<span class="sourceLineNo">463</span>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.463"></a>
+<span class="sourceLineNo">464</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.464"></a>
+<span class="sourceLineNo">465</span>         *<a name="line.465"></a>
+<span class="sourceLineNo">466</span>         * @param index<a name="line.466"></a>
+<span class="sourceLineNo">467</span>         *            absolute index<a name="line.467"></a>
+<span class="sourceLineNo">468</span>         * @return values<a name="line.468"></a>
+<span class="sourceLineNo">469</span>         */<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        public long[] getAbs(final int index) { // PRIM_TYPE<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                long[] result = new long[isize]; // PRIM_TYPE<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                        result[i] = data[index + i];<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                }<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                return result;<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>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.479"></a>
+<span class="sourceLineNo">480</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.480"></a>
+<span class="sourceLineNo">481</span>         *<a name="line.481"></a>
+<span class="sourceLineNo">482</span>         * @param index<a name="line.482"></a>
+<span class="sourceLineNo">483</span>         *            absolute index<a name="line.483"></a>
+<span class="sourceLineNo">484</span>         * @param values<a name="line.484"></a>
+<span class="sourceLineNo">485</span>         */<a name="line.485"></a>
+<span class="sourceLineNo">486</span>        public void getAbs(final int index, final long[] values) { // PRIM_TYPE<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                        values[i] = data[index + i];<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                }<a name="line.489"></a>
+<span class="sourceLineNo">490</span>        }<a name="line.490"></a>
+<span class="sourceLineNo">491</span><a name="line.491"></a>
+<span class="sourceLineNo">492</span>        @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                return data[index] != 0;<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>        @Override<a name="line.497"></a>
+<span class="sourceLineNo">498</span>        public double getElementDoubleAbs(final int index) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                return data[index];<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 long getElementLongAbs(final int index) {<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                return data[index]; // OMIT_TOLONG_INT<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>        @Override<a name="line.507"></a>
+<span class="sourceLineNo">508</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                setDirty();<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                long[] dsrc = (long[]) src; // PRIM_TYPE<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                        data[dindex + i] = dsrc[sindex + i];<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>        /**<a name="line.516"></a>
+<span class="sourceLineNo">517</span>         * Set values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.517"></a>
+<span class="sourceLineNo">518</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.518"></a>
+<span class="sourceLineNo">519</span>         *<a name="line.519"></a>
+<span class="sourceLineNo">520</span>         * @param index<a name="line.520"></a>
+<span class="sourceLineNo">521</span>         *            absolute index<a name="line.521"></a>
+<span class="sourceLineNo">522</span>         * @param val<a name="line.522"></a>
+<span class="sourceLineNo">523</span>         *            new values<a name="line.523"></a>
+<span class="sourceLineNo">524</span>         */<a name="line.524"></a>
+<span class="sourceLineNo">525</span>        public void setAbs(final int index, final long[] val) { // PRIM_TYPE<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                setDirty();<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                        data[index + i] = val[i];<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>        /**<a name="line.532"></a>
+<span class="sourceLineNo">533</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.533"></a>
+<span class="sourceLineNo">534</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.534"></a>
+<span class="sourceLineNo">535</span>         *<a name="line.535"></a>
+<span class="sourceLineNo">536</span>         * @param index<a name="line.536"></a>
+<span class="sourceLineNo">537</span>         *            absolute index<a name="line.537"></a>
+<span class="sourceLineNo">538</span>         * @param val<a name="line.538"></a>
+<span class="sourceLineNo">539</span>         *            new value<a name="line.539"></a>
+<span class="sourceLineNo">540</span>         */<a name="line.540"></a>
+<span class="sourceLineNo">541</span>        public void setAbs(final int index, final long val) { // PRIM_TYPE<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                setDirty();<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                data[index] = val;<a name="line.543"></a>
+<span class="sourceLineNo">544</span>        }<a name="line.544"></a>
+<span class="sourceLineNo">545</span><a name="line.545"></a>
+<span class="sourceLineNo">546</span>        @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        public Object getObject() {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                return getLongArray(); // PRIM_TYPE<a name="line.548"></a>
+<span class="sourceLineNo">549</span>        }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>        @Override<a name="line.551"></a>
+<span class="sourceLineNo">552</span>        public Object getObject(final int i) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                return getLongArray(i); // PRIM_TYPE<a name="line.553"></a>
+<span class="sourceLineNo">554</span>        }<a name="line.554"></a>
+<span class="sourceLineNo">555</span><a name="line.555"></a>
+<span class="sourceLineNo">556</span>        @Override<a name="line.556"></a>
+<span class="sourceLineNo">557</span>        public Object getObject(final int i, final int j) {<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                return getLongArray(i, j); // PRIM_TYPE<a name="line.558"></a>
+<span class="sourceLineNo">559</span>        }<a name="line.559"></a>
+<span class="sourceLineNo">560</span><a name="line.560"></a>
+<span class="sourceLineNo">561</span>        @Override<a name="line.561"></a>
+<span class="sourceLineNo">562</span>        public Object getObject(final int... pos) {<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                return getLongArray(pos); // PRIM_TYPE<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>        @Override<a name="line.566"></a>
+<span class="sourceLineNo">567</span>        public byte[] getByteArray() {<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                byte[] result = new byte[isize];<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                int index = getFirst1DIndex();<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                }<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                return result;<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>        @Override<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        public byte[] getByteArray(final int i) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                byte[] result = new byte[isize];<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                int index = get1DIndex(i);<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                }<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                return result;<a name="line.583"></a>
+<span class="sourceLineNo">584</span>        }<a name="line.584"></a>
+<span class="sourceLineNo">585</span><a name="line.585"></a>
+<span class="sourceLineNo">586</span>        @Override<a name="line.586"></a>
+<span class="sourceLineNo">587</span>        public byte[] getByteArray(final int i, final int j) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                byte[] result = new byte[isize];<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                int index = get1DIndex(i, j);<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                }<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                return result;<a name="line.593"></a>
+<span class="sourceLineNo">594</span>        }<a name="line.594"></a>
+<span class="sourceLineNo">595</span><a name="line.595"></a>
+<span class="sourceLineNo">596</span>        @Override<a name="line.596"></a>
+<span class="sourceLineNo">597</span>        public byte[] getByteArray(final int... pos) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                byte[] result = new byte[isize];<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                int index = get1DIndex(pos);<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                }<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                return result;<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>        @Override<a name="line.606"></a>
+<span class="sourceLineNo">607</span>        public short[] getShortArray() {<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                short[] result = new short[isize];<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                int index = getFirst1DIndex();<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                }<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                return result;<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>        @Override<a name="line.616"></a>
+<span class="sourceLineNo">617</span>        public short[] getShortArray(final int i) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                short[] result = new short[isize];<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                int index = get1DIndex(i);<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                }<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                return result;<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>        @Override<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        public short[] getShortArray(final int i, final int j) {<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                short[] result = new short[isize];<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                int index = get1DIndex(i, j);<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                }<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                return result;<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>        @Override<a name="line.636"></a>
+<span class="sourceLineNo">637</span>        public short[] getShortArray(final int... pos) {<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                short[] result = new short[isize];<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                int index = get1DIndex(pos);<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                }<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                return result;<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>        @Override<a name="line.646"></a>
+<span class="sourceLineNo">647</span>        public int[] getIntArray() {<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                int[] result = new int[isize];<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                int index = getFirst1DIndex();<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>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                }<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                return result;<a name="line.653"></a>
+<span class="sourceLineNo">654</span>        }<a name="line.654"></a>
+<span class="sourceLineNo">655</span><a name="line.655"></a>
+<span class="sourceLineNo">656</span>        @Override<a name="line.656"></a>
+<span class="sourceLineNo">657</span>        public int[] getIntArray(final int i) {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                int[] result = new int[isize];<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                int index = get1DIndex(i);<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                }<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                return result;<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 int[] getIntArray(final int i, final int j) {<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                int[] result = new int[isize];<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                int index = get1DIndex(i, j);<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                }<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                return result;<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>        @Override<a name="line.676"></a>
+<span class="sourceLineNo">677</span>        public int[] getIntArray(final int... pos) {<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                int[] result = new int[isize];<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                int index = get1DIndex(pos);<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                }<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                return result;<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>        @Override<a name="line.686"></a>
+<span class="sourceLineNo">687</span>        public long[] getLongArray() {<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                long[] result = new long[isize];<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                int index = getFirst1DIndex();<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                }<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                return result;<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 long[] getLongArray(final int i) {<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                long[] result = new long[isize];<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                int index = get1DIndex(i);<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                }<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                return result;<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 long[] getLongArray(final int i, final int j) {<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                long[] result = new long[isize];<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                int index = get1DIndex(i, j);<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                }<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                return result;<a name="line.713"></a>
+<span class="sourceLineNo">714</span>        }<a name="line.714"></a>
+<span class="sourceLineNo">715</span><a name="line.715"></a>
+<span class="sourceLineNo">716</span>        @Override<a name="line.716"></a>
+<span class="sourceLineNo">717</span>        public long[] getLongArray(final int... pos) {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                long[] result = new long[isize];<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                int index = get1DIndex(pos);<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                }<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                return result;<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>        @Override<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        public float[] getFloatArray() {<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                float[] result = new float[isize];<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                int index = getFirst1DIndex();<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                }<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                return result;<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>        @Override<a name="line.736"></a>
+<span class="sourceLineNo">737</span>        public float[] getFloatArray(final int i) {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                float[] result = new float[isize];<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                int index = get1DIndex(i);<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                }<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                return result;<a name="line.743"></a>
+<span class="sourceLineNo">744</span>        }<a name="line.744"></a>
+<span class="sourceLineNo">745</span><a name="line.745"></a>
+<span class="sourceLineNo">746</span>        @Override<a name="line.746"></a>
+<span class="sourceLineNo">747</span>        public float[] getFloatArray(final int i, final int j) {<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                float[] result = new float[isize];<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                int index = get1DIndex(i, j);<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<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>        @Override<a name="line.756"></a>
+<span class="sourceLineNo">757</span>        public float[] getFloatArray(final int... pos) {<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                float[] result = new float[isize];<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                int index = get1DIndex(pos);<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                }<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                return result;<a name="line.763"></a>
+<span class="sourceLineNo">764</span>        }<a name="line.764"></a>
+<span class="sourceLineNo">765</span><a name="line.765"></a>
+<span class="sourceLineNo">766</span>        @Override<a name="line.766"></a>
+<span class="sourceLineNo">767</span>        public double[] getDoubleArray() {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                double[] result = new double[isize];<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                int index = getFirst1DIndex();<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                }<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                return result;<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>        @Override<a name="line.776"></a>
+<span class="sourceLineNo">777</span>        public double[] getDoubleArray(final int i) {<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                double[] result = new double[isize];<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                int index = get1DIndex(i);<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                }<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                return result;<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>        @Override<a name="line.786"></a>
+<span class="sourceLineNo">787</span>        public double[] getDoubleArray(final int i, final int j) {<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                double[] result = new double[isize];<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                int index = get1DIndex(i, j);<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                }<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                return result;<a name="line.793"></a>
+<span class="sourceLineNo">794</span>        }<a name="line.794"></a>
+<span class="sourceLineNo">795</span><a name="line.795"></a>
+<span class="sourceLineNo">796</span>        @Override<a name="line.796"></a>
+<span class="sourceLineNo">797</span>        public double[] getDoubleArray(final int... pos) {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                double[] result = new double[isize];<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                int index = get1DIndex(pos);<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return result;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        @Override<a name="line.806"></a>
+<span class="sourceLineNo">807</span>        public void getDoubleArrayAbs(final int index, final double[] darray) {<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                        darray[i] = data[index + 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><a name="line.812"></a>
+<span class="sourceLineNo">813</span>        @Override<a name="line.813"></a>
+<span class="sourceLineNo">814</span>        public String getString() {<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                return getStringAbs(getFirst1DIndex());<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>        @Override<a name="line.818"></a>
+<span class="sourceLineNo">819</span>        public String getString(final int i) {<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                return getStringAbs(get1DIndex(i));<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 String getString(final int i, final int j) {<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                return getStringAbs(get1DIndex(i, j));<a name="line.825"></a>
+<span class="sourceLineNo">826</span>        }<a name="line.826"></a>
+<span class="sourceLineNo">827</span><a name="line.827"></a>
+<span class="sourceLineNo">828</span>        @Override<a name="line.828"></a>
+<span class="sourceLineNo">829</span>        public String getString(final int... pos) {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                return getStringAbs(get1DIndex(pos));<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>        protected double getFirstValue() {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                return data[getFirst1DIndex()];<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>        protected double getFirstValue(int i) {<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                return data[get1DIndex(i)];<a name="line.840"></a>
+<span class="sourceLineNo">841</span>        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span><a name="line.842"></a>
+<span class="sourceLineNo">843</span>        @Override<a name="line.843"></a>
+<span class="sourceLineNo">844</span>        protected double getFirstValue(int i, int j) {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                return data[get1DIndex(i, j)];<a name="line.845"></a>
+<span class="sourceLineNo">846</span>        }<a name="line.846"></a>
+<span class="sourceLineNo">847</span><a name="line.847"></a>
+<span class="sourceLineNo">848</span>        @Override<a name="line.848"></a>
+<span class="sourceLineNo">849</span>        protected double getFirstValue(final int... pos) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                return data[get1DIndex(pos)];<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>        @Override<a name="line.853"></a>
+<span class="sourceLineNo">854</span>        public Object getObjectAbs(final int index) {<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                long[] result = new long[isize]; // PRIM_TYPE<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        result[i] = data[index + i];<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                }<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                return result;<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 String getStringAbs(final int index) {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                StringBuilder s = new StringBuilder();<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                s.append('(');<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                s.append(stringFormat == null ? String.format("%d", data[index]) : // FORMAT_STRING<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                        stringFormat.format(data[index]));<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                for (int i = 1; i &lt; isize; i++) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                        s.append(' ');<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                        s.append(stringFormat == null ? String.format("%d", data[index + i]) : // FORMAT_STRING<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                                stringFormat.format(data[index + i]));<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                }<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                s.append(')');<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                return s.toString();<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>        @Override<a name="line.877"></a>
+<span class="sourceLineNo">878</span>        public void setObjectAbs(final int index, Object obj) {<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                if (obj instanceof Complex) {<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                        obj = new Complex(((Complex) obj).getReal(), 0);<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                }<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                long[] oa = DTypeUtils.toLongArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                setAbs(index, oa);<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>        @Override<a name="line.886"></a>
+<span class="sourceLineNo">887</span>        public void set(final Object obj) {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                setItem(DTypeUtils.toLongArray(obj, isize)); // CLASS_TYPE<a name="line.888"></a>
+<span class="sourceLineNo">889</span>        }<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>        @Override<a name="line.891"></a>
+<span class="sourceLineNo">892</span>        public void set(final Object obj, final int i) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                setItem(DTypeUtils.toLongArray(obj, isize), i); // CLASS_TYPE<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 void set(final Object obj, final int i, final int j) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                setItem(DTypeUtils.toLongArray(obj, isize), i, j); // CLASS_TYPE<a name="line.898"></a>
+<span class="sourceLineNo">899</span>        }<a name="line.899"></a>
+<span class="sourceLineNo">900</span><a name="line.900"></a>
+<span class="sourceLineNo">901</span>        @Override<a name="line.901"></a>
+<span class="sourceLineNo">902</span>        public void set(final Object obj, int... pos) {<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        pos = new int[shape.length];<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>                setItem(DTypeUtils.toLongArray(obj, isize), pos); // CLASS_TYPE<a name="line.907"></a>
+<span class="sourceLineNo">908</span>        }<a name="line.908"></a>
+<span class="sourceLineNo">909</span><a name="line.909"></a>
+<span class="sourceLineNo">910</span>        /**<a name="line.910"></a>
+<span class="sourceLineNo">911</span>         * Set values at first position. The dataset must not be null<a name="line.911"></a>
+<span class="sourceLineNo">912</span>         *<a name="line.912"></a>
+<span class="sourceLineNo">913</span>         * @param d<a name="line.913"></a>
+<span class="sourceLineNo">914</span>         * @since 2.0<a name="line.914"></a>
+<span class="sourceLineNo">915</span>         */<a name="line.915"></a>
+<span class="sourceLineNo">916</span>        public void setItem(final long[] d) { // PRIM_TYPE<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                if (d.length &gt; isize) {<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                }<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                setAbs(getFirst1DIndex(), d);<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>        /**<a name="line.923"></a>
+<span class="sourceLineNo">924</span>         * Set values at given position. The dataset must be 1D<a name="line.924"></a>
+<span class="sourceLineNo">925</span>         *<a name="line.925"></a>
+<span class="sourceLineNo">926</span>         * @param d<a name="line.926"></a>
+<span class="sourceLineNo">927</span>         * @param i<a name="line.927"></a>
+<span class="sourceLineNo">928</span>         */<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        public void setItem(final long[] d, final int i) { // PRIM_TYPE<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                if (d.length &gt; isize) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                }<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                setAbs(get1DIndex(i), d);<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>         * Set values at given position. The dataset must be 1D<a name="line.937"></a>
+<span class="sourceLineNo">938</span>         *<a name="line.938"></a>
+<span class="sourceLineNo">939</span>         * @param d<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>         */<a name="line.942"></a>
+<span class="sourceLineNo">943</span>        public void setItem(final long[] d, final int i, final int j) { // PRIM_TYPE<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                if (d.length &gt; isize) {<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                }<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                setAbs(get1DIndex(i, j), d);<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>         * Set values at given position<a name="line.951"></a>
+<span class="sourceLineNo">952</span>         *<a name="line.952"></a>
+<span class="sourceLineNo">953</span>         * @param d<a name="line.953"></a>
+<span class="sourceLineNo">954</span>         * @param pos<a name="line.954"></a>
+<span class="sourceLineNo">955</span>         */<a name="line.955"></a>
+<span class="sourceLineNo">956</span>        public void setItem(final long[] d, final int... pos) { // PRIM_TYPE<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                if (d.length &gt; isize) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                }<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                setAbs(get1DIndex(pos), d);<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>        private void setDoubleArrayAbs(final int index, final double[] d) {<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                for (int i = 0; i &lt; isize; i++)<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                        data[index + i] = (long) d[i]; // ADD_CAST<a name="line.965"></a>
+<span class="sourceLineNo">966</span>        }<a name="line.966"></a>
+<span class="sourceLineNo">967</span><a name="line.967"></a>
+<span class="sourceLineNo">968</span>        @Override<a name="line.968"></a>
+<span class="sourceLineNo">969</span>        public void resize(int... newShape) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                setDirty();<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                IndexIterator iter = getIterator();<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                int nsize = ShapeUtils.calcSize(newShape);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                long[] ndata; // PRIM_TYPE<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                try {<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                        ndata = createArray(nsize);<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                } catch (Throwable t) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                        throw new IllegalArgumentException(t);<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>                int i = 0;<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                while (iter.hasNext() &amp;&amp; i &lt; nsize) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                ndata[i++] = data[iter.index + j];<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>                odata = data = ndata;<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                size = nsize;<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                shape = newShape;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                stride = null;<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                offset = 0;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                base = null;<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>        @Override<a name="line.996"></a>
+<span class="sourceLineNo">997</span>        public CompoundLongDataset getSlice(final SliceIterator siter) {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                CompoundLongDataset result = new CompoundLongDataset(isize, siter.getShape());<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                long[] rdata = result.data; // PRIM_TYPE<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                IndexIterator riter = result.getIterator();<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span><a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                while (siter.hasNext() &amp;&amp; riter.hasNext()) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                        for (int i = 0; i &lt; isize; i++)<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                rdata[riter.index + i] = data[siter.index + i];<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>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                return result;<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>        @Override<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>        public LongDataset getElementsView(int element) { // CLASS_TYPE<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                if (element &lt; 0)<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        element += isize;<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<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>                LongDataset view = new LongDataset(shape); // CLASS_TYPE<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span><a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                copyToView(this, view, true, true);<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                view.setData();<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                if (view.stride == null) {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                        int[] offset = new int[1];<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                        view.stride = createStrides(this, offset);<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                        view.offset = offset[0] + element;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                        view.base = base == null ? this : base;<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                } else {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                        view.offset += element;<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>                return view;<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>        }<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span><a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>        @Override<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>        public LongDataset getElements(int element) { // CLASS_TYPE<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                final LongDataset elements = new LongDataset(shape); // CLASS_TYPE<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span><a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                copyElements(elements, element);<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                return elements;<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>        @Override<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>        public void copyElements(Dataset destination, int element) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                if (element &lt; 0)<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        element += isize;<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                if (getElementClass() != destination.getElementClass()) {<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<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>                final IndexIterator it = getIterator(element);<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                final long[] elements = ((LongDataset) destination).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                destination.setDirty();<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span><a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                int n = 0;<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                while (it.hasNext()) {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                        elements[n] = data[it.index];<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        n++;<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>        }<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span><a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>        @Override<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>        public void setElements(Dataset source, int element) {<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                setDirty();<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                if (element &lt; 0)<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                        element += isize;<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                }<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                if (getElementClass() != source.getElementClass()) {<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        throw new IllegalArgumentException("Element class of destination does not match this 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>                final IndexIterator it = getIterator(element);<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                final long[] elements = ((LongDataset) source).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span><a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                int n = 0;<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                while (it.hasNext()) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                        data[it.index] = elements[n];<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                        n++;<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>        @Override<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                IndexIterator riter = result.getIterator();<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                result.setDirty();<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span><a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                long[] rdata = ((CompoundLongDataset) result).data; // PRIM_TYPE<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span><a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                rdata[riter.index + i] = data[iter.index + i];<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>        @Override<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>        public CompoundLongDataset setByBoolean(final Object o, Dataset selection) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                setDirty();<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                if (o instanceof Dataset) {<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                        Dataset ds = (Dataset) o;<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        if (length != ds.getSize()) {<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                                throw new IllegalArgumentException(<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        IndexIterator iter = ds.getIterator();<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                        BooleanIterator biter = getBooleanIterator(selection);<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span><a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                }<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span><a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                data[biter.index + i] = ds.getElementLongAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<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>                        } else {<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                        data[biter.index] = ds.getElementLongAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                                data[biter.index + i] = 0;<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>                        try {<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                final long[] vr = DTypeUtils.toLongArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span><a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                final BooleanIterator biter = getBooleanIterator(selection);<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span><a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                while (biter.hasNext()) {<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                                data[biter.index + i] = vr[i];<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>                        } catch (IllegalArgumentException e) {<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>        }<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span><a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>        @Override<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        public CompoundLongDataset setBy1DIndex(final Object o, Dataset index) {<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                setDirty();<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                if (o instanceof Dataset) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                        Dataset ds = (Dataset) o;<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                        if (index.getSize() != ds.getSize()) {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                throw new IllegalArgumentException(<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                                "Number of items in selection does not match number of items in dataset");<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span><a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                        IndexIterator oiter = ds.getIterator();<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span><a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                double[] temp = new double[isize];<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                        ((AbstractCompoundDataset) ds).getDoubleArrayAbs(oiter.index, temp);<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                        setDoubleArrayAbs(iter.index, temp);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                }<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                                                data[iter.index + i] = ds.getElementLongAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<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>                        } else {<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>                                        data[iter.index] = ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                                                data[iter.index + i] = 0;<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>                } else {<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                        try {<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                                final long[] vr = DTypeUtils.toLongArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span><a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                                final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                while (iter.hasNext()) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                                        setAbs(iter.index, vr);<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                }<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                        } catch (IllegalArgumentException e) {<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<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>        @Override<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>        public CompoundLongDataset setByIndexes(final Object o, final Object... indexes) {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                setDirty();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                final int[] pos = iter.getPos();<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span><a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                if (o instanceof Dataset) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                        Dataset ds = (Dataset) o;<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                                throw new IllegalArgumentException(<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                                                "Number of items in selection does not match number of items in dataset");<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                        }<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span><a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                        IndexIterator oiter = ds.getIterator();<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span><a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                }<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span><a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                double[] temp = new double[isize];<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        ((AbstractCompoundDataset) ds).getDoubleArray(temp, pos);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                        setDoubleArrayAbs(get1DIndex(pos), temp);<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                }<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                        } else {<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        int n = get1DIndex(pos);<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                        data[n] = ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                                data[n + i] = 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>                } else {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                        try {<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                                final long[] vr = DTypeUtils.toLongArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                                while (iter.hasNext()) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                        setAbs(get1DIndex(pos), vr);<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                        } catch (IllegalArgumentException e) {<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<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>        @Override<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>        CompoundLongDataset setSlicedView(Dataset view, Dataset d) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                setDirty();<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span><a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                final int is = view.getElementsPerItem();<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span><a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                if (is &gt; 1) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                        if (d.getElementsPerItem() == 1) {<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                while (it.hasNext()) {<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                        final long bv = it.bLong; // PRIM_TYPE // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                        data[it.aIndex] = bv;<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                                data[it.aIndex + j] = bv;<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                                        }<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                        } else {<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                while (it.hasNext()) {<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                                        data[it.aIndex] = it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                                data[it.aIndex + j] = d.getElementLongAbs(it.bIndex + j); // GET_ELEMENT_WITH_CAST<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>                } else {<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                        while (it.hasNext()) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                data[it.aIndex] = it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                        }<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                return this;<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>        @Override<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>        public CompoundLongDataset setSlice(final Object o, final IndexIterator siter) {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                setDirty();<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                if (o instanceof IDataset) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                        final IDataset ds = (IDataset) o;<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                        final int[] oshape = ds.getShape();<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span><a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                throw new IllegalArgumentException(String.format(<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                                                Arrays.toString(siter.getShape())));<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                        }<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span><a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>                        if (ds instanceof Dataset) {<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                                final Dataset ads = (Dataset) ds;<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                IndexIterator oiter = ads.getIterator();<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span><a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                if (ds instanceof AbstractCompoundDataset) {<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                                        if (isize != ads.getElementsPerItem()) {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                                throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                                        data[siter.index + i] = ads.getElementLongAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                                }<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        }<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                } else {<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                                data[siter.index] = ads.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                                        data[siter.index + i] = 0;<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                                }<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                        }<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                }<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                        } else {<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                                final int[] pos = oiter.getPos();<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span><a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                                if (ds.getElementsPerItem() == 1) {<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                                                data[siter.index] = ds.getLong(pos); // PRIM_TYPE<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                                        data[siter.index + i] = 0;<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                                }<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>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                                                final long[] val = DTypeUtils.toLongArray(ds.getObject(pos), isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                                        data[siter.index + i] = val[i];<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>                } else {<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                        try {<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                                final long[] vr = DTypeUtils.toLongArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span><a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                while (siter.hasNext()) {<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                                                data[siter.index + i] = vr[i];<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>                        } catch (IllegalArgumentException e) {<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                        }<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                }<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                return this;<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>        }<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span><a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>        @Override<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                long[] ddata = (long[]) dest.getBuffer(); // PRIM_TYPE<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span><a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                if (dest.getElementsPerItem() != isize) {<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                        throw new IllegalArgumentException(String.format(<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                        "Destination dataset is incompatible as it has %d elements per item not %d",<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                                        dest.getElementsPerItem(), isize));<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>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span><a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span><a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                }<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span><a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                dest.setDirty();<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                                ddata[diter.index + i] = data[siter.index + i];<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                        }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                }<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>        }<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span><a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>        @Override<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                setDirty();<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                long[] sdata = (long[]) src; // PRIM_TYPE<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span><a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span><a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                        throw new IllegalArgumentException("source array is not large enough");<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                }<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span><a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                for (int i = 0; siter.hasNext(); i++) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                data[siter.index + j] = sdata[isize * i + j];<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><a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>        @Override<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>        public boolean containsNans() {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                return false;<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>        @Override<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>        public boolean containsInfs() {<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                return false;<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>        }<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span><a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>        @Override<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>        public boolean containsInvalidNumbers() {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                return false;<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 CompoundLongDataset iadd(final Object b) {<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                setDirty();<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                int is = bds.getElementsPerItem();<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                if (bds.getSize() == 1) {<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>                        final IndexIterator it = getIterator();<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        final int bOffset = bds.getOffset();<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                        if (is == 1) {<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                                if (useLong) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                                        while (it.hasNext()) {<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                                        data[it.index + i] += lb;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                                }<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                        }<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                } else {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                        while (it.hasNext()) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                        data[it.index + i] += db;<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>                                }<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                        } else if (is == isize) {<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                                if (useLong) {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                        while (it.hasNext()) {<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                        data[it.index + i] += bds.getElementLongAbs(i);<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>                                } else {<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        while (it.hasNext()) {<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                        data[it.index + i] += bds.getElementDoubleAbs(i);<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                }<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                        }<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                }<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                        } else {<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                        }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                } else {<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                        it.setOutputDouble(!useLong);<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                        if (is == 1) {<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                if (useLong) {<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                                        while (it.hasNext()) {<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                                                final long lb = it.bLong;<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                                data[it.aIndex] += lb;<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                                        data[it.aIndex + i] += lb;<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 {<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                        while (it.hasNext()) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                                                final double db = it.bDouble;<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                                                data[it.aIndex] += db;<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                                        data[it.aIndex + i] += db;<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>                                }<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                        } else if (is == isize) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                if (useLong) {<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                        while (it.hasNext()) {<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                                data[it.aIndex] += it.bLong;<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                                        data[it.aIndex + i] += bds.getElementLongAbs(it.bIndex + i);<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>                                } else {<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                                        while (it.hasNext()) {<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                                                        data[it.aIndex + i] += bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>                                                }<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>                        } else {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                        }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                }<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                return this;<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>        }<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span><a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>        @Override<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>        public CompoundLongDataset isubtract(final Object b) {<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                setDirty();<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                int is = bds.getElementsPerItem();<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                if (bds.getSize() == 1) {<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                        final IndexIterator it = getIterator();<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                        final int bOffset = bds.getOffset();<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>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                        while (it.hasNext()) {<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                        data[it.index + i] -= lb;<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                        }<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                } else {<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<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] -= db;<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 if (is == isize) {<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                                if (useLong) {<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                                        while (it.hasNext()) {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                                        data[it.index + i] -= bds.getElementLongAbs(i);<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>                                } else {<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                        while (it.hasNext()) {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                                        data[it.index + i] -= bds.getElementDoubleAbs(i);<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                                }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                        }<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                }<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                        } else {<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                        }<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                } else {<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                        it.setOutputDouble(!useLong);<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                        if (is == 1) {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                if (useLong) {<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                        while (it.hasNext()) {<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                                final long lb = it.bLong;<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                                data[it.aIndex] += lb;<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                        data[it.aIndex + i] -= lb;<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>                                } else {<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                                        while (it.hasNext()) {<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                                                final double db = it.bDouble;<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                                                data[it.aIndex] += db;<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>                                                        data[it.aIndex + i] -= db;<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>                                }<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                        } else if (is == isize) {<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                if (useLong) {<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                        while (it.hasNext()) {<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                                data[it.aIndex] += it.bLong;<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                                        data[it.aIndex + i] -= bds.getElementLongAbs(it.bIndex + i);<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>                                } else {<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                                        while (it.hasNext()) {<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                                                        data[it.aIndex + i] -= bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                                                }<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                        }<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                }<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                        } else {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                return this;<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>        }<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span><a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>        @Override<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>        public CompoundLongDataset imultiply(final Object b) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                setDirty();<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                int is = bds.getElementsPerItem();<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                if (bds.getSize() == 1) {<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                        final IndexIterator it = getIterator();<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                        final int bOffset = bds.getOffset();<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                        if (useLong) {<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                                if (is == 1) {<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                                        while (it.hasNext()) {<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                                        data[it.index + i] *= lb;<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>                                } else if (is == isize) {<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                        while (it.hasNext()) {<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                                        data[it.index + i] *= bds.getElementLongAbs(i);<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                                }<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                        }<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                } else {<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                                if (is == 1) {<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                                        while (it.hasNext()) {<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                                                        data[it.index + i] *= db;<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                                }<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                        }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                } else if (is == isize) {<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                        while (it.hasNext()) {<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.index + i] *= bds.getElementDoubleAbs(i);<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 {<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                }<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                        }<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                } else {<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                        it.setOutputDouble(!useLong);<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                        if (useLong) {<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                if (is == 1) {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                                        while (it.hasNext()) {<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                                                final double lb = it.bLong;<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                                                        data[it.aIndex + i] *= lb;<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>                                } else if (is == isize) {<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                                        while (it.hasNext()) {<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                                                data[it.aIndex] *= it.bLong;<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                                                        data[it.aIndex + i] *= bds.getElementLongAbs(it.bIndex + i);<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                                }<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                        }<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                } else {<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                                if (is == 1) {<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                                        while (it.hasNext()) {<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>                                                final double db = it.bDouble;<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                                        data[it.aIndex + i] *= db;<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>                                } else if (is == isize) {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                        while (it.hasNext()) {<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                                data[it.aIndex] *= it.bDouble;<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                                        data[it.aIndex + i] *= bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                                }<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                        }<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                } else {<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                }<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                        }<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                return this;<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>        }<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span><a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>        @Override<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>        public CompoundLongDataset idivide(final Object b) {<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                setDirty();<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                int is = bds.getElementsPerItem();<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                if (bds.getSize() == 1) {<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                        final IndexIterator it = getIterator();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>                        final int bOffset = bds.getOffset();<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                        if (useLong) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                if (is == 1) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                        if (lb == 0) { // INT_USE<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                                fill(0); // INT_USE<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                        } else { // INT_USE<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                        while (it.hasNext()) {<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                                        data[it.index + i] /= lb;<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>                                        } // INT_USE<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                } else if (is == isize) {<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                        while (it.hasNext()) {<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                                                        final long lb = bds.getElementLongAbs(i);<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                                try {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                                                                data[it.index + i] /= lb; // INT_EXCEPTION<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                                } catch (ArithmeticException e) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                        data[it.index + i] = 0;<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>                                } else {<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                }<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                        } else {<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                if (is == 1) {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                        if (db == 0) { // INT_USE<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                fill(0); // INT_USE<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                        } else { // INT_USE<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                        while (it.hasNext()) {<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                                        data[it.index + i] /= db;<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>                                        } // INT_USE<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                } else if (is == isize) {<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                        while (it.hasNext()) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                                        final double db = bds.getElementDoubleAbs(i);<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                try {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                                                data[it.index + i] /= db; // INT_EXCEPTION<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                } catch (ArithmeticException e) {<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        data[it.index + i] = 0;<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                }<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                                }<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                        }<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                } else {<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                        it.setOutputDouble(!useLong);<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                        if (useLong) {<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 long lb = it.bLong;<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                if (lb == 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] /= lb;<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 long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                try {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                                                data[it.aIndex + i] /= lb; // INT_EXCEPTION<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                } catch (ArithmeticException e) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                        data[it.aIndex + i] = 0;<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>                                        }<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                                } else {<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                                }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                        } else {<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>                                if (is == 1) {<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                                        while (it.hasNext()) {<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                                                final double db = it.bDouble;<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                                                if (db == 0) { // INT_USE<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                                                        for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                                                        }// INT_USE<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                                                } else { // INT_USE<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                                                        data[it.aIndex + i] /= db;<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                                }<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                                } // INT_USE<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                        }<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                } else if (is == isize) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                        while (it.hasNext()) {<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                try {<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                                                data[it.aIndex + i] /= db; // INT_EXCEPTION<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                } catch (ArithmeticException e) {<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                                        data[it.aIndex + i] = 0;<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>                                        }<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                } else {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                return this;<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>        }<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span><a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>        @Override<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>        public CompoundLongDataset ifloor() {<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                return this;<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>        @Override<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>        public CompoundLongDataset iremainder(final Object b) {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                setDirty();<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                int is = bds.getElementsPerItem();<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                if (bds.getSize() == 1) {<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                        final IndexIterator it = getIterator();<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                        final int bOffset = bds.getOffset();<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                        if (useLong) {<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                if (is == 1) {<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                                        if (lb == 0) { // INT_USE<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                                                fill(0); // INT_USE<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                                        } else { // INT_USE<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                                        while (it.hasNext()) {<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                                                        data[it.index + i] %= lb;<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>                                        } // INT_USE<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                } else if (is == isize) {<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                                        while (it.hasNext()) {<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                try {<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                                                data[it.index + i] %= bds.getElementLongAbs(i); // INT_EXCEPTION<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                } catch (ArithmeticException e) {<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                        data[it.index + i] = 0;<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>                                        }<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                } else {<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                                if (is == 1) {<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                        if (db == 0) { // INT_USE<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                                                fill(0); // INT_USE<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                        } else { // INT_USE<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                        while (it.hasNext()) {<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                                        data[it.index + i] %= db;<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>                                        } // INT_USE<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                                } else if (is == isize) {<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                                        while (it.hasNext()) {<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span>                                try {<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                                                                data[it.index + i] %= bds.getElementDoubleAbs(i); // INT_EXCEPTION<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                } catch (ArithmeticException e) {<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                        data[it.index + i] = 0;<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>                                } else {<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                } else {<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                        it.setOutputDouble(!useLong);<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                        if (useLong) {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                if (is == 1) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                        while (it.hasNext()) {<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                final long lb = it.bLong;<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                                if (lb == 0) { // INT_USE<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                        for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                                } else { // INT_USE<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                                                for (int i = 0; i &lt; isize; i++)<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                                        data[it.aIndex + i] %= lb;<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                                } // INT_USE<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                        }<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                } else if (is == isize) {<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                        while (it.hasNext()) {<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                                try {<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                                                                data[it.aIndex + i] %= lb; // INT_EXCEPTION<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                                } catch (ArithmeticException e) {<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>                                        data[it.aIndex + i] = 0;<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                                }<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                                                }<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>                                        }<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                                } else {<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>                                }<a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>                        } else {<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span>                                if (is == 1) {<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>                                        while (it.hasNext()) {<a name="line.1896"></a>
+<span class="sourceLineNo">1897</span>                                                final double db = it.bDouble;<a name="line.1897"></a>
+<span class="sourceLineNo">1898</span>                                                if (db == 0) { // INT_USE<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>                                                        for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>                                                } else { // INT_USE<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>                                                        data[it.aIndex + i] %= db;<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span>                                                }<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>                                } else if (is == isize) {<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span>                                        while (it.hasNext()) {<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span>                                try {<a name="line.1911"></a>
+<span class="sourceLineNo">1912</span>                                                                data[it.aIndex + i] %= db; // INT_EXCEPTION<a name="line.1912"></a>
+<span class="sourceLineNo">1913</span>                                } catch (ArithmeticException e) {<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>                                        data[it.aIndex + i] = 0;<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>                                }<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>                                                }<a name="line.1916"></a>
+<span class="sourceLineNo">1917</span>                                        }<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span>                                } else {<a name="line.1918"></a>
+<span class="sourceLineNo">1919</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                }<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>                return this;<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span>        }<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span><a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>        @Override<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>        public CompoundLongDataset ipower(final Object b) {<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>                setDirty();<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>                final int is = bds.getElementsPerItem();<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>                if (bds.getSize() == 1) {<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>                        final int bOffset = bds.getOffset();<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span>                        final double vr = bds.getElementDoubleAbs(bOffset);<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span>                        final IndexIterator it = getIterator();<a name="line.1934"></a>
+<span class="sourceLineNo">1935</span>                        if (bds.isComplex()) {<a name="line.1935"></a>
+<span class="sourceLineNo">1936</span>                                final double vi = bds.getElementDoubleAbs(bOffset + 1);<a name="line.1936"></a>
+<span class="sourceLineNo">1937</span>                                if (vi == 0) {<a name="line.1937"></a>
+<span class="sourceLineNo">1938</span>                                        while (it.hasNext()) {<a name="line.1938"></a>
+<span class="sourceLineNo">1939</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1939"></a>
+<span class="sourceLineNo">1940</span>                                                        final double v = Math.pow(data[it.index + i], vr);<a name="line.1940"></a>
+<span class="sourceLineNo">1941</span>                                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1941"></a>
+<span class="sourceLineNo">1942</span>                                                                data[it.index + i] = 0; // INT_USE<a name="line.1942"></a>
+<span class="sourceLineNo">1943</span>                                                        } else { // INT_USE<a name="line.1943"></a>
+<span class="sourceLineNo">1944</span>                                                        data[it.index + i] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1944"></a>
+<span class="sourceLineNo">1945</span>                                                        } // INT_USE<a name="line.1945"></a>
+<span class="sourceLineNo">1946</span>                                                }<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span>                                        }<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span>                                } else {<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span>                                        final Complex zv = new Complex(vr, vi);<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span>                                        while (it.hasNext()) {<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1951"></a>
+<span class="sourceLineNo">1952</span>                                                        Complex zd = new Complex(data[it.index + i], 0);<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span>                                                        final double v = zd.pow(zv).getReal();<a name="line.1953"></a>
+<span class="sourceLineNo">1954</span>                                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1954"></a>
+<span class="sourceLineNo">1955</span>                                                                data[it.index + i] = 0; // INT_USE<a name="line.1955"></a>
+<span class="sourceLineNo">1956</span>                                                        } else { // INT_USE<a name="line.1956"></a>
+<span class="sourceLineNo">1957</span>                                                        data[it.index + i] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1957"></a>
+<span class="sourceLineNo">1958</span>                                                        } // INT_USE<a name="line.1958"></a>
+<span class="sourceLineNo">1959</span>                                                }<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span>                                        }<a name="line.1960"></a>
+<span class="sourceLineNo">1961</span>                                }<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span>                        } else if (is == 1) {<a name="line.1962"></a>
+<span class="sourceLineNo">1963</span>                                while (it.hasNext()) {<a name="line.1963"></a>
+<span class="sourceLineNo">1964</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1964"></a>
+<span class="sourceLineNo">1965</span>                                                final double v = Math.pow(data[it.index + i], vr);<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.index + i] = 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.index + i] = (long) 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>                                        }<a name="line.1971"></a>
+<span class="sourceLineNo">1972</span>                                }<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span>                        } else if (is == isize) {<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span>                                while (it.hasNext()) {<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span>                                                final double v = Math.pow(data[it.index + i], bds.getElementDoubleAbs(i));<a name="line.1976"></a>
+<span class="sourceLineNo">1977</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1977"></a>
+<span class="sourceLineNo">1978</span>                                                        data[it.index + i] = 0; // INT_USE<a name="line.1978"></a>
+<span class="sourceLineNo">1979</span>                                                } else { // INT_USE<a name="line.1979"></a>
+<span class="sourceLineNo">1980</span>                                                data[it.index + i] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1980"></a>
+<span class="sourceLineNo">1981</span>                                                } // INT_USE<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>                } else {<a name="line.1985"></a>
+<span class="sourceLineNo">1986</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1986"></a>
+<span class="sourceLineNo">1987</span>                        it.setOutputDouble(true);<a name="line.1987"></a>
+<span class="sourceLineNo">1988</span>                        if (bds.isComplex()) {<a name="line.1988"></a>
+<span class="sourceLineNo">1989</span>                                while (it.hasNext()) {<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.1990"></a>
+<span class="sourceLineNo">1991</span>                                        double v = new Complex(it.aDouble, 0).pow(zv).getReal();<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1993"></a>
+<span class="sourceLineNo">1994</span>                                        } else { // INT_USE<a name="line.1994"></a>
+<span class="sourceLineNo">1995</span>                                        data[it.aIndex] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1995"></a>
+<span class="sourceLineNo">1996</span>                                        } // INT_USE<a name="line.1996"></a>
+<span class="sourceLineNo">1997</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1997"></a>
+<span class="sourceLineNo">1998</span>                                                v = new Complex(data[it.aIndex + i], 0).pow(zv).getReal();<a name="line.1998"></a>
+<span class="sourceLineNo">1999</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1999"></a>
+<span class="sourceLineNo">2000</span>                                                        data[it.aIndex + i] = 0; // INT_USE<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span>                                                } else { // INT_USE<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span>                                                data[it.aIndex + i] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>                                                } // INT_USE<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>                                        }<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span>                                }<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>                        } else {<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>                                while (it.hasNext()) {<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span>                                        double v = Math.pow(it.aDouble, it.bDouble);<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span>                                        } else { // INT_USE<a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>                                        data[it.aIndex] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>                                        } // INT_USE<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>                                                v = Math.pow(data[it.aIndex + i], bds.getElementDoubleAbs(it.bIndex + i));<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span>                                                        data[it.aIndex + i] = 0; // INT_USE<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>                                                } else { // INT_USE<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span>                                                data[it.aIndex + i] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>                                                } // INT_USE<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>                                        }<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>                                }<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>                        }<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>                }<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span>                return this;<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>        @Override<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.2030"></a>
+<span class="sourceLineNo">2031</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.2031"></a>
+<span class="sourceLineNo">2032</span>                it.setOutputDouble(true);<a name="line.2032"></a>
+<span class="sourceLineNo">2033</span>                double sum = 0;<a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>                double comp = 0;<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>                final int bis = bds.getElementsPerItem();<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span><a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>                if (bis == 1) {<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>                        if (w == null) {<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span>                                while (it.hasNext()) {<a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>                                        final double db = it.bDouble;<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>                                        double diff = it.aDouble - db;<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>                                        double err = diff * diff - comp;<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>                                        double temp = sum + err;<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>                                        comp = (temp - sum) - err;<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span>                                        sum = temp;<a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>                                                err = diff * diff - comp;<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>                                                temp = sum + err;<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>                                                comp = (temp - sum) - err;<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span>                                                sum = temp;<a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>                                        }<a name="line.2052"></a>
+<span class="sourceLineNo">2053</span>                                }<a name="line.2053"></a>
+<span class="sourceLineNo">2054</span>                        } else {<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span>                                IndexIterator itw = w.getIterator();<a name="line.2055"></a>
+<span class="sourceLineNo">2056</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2056"></a>
+<span class="sourceLineNo">2057</span>                                        final double db = it.bDouble;<a name="line.2057"></a>
+<span class="sourceLineNo">2058</span>                                        double diff = it.aDouble - db;<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span>                                        double err = diff * diff * dw - comp;<a name="line.2060"></a>
+<span class="sourceLineNo">2061</span>                                        double 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>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>                                                err = diff * diff * dw - comp;<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>                                                temp = sum + err;<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>                                                comp = (temp - sum) - err;<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span>                                                sum = temp;<a name="line.2069"></a>
+<span class="sourceLineNo">2070</span>                                        }<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span>                                }<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span>                        }<a name="line.2072"></a>
+<span class="sourceLineNo">2073</span>                } else {<a name="line.2073"></a>
+<span class="sourceLineNo">2074</span>                        if (w == null) {<a name="line.2074"></a>
+<span class="sourceLineNo">2075</span>                                while (it.hasNext()) {<a name="line.2075"></a>
+<span class="sourceLineNo">2076</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2076"></a>
+<span class="sourceLineNo">2077</span>                                        double err = diff * diff - comp;<a name="line.2077"></a>
+<span class="sourceLineNo">2078</span>                                        double temp = sum + err;<a name="line.2078"></a>
+<span class="sourceLineNo">2079</span>                                        comp = (temp - sum) - err;<a name="line.2079"></a>
+<span class="sourceLineNo">2080</span>                                        sum = temp;<a name="line.2080"></a>
+<span class="sourceLineNo">2081</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2081"></a>
+<span class="sourceLineNo">2082</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2082"></a>
+<span class="sourceLineNo">2083</span>                                                err = diff * diff - comp;<a name="line.2083"></a>
+<span class="sourceLineNo">2084</span>                                                temp = sum + err;<a name="line.2084"></a>
+<span class="sourceLineNo">2085</span>                                                comp = (temp - sum) - err;<a name="line.2085"></a>
+<span class="sourceLineNo">2086</span>                                                sum = temp;<a name="line.2086"></a>
+<span class="sourceLineNo">2087</span>                                        }<a name="line.2087"></a>
+<span class="sourceLineNo">2088</span>                                }<a name="line.2088"></a>
+<span class="sourceLineNo">2089</span>                        } else {<a name="line.2089"></a>
+<span class="sourceLineNo">2090</span>                                IndexIterator itw = w.getIterator();<a name="line.2090"></a>
+<span class="sourceLineNo">2091</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2091"></a>
+<span class="sourceLineNo">2092</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2092"></a>
+<span class="sourceLineNo">2093</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2093"></a>
+<span class="sourceLineNo">2094</span>                                        double err = diff * diff * dw - comp;<a name="line.2094"></a>
+<span class="sourceLineNo">2095</span>                                        double temp = sum + err;<a name="line.2095"></a>
+<span class="sourceLineNo">2096</span>                                        comp = (temp - sum) - err;<a name="line.2096"></a>
+<span class="sourceLineNo">2097</span>                                        sum = temp;<a name="line.2097"></a>
+<span class="sourceLineNo">2098</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2098"></a>
+<span class="sourceLineNo">2099</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2099"></a>
+<span class="sourceLineNo">2100</span>                                                err = diff * diff * dw - comp;<a name="line.2100"></a>
+<span class="sourceLineNo">2101</span>                                                temp = sum + err;<a name="line.2101"></a>
+<span class="sourceLineNo">2102</span>                                                comp = (temp - sum) - err;<a name="line.2102"></a>
+<span class="sourceLineNo">2103</span>                                                sum = temp;<a name="line.2103"></a>
+<span class="sourceLineNo">2104</span>                                        }<a name="line.2104"></a>
+<span class="sourceLineNo">2105</span>                                }<a name="line.2105"></a>
+<span class="sourceLineNo">2106</span>                        }<a name="line.2106"></a>
+<span class="sourceLineNo">2107</span>                }<a name="line.2107"></a>
+<span class="sourceLineNo">2108</span>                return sum;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/CompoundShortDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/CompoundShortDataset.html
new file mode 100644
index 0000000..7674430
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/CompoundShortDataset.html
@@ -0,0 +1,2182 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// This is generated from CompoundDoubleDataset.java by fromcpddouble.py<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.Arrays;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.commons.math3.complex.Complex;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>/**<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * Extend compound dataset for short values // PRIM_TYPE<a name="line.22"></a>
+<span class="sourceLineNo">023</span> */<a name="line.23"></a>
+<span class="sourceLineNo">024</span>public class CompoundShortDataset extends AbstractCompoundDataset {<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        // pin UID to base class<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>        protected short[] data; // subclass alias // PRIM_TYPE<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>        @Override<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        protected void setData() {<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                data = (short[]) odata; // PRIM_TYPE<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        }<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>        protected short[] createArray(final int size) { // PRIM_TYPE<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                short[] array = null; // PRIM_TYPE<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>                try {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                        array = new short[isize * size]; // PRIM_TYPE<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                } catch (OutOfMemoryError e) {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                }<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                return array;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        }<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>        @Override<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public int getDType() {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                return Dataset.ARRAYINT16; // DATA_TYPE<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        }<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        /**<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         * Create a null dataset<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        CompoundShortDataset() {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * Create a null dataset<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * @param itemSize<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         */<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        CompoundShortDataset(final int itemSize) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                isize = itemSize;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>        /**<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         * Create a zero-filled dataset of given item size and shape<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         * @param itemSize<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         * @param shape<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         */<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        CompoundShortDataset(final int itemSize, final int[] shape) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                isize = itemSize;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                if (shape != null) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        size = ShapeUtils.calcSize(shape);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        this.shape = shape.clone();<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        try {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                odata = data = createArray(size);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        } catch (Throwable t) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                                throw new IllegalArgumentException(t);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                        }<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        }<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>        /**<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         * Copy a dataset<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         * @param dataset<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>        CompoundShortDataset(final CompoundShortDataset dataset) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                isize = dataset.isize;<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                copyToView(dataset, this, true, true);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                try {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        if (dataset.stride == null) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                                if (dataset.data != null) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                        odata = data = dataset.data.clone();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                        } else {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                offset = 0;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                stride = null;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                base = null;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                                odata = data = createArray(size);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                IndexIterator iter = dataset.getIterator();<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                                for (int j = 0; iter.hasNext();) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                                                data[j++] = dataset.data[iter.index + i];<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                                        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                                }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        }<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                } catch (Throwable t) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        throw new IllegalArgumentException(t);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                }<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>        /**<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         * Create a dataset using given dataset<a name="line.120"></a>
+<span class="sourceLineNo">121</span>         * @param dataset<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         */<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        CompoundShortDataset(final CompoundDataset dataset) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                copyToView(dataset, this, true, false);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                offset = 0;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                stride = null;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                base = null;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                isize = dataset.getElementsPerItem();<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                try {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        odata = data = createArray(size);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                } catch (Throwable t) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                        throw new IllegalArgumentException(t);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>                IndexIterator iter = dataset.getIterator();<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                for (int j = 0; iter.hasNext();) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                                data[j++] = (short) dataset.getElementLongAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        }<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        }<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>        /**<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * Create a dataset using given data (elements are grouped together)<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         * @param itemSize<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         * @param data<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         * @param shape<a name="line.148"></a>
+<span class="sourceLineNo">149</span>         *            (can be null to create 1D dataset)<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         */<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        CompoundShortDataset(final int itemSize, final short[] data, int... shape) { // PRIM_TYPE<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                isize = itemSize;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                if (data != null) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        if (shape == null || (shape.length == 0 &amp;&amp; data.length &gt; isize)) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                                shape = new int[] { data.length / isize };<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        }<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        size = ShapeUtils.calcSize(shape);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                        if (size * isize != data.length) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                                throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                                                Arrays.toString(shape), data.length / isize));<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        this.shape = size == 0 ? null : shape.clone();<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        odata = this.data = data;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                }<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        }<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>        /**<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         * Create a dataset using given datasets<a name="line.169"></a>
+<span class="sourceLineNo">170</span>         * @param datasets<a name="line.170"></a>
+<span class="sourceLineNo">171</span>         */<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        CompoundShortDataset(final Dataset... datasets) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                if (datasets.length &lt; 1) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                        throw new IllegalArgumentException("Array of datasets must have length greater than zero");<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                }<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>                for (int i = 1; i &lt; datasets.length; i++) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        datasets[0].checkCompatibility(datasets[i]);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>                isize = datasets.length;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                size = ShapeUtils.calcSize(datasets[0].getShapeRef());<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                shape = datasets[0].getShape();<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>                try {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        odata = data = createArray(size);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                } catch (Throwable t) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                        throw new IllegalArgumentException(t);<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>                IndexIterator[] iters = new IndexIterator[isize];<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                for (int i = 0; i &lt; datasets.length; i++) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                        iters[i] = datasets[i].getIterator();<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                }<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>                for (int j = 0; iters[0].hasNext();) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        data[j++] = (short) datasets[0].getElementLongAbs(iters[0].index); // GET_ELEMENT_WITH_CAST<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        for (int i = 1; i &lt; datasets.length; i++) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                                iters[i].hasNext();<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                                data[j++] = (short) datasets[i].getElementLongAbs(iters[i].index); // GET_ELEMENT_WITH_CAST<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        }<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                }<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>        /**<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * Cast a dataset to this compound type. If repeat is set, the first element of each item in the given dataset is<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * repeated across all elements of an item. Otherwise, each item comprises a truncated or zero-padded copy of<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * elements from the given dataset.<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         * @param itemSize<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         * @param repeat<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         *            repeat first element<a name="line.212"></a>
+<span class="sourceLineNo">213</span>         * @param dataset<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         */<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        CompoundShortDataset(final int itemSize, final boolean repeat, final Dataset dataset) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                isize = itemSize;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                size = dataset.getSize();<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                shape = dataset.getShape();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                name = new String(dataset.getName());<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>                try {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        odata = data = createArray(size);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                } catch (Throwable t) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                        throw new IllegalArgumentException(t);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                }<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                final int os = dataset.getElementsPerItem();<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>                IndexIterator iter = dataset.getIterator();<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                if (repeat) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                        int i = 0;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                        while (iter.hasNext()) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                final short v = (short) dataset.getElementLongAbs(iter.index); // PRIM_TYPE // GET_ELEMENT_WITH_CAST<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                                        data[i++] = v;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                        }<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                } else {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                        final int kmax = Math.min(isize, os);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        int i = 0;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                        while (iter.hasNext()) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                                for (int k = 0; k &lt; kmax; k++) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                        data[i + k] = (short) dataset.getElementLongAbs(iter.index + k); // GET_ELEMENT_WITH_CAST<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                                }<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                                i += isize;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        }<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                }<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>        @Override<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        public boolean equals(Object obj) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                if (this == obj) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        return true;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                }<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>                if (obj == null) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                        return false;<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>                if (!getClass().equals(obj.getClass())) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                        if (getRank() == 0) { // for zero-rank datasets<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                return obj.equals(getObjectAbs(offset));<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                        return false;<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>                CompoundShortDataset other = (CompoundShortDataset) obj;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                if (isize != other.isize) {<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>                if (size != other.size) {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                        return false;<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                }<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                if (!Arrays.equals(shape, other.shape)) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                        return false;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                if (data == other.data &amp;&amp; stride == null &amp;&amp; other.stride == null) {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                        return true;<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>                IndexIterator iter = getIterator();<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                IndexIterator oiter = other.getIterator();<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                                if (data[iter.index+j] != other.data[oiter.index+j]) {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                                        return false;<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>                return true;<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>        @Override<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        public int hashCode() {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                return super.hashCode();<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>        @Override<a name="line.298"></a>
+<span class="sourceLineNo">299</span>        public CompoundShortDataset clone() {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                return new CompoundShortDataset(this);<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>        /**<a name="line.303"></a>
+<span class="sourceLineNo">304</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.304"></a>
+<span class="sourceLineNo">305</span>         * sequences or arrays are padded with zeros. The item size is the last dimension of the corresponding<a name="line.305"></a>
+<span class="sourceLineNo">306</span>         * elemental dataset<a name="line.306"></a>
+<span class="sourceLineNo">307</span>         *<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         * @param obj<a name="line.308"></a>
+<span class="sourceLineNo">309</span>         * @return dataset with contents given by input<a name="line.309"></a>
+<span class="sourceLineNo">310</span>         */<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        static CompoundShortDataset createFromObject(final Object obj) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                ShortDataset result = ShortDataset.createFromObject(obj); // CLASS_TYPE<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                return createCompoundDatasetWithLastDimension(result, true);<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>         * Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * sequences or arrays are padded with zeros.<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         *<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         * @param itemSize<a name="line.320"></a>
+<span class="sourceLineNo">321</span>         * @param obj<a name="line.321"></a>
+<span class="sourceLineNo">322</span>         * @return dataset with contents given by input<a name="line.322"></a>
+<span class="sourceLineNo">323</span>         */<a name="line.323"></a>
+<span class="sourceLineNo">324</span>        public static CompoundShortDataset createFromObject(final int itemSize, final Object obj) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                ShortDataset result = ShortDataset.createFromObject(obj); // CLASS_TYPE<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                boolean zeroRank = result.shape == null ? false : result.shape.length == 0;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                if (zeroRank) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                        result.resize(itemSize); // special case of single item<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        result.fill(obj);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                CompoundShortDataset ds = new CompoundShortDataset(itemSize, result.getData(), null);<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                if (zeroRank) {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        ds.setShape(new int[0]);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                return ds;<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>         * @param stop<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         */<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        static CompoundShortDataset createRange(final int itemSize, final double stop) {<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                return createRange(itemSize, 0., stop, 1.);<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>         * @param start<a name="line.347"></a>
+<span class="sourceLineNo">348</span>         * @param stop<a name="line.348"></a>
+<span class="sourceLineNo">349</span>         * @param step<a name="line.349"></a>
+<span class="sourceLineNo">350</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.350"></a>
+<span class="sourceLineNo">351</span>         */<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        static CompoundShortDataset createRange(final int itemSize, final double start, final double stop,<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                        final double step) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                int size = calcSteps(start, stop, step);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                CompoundShortDataset result = new CompoundShortDataset(itemSize, new int[] { size });<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                for (int i = 0; i &lt; size; i++) {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                        result.data[i * result.isize] = (short) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                return result;<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>        /**<a name="line.362"></a>
+<span class="sourceLineNo">363</span>         * @param shape<a name="line.363"></a>
+<span class="sourceLineNo">364</span>         * @return a dataset filled with ones<a name="line.364"></a>
+<span class="sourceLineNo">365</span>         */<a name="line.365"></a>
+<span class="sourceLineNo">366</span>        static CompoundShortDataset ones(final int itemSize, final int... shape) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                return new CompoundShortDataset(itemSize, shape).fill(1);<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>         * Create a compound dataset using last dimension of given dataset<a name="line.371"></a>
+<span class="sourceLineNo">372</span>         * @param a<a name="line.372"></a>
+<span class="sourceLineNo">373</span>         * @param shareData if true, then share data when possible otherwise copy it<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * @return compound dataset<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         */<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        public static CompoundShortDataset createCompoundDatasetWithLastDimension(final Dataset a, final boolean shareData) {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                if (a.getElementsPerItem() != 1) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                        logger.error("Need a single-element dataset");<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                        throw new IllegalArgumentException("Need a single-element dataset");<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                }<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                if (a.getDType() != Dataset.INT16) { // DATA_TYPE<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                        logger.error("Dataset type must be short"); // PRIM_TYPE<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                        throw new IllegalArgumentException("Dataset type must be short"); // PRIM_TYPE<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                }<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span>                final int[] shape = a.getShapeRef();<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                if (shape == null) {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                        return new CompoundShortDataset(0);<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>                final int rank = shape.length - 1;<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                final int is = rank &lt; 0 ? 1 : shape[rank];<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>                CompoundShortDataset result = new CompoundShortDataset(is);<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                result.shape = rank &gt; 0 ? Arrays.copyOf(shape, rank) : (rank &lt; 0 ? new int[0] : new int[] {1});<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                result.size = ShapeUtils.calcSize(result.shape);<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                result.odata = shareData ? a.flatten().getBuffer() : a.clone().getBuffer();<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                result.setName(a.getName());<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                result.setData();<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                return result;<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 ShortDataset asNonCompoundDataset(final boolean shareData) { // CLASS_TYPE<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                ShortDataset result = new ShortDataset(); // CLASS_TYPE<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                final int is = getElementsPerItem();<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                final int rank = is == 1 ? shape.length : shape.length + 1;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                final int[] nshape = Arrays.copyOf(shape, rank);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                if (is != 1)<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                        nshape[rank-1] = is;<a name="line.411"></a>
+<span class="sourceLineNo">412</span><a name="line.412"></a>
+<span class="sourceLineNo">413</span>                result.shape = nshape;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                result.size = ShapeUtils.calcSize(nshape);<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                result.odata = shareData &amp;&amp; isContiguous() ? data : clone().getBuffer();<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                result.setName(name);<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                result.setData();<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                return result;<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 CompoundShortDataset fill(Object obj) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                setDirty();<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                if (obj instanceof Complex) {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                        obj = new Complex(((Complex) obj).getReal(), 0);<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                }<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                short[] vr = DTypeUtils.toShortArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                IndexIterator iter = getIterator();<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span>                while (iter.hasNext()) {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                                data[iter.index + i] = vr[i]; // PRIM_TYPE<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                        }<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                }<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span>                return this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.440"></a>
+<span class="sourceLineNo">441</span>         * @return data buffer as linear array<a name="line.441"></a>
+<span class="sourceLineNo">442</span>         */<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        public short[] getData() { // PRIM_TYPE<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                return data;<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>        @Override<a name="line.447"></a>
+<span class="sourceLineNo">448</span>        protected int getBufferLength() {<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                if (data == null)<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                        return 0;<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                return data.length;<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 CompoundShortDataset getView(boolean deepCopyMetadata) {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                CompoundShortDataset view = new CompoundShortDataset(isize);<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                view.setData();<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                return view;<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>        /**<a name="line.462"></a>
+<span class="sourceLineNo">463</span>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.463"></a>
+<span class="sourceLineNo">464</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.464"></a>
+<span class="sourceLineNo">465</span>         *<a name="line.465"></a>
+<span class="sourceLineNo">466</span>         * @param index<a name="line.466"></a>
+<span class="sourceLineNo">467</span>         *            absolute index<a name="line.467"></a>
+<span class="sourceLineNo">468</span>         * @return values<a name="line.468"></a>
+<span class="sourceLineNo">469</span>         */<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        public short[] getAbs(final int index) { // PRIM_TYPE<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                short[] result = new short[isize]; // PRIM_TYPE<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                        result[i] = data[index + i];<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                }<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                return result;<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>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.479"></a>
+<span class="sourceLineNo">480</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.480"></a>
+<span class="sourceLineNo">481</span>         *<a name="line.481"></a>
+<span class="sourceLineNo">482</span>         * @param index<a name="line.482"></a>
+<span class="sourceLineNo">483</span>         *            absolute index<a name="line.483"></a>
+<span class="sourceLineNo">484</span>         * @param values<a name="line.484"></a>
+<span class="sourceLineNo">485</span>         */<a name="line.485"></a>
+<span class="sourceLineNo">486</span>        public void getAbs(final int index, final short[] values) { // PRIM_TYPE<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                        values[i] = data[index + i];<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                }<a name="line.489"></a>
+<span class="sourceLineNo">490</span>        }<a name="line.490"></a>
+<span class="sourceLineNo">491</span><a name="line.491"></a>
+<span class="sourceLineNo">492</span>        @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                return data[index] != 0;<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>        @Override<a name="line.497"></a>
+<span class="sourceLineNo">498</span>        public double getElementDoubleAbs(final int index) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                return data[index];<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 long getElementLongAbs(final int index) {<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                return data[index]; // OMIT_TOLONG_INT<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>        @Override<a name="line.507"></a>
+<span class="sourceLineNo">508</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                setDirty();<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                short[] dsrc = (short[]) src; // PRIM_TYPE<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                        data[dindex + i] = dsrc[sindex + i];<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>        /**<a name="line.516"></a>
+<span class="sourceLineNo">517</span>         * Set values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.517"></a>
+<span class="sourceLineNo">518</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.518"></a>
+<span class="sourceLineNo">519</span>         *<a name="line.519"></a>
+<span class="sourceLineNo">520</span>         * @param index<a name="line.520"></a>
+<span class="sourceLineNo">521</span>         *            absolute index<a name="line.521"></a>
+<span class="sourceLineNo">522</span>         * @param val<a name="line.522"></a>
+<span class="sourceLineNo">523</span>         *            new values<a name="line.523"></a>
+<span class="sourceLineNo">524</span>         */<a name="line.524"></a>
+<span class="sourceLineNo">525</span>        public void setAbs(final int index, final short[] val) { // PRIM_TYPE<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                setDirty();<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                        data[index + i] = val[i];<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>        /**<a name="line.532"></a>
+<span class="sourceLineNo">533</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.533"></a>
+<span class="sourceLineNo">534</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.534"></a>
+<span class="sourceLineNo">535</span>         *<a name="line.535"></a>
+<span class="sourceLineNo">536</span>         * @param index<a name="line.536"></a>
+<span class="sourceLineNo">537</span>         *            absolute index<a name="line.537"></a>
+<span class="sourceLineNo">538</span>         * @param val<a name="line.538"></a>
+<span class="sourceLineNo">539</span>         *            new value<a name="line.539"></a>
+<span class="sourceLineNo">540</span>         */<a name="line.540"></a>
+<span class="sourceLineNo">541</span>        public void setAbs(final int index, final short val) { // PRIM_TYPE<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                setDirty();<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                data[index] = val;<a name="line.543"></a>
+<span class="sourceLineNo">544</span>        }<a name="line.544"></a>
+<span class="sourceLineNo">545</span><a name="line.545"></a>
+<span class="sourceLineNo">546</span>        @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        public Object getObject() {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                return getShortArray(); // PRIM_TYPE<a name="line.548"></a>
+<span class="sourceLineNo">549</span>        }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>        @Override<a name="line.551"></a>
+<span class="sourceLineNo">552</span>        public Object getObject(final int i) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                return getShortArray(i); // PRIM_TYPE<a name="line.553"></a>
+<span class="sourceLineNo">554</span>        }<a name="line.554"></a>
+<span class="sourceLineNo">555</span><a name="line.555"></a>
+<span class="sourceLineNo">556</span>        @Override<a name="line.556"></a>
+<span class="sourceLineNo">557</span>        public Object getObject(final int i, final int j) {<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                return getShortArray(i, j); // PRIM_TYPE<a name="line.558"></a>
+<span class="sourceLineNo">559</span>        }<a name="line.559"></a>
+<span class="sourceLineNo">560</span><a name="line.560"></a>
+<span class="sourceLineNo">561</span>        @Override<a name="line.561"></a>
+<span class="sourceLineNo">562</span>        public Object getObject(final int... pos) {<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                return getShortArray(pos); // PRIM_TYPE<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>        @Override<a name="line.566"></a>
+<span class="sourceLineNo">567</span>        public byte[] getByteArray() {<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                byte[] result = new byte[isize];<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                int index = getFirst1DIndex();<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                }<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                return result;<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>        @Override<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        public byte[] getByteArray(final int i) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                byte[] result = new byte[isize];<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                int index = get1DIndex(i);<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                }<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                return result;<a name="line.583"></a>
+<span class="sourceLineNo">584</span>        }<a name="line.584"></a>
+<span class="sourceLineNo">585</span><a name="line.585"></a>
+<span class="sourceLineNo">586</span>        @Override<a name="line.586"></a>
+<span class="sourceLineNo">587</span>        public byte[] getByteArray(final int i, final int j) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                byte[] result = new byte[isize];<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                int index = get1DIndex(i, j);<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                }<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                return result;<a name="line.593"></a>
+<span class="sourceLineNo">594</span>        }<a name="line.594"></a>
+<span class="sourceLineNo">595</span><a name="line.595"></a>
+<span class="sourceLineNo">596</span>        @Override<a name="line.596"></a>
+<span class="sourceLineNo">597</span>        public byte[] getByteArray(final int... pos) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                byte[] result = new byte[isize];<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                int index = get1DIndex(pos);<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                }<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                return result;<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>        @Override<a name="line.606"></a>
+<span class="sourceLineNo">607</span>        public short[] getShortArray() {<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                short[] result = new short[isize];<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                int index = getFirst1DIndex();<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                }<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                return result;<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>        @Override<a name="line.616"></a>
+<span class="sourceLineNo">617</span>        public short[] getShortArray(final int i) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                short[] result = new short[isize];<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                int index = get1DIndex(i);<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                }<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                return result;<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>        @Override<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        public short[] getShortArray(final int i, final int j) {<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                short[] result = new short[isize];<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                int index = get1DIndex(i, j);<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                }<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                return result;<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>        @Override<a name="line.636"></a>
+<span class="sourceLineNo">637</span>        public short[] getShortArray(final int... pos) {<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                short[] result = new short[isize];<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                int index = get1DIndex(pos);<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                }<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                return result;<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>        @Override<a name="line.646"></a>
+<span class="sourceLineNo">647</span>        public int[] getIntArray() {<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                int[] result = new int[isize];<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                int index = getFirst1DIndex();<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>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                }<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                return result;<a name="line.653"></a>
+<span class="sourceLineNo">654</span>        }<a name="line.654"></a>
+<span class="sourceLineNo">655</span><a name="line.655"></a>
+<span class="sourceLineNo">656</span>        @Override<a name="line.656"></a>
+<span class="sourceLineNo">657</span>        public int[] getIntArray(final int i) {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                int[] result = new int[isize];<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                int index = get1DIndex(i);<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                }<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                return result;<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 int[] getIntArray(final int i, final int j) {<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                int[] result = new int[isize];<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                int index = get1DIndex(i, j);<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                }<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                return result;<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>        @Override<a name="line.676"></a>
+<span class="sourceLineNo">677</span>        public int[] getIntArray(final int... pos) {<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                int[] result = new int[isize];<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                int index = get1DIndex(pos);<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                }<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                return result;<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>        @Override<a name="line.686"></a>
+<span class="sourceLineNo">687</span>        public long[] getLongArray() {<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                long[] result = new long[isize];<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                int index = getFirst1DIndex();<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                }<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                return result;<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 long[] getLongArray(final int i) {<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                long[] result = new long[isize];<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                int index = get1DIndex(i);<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                }<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                return result;<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 long[] getLongArray(final int i, final int j) {<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                long[] result = new long[isize];<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                int index = get1DIndex(i, j);<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                }<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                return result;<a name="line.713"></a>
+<span class="sourceLineNo">714</span>        }<a name="line.714"></a>
+<span class="sourceLineNo">715</span><a name="line.715"></a>
+<span class="sourceLineNo">716</span>        @Override<a name="line.716"></a>
+<span class="sourceLineNo">717</span>        public long[] getLongArray(final int... pos) {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                long[] result = new long[isize];<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                int index = get1DIndex(pos);<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                }<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                return result;<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>        @Override<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        public float[] getFloatArray() {<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                float[] result = new float[isize];<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                int index = getFirst1DIndex();<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                }<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                return result;<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>        @Override<a name="line.736"></a>
+<span class="sourceLineNo">737</span>        public float[] getFloatArray(final int i) {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                float[] result = new float[isize];<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                int index = get1DIndex(i);<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                }<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                return result;<a name="line.743"></a>
+<span class="sourceLineNo">744</span>        }<a name="line.744"></a>
+<span class="sourceLineNo">745</span><a name="line.745"></a>
+<span class="sourceLineNo">746</span>        @Override<a name="line.746"></a>
+<span class="sourceLineNo">747</span>        public float[] getFloatArray(final int i, final int j) {<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                float[] result = new float[isize];<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                int index = get1DIndex(i, j);<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<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>        @Override<a name="line.756"></a>
+<span class="sourceLineNo">757</span>        public float[] getFloatArray(final int... pos) {<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                float[] result = new float[isize];<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                int index = get1DIndex(pos);<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                }<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                return result;<a name="line.763"></a>
+<span class="sourceLineNo">764</span>        }<a name="line.764"></a>
+<span class="sourceLineNo">765</span><a name="line.765"></a>
+<span class="sourceLineNo">766</span>        @Override<a name="line.766"></a>
+<span class="sourceLineNo">767</span>        public double[] getDoubleArray() {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                double[] result = new double[isize];<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                int index = getFirst1DIndex();<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                }<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                return result;<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>        @Override<a name="line.776"></a>
+<span class="sourceLineNo">777</span>        public double[] getDoubleArray(final int i) {<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                double[] result = new double[isize];<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                int index = get1DIndex(i);<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                }<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                return result;<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>        @Override<a name="line.786"></a>
+<span class="sourceLineNo">787</span>        public double[] getDoubleArray(final int i, final int j) {<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                double[] result = new double[isize];<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                int index = get1DIndex(i, j);<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                }<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                return result;<a name="line.793"></a>
+<span class="sourceLineNo">794</span>        }<a name="line.794"></a>
+<span class="sourceLineNo">795</span><a name="line.795"></a>
+<span class="sourceLineNo">796</span>        @Override<a name="line.796"></a>
+<span class="sourceLineNo">797</span>        public double[] getDoubleArray(final int... pos) {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                double[] result = new double[isize];<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                int index = get1DIndex(pos);<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return result;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        @Override<a name="line.806"></a>
+<span class="sourceLineNo">807</span>        public void getDoubleArrayAbs(final int index, final double[] darray) {<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                        darray[i] = data[index + 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><a name="line.812"></a>
+<span class="sourceLineNo">813</span>        @Override<a name="line.813"></a>
+<span class="sourceLineNo">814</span>        public String getString() {<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                return getStringAbs(getFirst1DIndex());<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>        @Override<a name="line.818"></a>
+<span class="sourceLineNo">819</span>        public String getString(final int i) {<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                return getStringAbs(get1DIndex(i));<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 String getString(final int i, final int j) {<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                return getStringAbs(get1DIndex(i, j));<a name="line.825"></a>
+<span class="sourceLineNo">826</span>        }<a name="line.826"></a>
+<span class="sourceLineNo">827</span><a name="line.827"></a>
+<span class="sourceLineNo">828</span>        @Override<a name="line.828"></a>
+<span class="sourceLineNo">829</span>        public String getString(final int... pos) {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                return getStringAbs(get1DIndex(pos));<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>        protected double getFirstValue() {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                return data[getFirst1DIndex()];<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>        protected double getFirstValue(int i) {<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                return data[get1DIndex(i)];<a name="line.840"></a>
+<span class="sourceLineNo">841</span>        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span><a name="line.842"></a>
+<span class="sourceLineNo">843</span>        @Override<a name="line.843"></a>
+<span class="sourceLineNo">844</span>        protected double getFirstValue(int i, int j) {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                return data[get1DIndex(i, j)];<a name="line.845"></a>
+<span class="sourceLineNo">846</span>        }<a name="line.846"></a>
+<span class="sourceLineNo">847</span><a name="line.847"></a>
+<span class="sourceLineNo">848</span>        @Override<a name="line.848"></a>
+<span class="sourceLineNo">849</span>        protected double getFirstValue(final int... pos) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                return data[get1DIndex(pos)];<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>        @Override<a name="line.853"></a>
+<span class="sourceLineNo">854</span>        public Object getObjectAbs(final int index) {<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                short[] result = new short[isize]; // PRIM_TYPE<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        result[i] = data[index + i];<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                }<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                return result;<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 String getStringAbs(final int index) {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                StringBuilder s = new StringBuilder();<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                s.append('(');<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                s.append(stringFormat == null ? String.format("%d", data[index]) : // FORMAT_STRING<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                        stringFormat.format(data[index]));<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                for (int i = 1; i &lt; isize; i++) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                        s.append(' ');<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                        s.append(stringFormat == null ? String.format("%d", data[index + i]) : // FORMAT_STRING<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                                stringFormat.format(data[index + i]));<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                }<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                s.append(')');<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                return s.toString();<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>        @Override<a name="line.877"></a>
+<span class="sourceLineNo">878</span>        public void setObjectAbs(final int index, Object obj) {<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                if (obj instanceof Complex) {<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                        obj = new Complex(((Complex) obj).getReal(), 0);<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                }<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                short[] oa = DTypeUtils.toShortArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                setAbs(index, oa);<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>        @Override<a name="line.886"></a>
+<span class="sourceLineNo">887</span>        public void set(final Object obj) {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                setItem(DTypeUtils.toShortArray(obj, isize)); // CLASS_TYPE<a name="line.888"></a>
+<span class="sourceLineNo">889</span>        }<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>        @Override<a name="line.891"></a>
+<span class="sourceLineNo">892</span>        public void set(final Object obj, final int i) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                setItem(DTypeUtils.toShortArray(obj, isize), i); // CLASS_TYPE<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 void set(final Object obj, final int i, final int j) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                setItem(DTypeUtils.toShortArray(obj, isize), i, j); // CLASS_TYPE<a name="line.898"></a>
+<span class="sourceLineNo">899</span>        }<a name="line.899"></a>
+<span class="sourceLineNo">900</span><a name="line.900"></a>
+<span class="sourceLineNo">901</span>        @Override<a name="line.901"></a>
+<span class="sourceLineNo">902</span>        public void set(final Object obj, int... pos) {<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        pos = new int[shape.length];<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>                setItem(DTypeUtils.toShortArray(obj, isize), pos); // CLASS_TYPE<a name="line.907"></a>
+<span class="sourceLineNo">908</span>        }<a name="line.908"></a>
+<span class="sourceLineNo">909</span><a name="line.909"></a>
+<span class="sourceLineNo">910</span>        /**<a name="line.910"></a>
+<span class="sourceLineNo">911</span>         * Set values at first position. The dataset must not be null<a name="line.911"></a>
+<span class="sourceLineNo">912</span>         *<a name="line.912"></a>
+<span class="sourceLineNo">913</span>         * @param d<a name="line.913"></a>
+<span class="sourceLineNo">914</span>         * @since 2.0<a name="line.914"></a>
+<span class="sourceLineNo">915</span>         */<a name="line.915"></a>
+<span class="sourceLineNo">916</span>        public void setItem(final short[] d) { // PRIM_TYPE<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                if (d.length &gt; isize) {<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                }<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                setAbs(getFirst1DIndex(), d);<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>        /**<a name="line.923"></a>
+<span class="sourceLineNo">924</span>         * Set values at given position. The dataset must be 1D<a name="line.924"></a>
+<span class="sourceLineNo">925</span>         *<a name="line.925"></a>
+<span class="sourceLineNo">926</span>         * @param d<a name="line.926"></a>
+<span class="sourceLineNo">927</span>         * @param i<a name="line.927"></a>
+<span class="sourceLineNo">928</span>         */<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        public void setItem(final short[] d, final int i) { // PRIM_TYPE<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                if (d.length &gt; isize) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                }<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                setAbs(get1DIndex(i), d);<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>         * Set values at given position. The dataset must be 1D<a name="line.937"></a>
+<span class="sourceLineNo">938</span>         *<a name="line.938"></a>
+<span class="sourceLineNo">939</span>         * @param d<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>         */<a name="line.942"></a>
+<span class="sourceLineNo">943</span>        public void setItem(final short[] d, final int i, final int j) { // PRIM_TYPE<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                if (d.length &gt; isize) {<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                }<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                setAbs(get1DIndex(i, j), d);<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>         * Set values at given position<a name="line.951"></a>
+<span class="sourceLineNo">952</span>         *<a name="line.952"></a>
+<span class="sourceLineNo">953</span>         * @param d<a name="line.953"></a>
+<span class="sourceLineNo">954</span>         * @param pos<a name="line.954"></a>
+<span class="sourceLineNo">955</span>         */<a name="line.955"></a>
+<span class="sourceLineNo">956</span>        public void setItem(final short[] d, final int... pos) { // PRIM_TYPE<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                if (d.length &gt; isize) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                }<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                setAbs(get1DIndex(pos), d);<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>        private void setDoubleArrayAbs(final int index, final double[] d) {<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                for (int i = 0; i &lt; isize; i++)<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                        data[index + i] = (short) d[i]; // ADD_CAST<a name="line.965"></a>
+<span class="sourceLineNo">966</span>        }<a name="line.966"></a>
+<span class="sourceLineNo">967</span><a name="line.967"></a>
+<span class="sourceLineNo">968</span>        @Override<a name="line.968"></a>
+<span class="sourceLineNo">969</span>        public void resize(int... newShape) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                setDirty();<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                IndexIterator iter = getIterator();<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                int nsize = ShapeUtils.calcSize(newShape);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                short[] ndata; // PRIM_TYPE<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                try {<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                        ndata = createArray(nsize);<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                } catch (Throwable t) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                        throw new IllegalArgumentException(t);<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>                int i = 0;<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                while (iter.hasNext() &amp;&amp; i &lt; nsize) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                ndata[i++] = data[iter.index + j];<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>                odata = data = ndata;<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                size = nsize;<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                shape = newShape;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                stride = null;<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                offset = 0;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                base = null;<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>        @Override<a name="line.996"></a>
+<span class="sourceLineNo">997</span>        public CompoundShortDataset getSlice(final SliceIterator siter) {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                CompoundShortDataset result = new CompoundShortDataset(isize, siter.getShape());<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                short[] rdata = result.data; // PRIM_TYPE<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                IndexIterator riter = result.getIterator();<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span><a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                while (siter.hasNext() &amp;&amp; riter.hasNext()) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                        for (int i = 0; i &lt; isize; i++)<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                rdata[riter.index + i] = data[siter.index + i];<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>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                return result;<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>        @Override<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>        public ShortDataset getElementsView(int element) { // CLASS_TYPE<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                if (element &lt; 0)<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        element += isize;<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<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>                ShortDataset view = new ShortDataset(shape); // CLASS_TYPE<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span><a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                copyToView(this, view, true, true);<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                view.setData();<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                if (view.stride == null) {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                        int[] offset = new int[1];<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                        view.stride = createStrides(this, offset);<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                        view.offset = offset[0] + element;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                        view.base = base == null ? this : base;<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                } else {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                        view.offset += element;<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>                return view;<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>        }<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span><a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>        @Override<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>        public ShortDataset getElements(int element) { // CLASS_TYPE<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                final ShortDataset elements = new ShortDataset(shape); // CLASS_TYPE<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span><a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                copyElements(elements, element);<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                return elements;<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>        @Override<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>        public void copyElements(Dataset destination, int element) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                if (element &lt; 0)<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        element += isize;<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                if (getElementClass() != destination.getElementClass()) {<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<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>                final IndexIterator it = getIterator(element);<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                final short[] elements = ((ShortDataset) destination).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                destination.setDirty();<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span><a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                int n = 0;<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                while (it.hasNext()) {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                        elements[n] = data[it.index];<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        n++;<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>        }<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span><a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>        @Override<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>        public void setElements(Dataset source, int element) {<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                setDirty();<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                if (element &lt; 0)<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                        element += isize;<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                }<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                if (getElementClass() != source.getElementClass()) {<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        throw new IllegalArgumentException("Element class of destination does not match this 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>                final IndexIterator it = getIterator(element);<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                final short[] elements = ((ShortDataset) source).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span><a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                int n = 0;<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                while (it.hasNext()) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                        data[it.index] = elements[n];<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                        n++;<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>        @Override<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                IndexIterator riter = result.getIterator();<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                result.setDirty();<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span><a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                short[] rdata = ((CompoundShortDataset) result).data; // PRIM_TYPE<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span><a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                rdata[riter.index + i] = data[iter.index + i];<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>        @Override<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>        public CompoundShortDataset setByBoolean(final Object o, Dataset selection) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                setDirty();<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                if (o instanceof Dataset) {<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                        Dataset ds = (Dataset) o;<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        if (length != ds.getSize()) {<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                                throw new IllegalArgumentException(<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        IndexIterator iter = ds.getIterator();<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                        BooleanIterator biter = getBooleanIterator(selection);<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span><a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                }<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span><a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                data[biter.index + i] = (short) ds.getElementLongAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<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>                        } else {<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                        data[biter.index] = (short) ds.getElementLongAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                                data[biter.index + i] = 0;<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>                        try {<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                final short[] vr = DTypeUtils.toShortArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span><a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                final BooleanIterator biter = getBooleanIterator(selection);<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span><a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                while (biter.hasNext()) {<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                                data[biter.index + i] = vr[i];<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>                        } catch (IllegalArgumentException e) {<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>        }<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span><a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>        @Override<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        public CompoundShortDataset setBy1DIndex(final Object o, Dataset index) {<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                setDirty();<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                if (o instanceof Dataset) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                        Dataset ds = (Dataset) o;<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                        if (index.getSize() != ds.getSize()) {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                throw new IllegalArgumentException(<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                                "Number of items in selection does not match number of items in dataset");<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span><a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                        IndexIterator oiter = ds.getIterator();<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span><a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                double[] temp = new double[isize];<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                        ((AbstractCompoundDataset) ds).getDoubleArrayAbs(oiter.index, temp);<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                        setDoubleArrayAbs(iter.index, temp);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                }<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                                                data[iter.index + i] = (short) ds.getElementLongAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<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>                        } else {<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>                                        data[iter.index] = (short) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                                                data[iter.index + i] = 0;<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>                } else {<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                        try {<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                                final short[] vr = DTypeUtils.toShortArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span><a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                                final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                while (iter.hasNext()) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                                        setAbs(iter.index, vr);<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                }<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                        } catch (IllegalArgumentException e) {<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<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>        @Override<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>        public CompoundShortDataset setByIndexes(final Object o, final Object... indexes) {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                setDirty();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                final int[] pos = iter.getPos();<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span><a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                if (o instanceof Dataset) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                        Dataset ds = (Dataset) o;<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                                throw new IllegalArgumentException(<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                                                "Number of items in selection does not match number of items in dataset");<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                        }<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span><a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                        IndexIterator oiter = ds.getIterator();<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span><a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                }<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span><a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                double[] temp = new double[isize];<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        ((AbstractCompoundDataset) ds).getDoubleArray(temp, pos);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                        setDoubleArrayAbs(get1DIndex(pos), temp);<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                }<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                        } else {<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        int n = get1DIndex(pos);<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                        data[n] = (short) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                                data[n + i] = 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>                } else {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                        try {<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                                final short[] vr = DTypeUtils.toShortArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                                while (iter.hasNext()) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                        setAbs(get1DIndex(pos), vr);<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                        } catch (IllegalArgumentException e) {<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<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>        @Override<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>        CompoundShortDataset setSlicedView(Dataset view, Dataset d) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                setDirty();<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span><a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                final int is = view.getElementsPerItem();<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span><a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                if (is &gt; 1) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                        if (d.getElementsPerItem() == 1) {<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                while (it.hasNext()) {<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                        final short bv = (short) it.bLong; // PRIM_TYPE // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                        data[it.aIndex] = bv;<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                                data[it.aIndex + j] = bv;<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                                        }<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                        } else {<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                while (it.hasNext()) {<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                                        data[it.aIndex] = (short) it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                                data[it.aIndex + j] = (short) d.getElementLongAbs(it.bIndex + j); // GET_ELEMENT_WITH_CAST<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>                } else {<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                        while (it.hasNext()) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                data[it.aIndex] = (short) it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                        }<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                return this;<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>        @Override<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>        public CompoundShortDataset setSlice(final Object o, final IndexIterator siter) {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                setDirty();<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                if (o instanceof IDataset) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                        final IDataset ds = (IDataset) o;<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                        final int[] oshape = ds.getShape();<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span><a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                throw new IllegalArgumentException(String.format(<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                                                Arrays.toString(siter.getShape())));<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                        }<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span><a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>                        if (ds instanceof Dataset) {<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                                final Dataset ads = (Dataset) ds;<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                IndexIterator oiter = ads.getIterator();<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span><a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                if (ds instanceof AbstractCompoundDataset) {<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                                        if (isize != ads.getElementsPerItem()) {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                                throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                                        data[siter.index + i] = (short) ads.getElementLongAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                                }<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        }<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                } else {<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                                data[siter.index] = (short) ads.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                                        data[siter.index + i] = 0;<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                                }<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                        }<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                }<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                        } else {<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                                final int[] pos = oiter.getPos();<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span><a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                                if (ds.getElementsPerItem() == 1) {<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                                                data[siter.index] = ds.getShort(pos); // PRIM_TYPE<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                                        data[siter.index + i] = 0;<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                                }<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>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                                                final short[] val = DTypeUtils.toShortArray(ds.getObject(pos), isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                                        data[siter.index + i] = val[i];<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>                } else {<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                        try {<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                                final short[] vr = DTypeUtils.toShortArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span><a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                while (siter.hasNext()) {<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                                                data[siter.index + i] = vr[i];<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>                        } catch (IllegalArgumentException e) {<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                        }<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                }<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                return this;<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>        }<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span><a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>        @Override<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                short[] ddata = (short[]) dest.getBuffer(); // PRIM_TYPE<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span><a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                if (dest.getElementsPerItem() != isize) {<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                        throw new IllegalArgumentException(String.format(<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                        "Destination dataset is incompatible as it has %d elements per item not %d",<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                                        dest.getElementsPerItem(), isize));<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>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span><a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span><a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                }<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span><a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                dest.setDirty();<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                                ddata[diter.index + i] = data[siter.index + i];<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                        }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                }<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>        }<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span><a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>        @Override<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                setDirty();<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                short[] sdata = (short[]) src; // PRIM_TYPE<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span><a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span><a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                        throw new IllegalArgumentException("source array is not large enough");<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                }<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span><a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                for (int i = 0; siter.hasNext(); i++) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                data[siter.index + j] = sdata[isize * i + j];<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><a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>        @Override<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>        public boolean containsNans() {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                return false;<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>        @Override<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>        public boolean containsInfs() {<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                return false;<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>        }<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span><a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>        @Override<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>        public boolean containsInvalidNumbers() {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                return false;<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 CompoundShortDataset iadd(final Object b) {<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                setDirty();<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                int is = bds.getElementsPerItem();<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                if (bds.getSize() == 1) {<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>                        final IndexIterator it = getIterator();<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        final int bOffset = bds.getOffset();<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                        if (is == 1) {<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                                if (useLong) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                                        while (it.hasNext()) {<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                                        data[it.index + i] += lb;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                                }<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                        }<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                } else {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                        while (it.hasNext()) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                        data[it.index + i] += db;<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>                                }<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                        } else if (is == isize) {<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                                if (useLong) {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                        while (it.hasNext()) {<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                        data[it.index + i] += bds.getElementLongAbs(i);<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>                                } else {<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        while (it.hasNext()) {<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                        data[it.index + i] += bds.getElementDoubleAbs(i);<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                }<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                        }<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                }<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                        } else {<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                        }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                } else {<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                        it.setOutputDouble(!useLong);<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                        if (is == 1) {<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                if (useLong) {<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                                        while (it.hasNext()) {<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                                                final long lb = it.bLong;<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                                data[it.aIndex] += lb;<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                                        data[it.aIndex + i] += lb;<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 {<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                        while (it.hasNext()) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                                                final double db = it.bDouble;<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                                                data[it.aIndex] += db;<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                                        data[it.aIndex + i] += db;<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>                                }<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                        } else if (is == isize) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                if (useLong) {<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                        while (it.hasNext()) {<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                                data[it.aIndex] += it.bLong;<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                                        data[it.aIndex + i] += bds.getElementLongAbs(it.bIndex + i);<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>                                } else {<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                                        while (it.hasNext()) {<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                                                        data[it.aIndex + i] += bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>                                                }<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>                        } else {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                        }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                }<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                return this;<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>        }<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span><a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>        @Override<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>        public CompoundShortDataset isubtract(final Object b) {<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                setDirty();<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                int is = bds.getElementsPerItem();<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                if (bds.getSize() == 1) {<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                        final IndexIterator it = getIterator();<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                        final int bOffset = bds.getOffset();<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>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                        while (it.hasNext()) {<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                        data[it.index + i] -= lb;<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                        }<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                } else {<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<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] -= db;<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 if (is == isize) {<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                                if (useLong) {<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                                        while (it.hasNext()) {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                                        data[it.index + i] -= bds.getElementLongAbs(i);<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>                                } else {<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                        while (it.hasNext()) {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                                        data[it.index + i] -= bds.getElementDoubleAbs(i);<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                                }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                        }<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                }<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                        } else {<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                        }<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                } else {<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                        it.setOutputDouble(!useLong);<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                        if (is == 1) {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                if (useLong) {<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                        while (it.hasNext()) {<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                                final long lb = it.bLong;<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                                data[it.aIndex] += lb;<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                        data[it.aIndex + i] -= lb;<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>                                } else {<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                                        while (it.hasNext()) {<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                                                final double db = it.bDouble;<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                                                data[it.aIndex] += db;<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>                                                        data[it.aIndex + i] -= db;<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>                                }<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                        } else if (is == isize) {<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                if (useLong) {<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                        while (it.hasNext()) {<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                                data[it.aIndex] += it.bLong;<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                                        data[it.aIndex + i] -= bds.getElementLongAbs(it.bIndex + i);<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>                                } else {<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                                        while (it.hasNext()) {<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                                                        data[it.aIndex + i] -= bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                                                }<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                        }<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                }<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                        } else {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                return this;<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>        }<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span><a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>        @Override<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>        public CompoundShortDataset imultiply(final Object b) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                setDirty();<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                int is = bds.getElementsPerItem();<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                if (bds.getSize() == 1) {<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                        final IndexIterator it = getIterator();<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                        final int bOffset = bds.getOffset();<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                        if (useLong) {<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                                if (is == 1) {<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                                        while (it.hasNext()) {<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                                        data[it.index + i] *= lb;<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>                                } else if (is == isize) {<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                        while (it.hasNext()) {<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                                        data[it.index + i] *= bds.getElementLongAbs(i);<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                                }<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                        }<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                } else {<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                                if (is == 1) {<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                                        while (it.hasNext()) {<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                                                        data[it.index + i] *= db;<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                                }<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                        }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                } else if (is == isize) {<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                        while (it.hasNext()) {<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.index + i] *= bds.getElementDoubleAbs(i);<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 {<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                }<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                        }<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                } else {<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                        it.setOutputDouble(!useLong);<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                        if (useLong) {<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                if (is == 1) {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                                        while (it.hasNext()) {<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                                                final double lb = it.bLong;<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                                                        data[it.aIndex + i] *= lb;<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>                                } else if (is == isize) {<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                                        while (it.hasNext()) {<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                                                data[it.aIndex] *= it.bLong;<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                                                        data[it.aIndex + i] *= bds.getElementLongAbs(it.bIndex + i);<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                                }<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                        }<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                } else {<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                                if (is == 1) {<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                                        while (it.hasNext()) {<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>                                                final double db = it.bDouble;<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                                        data[it.aIndex + i] *= db;<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>                                } else if (is == isize) {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                        while (it.hasNext()) {<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                                data[it.aIndex] *= it.bDouble;<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                                        data[it.aIndex + i] *= bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                                }<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                        }<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                } else {<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                }<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                        }<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                return this;<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>        }<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span><a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>        @Override<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>        public CompoundShortDataset idivide(final Object b) {<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                setDirty();<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                int is = bds.getElementsPerItem();<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                if (bds.getSize() == 1) {<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                        final IndexIterator it = getIterator();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>                        final int bOffset = bds.getOffset();<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                        if (useLong) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                if (is == 1) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                        if (lb == 0) { // INT_USE<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                                fill(0); // INT_USE<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                        } else { // INT_USE<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                        while (it.hasNext()) {<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                                        data[it.index + i] /= lb;<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>                                        } // INT_USE<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                } else if (is == isize) {<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                        while (it.hasNext()) {<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                                                        final long lb = bds.getElementLongAbs(i);<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                                try {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                                                                data[it.index + i] /= lb; // INT_EXCEPTION<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                                } catch (ArithmeticException e) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                        data[it.index + i] = 0;<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>                                } else {<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                }<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                        } else {<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                if (is == 1) {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                        if (db == 0) { // INT_USE<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                fill(0); // INT_USE<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                        } else { // INT_USE<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                        while (it.hasNext()) {<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                                        data[it.index + i] /= db;<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>                                        } // INT_USE<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                } else if (is == isize) {<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                        while (it.hasNext()) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                                        final double db = bds.getElementDoubleAbs(i);<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                try {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                                                data[it.index + i] /= db; // INT_EXCEPTION<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                } catch (ArithmeticException e) {<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        data[it.index + i] = 0;<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                }<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                                }<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                        }<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                } else {<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                        it.setOutputDouble(!useLong);<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                        if (useLong) {<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 long lb = it.bLong;<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                if (lb == 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] /= lb;<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 long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                try {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                                                data[it.aIndex + i] /= lb; // INT_EXCEPTION<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                } catch (ArithmeticException e) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                        data[it.aIndex + i] = 0;<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>                                        }<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                                } else {<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                                }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                        } else {<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>                                if (is == 1) {<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                                        while (it.hasNext()) {<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                                                final double db = it.bDouble;<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                                                if (db == 0) { // INT_USE<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                                                        for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                                                        }// INT_USE<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                                                } else { // INT_USE<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                                                        data[it.aIndex + i] /= db;<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                                }<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                                } // INT_USE<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                        }<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                } else if (is == isize) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                        while (it.hasNext()) {<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                try {<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                                                data[it.aIndex + i] /= db; // INT_EXCEPTION<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                } catch (ArithmeticException e) {<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                                        data[it.aIndex + i] = 0;<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>                                        }<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                } else {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                return this;<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>        }<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span><a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>        @Override<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>        public CompoundShortDataset ifloor() {<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                return this;<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>        @Override<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>        public CompoundShortDataset iremainder(final Object b) {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                setDirty();<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                int is = bds.getElementsPerItem();<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                if (bds.getSize() == 1) {<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                        final IndexIterator it = getIterator();<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                        final int bOffset = bds.getOffset();<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                        if (useLong) {<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                if (is == 1) {<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                                        if (lb == 0) { // INT_USE<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                                                fill(0); // INT_USE<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                                        } else { // INT_USE<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                                        while (it.hasNext()) {<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                                                        data[it.index + i] %= lb;<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>                                        } // INT_USE<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                } else if (is == isize) {<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                                        while (it.hasNext()) {<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                try {<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                                                data[it.index + i] %= bds.getElementLongAbs(i); // INT_EXCEPTION<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                } catch (ArithmeticException e) {<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                        data[it.index + i] = 0;<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>                                        }<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                } else {<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                                if (is == 1) {<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                        if (db == 0) { // INT_USE<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                                                fill(0); // INT_USE<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                        } else { // INT_USE<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                        while (it.hasNext()) {<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                                        data[it.index + i] %= db;<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>                                        } // INT_USE<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                                } else if (is == isize) {<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                                        while (it.hasNext()) {<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span>                                try {<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                                                                data[it.index + i] %= bds.getElementDoubleAbs(i); // INT_EXCEPTION<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                } catch (ArithmeticException e) {<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                        data[it.index + i] = 0;<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>                                } else {<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                } else {<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                        it.setOutputDouble(!useLong);<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                        if (useLong) {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                if (is == 1) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                        while (it.hasNext()) {<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                final long lb = it.bLong;<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                                if (lb == 0) { // INT_USE<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                        for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                                } else { // INT_USE<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                                                for (int i = 0; i &lt; isize; i++)<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                                        data[it.aIndex + i] %= lb;<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                                } // INT_USE<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                        }<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                } else if (is == isize) {<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                        while (it.hasNext()) {<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                                try {<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                                                                data[it.aIndex + i] %= lb; // INT_EXCEPTION<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                                } catch (ArithmeticException e) {<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>                                        data[it.aIndex + i] = 0;<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                                }<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                                                }<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>                                        }<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                                } else {<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>                                }<a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>                        } else {<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span>                                if (is == 1) {<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>                                        while (it.hasNext()) {<a name="line.1896"></a>
+<span class="sourceLineNo">1897</span>                                                final double db = it.bDouble;<a name="line.1897"></a>
+<span class="sourceLineNo">1898</span>                                                if (db == 0) { // INT_USE<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>                                                        for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>                                                } else { // INT_USE<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>                                                        data[it.aIndex + i] %= db;<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span>                                                }<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>                                } else if (is == isize) {<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span>                                        while (it.hasNext()) {<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span>                                try {<a name="line.1911"></a>
+<span class="sourceLineNo">1912</span>                                                                data[it.aIndex + i] %= db; // INT_EXCEPTION<a name="line.1912"></a>
+<span class="sourceLineNo">1913</span>                                } catch (ArithmeticException e) {<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>                                        data[it.aIndex + i] = 0;<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>                                }<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>                                                }<a name="line.1916"></a>
+<span class="sourceLineNo">1917</span>                                        }<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span>                                } else {<a name="line.1918"></a>
+<span class="sourceLineNo">1919</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                }<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>                return this;<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span>        }<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span><a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>        @Override<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>        public CompoundShortDataset ipower(final Object b) {<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>                setDirty();<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>                final int is = bds.getElementsPerItem();<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>                if (bds.getSize() == 1) {<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>                        final int bOffset = bds.getOffset();<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span>                        final double vr = bds.getElementDoubleAbs(bOffset);<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span>                        final IndexIterator it = getIterator();<a name="line.1934"></a>
+<span class="sourceLineNo">1935</span>                        if (bds.isComplex()) {<a name="line.1935"></a>
+<span class="sourceLineNo">1936</span>                                final double vi = bds.getElementDoubleAbs(bOffset + 1);<a name="line.1936"></a>
+<span class="sourceLineNo">1937</span>                                if (vi == 0) {<a name="line.1937"></a>
+<span class="sourceLineNo">1938</span>                                        while (it.hasNext()) {<a name="line.1938"></a>
+<span class="sourceLineNo">1939</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1939"></a>
+<span class="sourceLineNo">1940</span>                                                        final double v = Math.pow(data[it.index + i], vr);<a name="line.1940"></a>
+<span class="sourceLineNo">1941</span>                                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1941"></a>
+<span class="sourceLineNo">1942</span>                                                                data[it.index + i] = 0; // INT_USE<a name="line.1942"></a>
+<span class="sourceLineNo">1943</span>                                                        } else { // INT_USE<a name="line.1943"></a>
+<span class="sourceLineNo">1944</span>                                                        data[it.index + i] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1944"></a>
+<span class="sourceLineNo">1945</span>                                                        } // INT_USE<a name="line.1945"></a>
+<span class="sourceLineNo">1946</span>                                                }<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span>                                        }<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span>                                } else {<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span>                                        final Complex zv = new Complex(vr, vi);<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span>                                        while (it.hasNext()) {<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1951"></a>
+<span class="sourceLineNo">1952</span>                                                        Complex zd = new Complex(data[it.index + i], 0);<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span>                                                        final double v = zd.pow(zv).getReal();<a name="line.1953"></a>
+<span class="sourceLineNo">1954</span>                                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1954"></a>
+<span class="sourceLineNo">1955</span>                                                                data[it.index + i] = 0; // INT_USE<a name="line.1955"></a>
+<span class="sourceLineNo">1956</span>                                                        } else { // INT_USE<a name="line.1956"></a>
+<span class="sourceLineNo">1957</span>                                                        data[it.index + i] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1957"></a>
+<span class="sourceLineNo">1958</span>                                                        } // INT_USE<a name="line.1958"></a>
+<span class="sourceLineNo">1959</span>                                                }<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span>                                        }<a name="line.1960"></a>
+<span class="sourceLineNo">1961</span>                                }<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span>                        } else if (is == 1) {<a name="line.1962"></a>
+<span class="sourceLineNo">1963</span>                                while (it.hasNext()) {<a name="line.1963"></a>
+<span class="sourceLineNo">1964</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1964"></a>
+<span class="sourceLineNo">1965</span>                                                final double v = Math.pow(data[it.index + i], vr);<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.index + i] = 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.index + i] = (short) (long) 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>                                        }<a name="line.1971"></a>
+<span class="sourceLineNo">1972</span>                                }<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span>                        } else if (is == isize) {<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span>                                while (it.hasNext()) {<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span>                                                final double v = Math.pow(data[it.index + i], bds.getElementDoubleAbs(i));<a name="line.1976"></a>
+<span class="sourceLineNo">1977</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1977"></a>
+<span class="sourceLineNo">1978</span>                                                        data[it.index + i] = 0; // INT_USE<a name="line.1978"></a>
+<span class="sourceLineNo">1979</span>                                                } else { // INT_USE<a name="line.1979"></a>
+<span class="sourceLineNo">1980</span>                                                data[it.index + i] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1980"></a>
+<span class="sourceLineNo">1981</span>                                                } // INT_USE<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>                } else {<a name="line.1985"></a>
+<span class="sourceLineNo">1986</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1986"></a>
+<span class="sourceLineNo">1987</span>                        it.setOutputDouble(true);<a name="line.1987"></a>
+<span class="sourceLineNo">1988</span>                        if (bds.isComplex()) {<a name="line.1988"></a>
+<span class="sourceLineNo">1989</span>                                while (it.hasNext()) {<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.1990"></a>
+<span class="sourceLineNo">1991</span>                                        double v = new Complex(it.aDouble, 0).pow(zv).getReal();<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1993"></a>
+<span class="sourceLineNo">1994</span>                                        } else { // INT_USE<a name="line.1994"></a>
+<span class="sourceLineNo">1995</span>                                        data[it.aIndex] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1995"></a>
+<span class="sourceLineNo">1996</span>                                        } // INT_USE<a name="line.1996"></a>
+<span class="sourceLineNo">1997</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1997"></a>
+<span class="sourceLineNo">1998</span>                                                v = new Complex(data[it.aIndex + i], 0).pow(zv).getReal();<a name="line.1998"></a>
+<span class="sourceLineNo">1999</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1999"></a>
+<span class="sourceLineNo">2000</span>                                                        data[it.aIndex + i] = 0; // INT_USE<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span>                                                } else { // INT_USE<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span>                                                data[it.aIndex + i] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>                                                } // INT_USE<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>                                        }<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span>                                }<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>                        } else {<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>                                while (it.hasNext()) {<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span>                                        double v = Math.pow(it.aDouble, it.bDouble);<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span>                                        } else { // INT_USE<a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>                                        data[it.aIndex] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>                                        } // INT_USE<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>                                                v = Math.pow(data[it.aIndex + i], bds.getElementDoubleAbs(it.bIndex + i));<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span>                                                        data[it.aIndex + i] = 0; // INT_USE<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>                                                } else { // INT_USE<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span>                                                data[it.aIndex + i] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>                                                } // INT_USE<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>                                        }<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>                                }<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>                        }<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>                }<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span>                return this;<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>        @Override<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.2030"></a>
+<span class="sourceLineNo">2031</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.2031"></a>
+<span class="sourceLineNo">2032</span>                it.setOutputDouble(true);<a name="line.2032"></a>
+<span class="sourceLineNo">2033</span>                double sum = 0;<a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>                double comp = 0;<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>                final int bis = bds.getElementsPerItem();<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span><a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>                if (bis == 1) {<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>                        if (w == null) {<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span>                                while (it.hasNext()) {<a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>                                        final double db = it.bDouble;<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>                                        double diff = it.aDouble - db;<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>                                        double err = diff * diff - comp;<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>                                        double temp = sum + err;<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>                                        comp = (temp - sum) - err;<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span>                                        sum = temp;<a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>                                                err = diff * diff - comp;<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>                                                temp = sum + err;<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>                                                comp = (temp - sum) - err;<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span>                                                sum = temp;<a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>                                        }<a name="line.2052"></a>
+<span class="sourceLineNo">2053</span>                                }<a name="line.2053"></a>
+<span class="sourceLineNo">2054</span>                        } else {<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span>                                IndexIterator itw = w.getIterator();<a name="line.2055"></a>
+<span class="sourceLineNo">2056</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2056"></a>
+<span class="sourceLineNo">2057</span>                                        final double db = it.bDouble;<a name="line.2057"></a>
+<span class="sourceLineNo">2058</span>                                        double diff = it.aDouble - db;<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span>                                        double err = diff * diff * dw - comp;<a name="line.2060"></a>
+<span class="sourceLineNo">2061</span>                                        double 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>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>                                                err = diff * diff * dw - comp;<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>                                                temp = sum + err;<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>                                                comp = (temp - sum) - err;<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span>                                                sum = temp;<a name="line.2069"></a>
+<span class="sourceLineNo">2070</span>                                        }<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span>                                }<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span>                        }<a name="line.2072"></a>
+<span class="sourceLineNo">2073</span>                } else {<a name="line.2073"></a>
+<span class="sourceLineNo">2074</span>                        if (w == null) {<a name="line.2074"></a>
+<span class="sourceLineNo">2075</span>                                while (it.hasNext()) {<a name="line.2075"></a>
+<span class="sourceLineNo">2076</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2076"></a>
+<span class="sourceLineNo">2077</span>                                        double err = diff * diff - comp;<a name="line.2077"></a>
+<span class="sourceLineNo">2078</span>                                        double temp = sum + err;<a name="line.2078"></a>
+<span class="sourceLineNo">2079</span>                                        comp = (temp - sum) - err;<a name="line.2079"></a>
+<span class="sourceLineNo">2080</span>                                        sum = temp;<a name="line.2080"></a>
+<span class="sourceLineNo">2081</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2081"></a>
+<span class="sourceLineNo">2082</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2082"></a>
+<span class="sourceLineNo">2083</span>                                                err = diff * diff - comp;<a name="line.2083"></a>
+<span class="sourceLineNo">2084</span>                                                temp = sum + err;<a name="line.2084"></a>
+<span class="sourceLineNo">2085</span>                                                comp = (temp - sum) - err;<a name="line.2085"></a>
+<span class="sourceLineNo">2086</span>                                                sum = temp;<a name="line.2086"></a>
+<span class="sourceLineNo">2087</span>                                        }<a name="line.2087"></a>
+<span class="sourceLineNo">2088</span>                                }<a name="line.2088"></a>
+<span class="sourceLineNo">2089</span>                        } else {<a name="line.2089"></a>
+<span class="sourceLineNo">2090</span>                                IndexIterator itw = w.getIterator();<a name="line.2090"></a>
+<span class="sourceLineNo">2091</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2091"></a>
+<span class="sourceLineNo">2092</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2092"></a>
+<span class="sourceLineNo">2093</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2093"></a>
+<span class="sourceLineNo">2094</span>                                        double err = diff * diff * dw - comp;<a name="line.2094"></a>
+<span class="sourceLineNo">2095</span>                                        double temp = sum + err;<a name="line.2095"></a>
+<span class="sourceLineNo">2096</span>                                        comp = (temp - sum) - err;<a name="line.2096"></a>
+<span class="sourceLineNo">2097</span>                                        sum = temp;<a name="line.2097"></a>
+<span class="sourceLineNo">2098</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2098"></a>
+<span class="sourceLineNo">2099</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2099"></a>
+<span class="sourceLineNo">2100</span>                                                err = diff * diff * dw - comp;<a name="line.2100"></a>
+<span class="sourceLineNo">2101</span>                                                temp = sum + err;<a name="line.2101"></a>
+<span class="sourceLineNo">2102</span>                                                comp = (temp - sum) - err;<a name="line.2102"></a>
+<span class="sourceLineNo">2103</span>                                                sum = temp;<a name="line.2103"></a>
+<span class="sourceLineNo">2104</span>                                        }<a name="line.2104"></a>
+<span class="sourceLineNo">2105</span>                                }<a name="line.2105"></a>
+<span class="sourceLineNo">2106</span>                        }<a name="line.2106"></a>
+<span class="sourceLineNo">2107</span>                }<a name="line.2107"></a>
+<span class="sourceLineNo">2108</span>                return sum;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ContiguousIterator.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ContiguousIterator.html
new file mode 100644
index 0000000..1761099
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/dataset/ContiguousIteratorWithPosition.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ContiguousIteratorWithPosition.html
new file mode 100644
index 0000000..39f5f7a
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ContiguousIteratorWithPosition.html
@@ -0,0 +1,174 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.Arrays;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>/**<a name="line.18"></a>
+<span class="sourceLineNo">019</span> * Class to run over contiguous datasets and keep track of position. Note this is slower than ContiguousIterator<a name="line.19"></a>
+<span class="sourceLineNo">020</span> */<a name="line.20"></a>
+<span class="sourceLineNo">021</span>public class ContiguousIteratorWithPosition extends IndexIterator {<a name="line.21"></a>
+<span class="sourceLineNo">022</span>        final private int[] shape;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>        final private int endrank; // last dimensions index<a name="line.23"></a>
+<span class="sourceLineNo">024</span>        final private int imax; // maximum index in array<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        final private int istep; // step over items<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        final private int[] pos; // position in dataset<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>        /**<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         * Constructor for an iterator over the items of a dataset that are<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         * within the dimensions<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         *<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * @param shape<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * @param length of entire data array<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         */<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        public ContiguousIteratorWithPosition(final int[] shape, final int length) {<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                this(shape, length, 1);<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        }<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>        /**<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * Constructor for an iterator over the items of a dataset that are<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * within the dimensions<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         *<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param shape<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param length of entire data array<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * @param isize number of elements in an item<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         */<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        public ContiguousIteratorWithPosition(final int[] shape, final int length, final int isize) {<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                this.shape = shape;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                endrank = this.shape.length - 1;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                istep = isize;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                if (shape.length == 0) {<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                        pos = new int[0];<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                } else {<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                        pos = new int[endrank + 1];<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                        pos[endrank] = -1;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                }<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                index = -isize;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                imax = length * isize;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>        }<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>        @Override<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        public boolean hasNext() {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                // now move on one position<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                int j = endrank;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                for (; j &gt;= 0; j--) {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                        pos[j]++;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        if (pos[j] &gt;= shape[j]) {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                                pos[j] = 0;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                        } else {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                                break;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                        }<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                }<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                if (j == -1 &amp;&amp; endrank &gt;= 0) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        return false;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                }<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>                index += istep;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                return index &lt; imax;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>        }<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>        /**<a name="line.81"></a>
+<span class="sourceLineNo">082</span>         * @return position indices (nb not a copy)<a name="line.82"></a>
+<span class="sourceLineNo">083</span>         */<a name="line.83"></a>
+<span class="sourceLineNo">084</span>        @Override<a name="line.84"></a>
+<span class="sourceLineNo">085</span>        public int[] getPos() {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                return pos;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>        }<a name="line.87"></a>
+<span class="sourceLineNo">088</span><a name="line.88"></a>
+<span class="sourceLineNo">089</span>        @Override<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        public void reset() {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                if (shape.length &gt; 0) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        Arrays.fill(pos, 0);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                        pos[endrank] = -1;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                }<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                index = -istep;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>        }<a name="line.96"></a>
+<span class="sourceLineNo">097</span><a name="line.97"></a>
+<span class="sourceLineNo">098</span>        @Override<a name="line.98"></a>
+<span class="sourceLineNo">099</span>        public int[] getShape() {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                return shape;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>        }<a name="line.101"></a>
+<span class="sourceLineNo">102</span>}<a name="line.102"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ContiguousPairIterator.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ContiguousPairIterator.html
new file mode 100644
index 0000000..c002a7c
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/dataset/ContiguousSingleIterator.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ContiguousSingleIterator.html
new file mode 100644
index 0000000..31731ea
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/dataset/DTypeUtils.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/DTypeUtils.html
new file mode 100644
index 0000000..86fbd94
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/DTypeUtils.html
@@ -0,0 +1,1307 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.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.LinkedHashMap;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.List;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.Map;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.Map.Entry;<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>import org.slf4j.Logger;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.slf4j.LoggerFactory;<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>public class DTypeUtils {<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        protected static final Logger logger = LoggerFactory.getLogger(DTypeUtils.class);<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 LinkedHashMap&lt;&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(ComplexFloatDataset.class, Dataset.COMPLEX64);<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                map.put(ComplexDoubleDataset.class, Dataset.COMPLEX128);<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                map.put(CompoundByteDataset.class, Dataset.ARRAYINT8);<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                map.put(CompoundShortDataset.class, Dataset.ARRAYINT16);<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                map.put(CompoundIntegerDataset.class, Dataset.ARRAYINT32);<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                map.put(CompoundLongDataset.class, Dataset.ARRAYINT64);<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                map.put(CompoundFloatDataset.class, Dataset.ARRAYFLOAT32);<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                map.put(CompoundDoubleDataset.class, Dataset.ARRAYFLOAT64);<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                map.put(StringDataset.class, Dataset.STRING);<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                map.put(ObjectDataset.class, Dataset.OBJECT);<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>                return map;<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>        static final Map&lt;Class&lt;? extends Dataset&gt;, Integer&gt; interface2DTypes; // map interface to dataset type<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        private static final Map&lt;Integer, Class&lt;? extends Dataset&gt;&gt; dtype2Interface; // map dataset type to interface<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        static {<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                interface2DTypes = createInterfaceMap();<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                dtype2Interface = new HashMap&lt;&gt;();<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                for (Entry&lt;Class&lt;? extends Dataset&gt;, Integer&gt; e : interface2DTypes.entrySet()) {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                        dtype2Interface.put(e.getValue(), e.getKey());<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>        /**<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * @param a<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         * @return name of dataset type<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         */<a name="line.64"></a>
+<span class="sourceLineNo">065</span>        public static String getDTypeName(Dataset a) {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                return getDatasetName(a);<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 a<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         * @return name of dataset type<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         */<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        public static String getDTypeName(ILazyDataset a) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                return getDatasetName(a);<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 dtype<a name="line.78"></a>
+<span class="sourceLineNo">079</span>         * @param itemSize<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         * @return name of dataset type<a name="line.80"></a>
+<span class="sourceLineNo">081</span>         */<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        public static String getDTypeName(int dtype, int itemSize) {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                return getDatasetName(dtype2Interface.get(dtype), itemSize);<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 clazz dataset class<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         * @return dataset type for dataset class<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        public static int getDType(Class&lt;? extends Dataset&gt; clazz) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                if (!interface2DTypes.containsKey(clazz)) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        throw new IllegalArgumentException("Interface class not allowed or supported");<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                return interface2DTypes.get(clazz);<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>        public static boolean isDTypeElemental(int dtype) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                return dtype &lt;= Dataset.DATE;<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>        public static boolean isDTypeInteger(int dtype) {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                return dtype == Dataset.INT8 || dtype == Dataset.INT16 || dtype == Dataset.INT32 || dtype == Dataset.INT64 ||<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                dtype == Dataset.ARRAYINT8 || dtype == Dataset.ARRAYINT16 || dtype == Dataset.ARRAYINT32 || dtype == Dataset.ARRAYINT64 || dtype == Dataset.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>        public static boolean isDTypeFloating(int dtype) {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                return dtype == Dataset.FLOAT32 || dtype == Dataset.FLOAT64 || dtype == Dataset.COMPLEX64 || dtype == Dataset.COMPLEX128 ||<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                                dtype == Dataset.ARRAYFLOAT32 || dtype == Dataset.ARRAYFLOAT64;<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>        public static boolean isDTypeComplex(int dtype) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                return dtype == Dataset.COMPLEX64 || dtype == Dataset.COMPLEX128;<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>         * @param dtype<a name="line.116"></a>
+<span class="sourceLineNo">117</span>         * @return true if dataset type is numerical, i.e. a dataset contains numbers<a name="line.117"></a>
+<span class="sourceLineNo">118</span>         */<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        public static boolean isDTypeNumerical(int dtype) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                return isDTypeInteger(dtype) || isDTypeFloating(dtype) || dtype == Dataset.BOOL;<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>         * Find dataset type that best fits given types The best type takes into account complex and array datasets<a name="line.124"></a>
+<span class="sourceLineNo">125</span>         *<a name="line.125"></a>
+<span class="sourceLineNo">126</span>         * @param atype<a name="line.126"></a>
+<span class="sourceLineNo">127</span>         *            first dataset type<a name="line.127"></a>
+<span class="sourceLineNo">128</span>         * @param btype<a name="line.128"></a>
+<span class="sourceLineNo">129</span>         *            second dataset type<a name="line.129"></a>
+<span class="sourceLineNo">130</span>         * @return best dataset type<a name="line.130"></a>
+<span class="sourceLineNo">131</span>         */<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        public static int getBestDType(final int atype, final int btype) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                return interface2DTypes.get(InterfaceUtils.getBestInterface(getInterface(atype), getInterface(btype)));<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>         * Find floating point dataset type that best fits given types. The best type takes into account complex and array<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         * datasets<a name="line.138"></a>
+<span class="sourceLineNo">139</span>         *<a name="line.139"></a>
+<span class="sourceLineNo">140</span>         * @param otype<a name="line.140"></a>
+<span class="sourceLineNo">141</span>         *            old dataset type<a name="line.141"></a>
+<span class="sourceLineNo">142</span>         * @return best dataset type<a name="line.142"></a>
+<span class="sourceLineNo">143</span>         */<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        public static int getBestFloatDType(final int otype) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                return getDType(InterfaceUtils.getBestFloatInterface(getInterface(otype)));<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>         * Find floating point dataset type that best fits given class The best type takes into account complex and array<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         * datasets<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         *<a name="line.151"></a>
+<span class="sourceLineNo">152</span>         * @param cls<a name="line.152"></a>
+<span class="sourceLineNo">153</span>         *            of an item or element<a name="line.153"></a>
+<span class="sourceLineNo">154</span>         * @return best dataset type<a name="line.154"></a>
+<span class="sourceLineNo">155</span>         */<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        public static int getBestFloatDType(Class&lt;? extends Object&gt; cls) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                return getBestFloatDType(getDTypeFromClass(cls));<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>         * Get dataset type from an element class<a name="line.161"></a>
+<span class="sourceLineNo">162</span>         *<a name="line.162"></a>
+<span class="sourceLineNo">163</span>         * @param cls element class<a name="line.163"></a>
+<span class="sourceLineNo">164</span>         * @return dataset type<a name="line.164"></a>
+<span class="sourceLineNo">165</span>         */<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        public static int getDTypeFromClass(Class&lt;? extends Object&gt; cls) {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                return getDTypeFromClass(cls, 1);<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 dataset type from an element class<a name="line.171"></a>
+<span class="sourceLineNo">172</span>         *<a name="line.172"></a>
+<span class="sourceLineNo">173</span>         * @param cls element class<a name="line.173"></a>
+<span class="sourceLineNo">174</span>         * @return dataset type<a name="line.174"></a>
+<span class="sourceLineNo">175</span>         */<a name="line.175"></a>
+<span class="sourceLineNo">176</span>        public static int getDTypeFromClass(Class&lt;? extends Object&gt; cls, int isize) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                return getDType(InterfaceUtils.getInterfaceFromClass(isize, cls));<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 dataset type from an object. The following are supported: Java Number objects, Apache common math Complex<a name="line.181"></a>
+<span class="sourceLineNo">182</span>         * objects, Java arrays and lists<a name="line.182"></a>
+<span class="sourceLineNo">183</span>         *<a name="line.183"></a>
+<span class="sourceLineNo">184</span>         * @param obj<a name="line.184"></a>
+<span class="sourceLineNo">185</span>         * @return dataset type<a name="line.185"></a>
+<span class="sourceLineNo">186</span>         */<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        public static int getDTypeFromObject(Object obj) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                int dtype = -1;<a name="line.188"></a>
+<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">190</span>                if (obj == null) {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                        return Dataset.OBJECT;<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>                if (obj instanceof List&lt;?&gt;) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                        List&lt;?&gt; jl = (List&lt;?&gt;) obj;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                        int l = jl.size();<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                        for (int i = 0; i &lt; l; i++) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                                int ldtype = getDTypeFromObject(jl.get(i));<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                                if (ldtype &gt; dtype) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                                        dtype = ldtype;<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>                } else if (obj.getClass().isArray()) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                        Class&lt;?&gt; ca = obj.getClass().getComponentType();<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                        if (InterfaceUtils.isElementSupported(ca)) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                                return getDTypeFromClass(ca);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                        }<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        int l = Array.getLength(obj);<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        for (int i = 0; i &lt; l; i++) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                                Object lo = Array.get(obj, i);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                                int ldtype = getDTypeFromObject(lo);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                                if (ldtype &gt; dtype) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                                        dtype = ldtype;<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>                } else if (obj instanceof Dataset) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                        return ((Dataset) obj).getDType();<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                } else if (obj instanceof ILazyDataset) {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                        dtype = getDTypeFromClass(((ILazyDataset) obj).getElementClass(), ((ILazyDataset) obj).getElementsPerItem());<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                } else {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                        dtype = getDTypeFromClass(obj.getClass());<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                }<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                return dtype;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        }<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>        /**<a name="line.226"></a>
+<span class="sourceLineNo">227</span>         * Get dataset type from given dataset<a name="line.227"></a>
+<span class="sourceLineNo">228</span>         * @param d<a name="line.228"></a>
+<span class="sourceLineNo">229</span>         * @return dataset type<a name="line.229"></a>
+<span class="sourceLineNo">230</span>         */<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        public static int getDType(ILazyDataset d) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                if (d instanceof LazyDatasetBase)<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                        return ((LazyDatasetBase) d).getDType();<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                return getDTypeFromClass(d.getElementClass(), d.getElementsPerItem());<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>         * The largest dataset type suitable for a summation of around a few thousand items without changing from the "kind"<a name="line.238"></a>
+<span class="sourceLineNo">239</span>         * of dataset<a name="line.239"></a>
+<span class="sourceLineNo">240</span>         *<a name="line.240"></a>
+<span class="sourceLineNo">241</span>         * @param otype<a name="line.241"></a>
+<span class="sourceLineNo">242</span>         * @return largest dataset type available for given dataset type<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         */<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        public static int getLargestDType(final int otype) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                switch (otype) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                case Dataset.BOOL:<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                case Dataset.INT8:<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                case Dataset.INT16:<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                        return Dataset.INT32;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                case Dataset.INT32:<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                case Dataset.INT64:<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                        return Dataset.INT64;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                case Dataset.FLOAT32:<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                case Dataset.FLOAT64:<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                        return Dataset.FLOAT64;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                case Dataset.COMPLEX64:<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                case Dataset.COMPLEX128:<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        return Dataset.COMPLEX128;<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                case Dataset.ARRAYINT8:<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                case Dataset.ARRAYINT16:<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                        return Dataset.ARRAYINT32;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                case Dataset.ARRAYINT32:<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                case Dataset.ARRAYINT64:<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                        return Dataset.ARRAYINT64;<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                case Dataset.ARRAYFLOAT32:<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                case Dataset.ARRAYFLOAT64:<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                        return Dataset.ARRAYFLOAT64;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                case Dataset.DATE:<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                case Dataset.STRING:<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                case Dataset.RGB:<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                case Dataset.OBJECT:<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                        return otype;<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                }<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                throw new IllegalArgumentException("Unsupported dataset type");<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>         * The largest dataset class suitable for a summation of around a few thousand items without changing from the "kind"<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         * of dataset<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         *<a name="line.280"></a>
+<span class="sourceLineNo">281</span>         * @param clazz<a name="line.281"></a>
+<span class="sourceLineNo">282</span>         * @return largest dataset class available for given dataset class<a name="line.282"></a>
+<span class="sourceLineNo">283</span>         * @since 2.3<a name="line.283"></a>
+<span class="sourceLineNo">284</span>         */<a name="line.284"></a>
+<span class="sourceLineNo">285</span>        public static Class&lt;? extends Dataset&gt; getLargestDataset(final Class&lt;? extends Dataset&gt; clazz) {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                if (BooleanDataset.class.equals(clazz) || ByteDataset.class.equals(clazz) || ShortDataset.class.equals(clazz)) {<a name="line.286"></a>
+<span class="sourceLineNo">287</span>                        return IntegerDataset.class;<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                } else if (IntegerDataset.class.equals(clazz) || LongDataset.class.equals(clazz)) {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                        return LongDataset.class;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                } else if (FloatDataset.class.equals(clazz) || DoubleDataset.class.equals(clazz)) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                        return DoubleDataset.class;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                } else if (ComplexFloatDataset.class.equals(clazz) || ComplexDoubleDataset.class.equals(clazz)) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                        return ComplexDoubleDataset.class;<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                } else if (CompoundByteDataset.class.equals(clazz) || CompoundShortDataset.class.equals(clazz)) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                        return CompoundIntegerDataset.class;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                } else if (CompoundIntegerDataset.class.equals(clazz) || CompoundLongDataset.class.equals(clazz)) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                        return CompoundLongDataset.class;<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>                return clazz;<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>        /**<a name="line.303"></a>
+<span class="sourceLineNo">304</span>         * @param otype<a name="line.304"></a>
+<span class="sourceLineNo">305</span>         * @return elemental dataset type available for given dataset type<a name="line.305"></a>
+<span class="sourceLineNo">306</span>         */<a name="line.306"></a>
+<span class="sourceLineNo">307</span>        public static int getElementalDType(final int otype) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                switch (otype) {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                case Dataset.COMPLEX64:<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                        return Dataset.FLOAT32;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                case Dataset.COMPLEX128:<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                        return Dataset.FLOAT64;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                case Dataset.ARRAYINT8:<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                        return Dataset.INT8;<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                case Dataset.ARRAYINT16:<a name="line.315"></a>
+<span class="sourceLineNo">316</span>                case Dataset.RGB:<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                        return Dataset.INT16;<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                case Dataset.ARRAYINT32:<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                        return Dataset.INT32;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                case Dataset.ARRAYINT64:<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                        return Dataset.INT64;<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                case Dataset.ARRAYFLOAT32:<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                        return Dataset.FLOAT32;<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                case Dataset.ARRAYFLOAT64:<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                        return Dataset.FLOAT64;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                default:<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                        return otype;<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                }<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        }<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span>        /**<a name="line.331"></a>
+<span class="sourceLineNo">332</span>         * @param dtype<a name="line.332"></a>
+<span class="sourceLineNo">333</span>         * @return number of elements per item<a name="line.333"></a>
+<span class="sourceLineNo">334</span>         */<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        public static int getElementsPerItem(final int dtype) {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                switch (dtype) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                case Dataset.ARRAYINT8:<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                case Dataset.ARRAYINT16:<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                case Dataset.ARRAYINT32:<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                case Dataset.ARRAYINT64:<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                case Dataset.ARRAYFLOAT32:<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                case Dataset.ARRAYFLOAT64:<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                        throw new UnsupportedOperationException("Multi-element type unsupported");<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                case Dataset.COMPLEX64:<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                case Dataset.COMPLEX128:<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                        return 2;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                case Dataset.RGB:<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                        return 3;<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                }<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                return 1;<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        }<a name="line.351"></a>
+<span class="sourceLineNo">352</span><a name="line.352"></a>
+<span class="sourceLineNo">353</span>        /**<a name="line.353"></a>
+<span class="sourceLineNo">354</span>         * @param dtype<a name="line.354"></a>
+<span class="sourceLineNo">355</span>         * @return length of single item in bytes<a name="line.355"></a>
+<span class="sourceLineNo">356</span>         */<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        public static int getItemBytes(final int dtype) {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                return getItemBytes(dtype, getElementsPerItem(dtype));<a name="line.358"></a>
+<span class="sourceLineNo">359</span>        }<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>        /**<a name="line.361"></a>
+<span class="sourceLineNo">362</span>         * @param dtype<a name="line.362"></a>
+<span class="sourceLineNo">363</span>         * @param isize<a name="line.363"></a>
+<span class="sourceLineNo">364</span>         *            number of elements in an item<a name="line.364"></a>
+<span class="sourceLineNo">365</span>         * @return length of single item in bytes<a name="line.365"></a>
+<span class="sourceLineNo">366</span>         */<a name="line.366"></a>
+<span class="sourceLineNo">367</span>        public static int getItemBytes(final int dtype, final int isize) {<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                int size;<a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span>                switch (dtype) {<a name="line.370"></a>
+<span class="sourceLineNo">371</span>                case Dataset.BOOL:<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                        size = 1; // How is this defined?<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                        break;<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                case Dataset.INT8:<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                case Dataset.ARRAYINT8:<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                        size = Byte.SIZE / 8;<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                        break;<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                case Dataset.INT16:<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                case Dataset.ARRAYINT16:<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                case Dataset.RGB:<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                        size = Short.SIZE / 8;<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                        break;<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                case Dataset.INT32:<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                case Dataset.ARRAYINT32:<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                        size = Integer.SIZE / 8;<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                        break;<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                case Dataset.INT64:<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                case Dataset.ARRAYINT64:<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                        size = Long.SIZE / 8;<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                        break;<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                case Dataset.FLOAT32:<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                case Dataset.ARRAYFLOAT32:<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                case Dataset.COMPLEX64:<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                        size = Float.SIZE / 8;<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                        break;<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                case Dataset.FLOAT64:<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                case Dataset.ARRAYFLOAT64:<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                case Dataset.COMPLEX128:<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                        size = Double.SIZE / 8;<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                        break;<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                default:<a name="line.401"></a>
+<span class="sourceLineNo">402</span>                        size = 0;<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                        break;<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>                return size * isize;<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>        public static boolean toBoolean(final Object b) {<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                if (b instanceof Number) {<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                        return ((Number) b).longValue() != 0;<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                } else if (b instanceof Boolean) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                        return ((Boolean) b).booleanValue();<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                } else if (b instanceof Complex) {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                        return ((Complex) b).getReal() != 0;<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                } else if (b instanceof Dataset) {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                        Dataset db = (Dataset) b;<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                        if (db.getSize() != 1) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                                logger.error("Given dataset must have only one item");<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                        }<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                        return db.getBoolean();<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                } else if (b instanceof IDataset) {<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                        IDataset db = (IDataset) b;<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                        if (db.getSize() != 1) {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                                logger.error("Given dataset must have only one item");<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                        }<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                        return db.getBoolean(new int[db.getRank()]);<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                } else {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                        logger.error("Argument is of unsupported class");<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                        throw new IllegalArgumentException("Argument is of unsupported class");<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>        /**<a name="line.436"></a>
+<span class="sourceLineNo">437</span>         * @param d<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         * @return returns a long or 0 if d is NaN or infinite<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         * @since 2.1<a name="line.439"></a>
+<span class="sourceLineNo">440</span>         */<a name="line.440"></a>
+<span class="sourceLineNo">441</span>        public static final long toLong(double d) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                if (Double.isInfinite(d) || Double.isNaN(d))<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                        return 0l;<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                return (long) d;<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 d<a name="line.448"></a>
+<span class="sourceLineNo">449</span>         * @return returns a long or 0 if d is NaN or infinite<a name="line.449"></a>
+<span class="sourceLineNo">450</span>         * @since 2.1<a name="line.450"></a>
+<span class="sourceLineNo">451</span>         */<a name="line.451"></a>
+<span class="sourceLineNo">452</span>        public static final long toLong(float d) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                if (Float.isInfinite(d) || Float.isNaN(d))<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                        return 0l;<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                return (long) d;<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>        public static long toLong(final Object b) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                if (b instanceof Number) {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                        final Number n = (Number) b;<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                        return (n instanceof Double || n instanceof Float) ? toLong(n.doubleValue()) : n.longValue();<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                } else if (b instanceof Boolean) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                        return ((Boolean) b).booleanValue() ? 1 : 0;<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                } else if (b instanceof Complex) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                        return (long) ((Complex) b).getReal();<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                } else if (b instanceof Dataset) {<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                        Dataset db = (Dataset) b;<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        if (db.getSize() != 1) {<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                                logger.error("Given dataset must have only one item");<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                        }<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                        return db.getLong();<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                } else if (b instanceof IDataset) {<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                        IDataset db = (IDataset) b;<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                        if (db.getSize() != 1) {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                                logger.error("Given dataset must have only one item");<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                        }<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                        return db.getLong(new int[db.getRank()]);<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                } else {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                        logger.error("Argument is of unsupported class");<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                        throw new IllegalArgumentException("Argument is of unsupported class");<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>        public static double toReal(final Object b) {<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                if (b instanceof Number) {<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                        return ((Number) b).doubleValue();<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                } else if (b instanceof Boolean) {<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                        return ((Boolean) b).booleanValue() ? 1 : 0;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                } else if (b instanceof Complex) {<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                        return ((Complex) b).getReal();<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                } else if (b.getClass().isArray()) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                        if (Array.getLength(b) == 0)<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                                return 0;<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                        return toReal(Array.get(b, 0));<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                } else if (b instanceof Dataset) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                        Dataset db = (Dataset) b;<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                        if (db.getSize() != 1) {<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                                logger.error("Given dataset must have only one item");<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                        }<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                        return db.getDouble();<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                } else if (b instanceof IDataset) {<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                        IDataset db = (Dataset) b;<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                        if (db.getSize() != 1) {<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                                logger.error("Given dataset must have only one item");<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                        }<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                        return db.getDouble(new int[db.getRank()]);<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                } else {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                        logger.error("Argument is of unsupported class");<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                        throw new IllegalArgumentException("Argument is of unsupported class");<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>        public static double toImag(final Object b) {<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                if (b instanceof Number) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                        return 0;<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                } else if (b instanceof Boolean) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                        return 0;<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                } else if (b instanceof Complex) {<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                        return ((Complex) b).getImaginary();<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                } else if (b.getClass().isArray()) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        if (Array.getLength(b) &lt; 2)<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                                return 0;<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                        return toReal(Array.get(b, 1));<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                } else if (b instanceof Dataset) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                        Dataset db = (Dataset) b;<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                        if (db.getSize() != 1) {<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                                logger.error("Given dataset must have only one item");<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                        }<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                        return toImag(db.getObjectAbs(db.getOffset()));<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                } else if (b instanceof IDataset) {<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                        IDataset db = (Dataset) b;<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                        if (db.getSize() != 1) {<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                                logger.error("Given dataset must have only one item");<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                        }<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                        return toImag(db.getObject(new int[db.getRank()]));<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                } else {<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                        logger.error("Argument is of unsupported class");<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                        throw new IllegalArgumentException("Argument is of unsupported class");<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                }<a name="line.545"></a>
+<span class="sourceLineNo">546</span>        }<a name="line.546"></a>
+<span class="sourceLineNo">547</span><a name="line.547"></a>
+<span class="sourceLineNo">548</span>        public static double[] toDoubleArray(final Object b, final int itemSize) {<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                double[] result = null;<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>                // ensure array is of given length<a name="line.551"></a>
+<span class="sourceLineNo">552</span>                if (b instanceof Number) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                        result = new double[itemSize];<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                        final double val = ((Number) b).doubleValue();<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                        for (int i = 0; i &lt; itemSize; i++) {<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                                result[i] = val;<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                        }<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                } else if (b instanceof double[]) {<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                        final double[] old = (double[]) b;<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        result = old;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                        final int ilen = old.length;<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                        if (ilen &lt; itemSize) {<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                                result = new double[itemSize];<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                                for (int i = 0; i &lt; ilen; i++) {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                                        result[i] = old[i];<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>                } else if (b instanceof List&lt;?&gt;) {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                        result = new double[itemSize];<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        List&lt;?&gt; jl = (List&lt;?&gt;) b;<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                        int ilen = jl.size();<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                        if (ilen &gt; 0 &amp;&amp; !(jl.get(0) instanceof Number)) {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        }<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                        ilen = Math.min(itemSize, ilen);<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                                result[i] = toReal(jl.get(i));<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                        }<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                } else if (b.getClass().isArray()) {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                        result = new double[itemSize];<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                        int ilen = Array.getLength(b);<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                        if (ilen &gt; 0 &amp;&amp; !(Array.get(b, 0) instanceof Number)) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                        }<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                        ilen = Math.min(itemSize, ilen);<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                                result[i] = ((Number) Array.get(b, i)).doubleValue();<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                        }<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                } else if (b instanceof Complex) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        if (itemSize &gt; 2) {<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                                logger.error("Complex number will not fit in compound dataset");<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                                throw new IllegalArgumentException("Complex number will not fit in compound dataset");<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                        }<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                        Complex cb = (Complex) b;<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                        switch (itemSize) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                        default:<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                        case 0:<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                                break;<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                        case 1:<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                                result = new double[] {cb.getReal()};<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                                break;<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                        case 2:<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                                result = new double[] {cb.getReal(), cb.getImaginary()};<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                                break;<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                        }<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                } else if (b instanceof Dataset) {<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                        Dataset db = (Dataset) b;<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        if (db.getSize() != 1) {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                                logger.error("Given dataset must have only one item");<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                        }<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                        return toDoubleArray(db.getObjectAbs(db.getOffset()), itemSize);<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                } else if (b instanceof IDataset) {<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                        IDataset db = (Dataset) b;<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                        if (db.getSize() != 1) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                                logger.error("Given dataset must have only one item");<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                        }<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                        return toDoubleArray(db.getObject(new int[db.getRank()]), itemSize);<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>                return result;<a name="line.624"></a>
+<span class="sourceLineNo">625</span>        }<a name="line.625"></a>
+<span class="sourceLineNo">626</span><a name="line.626"></a>
+<span class="sourceLineNo">627</span>        public static float[] toFloatArray(final Object b, final int itemSize) {<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                float[] result = null;<a name="line.628"></a>
+<span class="sourceLineNo">629</span><a name="line.629"></a>
+<span class="sourceLineNo">630</span>                if (b instanceof Number) {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                        result = new float[itemSize];<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                        final float val = ((Number) b).floatValue();<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                        for (int i = 0; i &lt; itemSize; i++)<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                                result[i] = val;<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                } else if (b instanceof float[]) {<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                        final float[] old = (float[]) b;<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                        result = old;<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                        final int ilen = old.length;<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                        if (ilen &lt; itemSize) {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                                result = new float[itemSize];<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                                for (int i = 0; i &lt; ilen; i++) {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                                        result[i] = old[i];<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>                } else if (b instanceof double[]) {<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                        final double[] old = (double[]) b;<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                        final int ilen = Math.min(itemSize, old.length);<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                        result = new float[itemSize];<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                                result[i] = (float) old[i];<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                        }<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                } else if (b instanceof List&lt;?&gt;) {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                        result = new float[itemSize];<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                        List&lt;?&gt; jl = (List&lt;?&gt;) b;<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                        int ilen = jl.size();<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                        if (ilen &gt; 0 &amp;&amp; !(jl.get(0) instanceof Number)) {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                        }<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        ilen = Math.min(itemSize, ilen);<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                result[i] = (float) toReal(jl.get(i));<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                        }<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                } else if (b.getClass().isArray()) {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                        result = new float[itemSize];<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                        int ilen = Array.getLength(b);<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                        if (ilen &gt; 0 &amp;&amp; !(Array.get(b, 0) instanceof Number)) {<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        }<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                        ilen = Math.min(itemSize, ilen);<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                                result[i] = ((Number) Array.get(b, i)).floatValue();<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                        }<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                } else if (b instanceof Complex) {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                        if (itemSize &gt; 2) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                                logger.error("Complex number will not fit in compound dataset");<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                                throw new IllegalArgumentException("Complex number will not fit in compound dataset");<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                        }<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                        Complex cb = (Complex) b;<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                        switch (itemSize) {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                        default:<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                        case 0:<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                                break;<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                        case 1:<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                                result = new float[] {(float) cb.getReal()};<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                                break;<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                        case 2:<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                                result = new float[] {(float) cb.getReal(), (float) cb.getImaginary()};<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                                break;<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                        }<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                } else if (b instanceof Dataset) {<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                        Dataset db = (Dataset) b;<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                        if (db.getSize() != 1) {<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                                logger.error("Given dataset must have only one item");<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                        }<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                        return toFloatArray(db.getObjectAbs(db.getOffset()), itemSize);<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                } else if (b instanceof IDataset) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        IDataset db = (Dataset) b;<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                        if (db.getSize() != 1) {<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                                logger.error("Given dataset must have only one item");<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                        }<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        return toFloatArray(db.getObject(new int[db.getRank()]), itemSize);<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>                return result;<a name="line.708"></a>
+<span class="sourceLineNo">709</span>        }<a name="line.709"></a>
+<span class="sourceLineNo">710</span><a name="line.710"></a>
+<span class="sourceLineNo">711</span>        public static long[] toLongArray(final Object b, final int itemSize) {<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                long[] result = null;<a name="line.712"></a>
+<span class="sourceLineNo">713</span><a name="line.713"></a>
+<span class="sourceLineNo">714</span>                if (b instanceof Number) {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                        result = new long[itemSize];<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                        final long val = toLong(b);<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                        for (int i = 0; i &lt; itemSize; i++) {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                                result[i] = val;<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                        }<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                } else if (b instanceof long[]) {<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                        final long[] old = (long[]) b;<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                        result = old;<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                        final int ilen = result.length;<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                        if (ilen &lt; itemSize) {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                                result = new long[itemSize];<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                                for (int i = 0; i &lt; ilen; i++) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                                        result[i] = old[i];<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                                }<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                        }<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                } else if (b instanceof double[]) {<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                        final double[] old = (double[]) b;<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                        final int ilen = Math.min(itemSize, old.length);<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                        result = new long[itemSize];<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                                result[i] = toLong(old[i]);<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                        }<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                } else if (b instanceof List&lt;?&gt;) {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                        result = new long[itemSize];<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                        List&lt;?&gt; jl = (List&lt;?&gt;) b;<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                        int ilen = jl.size();<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        if (ilen &gt; 0 &amp;&amp; !(jl.get(0) instanceof Number)) {<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                        }<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                        ilen = Math.min(itemSize, ilen);<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                                result[i] = toLong(jl.get(i));<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                        }<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                } else if (b.getClass().isArray()) {<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                        result = new long[itemSize];<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                        int ilen = Array.getLength(b);<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                        if (ilen &gt; 0 &amp;&amp; !(Array.get(b, 0) instanceof Number)) {<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        }<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        ilen = Math.min(itemSize, ilen);<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                                result[i] = toLong(Array.get(b, i));<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                        }<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                } else if (b instanceof Complex) {<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                        if (itemSize &gt; 2) {<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                                logger.error("Complex number will not fit in compound dataset");<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                                throw new IllegalArgumentException("Complex number will not fit in compound dataset");<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        }<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        Complex cb = (Complex) b;<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                        switch (itemSize) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                        default:<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                        case 0:<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                                break;<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        case 1:<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                                result = new long[] {(long) cb.getReal()};<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                                break;<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                        case 2:<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                                result = new long[] {(long) cb.getReal(), (long) cb.getImaginary()};<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                                break;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                        }<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                } else if (b instanceof Dataset) {<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                        Dataset db = (Dataset) b;<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                        if (db.getSize() != 1) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                                logger.error("Given dataset must have only one item");<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                        }<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                        return toLongArray(db.getObjectAbs(db.getOffset()), itemSize);<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                } else if (b instanceof IDataset) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        IDataset db = (Dataset) b;<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                        if (db.getSize() != 1) {<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                logger.error("Given dataset must have only one item");<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                        }<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                        return toLongArray(db.getObject(new int[db.getRank()]), itemSize);<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>                return result;<a name="line.793"></a>
+<span class="sourceLineNo">794</span>        }<a name="line.794"></a>
+<span class="sourceLineNo">795</span><a name="line.795"></a>
+<span class="sourceLineNo">796</span>        public static int[] toIntegerArray(final Object b, final int itemSize) {<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                int[] result = null;<a name="line.797"></a>
+<span class="sourceLineNo">798</span><a name="line.798"></a>
+<span class="sourceLineNo">799</span>                if (b instanceof Number) {<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                        result = new int[itemSize];<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                        final int val = (int) toLong(b);<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        for (int i = 0; i &lt; itemSize; i++) {<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                                result[i] = val;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                } else if (b instanceof int[]) {<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                        final int[] old = (int[]) b;<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                        result = old;<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                        final int ilen = result.length;<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                        if (ilen &lt; itemSize) {<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                                result = new int[itemSize];<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                                for (int i = 0; i &lt; ilen; i++) {<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                                        result[i] = old[i];<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                                }<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                        }<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                } else if (b instanceof double[]) {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                        final double[] old = (double[]) b;<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                        final int ilen = Math.min(itemSize, old.length);<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                        result = new int[itemSize];<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                                result[i] = (int) toLong(old[i]);<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                        }<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                } else if (b instanceof List&lt;?&gt;) {<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                        result = new int[itemSize];<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                        List&lt;?&gt; jl = (List&lt;?&gt;) b;<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                        int ilen = jl.size();<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                        if (ilen &gt; 0 &amp;&amp; !(jl.get(0) instanceof Number)) {<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        }<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                        ilen = Math.min(itemSize, ilen);<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                result[i] = (int) toLong(jl.get(i));<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                        }<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                } else if (b.getClass().isArray()) {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        result = new int[itemSize];<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                        int ilen = Array.getLength(b);<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                        if (ilen &gt; 0 &amp;&amp; !(Array.get(b, 0) instanceof Number)) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                        }<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                        ilen = Math.min(itemSize, ilen);<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                                result[i] = (int) toLong(Array.get(b, i));<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                        }<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                } else if (b instanceof Complex) {<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                        if (itemSize &gt; 2) {<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                logger.error("Complex number will not fit in compound dataset");<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                throw new IllegalArgumentException("Complex number will not fit in compound dataset");<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                        }<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        Complex cb = (Complex) b;<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                        switch (itemSize) {<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                        default:<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                        case 0:<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                break;<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                        case 1:<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                                result = new int[] {(int) cb.getReal()};<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                                break;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                        case 2:<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                                result = new int[] {(int) cb.getReal(), (int) cb.getImaginary()};<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                                break;<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        }<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                } else if (b instanceof Dataset) {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                        Dataset db = (Dataset) b;<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                        if (db.getSize() != 1) {<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                                logger.error("Given dataset must have only one item");<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                        }<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                        return toIntegerArray(db.getObjectAbs(db.getOffset()), itemSize);<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                } else if (b instanceof IDataset) {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                        IDataset db = (Dataset) b;<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                        if (db.getSize() != 1) {<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                                logger.error("Given dataset must have only one item");<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                        }<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                        return toIntegerArray(db.getObject(new int[db.getRank()]), itemSize);<a name="line.875"></a>
+<span class="sourceLineNo">876</span>                }<a name="line.876"></a>
+<span class="sourceLineNo">877</span><a name="line.877"></a>
+<span class="sourceLineNo">878</span>                return result;<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>        public static short[] toShortArray(final Object b, final int itemSize) {<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                short[] result = null;<a name="line.882"></a>
+<span class="sourceLineNo">883</span><a name="line.883"></a>
+<span class="sourceLineNo">884</span>                if (b instanceof Number) {<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                        result = new short[itemSize];<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                        final short val = (short) toLong(b);<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        for (int i = 0; i &lt; itemSize; i++) {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                                result[i] = val;<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                        }<a name="line.889"></a>
+<span class="sourceLineNo">890</span>                } else if (b instanceof short[]) {<a name="line.890"></a>
+<span class="sourceLineNo">891</span>                        final short[] old = (short[]) b;<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                        result = old;<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                        final int ilen = result.length;<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                        if (ilen &lt; itemSize) {<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                                result = new short[itemSize];<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                for (int i = 0; i &lt; ilen; i++) {<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                        result[i] = old[i];<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 (b instanceof double[]) {<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        final double[] old = (double[]) b;<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        final int ilen = Math.min(itemSize, old.length);<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                        result = new short[itemSize];<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                                result[i] = (short) toLong(old[i]);<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        }<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                } else if (b instanceof List&lt;?&gt;) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                        result = new short[itemSize];<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                        List&lt;?&gt; jl = (List&lt;?&gt;) b;<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                        int ilen = jl.size();<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                        if (ilen &gt; 0 &amp;&amp; !(jl.get(0) instanceof Number)) {<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                        }<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                        ilen = Math.min(itemSize, ilen);<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                                result[i] = (short) toLong(jl.get(i));<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                        }<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                } else if (b.getClass().isArray()) {<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                        result = new short[itemSize];<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                        int ilen = Array.getLength(b);<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                        if (ilen &gt; 0 &amp;&amp; !(Array.get(b, 0) instanceof Number)) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                        }<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                        ilen = Math.min(itemSize, ilen);<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                                result[i] = (short) toLong(Array.get(b, i));<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                        }<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                } else if (b instanceof Complex) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                        if (itemSize &gt; 2) {<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                logger.error("Complex number will not fit in compound dataset");<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                throw new IllegalArgumentException("Complex number will not fit in compound dataset");<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                        }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                        Complex cb = (Complex) b;<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                        switch (itemSize) {<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                        default:<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                        case 0:<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                                break;<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                        case 1:<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                                result = new short[] {(short) cb.getReal()};<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                break;<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                        case 2:<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                result = new short[] {(short) cb.getReal(), (short) cb.getImaginary()};<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>                } else if (b instanceof Dataset) {<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                        Dataset db = (Dataset) b;<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                        if (db.getSize() != 1) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                logger.error("Given dataset must have only one item");<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                        }<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                        return toShortArray(db.getObjectAbs(db.getOffset()), itemSize);<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                } else if (b instanceof IDataset) {<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                        IDataset db = (Dataset) b;<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                        if (db.getSize() != 1) {<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                                logger.error("Given dataset must have only one item");<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                        }<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                        return toShortArray(db.getObject(new int[db.getRank()]), itemSize);<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>                return result;<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>        public static byte[] toByteArray(final Object b, final int itemSize) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                byte[] result = null;<a name="line.967"></a>
+<span class="sourceLineNo">968</span><a name="line.968"></a>
+<span class="sourceLineNo">969</span>                if (b instanceof Number) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                        result = new byte[itemSize];<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        final byte val = (byte) toLong(b);<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        for (int i = 0; i &lt; itemSize; i++) {<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                                result[i] = val;<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        }<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                } else if (b instanceof byte[]) {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        final byte[] old = (byte[]) b;<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                        result = old;<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                        final int ilen = result.length;<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                        if (ilen &lt; itemSize) {<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                result = new byte[itemSize];<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                for (int i = 0; i &lt; ilen; i++) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                                        result[i] = old[i];<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>                } else if (b instanceof double[]) {<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                        final double[] old = (double[]) b;<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                        final int ilen = Math.min(itemSize, old.length);<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                        result = new byte[itemSize];<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                result[i] = (byte) toLong(old[i]);<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                        }<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                } else if (b instanceof List&lt;?&gt;) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                        result = new byte[itemSize];<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                        List&lt;?&gt; jl = (List&lt;?&gt;) b;<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                        int ilen = jl.size();<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                        if (ilen &gt; 0 &amp;&amp; !(jl.get(0) instanceof Number)) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                        }<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                        ilen = Math.min(itemSize, ilen);<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                result[i] = (byte) toLong(jl.get(i));<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                        }<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                } else if (b.getClass().isArray()) {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                        result = new byte[itemSize];<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                        int ilen = Array.getLength(b);<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                        if (ilen &gt; 0 &amp;&amp; !(Array.get(b, 0) instanceof Number)) {<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                        }<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        ilen = Math.min(itemSize, ilen);<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                result[i] = (byte) toLong(Array.get(b, i));<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        }<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                } else if (b instanceof Complex) {<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                        if (itemSize &gt; 2) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                logger.error("Complex number will not fit in compound dataset");<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                throw new IllegalArgumentException("Complex number will not fit in compound dataset");<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                        }<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                        Complex cb = (Complex) b;<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                        switch (itemSize) {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                        default:<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                        case 0:<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                break;<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                        case 1:<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                result = new byte[] {(byte) cb.getReal()};<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                break;<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                        case 2:<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                                result = new byte[] {(byte) cb.getReal(), (byte) cb.getImaginary()};<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                break;<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                        }<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                } else if (b instanceof Dataset) {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                        Dataset db = (Dataset) b;<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                        if (db.getSize() != 1) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                logger.error("Given dataset must have only one item");<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                        }<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                        return toByteArray(db.getObjectAbs(db.getOffset()), itemSize);<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                } else if (b instanceof IDataset) {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                        IDataset db = (Dataset) b;<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                        if (db.getSize() != 1) {<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                                logger.error("Given dataset must have only one item");<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                        }<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                        return toByteArray(db.getObject(new int[db.getRank()]), itemSize);<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>                return result;<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span><a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>        public static Object fromDoublesToBiggestPrimitives(double[] x, int dtype) {<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                switch (dtype) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                case Dataset.BOOL:<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                case Dataset.INT8:<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                case Dataset.INT16:<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                case Dataset.INT32:<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                        int[] i32 = new int[x.length];<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                        for (int i = 0; i &lt; x.length; i++)<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                                i32[i] = (int) (long) x[i];<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                        return i32;<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                case Dataset.INT64:<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                        long[] i64 = new long[x.length];<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                        for (int i = 0; i &lt; x.length; i++)<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                                i64[i] = (long) x[i];<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                        return i64;<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                case Dataset.FLOAT32:<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                        float[] f32 = new float[x.length];<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                        for (int i = 0; i &lt; x.length; i++)<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                f32[i] = (float) x[i];<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                        return f32;<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                case Dataset.FLOAT64:<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        return x;<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                return null;<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>         * @param dtype<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>         * @return (boxed) class of constituent element<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>         */<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>        public static Class&lt;?&gt; getElementClass(final int dtype) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                switch (dtype) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                case Dataset.BOOL:<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                        return Boolean.class;<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                case Dataset.INT8:<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                case Dataset.ARRAYINT8:<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                        return Byte.class;<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                case Dataset.INT16:<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                case Dataset.ARRAYINT16:<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                case Dataset.RGB:<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                        return Short.class;<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                case Dataset.INT32:<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                case Dataset.ARRAYINT32:<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                        return Integer.class;<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                case Dataset.INT64:<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                case Dataset.ARRAYINT64:<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        return Long.class;<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                case Dataset.FLOAT32:<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                case Dataset.ARRAYFLOAT32:<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                        return Float.class;<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                case Dataset.FLOAT64:<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                case Dataset.ARRAYFLOAT64:<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                        return Double.class;<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                case Dataset.COMPLEX64:<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                        return Float.class;<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                case Dataset.COMPLEX128:<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        return Double.class;<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                case Dataset.STRING:<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        return String.class;<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                case Dataset.DATE:<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        return Date.class;<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                }<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                return Object.class;<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>        /**<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>         * @param dtype dataset type<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>         * @return dataset interface can be null<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>         * @since 2.3<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>         */<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>        public static Class&lt;? extends Dataset&gt; getInterface(final int dtype) {<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                return dtype2Interface.get(dtype);<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 x<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>         * @param dtype<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>         * @return biggest native primitive if integer (should test for 64bit?)<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>         * @since 2.2<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>         */<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>        public static Number fromDoubleToBiggestNumber(double x, int dtype) {<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                switch (dtype) {<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                case Dataset.BOOL:<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                case Dataset.INT8:<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                case Dataset.INT16:<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                case Dataset.INT32:<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                        return Integer.valueOf((int) (long) x);<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                case Dataset.INT64:<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                        return Long.valueOf((long) x);<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                case Dataset.FLOAT32:<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                        return Float.valueOf((float) x);<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                case Dataset.FLOAT64:<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                        return Double.valueOf(x);<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                }<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                return null;<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>        /**<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>         * @param clazz<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>         * @return true if supported<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>         * @deprecated Use {@link InterfaceUtils#isElementSupported(Class)}<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>         */<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>        @Deprecated<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>        public static boolean isClassSupportedAsElement(Class&lt;? extends Object&gt; clazz) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                return InterfaceUtils.isElementSupported(clazz);<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>         * @param b<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>         * @return length of object<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>         */<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>        public static final int getLength(final Object b) {<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                if (b instanceof Number) {<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                        return 1;<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                } else if (b instanceof Complex) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                        return 1;<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                } else if (b instanceof List&lt;?&gt;) {<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                        List&lt;?&gt; jl = (List&lt;?&gt;) b;<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                        return jl.size();<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                } else if (b.getClass().isArray()) {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                        return Array.getLength(b);<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                } else if (b instanceof IDataset) {<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                        IDataset db = (Dataset) b;<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                        return db.getSize();<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>                throw new IllegalArgumentException("Cannot find length as object not supported");<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<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>         * @return name of dataset interface<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>         * @since 2.3<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>         */<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>        public static String getDatasetName(Dataset a) {<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                return getDatasetName(a.getClass(), a.getElementsPerItem());<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>         * @param a<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>         * @return name of dataset interface<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>         * @since 2.3<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>         */<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>        public static String getDatasetName(ILazyDataset a) {<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                if (a instanceof Dataset) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                        return getDatasetName((Dataset) a);<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                }<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                int isize = a.getElementsPerItem();<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                return getDatasetName(InterfaceUtils.getInterfaceFromClass(isize, a.getElementClass()), isize);<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>         * @param clazz dataset interface<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>         * @param itemSize<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>         * @return name of dataset interface<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>         * @since 2.3<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>         */<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>        public static String getDatasetName(final Class&lt;? extends Dataset&gt; clazz, int itemSize) {<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                int bytes = InterfaceUtils.getItemBytes(1, clazz);<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                if (InterfaceUtils.isComplex(clazz)) {<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        return "COMPLEX" + bytes*16;<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                } else if (RGBDataset.class.equals(clazz)) {<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                        return "RGB";<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                }<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span><a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                String prefix = itemSize &gt; 1 ? ("ARRAY of " + itemSize + " ") : "";<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                if (InterfaceUtils.isFloating(clazz)) {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                        return prefix + "FLOAT" + bytes*8;<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                }<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                if (BooleanDataset.class.equals(clazz)) {<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                        return prefix + "BOOLEAN";<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                }<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                if (StringDataset.class.equals(clazz)) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                        return prefix + "STRING";<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                }<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                if (DateDataset.class.isAssignableFrom(clazz)) {<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                        return prefix + "DATE";<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                if (ObjectDataset.class.equals(clazz)) {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                        return prefix + "OBJECT";<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>                return prefix + "INT" + bytes*8;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/DataEvent.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/DataEvent.html
new file mode 100644
index 0000000..b9f3443
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/dataset/DataListenerDelegate.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/DataListenerDelegate.html
new file mode 100644
index 0000000..d14dd77
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/dataset/Dataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Dataset.html
new file mode 100644
index 0000000..974a16f
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Dataset.html
@@ -0,0 +1,1519 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.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;em&gt;must&lt;/em&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>         * @param shape<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         * @return view of dataset that is broadcasted to given shape<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         */<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        public Dataset getBroadcastView(int... 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>         * @param showData<a name="line.216"></a>
+<span class="sourceLineNo">217</span>         * @return string representation<a name="line.217"></a>
+<span class="sourceLineNo">218</span>         */<a name="line.218"></a>
+<span class="sourceLineNo">219</span>        public String toString(boolean showData);<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 Dataset squeezeEnds();<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 Dataset squeeze();<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 squeeze(boolean onlyFromEnds);<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 Dataset clone();<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>         * This method allows anything that dirties the dataset to clear various metadata values<a name="line.234"></a>
+<span class="sourceLineNo">235</span>         * so that the other methods can work correctly.<a name="line.235"></a>
+<span class="sourceLineNo">236</span>         */<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        public void setDirty();<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>         * This method calculates the n-dimensional position in the dataset of<a name="line.240"></a>
+<span class="sourceLineNo">241</span>         * the given index in the data array<a name="line.241"></a>
+<span class="sourceLineNo">242</span>         * <a name="line.242"></a>
+<span class="sourceLineNo">243</span>         * @param n<a name="line.243"></a>
+<span class="sourceLineNo">244</span>         *            The index in the array<a name="line.244"></a>
+<span class="sourceLineNo">245</span>         * @return the corresponding [a,b,...,n] position in the dataset<a name="line.245"></a>
+<span class="sourceLineNo">246</span>         */<a name="line.246"></a>
+<span class="sourceLineNo">247</span>        public int[] getNDPosition(int n);<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>         * This method calculates the index in the data array that corresponds to<a name="line.250"></a>
+<span class="sourceLineNo">251</span>         * the given n-dimensional position<a name="line.251"></a>
+<span class="sourceLineNo">252</span>         * <a name="line.252"></a>
+<span class="sourceLineNo">253</span>         * @param n<a name="line.253"></a>
+<span class="sourceLineNo">254</span>         *            the integer array specifying the n-D position<a name="line.254"></a>
+<span class="sourceLineNo">255</span>         * @return the index on the data array corresponding to that location<a name="line.255"></a>
+<span class="sourceLineNo">256</span>         */<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        public int get1DIndex(final int... n);<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>         * Check that axis is in range [-rank,rank)<a name="line.260"></a>
+<span class="sourceLineNo">261</span>         * <a name="line.261"></a>
+<span class="sourceLineNo">262</span>         * @param axis<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         * @return sanitized axis in range [0, rank)<a name="line.263"></a>
+<span class="sourceLineNo">264</span>         */<a name="line.264"></a>
+<span class="sourceLineNo">265</span>        public int checkAxis(int axis);<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>         * This method takes a dataset and checks its shape against the current dataset. If they are<a name="line.268"></a>
+<span class="sourceLineNo">269</span>         * both of the same size, then this returns true otherwise it returns false.<a name="line.269"></a>
+<span class="sourceLineNo">270</span>         * <a name="line.270"></a>
+<span class="sourceLineNo">271</span>         * @param g<a name="line.271"></a>
+<span class="sourceLineNo">272</span>         *            The dataset to be compared<a name="line.272"></a>
+<span class="sourceLineNo">273</span>         * @return true if shapes are compatible<a name="line.273"></a>
+<span class="sourceLineNo">274</span>         */<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        public boolean isCompatibleWith(ILazyDataset g);<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>         * This method takes a dataset and checks its shape against the current dataset. If they are<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         * both of the same size, then this returns with no error, if there is a problem, then an error<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         * is thrown.<a name="line.280"></a>
+<span class="sourceLineNo">281</span>         * <a name="line.281"></a>
+<span class="sourceLineNo">282</span>         * @param g<a name="line.282"></a>
+<span class="sourceLineNo">283</span>         *            The dataset to be compared<a name="line.283"></a>
+<span class="sourceLineNo">284</span>         * @throws IllegalArgumentException<a name="line.284"></a>
+<span class="sourceLineNo">285</span>         *             This will be thrown if there is a problem with the compatibility<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         */<a name="line.286"></a>
+<span class="sourceLineNo">287</span>        public void checkCompatibility(ILazyDataset g) throws IllegalArgumentException;<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>         * Returns new dataset with new shape but old data if possible, otherwise a copy is made<a name="line.290"></a>
+<span class="sourceLineNo">291</span>         * <a name="line.291"></a>
+<span class="sourceLineNo">292</span>         * @param shape new shape<a name="line.292"></a>
+<span class="sourceLineNo">293</span>         * @return reshaped dataset<a name="line.293"></a>
+<span class="sourceLineNo">294</span>         */<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        public Dataset reshape(int... shape);<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>         * @return true if dataset is complex<a name="line.298"></a>
+<span class="sourceLineNo">299</span>         */<a name="line.299"></a>
+<span class="sourceLineNo">300</span>        public boolean isComplex();<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>         * @return real part of dataset (if necessary, as new dataset)<a name="line.303"></a>
+<span class="sourceLineNo">304</span>         * @since 2.0<a name="line.304"></a>
+<span class="sourceLineNo">305</span>         */<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        public Dataset getRealPart();<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>         * @return real part of dataset as a view<a name="line.309"></a>
+<span class="sourceLineNo">310</span>         */<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        public Dataset getRealView();<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>         * Get the error array from the dataset of same shape. This will create a new dataset<a name="line.314"></a>
+<span class="sourceLineNo">315</span>         * if the error set was of lower rank<a name="line.315"></a>
+<span class="sourceLineNo">316</span>         *<a name="line.316"></a>
+<span class="sourceLineNo">317</span>         * @return the dataset which contains the error information (can be null)<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * @since 2.0<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 Dataset getErrors();<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>         * Get the (un-broadcasted) dataset that backs the (squared) error data<a name="line.324"></a>
+<span class="sourceLineNo">325</span>         *<a name="line.325"></a>
+<span class="sourceLineNo">326</span>         * @return the dataset which contains the (squared) error information (can be null)<a name="line.326"></a>
+<span class="sourceLineNo">327</span>         */<a name="line.327"></a>
+<span class="sourceLineNo">328</span>        public Dataset getErrorBuffer();<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>         * Set the buffer that backs the (squared) error data<a name="line.331"></a>
+<span class="sourceLineNo">332</span>         *<a name="line.332"></a>
+<span class="sourceLineNo">333</span>         * @param buffer the buffer which contains the (squared) error information (can be null)<a name="line.333"></a>
+<span class="sourceLineNo">334</span>         */<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        public void setErrorBuffer(Serializable buffer);<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>         * Copy and cast a dataset<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         * <a name="line.339"></a>
+<span class="sourceLineNo">340</span>         * @param dtype<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         *            dataset type<a name="line.341"></a>
+<span class="sourceLineNo">342</span>         * @return a converted copy of the dataset<a name="line.342"></a>
+<span class="sourceLineNo">343</span>         * @deprecated Please use class-based method {@link Dataset#copy(Class)}<a name="line.343"></a>
+<span class="sourceLineNo">344</span>         */<a name="line.344"></a>
+<span class="sourceLineNo">345</span>        @Deprecated<a name="line.345"></a>
+<span class="sourceLineNo">346</span>        public Dataset copy(int dtype);<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>         * Copy and cast a dataset<a name="line.349"></a>
+<span class="sourceLineNo">350</span>         * <a name="line.350"></a>
+<span class="sourceLineNo">351</span>         * @param &lt;T&gt; dataset subclass<a name="line.351"></a>
+<span class="sourceLineNo">352</span>         * @param clazz dataset class<a name="line.352"></a>
+<span class="sourceLineNo">353</span>         * @return a converted copy of the dataset<a name="line.353"></a>
+<span class="sourceLineNo">354</span>         */<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        public &lt;T extends Dataset&gt; T copy(Class&lt;T&gt; clazz);<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>         * Cast a dataset<a name="line.358"></a>
+<span class="sourceLineNo">359</span>         * <a name="line.359"></a>
+<span class="sourceLineNo">360</span>         * @param dtype<a name="line.360"></a>
+<span class="sourceLineNo">361</span>         *            dataset type<a name="line.361"></a>
+<span class="sourceLineNo">362</span>         * @return a converted dataset<a name="line.362"></a>
+<span class="sourceLineNo">363</span>         * @deprecated Please use class-based method {@link Dataset#cast(Class)}<a name="line.363"></a>
+<span class="sourceLineNo">364</span>         */<a name="line.364"></a>
+<span class="sourceLineNo">365</span>        @Deprecated<a name="line.365"></a>
+<span class="sourceLineNo">366</span>        public Dataset cast(int dtype);<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>         * Cast a dataset<a name="line.369"></a>
+<span class="sourceLineNo">370</span>         * <a name="line.370"></a>
+<span class="sourceLineNo">371</span>         * @param &lt;T&gt; dataset subclass<a name="line.371"></a>
+<span class="sourceLineNo">372</span>         * @param clazz dataset class<a name="line.372"></a>
+<span class="sourceLineNo">373</span>         * @return a converted dataset<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         */<a name="line.374"></a>
+<span class="sourceLineNo">375</span>        public &lt;T extends Dataset&gt; T cast(Class&lt;T&gt; clazz);<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>         * Cast a dataset<a name="line.378"></a>
+<span class="sourceLineNo">379</span>         * <a name="line.379"></a>
+<span class="sourceLineNo">380</span>         * @param isize<a name="line.380"></a>
+<span class="sourceLineNo">381</span>         *            item size<a name="line.381"></a>
+<span class="sourceLineNo">382</span>         * @param &lt;T&gt; dataset subclass<a name="line.382"></a>
+<span class="sourceLineNo">383</span>         * @param repeat<a name="line.383"></a>
+<span class="sourceLineNo">384</span>         * @return a converted dataset<a name="line.384"></a>
+<span class="sourceLineNo">385</span>         * @since 2.3<a name="line.385"></a>
+<span class="sourceLineNo">386</span>         */<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        public &lt;T extends Dataset&gt; T cast(int isize, Class&lt;T&gt; clazz, boolean repeat);<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>         * Cast a dataset<a name="line.390"></a>
+<span class="sourceLineNo">391</span>         * <a name="line.391"></a>
+<span class="sourceLineNo">392</span>         * @param repeat<a name="line.392"></a>
+<span class="sourceLineNo">393</span>         * @param dtype<a name="line.393"></a>
+<span class="sourceLineNo">394</span>         *            dataset type<a name="line.394"></a>
+<span class="sourceLineNo">395</span>         * @param isize<a name="line.395"></a>
+<span class="sourceLineNo">396</span>         *            item size<a name="line.396"></a>
+<span class="sourceLineNo">397</span>         * @return a converted dataset<a name="line.397"></a>
+<span class="sourceLineNo">398</span>         * @deprecated Please use class-based method {@link Dataset#cast(int, Class, boolean))}<a name="line.398"></a>
+<span class="sourceLineNo">399</span>         */<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        @Deprecated<a name="line.400"></a>
+<span class="sourceLineNo">401</span>        public Dataset cast(boolean repeat, int dtype, int isize);<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>         * Generate an index dataset for current dataset<a name="line.404"></a>
+<span class="sourceLineNo">405</span>         * <a name="line.405"></a>
+<span class="sourceLineNo">406</span>         * @return an index dataset<a name="line.406"></a>
+<span class="sourceLineNo">407</span>         */<a name="line.407"></a>
+<span class="sourceLineNo">408</span>        public IntegerDataset getIndices();<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 Dataset getTransposedView(int... axes);<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>         * See {@link #getTransposedView}<a name="line.414"></a>
+<span class="sourceLineNo">415</span>         * @param axes<a name="line.415"></a>
+<span class="sourceLineNo">416</span>         * @return remapped copy of data<a name="line.416"></a>
+<span class="sourceLineNo">417</span>         */<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        public Dataset transpose(int... axes);<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>         * Swap two axes in dataset<a name="line.421"></a>
+<span class="sourceLineNo">422</span>         * <a name="line.422"></a>
+<span class="sourceLineNo">423</span>         * @param axis1<a name="line.423"></a>
+<span class="sourceLineNo">424</span>         * @param axis2<a name="line.424"></a>
+<span class="sourceLineNo">425</span>         * @return swapped view of dataset<a name="line.425"></a>
+<span class="sourceLineNo">426</span>         */<a name="line.426"></a>
+<span class="sourceLineNo">427</span>        public Dataset swapAxes(int axis1, int axis2);<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>         * Flatten shape<a name="line.430"></a>
+<span class="sourceLineNo">431</span>         * <a name="line.431"></a>
+<span class="sourceLineNo">432</span>         * @return a flattened dataset which is a view if dataset is contiguous otherwise is a copy<a name="line.432"></a>
+<span class="sourceLineNo">433</span>         */<a name="line.433"></a>
+<span class="sourceLineNo">434</span>        public Dataset flatten();<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>         * Get unique items<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         * @return a sorted dataset of unique items<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         */<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        public Dataset getUniqueItems();<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>         * @param withPosition<a name="line.443"></a>
+<span class="sourceLineNo">444</span>         *            set true if position is needed<a name="line.444"></a>
+<span class="sourceLineNo">445</span>         * @return an IndexIterator tailored for this dataset<a name="line.445"></a>
+<span class="sourceLineNo">446</span>         */<a name="line.446"></a>
+<span class="sourceLineNo">447</span>        public IndexIterator getIterator(boolean withPosition);<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>         * @return an IndexIterator tailored for this dataset<a name="line.450"></a>
+<span class="sourceLineNo">451</span>         */<a name="line.451"></a>
+<span class="sourceLineNo">452</span>        public IndexIterator getIterator();<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 axes axes to omit from iterator<a name="line.455"></a>
+<span class="sourceLineNo">456</span>         * @return a PositionIterator that misses out axes<a name="line.456"></a>
+<span class="sourceLineNo">457</span>         */<a name="line.457"></a>
+<span class="sourceLineNo">458</span>        public PositionIterator getPositionIterator(int... axes);<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>         * @param start<a name="line.461"></a>
+<span class="sourceLineNo">462</span>         *            specifies the starting indexes<a name="line.462"></a>
+<span class="sourceLineNo">463</span>         * @param stop<a name="line.463"></a>
+<span class="sourceLineNo">464</span>         *            specifies the stopping indexes (nb, these are &lt;b&gt;not&lt;/b&gt; included in the slice)<a name="line.464"></a>
+<span class="sourceLineNo">465</span>         * @param step<a name="line.465"></a>
+<span class="sourceLineNo">466</span>         *            specifies the steps in the slice<a name="line.466"></a>
+<span class="sourceLineNo">467</span>         * @return an slice iterator that operates like an IndexIterator<a name="line.467"></a>
+<span class="sourceLineNo">468</span>         */<a name="line.468"></a>
+<span class="sourceLineNo">469</span>        public IndexIterator getSliceIterator(int[] start, int[] stop, int[] step);<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 slice an n-D slice<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         * @return an slice iterator that operates like an IndexIterator<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         * @since 2.1<a name="line.474"></a>
+<span class="sourceLineNo">475</span>         */<a name="line.475"></a>
+<span class="sourceLineNo">476</span>        public IndexIterator getSliceIterator(SliceND slice);<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>         * Get a slice iterator that is defined by a starting position and a set of axes to include<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>         * @param axes<a name="line.482"></a>
+<span class="sourceLineNo">483</span>         *            to include<a name="line.483"></a>
+<span class="sourceLineNo">484</span>         * @return slice iterator<a name="line.484"></a>
+<span class="sourceLineNo">485</span>         */<a name="line.485"></a>
+<span class="sourceLineNo">486</span>        public SliceIterator getSliceIteratorFromAxes(int[] pos, boolean[] axes);<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>         * Copy content from axes in given position to array<a name="line.489"></a>
+<span class="sourceLineNo">490</span>         * <a name="line.490"></a>
+<span class="sourceLineNo">491</span>         * @param pos<a name="line.491"></a>
+<span class="sourceLineNo">492</span>         *            - null means position at origin<a name="line.492"></a>
+<span class="sourceLineNo">493</span>         * @param axes<a name="line.493"></a>
+<span class="sourceLineNo">494</span>         *            - true means copy<a name="line.494"></a>
+<span class="sourceLineNo">495</span>         * @param dest<a name="line.495"></a>
+<span class="sourceLineNo">496</span>         */<a name="line.496"></a>
+<span class="sourceLineNo">497</span>        public void copyItemsFromAxes(int[] pos, boolean[] axes, Dataset dest);<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>         * Set content on axes in given position to values in array<a name="line.500"></a>
+<span class="sourceLineNo">501</span>         * <a name="line.501"></a>
+<span class="sourceLineNo">502</span>         * @param pos<a name="line.502"></a>
+<span class="sourceLineNo">503</span>         * @param axes<a name="line.503"></a>
+<span class="sourceLineNo">504</span>         *            - true means copy<a name="line.504"></a>
+<span class="sourceLineNo">505</span>         * @param src<a name="line.505"></a>
+<span class="sourceLineNo">506</span>         */<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        public void setItemsOnAxes(int[] pos, boolean[] axes, Object src);<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>         * Get an iterator that visits every item in this dataset where the corresponding item in<a name="line.510"></a>
+<span class="sourceLineNo">511</span>         * choice dataset is true<a name="line.511"></a>
+<span class="sourceLineNo">512</span>         * <a name="line.512"></a>
+<span class="sourceLineNo">513</span>         * @param choice<a name="line.513"></a>
+<span class="sourceLineNo">514</span>         * @return an iterator of dataset that visits items chosen by given choice dataset<a name="line.514"></a>
+<span class="sourceLineNo">515</span>         */<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        public BooleanIterator getBooleanIterator(Dataset choice);<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>         * Get an iterator that visits every item in this dataset where the corresponding item in<a name="line.519"></a>
+<span class="sourceLineNo">520</span>         * choice dataset is given by value<a name="line.520"></a>
+<span class="sourceLineNo">521</span>         * <a name="line.521"></a>
+<span class="sourceLineNo">522</span>         * @param choice<a name="line.522"></a>
+<span class="sourceLineNo">523</span>         * @param value<a name="line.523"></a>
+<span class="sourceLineNo">524</span>         * @return an iterator of dataset that visits items chosen by given choice dataset<a name="line.524"></a>
+<span class="sourceLineNo">525</span>         */<a name="line.525"></a>
+<span class="sourceLineNo">526</span>        public BooleanIterator getBooleanIterator(Dataset choice, boolean value);<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>         * This is modelled after the NumPy get item with a condition specified by a boolean dataset<a name="line.529"></a>
+<span class="sourceLineNo">530</span>         *<a name="line.530"></a>
+<span class="sourceLineNo">531</span>         * @param selection<a name="line.531"></a>
+<span class="sourceLineNo">532</span>         *            a boolean dataset of same shape to use for selecting items<a name="line.532"></a>
+<span class="sourceLineNo">533</span>         * @return The new selected dataset<a name="line.533"></a>
+<span class="sourceLineNo">534</span>         */<a name="line.534"></a>
+<span class="sourceLineNo">535</span>        public Dataset getByBoolean(Dataset selection);<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>         * This is modelled after the NumPy set item with a condition specified by a boolean dataset<a name="line.538"></a>
+<span class="sourceLineNo">539</span>         *<a name="line.539"></a>
+<span class="sourceLineNo">540</span>         * @param obj<a name="line.540"></a>
+<span class="sourceLineNo">541</span>         *            specifies the object used to set the selected items<a name="line.541"></a>
+<span class="sourceLineNo">542</span>         * @param selection<a name="line.542"></a>
+<span class="sourceLineNo">543</span>         *            a boolean dataset of same shape to use for selecting items<a name="line.543"></a>
+<span class="sourceLineNo">544</span>         * <a name="line.544"></a>
+<span class="sourceLineNo">545</span>         * @return The dataset with modified content<a name="line.545"></a>
+<span class="sourceLineNo">546</span>         */<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        public Dataset setByBoolean(Object obj, Dataset selection);<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>         * This is modelled after the NumPy get item with an index dataset<a name="line.550"></a>
+<span class="sourceLineNo">551</span>         *<a name="line.551"></a>
+<span class="sourceLineNo">552</span>         * @param index<a name="line.552"></a>
+<span class="sourceLineNo">553</span>         *            an integer dataset<a name="line.553"></a>
+<span class="sourceLineNo">554</span>         * @return The new selected dataset by indices<a name="line.554"></a>
+<span class="sourceLineNo">555</span>         */<a name="line.555"></a>
+<span class="sourceLineNo">556</span>        public Dataset getBy1DIndex(IntegerDataset index);<a name="line.556"></a>
+<span class="sourceLineNo">557</span><a name="line.557"></a>
+<span class="sourceLineNo">558</span>        /**<a name="line.558"></a>
+<span class="sourceLineNo">559</span>         * This is modelled after the NumPy get item with an array of indexing objects<a name="line.559"></a>
+<span class="sourceLineNo">560</span>         *<a name="line.560"></a>
+<span class="sourceLineNo">561</span>         * @param indexes<a name="line.561"></a>
+<span class="sourceLineNo">562</span>         *            an array of integer dataset, boolean dataset, slices or null entries (same as<a name="line.562"></a>
+<span class="sourceLineNo">563</span>         *            full slices)<a name="line.563"></a>
+<span class="sourceLineNo">564</span>         * @return The new selected dataset by index<a name="line.564"></a>
+<span class="sourceLineNo">565</span>         */<a name="line.565"></a>
+<span class="sourceLineNo">566</span>        public Dataset getByIndexes(Object... indexes);<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>         * This is modelled after the NumPy set item with an index dataset<a name="line.569"></a>
+<span class="sourceLineNo">570</span>         *<a name="line.570"></a>
+<span class="sourceLineNo">571</span>         * @param obj<a name="line.571"></a>
+<span class="sourceLineNo">572</span>         *            specifies the object used to set the selected items<a name="line.572"></a>
+<span class="sourceLineNo">573</span>         * @param index<a name="line.573"></a>
+<span class="sourceLineNo">574</span>         *            an integer dataset<a name="line.574"></a>
+<span class="sourceLineNo">575</span>         * <a name="line.575"></a>
+<span class="sourceLineNo">576</span>         * @return The dataset with modified content<a name="line.576"></a>
+<span class="sourceLineNo">577</span>         */<a name="line.577"></a>
+<span class="sourceLineNo">578</span>        public Dataset setBy1DIndex(Object obj, Dataset 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>         * This is modelled after the NumPy set item with an array of indexing objects<a name="line.581"></a>
+<span class="sourceLineNo">582</span>         *<a name="line.582"></a>
+<span class="sourceLineNo">583</span>         * @param obj<a name="line.583"></a>
+<span class="sourceLineNo">584</span>         *            specifies the object used to set the selected items<a name="line.584"></a>
+<span class="sourceLineNo">585</span>         * @param indexes<a name="line.585"></a>
+<span class="sourceLineNo">586</span>         *            an array of integer dataset, boolean dataset, slices or null entries (same as<a name="line.586"></a>
+<span class="sourceLineNo">587</span>         *            full slices)<a name="line.587"></a>
+<span class="sourceLineNo">588</span>         * <a name="line.588"></a>
+<span class="sourceLineNo">589</span>         * @return The dataset with modified content<a name="line.589"></a>
+<span class="sourceLineNo">590</span>         */<a name="line.590"></a>
+<span class="sourceLineNo">591</span>        public Dataset setByIndexes(Object obj, Object... indexes);<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>         * Fill dataset with given object<a name="line.594"></a>
+<span class="sourceLineNo">595</span>         * <a name="line.595"></a>
+<span class="sourceLineNo">596</span>         * @param obj<a name="line.596"></a>
+<span class="sourceLineNo">597</span>         * @return filled dataset with each item being equal to the given object<a name="line.597"></a>
+<span class="sourceLineNo">598</span>         */<a name="line.598"></a>
+<span class="sourceLineNo">599</span>        public Dataset fill(Object obj);<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>         * Get an element from given absolute index as a boolean. See warning in interface doc<a name="line.602"></a>
+<span class="sourceLineNo">603</span>         * <a name="line.603"></a>
+<span class="sourceLineNo">604</span>         * @param index<a name="line.604"></a>
+<span class="sourceLineNo">605</span>         * @return element as boolean<a name="line.605"></a>
+<span class="sourceLineNo">606</span>         */<a name="line.606"></a>
+<span class="sourceLineNo">607</span>        public boolean getElementBooleanAbs(int index);<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>         * Get an element from given absolute index as a double. See warning in interface doc<a name="line.610"></a>
+<span class="sourceLineNo">611</span>         * <a name="line.611"></a>
+<span class="sourceLineNo">612</span>         * @param index<a name="line.612"></a>
+<span class="sourceLineNo">613</span>         * @return element as double<a name="line.613"></a>
+<span class="sourceLineNo">614</span>         */<a name="line.614"></a>
+<span class="sourceLineNo">615</span>        public double getElementDoubleAbs(int index);<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>         * Get an element from given absolute index as a long. See warning in interface doc<a name="line.618"></a>
+<span class="sourceLineNo">619</span>         * <a name="line.619"></a>
+<span class="sourceLineNo">620</span>         * @param index<a name="line.620"></a>
+<span class="sourceLineNo">621</span>         * @return element as long<a name="line.621"></a>
+<span class="sourceLineNo">622</span>         */<a name="line.622"></a>
+<span class="sourceLineNo">623</span>        public long getElementLongAbs(int index);<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>         * Get an item from given absolute index as an object. See warning in interface doc<a name="line.626"></a>
+<span class="sourceLineNo">627</span>         * <a name="line.627"></a>
+<span class="sourceLineNo">628</span>         * @param index<a name="line.628"></a>
+<span class="sourceLineNo">629</span>         * @return item<a name="line.629"></a>
+<span class="sourceLineNo">630</span>         */<a name="line.630"></a>
+<span class="sourceLineNo">631</span>        public Object getObjectAbs(int index);<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>         * Get an item from given absolute index as a string. See warning in interface doc<a name="line.634"></a>
+<span class="sourceLineNo">635</span>         * <a name="line.635"></a>
+<span class="sourceLineNo">636</span>         * @param index<a name="line.636"></a>
+<span class="sourceLineNo">637</span>         * @return item<a name="line.637"></a>
+<span class="sourceLineNo">638</span>         */<a name="line.638"></a>
+<span class="sourceLineNo">639</span>        public String getStringAbs(int index);<a name="line.639"></a>
+<span class="sourceLineNo">640</span><a name="line.640"></a>
+<span class="sourceLineNo">641</span>        /**<a name="line.641"></a>
+<span class="sourceLineNo">642</span>         * Set an item at absolute index from an object. See warning in interface doc<a name="line.642"></a>
+<span class="sourceLineNo">643</span>         * <a name="line.643"></a>
+<span class="sourceLineNo">644</span>         * @param index<a name="line.644"></a>
+<span class="sourceLineNo">645</span>         * @param obj<a name="line.645"></a>
+<span class="sourceLineNo">646</span>         */<a name="line.646"></a>
+<span class="sourceLineNo">647</span>        public void setObjectAbs(int index, Object obj);<a name="line.647"></a>
+<span class="sourceLineNo">648</span><a name="line.648"></a>
+<span class="sourceLineNo">649</span>        /**<a name="line.649"></a>
+<span class="sourceLineNo">650</span>         * Get first item as an object. The dataset must not be null<a name="line.650"></a>
+<span class="sourceLineNo">651</span>         * @return item<a name="line.651"></a>
+<span class="sourceLineNo">652</span>         * @since 2.0<a name="line.652"></a>
+<span class="sourceLineNo">653</span>         */<a name="line.653"></a>
+<span class="sourceLineNo">654</span>        public Object getObject();<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 an object. The dataset must be 1D<a name="line.657"></a>
+<span class="sourceLineNo">658</span>         * @param i<a name="line.658"></a>
+<span class="sourceLineNo">659</span>         * @return item<a name="line.659"></a>
+<span class="sourceLineNo">660</span>         */<a name="line.660"></a>
+<span class="sourceLineNo">661</span>        public Object getObject(final int i);<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>        /**<a name="line.663"></a>
+<span class="sourceLineNo">664</span>         * Get an item from given position as an object. The dataset must be 2D<a name="line.664"></a>
+<span class="sourceLineNo">665</span>         * @param i<a name="line.665"></a>
+<span class="sourceLineNo">666</span>         * @param j<a name="line.666"></a>
+<span class="sourceLineNo">667</span>         * @return item<a name="line.667"></a>
+<span class="sourceLineNo">668</span>         */<a name="line.668"></a>
+<span class="sourceLineNo">669</span>        public Object getObject(final int i, final int j);<a name="line.669"></a>
+<span class="sourceLineNo">670</span><a name="line.670"></a>
+<span class="sourceLineNo">671</span>        /**<a name="line.671"></a>
+<span class="sourceLineNo">672</span>         * Get first item as a string. The dataset must not be null<a name="line.672"></a>
+<span class="sourceLineNo">673</span>         * @return item<a name="line.673"></a>
+<span class="sourceLineNo">674</span>         * @since 2.0<a name="line.674"></a>
+<span class="sourceLineNo">675</span>         */<a name="line.675"></a>
+<span class="sourceLineNo">676</span>        public String getString();<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 string. The dataset must be 1D<a name="line.679"></a>
+<span class="sourceLineNo">680</span>         * @param i<a name="line.680"></a>
+<span class="sourceLineNo">681</span>         * @return item<a name="line.681"></a>
+<span class="sourceLineNo">682</span>         */<a name="line.682"></a>
+<span class="sourceLineNo">683</span>        public String getString(final int i);<a name="line.683"></a>
+<span class="sourceLineNo">684</span><a name="line.684"></a>
+<span class="sourceLineNo">685</span>        /**<a name="line.685"></a>
+<span class="sourceLineNo">686</span>         * Get an item from given position as a string. The dataset must be 2D<a name="line.686"></a>
+<span class="sourceLineNo">687</span>         * @param i<a name="line.687"></a>
+<span class="sourceLineNo">688</span>         * @param j<a name="line.688"></a>
+<span class="sourceLineNo">689</span>         * @return item<a name="line.689"></a>
+<span class="sourceLineNo">690</span>         */<a name="line.690"></a>
+<span class="sourceLineNo">691</span>        public String getString(final int i, final int j);<a name="line.691"></a>
+<span class="sourceLineNo">692</span><a name="line.692"></a>
+<span class="sourceLineNo">693</span>        /**<a name="line.693"></a>
+<span class="sourceLineNo">694</span>         * Get first item as a double. The dataset must not be null<a name="line.694"></a>
+<span class="sourceLineNo">695</span>         * @return item<a name="line.695"></a>
+<span class="sourceLineNo">696</span>         * @since 2.0<a name="line.696"></a>
+<span class="sourceLineNo">697</span>         */<a name="line.697"></a>
+<span class="sourceLineNo">698</span>        public double getDouble();<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 double. The dataset must be 1D<a name="line.701"></a>
+<span class="sourceLineNo">702</span>         * @param i<a name="line.702"></a>
+<span class="sourceLineNo">703</span>         * @return item<a name="line.703"></a>
+<span class="sourceLineNo">704</span>         */<a name="line.704"></a>
+<span class="sourceLineNo">705</span>        public double getDouble(final int i);<a name="line.705"></a>
+<span class="sourceLineNo">706</span><a name="line.706"></a>
+<span class="sourceLineNo">707</span>        /**<a name="line.707"></a>
+<span class="sourceLineNo">708</span>         * Get an item from given position as a double. The dataset must be 2D<a name="line.708"></a>
+<span class="sourceLineNo">709</span>         * @param i<a name="line.709"></a>
+<span class="sourceLineNo">710</span>         * @param j<a name="line.710"></a>
+<span class="sourceLineNo">711</span>         * @return item<a name="line.711"></a>
+<span class="sourceLineNo">712</span>         */<a name="line.712"></a>
+<span class="sourceLineNo">713</span>        public double getDouble(final int i, final int j);<a name="line.713"></a>
+<span class="sourceLineNo">714</span><a name="line.714"></a>
+<span class="sourceLineNo">715</span>        /**<a name="line.715"></a>
+<span class="sourceLineNo">716</span>         * Get first item as a float. The dataset must not be null<a name="line.716"></a>
+<span class="sourceLineNo">717</span>         * @return item<a name="line.717"></a>
+<span class="sourceLineNo">718</span>         * @since 2.0<a name="line.718"></a>
+<span class="sourceLineNo">719</span>         */<a name="line.719"></a>
+<span class="sourceLineNo">720</span>        public float getFloat();<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 float. The dataset must be 1D<a name="line.723"></a>
+<span class="sourceLineNo">724</span>         * @param i<a name="line.724"></a>
+<span class="sourceLineNo">725</span>         * @return item<a name="line.725"></a>
+<span class="sourceLineNo">726</span>         */<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        public float getFloat(final int i);<a name="line.727"></a>
+<span class="sourceLineNo">728</span><a name="line.728"></a>
+<span class="sourceLineNo">729</span>        /**<a name="line.729"></a>
+<span class="sourceLineNo">730</span>         * Get an item from given position as a float. The dataset must be 2D<a name="line.730"></a>
+<span class="sourceLineNo">731</span>         * @param i<a name="line.731"></a>
+<span class="sourceLineNo">732</span>         * @param j<a name="line.732"></a>
+<span class="sourceLineNo">733</span>         * @return item<a name="line.733"></a>
+<span class="sourceLineNo">734</span>         */<a name="line.734"></a>
+<span class="sourceLineNo">735</span>        public float getFloat(final int i, final int j);<a name="line.735"></a>
+<span class="sourceLineNo">736</span><a name="line.736"></a>
+<span class="sourceLineNo">737</span>        /**<a name="line.737"></a>
+<span class="sourceLineNo">738</span>         * Get first item as a long. The dataset must not be null<a name="line.738"></a>
+<span class="sourceLineNo">739</span>         * @return item<a name="line.739"></a>
+<span class="sourceLineNo">740</span>         * @since 2.0<a name="line.740"></a>
+<span class="sourceLineNo">741</span>         */<a name="line.741"></a>
+<span class="sourceLineNo">742</span>        public long getLong();<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 a long. The dataset must be 1D<a name="line.745"></a>
+<span class="sourceLineNo">746</span>         * @param i<a name="line.746"></a>
+<span class="sourceLineNo">747</span>         * @return item<a name="line.747"></a>
+<span class="sourceLineNo">748</span>         */<a name="line.748"></a>
+<span class="sourceLineNo">749</span>        public long getLong(final int i);<a name="line.749"></a>
+<span class="sourceLineNo">750</span><a name="line.750"></a>
+<span class="sourceLineNo">751</span>        /**<a name="line.751"></a>
+<span class="sourceLineNo">752</span>         * Get an item from given position as a long. The dataset must be 2D<a name="line.752"></a>
+<span class="sourceLineNo">753</span>         * @param i<a name="line.753"></a>
+<span class="sourceLineNo">754</span>         * @param j<a name="line.754"></a>
+<span class="sourceLineNo">755</span>         * @return item<a name="line.755"></a>
+<span class="sourceLineNo">756</span>         */<a name="line.756"></a>
+<span class="sourceLineNo">757</span>        public long getLong(final int i, final int j);<a name="line.757"></a>
+<span class="sourceLineNo">758</span><a name="line.758"></a>
+<span class="sourceLineNo">759</span>        /**<a name="line.759"></a>
+<span class="sourceLineNo">760</span>         * Get first item as an int. The dataset must not be null<a name="line.760"></a>
+<span class="sourceLineNo">761</span>         * @return item<a name="line.761"></a>
+<span class="sourceLineNo">762</span>         * @since 2.0<a name="line.762"></a>
+<span class="sourceLineNo">763</span>         */<a name="line.763"></a>
+<span class="sourceLineNo">764</span>        public int getInt();<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 an int. The dataset must be 1D<a name="line.767"></a>
+<span class="sourceLineNo">768</span>         * @param i<a name="line.768"></a>
+<span class="sourceLineNo">769</span>         * @return item<a name="line.769"></a>
+<span class="sourceLineNo">770</span>         */<a name="line.770"></a>
+<span class="sourceLineNo">771</span>        public int getInt(final int i);<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>        /**<a name="line.773"></a>
+<span class="sourceLineNo">774</span>         * Get an item from given position as an int. The dataset must be 2D<a name="line.774"></a>
+<span class="sourceLineNo">775</span>         * @param i<a name="line.775"></a>
+<span class="sourceLineNo">776</span>         * @param j<a name="line.776"></a>
+<span class="sourceLineNo">777</span>         * @return item<a name="line.777"></a>
+<span class="sourceLineNo">778</span>         */<a name="line.778"></a>
+<span class="sourceLineNo">779</span>        public int getInt(final int i, final int j);<a name="line.779"></a>
+<span class="sourceLineNo">780</span><a name="line.780"></a>
+<span class="sourceLineNo">781</span>        /**<a name="line.781"></a>
+<span class="sourceLineNo">782</span>         * Get first item as a short. The dataset must not be null<a name="line.782"></a>
+<span class="sourceLineNo">783</span>         * @return item<a name="line.783"></a>
+<span class="sourceLineNo">784</span>         * @since 2.0<a name="line.784"></a>
+<span class="sourceLineNo">785</span>         */<a name="line.785"></a>
+<span class="sourceLineNo">786</span>        public short getShort();<a name="line.786"></a>
+<span class="sourceLineNo">787</span><a name="line.787"></a>
+<span class="sourceLineNo">788</span>        /**<a name="line.788"></a>
+<span class="sourceLineNo">789</span>         * Get an item from given position as a short. The dataset must be 1D<a name="line.789"></a>
+<span class="sourceLineNo">790</span>         * @param i<a name="line.790"></a>
+<span class="sourceLineNo">791</span>         * @return item<a name="line.791"></a>
+<span class="sourceLineNo">792</span>         */<a name="line.792"></a>
+<span class="sourceLineNo">793</span>        public short getShort(final int i);<a name="line.793"></a>
+<span class="sourceLineNo">794</span><a name="line.794"></a>
+<span class="sourceLineNo">795</span>        /**<a name="line.795"></a>
+<span class="sourceLineNo">796</span>         * Get an item from given position as a short. The dataset must be 2D<a name="line.796"></a>
+<span class="sourceLineNo">797</span>         * @param i<a name="line.797"></a>
+<span class="sourceLineNo">798</span>         * @param j<a name="line.798"></a>
+<span class="sourceLineNo">799</span>         * @return item<a name="line.799"></a>
+<span class="sourceLineNo">800</span>         */<a name="line.800"></a>
+<span class="sourceLineNo">801</span>        public short getShort(final int i, final int j);<a name="line.801"></a>
+<span class="sourceLineNo">802</span><a name="line.802"></a>
+<span class="sourceLineNo">803</span>        /**<a name="line.803"></a>
+<span class="sourceLineNo">804</span>         * Get first item as a byte. The dataset must not be null<a name="line.804"></a>
+<span class="sourceLineNo">805</span>         * @return item<a name="line.805"></a>
+<span class="sourceLineNo">806</span>         * @since 2.0<a name="line.806"></a>
+<span class="sourceLineNo">807</span>         */<a name="line.807"></a>
+<span class="sourceLineNo">808</span>        public byte getByte();<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 byte. The dataset must be 1D<a name="line.811"></a>
+<span class="sourceLineNo">812</span>         * @param i<a name="line.812"></a>
+<span class="sourceLineNo">813</span>         * @return item<a name="line.813"></a>
+<span class="sourceLineNo">814</span>         */<a name="line.814"></a>
+<span class="sourceLineNo">815</span>        public byte getByte(final int i);<a name="line.815"></a>
+<span class="sourceLineNo">816</span><a name="line.816"></a>
+<span class="sourceLineNo">817</span>        /**<a name="line.817"></a>
+<span class="sourceLineNo">818</span>         * Get an item from given positionj as a byte. The dataset must be 2D<a name="line.818"></a>
+<span class="sourceLineNo">819</span>         * @param i<a name="line.819"></a>
+<span class="sourceLineNo">820</span>         * @param j<a name="line.820"></a>
+<span class="sourceLineNo">821</span>         * @return item<a name="line.821"></a>
+<span class="sourceLineNo">822</span>         */<a name="line.822"></a>
+<span class="sourceLineNo">823</span>        public byte getByte(final int i, final int j);<a name="line.823"></a>
+<span class="sourceLineNo">824</span><a name="line.824"></a>
+<span class="sourceLineNo">825</span>        /**<a name="line.825"></a>
+<span class="sourceLineNo">826</span>         * Get first item as a boolean. The dataset must not be null<a name="line.826"></a>
+<span class="sourceLineNo">827</span>         * @return item<a name="line.827"></a>
+<span class="sourceLineNo">828</span>         * @since 2.0<a name="line.828"></a>
+<span class="sourceLineNo">829</span>         */<a name="line.829"></a>
+<span class="sourceLineNo">830</span>        public boolean getBoolean();<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 an item from given position as a boolean. The dataset must be 1D<a name="line.833"></a>
+<span class="sourceLineNo">834</span>         * @param i<a name="line.834"></a>
+<span class="sourceLineNo">835</span>         * @return item<a name="line.835"></a>
+<span class="sourceLineNo">836</span>         */<a name="line.836"></a>
+<span class="sourceLineNo">837</span>        public boolean getBoolean(final int i);<a name="line.837"></a>
+<span class="sourceLineNo">838</span><a name="line.838"></a>
+<span class="sourceLineNo">839</span>        /**<a name="line.839"></a>
+<span class="sourceLineNo">840</span>         * Get an item from given position as a boolean. The dataset must be 2D<a name="line.840"></a>
+<span class="sourceLineNo">841</span>         * @param i<a name="line.841"></a>
+<span class="sourceLineNo">842</span>         * @param j<a name="line.842"></a>
+<span class="sourceLineNo">843</span>         * @return item<a name="line.843"></a>
+<span class="sourceLineNo">844</span>         */<a name="line.844"></a>
+<span class="sourceLineNo">845</span>        public boolean getBoolean(final int i, final int j);<a name="line.845"></a>
+<span class="sourceLineNo">846</span><a name="line.846"></a>
+<span class="sourceLineNo">847</span>        /**<a name="line.847"></a>
+<span class="sourceLineNo">848</span>         * Get the error for the first item. The dataset must not be null<a name="line.848"></a>
+<span class="sourceLineNo">849</span>         * @return item<a name="line.849"></a>
+<span class="sourceLineNo">850</span>         * @since 2.0<a name="line.850"></a>
+<span class="sourceLineNo">851</span>         */<a name="line.851"></a>
+<span class="sourceLineNo">852</span>        public double getError();<a name="line.852"></a>
+<span class="sourceLineNo">853</span><a name="line.853"></a>
+<span class="sourceLineNo">854</span>        /**<a name="line.854"></a>
+<span class="sourceLineNo">855</span>         * Get the error for given position. The dataset must be 1D<a name="line.855"></a>
+<span class="sourceLineNo">856</span>         * @param i<a name="line.856"></a>
+<span class="sourceLineNo">857</span>         * @return error value (symmetric)<a name="line.857"></a>
+<span class="sourceLineNo">858</span>         */<a name="line.858"></a>
+<span class="sourceLineNo">859</span>        public double getError(final int i);<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>         * Get the error for given position. The dataset must be 2D<a name="line.862"></a>
+<span class="sourceLineNo">863</span>         * @param i<a name="line.863"></a>
+<span class="sourceLineNo">864</span>         * @param j<a name="line.864"></a>
+<span class="sourceLineNo">865</span>         * @return error value (symmetric)<a name="line.865"></a>
+<span class="sourceLineNo">866</span>         */<a name="line.866"></a>
+<span class="sourceLineNo">867</span>        public double getError(final int i, final int 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>         * Get the error values for given position<a name="line.870"></a>
+<span class="sourceLineNo">871</span>         * @param i<a name="line.871"></a>
+<span class="sourceLineNo">872</span>         * @return the values of the error at this point (can be null when no error defined)<a name="line.872"></a>
+<span class="sourceLineNo">873</span>         */<a name="line.873"></a>
+<span class="sourceLineNo">874</span>        public double[] getErrorArray(final int i);<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>        /**<a name="line.876"></a>
+<span class="sourceLineNo">877</span>         * Get the error values for given position<a name="line.877"></a>
+<span class="sourceLineNo">878</span>         * @param i<a name="line.878"></a>
+<span class="sourceLineNo">879</span>         * @param j<a name="line.879"></a>
+<span class="sourceLineNo">880</span>         * @return the values of the error at this point (can be null when no error defined)<a name="line.880"></a>
+<span class="sourceLineNo">881</span>         */<a name="line.881"></a>
+<span class="sourceLineNo">882</span>        public double[] getErrorArray(final int i, final int j);<a name="line.882"></a>
+<span class="sourceLineNo">883</span><a name="line.883"></a>
+<span class="sourceLineNo">884</span>        /**<a name="line.884"></a>
+<span class="sourceLineNo">885</span>         * Set the value given by object at the first position. The dataset must not be null<a name="line.885"></a>
+<span class="sourceLineNo">886</span>         * @param obj<a name="line.886"></a>
+<span class="sourceLineNo">887</span>         * @since 2.0<a name="line.887"></a>
+<span class="sourceLineNo">888</span>         */<a name="line.888"></a>
+<span class="sourceLineNo">889</span>        public void set(final Object obj);<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>         * Set the value given by object at given position. The dataset must be 1D<a name="line.892"></a>
+<span class="sourceLineNo">893</span>         * @param obj<a name="line.893"></a>
+<span class="sourceLineNo">894</span>         * @param i<a name="line.894"></a>
+<span class="sourceLineNo">895</span>         */<a name="line.895"></a>
+<span class="sourceLineNo">896</span>        public void set(final Object obj, final int i);<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>         * Set the value given by object at given position. The dataset must be 2D<a name="line.899"></a>
+<span class="sourceLineNo">900</span>         * @param obj<a name="line.900"></a>
+<span class="sourceLineNo">901</span>         * @param i<a name="line.901"></a>
+<span class="sourceLineNo">902</span>         * @param j<a name="line.902"></a>
+<span class="sourceLineNo">903</span>         */<a name="line.903"></a>
+<span class="sourceLineNo">904</span>        public void set(final Object obj, final int i, final int j);<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>         * In-place sort of dataset<a name="line.907"></a>
+<span class="sourceLineNo">908</span>         * <a name="line.908"></a>
+<span class="sourceLineNo">909</span>         * @param axis<a name="line.909"></a>
+<span class="sourceLineNo">910</span>         *            to sort along. If null, then the flattened view is sorted<a name="line.910"></a>
+<span class="sourceLineNo">911</span>         * @return sorted dataset<a name="line.911"></a>
+<span class="sourceLineNo">912</span>         */<a name="line.912"></a>
+<span class="sourceLineNo">913</span>        public Dataset sort(Integer axis);<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 Dataset getSlice(int[] start, int[] stop, int[] step);<a name="line.916"></a>
+<span class="sourceLineNo">917</span><a name="line.917"></a>
+<span class="sourceLineNo">918</span>        @Override<a name="line.918"></a>
+<span class="sourceLineNo">919</span>        public Dataset getSlice(IMonitor mon, int[] start, int[] stop, int[] step);<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 Dataset getSlice(Slice... slice);<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 Dataset getSlice(IMonitor mon, Slice... slice);<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 Dataset getSlice(SliceND slice);<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 Dataset getSlice(IMonitor mon, SliceND slice);<a name="line.931"></a>
+<span class="sourceLineNo">932</span><a name="line.932"></a>
+<span class="sourceLineNo">933</span>        @Override<a name="line.933"></a>
+<span class="sourceLineNo">934</span>        public Dataset getSliceView(int[] start, int[] stop, int[] step);<a name="line.934"></a>
+<span class="sourceLineNo">935</span><a name="line.935"></a>
+<span class="sourceLineNo">936</span>        @Override<a name="line.936"></a>
+<span class="sourceLineNo">937</span>        public Dataset getSliceView(Slice... slice);<a name="line.937"></a>
+<span class="sourceLineNo">938</span><a name="line.938"></a>
+<span class="sourceLineNo">939</span>        @Override<a name="line.939"></a>
+<span class="sourceLineNo">940</span>        public Dataset getSliceView(SliceND slice);<a name="line.940"></a>
+<span class="sourceLineNo">941</span><a name="line.941"></a>
+<span class="sourceLineNo">942</span>        /**<a name="line.942"></a>
+<span class="sourceLineNo">943</span>         * This is modelled after the NumPy array slice<a name="line.943"></a>
+<span class="sourceLineNo">944</span>         *<a name="line.944"></a>
+<span class="sourceLineNo">945</span>         * @param obj<a name="line.945"></a>
+<span class="sourceLineNo">946</span>         *            specifies the object used to set the specified slice<a name="line.946"></a>
+<span class="sourceLineNo">947</span>         * @param start<a name="line.947"></a>
+<span class="sourceLineNo">948</span>         *            specifies the starting indexes<a name="line.948"></a>
+<span class="sourceLineNo">949</span>         * @param stop<a name="line.949"></a>
+<span class="sourceLineNo">950</span>         *            specifies the stopping indexes (nb, these are &lt;b&gt;not&lt;/b&gt; included in the slice)<a name="line.950"></a>
+<span class="sourceLineNo">951</span>         * @param step<a name="line.951"></a>
+<span class="sourceLineNo">952</span>         *            specifies the steps in the slice<a name="line.952"></a>
+<span class="sourceLineNo">953</span>         * <a name="line.953"></a>
+<span class="sourceLineNo">954</span>         * @return The dataset with the sliced set to object<a name="line.954"></a>
+<span class="sourceLineNo">955</span>         */<a name="line.955"></a>
+<span class="sourceLineNo">956</span>        public Dataset setSlice(Object obj, int[] start, int[] stop, int[] step);<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>         * This is modelled after the NumPy array slice<a name="line.959"></a>
+<span class="sourceLineNo">960</span>         * <a name="line.960"></a>
+<span class="sourceLineNo">961</span>         * @param obj<a name="line.961"></a>
+<span class="sourceLineNo">962</span>         * @param slice<a name="line.962"></a>
+<span class="sourceLineNo">963</span>         */<a name="line.963"></a>
+<span class="sourceLineNo">964</span>        public Dataset setSlice(Object obj, Slice... slice);<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>         * This is modelled after the NumPy array slice<a name="line.967"></a>
+<span class="sourceLineNo">968</span>         * <a name="line.968"></a>
+<span class="sourceLineNo">969</span>         * @param obj<a name="line.969"></a>
+<span class="sourceLineNo">970</span>         * @param slice<a name="line.970"></a>
+<span class="sourceLineNo">971</span>         */<a name="line.971"></a>
+<span class="sourceLineNo">972</span>        public Dataset setSlice(Object obj, SliceND slice);<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>         * @param obj<a name="line.975"></a>
+<span class="sourceLineNo">976</span>         *            specifies the object used to set the specified slice<a name="line.976"></a>
+<span class="sourceLineNo">977</span>         * @param iterator<a name="line.977"></a>
+<span class="sourceLineNo">978</span>         *            specifies the slice iterator<a name="line.978"></a>
+<span class="sourceLineNo">979</span>         * <a name="line.979"></a>
+<span class="sourceLineNo">980</span>         * @return The dataset with the sliced set to object<a name="line.980"></a>
+<span class="sourceLineNo">981</span>         */<a name="line.981"></a>
+<span class="sourceLineNo">982</span>        public Dataset setSlice(Object obj, IndexIterator iterator);<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>         * Populate another dataset with part of current dataset<a name="line.985"></a>
+<span class="sourceLineNo">986</span>         * <a name="line.986"></a>
+<span class="sourceLineNo">987</span>         * @param other<a name="line.987"></a>
+<span class="sourceLineNo">988</span>         * @param iter<a name="line.988"></a>
+<span class="sourceLineNo">989</span>         *            over current dataset<a name="line.989"></a>
+<span class="sourceLineNo">990</span>         */<a name="line.990"></a>
+<span class="sourceLineNo">991</span>        public void fillDataset(Dataset other, IndexIterator iter);<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>         * Test if all items are true<a name="line.994"></a>
+<span class="sourceLineNo">995</span>         */<a name="line.995"></a>
+<span class="sourceLineNo">996</span>        public boolean all();<a name="line.996"></a>
+<span class="sourceLineNo">997</span><a name="line.997"></a>
+<span class="sourceLineNo">998</span>        /**<a name="line.998"></a>
+<span class="sourceLineNo">999</span>         * @param axis<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>         * @return dataset where items are true if all items along axis are true<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>         */<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>        public Dataset all(int axis);<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span><a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>        /**<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>         * Test if any items are true<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>         */<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        public boolean any();<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>         * @param axis<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>         * @return dataset where items are true if any items along axis are true<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>         */<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>        public Dataset any(int axis);<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span><a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>        /**<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>         * In-place addition with object o<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>         * <a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>         * @param o<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>         * @return sum dataset<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>         */<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>        public Dataset iadd(Object o);<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span><a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>        /**<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>         * In-place subtraction with object o<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>         * <a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>         * @param o<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>         * @return difference dataset<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>         */<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        public Dataset isubtract(Object o);<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>         * In-place multiplication with object o<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>         * <a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>         * @param o<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>         * @return product dataset<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>         */<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>        public Dataset imultiply(Object o);<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>         * In-place division with object o<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>         * <a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>         * @param o<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>         * @return dividend dataset<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>         */<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>        public Dataset idivide(Object o);<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span><a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        /**<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>         * In-place floor division with object o<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>         * <a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>         * @param o<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>         * @return dividend dataset<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>         */<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>        public Dataset ifloorDivide(Object o);<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span><a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>        /**<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>         * In-place remainder<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>         * <a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>         * @return remaindered dataset<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>         */<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>        public Dataset iremainder(Object o);<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span><a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>        /**<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>         * In-place floor<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>         * <a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>         * @return floored dataset<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>         */<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>        public Dataset ifloor();<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>         * In-place raise to power of object o<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>         * <a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>         * @param o<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>         * @return raised dataset<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>         */<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>        public Dataset ipower(Object o);<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>         * Calculate residual of dataset with object o<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>         * See {@link #residual(Object o, boolean ignoreNaNs)} with ignoreNaNs = false<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>         * <a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>         * @param o<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>         * @return sum of the squares of the differences<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>         */<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>        public double residual(Object o);<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>         * Calculate residual of dataset with object o<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>         * <a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>         * @param o<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>         * @param ignoreNaNs if true, skip NaNs<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>         * @return sum of the squares of the differences<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>         */<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>        public double residual(Object o, boolean ignoreNaNs);<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>         * Calculate residual of dataset with object o and weight. The weight is used to multiply<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>         * the squared differences<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>         * <a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>         * @param o<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>         * @param weight<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>         * @param ignoreNaNs if true, skip NaNs<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>         * @return sum of the squares of the differences<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>         */<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>        public double residual(Object o, Dataset weight, boolean ignoreNaNs);<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>         * @return true if dataset contains any infinities<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>         */<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>        public boolean containsInfs();<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>         * @return true if dataset contains any NaNs<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>         */<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        public boolean containsNans();<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>         * @return true if dataset contains any NaNs or infinities<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>         */<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>        public boolean containsInvalidNumbers();<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>         * @param axis<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>         * @param ignoreInvalids - Can be null, empty, or one or more booleans. By default, all booleans<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>         * are false. If the first boolean is true, will ignore NaNs and ignore infinities. Use the second<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>         * boolean to ignore infinities separately.<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>         * @return maxima along axis in dataset<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>         * @since 2.0<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>         */<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>        public Dataset max(int axis, boolean... ignoreInvalids);<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>         * @param axes<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>         * @return maxima in given axes of dataset<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>         * @since 2.2<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>         */<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>        public Dataset max(int[] axes, boolean... ignoreInvalids);<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span><a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>        /**<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>         * @param axis<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>         * @return minima along axis in dataset<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>         * @since 2.0<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>         */<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>        public Dataset min(int axis, boolean... ignoreInvalids);<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>         * @param axes<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>         * @return minima in given axes of dataset<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>         * @since 2.2<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>         */<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>        public Dataset min(int[] axes, boolean... ignoreInvalids);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span><a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>        /**<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>         * Find absolute index of maximum value (in a flattened view)<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>         * @param ignoreInvalids - see {@link IDataset#max(boolean...)}<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>         * @return absolute index<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>         * @since 2.0<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>         */<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>        public int argMax(boolean... ignoreInvalids);<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>         * Find indices of maximum values along given axis<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>         * @param axis<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>         * @return index dataset<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>         * @since 2.0<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>         */<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>        public Dataset argMax(int axis, boolean... ignoreInvalids);<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span><a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>        /**<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>         * Find absolute index of minimum value (in a flattened view)<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>         * @param ignoreInvalids - see {@link IDataset#max(boolean...)}<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>         * @return absolute index<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>         * @since 2.0<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>         */<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>        public int argMin(boolean... ignoreInvalids);<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>         * Find indices of minimum values along given axis<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 index 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 argMin(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 peak-to-peak value, the difference of maximum and minimum of 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 Number peakToPeak(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 peak-to-peak dataset, the difference of maxima and minima of dataset along axis<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 peakToPeak(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 axes<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 peak-to-peak dataset, the difference of maxima and minima of dataset in given axes<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>         * @since 2.2<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>         */<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>        public Dataset peakToPeak(int[] axes, 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>         * @param ignoreInvalids - see {@link IDataset#max(boolean...)}<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>         * @return number of items in dataset<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>         * @since 2.0<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>         */<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>        public long count(boolean... ignoreInvalids);<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span><a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>        /**<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>         * @param axis<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>         * @return number of items along axis in dataset<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>         * @since 2.0<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>         */<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>        public Dataset count(int axis, boolean... ignoreInvalids);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span><a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>        /**<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>         * @param axes<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>         * @return number of items in given axes of dataset<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>         * @since 2.2<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>         */<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>        public Dataset count(int[] axes, boolean... ignoreInvalids);<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>         * @param ignoreInvalids - see {@link IDataset#max(boolean...)}<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>         * @return sum over all items in dataset as a Double, array of doubles or a complex number<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>         * @since 2.0<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>         */<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>        public Object sum(boolean... ignoreInvalids);<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>         * @param axis<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>         * @return sum along axis in dataset<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>         * @since 2.0<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>         */<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>        public Dataset sum(int axis, boolean... ignoreInvalids);<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>         * @param axes<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>         * @return sum  in given axes of dataset<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>         * @since 2.2<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>         */<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>        public Dataset sum(int[] axes, boolean... ignoreInvalids);<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>         * @param ignoreInvalids - see {@link IDataset#max(boolean...)}<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>         * @return product over all items in dataset<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>         * @since 2.0<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>         */<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>        public Object product(boolean... ignoreInvalids);<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>         * @param axis<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>         * @return product along axis in dataset<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>         * @since 2.0<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>         */<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>        public Dataset product(int axis, boolean... ignoreInvalids);<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>         * @param axes<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>         * @return product in given axes of dataset<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>         * @since 2.2<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>         */<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>        public Dataset product(int[] axes, boolean... ignoreInvalids);<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>         * @param axis<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>         * @return mean along axis in dataset<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>         * @since 2.0<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>         */<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>        public Dataset mean(int axis, boolean... ignoreInvalids);<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>         * @param axes<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>         * @return mean in given axes of dataset<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>         * @since 2.2<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>         */<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>        public Dataset mean(int[] axes, boolean... ignoreInvalids);<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span><a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>        /**<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>         * @return sample variance of whole 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 double variance();<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>         * The sample variance can be calculated in two ways: if the dataset is considered as the<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>         * entire population then the sample variance is simply the second central moment:<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>         * <a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>         * &lt;pre&gt;<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>         *    sum((x_i - m)^2)/N<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>         * where {x_i} are set of N population values and m is the mean<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>         *    m = sum(x_i)/N<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>         * &lt;/pre&gt;<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>         * <a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>         * Otherwise, if the dataset is a set of samples (with replacement) from the population then<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>         * <a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>         * &lt;pre&gt;<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>         *    sum((x_i - m)^2)/(N-1)<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>         * where {x_i} are set of N sample values and m is the unbiased estimate of the mean<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>         *    m = sum(x_i)/N<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>         * &lt;/pre&gt;<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>         * <a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>         * Note that the second definition is also the unbiased estimator of population variance.<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>         * <a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>         * @param isWholePopulation<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>         * @return sample variance<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>         * @since 2.0<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>         */<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>        public double variance(boolean isWholePopulation, boolean... ignoreInvalids);<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>         * @param axis<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>         * @return sample variance along axis in dataset<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>         * @see #variance(int, boolean, boolean...) with isWholePopulation = false<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>         */<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>        public Dataset variance(int axis);<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>         * @param axes<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>         * @return sample variance in given axes of dataset<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>         * @see #variance(int[], boolean, boolean...) with isWholePopulation = false<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>         * @since 2.2<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>         */<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>        public Dataset variance(int[] axes);<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>         * @param axis<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>         * @param isWholePopulation<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>         * @return sample variance along axis in dataset<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>         * @since 2.0<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>         */<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>        public Dataset variance(int axis, boolean isWholePopulation, boolean... ignoreInvalids);<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span><a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>        /**<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>         * @param axes<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>         * @param isWholePopulation<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>         * @return sample variance in given axes of dataset<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>         * @since 2.2<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>         */<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>        public Dataset variance(int[] axes, boolean isWholePopulation, boolean... ignoreInvalids);<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>         * Standard deviation is square root of the variance<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>         * <a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>         * @return sample standard deviation of all items in dataset<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>         * @see #stdDeviation(boolean, boolean...) with isWholePopulation = false<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>         * @since 2.0<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>         */<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>        public double stdDeviation();<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>         * Standard deviation is square root of the variance<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>         * <a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>         * @param isWholePopulation<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>         * @return sample standard deviation of all items in dataset<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>         * @see #variance(boolean, boolean...)<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>         * @since 2.0<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>         */<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>        public double stdDeviation(boolean isWholePopulation, boolean... ignoreInvalids);<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>         * Standard deviation is square root of the variance<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>         * <a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>         * @param axis<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>         * @return standard deviation along axis in dataset<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>         * @see #stdDeviation(int, boolean, boolean...) with isWholePopulation = false<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>         */<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>        public Dataset stdDeviation(int axis);<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>         * Standard deviation is square root of the variance<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>         * <a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>         * @param axes<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>         * @return standard deviation in given axes of dataset<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>         * @see #stdDeviation(int[], boolean, boolean...) with isWholePopulation = false<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>         * @since 2.2<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>         */<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>        public Dataset stdDeviation(int[] axes);<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>         * Standard deviation is square root of the variance<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>         * <a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>         * @param axis<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>         * @param isWholePopulation<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>         * @return standard deviation along axis in dataset<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>         * @since 2.0<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>         */<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>        public Dataset stdDeviation(int axis, boolean isWholePopulation, boolean... ignoreInvalids);<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span><a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>        /**<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>         * Standard deviation is square root of the variance<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>         * <a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>         * @param axes<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>         * @param isWholePopulation<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>         * @return standard deviation in given axes of dataset<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>         * @since 2.2<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>         */<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>        public Dataset stdDeviation(int[] axes, boolean isWholePopulation, boolean... ignoreInvalids);<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>         * @param ignoreInvalids - see {@link IDataset#max(boolean...)}<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>         * @return root mean square<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>         * @since 2.0<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>         */<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>        public double rootMeanSquare(boolean... ignoreInvalids);<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>         * @param axis<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>         * @return root mean square along axis in dataset<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>         * @since 2.0<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>         */<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>        public Dataset rootMeanSquare(int axis, boolean... ignoreInvalids);<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>         * @param axes<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>         * @return root mean square in given axes of dataset<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>         * @since 2.2<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>         */<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>        public Dataset rootMeanSquare(int[] axes, boolean... ignoreInvalids);<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>}<a name="line.1447"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/DatasetFactory.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/DatasetFactory.html
new file mode 100644
index 0000000..d0449cc
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/DatasetFactory.html
@@ -0,0 +1,1143 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.math.BigInteger;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.Date;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.List;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>public class DatasetFactory {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        /**<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * Create dataset with items ranging from 0 up to given stop in steps of 1<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * @param stop stop value is &lt;strong&gt;not&lt;/strong&gt; included<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * @return a new double dataset of given shape and type, filled with values determined by parameters<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         */<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        public static DoubleDataset createRange(final double stop) {<a name="line.26"></a>
+<span class="sourceLineNo">027</span>                return createRange(DoubleDataset.class, 0, stop, 1);<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        }<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>        /**<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         * Create dataset with items ranging from given start up to given stop in given steps<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * @param start<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * @param stop stop value is &lt;strong&gt;not&lt;/strong&gt; included<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * @param step spacing between items<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * @return a new 1D dataset of given type, filled with values determined by parameters<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         * @since 2.1<a name="line.36"></a>
+<span class="sourceLineNo">037</span>         */<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        public static DoubleDataset createRange(final double start, final double stop, final double step) {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                return createRange(DoubleDataset.class, start, stop, step);<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        }<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>        /**<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * Create dataset with items ranging from 0 up to given stop in steps of 1<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param stop stop value is &lt;strong&gt;not&lt;/strong&gt; included<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * @param dtype<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @return a new dataset of given shape and type, filled with values determined by parameters<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         * <a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @deprecated Please use the class-based methods in DatasetFactory,<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         *             such as {@link #createRange(Class, double)}<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         */<a name="line.50"></a>
+<span class="sourceLineNo">051</span>        @Deprecated<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        public static Dataset createRange(final double stop, final int dtype) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                return createRange(0, stop, 1, dtype);<a name="line.53"></a>
+<span class="sourceLineNo">054</span>        }<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>        /**<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * Create dataset with items ranging from given start up to given stop in given steps<a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param start<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param stop stop value is &lt;strong&gt;not&lt;/strong&gt; included<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @param step spacing between items<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * @param dtype<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * @return a new 1D dataset of given type, filled with values determined by parameters<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         * <a name="line.63"></a>
+<span class="sourceLineNo">064</span>         * @deprecated Please use the class-based methods in DatasetFactory,<a name="line.64"></a>
+<span class="sourceLineNo">065</span>         *             such as {@link #createRange(Class, double, double, double)}<a name="line.65"></a>
+<span class="sourceLineNo">066</span>         */<a name="line.66"></a>
+<span class="sourceLineNo">067</span>        @Deprecated<a name="line.67"></a>
+<span class="sourceLineNo">068</span>        public static Dataset createRange(final double start, final double stop, final double step, final int dtype) {<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                if ((step &gt; 0) != (start &lt;= stop)) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                        throw new IllegalArgumentException("Invalid parameters: start and stop must be in correct order for step");<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                }<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>                switch (dtype) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                case Dataset.BOOL:<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        break;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                case Dataset.INT8:<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        return ByteDataset.createRange(start, stop, step);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                case Dataset.INT16:<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        return ShortDataset.createRange(start, stop, step);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                case Dataset.INT32:<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        return IntegerDataset.createRange(start, stop, step);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                case Dataset.INT64:<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                        return LongDataset.createRange(start, stop, step);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                case Dataset.FLOAT32:<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                        return FloatDataset.createRange(start, stop, step);<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                case Dataset.FLOAT64:<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        return DoubleDataset.createRange(start, stop, step);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                case Dataset.COMPLEX64:<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                        return ComplexFloatDataset.createRange(start, stop, step);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                case Dataset.COMPLEX128:<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                        return ComplexDoubleDataset.createRange(start, stop, step);<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                }<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                throw new IllegalArgumentException("dtype not known");<a name="line.93"></a>
+<span class="sourceLineNo">094</span>        }<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>        /**<a name="line.96"></a>
+<span class="sourceLineNo">097</span>         * Create compound dataset with items of given size ranging from 0 up to given stop in steps of 1<a name="line.97"></a>
+<span class="sourceLineNo">098</span>         * @param itemSize<a name="line.98"></a>
+<span class="sourceLineNo">099</span>         * @param stop stop value is &lt;strong&gt;not&lt;/strong&gt; included<a name="line.99"></a>
+<span class="sourceLineNo">100</span>         * @param dtype<a name="line.100"></a>
+<span class="sourceLineNo">101</span>         * @return a new dataset of given shape and type, filled with values determined by parameters<a name="line.101"></a>
+<span class="sourceLineNo">102</span>         * <a name="line.102"></a>
+<span class="sourceLineNo">103</span>         * @deprecated Please use the class-based methods in DatasetFactory,<a name="line.103"></a>
+<span class="sourceLineNo">104</span>         *             such as {@link #createRange(Class, double, double, double)}<a name="line.104"></a>
+<span class="sourceLineNo">105</span>         */<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        @Deprecated<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        public static CompoundDataset createRange(final int itemSize, final double stop, final int dtype) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                return createRange(itemSize, 0, stop, 1, dtype);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>        }<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span>        /**<a name="line.111"></a>
+<span class="sourceLineNo">112</span>         * Create compound dataset with items of given size ranging from given start up to given stop in given steps<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * @param itemSize<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         * @param start<a name="line.114"></a>
+<span class="sourceLineNo">115</span>         * @param stop stop value is &lt;strong&gt;not&lt;/strong&gt; included<a name="line.115"></a>
+<span class="sourceLineNo">116</span>         * @param step spacing between items<a name="line.116"></a>
+<span class="sourceLineNo">117</span>         * @param dtype<a name="line.117"></a>
+<span class="sourceLineNo">118</span>         * @return a new 1D dataset of given type, filled with values determined by parameters<a name="line.118"></a>
+<span class="sourceLineNo">119</span>         * <a name="line.119"></a>
+<span class="sourceLineNo">120</span>         * @deprecated Please use the class-based methods in DatasetFactory,<a name="line.120"></a>
+<span class="sourceLineNo">121</span>         *             such as {@link #createRange(Class, double, double, double)}<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         */<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        @Deprecated<a name="line.123"></a>
+<span class="sourceLineNo">124</span>        public static CompoundDataset createRange(final int itemSize, final double start, final double stop, final double step, final int dtype) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                if (itemSize &lt; 1) {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                        throw new IllegalArgumentException("Item size must be greater or equal to 1");<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                }<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                if ((step &gt; 0) != (start &lt;= stop)) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        throw new IllegalArgumentException("Invalid parameters: start and stop must be in correct order for step");<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                }<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>                switch (dtype) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                case Dataset.BOOL:<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        break;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                case Dataset.ARRAYINT8:<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                case Dataset.INT8:<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                        return CompoundIntegerDataset.createRange(itemSize, start, stop, step);<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                case Dataset.ARRAYINT16:<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                case Dataset.INT16:<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        return CompoundShortDataset.createRange(itemSize, start, stop, step);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                case Dataset.ARRAYINT32:<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                case Dataset.INT32:<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                        return CompoundIntegerDataset.createRange(itemSize, start, stop, step);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                case Dataset.ARRAYINT64:<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                case Dataset.INT64:<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        return CompoundLongDataset.createRange(itemSize, start, stop, step);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                case Dataset.ARRAYFLOAT32:<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                case Dataset.FLOAT32:<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                        return CompoundFloatDataset.createRange(itemSize, start, stop, step);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                case Dataset.ARRAYFLOAT64:<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                case Dataset.FLOAT64:<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        return CompoundDoubleDataset.createRange(itemSize, start, stop, step);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                case Dataset.COMPLEX64:<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        if (itemSize != 2) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                                throw new IllegalArgumentException("Item size must be equal to 2");<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        }<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        return ComplexFloatDataset.createRange(start, stop, step);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                case Dataset.COMPLEX128:<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                        if (itemSize != 2) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                                throw new IllegalArgumentException("Item size must be equal to 2");<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        return ComplexFloatDataset.createRange(start, stop, step);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                }<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                throw new IllegalArgumentException("dtype not known");<a name="line.164"></a>
+<span class="sourceLineNo">165</span>        }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>        /**<a name="line.167"></a>
+<span class="sourceLineNo">168</span>         * Create a dataset from object (automatically detect dataset type)<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         *<a name="line.169"></a>
+<span class="sourceLineNo">170</span>         * @param obj<a name="line.170"></a>
+<span class="sourceLineNo">171</span>         *            can be Java list, array or Number<a name="line.171"></a>
+<span class="sourceLineNo">172</span>         * @return dataset<a name="line.172"></a>
+<span class="sourceLineNo">173</span>         */<a name="line.173"></a>
+<span class="sourceLineNo">174</span>        public static Dataset createFromObject(Object obj) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                return createFromObject(obj, null);<a name="line.175"></a>
+<span class="sourceLineNo">176</span>        }<a name="line.176"></a>
+<span class="sourceLineNo">177</span><a name="line.177"></a>
+<span class="sourceLineNo">178</span>        /**<a name="line.178"></a>
+<span class="sourceLineNo">179</span>         * Create a dataset from object (automatically detect dataset type)<a name="line.179"></a>
+<span class="sourceLineNo">180</span>         * <a name="line.180"></a>
+<span class="sourceLineNo">181</span>         * @param obj<a name="line.181"></a>
+<span class="sourceLineNo">182</span>         *            can be Java list, array or Number<a name="line.182"></a>
+<span class="sourceLineNo">183</span>         * @param shape can be null<a name="line.183"></a>
+<span class="sourceLineNo">184</span>         * @return dataset<a name="line.184"></a>
+<span class="sourceLineNo">185</span>         */<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        public static Dataset createFromObject(Object obj, int... shape) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                if (obj instanceof IDataset) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                        Dataset d = DatasetUtils.convertToDataset((IDataset) obj);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                        if (shape != null) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                                d.setShape(shape);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                        }<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                        return d;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                }<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                if (obj instanceof BigInteger) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                        obj = ((BigInteger) obj).longValue();<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                }<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>                final int dtype = DTypeUtils.getDTypeFromObject(obj);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                return createFromObject(dtype, obj, shape);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>        }<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>        /**<a name="line.202"></a>
+<span class="sourceLineNo">203</span>         * Create a dataset from object (automatically detect dataset type)<a name="line.203"></a>
+<span class="sourceLineNo">204</span>         * @param isUnsigned<a name="line.204"></a>
+<span class="sourceLineNo">205</span>         *            if true, interpret integer values as unsigned by increasing element bit width if required<a name="line.205"></a>
+<span class="sourceLineNo">206</span>         * @param obj<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         *            can be a Java list, array or Number<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * @return dataset<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         */<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        public static Dataset createFromObject(boolean isUnsigned, final Object obj) {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                Dataset a = createFromObject(obj);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                if (isUnsigned) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                        a = DatasetUtils.makeUnsigned(a, true);<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                }<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                return a;<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        }<a name="line.216"></a>
+<span class="sourceLineNo">217</span><a name="line.217"></a>
+<span class="sourceLineNo">218</span>        /**<a name="line.218"></a>
+<span class="sourceLineNo">219</span>         * Create a dataset from object<a name="line.219"></a>
+<span class="sourceLineNo">220</span>         * @param dtype<a name="line.220"></a>
+<span class="sourceLineNo">221</span>         * @param obj<a name="line.221"></a>
+<span class="sourceLineNo">222</span>         *            can be a Java list, array or Number<a name="line.222"></a>
+<span class="sourceLineNo">223</span>         * @return dataset<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * @throws IllegalArgumentException if dataset type is not known<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         * <a name="line.225"></a>
+<span class="sourceLineNo">226</span>         * @deprecated Please use the class-based methods in DatasetFactory,<a name="line.226"></a>
+<span class="sourceLineNo">227</span>         *             such as {@link #createFromObject(Class, Object, int...)}<a name="line.227"></a>
+<span class="sourceLineNo">228</span>         */<a name="line.228"></a>
+<span class="sourceLineNo">229</span>        @Deprecated<a name="line.229"></a>
+<span class="sourceLineNo">230</span>        public static Dataset createFromObject(final int dtype, final Object obj) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                return createFromObject(dtype, obj, null);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>        }<a name="line.232"></a>
+<span class="sourceLineNo">233</span><a name="line.233"></a>
+<span class="sourceLineNo">234</span>        /**<a name="line.234"></a>
+<span class="sourceLineNo">235</span>         * Create a dataset from object<a name="line.235"></a>
+<span class="sourceLineNo">236</span>         * @param dtype<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         * @param obj<a name="line.237"></a>
+<span class="sourceLineNo">238</span>         *            can be a Java list, array or Number<a name="line.238"></a>
+<span class="sourceLineNo">239</span>         * @param shape can be null<a name="line.239"></a>
+<span class="sourceLineNo">240</span>         * @return dataset<a name="line.240"></a>
+<span class="sourceLineNo">241</span>         * @throws IllegalArgumentException if dataset type is not known<a name="line.241"></a>
+<span class="sourceLineNo">242</span>         * <a name="line.242"></a>
+<span class="sourceLineNo">243</span>         * @deprecated Please use the class-based methods in DatasetFactory,<a name="line.243"></a>
+<span class="sourceLineNo">244</span>         *             such as {@link #createFromObject(Class, Object, int...)}<a name="line.244"></a>
+<span class="sourceLineNo">245</span>         */<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        @Deprecated<a name="line.246"></a>
+<span class="sourceLineNo">247</span>        public static Dataset createFromObject(final int dtype, final Object obj, final int... shape) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                return createFromObject(1, dtype, obj, shape);<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        }<a name="line.249"></a>
+<span class="sourceLineNo">250</span><a name="line.250"></a>
+<span class="sourceLineNo">251</span>        /**<a name="line.251"></a>
+<span class="sourceLineNo">252</span>         * Create a dataset from object<a name="line.252"></a>
+<span class="sourceLineNo">253</span>         * @param itemSize<a name="line.253"></a>
+<span class="sourceLineNo">254</span>         * @param dtype<a name="line.254"></a>
+<span class="sourceLineNo">255</span>         * @param obj<a name="line.255"></a>
+<span class="sourceLineNo">256</span>         *            can be a Java list, array or Number<a name="line.256"></a>
+<span class="sourceLineNo">257</span>         * @param shape can be null<a name="line.257"></a>
+<span class="sourceLineNo">258</span>         * @return dataset<a name="line.258"></a>
+<span class="sourceLineNo">259</span>         * @throws IllegalArgumentException if dataset type is not known<a name="line.259"></a>
+<span class="sourceLineNo">260</span>         * <a name="line.260"></a>
+<span class="sourceLineNo">261</span>         * @deprecated Please use the class-based methods in DatasetFactory,<a name="line.261"></a>
+<span class="sourceLineNo">262</span>         *             such as {@link #createFromObject(int, Class, Object, int...)}<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         */<a name="line.263"></a>
+<span class="sourceLineNo">264</span>        @Deprecated<a name="line.264"></a>
+<span class="sourceLineNo">265</span>        public static Dataset createFromObject(final int itemSize, final int dtype, final Object obj, final int... shape) {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                Dataset d = null;<a name="line.266"></a>
+<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">268</span>                if (obj instanceof IDataset) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                        d = itemSize == 1 ? DatasetUtils.cast((IDataset) obj, dtype) :<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                                DatasetUtils.cast((IDataset) obj, false, dtype, itemSize);<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                } else {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                        // primitive arrays<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        Class&lt;? extends Object&gt; ca = obj == null ? null : obj.getClass().getComponentType();<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                        if (ca != null &amp;&amp; (ca.isPrimitive() || ca.equals(String.class))) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                                switch (dtype) {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                                case Dataset.COMPLEX64:<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                                        return new ComplexFloatDataset(DTypeUtils.toFloatArray(obj, DTypeUtils.getLength(obj)), shape);<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                                case Dataset.COMPLEX128:<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                                        return new ComplexDoubleDataset(DTypeUtils.toDoubleArray(obj, DTypeUtils.getLength(obj)), shape);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                                default:<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                                        d = createFromPrimitiveArray(DTypeUtils.getDTypeFromClass(ca), obj);<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                                        if (!DTypeUtils.isDTypeElemental(dtype)) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                                                d = DatasetUtils.createCompoundDataset(d, dtype == Dataset.RGB ? 3 : itemSize);<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                                                if (dtype == Dataset.RGB &amp;&amp; d.getSize() == 1) { // special case of allowing a zero-rank RGB dataset<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                                                        d.setShape();<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>                                        d = DatasetUtils.cast(d, dtype);<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                                }<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                        } else {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                                switch (dtype) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                                case Dataset.BOOL:<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                                        d = BooleanDataset.createFromObject(obj);<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                                        break;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                                case Dataset.INT8:<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                                        d = ByteDataset.createFromObject(obj);<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                        break;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                                case Dataset.INT16:<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                                        d = ShortDataset.createFromObject(obj);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                                        break;<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                                case Dataset.INT32:<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                                        d = IntegerDataset.createFromObject(obj);<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                                        break;<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                case Dataset.INT64:<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                                        d = LongDataset.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.ARRAYINT8:<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                                        d = CompoundByteDataset.createFromObject(itemSize, obj);<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                                        break;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                                case Dataset.ARRAYINT16:<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                                        d = CompoundShortDataset.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.ARRAYINT32:<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                                        d = CompoundIntegerDataset.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.ARRAYINT64:<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                                        d = CompoundLongDataset.createFromObject(itemSize, obj);<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                                        break;<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                                case Dataset.FLOAT32:<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                                        d = FloatDataset.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.FLOAT64:<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                                        d = DoubleDataset.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.ARRAYFLOAT32:<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                                        d = CompoundFloatDataset.createFromObject(itemSize, obj);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                                        break;<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                                case Dataset.ARRAYFLOAT64:<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                                        d = CompoundDoubleDataset.createFromObject(itemSize, obj);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                                        break;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                                case Dataset.COMPLEX64:<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                                        d = ComplexFloatDataset.createFromObject(obj);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                                        break;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                                case Dataset.COMPLEX128:<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                                        d = ComplexDoubleDataset.createFromObject(obj);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                                        break;<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                                case Dataset.DATE:<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                                        d = DateDatasetImpl.createFromObject(obj);<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                                        break;<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                                case Dataset.STRING:<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                                        d = StringDataset.createFromObject(obj);<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                                        break;<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                                case Dataset.OBJECT:<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                                        d = ObjectDataset.createFromObject(obj);<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                                        break;<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                                case Dataset.RGB:<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                                        d = RGBDataset.createFromObject(obj);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                                        break;<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                                default:<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                                        throw new IllegalArgumentException("Dataset type is not known");<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                                }<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                        }<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>                if (shape != null &amp;&amp; !(shape.length == 0 &amp;&amp; d.getSize() &gt; 1)) { // allow zero-rank datasets<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                        d.setShape(shape);<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                }<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                return d;<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>        private static Dataset createFromPrimitiveArray(final int dtype, final Object array) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                switch (dtype) {<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                case Dataset.BOOL:<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        return new BooleanDataset((boolean []) array);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                case Dataset.INT8:<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                        return new ByteDataset((byte []) array);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                case Dataset.INT16:<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                        return new ShortDataset((short []) array);<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                case Dataset.INT32:<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                        return new IntegerDataset((int []) array, null);<a name="line.370"></a>
+<span class="sourceLineNo">371</span>                case Dataset.INT64:<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                        return new LongDataset((long []) array);<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                case Dataset.FLOAT32:<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                        return new FloatDataset((float []) array);<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                case Dataset.FLOAT64:<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                        return new DoubleDataset((double []) array);<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                case Dataset.STRING:<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                        return new StringDataset((String []) array);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                case Dataset.DATE:<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                        return new DateDatasetImpl((Date []) array);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                default:<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                        return null;<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                }<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        }<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span>        /**<a name="line.386"></a>
+<span class="sourceLineNo">387</span>         * Create dataset of appropriate type from list<a name="line.387"></a>
+<span class="sourceLineNo">388</span>         * <a name="line.388"></a>
+<span class="sourceLineNo">389</span>         * @param objectList<a name="line.389"></a>
+<span class="sourceLineNo">390</span>         * @return dataset filled with values from list<a name="line.390"></a>
+<span class="sourceLineNo">391</span>         */<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        public static Dataset createFromList(List&lt;?&gt; objectList) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                if (objectList == null || objectList.size() == 0) {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                        throw new IllegalArgumentException("No list or zero-length list given");<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>                Object obj = null;<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                for (Object o : objectList) {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                        if (o != null) {<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                                obj = o;<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                                break;<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>                if (obj == null) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>                        return zeros(ObjectDataset.class, objectList.size());<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>                Class&lt;? extends Object&gt; clazz = obj.getClass();<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                if (InterfaceUtils.isElementSupported(clazz)) {<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                        return createFromList(InterfaceUtils.getInterface(obj), objectList);<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>                return createFromObject(objectList);<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>         * Create dataset of given type from list<a name="line.417"></a>
+<span class="sourceLineNo">418</span>         *<a name="line.418"></a>
+<span class="sourceLineNo">419</span>         * @param dtype<a name="line.419"></a>
+<span class="sourceLineNo">420</span>         * @param objectList<a name="line.420"></a>
+<span class="sourceLineNo">421</span>         * @return dataset filled with values from list<a name="line.421"></a>
+<span class="sourceLineNo">422</span>         * <a name="line.422"></a>
+<span class="sourceLineNo">423</span>         * @deprecated Please use the class-based methods in DatasetFactory,<a name="line.423"></a>
+<span class="sourceLineNo">424</span>         *             such as {@link #createFromList(Class, List)}<a name="line.424"></a>
+<span class="sourceLineNo">425</span>         */     <a name="line.425"></a>
+<span class="sourceLineNo">426</span>        @Deprecated<a name="line.426"></a>
+<span class="sourceLineNo">427</span>        public static Dataset createFromList(final int dtype, List&lt;?&gt; objectList) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                int len = objectList.size();<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                Dataset result = zeros(new int[] { len }, dtype);<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>                for (int i = 0; i &lt; len; i++) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                        result.setObjectAbs(i, objectList.get(i));<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                }<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                return result;<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 objects<a name="line.440"></a>
+<span class="sourceLineNo">441</span>         * @return compound dataset<a name="line.441"></a>
+<span class="sourceLineNo">442</span>         */<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        public static CompoundDataset createCompoundDataset(Object... objects) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                Dataset[] datasets = new Dataset[objects.length];<a name="line.444"></a>
+<span class="sourceLineNo">445</span>                for (int i = 0; i &lt; objects.length; i++) {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>                        datasets[i] = createFromObject(objects[i]);<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                }<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                return DatasetUtils.createCompoundDataset(datasets);<a name="line.448"></a>
+<span class="sourceLineNo">449</span>        }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>        /**<a name="line.451"></a>
+<span class="sourceLineNo">452</span>         * Create compound dataset of given type from given parts<a name="line.452"></a>
+<span class="sourceLineNo">453</span>         *<a name="line.453"></a>
+<span class="sourceLineNo">454</span>         * @param dtype<a name="line.454"></a>
+<span class="sourceLineNo">455</span>         * @param objects<a name="line.455"></a>
+<span class="sourceLineNo">456</span>         * @return compound dataset<a name="line.456"></a>
+<span class="sourceLineNo">457</span>         * <a name="line.457"></a>
+<span class="sourceLineNo">458</span>         * @deprecated Please use the class-based methods in DatasetFactory,<a name="line.458"></a>
+<span class="sourceLineNo">459</span>         *             such as {@link #createCompoundDataset(Class, Object...)}<a name="line.459"></a>
+<span class="sourceLineNo">460</span>         */<a name="line.460"></a>
+<span class="sourceLineNo">461</span>        @Deprecated<a name="line.461"></a>
+<span class="sourceLineNo">462</span>        public static CompoundDataset createCompoundDataset(final int dtype, Object... objects) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                Dataset[] datasets = new Dataset[objects.length];<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                for (int i = 0; i &lt; objects.length; i++) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                        datasets[i] = createFromObject(objects[i]);<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                }<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                return DatasetUtils.createCompoundDataset(dtype, datasets);<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>        /**<a name="line.470"></a>
+<span class="sourceLineNo">471</span>         * Create complex dataset of given type from real and imaginary parts<a name="line.471"></a>
+<span class="sourceLineNo">472</span>         *<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         * @param dtype<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         * @param real<a name="line.474"></a>
+<span class="sourceLineNo">475</span>         * @param imag<a name="line.475"></a>
+<span class="sourceLineNo">476</span>         * @return complex dataset<a name="line.476"></a>
+<span class="sourceLineNo">477</span>         * <a name="line.477"></a>
+<span class="sourceLineNo">478</span>         * @deprecated Please use the class-based methods in DatasetFactory,<a name="line.478"></a>
+<span class="sourceLineNo">479</span>         *             such as {@link #createComplexDataset(Class, Object, Object)}<a name="line.479"></a>
+<span class="sourceLineNo">480</span>         */<a name="line.480"></a>
+<span class="sourceLineNo">481</span>        @Deprecated<a name="line.481"></a>
+<span class="sourceLineNo">482</span>        public static CompoundDataset createComplexDataset(final int dtype, Object real, Object imag) {<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                switch (dtype) {<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                case Dataset.COMPLEX64:<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                        return new ComplexFloatDataset(createFromObject(real), createFromObject(imag));<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                case Dataset.COMPLEX128:<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                        return new ComplexDoubleDataset(createFromObject(real), createFromObject(imag));<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                default:<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                        throw new IllegalArgumentException("Dataset class must be a complex one");<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                }<a name="line.490"></a>
+<span class="sourceLineNo">491</span>        }<a name="line.491"></a>
+<span class="sourceLineNo">492</span><a name="line.492"></a>
+<span class="sourceLineNo">493</span>        /**<a name="line.493"></a>
+<span class="sourceLineNo">494</span>         * @param shape<a name="line.494"></a>
+<span class="sourceLineNo">495</span>         * @return a new double dataset of given shape, filled with zeros<a name="line.495"></a>
+<span class="sourceLineNo">496</span>         */<a name="line.496"></a>
+<span class="sourceLineNo">497</span>        public static DoubleDataset zeros(final int... shape) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                return zeros(DoubleDataset.class, shape);<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>         * @param shape<a name="line.502"></a>
+<span class="sourceLineNo">503</span>         * @param dtype<a name="line.503"></a>
+<span class="sourceLineNo">504</span>         * @return a new dataset of given shape and type, filled with zeros<a name="line.504"></a>
+<span class="sourceLineNo">505</span>         * <a name="line.505"></a>
+<span class="sourceLineNo">506</span>         * @deprecated Please use the class-based methods in DatasetFactory,<a name="line.506"></a>
+<span class="sourceLineNo">507</span>         *             such as {@link #zeros(Class, int...)}<a name="line.507"></a>
+<span class="sourceLineNo">508</span>         */<a name="line.508"></a>
+<span class="sourceLineNo">509</span>        @Deprecated<a name="line.509"></a>
+<span class="sourceLineNo">510</span>        public static Dataset zeros(final int[] shape, final int dtype) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                switch (dtype) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                case Dataset.BOOL:<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                        return new BooleanDataset(shape);<a name="line.513"></a>
+<span class="sourceLineNo">514</span>                case Dataset.INT8:<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                case Dataset.ARRAYINT8:<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                        return new ByteDataset(shape);<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                case Dataset.INT16:<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                case Dataset.ARRAYINT16:<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                        return new ShortDataset(shape);<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                case Dataset.RGB:<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                        return new RGBDataset(shape);<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                case Dataset.INT32:<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                case Dataset.ARRAYINT32:<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                        return new IntegerDataset(shape);<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                case Dataset.INT64:<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                case Dataset.ARRAYINT64:<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                        return new LongDataset(shape);<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                case Dataset.FLOAT32:<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                case Dataset.ARRAYFLOAT32:<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                        return new FloatDataset(shape);<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                case Dataset.FLOAT64:<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                case Dataset.ARRAYFLOAT64:<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                        return new DoubleDataset(shape);<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                case Dataset.COMPLEX64:<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                        return new ComplexFloatDataset(shape);<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                case Dataset.COMPLEX128:<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                        return new ComplexDoubleDataset(shape);<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                case Dataset.STRING:<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                        return new StringDataset(shape);<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                case Dataset.DATE:<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                        return new DateDatasetImpl(shape);<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                case Dataset.OBJECT:<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                        return new ObjectDataset(shape);<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                }<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                throw new IllegalArgumentException("dtype not known or unsupported");<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>         * @param itemSize<a name="line.549"></a>
+<span class="sourceLineNo">550</span>         *            if equal to 1, then non-compound dataset is returned<a name="line.550"></a>
+<span class="sourceLineNo">551</span>         * @param shape<a name="line.551"></a>
+<span class="sourceLineNo">552</span>         * @param dtype<a name="line.552"></a>
+<span class="sourceLineNo">553</span>         * @return a new dataset of given item size, shape and type, filled with zeros<a name="line.553"></a>
+<span class="sourceLineNo">554</span>         * <a name="line.554"></a>
+<span class="sourceLineNo">555</span>         * @deprecated Please use the class-based methods in DatasetFactory,<a name="line.555"></a>
+<span class="sourceLineNo">556</span>         *             such as {@link #zeros(int, Class, int...)}<a name="line.556"></a>
+<span class="sourceLineNo">557</span>         */<a name="line.557"></a>
+<span class="sourceLineNo">558</span>        @Deprecated<a name="line.558"></a>
+<span class="sourceLineNo">559</span>        public static Dataset zeros(final int itemSize, final int[] shape, final int dtype) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                if (itemSize == 1) {<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                        return zeros(shape, dtype);<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                }<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                return compoundZeros(itemSize, shape, dtype);<a name="line.563"></a>
+<span class="sourceLineNo">564</span>        }<a name="line.564"></a>
+<span class="sourceLineNo">565</span><a name="line.565"></a>
+<span class="sourceLineNo">566</span>        /**<a name="line.566"></a>
+<span class="sourceLineNo">567</span>         * @param itemSize<a name="line.567"></a>
+<span class="sourceLineNo">568</span>         * @param shape<a name="line.568"></a>
+<span class="sourceLineNo">569</span>         * @param dtype<a name="line.569"></a>
+<span class="sourceLineNo">570</span>         * @return a new dataset of given item size, shape and type, filled with zeros<a name="line.570"></a>
+<span class="sourceLineNo">571</span>         * @since 2.0<a name="line.571"></a>
+<span class="sourceLineNo">572</span>         * <a name="line.572"></a>
+<span class="sourceLineNo">573</span>         * @deprecated Please use the class-based methods in DatasetFactory,<a name="line.573"></a>
+<span class="sourceLineNo">574</span>         *             such as {@link #compoundZeros(int, Class, int...)}<a name="line.574"></a>
+<span class="sourceLineNo">575</span>         */<a name="line.575"></a>
+<span class="sourceLineNo">576</span>        @Deprecated<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        public static CompoundDataset compoundZeros(final int itemSize, final int[] shape, final int dtype) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                switch (dtype) {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                case Dataset.INT8:<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                case Dataset.ARRAYINT8:<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                        return new CompoundByteDataset(itemSize, shape);<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                case Dataset.INT16:<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                case Dataset.ARRAYINT16:<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                        return new CompoundShortDataset(itemSize, shape);<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                case Dataset.RGB:<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                        if (itemSize != 3) {<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                                throw new IllegalArgumentException("Number of elements not compatible with RGB type");<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                        }<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                        return new RGBDataset(shape);<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                case Dataset.INT32:<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                case Dataset.ARRAYINT32:<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        return new CompoundIntegerDataset(itemSize, shape);<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                case Dataset.INT64:<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                case Dataset.ARRAYINT64:<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                        return new CompoundLongDataset(itemSize, shape);<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                case Dataset.FLOAT32:<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                case Dataset.ARRAYFLOAT32:<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                        return new CompoundFloatDataset(itemSize, shape);<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                case Dataset.FLOAT64:<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                case Dataset.ARRAYFLOAT64:<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                        return new CompoundDoubleDataset(itemSize, shape);<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                case Dataset.COMPLEX64:<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                        if (itemSize != 2) {<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                                throw new IllegalArgumentException("Number of elements not compatible with complex type");<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        }<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                        return new ComplexFloatDataset(shape);<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                case Dataset.COMPLEX128:<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                        if (itemSize != 2) {<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                                throw new IllegalArgumentException("Number of elements not compatible with complex type");<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        }<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                        return new ComplexDoubleDataset(shape);<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                }<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                throw new IllegalArgumentException("dtype not a known compound type");<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>        /**<a name="line.616"></a>
+<span class="sourceLineNo">617</span>         * @param dataset<a name="line.617"></a>
+<span class="sourceLineNo">618</span>         * @return a new dataset of same shape and class as input dataset, filled with zeros<a name="line.618"></a>
+<span class="sourceLineNo">619</span>         */<a name="line.619"></a>
+<span class="sourceLineNo">620</span>        @SuppressWarnings("unchecked")<a name="line.620"></a>
+<span class="sourceLineNo">621</span>        public static &lt;T extends Dataset&gt; T zeros(final T dataset) {<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                int dtype = dataset.getDType();<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                return (T) (DTypeUtils.isDTypeElemental(dtype) ? zeros(dataset, dtype) :<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                        compoundZeros(dataset.getElementsPerItem(),  dataset.getShapeRef(), dtype));<a name="line.624"></a>
+<span class="sourceLineNo">625</span>        }<a name="line.625"></a>
+<span class="sourceLineNo">626</span><a name="line.626"></a>
+<span class="sourceLineNo">627</span>        /**<a name="line.627"></a>
+<span class="sourceLineNo">628</span>         * Create a new dataset of same shape as input dataset, filled with zeros. If dtype is not<a name="line.628"></a>
+<span class="sourceLineNo">629</span>         * explicitly compound then an elemental dataset is created <a name="line.629"></a>
+<span class="sourceLineNo">630</span>         * @param dataset<a name="line.630"></a>
+<span class="sourceLineNo">631</span>         * @param dtype<a name="line.631"></a>
+<span class="sourceLineNo">632</span>         * @return a new dataset<a name="line.632"></a>
+<span class="sourceLineNo">633</span>         * <a name="line.633"></a>
+<span class="sourceLineNo">634</span>         * @deprecated Please use the class-based methods in DatasetFactory,<a name="line.634"></a>
+<span class="sourceLineNo">635</span>         *             such as {@link #zeros(Dataset, Class)}<a name="line.635"></a>
+<span class="sourceLineNo">636</span>         */<a name="line.636"></a>
+<span class="sourceLineNo">637</span>        @Deprecated<a name="line.637"></a>
+<span class="sourceLineNo">638</span>        public static Dataset zeros(final Dataset dataset, final int dtype) {<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                final int[] shape = dataset.getShapeRef();<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                final int isize = DTypeUtils.isDTypeElemental(dtype) ? 1 :dataset.getElementsPerItem();<a name="line.640"></a>
+<span class="sourceLineNo">641</span><a name="line.641"></a>
+<span class="sourceLineNo">642</span>                return zeros(isize, shape, dtype);<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 dataset<a name="line.646"></a>
+<span class="sourceLineNo">647</span>         * @return a new dataset of same shape and class as input dataset, filled with ones<a name="line.647"></a>
+<span class="sourceLineNo">648</span>         */<a name="line.648"></a>
+<span class="sourceLineNo">649</span>        @SuppressWarnings("unchecked")<a name="line.649"></a>
+<span class="sourceLineNo">650</span>        public static &lt;T extends Dataset&gt; T ones(final T dataset) {<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                return (T) ones(dataset, dataset.getDType());<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>        /**<a name="line.654"></a>
+<span class="sourceLineNo">655</span>         * Create a new dataset of same shape as input dataset, filled with ones. If dtype is not<a name="line.655"></a>
+<span class="sourceLineNo">656</span>         * explicitly compound then an elemental dataset is created<a name="line.656"></a>
+<span class="sourceLineNo">657</span>         * @param dataset<a name="line.657"></a>
+<span class="sourceLineNo">658</span>         * @param dtype<a name="line.658"></a>
+<span class="sourceLineNo">659</span>         * @return a new dataset<a name="line.659"></a>
+<span class="sourceLineNo">660</span>         * <a name="line.660"></a>
+<span class="sourceLineNo">661</span>         * @deprecated Please use the class-based methods in DatasetFactory,<a name="line.661"></a>
+<span class="sourceLineNo">662</span>         *             such as {@link #ones(Dataset, Class)}<a name="line.662"></a>
+<span class="sourceLineNo">663</span>         */<a name="line.663"></a>
+<span class="sourceLineNo">664</span>        @Deprecated<a name="line.664"></a>
+<span class="sourceLineNo">665</span>        public static Dataset ones(final Dataset dataset, final int dtype) {<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                final int[] shape = dataset.getShapeRef();<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                final int isize = DTypeUtils.isDTypeElemental(dtype) ? 1 :dataset.getElementsPerItem();<a name="line.667"></a>
+<span class="sourceLineNo">668</span><a name="line.668"></a>
+<span class="sourceLineNo">669</span>                return ones(isize, shape, dtype);<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>        /**<a name="line.672"></a>
+<span class="sourceLineNo">673</span>         * @param shape<a name="line.673"></a>
+<span class="sourceLineNo">674</span>         * @return a new double dataset of given shape, filled with ones<a name="line.674"></a>
+<span class="sourceLineNo">675</span>         */<a name="line.675"></a>
+<span class="sourceLineNo">676</span>        public static DoubleDataset ones(final int... shape) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                return ones(DoubleDataset.class, 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>        /**<a name="line.680"></a>
+<span class="sourceLineNo">681</span>         * @param shape<a name="line.681"></a>
+<span class="sourceLineNo">682</span>         * @param dtype<a name="line.682"></a>
+<span class="sourceLineNo">683</span>         * @return a new dataset of given shape and type, filled with ones<a name="line.683"></a>
+<span class="sourceLineNo">684</span>         * <a name="line.684"></a>
+<span class="sourceLineNo">685</span>         * @deprecated Please use the class-based methods in DatasetFactory,<a name="line.685"></a>
+<span class="sourceLineNo">686</span>         *             such as {@link #ones(Class, int...)}<a name="line.686"></a>
+<span class="sourceLineNo">687</span>         */<a name="line.687"></a>
+<span class="sourceLineNo">688</span>        @Deprecated<a name="line.688"></a>
+<span class="sourceLineNo">689</span>        public static Dataset ones(final int[] shape, final int dtype) {<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                switch (dtype) {<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                case Dataset.BOOL:<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        return BooleanDataset.ones(shape);<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                case Dataset.INT8:<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                        return ByteDataset.ones(shape);<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                case Dataset.INT16:<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                        return ShortDataset.ones(shape);<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                case Dataset.RGB:<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                        return new RGBDataset(shape).fill(1);<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                case Dataset.INT32:<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        return IntegerDataset.ones(shape);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                case Dataset.INT64:<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                        return LongDataset.ones(shape);<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                case Dataset.FLOAT32:<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                        return FloatDataset.ones(shape);<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                case Dataset.FLOAT64:<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                        return DoubleDataset.ones(shape);<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                case Dataset.COMPLEX64:<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                        return ComplexFloatDataset.ones(shape);<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                case Dataset.COMPLEX128:<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        return ComplexDoubleDataset.ones(shape);<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                throw new IllegalArgumentException("dtype not known");<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>        /**<a name="line.715"></a>
+<span class="sourceLineNo">716</span>         * @param itemSize<a name="line.716"></a>
+<span class="sourceLineNo">717</span>         *            if equal to 1, then non-compound dataset is returned<a name="line.717"></a>
+<span class="sourceLineNo">718</span>         * @param shape<a name="line.718"></a>
+<span class="sourceLineNo">719</span>         * @param dtype<a name="line.719"></a>
+<span class="sourceLineNo">720</span>         * @return a new dataset of given item size, shape and type, filled with ones<a name="line.720"></a>
+<span class="sourceLineNo">721</span>         * <a name="line.721"></a>
+<span class="sourceLineNo">722</span>         * @deprecated Please use the class-based methods in DatasetFactory,<a name="line.722"></a>
+<span class="sourceLineNo">723</span>         *             such as {@link #ones(Class, int...)}<a name="line.723"></a>
+<span class="sourceLineNo">724</span>         */<a name="line.724"></a>
+<span class="sourceLineNo">725</span>        @Deprecated<a name="line.725"></a>
+<span class="sourceLineNo">726</span>        public static Dataset ones(final int itemSize, final int[] shape, final int dtype) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                if (itemSize == 1) {<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                        return ones(shape, dtype);<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                }<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                switch (dtype) {<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                case Dataset.INT8:<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                case Dataset.ARRAYINT8:<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                        return CompoundByteDataset.ones(itemSize, shape);<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                case Dataset.INT16:<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                case Dataset.ARRAYINT16:<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                        return CompoundShortDataset.ones(itemSize, shape);<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                case Dataset.RGB:<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                        if (itemSize != 3) {<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                                throw new IllegalArgumentException("Number of elements not compatible with RGB type");<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                        }<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        return new RGBDataset(shape).fill(1);<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                case Dataset.INT32:<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                case Dataset.ARRAYINT32:<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                        return CompoundIntegerDataset.ones(itemSize, shape);<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                case Dataset.INT64:<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                case Dataset.ARRAYINT64:<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        return CompoundLongDataset.ones(itemSize, shape);<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                case Dataset.FLOAT32:<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                case Dataset.ARRAYFLOAT32:<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                        return CompoundFloatDataset.ones(itemSize, shape);<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                case Dataset.FLOAT64:<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                case Dataset.ARRAYFLOAT64:<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                        return CompoundDoubleDataset.ones(itemSize, shape);<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                case Dataset.COMPLEX64:<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        if (itemSize != 2) {<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                                throw new IllegalArgumentException("Number of elements not compatible with complex type");<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                        }<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                        return ComplexFloatDataset.ones(shape);<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                case Dataset.COMPLEX128:<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                        if (itemSize != 2) {<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                                throw new IllegalArgumentException("Number of elements not compatible with complex type");<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                        }<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                        return ComplexDoubleDataset.ones(shape);<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                }<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                throw new IllegalArgumentException("dtype not a known compound type");<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>        /**<a name="line.768"></a>
+<span class="sourceLineNo">769</span>         * Create a 1D dataset of linearly spaced values in closed interval<a name="line.769"></a>
+<span class="sourceLineNo">770</span>         * <a name="line.770"></a>
+<span class="sourceLineNo">771</span>         * @param start<a name="line.771"></a>
+<span class="sourceLineNo">772</span>         * @param stop stop value is included<a name="line.772"></a>
+<span class="sourceLineNo">773</span>         * @param length number of points<a name="line.773"></a>
+<span class="sourceLineNo">774</span>         * @param dtype<a name="line.774"></a>
+<span class="sourceLineNo">775</span>         * @return dataset with linearly spaced values<a name="line.775"></a>
+<span class="sourceLineNo">776</span>         * <a name="line.776"></a>
+<span class="sourceLineNo">777</span>         * @deprecated Please use the class-based methods in DatasetFactory,<a name="line.777"></a>
+<span class="sourceLineNo">778</span>         *             such as {@link #createLinearSpace(Class, double, double, int)}<a name="line.778"></a>
+<span class="sourceLineNo">779</span>         */<a name="line.779"></a>
+<span class="sourceLineNo">780</span>        @Deprecated<a name="line.780"></a>
+<span class="sourceLineNo">781</span>        public static Dataset createLinearSpace(final double start, final double stop, final int length, final int dtype) {<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                return createLinearSpace(DTypeUtils.getInterface(dtype), start, stop, length);<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>        /**<a name="line.785"></a>
+<span class="sourceLineNo">786</span>         * Create a 1D dataset of linearly spaced values in closed interval<a name="line.786"></a>
+<span class="sourceLineNo">787</span>         * <a name="line.787"></a>
+<span class="sourceLineNo">788</span>         * @param clazz dataset class<a name="line.788"></a>
+<span class="sourceLineNo">789</span>         * @param start<a name="line.789"></a>
+<span class="sourceLineNo">790</span>         * @param stop stop value is included<a name="line.790"></a>
+<span class="sourceLineNo">791</span>         * @param length number of points<a name="line.791"></a>
+<span class="sourceLineNo">792</span>         * @return dataset with linearly spaced values<a name="line.792"></a>
+<span class="sourceLineNo">793</span>         */<a name="line.793"></a>
+<span class="sourceLineNo">794</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.794"></a>
+<span class="sourceLineNo">795</span>                if (length &lt; 1) {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        throw new IllegalArgumentException("Length is less than one");<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                } else if (length == 1) {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                        return createFromObject(clazz, start);<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                } else {<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                        T ds = zeros(clazz, length);<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                        double num = stop - start;<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        double den = length - 1;<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                        double value;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        <a name="line.804"></a>
+<span class="sourceLineNo">805</span>                        for (int i = 0; i &lt; length; i++) {<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                                value = start + (num * i) / den;<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                                ds.setObjectAbs(i, value);<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 ds;<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                }<a name="line.811"></a>
+<span class="sourceLineNo">812</span>        }<a name="line.812"></a>
+<span class="sourceLineNo">813</span><a name="line.813"></a>
+<span class="sourceLineNo">814</span>        /**<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         * Create a 1D dataset of logarithmically spaced values in closed interval. The base value is used to<a name="line.815"></a>
+<span class="sourceLineNo">816</span>         * determine the factor between values: factor = base ** step, where step is the interval between linearly<a name="line.816"></a>
+<span class="sourceLineNo">817</span>         * spaced sequence of points<a name="line.817"></a>
+<span class="sourceLineNo">818</span>         * <a name="line.818"></a>
+<span class="sourceLineNo">819</span>         * @param start<a name="line.819"></a>
+<span class="sourceLineNo">820</span>         * @param stop stop value is included<a name="line.820"></a>
+<span class="sourceLineNo">821</span>         * @param length number of points<a name="line.821"></a>
+<span class="sourceLineNo">822</span>         * @param base<a name="line.822"></a>
+<span class="sourceLineNo">823</span>         * @param dtype<a name="line.823"></a>
+<span class="sourceLineNo">824</span>         * @return dataset with logarithmically spaced values<a name="line.824"></a>
+<span class="sourceLineNo">825</span>         * <a name="line.825"></a>
+<span class="sourceLineNo">826</span>         * @deprecated Please use the class-based methods in DatasetFactory,<a name="line.826"></a>
+<span class="sourceLineNo">827</span>         *             such as {@link #createLogSpace(Class, double, double, int, double)}<a name="line.827"></a>
+<span class="sourceLineNo">828</span>         */<a name="line.828"></a>
+<span class="sourceLineNo">829</span>        @Deprecated<a name="line.829"></a>
+<span class="sourceLineNo">830</span>        public static Dataset createLogSpace(final double start, final double stop, final int length, final double base, final int dtype) {<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                return createLogSpace(DTypeUtils.getInterface(dtype), start, stop, length, base);<a name="line.831"></a>
+<span class="sourceLineNo">832</span>        }<a name="line.832"></a>
+<span class="sourceLineNo">833</span><a name="line.833"></a>
+<span class="sourceLineNo">834</span>        /**<a name="line.834"></a>
+<span class="sourceLineNo">835</span>         * Create a 1D dataset of logarithmically spaced values in closed interval. The base value is used to<a name="line.835"></a>
+<span class="sourceLineNo">836</span>         * determine the factor between values: factor = base ** step, where step is the interval between linearly<a name="line.836"></a>
+<span class="sourceLineNo">837</span>         * spaced sequence of points<a name="line.837"></a>
+<span class="sourceLineNo">838</span>         * <a name="line.838"></a>
+<span class="sourceLineNo">839</span>         * @param clazz dataset class<a name="line.839"></a>
+<span class="sourceLineNo">840</span>         * @param start<a name="line.840"></a>
+<span class="sourceLineNo">841</span>         * @param stop stop value is included<a name="line.841"></a>
+<span class="sourceLineNo">842</span>         * @param length number of points<a name="line.842"></a>
+<span class="sourceLineNo">843</span>         * @param base<a name="line.843"></a>
+<span class="sourceLineNo">844</span>         * @return dataset with logarithmically spaced values<a name="line.844"></a>
+<span class="sourceLineNo">845</span>         */<a name="line.845"></a>
+<span class="sourceLineNo">846</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.846"></a>
+<span class="sourceLineNo">847</span>                if (length &lt; 1) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                        throw new IllegalArgumentException("Length is less than one");<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                } else if (length == 1) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        return createFromObject(clazz, Math.pow(base, start));<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                } else {<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                        T ds = zeros(clazz, length);<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                        double step = (stop - start) / (length - 1);<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                        double value;<a name="line.854"></a>
+<span class="sourceLineNo">855</span>        <a name="line.855"></a>
+<span class="sourceLineNo">856</span>                        for (int i = 0; i &lt; length; i++) {<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                                value = start + i * step;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                                ds.setObjectAbs(i, Math.pow(base, value));<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>                        return ds;<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>        /**<a name="line.865"></a>
+<span class="sourceLineNo">866</span>         * Create dataset with items ranging from 0 up to given stop in steps of 1<a name="line.866"></a>
+<span class="sourceLineNo">867</span>         * @param clazz dataset class<a name="line.867"></a>
+<span class="sourceLineNo">868</span>         * @param stop stop value is &lt;strong&gt;not&lt;/strong&gt; included<a name="line.868"></a>
+<span class="sourceLineNo">869</span>         * @return a new dataset of given shape and class, filled with values determined by parameters<a name="line.869"></a>
+<span class="sourceLineNo">870</span>         */<a name="line.870"></a>
+<span class="sourceLineNo">871</span>        @SuppressWarnings("unchecked")<a name="line.871"></a>
+<span class="sourceLineNo">872</span>        public static &lt;T extends Dataset&gt; T createRange(Class&lt;T&gt; clazz, final double stop) {<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                return (T) createRange(0, stop, 1, DTypeUtils.getDType(clazz));<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>         * Create dataset with items ranging from given start up to given stop in given steps<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 start<a name="line.879"></a>
+<span class="sourceLineNo">880</span>         * @param stop stop value is &lt;strong&gt;not&lt;/strong&gt; included<a name="line.880"></a>
+<span class="sourceLineNo">881</span>         * @param step spacing between items<a name="line.881"></a>
+<span class="sourceLineNo">882</span>         * @return a new 1D dataset of given class, filled with values determined by parameters<a name="line.882"></a>
+<span class="sourceLineNo">883</span>         */<a name="line.883"></a>
+<span class="sourceLineNo">884</span>        @SuppressWarnings("unchecked")<a name="line.884"></a>
+<span class="sourceLineNo">885</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.885"></a>
+<span class="sourceLineNo">886</span>                return (T) createRange(start, stop, step, DTypeUtils.getDType(clazz));<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>         * Create compound dataset with items ranging from 0 up to given stop in steps of 1<a name="line.890"></a>
+<span class="sourceLineNo">891</span>         * @param itemSize<a name="line.891"></a>
+<span class="sourceLineNo">892</span>         * @param clazz compound dataset class<a name="line.892"></a>
+<span class="sourceLineNo">893</span>         * @param stop stop value is &lt;strong&gt;not&lt;/strong&gt; included<a name="line.893"></a>
+<span class="sourceLineNo">894</span>         * @return a new 1D dataset of given class, filled with values determined by parameters<a name="line.894"></a>
+<span class="sourceLineNo">895</span>         * @since 2.1<a name="line.895"></a>
+<span class="sourceLineNo">896</span>         */<a name="line.896"></a>
+<span class="sourceLineNo">897</span>        @SuppressWarnings("unchecked")<a name="line.897"></a>
+<span class="sourceLineNo">898</span>        public static &lt;T extends CompoundDataset&gt; T createRange(final int itemSize, Class&lt;T&gt; clazz, final double stop) {<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                return (T) createRange(itemSize, 0, stop, 1, DTypeUtils.getDType(clazz));<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>         * Create compound dataset with items ranging from given start up to given stop in given steps<a name="line.903"></a>
+<span class="sourceLineNo">904</span>         * @param itemSize<a name="line.904"></a>
+<span class="sourceLineNo">905</span>         * @param clazz compound dataset class<a name="line.905"></a>
+<span class="sourceLineNo">906</span>         * @param start<a name="line.906"></a>
+<span class="sourceLineNo">907</span>         * @param stop stop value is &lt;strong&gt;not&lt;/strong&gt; included<a name="line.907"></a>
+<span class="sourceLineNo">908</span>         * @param step spacing between items<a name="line.908"></a>
+<span class="sourceLineNo">909</span>         * @return a new 1D dataset of given class, filled with values determined by parameters<a name="line.909"></a>
+<span class="sourceLineNo">910</span>         * @since 2.1<a name="line.910"></a>
+<span class="sourceLineNo">911</span>         */<a name="line.911"></a>
+<span class="sourceLineNo">912</span>        @SuppressWarnings("unchecked")<a name="line.912"></a>
+<span class="sourceLineNo">913</span>        public static &lt;T extends CompoundDataset&gt; T createRange(final int itemSize, Class&lt;T&gt; clazz, final double start, final double stop, final double step) {<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                return (T) createRange(itemSize, start, stop, step, DTypeUtils.getDType(clazz));<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>        /**<a name="line.917"></a>
+<span class="sourceLineNo">918</span>         * Create a dataset from object<a name="line.918"></a>
+<span class="sourceLineNo">919</span>         * @param clazz dataset class<a name="line.919"></a>
+<span class="sourceLineNo">920</span>         * @param obj<a name="line.920"></a>
+<span class="sourceLineNo">921</span>         *            can be a Java list, array or Number<a name="line.921"></a>
+<span class="sourceLineNo">922</span>         * @return dataset<a name="line.922"></a>
+<span class="sourceLineNo">923</span>         * @throws IllegalArgumentException if dataset class is not known<a name="line.923"></a>
+<span class="sourceLineNo">924</span>         * @since 2.1<a name="line.924"></a>
+<span class="sourceLineNo">925</span>         */<a name="line.925"></a>
+<span class="sourceLineNo">926</span>        @SuppressWarnings("unchecked")<a name="line.926"></a>
+<span class="sourceLineNo">927</span>        public static &lt;T extends Dataset&gt; T createFromObject(Class&lt;T&gt; clazz, Object obj) {<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                return (T) createFromObject(1, DTypeUtils.getDType(clazz), obj, null);<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        }<a name="line.929"></a>
+<span class="sourceLineNo">930</span><a name="line.930"></a>
+<span class="sourceLineNo">931</span><a name="line.931"></a>
+<span class="sourceLineNo">932</span>        /**<a name="line.932"></a>
+<span class="sourceLineNo">933</span>         * Create a dataset from object<a name="line.933"></a>
+<span class="sourceLineNo">934</span>         * @param clazz dataset class<a name="line.934"></a>
+<span class="sourceLineNo">935</span>         * @param obj<a name="line.935"></a>
+<span class="sourceLineNo">936</span>         *            can be a Java list, array or Number<a name="line.936"></a>
+<span class="sourceLineNo">937</span>         * @param shape can be null<a name="line.937"></a>
+<span class="sourceLineNo">938</span>         * @return dataset<a name="line.938"></a>
+<span class="sourceLineNo">939</span>         */<a name="line.939"></a>
+<span class="sourceLineNo">940</span>        @SuppressWarnings("unchecked")<a name="line.940"></a>
+<span class="sourceLineNo">941</span>        public static &lt;T extends Dataset&gt; T createFromObject(Class&lt;T&gt; clazz, Object obj, int... shape) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                return (T) createFromObject(1, DTypeUtils.getDType(clazz), obj, shape);<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>        /**<a name="line.945"></a>
+<span class="sourceLineNo">946</span>         * Create a compound dataset from object<a name="line.946"></a>
+<span class="sourceLineNo">947</span>         * @param itemSize<a name="line.947"></a>
+<span class="sourceLineNo">948</span>         * @param clazz dataset class<a name="line.948"></a>
+<span class="sourceLineNo">949</span>         * @param obj<a name="line.949"></a>
+<span class="sourceLineNo">950</span>         *            can be a Java list, array or Number<a name="line.950"></a>
+<span class="sourceLineNo">951</span>         * @param shape can be null<a name="line.951"></a>
+<span class="sourceLineNo">952</span>         * @return dataset<a name="line.952"></a>
+<span class="sourceLineNo">953</span>         */<a name="line.953"></a>
+<span class="sourceLineNo">954</span>        @SuppressWarnings("unchecked")<a name="line.954"></a>
+<span class="sourceLineNo">955</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.955"></a>
+<span class="sourceLineNo">956</span>                return (T) createFromObject(itemSize, DTypeUtils.getDType(clazz), obj, shape);<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>         * Create dataset of given class from list<a name="line.960"></a>
+<span class="sourceLineNo">961</span>         *<a name="line.961"></a>
+<span class="sourceLineNo">962</span>         * @param clazz dataset class<a name="line.962"></a>
+<span class="sourceLineNo">963</span>         * @param objectList<a name="line.963"></a>
+<span class="sourceLineNo">964</span>         * @return dataset filled with values from list<a name="line.964"></a>
+<span class="sourceLineNo">965</span>         */<a name="line.965"></a>
+<span class="sourceLineNo">966</span>        @SuppressWarnings("unchecked")<a name="line.966"></a>
+<span class="sourceLineNo">967</span>        public static &lt;T extends Dataset&gt; T createFromList(Class&lt;T&gt; clazz, List&lt;?&gt; objectList) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                return (T) createFromList(DTypeUtils.getDType(clazz), objectList);<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>         * Create compound dataset of given class from given parts<a name="line.972"></a>
+<span class="sourceLineNo">973</span>         *<a name="line.973"></a>
+<span class="sourceLineNo">974</span>         * @param clazz dataset class<a name="line.974"></a>
+<span class="sourceLineNo">975</span>         * @param objects<a name="line.975"></a>
+<span class="sourceLineNo">976</span>         * @return compound dataset<a name="line.976"></a>
+<span class="sourceLineNo">977</span>         */<a name="line.977"></a>
+<span class="sourceLineNo">978</span>        @SuppressWarnings("unchecked")<a name="line.978"></a>
+<span class="sourceLineNo">979</span>        public static &lt;T extends Dataset&gt; T createCompoundDataset(Class&lt;T&gt; clazz, Object... objects) {<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                return (T) createCompoundDataset(DTypeUtils.getDType(clazz), objects);<a name="line.980"></a>
+<span class="sourceLineNo">981</span>        }<a name="line.981"></a>
+<span class="sourceLineNo">982</span><a name="line.982"></a>
+<span class="sourceLineNo">983</span>        /**<a name="line.983"></a>
+<span class="sourceLineNo">984</span>         * Create complex dataset of given class from real and imaginary parts<a name="line.984"></a>
+<span class="sourceLineNo">985</span>         *<a name="line.985"></a>
+<span class="sourceLineNo">986</span>         * @param clazz dataset class<a name="line.986"></a>
+<span class="sourceLineNo">987</span>         * @param real<a name="line.987"></a>
+<span class="sourceLineNo">988</span>         * @param imag<a name="line.988"></a>
+<span class="sourceLineNo">989</span>         * @return complex dataset<a name="line.989"></a>
+<span class="sourceLineNo">990</span>         */<a name="line.990"></a>
+<span class="sourceLineNo">991</span>        @SuppressWarnings("unchecked")<a name="line.991"></a>
+<span class="sourceLineNo">992</span>        public static &lt;T extends Dataset&gt; T createComplexDataset(Class&lt;T&gt; clazz, Object real, Object imag) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                return (T) createComplexDataset(DTypeUtils.getDType(clazz), real, imag);<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>         * @param clazz dataset class<a name="line.997"></a>
+<span class="sourceLineNo">998</span>         * @param shape<a name="line.998"></a>
+<span class="sourceLineNo">999</span>         * @return a new dataset of given shape and class, filled with zeros<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>         */<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>        @SuppressWarnings("unchecked")<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>        public static &lt;T extends Dataset&gt; T zeros(Class&lt;T&gt; clazz, int... shape) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                return (T) zeros(shape, DTypeUtils.getDType(clazz));<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>         * @param itemSize<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>         *            if equal to 1, then non-compound dataset is returned<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>         * @param clazz dataset class<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>         * @param shape<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>         * @return a new dataset of given item size, shape and class, filled with zeros<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 zeros(int itemSize, Class&lt;T&gt; clazz, int... shape) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                return (T) zeros(itemSize, shape, 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>
+<span class="sourceLineNo">1018</span>        /**<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>         * @param dataset<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>         * @param clazz dataset class<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>         * @return a new dataset of given class with same shape as input dataset, filled with zeros<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>         */<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>        @SuppressWarnings("unchecked")<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>        public static &lt;T extends Dataset&gt; T zeros(Dataset dataset, Class&lt;T&gt; clazz) {<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                return (T) zeros(dataset, DTypeUtils.getDType(clazz));<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>        }<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span><a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>        /**<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>         * @param itemSize<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>         * @param clazz compound dataset class<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>         * @param shape<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>         * @return a new compound dataset of given item size, shape and class, filled with zeros<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>         * @since 2.0<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>         */<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>        @SuppressWarnings("unchecked")<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>        public static &lt;T extends CompoundDataset&gt; T compoundZeros(int itemSize, Class&lt;T&gt; clazz, int... shape) {<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                return (T) compoundZeros(itemSize, shape, DTypeUtils.getDType(clazz));<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>        }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>        /**<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>         * @param clazz dataset class<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>         * @param shape<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>         * @return a new dataset of given shape and class, filled with ones<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>         */<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>        @SuppressWarnings("unchecked")<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>        public static &lt;T extends Dataset&gt; T ones(Class&lt;T&gt; clazz, int... shape) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                return (T) ones(shape, DTypeUtils.getDType(clazz));<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        }<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span><a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>        /**<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>         * @param itemSize<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>         *            if equal to 1, then non-compound dataset is returned<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>         * @param clazz dataset class<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>         * @param shape<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>         * @return a new dataset of given item size, shape and class, filled with ones<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>         */<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>        @SuppressWarnings("unchecked")<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        public static &lt;T extends Dataset&gt; T ones(int itemSize, Class&lt;T&gt; clazz, int... shape) {<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                return (T) ones(itemSize, shape, DTypeUtils.getDType(clazz));<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>        }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span><a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>        /**<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>         * @param dataset<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>         * @param clazz dataset class<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>         * @return a new dataset of given class with same shape as input dataset, filled with ones<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>         */<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>        @SuppressWarnings("unchecked")<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>        public static &lt;T extends Dataset&gt; T ones(Dataset dataset, Class&lt;T&gt; clazz) {<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                return (T) ones(dataset, DTypeUtils.getDType(clazz));<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/DatasetUtils.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/DatasetUtils.html
new file mode 100644
index 0000000..632fc22
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/DatasetUtils.html
@@ -0,0 +1,2844 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.io.Serializable;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.lang.reflect.Array;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.ArrayList;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.Arrays;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.Comparator;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.List;<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.commons.math3.util.MathArrays;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.eclipse.january.DatasetException;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.slf4j.Logger;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.slf4j.LoggerFactory;<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>/**<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * Utilities for manipulating datasets<a name="line.28"></a>
+<span class="sourceLineNo">029</span> */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>@SuppressWarnings("unchecked")<a name="line.30"></a>
+<span class="sourceLineNo">031</span>public class DatasetUtils {<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>        /**<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * Setup the logging facilities<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         */<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        transient protected static final Logger utilsLogger = LoggerFactory.getLogger(DatasetUtils.class);<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>        /**<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         * Append copy of dataset with another dataset along n-th axis<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         *<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * @param a<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @param b<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param axis<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         *            number of axis (negative number counts from last)<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * @return appended dataset<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         */<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        public static Dataset append(IDataset a, IDataset b, int axis) {<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                final int[] ashape = a.getShape();<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                final int rank = ashape.length;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                final int[] bshape = b.getShape();<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                if (rank != bshape.length) {<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                        throw new IllegalArgumentException("Incompatible number of dimensions");<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                }<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                axis = ShapeUtils.checkAxis(rank, axis);<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                        if (i != axis &amp;&amp; ashape[i] != bshape[i]) {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                                throw new IllegalArgumentException("Incompatible dimensions");<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                        }<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                }<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                final int[] nshape = new int[rank];<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                        nshape[i] = ashape[i];<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                }<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                nshape[axis] += bshape[axis];<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                final Class&lt;? extends Dataset&gt; ot = InterfaceUtils.getInterface(b);<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                final Class&lt;? extends Dataset&gt; dt = InterfaceUtils.getInterface(a);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                Dataset ds = DatasetFactory.zeros(a.getElementsPerItem(), InterfaceUtils.getBestInterface(ot, dt), nshape);<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                IndexIterator iter = ds.getIterator(true);<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                int[] pos = iter.getPos();<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                while (iter.hasNext()) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        int d = ashape[axis];<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        if (pos[axis] &lt; d) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                                ds.setObjectAbs(iter.index, a.getObject(pos));<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        } else {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                                pos[axis] -= d;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                                ds.setObjectAbs(iter.index, b.getObject(pos));<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                pos[axis] += d;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        }<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                }<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>                return ds;<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>         * Changes specific items of dataset by replacing them with other array<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         * @param a<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         * @param indices dataset interpreted as integers<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         * @param values<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         * @return changed dataset<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>        public static &lt;T extends Dataset&gt; T put(final T a, final Dataset indices, Object values) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                IndexIterator it = indices.getIterator();<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                Dataset vd = DatasetFactory.createFromObject(values).flatten();<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                int vlen = vd.getSize();<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                int v = 0;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                while (it.hasNext()) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        if (v &gt;= vlen) v -= vlen;<a name="line.98"></a>
+<span class="sourceLineNo">099</span><a name="line.99"></a>
+<span class="sourceLineNo">100</span>                        a.setObjectAbs((int) indices.getElementLongAbs(it.index), vd.getObjectAbs(v++));<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                }<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                return a;<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>         * Changes specific items of dataset by replacing them with other array<a name="line.106"></a>
+<span class="sourceLineNo">107</span>         * @param a<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * @param indices<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         * @param values<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         * @return changed dataset<a name="line.110"></a>
+<span class="sourceLineNo">111</span>         */<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        public static &lt;T extends Dataset&gt; T put(final T a, final int[] indices, Object values) {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                int ilen = indices.length;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                Dataset vd = DatasetFactory.createFromObject(values).flatten();<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                int vlen = vd.getSize();<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                for (int i = 0, v= 0; i &lt; ilen; i++) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                        if (v &gt;= vlen) v -= vlen;<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        a.setObjectAbs(indices[i], vd.getObjectAbs(v++));<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                }<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                return a;<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 items from dataset along an axis<a name="line.125"></a>
+<span class="sourceLineNo">126</span>         * @param indices dataset interpreted as integers<a name="line.126"></a>
+<span class="sourceLineNo">127</span>         * @param axis if null, then use flattened view<a name="line.127"></a>
+<span class="sourceLineNo">128</span>         * @return a sub-array<a name="line.128"></a>
+<span class="sourceLineNo">129</span>         */<a name="line.129"></a>
+<span class="sourceLineNo">130</span>        public static &lt;T extends Dataset&gt; T take(final T a, final Dataset indices, Integer axis) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                IntegerDataset indexes = (IntegerDataset) indices.flatten().cast(IntegerDataset.class);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                return take(a, indexes.getData(), axis);<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>         * Take items from dataset along an axis<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         * @param indices<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         * @param axis if null, then use flattened view<a name="line.138"></a>
+<span class="sourceLineNo">139</span>         * @return a sub-array<a name="line.139"></a>
+<span class="sourceLineNo">140</span>         */<a name="line.140"></a>
+<span class="sourceLineNo">141</span>        public static &lt;T extends Dataset&gt; T take(final T a, final int[] indices, Integer axis) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                if (indices == null || indices.length == 0) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                        utilsLogger.error("No indices given");<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                        throw new IllegalArgumentException("No indices given");<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                }<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                int[] ashape = a.getShape();<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                final int rank = ashape.length;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                final Class&lt;? extends Dataset&gt; ac = a.getClass();<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                final int ilen = indices.length;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                final int is = a.getElementsPerItem();<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>                Dataset result;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                if (axis == null) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        ashape = new int[1];<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                        ashape[0] = ilen;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        result = DatasetFactory.zeros(is, ac, ashape);<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        Serializable src = a.getBuffer();<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                                ((AbstractDataset) result).setItemDirect(i, indices[i], src);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        }<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                } else {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        axis = a.checkAxis(axis);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                        ashape[axis] = ilen;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        result = DatasetFactory.zeros(is, ac, ashape);<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        int[] dpos = new int[rank];<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                        int[] spos = new int[rank];<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                        boolean[] axes = new boolean[rank];<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                        Arrays.fill(axes, true);<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                        axes[axis] = false;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        Serializable src = a.getBuffer();<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                                spos[axis] = indices[i];<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                                dpos[axis] = i;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                                SliceIterator siter = a.getSliceIteratorFromAxes(spos, axes);<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                                SliceIterator diter = result.getSliceIteratorFromAxes(dpos, axes);<a name="line.176"></a>
+<span class="sourceLineNo">177</span><a name="line.177"></a>
+<span class="sourceLineNo">178</span>                                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                                        ((AbstractDataset) result).setItemDirect(diter.index, siter.index, src);<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>                result.setDirty();<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                return (T) result;<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>         * Construct a dataset that contains the original dataset repeated the number<a name="line.188"></a>
+<span class="sourceLineNo">189</span>         * of times in each axis given by corresponding entries in the reps array<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         *<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         * @param a<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         * @param reps<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         * @return tiled dataset<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         */<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        public static Dataset tile(final IDataset a, int... reps) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                int[] shape = a.getShape();<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                int rank = shape.length;<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                final int rlen = reps.length;<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>                // expand shape<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                if (rank &lt; rlen) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        int[] newShape = new int[rlen];<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        int extraRank = rlen - rank;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                        for (int i = 0; i &lt; extraRank; i++) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                                newShape[i] = 1;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                        }<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                                newShape[i+extraRank] = shape[i];<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>                        shape = newShape;<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                        rank = rlen;<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                } else if (rank &gt; rlen) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        int[] newReps = new int[rank];<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                        int extraRank = rank - rlen;<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                        for (int i = 0; i &lt; extraRank; i++) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                                newReps[i] = 1;<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                        }<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                        for (int i = 0; i &lt; rlen; i++) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                                newReps[i+extraRank] = reps[i];<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        reps = newReps;<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>                // calculate new shape<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                int[] newShape = new int[rank];<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                        newShape[i] = shape[i]*reps[i];<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>                Dataset tdata = DatasetFactory.zeros(a.getElementsPerItem(), InterfaceUtils.getInterfaceFromClass(a.getElementsPerItem(), a.getElementClass()), newShape);<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>                // decide which way to put slices<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                boolean manyColumns;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                if (rank == 1)<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                        manyColumns = true;<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                else<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                        manyColumns = shape[rank-1] &gt; 64;<a name="line.238"></a>
+<span class="sourceLineNo">239</span><a name="line.239"></a>
+<span class="sourceLineNo">240</span>                if (manyColumns) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                        // generate each start point and put a slice in<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                        IndexIterator iter = tdata.getSliceIterator(null, null, shape);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                        SliceIterator siter = (SliceIterator) tdata.getSliceIterator(null, shape, null);<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                        final int[] pos = iter.getPos();<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        while (iter.hasNext()) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                                siter.setStart(pos);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                                tdata.setSlice(a, siter);<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>                } else {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                        // for each value, set slice given by repeats<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                        final int[] skip = new int[rank];<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                                if (reps[i] == 1) {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                                        skip[i] = newShape[i];<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                                } else {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                                        skip[i] = shape[i];<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>                        Dataset aa = convertToDataset(a);<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                        IndexIterator ita = aa.getIterator(true);<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        final int[] pos = ita.getPos();<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>                        final int[] sstart = new int[rank];<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                        final int extra = rank - pos.length;<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                        for (int i = 0; i &lt; extra; i++) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                                sstart[i] = 0;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                        }<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                        SliceIterator siter = (SliceIterator) tdata.getSliceIterator(sstart, null, skip);<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                        while (ita.hasNext()) {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                                for (int i = 0; i &lt; pos.length; i++) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                                        sstart[i + extra] = pos[i];<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                                }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                                siter.setStart(sstart);<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                                tdata.setSlice(aa.getObjectAbs(ita.index), siter);<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>                return tdata;<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>         * Permute copy of dataset's axes so that given order is old order:<a name="line.284"></a>
+<span class="sourceLineNo">285</span>         * &lt;pre&gt;{@literal <a name="line.285"></a>
+<span class="sourceLineNo">286</span>         *  axisPerm = (p(0), p(1),...) =&gt; newdata(n(0), n(1),...) = olddata(o(0), o(1), ...)<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         *  such that n(i) = o(p(i)) for all i<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         * }&lt;/pre&gt;<a name="line.288"></a>
+<span class="sourceLineNo">289</span>         * I.e. for a 3D dataset (1,0,2) implies the new dataset has its 1st dimension<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         * running along the old dataset's 2nd dimension and the new 2nd is the old 1st.<a name="line.290"></a>
+<span class="sourceLineNo">291</span>         * The 3rd dimension is left unchanged.<a name="line.291"></a>
+<span class="sourceLineNo">292</span>         *<a name="line.292"></a>
+<span class="sourceLineNo">293</span>         * @param a<a name="line.293"></a>
+<span class="sourceLineNo">294</span>         * @param axes if null or zero length then axes order reversed<a name="line.294"></a>
+<span class="sourceLineNo">295</span>         * @return remapped copy of data<a name="line.295"></a>
+<span class="sourceLineNo">296</span>         */<a name="line.296"></a>
+<span class="sourceLineNo">297</span>        public static Dataset transpose(final IDataset a, int... axes) {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                return convertToDataset(a).transpose(axes);<a name="line.298"></a>
+<span class="sourceLineNo">299</span>        }<a name="line.299"></a>
+<span class="sourceLineNo">300</span><a name="line.300"></a>
+<span class="sourceLineNo">301</span>        /**<a name="line.301"></a>
+<span class="sourceLineNo">302</span>         * Swap two axes in dataset<a name="line.302"></a>
+<span class="sourceLineNo">303</span>         * @param a<a name="line.303"></a>
+<span class="sourceLineNo">304</span>         * @param axis1<a name="line.304"></a>
+<span class="sourceLineNo">305</span>         * @param axis2<a name="line.305"></a>
+<span class="sourceLineNo">306</span>         * @return swapped dataset<a name="line.306"></a>
+<span class="sourceLineNo">307</span>         */<a name="line.307"></a>
+<span class="sourceLineNo">308</span>        public static Dataset swapAxes(final IDataset a, int axis1, int axis2) {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                return convertToDataset(a).swapAxes(axis1, axis2);<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 a<a name="line.313"></a>
+<span class="sourceLineNo">314</span>         * @return sorted flattened copy of dataset<a name="line.314"></a>
+<span class="sourceLineNo">315</span>         */<a name="line.315"></a>
+<span class="sourceLineNo">316</span>        public static &lt;T extends Dataset&gt; T sort(final T a) {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                return sort(a, (Integer) null);<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        }<a name="line.318"></a>
+<span class="sourceLineNo">319</span><a name="line.319"></a>
+<span class="sourceLineNo">320</span>        /**<a name="line.320"></a>
+<span class="sourceLineNo">321</span>         * @param a<a name="line.321"></a>
+<span class="sourceLineNo">322</span>         * @param axis to sort along, if null then dataset is first flattened<a name="line.322"></a>
+<span class="sourceLineNo">323</span>         * @return dataset sorted along axis<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, final Integer axis) {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                Dataset s = a.clone();<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                return (T) s.sort(axis);<a name="line.327"></a>
+<span class="sourceLineNo">328</span>        }<a name="line.328"></a>
+<span class="sourceLineNo">329</span><a name="line.329"></a>
+<span class="sourceLineNo">330</span>        /**<a name="line.330"></a>
+<span class="sourceLineNo">331</span>         * Sort in place given dataset and reorder ancillary datasets too<a name="line.331"></a>
+<span class="sourceLineNo">332</span>         * @param a dataset to be sorted<a name="line.332"></a>
+<span class="sourceLineNo">333</span>         * @param b ancillary datasets<a name="line.333"></a>
+<span class="sourceLineNo">334</span>         */<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        public static void sort(Dataset a, Dataset... b) {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                if (!DTypeUtils.isDTypeNumerical(a.getDType())) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                        throw new UnsupportedOperationException("Sorting non-numerical datasets not supported yet");<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>                // gather all datasets as double dataset copies<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                DoubleDataset s = copy(DoubleDataset.class, a);<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                int l = b == null ? 0 : b.length;<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                DoubleDataset[] t = new DoubleDataset[l];<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                int n = 0;<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                for (int i = 0; i &lt; l; i++) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                        if (b[i] != null) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                                if (!DTypeUtils.isDTypeNumerical(b[i].getDType())) {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                                        throw new UnsupportedOperationException("Sorting non-numerical datasets not supported yet");<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                                }<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                                t[i] = copy(DoubleDataset.class, b[i]);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                                n++;<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>                double[][] y = new double[n][];<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                for (int i = 0, j = 0; i &lt; l; i++) {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                        if (t[i] != null) {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                                y[j++] = t[i].getData();<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                        }<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>                MathArrays.sortInPlace(s.getData(), y);<a name="line.362"></a>
+<span class="sourceLineNo">363</span><a name="line.363"></a>
+<span class="sourceLineNo">364</span>                a.setSlice(s);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                for (int i = 0; i &lt; l; i++) {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                        if (b[i] != null) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                                b[i].setSlice(t[i]);<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>        /**<a name="line.372"></a>
+<span class="sourceLineNo">373</span>         * Indirectly sort along given axis<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * @param a dataset whose indexes will be sorted<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         * @param axis to sort along, if null then dataset is first flattened<a name="line.375"></a>
+<span class="sourceLineNo">376</span>         * @return indexes<a name="line.376"></a>
+<span class="sourceLineNo">377</span>         * @since 2.1<a name="line.377"></a>
+<span class="sourceLineNo">378</span>         */<a name="line.378"></a>
+<span class="sourceLineNo">379</span>        public static IntegerDataset indexSort(Dataset a, Integer axis) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                if (axis == null) {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                        int size = a.getSize();<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                        Integer[] index = new Integer[size];<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                        for (int i = 0; i &lt; size; i++) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                                index[i] = i;<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                        }<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                        final Dataset f = a.flatten(); // is this correct for views??? Check with NumPy<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                        Comparator&lt;Integer&gt; cmp = new Comparator&lt;Integer&gt;() {<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 int compare(Integer o1, Integer o2) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span><a name="line.391"></a>
+<span class="sourceLineNo">392</span>                                        return Double.compare(f.getElementDoubleAbs(o1), f.getElementDoubleAbs(o2));<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>                        Arrays.sort(index, cmp);<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                        return DatasetFactory.createFromObject(IntegerDataset.class, index);<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>                axis = a.checkAxis(axis);<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                final int[] shape = a.getShapeRef();<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                IntegerDataset id = DatasetFactory.zeros(IntegerDataset.class, shape);<a name="line.401"></a>
+<span class="sourceLineNo">402</span>                int size = shape[axis];<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                Integer[] index = new Integer[size];<a name="line.403"></a>
+<span class="sourceLineNo">404</span><a name="line.404"></a>
+<span class="sourceLineNo">405</span>                int[] dShape = new int[shape.length];<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                Arrays.fill(dShape, 1);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                dShape[axis] = size;<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                final DoubleDataset dd = DatasetFactory.zeros(DoubleDataset.class, dShape);<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                final Comparator&lt;Integer&gt; cmp = new Comparator&lt;Integer&gt;() {<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                        @Override<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                        public int compare(Integer o1, Integer o2) {<a name="line.411"></a>
+<span class="sourceLineNo">412</span><a name="line.412"></a>
+<span class="sourceLineNo">413</span>                                return Double.compare(dd.getElementDoubleAbs(o1), dd.getElementDoubleAbs(o2));<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>                SliceND ds = new SliceND(dShape);<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                SliceNDIterator it = new SliceNDIterator(new SliceND(shape), axis);<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                int[] pos = it.getPos();<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                int[] ipos = pos.clone();<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                while (it.hasNext()) {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                        dd.setSlice(a.getSliceView(it.getCurrentSlice()), ds);<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                        for (int i = 0; i &lt; size; i++) {<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                                index[i] = i;<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                        }<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                        Arrays.sort(index, cmp);<a name="line.426"></a>
+<span class="sourceLineNo">427</span><a name="line.427"></a>
+<span class="sourceLineNo">428</span>                        System.arraycopy(pos, 0, ipos, 0, pos.length);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                        for (int i = 0; i &lt; size; i++) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                                ipos[axis] = i;<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                                id.set(index[i], ipos);<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><a name="line.434"></a>
+<span class="sourceLineNo">435</span>                return id;<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>         * Concatenate the set of datasets along given axis<a name="line.439"></a>
+<span class="sourceLineNo">440</span>         * @param as<a name="line.440"></a>
+<span class="sourceLineNo">441</span>         * @param axis<a name="line.441"></a>
+<span class="sourceLineNo">442</span>         * @return concatenated dataset<a name="line.442"></a>
+<span class="sourceLineNo">443</span>         */<a name="line.443"></a>
+<span class="sourceLineNo">444</span>        public static Dataset concatenate(final IDataset[] as, int axis) {<a name="line.444"></a>
+<span class="sourceLineNo">445</span>                if (as == null || as.length == 0) {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>                        utilsLogger.error("No datasets given");<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                        throw new IllegalArgumentException("No datasets given");<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                }<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                IDataset a = as[0];<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                if (as.length == 1) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                        return convertToDataset(a.clone());<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>                int[] ashape = a.getShape();<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                axis = ShapeUtils.checkAxis(ashape.length, axis);<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                Class&lt;? extends Dataset&gt; ac = InterfaceUtils.getInterface(a);<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                int anum = as.length;<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                int isize = a.getElementsPerItem();<a name="line.458"></a>
+<span class="sourceLineNo">459</span><a name="line.459"></a>
+<span class="sourceLineNo">460</span>                int i = 1;<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                for (; i &lt; anum; i++) {<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                        if (!ac.equals(InterfaceUtils.getInterface(as[i]))) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                                utilsLogger.error("Datasets are not of same type");<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                                break;<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                        }<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                        if (!ShapeUtils.areShapesCompatible(ashape, as[i].getShape(), axis)) {<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                                utilsLogger.error("Datasets' shapes are not equal");<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                                break;<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                        }<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                        final int is = as[i].getElementsPerItem();<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                        if (isize &lt; is)<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                                isize = is;<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                }<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                if (i &lt; anum) {<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                        utilsLogger.error("Dataset are not compatible");<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                        throw new IllegalArgumentException("Datasets are not compatible");<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>                for (i = 1; i &lt; anum; i++) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                        ashape[axis] += as[i].getShape()[axis];<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>                Dataset result = DatasetFactory.zeros(isize, ac, ashape);<a name="line.483"></a>
+<span class="sourceLineNo">484</span><a name="line.484"></a>
+<span class="sourceLineNo">485</span>                int[] start = new int[ashape.length];<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                int[] stop = ashape;<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                stop[axis] = 0;<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                for (i = 0; i &lt; anum; i++) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                        IDataset b = as[i];<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                        int[] bshape = b.getShape();<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                        stop[axis] += bshape[axis];<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                        result.setSlice(b, start, stop, null);<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                        start[axis] += bshape[axis];<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>                return result;<a name="line.496"></a>
+<span class="sourceLineNo">497</span>        }<a name="line.497"></a>
+<span class="sourceLineNo">498</span><a name="line.498"></a>
+<span class="sourceLineNo">499</span>        /**<a name="line.499"></a>
+<span class="sourceLineNo">500</span>         * Split a dataset into equal sections along given axis<a name="line.500"></a>
+<span class="sourceLineNo">501</span>         * @param a<a name="line.501"></a>
+<span class="sourceLineNo">502</span>         * @param sections<a name="line.502"></a>
+<span class="sourceLineNo">503</span>         * @param axis<a name="line.503"></a>
+<span class="sourceLineNo">504</span>         * @param checkEqual makes sure the division is into equal parts<a name="line.504"></a>
+<span class="sourceLineNo">505</span>         * @return list of split datasets<a name="line.505"></a>
+<span class="sourceLineNo">506</span>         */<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        public static List&lt;Dataset&gt; split(final Dataset a, int sections, int axis, final boolean checkEqual) {<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                int[] ashape = a.getShapeRef();<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                axis = a.checkAxis(axis);<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                int imax = ashape[axis];<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                if (checkEqual &amp;&amp; (imax%sections) != 0) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                        utilsLogger.error("Number of sections does not divide axis into equal parts");<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                        throw new IllegalArgumentException("Number of sections does not divide axis into equal parts");<a name="line.513"></a>
+<span class="sourceLineNo">514</span>                }<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                int n = (imax + sections - 1) / sections;<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                int[] indices = new int[sections-1];<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                for (int i = 1; i &lt; sections; i++)<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                        indices[i-1] = n*i;<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                return split(a, indices, axis);<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>        /**<a name="line.522"></a>
+<span class="sourceLineNo">523</span>         * Split a dataset into parts along given axis<a name="line.523"></a>
+<span class="sourceLineNo">524</span>         * @param a<a name="line.524"></a>
+<span class="sourceLineNo">525</span>         * @param indices<a name="line.525"></a>
+<span class="sourceLineNo">526</span>         * @param axis<a name="line.526"></a>
+<span class="sourceLineNo">527</span>         * @return list of split datasets<a name="line.527"></a>
+<span class="sourceLineNo">528</span>         */<a name="line.528"></a>
+<span class="sourceLineNo">529</span>        public static List&lt;Dataset&gt; split(final Dataset a, int[] indices, int axis) {<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                final int[] ashape = a.getShapeRef();<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                axis = a.checkAxis(axis);<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                final int rank = ashape.length;<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                final int imax = ashape[axis];<a name="line.533"></a>
+<span class="sourceLineNo">534</span><a name="line.534"></a>
+<span class="sourceLineNo">535</span>                final List&lt;Dataset&gt; result = new ArrayList&lt;Dataset&gt;();<a name="line.535"></a>
+<span class="sourceLineNo">536</span><a name="line.536"></a>
+<span class="sourceLineNo">537</span>                final int[] nshape = ashape.clone();<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                final int is = a.getElementsPerItem();<a name="line.538"></a>
+<span class="sourceLineNo">539</span><a name="line.539"></a>
+<span class="sourceLineNo">540</span>                int oind = 0;<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                final int[] start = new int[rank];<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                final int[] stop = new int[rank];<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                final int[] step = new int[rank];<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                        start[i] = 0;<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                        stop[i] = ashape[i];<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                        step[i] = 1;<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                }<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                for (int ind : indices) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        if (ind &gt; imax) {<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                                result.add(DatasetFactory.zeros(is, a.getClass(), 0));<a name="line.551"></a>
+<span class="sourceLineNo">552</span>                        } else {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                                nshape[axis] = ind - oind;<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                                start[axis] = oind;<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                                stop[axis] = ind;<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                                Dataset n = DatasetFactory.zeros(is, a.getClass(), nshape);<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                                IndexIterator iter = a.getSliceIterator(start, stop, step);<a name="line.557"></a>
+<span class="sourceLineNo">558</span><a name="line.558"></a>
+<span class="sourceLineNo">559</span>                                a.fillDataset(n, iter);<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                                result.add(n);<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                                oind = ind;<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>                if (imax &gt; oind) {<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                        nshape[axis] = imax - oind;<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                        start[axis] = oind;<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                        stop[axis] = imax;<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                        Dataset n = DatasetFactory.zeros(is, a.getClass(), nshape);<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        IndexIterator iter = a.getSliceIterator(start, stop, step);<a name="line.570"></a>
+<span class="sourceLineNo">571</span><a name="line.571"></a>
+<span class="sourceLineNo">572</span>                        a.fillDataset(n, iter);<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                        result.add(n);<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>                return result;<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>         * Constructs a dataset which has its elements along an axis replicated from<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         * the original dataset by the number of times given in the repeats array.<a name="line.581"></a>
+<span class="sourceLineNo">582</span>         *<a name="line.582"></a>
+<span class="sourceLineNo">583</span>         * By default, axis=-1 implies using a flattened version of the input dataset<a name="line.583"></a>
+<span class="sourceLineNo">584</span>         *<a name="line.584"></a>
+<span class="sourceLineNo">585</span>         * @param a<a name="line.585"></a>
+<span class="sourceLineNo">586</span>         * @param repeats<a name="line.586"></a>
+<span class="sourceLineNo">587</span>         * @param axis<a name="line.587"></a>
+<span class="sourceLineNo">588</span>         * @return dataset<a name="line.588"></a>
+<span class="sourceLineNo">589</span>         */<a name="line.589"></a>
+<span class="sourceLineNo">590</span>        public static &lt;T extends Dataset&gt; T repeat(T a, int[] repeats, int axis) {<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                Serializable buf = a.getBuffer();<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                int[] shape = a.getShape();<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                int rank = shape.length;<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                final int is = a.getElementsPerItem();<a name="line.594"></a>
+<span class="sourceLineNo">595</span><a name="line.595"></a>
+<span class="sourceLineNo">596</span>                if (axis &gt;= rank) {<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                        utilsLogger.warn("Axis value is out of bounds");<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                        throw new IllegalArgumentException("Axis value is out of bounds");<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 alen;<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                if (axis &lt; 0) {<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                        alen = a.getSize();<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                        axis = 0;<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        rank = 1;<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                        shape[0] = alen;<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                } else {<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                        alen = shape[axis];<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                }<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                int rlen = repeats.length;<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                if (rlen != 1 &amp;&amp; rlen != alen) {<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                        utilsLogger.warn("Repeats array should have length of 1 or match chosen axis");<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                        throw new IllegalArgumentException("Repeats array should have length of 1 or match chosen axis");<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>                for (int i = 0; i &lt; rlen; i++) {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                        if (repeats[i] &lt; 0) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                                utilsLogger.warn("Negative repeat value is not allowed");<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                                throw new IllegalArgumentException("Negative repeat value is not allowed");<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                        }<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                }<a name="line.621"></a>
+<span class="sourceLineNo">622</span><a name="line.622"></a>
+<span class="sourceLineNo">623</span>                int[] newShape = new int[rank];<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                for (int i = 0; i &lt; rank; i ++)<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        newShape[i] = shape[i];<a name="line.625"></a>
+<span class="sourceLineNo">626</span><a name="line.626"></a>
+<span class="sourceLineNo">627</span>                // do single repeat separately<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                if (repeats.length == 1) {<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                        newShape[axis] *= repeats[0];<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                } else {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                        int nlen = 0;<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                        for (int i = 0; i &lt; alen; i++) {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                                nlen += repeats[i];<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                        }<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                        newShape[axis] = nlen;<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                }<a name="line.636"></a>
+<span class="sourceLineNo">637</span><a name="line.637"></a>
+<span class="sourceLineNo">638</span>                Dataset rdata = DatasetFactory.zeros(is, a.getClass(), newShape);<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                Serializable nbuf = rdata.getBuffer();<a name="line.639"></a>
+<span class="sourceLineNo">640</span><a name="line.640"></a>
+<span class="sourceLineNo">641</span>                int csize = is; // chunk size<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                for (int i = axis+1; i &lt; rank; i++) {<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                        csize *= newShape[i];<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                }<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                int nout = 1;<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                for (int i = 0; i &lt; axis; i++) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                        nout *= newShape[i];<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>                int oi = 0;<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                int ni = 0;<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                if (rlen == 1) { // do single repeat separately<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                        for (int i = 0; i &lt; nout; i++) {<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                                for (int j = 0; j &lt; shape[axis]; j++) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                                        for (int k = 0; k &lt; repeats[0]; k++) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                                                System.arraycopy(buf, oi, nbuf, ni, csize);<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                                                ni += csize;<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                                        }<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                                        oi += csize;<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>                } else {<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                        for (int i = 0; i &lt; nout; i++) {<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                                for (int j = 0; j &lt; shape[axis]; j++) {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                                        for (int k = 0; k &lt; repeats[j]; k++) {<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                                                System.arraycopy(buf, oi, nbuf, ni, csize);<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                                                ni += csize;<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                                        }<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                                        oi += csize;<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>                }<a name="line.672"></a>
+<span class="sourceLineNo">673</span><a name="line.673"></a>
+<span class="sourceLineNo">674</span>                return (T) rdata;<a name="line.674"></a>
+<span class="sourceLineNo">675</span>        }<a name="line.675"></a>
+<span class="sourceLineNo">676</span><a name="line.676"></a>
+<span class="sourceLineNo">677</span>        /**<a name="line.677"></a>
+<span class="sourceLineNo">678</span>         * Resize a dataset<a name="line.678"></a>
+<span class="sourceLineNo">679</span>         * @param a<a name="line.679"></a>
+<span class="sourceLineNo">680</span>         * @param shape<a name="line.680"></a>
+<span class="sourceLineNo">681</span>         * @return new dataset with new shape and items that are truncated or repeated, as necessary<a name="line.681"></a>
+<span class="sourceLineNo">682</span>         */<a name="line.682"></a>
+<span class="sourceLineNo">683</span>        public static &lt;T extends Dataset&gt; T resize(final T a, final int... shape) {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                int size = a.getSize();<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                Dataset rdata = DatasetFactory.zeros(a.getElementsPerItem(), a.getClass(), shape);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                IndexIterator it = rdata.getIterator();<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                while (it.hasNext()) {<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                        rdata.setObjectAbs(it.index, a.getObjectAbs(it.index % size));<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>                return (T) rdata;<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>        /**<a name="line.694"></a>
+<span class="sourceLineNo">695</span>         * Copy and cast a dataset<a name="line.695"></a>
+<span class="sourceLineNo">696</span>         *<a name="line.696"></a>
+<span class="sourceLineNo">697</span>         * @param d<a name="line.697"></a>
+<span class="sourceLineNo">698</span>         *            The dataset to be copied<a name="line.698"></a>
+<span class="sourceLineNo">699</span>         * @param dtype dataset type<a name="line.699"></a>
+<span class="sourceLineNo">700</span>         * @return copied dataset of given type<a name="line.700"></a>
+<span class="sourceLineNo">701</span>         * @deprecated Please use the class-based methods in DatasetUtils,<a name="line.701"></a>
+<span class="sourceLineNo">702</span>         *             such as {@link #copy(Class, IDataset)}<a name="line.702"></a>
+<span class="sourceLineNo">703</span>         */<a name="line.703"></a>
+<span class="sourceLineNo">704</span>        @Deprecated<a name="line.704"></a>
+<span class="sourceLineNo">705</span>        public static Dataset copy(final IDataset d, final int dtype) {<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                return copy(DTypeUtils.getInterface(dtype), d);<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>        /**<a name="line.709"></a>
+<span class="sourceLineNo">710</span>         * Cast a dataset<a name="line.710"></a>
+<span class="sourceLineNo">711</span>         *<a name="line.711"></a>
+<span class="sourceLineNo">712</span>         * @param clazz dataset class<a name="line.712"></a>
+<span class="sourceLineNo">713</span>         * @param d<a name="line.713"></a>
+<span class="sourceLineNo">714</span>         *            The dataset to be cast.<a name="line.714"></a>
+<span class="sourceLineNo">715</span>         * @return dataset of given class (or same dataset if already of the right class)<a name="line.715"></a>
+<span class="sourceLineNo">716</span>         */<a name="line.716"></a>
+<span class="sourceLineNo">717</span>        public static &lt;T extends Dataset&gt; T copy(Class&lt;T&gt; clazz, final IDataset d) {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                Dataset a = convertToDataset(d);<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                Dataset c = null;<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                try {<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                        // copy across the data<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                        if (BooleanDataset.class.equals(clazz)) {<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                                c = new BooleanDataset(a);<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                        } else if (ByteDataset.class.equals(clazz)) {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                                c = new ByteDataset(a);<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                        } else if (ShortDataset.class.equals(clazz)) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                                c = new ShortDataset(a);<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                        } else if (IntegerDataset.class.equals(clazz)) {<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                                c = new IntegerDataset(a);<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                        } else if (LongDataset.class.equals(clazz)) {<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                                c = new LongDataset(a);<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                        } else if (CompoundByteDataset.class.equals(clazz)) {<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                                if (a instanceof CompoundByteDataset) {<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                                        c = new CompoundByteDataset((CompoundDataset) a);<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                                } else {<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                                        c = new CompoundByteDataset(a);<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                                }<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                        } else if (CompoundShortDataset.class.equals(clazz)) {<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                                if (a instanceof CompoundDataset) {<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                                        c = new CompoundShortDataset((CompoundDataset) a);<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                                } else {<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                                        c = new CompoundShortDataset(a);<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                                }<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                        } else if (CompoundIntegerDataset.class.equals(clazz)) {<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                                if (a instanceof CompoundDataset) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                                        c = new CompoundIntegerDataset((CompoundDataset) a);<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                                } else {<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                                        c = new CompoundIntegerDataset(a);<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                                }<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                        } else if (CompoundLongDataset.class.equals(clazz)) {<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                                if (a instanceof CompoundDataset) {<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                                        c = new CompoundLongDataset((CompoundDataset) a);<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                                } else {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                                        c = new CompoundLongDataset(a);<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                                }<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        } else if (FloatDataset.class.equals(clazz)) {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                                c = new FloatDataset(a);<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                        } else if (DoubleDataset.class.equals(clazz)) {<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                                c = new DoubleDataset(a);<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                        } else if (CompoundFloatDataset.class.equals(clazz)) {<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                                if (a instanceof CompoundDataset) {<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                                        c = new CompoundFloatDataset((CompoundDataset) a);<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                                } else {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                                        c = new CompoundFloatDataset(a);<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                                }<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                        } else if (CompoundDoubleDataset.class.equals(clazz)) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                                if (a instanceof CompoundDataset) {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                                        c = new CompoundDoubleDataset((CompoundDataset) a);<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                                } else {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                                        c = new CompoundDoubleDataset(a);<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                                }<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                        } else if (ComplexFloatDataset.class.equals(clazz)) {<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                                c = new ComplexFloatDataset(a);<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                        } else if (ComplexDoubleDataset.class.equals(clazz)) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                                c = new ComplexDoubleDataset(a);<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                        } else if (RGBDataset.class.equals(clazz)) {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                                if (a instanceof CompoundDataset) {<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                                        c = RGBDataset.createFromCompoundDataset((CompoundDataset) a);<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                                } else {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                                        c = new RGBDataset(a);<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                                }<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                        } else if (StringDataset.class.equals(clazz)) {<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                                c = new StringDataset(a);<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                        } else if (DateDataset.class.equals(clazz)) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                                c = DateDatasetImpl.createFromObject(a);<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                        } else if (ObjectDataset.class.equals(clazz)) {<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                c = new ObjectDataset(a);<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        } else {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                utilsLogger.error("Dataset of unknown type!");<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                        }<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                } catch (OutOfMemoryError e) {<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                        utilsLogger.error("Not enough memory available to create dataset");<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                        throw new OutOfMemoryError("Not enough memory available to create dataset");<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                }<a name="line.794"></a>
+<span class="sourceLineNo">795</span><a name="line.795"></a>
+<span class="sourceLineNo">796</span>                return (T) c;<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 dtype dataset type<a name="line.804"></a>
+<span class="sourceLineNo">805</span>         * @return dataset of given type (or same dataset if already of the right type)<a name="line.805"></a>
+<span class="sourceLineNo">806</span>         * @deprecated Please use the class-based methods in DatasetUtils,<a name="line.806"></a>
+<span class="sourceLineNo">807</span>         *             such as {@link #cast(Class, IDataset)}<a name="line.807"></a>
+<span class="sourceLineNo">808</span>         */<a name="line.808"></a>
+<span class="sourceLineNo">809</span>        @Deprecated<a name="line.809"></a>
+<span class="sourceLineNo">810</span>        public static Dataset cast(final IDataset d, final int dtype) {<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                return cast(DTypeUtils.getInterface(dtype), d);<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>        /**<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         * Cast a dataset<a name="line.815"></a>
+<span class="sourceLineNo">816</span>         * @param clazz dataset class<a name="line.816"></a>
+<span class="sourceLineNo">817</span>         * @param d<a name="line.817"></a>
+<span class="sourceLineNo">818</span>         *            The dataset to be cast.<a name="line.818"></a>
+<span class="sourceLineNo">819</span>         * @return dataset of given class<a name="line.819"></a>
+<span class="sourceLineNo">820</span>         */<a name="line.820"></a>
+<span class="sourceLineNo">821</span>        public static &lt;T extends Dataset&gt; T cast(Class&lt;T&gt; clazz, final IDataset d) {<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                Dataset a = convertToDataset(d);<a name="line.822"></a>
+<span class="sourceLineNo">823</span><a name="line.823"></a>
+<span class="sourceLineNo">824</span>                if ((a.getClass().equals(clazz))) {<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                        return (T) a;<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                }<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                return copy(clazz, d);<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>        /**<a name="line.830"></a>
+<span class="sourceLineNo">831</span>         * Cast a dataset<a name="line.831"></a>
+<span class="sourceLineNo">832</span>         *<a name="line.832"></a>
+<span class="sourceLineNo">833</span>         * @param d<a name="line.833"></a>
+<span class="sourceLineNo">834</span>         *            The dataset to be cast.<a name="line.834"></a>
+<span class="sourceLineNo">835</span>         * @param repeat repeat elements over item<a name="line.835"></a>
+<span class="sourceLineNo">836</span>         * @param dtype dataset type<a name="line.836"></a>
+<span class="sourceLineNo">837</span>         * @param isize item size<a name="line.837"></a>
+<span class="sourceLineNo">838</span>         * @return dataset of given type<a name="line.838"></a>
+<span class="sourceLineNo">839</span>         * @deprecated Please use the class-based methods in DatasetUtils,<a name="line.839"></a>
+<span class="sourceLineNo">840</span>         *             such as {@link #cast(Class, IDataset)}<a name="line.840"></a>
+<span class="sourceLineNo">841</span>         */<a name="line.841"></a>
+<span class="sourceLineNo">842</span>        @Deprecated<a name="line.842"></a>
+<span class="sourceLineNo">843</span>        public static Dataset cast(final IDataset d, final boolean repeat, final int dtype, final int isize) {<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                return cast(isize, DTypeUtils.getInterface(dtype), d, repeat);<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>         * Cast a dataset<a name="line.848"></a>
+<span class="sourceLineNo">849</span>         *<a name="line.849"></a>
+<span class="sourceLineNo">850</span>         * @param clazz dataset class<a name="line.850"></a>
+<span class="sourceLineNo">851</span>         * @param d<a name="line.851"></a>
+<span class="sourceLineNo">852</span>         *            The dataset to be cast.<a name="line.852"></a>
+<span class="sourceLineNo">853</span>         * @param repeat repeat elements over item<a name="line.853"></a>
+<span class="sourceLineNo">854</span>         * @param dtype dataset type<a name="line.854"></a>
+<span class="sourceLineNo">855</span>         * @param isize item size<a name="line.855"></a>
+<span class="sourceLineNo">856</span>         * @since 2.3<a name="line.856"></a>
+<span class="sourceLineNo">857</span>         */<a name="line.857"></a>
+<span class="sourceLineNo">858</span>        public static &lt;T extends Dataset&gt; T cast(final int isize, Class&lt;T&gt; clazz, final IDataset d, final boolean repeat) {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                Dataset a = convertToDataset(d);<a name="line.859"></a>
+<span class="sourceLineNo">860</span><a name="line.860"></a>
+<span class="sourceLineNo">861</span>                if (a.getClass().equals(clazz) &amp;&amp; a.getElementsPerItem() == isize) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                        return (T) a;<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                }<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                if (isize &lt;= 0) {<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                        utilsLogger.error("Item size is invalid (&gt;0)");<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                        throw new IllegalArgumentException("Item size is invalid (&gt;0)");<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                }<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                if (isize &gt; 1 &amp;&amp; !InterfaceUtils.isComplex(clazz) &amp;&amp; InterfaceUtils.isElemental(clazz)) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                        utilsLogger.error("Item size is inconsistent with dataset type");<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                        throw new IllegalArgumentException("Item size is inconsistent with dataset type");<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                }<a name="line.871"></a>
+<span class="sourceLineNo">872</span><a name="line.872"></a>
+<span class="sourceLineNo">873</span>                Dataset c = null;<a name="line.873"></a>
+<span class="sourceLineNo">874</span><a name="line.874"></a>
+<span class="sourceLineNo">875</span>                try {<a name="line.875"></a>
+<span class="sourceLineNo">876</span>                        // copy across the data<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                        if (BooleanDataset.class.equals(clazz)) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                c = new BooleanDataset(a);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                        } else if (ByteDataset.class.equals(clazz)) {<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                                c = new ByteDataset(a);<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                        } else if (ShortDataset.class.equals(clazz)) {<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                c = new ShortDataset(a);<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                        } else if (IntegerDataset.class.equals(clazz)) {<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                                c = new IntegerDataset(a);<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                        } else if (LongDataset.class.equals(clazz)) {<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                                c = new LongDataset(a);<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        } else if (CompoundByteDataset.class.equals(clazz)) {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                                c = new CompoundByteDataset(isize, repeat, a);<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                        } else if (CompoundShortDataset.class.equals(clazz)) {<a name="line.889"></a>
+<span class="sourceLineNo">890</span>                                c = new CompoundShortDataset(isize, repeat, a);<a name="line.890"></a>
+<span class="sourceLineNo">891</span>                        } else if (CompoundIntegerDataset.class.equals(clazz)) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                c = new CompoundIntegerDataset(isize, repeat, a);<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                        } else if (CompoundLongDataset.class.equals(clazz)) {<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                c = new CompoundLongDataset(isize, repeat, a);<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                        } else if (FloatDataset.class.equals(clazz)) {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                c = new FloatDataset(a);<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                        } else if (DoubleDataset.class.equals(clazz)) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                c = new DoubleDataset(a);<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                        } else if (CompoundFloatDataset.class.equals(clazz)) {<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                c = new CompoundFloatDataset(isize, repeat, a);<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        } else if (CompoundDoubleDataset.class.equals(clazz)) {<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                                c = new CompoundDoubleDataset(isize, repeat, a);<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                        } else if (ComplexFloatDataset.class.equals(clazz)) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                                c = new ComplexFloatDataset(a);<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                        } else if (ComplexDoubleDataset.class.equals(clazz)) {<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                                c = new ComplexDoubleDataset(a);<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                        } else if (RGBDataset.class.equals(clazz)) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                if (a instanceof CompoundDataset) {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                                        c = RGBDataset.createFromCompoundDataset((CompoundDataset) a);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                                } else {<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                                        c = new RGBDataset(a);<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                                }<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                        } else if (StringDataset.class.equals(clazz)) {<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                                c = new StringDataset(a);<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                        } else if (DateDataset.class.equals(clazz)) {<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                c = DateDatasetImpl.createFromObject(a);<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                        } else if (ObjectDataset.class.equals(clazz)) {<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                                c = new ObjectDataset(a);<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                        } else {<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                                utilsLogger.error("Dataset of unknown type!");<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                        }<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                } catch (OutOfMemoryError e) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                        utilsLogger.error("Not enough memory available to create dataset");<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                        throw new OutOfMemoryError("Not enough memory available to create dataset");<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>                return (T) c;<a name="line.927"></a>
+<span class="sourceLineNo">928</span>        }<a name="line.928"></a>
+<span class="sourceLineNo">929</span><a name="line.929"></a>
+<span class="sourceLineNo">930</span>        /**<a name="line.930"></a>
+<span class="sourceLineNo">931</span>         * Cast array of datasets to a compound dataset<a name="line.931"></a>
+<span class="sourceLineNo">932</span>         *<a name="line.932"></a>
+<span class="sourceLineNo">933</span>         * @param clazz dataset class<a name="line.933"></a>
+<span class="sourceLineNo">934</span>         * @param a<a name="line.934"></a>
+<span class="sourceLineNo">935</span>         *            The datasets to be cast.<a name="line.935"></a>
+<span class="sourceLineNo">936</span>         * @return dataset of given class<a name="line.936"></a>
+<span class="sourceLineNo">937</span>         * @since 2.3<a name="line.937"></a>
+<span class="sourceLineNo">938</span>         */<a name="line.938"></a>
+<span class="sourceLineNo">939</span>        public static  &lt;T extends CompoundDataset&gt; T compoundCast(Class&lt;T&gt; clazz, final Dataset... a) {<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                return (T) cast((Class&lt;? extends Dataset&gt;) clazz, a);<a name="line.940"></a>
+<span class="sourceLineNo">941</span>        }<a name="line.941"></a>
+<span class="sourceLineNo">942</span><a name="line.942"></a>
+<span class="sourceLineNo">943</span><a name="line.943"></a>
+<span class="sourceLineNo">944</span>        /**<a name="line.944"></a>
+<span class="sourceLineNo">945</span>         * Cast array of datasets to a compound dataset<a name="line.945"></a>
+<span class="sourceLineNo">946</span>         *<a name="line.946"></a>
+<span class="sourceLineNo">947</span>         * @param clazz dataset class<a name="line.947"></a>
+<span class="sourceLineNo">948</span>         * @param a<a name="line.948"></a>
+<span class="sourceLineNo">949</span>         *            The datasets to be cast.<a name="line.949"></a>
+<span class="sourceLineNo">950</span>         * @return compound dataset of given class<a name="line.950"></a>
+<span class="sourceLineNo">951</span>         * @since 2.3<a name="line.951"></a>
+<span class="sourceLineNo">952</span>         */<a name="line.952"></a>
+<span class="sourceLineNo">953</span>        public static  CompoundDataset cast(Class&lt;? extends Dataset&gt; clazz, final Dataset... a) {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                CompoundDataset c = null;<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                if (ByteDataset.class.equals(clazz) || CompoundByteDataset.class.equals(clazz)) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                        c = new CompoundByteDataset(a);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                } else if (ShortDataset.class.equals(clazz) || CompoundShortDataset.class.equals(clazz)) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                        c = new CompoundShortDataset(a);<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                } else if (IntegerDataset.class.equals(clazz) || CompoundIntegerDataset.class.equals(clazz)) {<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                        c = new CompoundIntegerDataset(a);<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                } else if (LongDataset.class.equals(clazz) || CompoundLongDataset.class.equals(clazz)) {<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                        c = new CompoundLongDataset(a);<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                } else if (FloatDataset.class.equals(clazz) || CompoundFloatDataset.class.equals(clazz)) {<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                        c = new CompoundFloatDataset(a);<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                } else if (DoubleDataset.class.equals(clazz) || CompoundDoubleDataset.class.equals(clazz)) {<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                        c = new CompoundDoubleDataset(a);<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                } else if (ComplexFloatDataset.class.equals(clazz)) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                        if (a.length != 2) {<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                throw new IllegalArgumentException("Need two datasets for complex dataset type");<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                        }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        c = new ComplexFloatDataset(a[0], a[1]);<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                } else if (ComplexDoubleDataset.class.equals(clazz)) {<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                        if (a.length != 2) {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                                throw new IllegalArgumentException("Need two datasets for complex dataset type");<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                        }<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        c = new ComplexDoubleDataset(a[0], a[1]);<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                } else {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                        utilsLogger.error("Dataset of unsupported type!");<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>                return c;<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>         * Cast array of datasets to a compound dataset<a name="line.985"></a>
+<span class="sourceLineNo">986</span>         *<a name="line.986"></a>
+<span class="sourceLineNo">987</span>         * @param a<a name="line.987"></a>
+<span class="sourceLineNo">988</span>         *            The datasets to be cast.<a name="line.988"></a>
+<span class="sourceLineNo">989</span>         * @return compound dataset of given type<a name="line.989"></a>
+<span class="sourceLineNo">990</span>         * @deprecated Please use the class-based methods in DatasetUtils,<a name="line.990"></a>
+<span class="sourceLineNo">991</span>         *             such as {@link #cast(Class, Dataset...)}<a name="line.991"></a>
+<span class="sourceLineNo">992</span>         */<a name="line.992"></a>
+<span class="sourceLineNo">993</span>        @Deprecated<a name="line.993"></a>
+<span class="sourceLineNo">994</span>        public static CompoundDataset cast(final Dataset[] a, final int dtype) {<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                return cast(DTypeUtils.getInterface(dtype), a);<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>        /**<a name="line.998"></a>
+<span class="sourceLineNo">999</span>         * Make a dataset unsigned by promoting it to a wider dataset type and unwrapping the signs<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>         * of its contents<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>         * @param a<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>         * @return unsigned dataset or original if it is not an integer dataset<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>         */<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>        public static Dataset makeUnsigned(IDataset a) {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                return makeUnsigned(a, false);<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>        }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span><a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>        /**<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>         * Make a dataset unsigned by promoting it to a wider dataset type and unwrapping the signs<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>         * of its contents<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>         * @param a<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>         * @param check if true, then check for negative values<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>         * @return unsigned dataset or original if it is not an integer dataset or it has been check for negative numbers<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>         * @since 2.1<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>         */<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>        public static Dataset makeUnsigned(IDataset a, boolean check) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                Dataset d = convertToDataset(a);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span><a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                if (d.hasFloatingPointElements()) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                        return d;<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                }<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                if (check &amp;&amp; d.min(true).longValue() &gt;= 0) {<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                        return d;<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>                int dtype = d.getDType();<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                switch (dtype) {<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                case Dataset.INT32:<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                        d = new LongDataset(d);<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                        unwrapUnsigned(d, 32);<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                        break;<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                case Dataset.INT16:<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                        d = new IntegerDataset(d);<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                        unwrapUnsigned(d, 16);<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                        break;<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                case Dataset.INT8:<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                        d = new ShortDataset(d);<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                        unwrapUnsigned(d, 8);<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                        break;<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                case Dataset.ARRAYINT32:<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                        d = new CompoundLongDataset(d);<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        unwrapUnsigned(d, 32);<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                        break;<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                case Dataset.ARRAYINT16:<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                        d = new CompoundIntegerDataset(d);<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        unwrapUnsigned(d, 16);<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                        break;<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                case Dataset.ARRAYINT8:<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                        d = new CompoundShortDataset(d);<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                        unwrapUnsigned(d, 8);<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                        break;<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                }<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                return d;<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>         * Unwrap dataset elements so that all elements are unsigned<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>         * @param a dataset<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>         * @param bitWidth width of original primitive in bits<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>         */<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>        public static void unwrapUnsigned(Dataset a, final int bitWidth) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                final int dtype = a.getDType();<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                final double dv = 1L &lt;&lt; bitWidth;<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                final int isize = a.getElementsPerItem();<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                IndexIterator it = a.getIterator();<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span><a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                switch (dtype) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                case Dataset.BOOL:<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                        break;<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                case Dataset.INT8:<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        break;<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                case Dataset.INT16:<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                        ShortDataset sds = (ShortDataset) a;<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        final short soffset = (short) dv;<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                        while (it.hasNext()) {<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                                final short x = sds.getAbs(it.index);<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                if (x &lt; 0)<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                        sds.setAbs(it.index, (short) (x + soffset));<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                        }<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                        break;<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                case Dataset.INT32:<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                        IntegerDataset ids = (IntegerDataset) a;<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                        final int ioffset = (int) dv;<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                        while (it.hasNext()) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                final int x = ids.getAbs(it.index);<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                if (x &lt; 0)<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                        ids.setAbs(it.index, x + ioffset);<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                        }<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                        break;<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                case Dataset.INT64:<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                        LongDataset lds = (LongDataset) a;<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                        final long loffset = (long) dv;<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                        while (it.hasNext()) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                final long x = lds.getAbs(it.index);<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                if (x &lt; 0)<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                        lds.setAbs(it.index, x + loffset);<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                        break;<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                case Dataset.FLOAT32:<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                        FloatDataset fds = (FloatDataset) a;<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                        final float foffset = (float) dv;<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                        while (it.hasNext()) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                final float x = fds.getAbs(it.index);<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                if (x &lt; 0)<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                        fds.setAbs(it.index, x + foffset);<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.FLOAT64:<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        DoubleDataset dds = (DoubleDataset) a;<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                        final double doffset = dv;<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        while (it.hasNext()) {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                final double x = dds.getAbs(it.index);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                if (x &lt; 0)<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                        dds.setAbs(it.index, x + doffset);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                        }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                        break;<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                case Dataset.ARRAYINT8:<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                        break;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                case Dataset.ARRAYINT16:<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                        CompoundShortDataset csds = (CompoundShortDataset) a;<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                        final short csoffset = (short) dv;<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                        final short[] csa = new short[isize];<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                        while (it.hasNext()) {<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                csds.getAbs(it.index, csa);<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                boolean dirty = false;<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                for (int i = 0; i &lt; isize; i++) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                        short x = csa[i];<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                        if (x &lt; 0) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                                csa[i] = (short) (x + csoffset);<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                                dirty = true;<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>                                if (dirty)<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                        csds.setAbs(it.index, csa);<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                        }<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                        break;<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                case Dataset.ARRAYINT32:<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                        CompoundIntegerDataset cids = (CompoundIntegerDataset) a;<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                        final int cioffset = (int) dv;<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                        final int[] cia = new int[isize];<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                        while (it.hasNext()) {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                                cids.getAbs(it.index, cia);<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                                boolean dirty = false;<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                for (int i = 0; i &lt; isize; i++) {<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                        int x = cia[i];<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                        if (x &lt; 0) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                                cia[i] = x + cioffset;<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                                dirty = true;<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                        }<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                }<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                if (dirty)<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                        cids.setAbs(it.index, cia);<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                        }<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                        break;<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                case Dataset.ARRAYINT64:<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                        CompoundLongDataset clds = (CompoundLongDataset) a;<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                        final long cloffset = (long) dv;<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                        final long[] cla = new long[isize];<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        while (it.hasNext()) {<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                                clds.getAbs(it.index, cla);<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                                boolean dirty = false;<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                                for (int i = 0; i &lt; isize; i++) {<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                                        long x = cla[i];<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                                        if (x &lt; 0) {<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                                                cla[i] = x + cloffset;<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                                dirty = true;<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>                                if (dirty)<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                                        clds.setAbs(it.index, cla);<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                        }<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                        break;<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                default:<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                        utilsLogger.error("Dataset of unsupported type for this method");<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                        break;<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>        /**<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>         * @param clazz dataset class<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>         * @param rows<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>         * @param cols<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>         * @param offset<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>         * @param dtype<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>         * @return a new 2d dataset of given shape and class, filled with ones on the (offset) diagonal<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>         * @since 2.3<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>         */<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>        public static &lt;T extends Dataset&gt; T eye(final Class&lt;T&gt; clazz, final int rows, final int cols, final int offset) {<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                int[] shape = new int[] {rows, cols};<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                T a = DatasetFactory.zeros(clazz, shape);<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span><a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                int[] pos = new int[] {0, offset};<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                while (pos[1] &lt; 0) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                        pos[0]++;<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                        pos[1]++;<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                }<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                while (pos[0] &lt; rows &amp;&amp; pos[1] &lt; cols) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                        a.set(1, pos);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                        pos[0]++;<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                        pos[1]++;<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>                return a;<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>         * @param rows<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>         * @param cols<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>         * @param offset<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>         * @param dtype<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>         * @return a new 2d dataset of given shape and type, filled with ones on the (offset) diagonal<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>         * @deprecated Please use the class-based methods in DatasetUtils,<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>         *             such as {@link #eye(Class, int, int, int)}<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>         */<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>        @Deprecated<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>        public static Dataset eye(final int rows, final int cols, final int offset, final int dtype) {<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                int[] shape = new int[] {rows, cols};<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                Dataset a = DatasetFactory.zeros(shape, dtype);<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span><a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                int[] pos = new int[] {0, offset};<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                while (pos[1] &lt; 0) {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                        pos[0]++;<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                        pos[1]++;<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                }<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                while (pos[0] &lt; rows &amp;&amp; pos[1] &lt; cols) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                        a.set(1, pos);<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                        pos[0]++;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                        pos[1]++;<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 a;<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>        /**<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>         * Create a (off-)diagonal matrix from items in dataset<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>         * @param a<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>         * @param offset<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>         * @return diagonal matrix<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>         */<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>        public static &lt;T extends Dataset&gt; T diag(final T a, final int offset) {<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                final int rank = a.getRank();<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                final int is = a.getElementsPerItem();<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span><a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                if (rank == 0 || rank &gt; 2) {<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                        utilsLogger.error("Rank of dataset should be one or two");<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                        throw new IllegalArgumentException("Rank of dataset should be one or two");<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>                Dataset result;<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                final int[] shape = a.getShapeRef();<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                if (rank == 1) {<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                        int side = shape[0] + Math.abs(offset);<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                        int[] pos = new int[] {side, side};<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                        result = DatasetFactory.zeros(is, a.getClass(), pos);<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                        if (offset &gt;= 0) {<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                pos[0] = 0;<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                pos[1] = offset;<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                        } else {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                pos[0] = -offset;<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                pos[1] = 0;<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                        }<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                        int i = 0;<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                        while (pos[0] &lt; side &amp;&amp; pos[1] &lt; side) {<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                result.set(a.getObject(i++), pos);<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                                pos[0]++;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                pos[1]++;<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                        }<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                } else {<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        int side = offset &gt;= 0 ? Math.min(shape[0], shape[1]-offset) : Math.min(shape[0]+offset, shape[1]);<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                        if (side &lt; 0)<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                side = 0;<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                        result = DatasetFactory.zeros(is, a.getClass(), side);<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span><a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                        if (side &gt; 0) {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                int[] pos = offset &gt;= 0 ? new int[] { 0, offset } : new int[] { -offset, 0 };<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                int i = 0;<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                while (pos[0] &lt; shape[0] &amp;&amp; pos[1] &lt; shape[1]) {<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                        result.set(a.getObject(pos), i++);<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        pos[0]++;<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                        pos[1]++;<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><a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                return (T) result;<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>        }<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span><a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>        /**<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>         * Slice (or fully load), if necessary, a lazy dataset, otherwise take a slice view and<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>         * convert to our dataset implementation. If a slice is necessary, this may cause resource<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>         * problems when used on large datasets and throw runtime exceptions<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>         * @param lazy can be null<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>         * @return Converted dataset or null<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>         * @throws DatasetException<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>         */<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>        public static Dataset sliceAndConvertLazyDataset(ILazyDataset lazy) throws DatasetException {<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                if (lazy == null)<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                        return null;<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span><a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                IDataset data = lazy instanceof IDataset ? (IDataset) lazy.getSliceView() : lazy.getSlice();<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span><a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                return convertToDataset(data);<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>        /**<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>         * Convert (if necessary) a dataset obeying the interface to our implementation<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>         * @param data can be null<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>         * @return Converted dataset or null<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>         */<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>        public static Dataset convertToDataset(IDataset data) {<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                if (data == null)<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                        return null;<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span><a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                if (data instanceof Dataset) {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                        return (Dataset) data;<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                }<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span><a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                final int isize = data.getElementsPerItem();<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                Class&lt;? extends Dataset&gt; clazz = InterfaceUtils.getInterfaceFromClass(isize, data.getElementClass());<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                if (isize &lt;= 0) {<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                        throw new IllegalArgumentException("Datasets with " + isize + " elements per item not supported");<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                }<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span><a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                final Dataset result = DatasetFactory.zeros(isize, clazz, data.getShape());<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                result.setName(data.getName());<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span><a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                final IndexIterator it = result.getIterator(true);<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                final int[] pos = it.getPos();<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                switch (DTypeUtils.getDType(clazz)) {<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                case Dataset.BOOL:<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                        while (it.hasNext()) {<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                result.setObjectAbs(it.index, data.getBoolean(pos));<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                        }<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                        break;<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                case Dataset.INT8:<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                        while (it.hasNext()) {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                                result.setObjectAbs(it.index, data.getByte(pos));<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                        }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                        break;<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                case Dataset.INT16:<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                        while (it.hasNext()) {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                result.setObjectAbs(it.index, data.getShort(pos));<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                        }<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                        break;<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>                case Dataset.INT32:<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                        while (it.hasNext()) {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                                result.setObjectAbs(it.index, data.getInt(pos));<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.INT64:<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                        while (it.hasNext()) {<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>                                result.setObjectAbs(it.index, data.getLong(pos));<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>                case Dataset.FLOAT32:<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                        while (it.hasNext()) {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                                result.setObjectAbs(it.index, data.getFloat(pos));<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                        }<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                        break;<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                case Dataset.FLOAT64:<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                        while (it.hasNext()) {<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>                                result.setObjectAbs(it.index, data.getDouble(pos));<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                        }<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                        break;<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                default:<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                        while (it.hasNext()) {<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                                result.setObjectAbs(it.index, data.getObject(pos));<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                        }<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>                result.setErrors(data.getErrors());<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                return result;<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>        }<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>         * Create a compound dataset from given datasets<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>         * @param datasets<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>         * @return compound dataset or null if none given<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>         */<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>        public static CompoundDataset createCompoundDataset(final Dataset... datasets) {<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                if (datasets == null || datasets.length == 0)<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                        return null;<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span><a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                return createCompoundDataset(datasets[0].getDType(), datasets);<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>         * Create a compound dataset from given datasets<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>         * @param clazz dataset class<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>         * @param datasets<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>         * @return compound dataset or null if none given<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>         */<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>        public static &lt;T extends CompoundDataset&gt; T createCompoundDataset(Class&lt;T&gt; clazz, final Dataset... datasets) {<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                return (T) createCompoundDataset(DTypeUtils.getDType(clazz), datasets);<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>         * Create a compound dataset from given datasets<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>         * @param dtype<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>         * @param datasets<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>         * @return compound dataset or null if none given<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>         * @deprecated Please use the class-based methods in DatasetUtils,<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>         *             such as {@link #createCompoundDataset(Class, Dataset...)}<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>         */<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>        @Deprecated<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>        public static CompoundDataset createCompoundDataset(final int dtype, final Dataset... datasets) {<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                if (datasets == null || datasets.length == 0)<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                        return null;<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span><a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                switch (dtype) {<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                case Dataset.INT8:<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                case Dataset.ARRAYINT8:<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                        return new CompoundByteDataset(datasets);<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                case Dataset.INT16:<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                case Dataset.ARRAYINT16:<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                        return new CompoundShortDataset(datasets);<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                case Dataset.INT32:<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                case Dataset.ARRAYINT32:<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                        return new CompoundIntegerDataset(datasets);<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>                case Dataset.INT64:<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                case Dataset.ARRAYINT64:<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                        return new CompoundLongDataset(datasets);<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                case Dataset.FLOAT32:<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                case Dataset.ARRAYFLOAT32:<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                        return new CompoundFloatDataset(datasets);<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                case Dataset.FLOAT64:<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                case Dataset.ARRAYFLOAT64:<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                        return new CompoundDoubleDataset(datasets);<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                case Dataset.COMPLEX64:<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                case Dataset.COMPLEX128:<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                        if (datasets.length &gt; 2) {<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                utilsLogger.error("At most two datasets are allowed");<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                throw new IllegalArgumentException("At most two datasets are allowed");<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                        } else if (datasets.length == 2) {<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                return dtype == Dataset.COMPLEX64 ? new ComplexFloatDataset(datasets[0], datasets[1]) : new ComplexDoubleDataset(datasets[0], datasets[1]);<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                        }<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                        return dtype == Dataset.COMPLEX64 ? new ComplexFloatDataset(datasets[0]) : new ComplexDoubleDataset(datasets[0]);<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                case Dataset.RGB:<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                        if (datasets.length == 1) {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                return new RGBDataset(datasets[0]);<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                        } else if (datasets.length == 3) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                return new RGBDataset(datasets[0], datasets[1], datasets[2]);<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                        } else {<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                utilsLogger.error("Only one or three datasets are allowed to create a RGB dataset");<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                throw new IllegalArgumentException("Only one or three datasets are allowed to create a RGB dataset");<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                        }<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                default:<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                        utilsLogger.error("Dataset type not supported for this operation");<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                        throw new UnsupportedOperationException("Dataset type not supported");<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                }<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>        }<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span><a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>        /**<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>         * Create a compound dataset from given dataset<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>         * @param dataset<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>         * @param itemSize<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>         * @return compound dataset<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>         */<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>        public static CompoundDataset createCompoundDataset(final Dataset dataset, final int itemSize) {<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                int[] shape = dataset.getShapeRef();<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                int[] nshape = shape;<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                if (shape != null &amp;&amp; itemSize &gt; 1) {<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                        int size = ShapeUtils.calcSize(shape);<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                        if (size % itemSize != 0) {<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                                throw new IllegalArgumentException("Input dataset has number of items that is not a multiple of itemSize");<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                        }<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                        int d = shape.length;<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                        int l = 1;<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                        while (--d &gt;= 0) {<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                                l *= shape[d];<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                if (l % itemSize == 0) {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                        break;<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>                        assert d &gt;= 0;<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                        nshape = new int[d + 1];<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                        for (int i = 0; i &lt; d; i++) {<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                nshape[i] = shape[i];<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                        }<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                        nshape[d] = l / itemSize;<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                }<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                switch (dataset.getDType()) {<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                case Dataset.INT8:<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                        return new CompoundByteDataset(itemSize, (byte[]) dataset.getBuffer(), nshape);<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                case Dataset.INT16:<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                        return new CompoundShortDataset(itemSize, (short[]) dataset.getBuffer(), nshape);<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                case Dataset.INT32:<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                        return new CompoundIntegerDataset(itemSize, (int[]) dataset.getBuffer(), nshape);<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>                case Dataset.INT64:<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                        return new CompoundLongDataset(itemSize, (long[]) dataset.getBuffer(), nshape);<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                case Dataset.FLOAT32:<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                        return new CompoundFloatDataset(itemSize, (float[]) dataset.getBuffer(), nshape);<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                case Dataset.FLOAT64:<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                        return new CompoundDoubleDataset(itemSize, (double[]) dataset.getBuffer(), nshape);<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                default:<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                        utilsLogger.error("Dataset type not supported for this operation");<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                        throw new UnsupportedOperationException("Dataset type not supported");<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                }<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>        }<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span><a name="line.1501"></a>
+<span class="sourceLineNo">1502</span><a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>        /**<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>         * Create a compound dataset by using last axis as elements of an item<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>         * @param a<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>         * @param shareData if true, then share data<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>         * @return compound dataset<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>         */<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>        public static CompoundDataset createCompoundDatasetFromLastAxis(final Dataset a, final boolean shareData) {<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                switch (a.getDType()) {<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                case Dataset.INT8:<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                        return CompoundByteDataset.createCompoundDatasetWithLastDimension(a, shareData);<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                case Dataset.INT16:<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                        return CompoundShortDataset.createCompoundDatasetWithLastDimension(a, shareData);<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                case Dataset.INT32:<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                        return CompoundIntegerDataset.createCompoundDatasetWithLastDimension(a, shareData);<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                case Dataset.INT64:<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                        return CompoundLongDataset.createCompoundDatasetWithLastDimension(a, shareData);<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                case Dataset.FLOAT32:<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                        return CompoundFloatDataset.createCompoundDatasetWithLastDimension(a, shareData);<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                case Dataset.FLOAT64:<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                        return CompoundDoubleDataset.createCompoundDatasetWithLastDimension(a, shareData);<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                default:<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                        utilsLogger.error("Dataset type not supported for this operation");<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                        throw new UnsupportedOperationException("Dataset type not supported");<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><a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>        /**<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>         * Create a dataset from a compound dataset by using elements of an item as last axis<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>         * &lt;p&gt;<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>         * In the case where the number of elements is one, the last axis is squeezed out.<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>         * @param a<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>         * @param shareData if true, then share data<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>         * @return non-compound dataset<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>         */<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>        public static Dataset createDatasetFromCompoundDataset(final CompoundDataset a, final boolean shareData) {<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                return a.asNonCompoundDataset(shareData);<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>        }<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span><a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>        /**<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>         * Create a copy that has been coerced to an appropriate dataset type<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>         * depending on the input object's class<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>         *<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>         * @param a<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>         * @param obj<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>         * @return coerced copy of dataset<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>         */<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>        public static Dataset coerce(Dataset a, Object obj) {<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                return cast(InterfaceUtils.getBestInterface(a.getClass(), InterfaceUtils.getInterface(obj)), a.clone());<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>        /**<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>         * Function that returns a normalised dataset which is bounded between 0 and 1<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>         * @param a dataset<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>         * @return normalised dataset<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>         */<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>        public static Dataset norm(Dataset a) {<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>                double amin = a.min().doubleValue();<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                double aptp = a.max().doubleValue() - amin;<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                Dataset temp = Maths.subtract(a, amin);<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                temp.idivide(aptp);<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                return temp;<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>        /**<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>         * Function that returns a normalised compound dataset which is bounded between 0 and 1. There<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>         * are (at least) two ways to normalise a compound dataset: per element - extrema for each element<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>         * in a compound item is used, i.e. many min/max pairs; over all elements - extrema for all elements<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>         * is used, i.e. one min/max pair.<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>         * @param a dataset<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>         * @param overAllElements if true, then normalise over all elements in each item<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>         * @return normalised dataset<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>         */<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>        public static CompoundDataset norm(CompoundDataset a, boolean overAllElements) {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                double[] amin = a.minItem();<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                double[] amax = a.maxItem();<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                final int is = a.getElementsPerItem();<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                Dataset result;<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span><a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                if (overAllElements) {<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                        Arrays.sort(amin);<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                        Arrays.sort(amax);<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                        double aptp = amax[0] - amin[0];<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span><a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                        result = Maths.subtract(a, amin[0]);<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                        result.idivide(aptp);<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                } else {<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                        double[] aptp = new double[is];<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                        for (int j = 0; j &lt; is; j++) {<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                                aptp[j] = amax[j] - amin[j];<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>                        result = Maths.subtract(a, amin);<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                        result.idivide(aptp);<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                }<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                return (CompoundDataset) result;<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>         * Function that returns a normalised dataset which is bounded between 0 and 1<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>         * and has been distributed on a log10 scale<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>         * @param a dataset<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>         * @return normalised dataset<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>         */<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>        public static Dataset lognorm(Dataset a) {<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                double amin = a.min().doubleValue();<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                double aptp = Math.log10(a.max().doubleValue() - amin + 1.);<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                Dataset temp = Maths.subtract(a, amin - 1.);<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                temp = Maths.log10(temp);<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                temp = Maths.divide(temp, aptp);<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                return temp;<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>        /**<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>         * Function that returns a normalised dataset which is bounded between 0 and 1<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>         * and has been distributed on a natural log scale<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>         * @param a dataset<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>         * @return normalised dataset<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>         */<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>        public static Dataset lnnorm(Dataset a) {<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                double amin = a.min().doubleValue();<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                double aptp = Math.log(a.max().doubleValue() - amin + 1.);<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                Dataset temp = Maths.subtract(a, amin - 1.);<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                temp = Maths.log(temp);<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>                temp = Maths.divide(temp, aptp);<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                return temp;<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>        }<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span><a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>        /**<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>         * Construct a list of datasets where each represents a coordinate varying over the hypergrid<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>         * formed by the input list of axes<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>         *<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>         * @param axes an array of 1D datasets representing axes<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>         * @return a list of coordinate datasets<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>         */<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>        public static List&lt;Dataset&gt; meshGrid(final Dataset... axes) {<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                List&lt;Dataset&gt; result = new ArrayList&lt;Dataset&gt;();<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                int rank = axes.length;<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span><a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                if (rank &lt; 2) {<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                        utilsLogger.error("Two or more axes datasets are required");<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                        throw new IllegalArgumentException("Two or more axes datasets are required");<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                }<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span><a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                int[] nshape = new int[rank];<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span><a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                        Dataset axis = axes[i];<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                        if (axis.getRank() != 1) {<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                                utilsLogger.error("Given axis is not 1D");<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                                throw new IllegalArgumentException("Given axis is not 1D");<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                        }<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>                        nshape[i] = axis.getSize();<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>                for (int i = 0; i &lt; rank; i++) {<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                        Dataset axis = axes[i];<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                        Dataset coord = DatasetFactory.zeros(axis.getClass(), nshape);<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                        result.add(coord);<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span><a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                        final int alen = axis.getSize();<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                        for (int j = 0; j &lt; alen; j++) {<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                final Object obj = axis.getObjectAbs(j);<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                PositionIterator pi = coord.getPositionIterator(i);<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                final int[] pos = pi.getPos();<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span><a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                pos[i] = j;<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                while (pi.hasNext()) {<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        coord.set(obj, pos);<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                }<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                        }<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                }<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span><a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                return result;<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>         * Generate an index dataset for given dataset where sub-datasets contain index values<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>         *<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>         * @return an index dataset<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>         */<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>        public static IntegerDataset indices(int... shape) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                // now create another dataset to plot against<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                final int rank = shape.length;<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                int[] nshape = new int[rank+1];<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                nshape[0] = rank;<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                        nshape[i+1] = shape[i];<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>                IntegerDataset index = new IntegerDataset(nshape);<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span><a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                if (rank == 1) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                        final int alen = shape[0];<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                        int[] pos = new int[2];<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                        for (int j = 0; j &lt; alen; j++) {<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                                pos[1] = j;<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                                index.set(j, pos);<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                        }<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                } else {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                        for (int i = 1; i &lt;= rank; i++) {<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                final int alen = nshape[i];<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                for (int j = 0; j &lt; alen; j++) {<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                        PositionIterator pi = index.getPositionIterator(0, i);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                        final int[] pos = pi.getPos();<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span><a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                        pos[0] = i-1;<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                        pos[i] = j;<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                        while (pi.hasNext()) {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                                index.set(j, pos);<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                        }<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                }<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                        }<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                }<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                return index;<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>        /**<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>         * Get the centroid value of a dataset, this function works out the centroid in every direction<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>         *<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>         * @param a<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>         *            the dataset to be analysed<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>         * @param bases the optional array of base coordinates to use as weights.<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>         * This defaults to the mid-point of indices<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>         * @return a double array containing the centroid for each dimension<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>         */<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>        public static double[] centroid(Dataset a, Dataset... bases) {<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                int rank = a.getRank();<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                if (bases.length &gt; 0 &amp;&amp; bases.length != rank) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                        throw new IllegalArgumentException("Number of bases must be zero or match rank of dataset");<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>                int[] shape = a.getShapeRef();<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                if (bases.length == rank) {<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                Dataset b = bases[i];<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                if (b.getRank() != 1 &amp;&amp; b.getSize() != shape[i]) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                        throw new IllegalArgumentException("A base does not have shape to match given dataset");<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                }<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                        }<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                }<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span><a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                double[] dc = new double[rank];<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                if (rank == 0)<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                        return dc;<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span><a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                final PositionIterator iter = new PositionIterator(shape);<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                final int[] pos = iter.getPos();<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span><a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>                double tsum = 0.0;<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                while (iter.hasNext()) {<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                        double val = a.getDouble(pos);<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                        tsum += val;<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                        for (int d = 0; d &lt; rank; d++) {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                Dataset b = bases.length == 0 ? null : bases[d];<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                if (b == null) {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                        dc[d] += (pos[d] + 0.5) * val;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                } else {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                        dc[d] += b.getElementDoubleAbs(pos[d]) * val;<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>                }<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span><a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                for (int d = 0; d &lt; rank; d++) {<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                        dc[d] /= tsum;<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>                return dc;<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>        }<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>         * Find linearly-interpolated crossing points where the given dataset crosses the given value<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>         *<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>         * @param d<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>         * @param value<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>         * @return list of interpolated indices<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>         */<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>        public static List&lt;Double&gt; crossings(Dataset d, double value) {<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                if (d.getRank() != 1) {<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                        utilsLogger.error("Only 1d datasets supported");<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                        throw new UnsupportedOperationException("Only 1d datasets supported");<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                }<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                List&lt;Double&gt; results = new ArrayList&lt;Double&gt;();<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span><a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                // run through all pairs of points on the line and see if value lies within<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                IndexIterator it = d.getIterator();<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                double y1, y2;<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span><a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                y2 = it.hasNext() ? d.getElementDoubleAbs(it.index) : 0;<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                double x = 1;<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                while (it.hasNext()) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                        y1 = y2;<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                        y2 = d.getElementDoubleAbs(it.index);<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                        // check if value lies within pair [y1, y2]<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                        if ((y1 &lt;= value &amp;&amp; value &lt; y2) || (y1 &gt; value &amp;&amp; y2 &lt;= value)) {<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                                final double f = (value - y2)/(y2 - y1); // negative distance from right to left<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                results.add(x + f);<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                        }<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                        x++;<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                }<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                if (y2 == value) { // add end point of it intersects<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                        results.add(x);<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>                return results;<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>        /**<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>         * Find x values of all the crossing points of the dataset with the given y value<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>         *<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>         * @param xAxis<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>         *            Dataset of the X axis that needs to be looked at<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>         * @param yAxis<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>         *            Dataset of the Y axis that needs to be looked at<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>         * @param yValue<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>         *            The y value the X values are required for<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>         * @return An list of doubles containing all the X coordinates of where the line crosses<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>         */<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>        public static List&lt;Double&gt; crossings(Dataset xAxis, Dataset yAxis, double yValue) {<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                if (xAxis.getSize() &gt; yAxis.getSize()) {<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>                        throw new IllegalArgumentException(<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                                        "Number of values of yAxis must as least be equal to the number of values of xAxis");<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>                List&lt;Double&gt; results = new ArrayList&lt;Double&gt;();<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span><a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                List&lt;Double&gt; indices = crossings(yAxis, yValue);<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span><a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                for (double xi : indices) {<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                        results.add(Maths.interpolate(xAxis, xi));<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                }<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                return results;<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>        /**<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>         * Function that uses the crossings function but prunes the result, so that multiple crossings within a<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>         * certain proportion of the overall range of the x values<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>         *<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>         * @param xAxis<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>         *            Dataset of the X axis<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>         * @param yAxis<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>         *            Dataset of the Y axis<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>         * @param yValue<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>         *            The y value the x values are required for<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>         * @param xRangeProportion<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>         *            The proportion of the overall x spread used to prune result<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>         * @return A list containing all the unique crossing points<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>         */<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>        public static List&lt;Double&gt; crossings(Dataset xAxis, Dataset yAxis, double yValue, double xRangeProportion) {<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                // get the values found<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                List&lt;Double&gt; vals = crossings(xAxis, yAxis, yValue);<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span><a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                // use the proportion to calculate the error spacing<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span>                double error = xRangeProportion * xAxis.peakToPeak().doubleValue();<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span><a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                int i = 0;<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                // now go through and check for groups of three crossings which are all<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                // within the boundaries<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                while (i &lt;= vals.size() - 3) {<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                        double v1 = Math.abs(vals.get(i) - vals.get(i + 2));<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                        if (v1 &lt; error) {<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                // these 3 points should be treated as one<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                // make the first point equal to the average of them all<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                vals.set(i + 2, ((vals.get(i) + vals.get(i + 1) + vals.get(i + 2)) / 3.0));<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                // remove the other offending points<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                vals.remove(i);<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                vals.remove(i);<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                        } else {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                i++;<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                        }<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>                // once the thinning process has been completed, return the pruned list<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                return vals;<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>        }<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span><a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>        // recursive function<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>        private static void setRow(Object row, Dataset a, int... pos) {<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                final int l = Array.getLength(row);<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                final int rank = pos.length;<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                final int[] npos = Arrays.copyOf(pos, rank+1);<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                Object r;<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                if (rank+1 &lt; a.getRank()) {<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                        for (int i = 0; i &lt; l; i++) {<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                                npos[rank] = i;<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                                r = Array.get(row, i);<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>                                setRow(r, a, npos);<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                        }<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                } else {<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>                        for (int i = 0; i &lt; l; i++) {<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                                npos[rank] = i;<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>                                r = a.getObject(npos);<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>                                Array.set(row, i, r);<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>        }<a name="line.1896"></a>
+<span class="sourceLineNo">1897</span><a name="line.1897"></a>
+<span class="sourceLineNo">1898</span>        /**<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>         * Create Java array (of arrays) from dataset<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>         * @param a dataset<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>         * @return Java array (of arrays...)<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span>         */<a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>        public static Object createJavaArray(Dataset a) {<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span>                if (a.getElementsPerItem() &gt; 1) {<a name="line.1904"></a>
+<span class="sourceLineNo">1905</span>                        a = createDatasetFromCompoundDataset((CompoundDataset) a, true);<a name="line.1905"></a>
+<span class="sourceLineNo">1906</span>                }<a name="line.1906"></a>
+<span class="sourceLineNo">1907</span>                Object matrix;<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span><a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>                int[] shape = a.getShapeRef();<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>                switch (a.getDType()) {<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span>                case Dataset.BOOL:<a name="line.1911"></a>
+<span class="sourceLineNo">1912</span>                        matrix = Array.newInstance(boolean.class, shape);<a name="line.1912"></a>
+<span class="sourceLineNo">1913</span>                        break;<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>                case Dataset.INT8:<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>                        matrix = Array.newInstance(byte.class, shape);<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>                        break;<a name="line.1916"></a>
+<span class="sourceLineNo">1917</span>                case Dataset.INT16:<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span>                        matrix = Array.newInstance(short.class, shape);<a name="line.1918"></a>
+<span class="sourceLineNo">1919</span>                        break;<a name="line.1919"></a>
+<span class="sourceLineNo">1920</span>                case Dataset.INT32:<a name="line.1920"></a>
+<span class="sourceLineNo">1921</span>                        matrix = Array.newInstance(int.class, shape);<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span>                        break;<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>                case Dataset.INT64:<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span>                        matrix = Array.newInstance(long.class, shape);<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span>                        break;<a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>                case Dataset.FLOAT32:<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>                        matrix = Array.newInstance(float.class, shape);<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>                        break;<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>                case Dataset.FLOAT64:<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>                        matrix = Array.newInstance(double.class, shape);<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>                        break;<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>                default:<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span>                        utilsLogger.error("Dataset type not supported");<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span>                        throw new IllegalArgumentException("Dataset type not supported");<a name="line.1934"></a>
+<span class="sourceLineNo">1935</span>                }<a name="line.1935"></a>
+<span class="sourceLineNo">1936</span><a name="line.1936"></a>
+<span class="sourceLineNo">1937</span>                // populate matrix<a name="line.1937"></a>
+<span class="sourceLineNo">1938</span>                setRow(matrix, a);<a name="line.1938"></a>
+<span class="sourceLineNo">1939</span>                return matrix;<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>        /**<a name="line.1942"></a>
+<span class="sourceLineNo">1943</span>         * Removes NaNs and infinities from floating point datasets.<a name="line.1943"></a>
+<span class="sourceLineNo">1944</span>         * All other dataset types are ignored.<a name="line.1944"></a>
+<span class="sourceLineNo">1945</span>         *<a name="line.1945"></a>
+<span class="sourceLineNo">1946</span>         * @param a dataset<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span>         * @param value replacement value<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span>         */<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span>        public static void removeNansAndInfinities(Dataset a, final Number value) {<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span>                if (a instanceof DoubleDataset) {<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span>                        final double dvalue = DTypeUtils.toReal(value);<a name="line.1951"></a>
+<span class="sourceLineNo">1952</span>                        final DoubleDataset set = (DoubleDataset) a;<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span>                        final IndexIterator it = set.getIterator();<a name="line.1953"></a>
+<span class="sourceLineNo">1954</span>                        final double[] data = set.getData();<a name="line.1954"></a>
+<span class="sourceLineNo">1955</span>                        while (it.hasNext()) {<a name="line.1955"></a>
+<span class="sourceLineNo">1956</span>                                double x = data[it.index];<a name="line.1956"></a>
+<span class="sourceLineNo">1957</span>                                if (Double.isNaN(x) || Double.isInfinite(x))<a name="line.1957"></a>
+<span class="sourceLineNo">1958</span>                                        data[it.index] = dvalue;<a name="line.1958"></a>
+<span class="sourceLineNo">1959</span>                        }<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span>                } else if (a instanceof FloatDataset) {<a name="line.1960"></a>
+<span class="sourceLineNo">1961</span>                        final float fvalue = (float) DTypeUtils.toReal(value);<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span>                        final FloatDataset set = (FloatDataset) a;<a name="line.1962"></a>
+<span class="sourceLineNo">1963</span>                        final IndexIterator it = set.getIterator();<a name="line.1963"></a>
+<span class="sourceLineNo">1964</span>                        final float[] data = set.getData();<a name="line.1964"></a>
+<span class="sourceLineNo">1965</span>                        while (it.hasNext()) {<a name="line.1965"></a>
+<span class="sourceLineNo">1966</span>                                float x = data[it.index];<a name="line.1966"></a>
+<span class="sourceLineNo">1967</span>                                if (Float.isNaN(x) || Float.isInfinite(x))<a name="line.1967"></a>
+<span class="sourceLineNo">1968</span>                                        data[it.index] = fvalue;<a name="line.1968"></a>
+<span class="sourceLineNo">1969</span>                        }<a name="line.1969"></a>
+<span class="sourceLineNo">1970</span>                } else if (a instanceof CompoundDoubleDataset) {<a name="line.1970"></a>
+<span class="sourceLineNo">1971</span>                        final double dvalue = DTypeUtils.toReal(value);<a name="line.1971"></a>
+<span class="sourceLineNo">1972</span>                        final CompoundDoubleDataset set = (CompoundDoubleDataset) a;<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span>                        final int is = set.getElementsPerItem();<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span>                        final IndexIterator it = set.getIterator();<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span>                        final double[] data = set.getData();<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span>                        while (it.hasNext()) {<a name="line.1976"></a>
+<span class="sourceLineNo">1977</span>                                for (int j = 0; j &lt; is; j++) {<a name="line.1977"></a>
+<span class="sourceLineNo">1978</span>                                        double x = data[it.index + j];<a name="line.1978"></a>
+<span class="sourceLineNo">1979</span>                                        if (Double.isNaN(x) || Double.isInfinite(x))<a name="line.1979"></a>
+<span class="sourceLineNo">1980</span>                                                data[it.index + j] = dvalue;<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>                } else if (a instanceof CompoundFloatDataset) {<a name="line.1983"></a>
+<span class="sourceLineNo">1984</span>                        final float fvalue = (float) DTypeUtils.toReal(value);<a name="line.1984"></a>
+<span class="sourceLineNo">1985</span>                        final CompoundFloatDataset set = (CompoundFloatDataset) a;<a name="line.1985"></a>
+<span class="sourceLineNo">1986</span>                        final int is = set.getElementsPerItem();<a name="line.1986"></a>
+<span class="sourceLineNo">1987</span>                        final IndexIterator it = set.getIterator();<a name="line.1987"></a>
+<span class="sourceLineNo">1988</span>                        final float[] data = set.getData();<a name="line.1988"></a>
+<span class="sourceLineNo">1989</span>                        while (it.hasNext()) {<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span>                                for (int j = 0; j &lt; is; j++) {<a name="line.1990"></a>
+<span class="sourceLineNo">1991</span>                                        float x = data[it.index + j];<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span>                                        if (Float.isNaN(x) || Float.isInfinite(x))<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span>                                                data[it.index + j] = fvalue;<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>                }<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>         * Make floating point datasets contain only finite values. Infinities and NaNs are replaced<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span>         * by +/- MAX_VALUE and 0, respectively.<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span>         * All other dataset types are ignored.<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>         *<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>         * @param a dataset<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span>         */<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>        public static void makeFinite(Dataset a) {<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>                if (a instanceof DoubleDataset) {<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span>                        final DoubleDataset set = (DoubleDataset) a;<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>                        final IndexIterator it = set.getIterator();<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>                        final double[] data = set.getData();<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span>                        while (it.hasNext()) {<a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>                                final double x = data[it.index];<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>                                if (Double.isNaN(x))<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>                                        data[it.index] = 0;<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>                                else if (Double.isInfinite(x))<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>                                        data[it.index] = x &gt; 0 ? Double.MAX_VALUE : -Double.MAX_VALUE;<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span>                        }<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>                } else if (a instanceof FloatDataset) {<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span>                        final FloatDataset set = (FloatDataset) a;<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>                        final IndexIterator it = set.getIterator();<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>                        final float[] data = set.getData();<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>                        while (it.hasNext()) {<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>                                final float x = data[it.index];<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>                                if (Float.isNaN(x))<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span>                                        data[it.index] = 0;<a name="line.2025"></a>
+<span class="sourceLineNo">2026</span>                                else if (Float.isInfinite(x))<a name="line.2026"></a>
+<span class="sourceLineNo">2027</span>                                        data[it.index] = x &gt; 0 ? Float.MAX_VALUE : -Float.MAX_VALUE;<a name="line.2027"></a>
+<span class="sourceLineNo">2028</span>                        }<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span>                } else if (a instanceof CompoundDoubleDataset) {<a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>                        final CompoundDoubleDataset set = (CompoundDoubleDataset) a;<a name="line.2030"></a>
+<span class="sourceLineNo">2031</span>                        final int is = set.getElementsPerItem();<a name="line.2031"></a>
+<span class="sourceLineNo">2032</span>                        final IndexIterator it = set.getIterator();<a name="line.2032"></a>
+<span class="sourceLineNo">2033</span>                        final double[] data = set.getData();<a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>                        while (it.hasNext()) {<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>                                for (int j = 0; j &lt; is; j++) {<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span>                                        final double x = data[it.index + j];<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>                                        if (Double.isNaN(x))<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>                                                data[it.index + j] = 0;<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span>                                        else if (Double.isInfinite(x))<a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>                                                data[it.index + j] = x &gt; 0 ? Double.MAX_VALUE : -Double.MAX_VALUE;<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>                                }<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>                        }<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>                } else if (a instanceof CompoundFloatDataset) {<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>                        final CompoundFloatDataset set = (CompoundFloatDataset) a;<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span>                        final int is = set.getElementsPerItem();<a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>                        final IndexIterator it = set.getIterator();<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>                        final float[] data = set.getData();<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>                        while (it.hasNext()) {<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>                                for (int j = 0; j &lt; is; j++) {<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>                                        final float x = data[it.index + j];<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span>                                        if (Float.isNaN(x))<a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>                                                data[it.index + j] = 0;<a name="line.2052"></a>
+<span class="sourceLineNo">2053</span>                                        else if (Float.isInfinite(x))<a name="line.2053"></a>
+<span class="sourceLineNo">2054</span>                                                data[it.index + j] = x &gt; 0 ? Float.MAX_VALUE : -Float.MAX_VALUE;<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>        }<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span><a name="line.2059"></a>
+<span class="sourceLineNo">2060</span>        /**<a name="line.2060"></a>
+<span class="sourceLineNo">2061</span>         * Find absolute index of first value in dataset that is equal to given number<a name="line.2061"></a>
+<span class="sourceLineNo">2062</span>         * @param a<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span>         * @param n<a name="line.2063"></a>
+<span class="sourceLineNo">2064</span>         * @return absolute index (if greater than a.getSize() then no value found)<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>         */<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>        public static int findIndexEqualTo(final Dataset a, final double n) {<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>                IndexIterator iter = a.getIterator();<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>                while (iter.hasNext()) {<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span>                        if (a.getElementDoubleAbs(iter.index) == n)<a name="line.2069"></a>
+<span class="sourceLineNo">2070</span>                                break;<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span>                }<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span><a name="line.2072"></a>
+<span class="sourceLineNo">2073</span>                return iter.index;<a name="line.2073"></a>
+<span class="sourceLineNo">2074</span>        }<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>         * Find absolute index of first value in dataset that is greater than given number<a name="line.2077"></a>
+<span class="sourceLineNo">2078</span>         * @param a<a name="line.2078"></a>
+<span class="sourceLineNo">2079</span>         * @param n<a name="line.2079"></a>
+<span class="sourceLineNo">2080</span>         * @return absolute index (if greater than a.getSize() then no value found)<a name="line.2080"></a>
+<span class="sourceLineNo">2081</span>         */<a name="line.2081"></a>
+<span class="sourceLineNo">2082</span>        public static int findIndexGreaterThan(final Dataset a, final double n) {<a name="line.2082"></a>
+<span class="sourceLineNo">2083</span>                IndexIterator iter = a.getIterator();<a name="line.2083"></a>
+<span class="sourceLineNo">2084</span>                while (iter.hasNext()) {<a name="line.2084"></a>
+<span class="sourceLineNo">2085</span>                        if (a.getElementDoubleAbs(iter.index) &gt; n)<a name="line.2085"></a>
+<span class="sourceLineNo">2086</span>                                break;<a name="line.2086"></a>
+<span class="sourceLineNo">2087</span>                }<a name="line.2087"></a>
+<span class="sourceLineNo">2088</span><a name="line.2088"></a>
+<span class="sourceLineNo">2089</span>                return iter.index;<a name="line.2089"></a>
+<span class="sourceLineNo">2090</span>        }<a name="line.2090"></a>
+<span class="sourceLineNo">2091</span><a name="line.2091"></a>
+<span class="sourceLineNo">2092</span>        /**<a name="line.2092"></a>
+<span class="sourceLineNo">2093</span>         * Find absolute index of first value in dataset that is greater than or equal to given number<a name="line.2093"></a>
+<span class="sourceLineNo">2094</span>         * @param a<a name="line.2094"></a>
+<span class="sourceLineNo">2095</span>         * @param n<a name="line.2095"></a>
+<span class="sourceLineNo">2096</span>         * @return absolute index (if greater than a.getSize() then no value found)<a name="line.2096"></a>
+<span class="sourceLineNo">2097</span>         */<a name="line.2097"></a>
+<span class="sourceLineNo">2098</span>        public static int findIndexGreaterThanOrEqualTo(final Dataset a, final double n) {<a name="line.2098"></a>
+<span class="sourceLineNo">2099</span>                IndexIterator iter = a.getIterator();<a name="line.2099"></a>
+<span class="sourceLineNo">2100</span>                while (iter.hasNext()) {<a name="line.2100"></a>
+<span class="sourceLineNo">2101</span>                        if (a.getElementDoubleAbs(iter.index) &gt;= n)<a name="line.2101"></a>
+<span class="sourceLineNo">2102</span>                                break;<a name="line.2102"></a>
+<span class="sourceLineNo">2103</span>                }<a name="line.2103"></a>
+<span class="sourceLineNo">2104</span><a name="line.2104"></a>
+<span class="sourceLineNo">2105</span>                return iter.index;<a name="line.2105"></a>
+<span class="sourceLineNo">2106</span>        }<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>         * Find absolute index of first value in dataset that is less than given number<a name="line.2109"></a>
+<span class="sourceLineNo">2110</span>         * @param a<a name="line.2110"></a>
+<span class="sourceLineNo">2111</span>         * @param n<a name="line.2111"></a>
+<span class="sourceLineNo">2112</span>         * @return absolute index (if greater than a.getSize() then no value found)<a name="line.2112"></a>
+<span class="sourceLineNo">2113</span>         */<a name="line.2113"></a>
+<span class="sourceLineNo">2114</span>        public static int findIndexLessThan(final Dataset a, final double n) {<a name="line.2114"></a>
+<span class="sourceLineNo">2115</span>                IndexIterator iter = a.getIterator();<a name="line.2115"></a>
+<span class="sourceLineNo">2116</span>                while (iter.hasNext()) {<a name="line.2116"></a>
+<span class="sourceLineNo">2117</span>                        if (a.getElementDoubleAbs(iter.index) &lt; n)<a name="line.2117"></a>
+<span class="sourceLineNo">2118</span>                                break;<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 iter.index;<a name="line.2121"></a>
+<span class="sourceLineNo">2122</span>        }<a name="line.2122"></a>
+<span class="sourceLineNo">2123</span><a name="line.2123"></a>
+<span class="sourceLineNo">2124</span>        /**<a name="line.2124"></a>
+<span class="sourceLineNo">2125</span>         * Find absolute index of first value in dataset that is less than or equal to given number<a name="line.2125"></a>
+<span class="sourceLineNo">2126</span>         * @param a<a name="line.2126"></a>
+<span class="sourceLineNo">2127</span>         * @param n<a name="line.2127"></a>
+<span class="sourceLineNo">2128</span>         * @return absolute index (if greater than a.getSize() then no value found)<a name="line.2128"></a>
+<span class="sourceLineNo">2129</span>         */<a name="line.2129"></a>
+<span class="sourceLineNo">2130</span>        public static int findIndexLessThanOrEqualTo(final Dataset a, final double n) {<a name="line.2130"></a>
+<span class="sourceLineNo">2131</span>                IndexIterator iter = a.getIterator();<a name="line.2131"></a>
+<span class="sourceLineNo">2132</span>                while (iter.hasNext()) {<a name="line.2132"></a>
+<span class="sourceLineNo">2133</span>                        if (a.getElementDoubleAbs(iter.index) &lt;= n)<a name="line.2133"></a>
+<span class="sourceLineNo">2134</span>                                break;<a name="line.2134"></a>
+<span class="sourceLineNo">2135</span>                }<a name="line.2135"></a>
+<span class="sourceLineNo">2136</span><a name="line.2136"></a>
+<span class="sourceLineNo">2137</span>                return iter.index;<a name="line.2137"></a>
+<span class="sourceLineNo">2138</span>        }<a name="line.2138"></a>
+<span class="sourceLineNo">2139</span><a name="line.2139"></a>
+<span class="sourceLineNo">2140</span>        /**<a name="line.2140"></a>
+<span class="sourceLineNo">2141</span>         * Find first occurrences in one dataset of values given in another sorted dataset<a name="line.2141"></a>
+<span class="sourceLineNo">2142</span>         * @param a<a name="line.2142"></a>
+<span class="sourceLineNo">2143</span>         * @param values sorted 1D dataset of values to find<a name="line.2143"></a>
+<span class="sourceLineNo">2144</span>         * @return absolute indexes of those first occurrences (-1 is used to indicate value not found)<a name="line.2144"></a>
+<span class="sourceLineNo">2145</span>         */<a name="line.2145"></a>
+<span class="sourceLineNo">2146</span>        public static IntegerDataset findFirstOccurrences(final Dataset a, final Dataset values) {<a name="line.2146"></a>
+<span class="sourceLineNo">2147</span>                if (values.getRank() != 1) {<a name="line.2147"></a>
+<span class="sourceLineNo">2148</span>                        throw new IllegalArgumentException("Values dataset must be 1D");<a name="line.2148"></a>
+<span class="sourceLineNo">2149</span>                }<a name="line.2149"></a>
+<span class="sourceLineNo">2150</span>                IntegerDataset indexes = new IntegerDataset(values.getSize());<a name="line.2150"></a>
+<span class="sourceLineNo">2151</span>                indexes.fill(-1);<a name="line.2151"></a>
+<span class="sourceLineNo">2152</span><a name="line.2152"></a>
+<span class="sourceLineNo">2153</span>                IndexIterator it = a.getIterator();<a name="line.2153"></a>
+<span class="sourceLineNo">2154</span>                final int n = values.getSize();<a name="line.2154"></a>
+<span class="sourceLineNo">2155</span>                if (values instanceof LongDataset) {<a name="line.2155"></a>
+<span class="sourceLineNo">2156</span>                        while (it.hasNext()) {<a name="line.2156"></a>
+<span class="sourceLineNo">2157</span>                                long x = a.getElementLongAbs(it.index);<a name="line.2157"></a>
+<span class="sourceLineNo">2158</span><a name="line.2158"></a>
+<span class="sourceLineNo">2159</span>                                int l = 0; // binary search to find value in sorted dataset<a name="line.2159"></a>
+<span class="sourceLineNo">2160</span>                                long vl = values.getLong(l);<a name="line.2160"></a>
+<span class="sourceLineNo">2161</span>                                if (x &lt;= vl) {<a name="line.2161"></a>
+<span class="sourceLineNo">2162</span>                                        if (x == vl &amp;&amp; indexes.getAbs(l) &lt; 0)<a name="line.2162"></a>
+<span class="sourceLineNo">2163</span>                                                indexes.setAbs(l, it.index);<a name="line.2163"></a>
+<span class="sourceLineNo">2164</span>                                        continue;<a name="line.2164"></a>
+<span class="sourceLineNo">2165</span>                                }<a name="line.2165"></a>
+<span class="sourceLineNo">2166</span>                                int h = n - 1;<a name="line.2166"></a>
+<span class="sourceLineNo">2167</span>                                long vh = values.getLong(h);<a name="line.2167"></a>
+<span class="sourceLineNo">2168</span>                                if (x &gt;= vh) {<a name="line.2168"></a>
+<span class="sourceLineNo">2169</span>                                        if (x == vh &amp;&amp; indexes.getAbs(h) &lt; 0)<a name="line.2169"></a>
+<span class="sourceLineNo">2170</span>                                                indexes.setAbs(h, it.index);<a name="line.2170"></a>
+<span class="sourceLineNo">2171</span>                                        continue;<a name="line.2171"></a>
+<span class="sourceLineNo">2172</span>                                }<a name="line.2172"></a>
+<span class="sourceLineNo">2173</span>                                while (h - l &gt; 1) {<a name="line.2173"></a>
+<span class="sourceLineNo">2174</span>                                        int m = (l + h) / 2;<a name="line.2174"></a>
+<span class="sourceLineNo">2175</span>                                        long vm = values.getLong(m);<a name="line.2175"></a>
+<span class="sourceLineNo">2176</span>                                        if (x &lt; vm) {<a name="line.2176"></a>
+<span class="sourceLineNo">2177</span>                                                h = m;<a name="line.2177"></a>
+<span class="sourceLineNo">2178</span>                                        } else if (x &gt; vm) {<a name="line.2178"></a>
+<span class="sourceLineNo">2179</span>                                                l = m;<a name="line.2179"></a>
+<span class="sourceLineNo">2180</span>                                        } else {<a name="line.2180"></a>
+<span class="sourceLineNo">2181</span>                                                if (indexes.getAbs(m) &lt; 0)<a name="line.2181"></a>
+<span class="sourceLineNo">2182</span>                                                        indexes.setAbs(m, it.index);<a name="line.2182"></a>
+<span class="sourceLineNo">2183</span>                                                break;<a name="line.2183"></a>
+<span class="sourceLineNo">2184</span>                                        }<a name="line.2184"></a>
+<span class="sourceLineNo">2185</span>                                }<a name="line.2185"></a>
+<span class="sourceLineNo">2186</span>                        }<a name="line.2186"></a>
+<span class="sourceLineNo">2187</span>                } else {<a name="line.2187"></a>
+<span class="sourceLineNo">2188</span>                        while (it.hasNext()) {<a name="line.2188"></a>
+<span class="sourceLineNo">2189</span>                                double x = a.getElementDoubleAbs(it.index);<a name="line.2189"></a>
+<span class="sourceLineNo">2190</span><a name="line.2190"></a>
+<span class="sourceLineNo">2191</span>                                int l = 0; // binary search to find value in sorted dataset<a name="line.2191"></a>
+<span class="sourceLineNo">2192</span>                                double vl = values.getDouble(l);<a name="line.2192"></a>
+<span class="sourceLineNo">2193</span>                                if (x &lt;= vl) {<a name="line.2193"></a>
+<span class="sourceLineNo">2194</span>                                        if (x == vl &amp;&amp; indexes.getAbs(l) &lt; 0)<a name="line.2194"></a>
+<span class="sourceLineNo">2195</span>                                                indexes.setAbs(l, it.index);<a name="line.2195"></a>
+<span class="sourceLineNo">2196</span>                                        continue;<a name="line.2196"></a>
+<span class="sourceLineNo">2197</span>                                }<a name="line.2197"></a>
+<span class="sourceLineNo">2198</span>                                int h = n - 1;<a name="line.2198"></a>
+<span class="sourceLineNo">2199</span>                                double vh = values.getDouble(h);<a name="line.2199"></a>
+<span class="sourceLineNo">2200</span>                                if (x &gt;= vh) {<a name="line.2200"></a>
+<span class="sourceLineNo">2201</span>                                        if (x == vh &amp;&amp; indexes.getAbs(h) &lt; 0)<a name="line.2201"></a>
+<span class="sourceLineNo">2202</span>                                                indexes.setAbs(h, it.index);<a name="line.2202"></a>
+<span class="sourceLineNo">2203</span>                                        continue;<a name="line.2203"></a>
+<span class="sourceLineNo">2204</span>                                }<a name="line.2204"></a>
+<span class="sourceLineNo">2205</span>                                while (h - l &gt; 1) {<a name="line.2205"></a>
+<span class="sourceLineNo">2206</span>                                        int m = (l + h) / 2;<a name="line.2206"></a>
+<span class="sourceLineNo">2207</span>                                        double vm = values.getDouble(m);<a name="line.2207"></a>
+<span class="sourceLineNo">2208</span>                                        if (x &lt; vm) {<a name="line.2208"></a>
+<span class="sourceLineNo">2209</span>                                                h = m;<a name="line.2209"></a>
+<span class="sourceLineNo">2210</span>                                        } else if (x &gt; vm) {<a name="line.2210"></a>
+<span class="sourceLineNo">2211</span>                                                l = m;<a name="line.2211"></a>
+<span class="sourceLineNo">2212</span>                                        } else {<a name="line.2212"></a>
+<span class="sourceLineNo">2213</span>                                                if (indexes.getAbs(m) &lt; 0)<a name="line.2213"></a>
+<span class="sourceLineNo">2214</span>                                                        indexes.setAbs(m, it.index);<a name="line.2214"></a>
+<span class="sourceLineNo">2215</span>                                                break;<a name="line.2215"></a>
+<span class="sourceLineNo">2216</span>                                        }<a name="line.2216"></a>
+<span class="sourceLineNo">2217</span>                                }<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>                return indexes;<a name="line.2220"></a>
+<span class="sourceLineNo">2221</span>        }<a name="line.2221"></a>
+<span class="sourceLineNo">2222</span><a name="line.2222"></a>
+<span class="sourceLineNo">2223</span>        /**<a name="line.2223"></a>
+<span class="sourceLineNo">2224</span>         * Find indexes in sorted dataset of values for each value in other dataset<a name="line.2224"></a>
+<span class="sourceLineNo">2225</span>         * @param a<a name="line.2225"></a>
+<span class="sourceLineNo">2226</span>         * @param values sorted 1D dataset of values to find<a name="line.2226"></a>
+<span class="sourceLineNo">2227</span>         * @return absolute indexes of values (-1 is used to indicate value not found)<a name="line.2227"></a>
+<span class="sourceLineNo">2228</span>         */<a name="line.2228"></a>
+<span class="sourceLineNo">2229</span>        public static IntegerDataset findIndexesForValues(final Dataset a, final Dataset values) {<a name="line.2229"></a>
+<span class="sourceLineNo">2230</span>                if (values.getRank() != 1) {<a name="line.2230"></a>
+<span class="sourceLineNo">2231</span>                        throw new IllegalArgumentException("Values dataset must be 1D");<a name="line.2231"></a>
+<span class="sourceLineNo">2232</span>                }<a name="line.2232"></a>
+<span class="sourceLineNo">2233</span>                IntegerDataset indexes = new IntegerDataset(a.getSize());<a name="line.2233"></a>
+<span class="sourceLineNo">2234</span>                indexes.fill(-1);<a name="line.2234"></a>
+<span class="sourceLineNo">2235</span><a name="line.2235"></a>
+<span class="sourceLineNo">2236</span>                IndexIterator it = a.getIterator();<a name="line.2236"></a>
+<span class="sourceLineNo">2237</span>                int i = -1;<a name="line.2237"></a>
+<span class="sourceLineNo">2238</span>                final int n = values.getSize();<a name="line.2238"></a>
+<span class="sourceLineNo">2239</span>                if (values instanceof LongDataset) {<a name="line.2239"></a>
+<span class="sourceLineNo">2240</span>                        while (it.hasNext()) {<a name="line.2240"></a>
+<span class="sourceLineNo">2241</span>                                i++;<a name="line.2241"></a>
+<span class="sourceLineNo">2242</span>                                long x = a.getElementLongAbs(it.index);<a name="line.2242"></a>
+<span class="sourceLineNo">2243</span><a name="line.2243"></a>
+<span class="sourceLineNo">2244</span>                                int l = 0; // binary search to find value in sorted dataset<a name="line.2244"></a>
+<span class="sourceLineNo">2245</span>                                long vl = values.getLong(l);<a name="line.2245"></a>
+<span class="sourceLineNo">2246</span>                                if (x &lt;= vl) {<a name="line.2246"></a>
+<span class="sourceLineNo">2247</span>                                        if (x == vl)<a name="line.2247"></a>
+<span class="sourceLineNo">2248</span>                                                indexes.setAbs(i, l);<a name="line.2248"></a>
+<span class="sourceLineNo">2249</span>                                        continue;<a name="line.2249"></a>
+<span class="sourceLineNo">2250</span>                                }<a name="line.2250"></a>
+<span class="sourceLineNo">2251</span>                                int h = n - 1;<a name="line.2251"></a>
+<span class="sourceLineNo">2252</span>                                long vh = values.getLong(h);<a name="line.2252"></a>
+<span class="sourceLineNo">2253</span>                                if (x &gt;= vh) {<a name="line.2253"></a>
+<span class="sourceLineNo">2254</span>                                        if (x == vh)<a name="line.2254"></a>
+<span class="sourceLineNo">2255</span>                                                indexes.setAbs(i, h);<a name="line.2255"></a>
+<span class="sourceLineNo">2256</span>                                        continue;<a name="line.2256"></a>
+<span class="sourceLineNo">2257</span>                                }<a name="line.2257"></a>
+<span class="sourceLineNo">2258</span>                                while (h - l &gt; 1) {<a name="line.2258"></a>
+<span class="sourceLineNo">2259</span>                                        int m = (l + h) / 2;<a name="line.2259"></a>
+<span class="sourceLineNo">2260</span>                                        long vm = values.getLong(m);<a name="line.2260"></a>
+<span class="sourceLineNo">2261</span>                                        if (x &lt; vm) {<a name="line.2261"></a>
+<span class="sourceLineNo">2262</span>                                                h = m;<a name="line.2262"></a>
+<span class="sourceLineNo">2263</span>                                        } else if (x &gt; vm) {<a name="line.2263"></a>
+<span class="sourceLineNo">2264</span>                                                l = m;<a name="line.2264"></a>
+<span class="sourceLineNo">2265</span>                                        } else {<a name="line.2265"></a>
+<span class="sourceLineNo">2266</span>                                                indexes.setAbs(i, m);<a name="line.2266"></a>
+<span class="sourceLineNo">2267</span>                                                break;<a name="line.2267"></a>
+<span class="sourceLineNo">2268</span>                                        }<a name="line.2268"></a>
+<span class="sourceLineNo">2269</span>                                }<a name="line.2269"></a>
+<span class="sourceLineNo">2270</span>                        }<a name="line.2270"></a>
+<span class="sourceLineNo">2271</span>                } else {<a name="line.2271"></a>
+<span class="sourceLineNo">2272</span>                        while (it.hasNext()) {<a name="line.2272"></a>
+<span class="sourceLineNo">2273</span>                                i++;<a name="line.2273"></a>
+<span class="sourceLineNo">2274</span>                                double x = a.getElementDoubleAbs(it.index);<a name="line.2274"></a>
+<span class="sourceLineNo">2275</span><a name="line.2275"></a>
+<span class="sourceLineNo">2276</span>                                int l = 0; // binary search to find value in sorted dataset<a name="line.2276"></a>
+<span class="sourceLineNo">2277</span>                                double vl = values.getDouble(l);<a name="line.2277"></a>
+<span class="sourceLineNo">2278</span>                                if (x &lt;= vl) {<a name="line.2278"></a>
+<span class="sourceLineNo">2279</span>                                        if (x == vl)<a name="line.2279"></a>
+<span class="sourceLineNo">2280</span>                                                indexes.setAbs(i, l);<a name="line.2280"></a>
+<span class="sourceLineNo">2281</span>                                        continue;<a name="line.2281"></a>
+<span class="sourceLineNo">2282</span>                                }<a name="line.2282"></a>
+<span class="sourceLineNo">2283</span>                                int h = n - 1;<a name="line.2283"></a>
+<span class="sourceLineNo">2284</span>                                double vh = values.getDouble(h);<a name="line.2284"></a>
+<span class="sourceLineNo">2285</span>                                if (x &gt;= vh) {<a name="line.2285"></a>
+<span class="sourceLineNo">2286</span>                                        if (x == vh)<a name="line.2286"></a>
+<span class="sourceLineNo">2287</span>                                                indexes.setAbs(i, h);<a name="line.2287"></a>
+<span class="sourceLineNo">2288</span>                                        continue;<a name="line.2288"></a>
+<span class="sourceLineNo">2289</span>                                }<a name="line.2289"></a>
+<span class="sourceLineNo">2290</span>                                while (h - l &gt; 1) {<a name="line.2290"></a>
+<span class="sourceLineNo">2291</span>                                        int m = (l + h) / 2;<a name="line.2291"></a>
+<span class="sourceLineNo">2292</span>                                        double vm = values.getDouble(m);<a name="line.2292"></a>
+<span class="sourceLineNo">2293</span>                                        if (x &lt; vm) {<a name="line.2293"></a>
+<span class="sourceLineNo">2294</span>                                                h = m;<a name="line.2294"></a>
+<span class="sourceLineNo">2295</span>                                        } else if (x &gt; vm) {<a name="line.2295"></a>
+<span class="sourceLineNo">2296</span>                                                l = m;<a name="line.2296"></a>
+<span class="sourceLineNo">2297</span>                                        } else {<a name="line.2297"></a>
+<span class="sourceLineNo">2298</span>                                                indexes.setAbs(i, m);<a name="line.2298"></a>
+<span class="sourceLineNo">2299</span>                                                break;<a name="line.2299"></a>
+<span class="sourceLineNo">2300</span>                                        }<a name="line.2300"></a>
+<span class="sourceLineNo">2301</span>                                }<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><a name="line.2304"></a>
+<span class="sourceLineNo">2305</span>                return indexes;<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>        /**<a name="line.2308"></a>
+<span class="sourceLineNo">2309</span>         * Roll items over given axis by given amount<a name="line.2309"></a>
+<span class="sourceLineNo">2310</span>         * @param a<a name="line.2310"></a>
+<span class="sourceLineNo">2311</span>         * @param shift<a name="line.2311"></a>
+<span class="sourceLineNo">2312</span>         * @param axis if null, then roll flattened dataset<a name="line.2312"></a>
+<span class="sourceLineNo">2313</span>         * @return rolled dataset<a name="line.2313"></a>
+<span class="sourceLineNo">2314</span>         */<a name="line.2314"></a>
+<span class="sourceLineNo">2315</span>        public static &lt;T extends Dataset&gt; T roll(final T a, final int shift, Integer axis) {<a name="line.2315"></a>
+<span class="sourceLineNo">2316</span>                Dataset r = DatasetFactory.zeros(a);<a name="line.2316"></a>
+<span class="sourceLineNo">2317</span>                int is = a.getElementsPerItem();<a name="line.2317"></a>
+<span class="sourceLineNo">2318</span>                if (axis == null) {<a name="line.2318"></a>
+<span class="sourceLineNo">2319</span>                        IndexIterator it = a.getIterator();<a name="line.2319"></a>
+<span class="sourceLineNo">2320</span>                        int s = r.getSize();<a name="line.2320"></a>
+<span class="sourceLineNo">2321</span>                        int i = shift % s;<a name="line.2321"></a>
+<span class="sourceLineNo">2322</span>                        if (i &lt; 0)<a name="line.2322"></a>
+<span class="sourceLineNo">2323</span>                                i += s;<a name="line.2323"></a>
+<span class="sourceLineNo">2324</span>                        while (it.hasNext()) {<a name="line.2324"></a>
+<span class="sourceLineNo">2325</span>                                r.setObjectAbs(i, a.getObjectAbs(it.index));<a name="line.2325"></a>
+<span class="sourceLineNo">2326</span>                                i += is;<a name="line.2326"></a>
+<span class="sourceLineNo">2327</span>                                if (i &gt;= s) {<a name="line.2327"></a>
+<span class="sourceLineNo">2328</span>                                        i %= s;<a name="line.2328"></a>
+<span class="sourceLineNo">2329</span>                                }<a name="line.2329"></a>
+<span class="sourceLineNo">2330</span>                        }<a name="line.2330"></a>
+<span class="sourceLineNo">2331</span>                } else {<a name="line.2331"></a>
+<span class="sourceLineNo">2332</span>                        axis = a.checkAxis(axis);<a name="line.2332"></a>
+<span class="sourceLineNo">2333</span>                        PositionIterator pi = a.getPositionIterator(axis);<a name="line.2333"></a>
+<span class="sourceLineNo">2334</span>                        int s = a.getShapeRef()[axis];<a name="line.2334"></a>
+<span class="sourceLineNo">2335</span>                        Dataset u = DatasetFactory.zeros(is, a.getClass(), new int[] {s});<a name="line.2335"></a>
+<span class="sourceLineNo">2336</span>                        Dataset v = DatasetFactory.zeros(u);<a name="line.2336"></a>
+<span class="sourceLineNo">2337</span>                        int[] pos = pi.getPos();<a name="line.2337"></a>
+<span class="sourceLineNo">2338</span>                        boolean[] hit = pi.getOmit();<a name="line.2338"></a>
+<span class="sourceLineNo">2339</span>                        while (pi.hasNext()) {<a name="line.2339"></a>
+<span class="sourceLineNo">2340</span>                                a.copyItemsFromAxes(pos, hit, u);<a name="line.2340"></a>
+<span class="sourceLineNo">2341</span>                                int i = shift % s;<a name="line.2341"></a>
+<span class="sourceLineNo">2342</span>                                if (i &lt; 0)<a name="line.2342"></a>
+<span class="sourceLineNo">2343</span>                                        i += s;<a name="line.2343"></a>
+<span class="sourceLineNo">2344</span>                                for (int j = 0; j &lt; s; j++) {<a name="line.2344"></a>
+<span class="sourceLineNo">2345</span>                                        v.setObjectAbs(i, u.getObjectAbs(j*is));<a name="line.2345"></a>
+<span class="sourceLineNo">2346</span>                                        i += is;<a name="line.2346"></a>
+<span class="sourceLineNo">2347</span>                                        if (i &gt;= s) {<a name="line.2347"></a>
+<span class="sourceLineNo">2348</span>                                                i %= s;<a name="line.2348"></a>
+<span class="sourceLineNo">2349</span>                                        }<a name="line.2349"></a>
+<span class="sourceLineNo">2350</span>                                }<a name="line.2350"></a>
+<span class="sourceLineNo">2351</span>                                r.setItemsOnAxes(pos, hit, v.getBuffer());<a name="line.2351"></a>
+<span class="sourceLineNo">2352</span>                        }<a name="line.2352"></a>
+<span class="sourceLineNo">2353</span>                }<a name="line.2353"></a>
+<span class="sourceLineNo">2354</span>                return (T) r;<a name="line.2354"></a>
+<span class="sourceLineNo">2355</span>        }<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>         * Roll the specified axis backwards until it lies in given position<a name="line.2358"></a>
+<span class="sourceLineNo">2359</span>         * @param a<a name="line.2359"></a>
+<span class="sourceLineNo">2360</span>         * @param axis The rolled axis (index in shape array). Other axes are left unchanged in relative positions<a name="line.2360"></a>
+<span class="sourceLineNo">2361</span>         * @param start The position with it right of the destination of the rolled axis<a name="line.2361"></a>
+<span class="sourceLineNo">2362</span>         * @return dataset with rolled axis<a name="line.2362"></a>
+<span class="sourceLineNo">2363</span>         */<a name="line.2363"></a>
+<span class="sourceLineNo">2364</span>        public static &lt;T extends Dataset&gt; T rollAxis(final T a, int axis, int start) {<a name="line.2364"></a>
+<span class="sourceLineNo">2365</span>                int r = a.getRank();<a name="line.2365"></a>
+<span class="sourceLineNo">2366</span>                axis = a.checkAxis(axis);<a name="line.2366"></a>
+<span class="sourceLineNo">2367</span>                if (start &lt; 0)<a name="line.2367"></a>
+<span class="sourceLineNo">2368</span>                        start += r;<a name="line.2368"></a>
+<span class="sourceLineNo">2369</span>                if (start &lt; 0 || start &gt; r) {<a name="line.2369"></a>
+<span class="sourceLineNo">2370</span>                        throw new IllegalArgumentException("Start is out of range: it should be &gt;= 0 and &lt;= " + r);<a name="line.2370"></a>
+<span class="sourceLineNo">2371</span>                }<a name="line.2371"></a>
+<span class="sourceLineNo">2372</span>                if (axis &lt; start)<a name="line.2372"></a>
+<span class="sourceLineNo">2373</span>                        start--;<a name="line.2373"></a>
+<span class="sourceLineNo">2374</span><a name="line.2374"></a>
+<span class="sourceLineNo">2375</span>                if (axis == start)<a name="line.2375"></a>
+<span class="sourceLineNo">2376</span>                        return a;<a name="line.2376"></a>
+<span class="sourceLineNo">2377</span><a name="line.2377"></a>
+<span class="sourceLineNo">2378</span>                ArrayList&lt;Integer&gt; axes = new ArrayList&lt;Integer&gt;();<a name="line.2378"></a>
+<span class="sourceLineNo">2379</span>                for (int i = 0; i &lt; r; i++) {<a name="line.2379"></a>
+<span class="sourceLineNo">2380</span>                        if (i != axis) {<a name="line.2380"></a>
+<span class="sourceLineNo">2381</span>                                axes.add(i);<a name="line.2381"></a>
+<span class="sourceLineNo">2382</span>                        }<a name="line.2382"></a>
+<span class="sourceLineNo">2383</span>                }<a name="line.2383"></a>
+<span class="sourceLineNo">2384</span>                axes.add(start, axis);<a name="line.2384"></a>
+<span class="sourceLineNo">2385</span>                int[] aa = new int[r];<a name="line.2385"></a>
+<span class="sourceLineNo">2386</span>                for (int i = 0; i &lt; r; i++) {<a name="line.2386"></a>
+<span class="sourceLineNo">2387</span>                        aa[i] = axes.get(i);<a name="line.2387"></a>
+<span class="sourceLineNo">2388</span>                }<a name="line.2388"></a>
+<span class="sourceLineNo">2389</span>                return (T) a.getTransposedView(aa);<a name="line.2389"></a>
+<span class="sourceLineNo">2390</span>        }<a name="line.2390"></a>
+<span class="sourceLineNo">2391</span><a name="line.2391"></a>
+<span class="sourceLineNo">2392</span>        private static SliceND createFlippedSlice(final Dataset a, int axis) {<a name="line.2392"></a>
+<span class="sourceLineNo">2393</span>                int[] shape = a.getShapeRef();<a name="line.2393"></a>
+<span class="sourceLineNo">2394</span>                SliceND slice = new SliceND(shape);<a name="line.2394"></a>
+<span class="sourceLineNo">2395</span>                slice.flip(axis);<a name="line.2395"></a>
+<span class="sourceLineNo">2396</span>                return slice;<a name="line.2396"></a>
+<span class="sourceLineNo">2397</span>        }<a name="line.2397"></a>
+<span class="sourceLineNo">2398</span><a name="line.2398"></a>
+<span class="sourceLineNo">2399</span>        /**<a name="line.2399"></a>
+<span class="sourceLineNo">2400</span>         * Flip items in left/right direction, column-wise, or along second axis<a name="line.2400"></a>
+<span class="sourceLineNo">2401</span>         * @param a dataset must be at least 2D<a name="line.2401"></a>
+<span class="sourceLineNo">2402</span>         * @return view of flipped dataset<a name="line.2402"></a>
+<span class="sourceLineNo">2403</span>         */<a name="line.2403"></a>
+<span class="sourceLineNo">2404</span>        public static &lt;T extends Dataset&gt; T flipLeftRight(final T a) {<a name="line.2404"></a>
+<span class="sourceLineNo">2405</span>                if (a.getRank() &lt; 2) {<a name="line.2405"></a>
+<span class="sourceLineNo">2406</span>                        throw new IllegalArgumentException("Dataset must be at least 2D");<a name="line.2406"></a>
+<span class="sourceLineNo">2407</span>                }<a name="line.2407"></a>
+<span class="sourceLineNo">2408</span>                return (T) a.getSliceView(createFlippedSlice(a, 1));<a name="line.2408"></a>
+<span class="sourceLineNo">2409</span>        }<a name="line.2409"></a>
+<span class="sourceLineNo">2410</span><a name="line.2410"></a>
+<span class="sourceLineNo">2411</span>        /**<a name="line.2411"></a>
+<span class="sourceLineNo">2412</span>         * Flip items in up/down direction, row-wise, or along first axis<a name="line.2412"></a>
+<span class="sourceLineNo">2413</span>         * @param a dataset<a name="line.2413"></a>
+<span class="sourceLineNo">2414</span>         * @return view of flipped dataset<a name="line.2414"></a>
+<span class="sourceLineNo">2415</span>         */<a name="line.2415"></a>
+<span class="sourceLineNo">2416</span>        public static &lt;T extends Dataset&gt; T flipUpDown(final T a) {<a name="line.2416"></a>
+<span class="sourceLineNo">2417</span>                return (T) a.getSliceView(createFlippedSlice(a, 0));<a name="line.2417"></a>
+<span class="sourceLineNo">2418</span>        }<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>         * Rotate items in first two dimension by 90 degrees anti-clockwise<a name="line.2421"></a>
+<span class="sourceLineNo">2422</span>         * @param a dataset must be at least 2D<a name="line.2422"></a>
+<span class="sourceLineNo">2423</span>         * @return view of flipped dataset<a name="line.2423"></a>
+<span class="sourceLineNo">2424</span>         */<a name="line.2424"></a>
+<span class="sourceLineNo">2425</span>        public static &lt;T extends Dataset&gt; T rotate90(final T a) {<a name="line.2425"></a>
+<span class="sourceLineNo">2426</span>                return rotate90(a, 1);<a name="line.2426"></a>
+<span class="sourceLineNo">2427</span>        }<a name="line.2427"></a>
+<span class="sourceLineNo">2428</span><a name="line.2428"></a>
+<span class="sourceLineNo">2429</span>        /**<a name="line.2429"></a>
+<span class="sourceLineNo">2430</span>         * Rotate items in first two dimension by 90 degrees anti-clockwise<a name="line.2430"></a>
+<span class="sourceLineNo">2431</span>         * @param a dataset must be at least 2D<a name="line.2431"></a>
+<span class="sourceLineNo">2432</span>         * @param k number of 90-degree rotations<a name="line.2432"></a>
+<span class="sourceLineNo">2433</span>         * @return view of flipped dataset<a name="line.2433"></a>
+<span class="sourceLineNo">2434</span>         */<a name="line.2434"></a>
+<span class="sourceLineNo">2435</span>        public static &lt;T extends Dataset&gt; T rotate90(final T a, int k) {<a name="line.2435"></a>
+<span class="sourceLineNo">2436</span>                k = k % 4;<a name="line.2436"></a>
+<span class="sourceLineNo">2437</span>                while (k &lt; 0) {<a name="line.2437"></a>
+<span class="sourceLineNo">2438</span>                        k += 4;<a name="line.2438"></a>
+<span class="sourceLineNo">2439</span>                }<a name="line.2439"></a>
+<span class="sourceLineNo">2440</span>                int r = a.getRank();<a name="line.2440"></a>
+<span class="sourceLineNo">2441</span>                if (r &lt; 2) {<a name="line.2441"></a>
+<span class="sourceLineNo">2442</span>                        throw new IllegalArgumentException("Dataset must be at least 2D");<a name="line.2442"></a>
+<span class="sourceLineNo">2443</span>                }<a name="line.2443"></a>
+<span class="sourceLineNo">2444</span>                switch (k) {<a name="line.2444"></a>
+<span class="sourceLineNo">2445</span>                case 1: case 3:<a name="line.2445"></a>
+<span class="sourceLineNo">2446</span>                        int[] axes = new int[r];<a name="line.2446"></a>
+<span class="sourceLineNo">2447</span>                        axes[0] = 1;<a name="line.2447"></a>
+<span class="sourceLineNo">2448</span>                        axes[1] = 0;<a name="line.2448"></a>
+<span class="sourceLineNo">2449</span>                        for (int i = 2; i &lt; r; i++) {<a name="line.2449"></a>
+<span class="sourceLineNo">2450</span>                                axes[i] = i;<a name="line.2450"></a>
+<span class="sourceLineNo">2451</span>                        }<a name="line.2451"></a>
+<span class="sourceLineNo">2452</span>                        Dataset t = a.getTransposedView(axes);<a name="line.2452"></a>
+<span class="sourceLineNo">2453</span>                        return (T) t.getSliceView(createFlippedSlice(t, k == 1 ? 0 : 1));<a name="line.2453"></a>
+<span class="sourceLineNo">2454</span>                case 2:<a name="line.2454"></a>
+<span class="sourceLineNo">2455</span>                        SliceND s = createFlippedSlice(a, 0);<a name="line.2455"></a>
+<span class="sourceLineNo">2456</span>                        s.flip(1);<a name="line.2456"></a>
+<span class="sourceLineNo">2457</span>                        return (T) a.getSliceView(s);<a name="line.2457"></a>
+<span class="sourceLineNo">2458</span>                default:<a name="line.2458"></a>
+<span class="sourceLineNo">2459</span>                case 0:<a name="line.2459"></a>
+<span class="sourceLineNo">2460</span>                        return a;<a name="line.2460"></a>
+<span class="sourceLineNo">2461</span>                }<a name="line.2461"></a>
+<span class="sourceLineNo">2462</span>        }<a name="line.2462"></a>
+<span class="sourceLineNo">2463</span><a name="line.2463"></a>
+<span class="sourceLineNo">2464</span>        /**<a name="line.2464"></a>
+<span class="sourceLineNo">2465</span>         * Select content according where condition is true. All inputs are broadcasted to a maximum shape<a name="line.2465"></a>
+<span class="sourceLineNo">2466</span>         * @param condition boolean dataset<a name="line.2466"></a>
+<span class="sourceLineNo">2467</span>         * @param x<a name="line.2467"></a>
+<span class="sourceLineNo">2468</span>         * @param y<a name="line.2468"></a>
+<span class="sourceLineNo">2469</span>         * @return dataset where content is x or y depending on whether condition is true or otherwise<a name="line.2469"></a>
+<span class="sourceLineNo">2470</span>         */<a name="line.2470"></a>
+<span class="sourceLineNo">2471</span>        public static Dataset select(BooleanDataset condition, Object x, Object y) {<a name="line.2471"></a>
+<span class="sourceLineNo">2472</span>                Object[] all = new Object[] {condition, x, y};<a name="line.2472"></a>
+<span class="sourceLineNo">2473</span>                Dataset[] dAll = BroadcastUtils.convertAndBroadcast(all);<a name="line.2473"></a>
+<span class="sourceLineNo">2474</span>                condition = (BooleanDataset) dAll[0];<a name="line.2474"></a>
+<span class="sourceLineNo">2475</span>                Dataset dx = dAll[1];<a name="line.2475"></a>
+<span class="sourceLineNo">2476</span>                Dataset dy = dAll[2];<a name="line.2476"></a>
+<span class="sourceLineNo">2477</span>                Class&lt;? extends Dataset&gt; dc = InterfaceUtils.getBestInterface(dx.getClass(), dy.getClass());<a name="line.2477"></a>
+<span class="sourceLineNo">2478</span>                int ds = Math.max(dx.getElementsPerItem(), dy.getElementsPerItem());<a name="line.2478"></a>
+<span class="sourceLineNo">2479</span><a name="line.2479"></a>
+<span class="sourceLineNo">2480</span>                Dataset r = DatasetFactory.zeros(ds, dc, condition.getShapeRef());<a name="line.2480"></a>
+<span class="sourceLineNo">2481</span>                IndexIterator iter = condition.getIterator(true);<a name="line.2481"></a>
+<span class="sourceLineNo">2482</span>                final int[] pos = iter.getPos();<a name="line.2482"></a>
+<span class="sourceLineNo">2483</span>                int i = 0;<a name="line.2483"></a>
+<span class="sourceLineNo">2484</span>                while (iter.hasNext()) {<a name="line.2484"></a>
+<span class="sourceLineNo">2485</span>                        r.setObjectAbs(i++, condition.getElementBooleanAbs(iter.index) ? dx.getObject(pos) : dy.getObject(pos));<a name="line.2485"></a>
+<span class="sourceLineNo">2486</span>                }<a name="line.2486"></a>
+<span class="sourceLineNo">2487</span>                return r;<a name="line.2487"></a>
+<span class="sourceLineNo">2488</span>        }<a name="line.2488"></a>
+<span class="sourceLineNo">2489</span><a name="line.2489"></a>
+<span class="sourceLineNo">2490</span>        /**<a name="line.2490"></a>
+<span class="sourceLineNo">2491</span>         * Select content from choices where condition is true, otherwise use default. All inputs are broadcasted to a maximum shape<a name="line.2491"></a>
+<span class="sourceLineNo">2492</span>         * @param conditions array of boolean datasets<a name="line.2492"></a>
+<span class="sourceLineNo">2493</span>         * @param choices array of datasets or objects<a name="line.2493"></a>
+<span class="sourceLineNo">2494</span>         * @param def default value (can be a dataset)<a name="line.2494"></a>
+<span class="sourceLineNo">2495</span>         * @return dataset<a name="line.2495"></a>
+<span class="sourceLineNo">2496</span>         */<a name="line.2496"></a>
+<span class="sourceLineNo">2497</span>        public static Dataset select(BooleanDataset[] conditions, Object[] choices, Object def) {<a name="line.2497"></a>
+<span class="sourceLineNo">2498</span>                final int n = conditions.length;<a name="line.2498"></a>
+<span class="sourceLineNo">2499</span>                if (choices.length != n) {<a name="line.2499"></a>
+<span class="sourceLineNo">2500</span>                        throw new IllegalArgumentException("Choices list is not same length as conditions list");<a name="line.2500"></a>
+<span class="sourceLineNo">2501</span>                }<a name="line.2501"></a>
+<span class="sourceLineNo">2502</span>                Object[] all = new Object[2*n];<a name="line.2502"></a>
+<span class="sourceLineNo">2503</span>                System.arraycopy(conditions, 0, all, 0, n);<a name="line.2503"></a>
+<span class="sourceLineNo">2504</span>                System.arraycopy(choices, 0, all, n, n);<a name="line.2504"></a>
+<span class="sourceLineNo">2505</span>                Dataset[] dAll = BroadcastUtils.convertAndBroadcast(all);<a name="line.2505"></a>
+<span class="sourceLineNo">2506</span>                conditions = new BooleanDataset[n];<a name="line.2506"></a>
+<span class="sourceLineNo">2507</span>                Dataset[] dChoices = new Dataset[n];<a name="line.2507"></a>
+<span class="sourceLineNo">2508</span>                System.arraycopy(dAll, 0, conditions, 0, n);<a name="line.2508"></a>
+<span class="sourceLineNo">2509</span>                System.arraycopy(dAll, n, dChoices, 0, n);<a name="line.2509"></a>
+<span class="sourceLineNo">2510</span>                Class&lt;? extends Dataset&gt; dc = null;<a name="line.2510"></a>
+<span class="sourceLineNo">2511</span>                int ds = -1;<a name="line.2511"></a>
+<span class="sourceLineNo">2512</span>                for (int i = 0; i &lt; n; i++) {<a name="line.2512"></a>
+<span class="sourceLineNo">2513</span>                        Dataset a = dChoices[i];<a name="line.2513"></a>
+<span class="sourceLineNo">2514</span>                        Class&lt;? extends Dataset&gt; c = a.getClass();<a name="line.2514"></a>
+<span class="sourceLineNo">2515</span>                        dc = InterfaceUtils.getBestInterface(dc, c);<a name="line.2515"></a>
+<span class="sourceLineNo">2516</span>                        int s = a.getElementsPerItem();<a name="line.2516"></a>
+<span class="sourceLineNo">2517</span>                        if (s &gt; ds) {<a name="line.2517"></a>
+<span class="sourceLineNo">2518</span>                                ds = s;<a name="line.2518"></a>
+<span class="sourceLineNo">2519</span>                }<a name="line.2519"></a>
+<span class="sourceLineNo">2520</span>                }<a name="line.2520"></a>
+<span class="sourceLineNo">2521</span>                if (dc == null || ds &lt; 1) {<a name="line.2521"></a>
+<span class="sourceLineNo">2522</span>                        throw new IllegalArgumentException("Dataset types of choices are invalid");<a name="line.2522"></a>
+<span class="sourceLineNo">2523</span>                }<a name="line.2523"></a>
+<span class="sourceLineNo">2524</span><a name="line.2524"></a>
+<span class="sourceLineNo">2525</span>                Dataset r = DatasetFactory.zeros(ds, dc, conditions[0].getShapeRef());<a name="line.2525"></a>
+<span class="sourceLineNo">2526</span>                Dataset d = DatasetFactory.createFromObject(def).getBroadcastView(r.getShapeRef());<a name="line.2526"></a>
+<span class="sourceLineNo">2527</span>                PositionIterator iter = new PositionIterator(r.getShapeRef());<a name="line.2527"></a>
+<span class="sourceLineNo">2528</span>                final int[] pos = iter.getPos();<a name="line.2528"></a>
+<span class="sourceLineNo">2529</span>                int i = 0;<a name="line.2529"></a>
+<span class="sourceLineNo">2530</span>                while (iter.hasNext()) {<a name="line.2530"></a>
+<span class="sourceLineNo">2531</span>                        int j = 0;<a name="line.2531"></a>
+<span class="sourceLineNo">2532</span>                        for (; j &lt; n; j++) {<a name="line.2532"></a>
+<span class="sourceLineNo">2533</span>                                if (conditions[j].get(pos)) {<a name="line.2533"></a>
+<span class="sourceLineNo">2534</span>                                        r.setObjectAbs(i++, dChoices[j].getObject(pos));<a name="line.2534"></a>
+<span class="sourceLineNo">2535</span>                                        break;<a name="line.2535"></a>
+<span class="sourceLineNo">2536</span>                                }<a name="line.2536"></a>
+<span class="sourceLineNo">2537</span>                        }<a name="line.2537"></a>
+<span class="sourceLineNo">2538</span>                        if (j == n) {<a name="line.2538"></a>
+<span class="sourceLineNo">2539</span>                                r.setObjectAbs(i++, d.getObject(pos));<a name="line.2539"></a>
+<span class="sourceLineNo">2540</span>                        }<a name="line.2540"></a>
+<span class="sourceLineNo">2541</span>                }<a name="line.2541"></a>
+<span class="sourceLineNo">2542</span>                return r;<a name="line.2542"></a>
+<span class="sourceLineNo">2543</span>        }<a name="line.2543"></a>
+<span class="sourceLineNo">2544</span><a name="line.2544"></a>
+<span class="sourceLineNo">2545</span>        /**<a name="line.2545"></a>
+<span class="sourceLineNo">2546</span>         * Choose content from choices where condition is true, otherwise use default. All inputs are broadcasted to a maximum shape<a name="line.2546"></a>
+<span class="sourceLineNo">2547</span>         * @param index integer dataset (ideally, items should be in [0, n) range, if there are n choices)<a name="line.2547"></a>
+<span class="sourceLineNo">2548</span>         * @param choices array of datasets or objects<a name="line.2548"></a>
+<span class="sourceLineNo">2549</span>         * @param throwAIOOBE if true, throw array index out of bound exception<a name="line.2549"></a>
+<span class="sourceLineNo">2550</span>         * @param clip true to clip else wrap indices out of bounds; only used when throwAOOBE is false<a name="line.2550"></a>
+<span class="sourceLineNo">2551</span>         * @return dataset<a name="line.2551"></a>
+<span class="sourceLineNo">2552</span>         */<a name="line.2552"></a>
+<span class="sourceLineNo">2553</span>        public static Dataset choose(IntegerDataset index, Object[] choices, boolean throwAIOOBE, boolean clip) {<a name="line.2553"></a>
+<span class="sourceLineNo">2554</span>                final int n = choices.length;<a name="line.2554"></a>
+<span class="sourceLineNo">2555</span>                Object[] all = new Object[n + 1];<a name="line.2555"></a>
+<span class="sourceLineNo">2556</span>                System.arraycopy(choices, 0, all, 0, n);<a name="line.2556"></a>
+<span class="sourceLineNo">2557</span>                all[n] = index;<a name="line.2557"></a>
+<span class="sourceLineNo">2558</span>                Dataset[] dChoices = BroadcastUtils.convertAndBroadcast(all);<a name="line.2558"></a>
+<span class="sourceLineNo">2559</span>                Class&lt;? extends Dataset&gt; dc = null;<a name="line.2559"></a>
+<span class="sourceLineNo">2560</span>                int ds = -1;<a name="line.2560"></a>
+<span class="sourceLineNo">2561</span>                int mr = -1;<a name="line.2561"></a>
+<span class="sourceLineNo">2562</span>                for (int i = 0; i &lt; n; i++) {<a name="line.2562"></a>
+<span class="sourceLineNo">2563</span>                        Dataset a = dChoices[i];<a name="line.2563"></a>
+<span class="sourceLineNo">2564</span>                        int r = a.getRank();<a name="line.2564"></a>
+<span class="sourceLineNo">2565</span>                        if (r &gt; mr) {<a name="line.2565"></a>
+<span class="sourceLineNo">2566</span>                                mr = r;<a name="line.2566"></a>
+<span class="sourceLineNo">2567</span>                        }<a name="line.2567"></a>
+<span class="sourceLineNo">2568</span>                        dc = InterfaceUtils.getBestInterface(dc, a.getClass());<a name="line.2568"></a>
+<span class="sourceLineNo">2569</span>                        int s = a.getElementsPerItem();<a name="line.2569"></a>
+<span class="sourceLineNo">2570</span>                        if (s &gt; ds) {<a name="line.2570"></a>
+<span class="sourceLineNo">2571</span>                                ds = s;<a name="line.2571"></a>
+<span class="sourceLineNo">2572</span>                }<a name="line.2572"></a>
+<span class="sourceLineNo">2573</span>                }<a name="line.2573"></a>
+<span class="sourceLineNo">2574</span>                if (dc == null || ds &lt; 1) {<a name="line.2574"></a>
+<span class="sourceLineNo">2575</span>                        throw new IllegalArgumentException("Dataset types of choices are invalid");<a name="line.2575"></a>
+<span class="sourceLineNo">2576</span>                }<a name="line.2576"></a>
+<span class="sourceLineNo">2577</span>                index = (IntegerDataset) dChoices[n];<a name="line.2577"></a>
+<span class="sourceLineNo">2578</span>                dChoices[n] = null;<a name="line.2578"></a>
+<span class="sourceLineNo">2579</span><a name="line.2579"></a>
+<span class="sourceLineNo">2580</span>                Dataset r = DatasetFactory.zeros(ds, dc, index.getShapeRef());<a name="line.2580"></a>
+<span class="sourceLineNo">2581</span>                IndexIterator iter = index.getIterator(true);<a name="line.2581"></a>
+<span class="sourceLineNo">2582</span>                final int[] pos = iter.getPos();<a name="line.2582"></a>
+<span class="sourceLineNo">2583</span>                int i = 0;<a name="line.2583"></a>
+<span class="sourceLineNo">2584</span>                while (iter.hasNext()) {<a name="line.2584"></a>
+<span class="sourceLineNo">2585</span>                        int j = index.getAbs(iter.index);<a name="line.2585"></a>
+<span class="sourceLineNo">2586</span>                        if (j &lt; 0) {<a name="line.2586"></a>
+<span class="sourceLineNo">2587</span>                                if (throwAIOOBE)<a name="line.2587"></a>
+<span class="sourceLineNo">2588</span>                                        throw new ArrayIndexOutOfBoundsException(j);<a name="line.2588"></a>
+<span class="sourceLineNo">2589</span>                                if (clip) {<a name="line.2589"></a>
+<span class="sourceLineNo">2590</span>                                        j = 0;<a name="line.2590"></a>
+<span class="sourceLineNo">2591</span>                                } else {<a name="line.2591"></a>
+<span class="sourceLineNo">2592</span>                                        j %= n;<a name="line.2592"></a>
+<span class="sourceLineNo">2593</span>                                        j += n; // as remainder still negative<a name="line.2593"></a>
+<span class="sourceLineNo">2594</span>                                }<a name="line.2594"></a>
+<span class="sourceLineNo">2595</span>                        }<a name="line.2595"></a>
+<span class="sourceLineNo">2596</span>                        if (j &gt;= n) {<a name="line.2596"></a>
+<span class="sourceLineNo">2597</span>                                if (throwAIOOBE)<a name="line.2597"></a>
+<span class="sourceLineNo">2598</span>                                        throw new ArrayIndexOutOfBoundsException(j);<a name="line.2598"></a>
+<span class="sourceLineNo">2599</span>                                if (clip) {<a name="line.2599"></a>
+<span class="sourceLineNo">2600</span>                                        j = n - 1;<a name="line.2600"></a>
+<span class="sourceLineNo">2601</span>                                } else {<a name="line.2601"></a>
+<span class="sourceLineNo">2602</span>                                        j %= n;<a name="line.2602"></a>
+<span class="sourceLineNo">2603</span>                                }<a name="line.2603"></a>
+<span class="sourceLineNo">2604</span>                        }<a name="line.2604"></a>
+<span class="sourceLineNo">2605</span>                        Dataset c = dChoices[j];<a name="line.2605"></a>
+<span class="sourceLineNo">2606</span>                        r.setObjectAbs(i++, c.getObject(pos));<a name="line.2606"></a>
+<span class="sourceLineNo">2607</span>                }<a name="line.2607"></a>
+<span class="sourceLineNo">2608</span>                return r;<a name="line.2608"></a>
+<span class="sourceLineNo">2609</span>        }<a name="line.2609"></a>
+<span class="sourceLineNo">2610</span><a name="line.2610"></a>
+<span class="sourceLineNo">2611</span>        /**<a name="line.2611"></a>
+<span class="sourceLineNo">2612</span>         * Calculate positions in given shape from a dataset of 1-D indexes<a name="line.2612"></a>
+<span class="sourceLineNo">2613</span>         * @param indices<a name="line.2613"></a>
+<span class="sourceLineNo">2614</span>         * @param shape<a name="line.2614"></a>
+<span class="sourceLineNo">2615</span>         * @return list of positions as integer datasets<a name="line.2615"></a>
+<span class="sourceLineNo">2616</span>         */<a name="line.2616"></a>
+<span class="sourceLineNo">2617</span>        public static List&lt;IntegerDataset&gt; calcPositionsFromIndexes(Dataset indices, int[] shape) {<a name="line.2617"></a>
+<span class="sourceLineNo">2618</span>                int rank = shape.length;<a name="line.2618"></a>
+<span class="sourceLineNo">2619</span>                List&lt;IntegerDataset&gt; posns = new ArrayList&lt;IntegerDataset&gt;();<a name="line.2619"></a>
+<span class="sourceLineNo">2620</span>                int[] iShape = indices.getShapeRef();<a name="line.2620"></a>
+<span class="sourceLineNo">2621</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.2621"></a>
+<span class="sourceLineNo">2622</span>                        posns.add(new IntegerDataset(iShape));<a name="line.2622"></a>
+<span class="sourceLineNo">2623</span>                }<a name="line.2623"></a>
+<span class="sourceLineNo">2624</span>                IndexIterator it = indices.getIterator(true);<a name="line.2624"></a>
+<span class="sourceLineNo">2625</span>                int[] pos = it.getPos();<a name="line.2625"></a>
+<span class="sourceLineNo">2626</span>                while (it.hasNext()) {<a name="line.2626"></a>
+<span class="sourceLineNo">2627</span>                        int n = indices.getInt(pos);<a name="line.2627"></a>
+<span class="sourceLineNo">2628</span>                        int[] p = ShapeUtils.getNDPositionFromShape(n, shape);<a name="line.2628"></a>
+<span class="sourceLineNo">2629</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.2629"></a>
+<span class="sourceLineNo">2630</span>                                posns.get(i).setItem(p[i], pos);<a name="line.2630"></a>
+<span class="sourceLineNo">2631</span>                        }<a name="line.2631"></a>
+<span class="sourceLineNo">2632</span>                }<a name="line.2632"></a>
+<span class="sourceLineNo">2633</span>                return posns;<a name="line.2633"></a>
+<span class="sourceLineNo">2634</span>        }<a name="line.2634"></a>
+<span class="sourceLineNo">2635</span><a name="line.2635"></a>
+<span class="sourceLineNo">2636</span><a name="line.2636"></a>
+<span class="sourceLineNo">2637</span>        /**<a name="line.2637"></a>
+<span class="sourceLineNo">2638</span>         * Calculate indexes in given shape from datasets of position<a name="line.2638"></a>
+<span class="sourceLineNo">2639</span>         * @param positions as a list of datasets where each holds the position in a dimension<a name="line.2639"></a>
+<span class="sourceLineNo">2640</span>         * @param shape<a name="line.2640"></a>
+<span class="sourceLineNo">2641</span>         * @param mode either null, zero-length, unit length or length of rank of shape where<a name="line.2641"></a>
+<span class="sourceLineNo">2642</span>         *  0 = raise exception, 1 = wrap, 2 = clip<a name="line.2642"></a>
+<span class="sourceLineNo">2643</span>         * @return indexes as an integer dataset<a name="line.2643"></a>
+<span class="sourceLineNo">2644</span>         */<a name="line.2644"></a>
+<span class="sourceLineNo">2645</span>        public static IntegerDataset calcIndexesFromPositions(List&lt;? extends Dataset&gt; positions, int[] shape, int... mode) {<a name="line.2645"></a>
+<span class="sourceLineNo">2646</span>                int rank = shape.length;<a name="line.2646"></a>
+<span class="sourceLineNo">2647</span>                if (positions.size() != rank) {<a name="line.2647"></a>
+<span class="sourceLineNo">2648</span>                        throw new IllegalArgumentException("Number of position datasets must be equal to rank of shape");<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>                if (mode == null || mode.length == 0) {<a name="line.2651"></a>
+<span class="sourceLineNo">2652</span>                        mode = new int[rank];<a name="line.2652"></a>
+<span class="sourceLineNo">2653</span>                } else if (mode.length == 1) {<a name="line.2653"></a>
+<span class="sourceLineNo">2654</span>                        int m = mode[0];<a name="line.2654"></a>
+<span class="sourceLineNo">2655</span>                        mode = new int[rank];<a name="line.2655"></a>
+<span class="sourceLineNo">2656</span>                        Arrays.fill(mode, m);<a name="line.2656"></a>
+<span class="sourceLineNo">2657</span>                } else if (mode.length != rank) {<a name="line.2657"></a>
+<span class="sourceLineNo">2658</span>                        throw new IllegalArgumentException("Mode length greater than one must match rank of shape");<a name="line.2658"></a>
+<span class="sourceLineNo">2659</span>                }<a name="line.2659"></a>
+<span class="sourceLineNo">2660</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.2660"></a>
+<span class="sourceLineNo">2661</span>                        int m = mode[i];<a name="line.2661"></a>
+<span class="sourceLineNo">2662</span>                        if (m &lt; 0 || m &gt; 2) {<a name="line.2662"></a>
+<span class="sourceLineNo">2663</span>                                throw new IllegalArgumentException("Unknown mode value - it must be 0, 1, or 2");<a name="line.2663"></a>
+<span class="sourceLineNo">2664</span>                        }<a name="line.2664"></a>
+<span class="sourceLineNo">2665</span>                }<a name="line.2665"></a>
+<span class="sourceLineNo">2666</span><a name="line.2666"></a>
+<span class="sourceLineNo">2667</span>                Dataset p = positions.get(0);<a name="line.2667"></a>
+<span class="sourceLineNo">2668</span>                IntegerDataset indexes = new IntegerDataset(p.getShapeRef());<a name="line.2668"></a>
+<span class="sourceLineNo">2669</span>                IndexIterator it = p.getIterator(true);<a name="line.2669"></a>
+<span class="sourceLineNo">2670</span>                int[] iPos = it.getPos();<a name="line.2670"></a>
+<span class="sourceLineNo">2671</span>                int[] tPos = new int[rank];<a name="line.2671"></a>
+<span class="sourceLineNo">2672</span>                while (it.hasNext()) {<a name="line.2672"></a>
+<span class="sourceLineNo">2673</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.2673"></a>
+<span class="sourceLineNo">2674</span>                                p = positions.get(i);<a name="line.2674"></a>
+<span class="sourceLineNo">2675</span>                                int j = p.getInt(iPos);<a name="line.2675"></a>
+<span class="sourceLineNo">2676</span>                                int d = shape[i];<a name="line.2676"></a>
+<span class="sourceLineNo">2677</span>                                if (mode[i] == 0) {<a name="line.2677"></a>
+<span class="sourceLineNo">2678</span>                                        if (j &lt; 0 || j &gt;= d) {<a name="line.2678"></a>
+<span class="sourceLineNo">2679</span>                                                throw new ArrayIndexOutOfBoundsException("Position value exceeds dimension in shape");<a name="line.2679"></a>
+<span class="sourceLineNo">2680</span>                                        }<a name="line.2680"></a>
+<span class="sourceLineNo">2681</span>                                } else if (mode[i] == 1) {<a name="line.2681"></a>
+<span class="sourceLineNo">2682</span>                                        while (j &lt; 0)<a name="line.2682"></a>
+<span class="sourceLineNo">2683</span>                                                j += d;<a name="line.2683"></a>
+<span class="sourceLineNo">2684</span>                                        while (j &gt;= d)<a name="line.2684"></a>
+<span class="sourceLineNo">2685</span>                                                j -= d;<a name="line.2685"></a>
+<span class="sourceLineNo">2686</span>                                } else {<a name="line.2686"></a>
+<span class="sourceLineNo">2687</span>                                        if (j &lt; 0)<a name="line.2687"></a>
+<span class="sourceLineNo">2688</span>                                                j = 0;<a name="line.2688"></a>
+<span class="sourceLineNo">2689</span>                                        if (j &gt;= d)<a name="line.2689"></a>
+<span class="sourceLineNo">2690</span>                                                j = d - 1;<a name="line.2690"></a>
+<span class="sourceLineNo">2691</span>                                }<a name="line.2691"></a>
+<span class="sourceLineNo">2692</span>                                tPos[i] = j;<a name="line.2692"></a>
+<span class="sourceLineNo">2693</span>                        }<a name="line.2693"></a>
+<span class="sourceLineNo">2694</span>                        indexes.set(ShapeUtils.getFlat1DIndex(shape, tPos), iPos);<a name="line.2694"></a>
+<span class="sourceLineNo">2695</span>                }<a name="line.2695"></a>
+<span class="sourceLineNo">2696</span><a name="line.2696"></a>
+<span class="sourceLineNo">2697</span>                return indexes;<a name="line.2697"></a>
+<span class="sourceLineNo">2698</span>        }<a name="line.2698"></a>
+<span class="sourceLineNo">2699</span><a name="line.2699"></a>
+<span class="sourceLineNo">2700</span>        /**<a name="line.2700"></a>
+<span class="sourceLineNo">2701</span>         * Serialize dataset by flattening it. Discards metadata<a name="line.2701"></a>
+<span class="sourceLineNo">2702</span>         * @param data<a name="line.2702"></a>
+<span class="sourceLineNo">2703</span>         * @return some java array<a name="line.2703"></a>
+<span class="sourceLineNo">2704</span>         */<a name="line.2704"></a>
+<span class="sourceLineNo">2705</span>        public static Serializable serializeDataset(final IDataset data) {<a name="line.2705"></a>
+<span class="sourceLineNo">2706</span>                Dataset d = convertToDataset(data).getView(false);<a name="line.2706"></a>
+<span class="sourceLineNo">2707</span>                d.clearMetadata(null);<a name="line.2707"></a>
+<span class="sourceLineNo">2708</span>                return d.flatten().getBuffer();<a name="line.2708"></a>
+<span class="sourceLineNo">2709</span>        }<a name="line.2709"></a>
+<span class="sourceLineNo">2710</span><a name="line.2710"></a>
+<span class="sourceLineNo">2711</span>        /**<a name="line.2711"></a>
+<span class="sourceLineNo">2712</span>         * Extract values where condition is non-zero. This is similar to Dataset#getByBoolean but supports broadcasting<a name="line.2712"></a>
+<span class="sourceLineNo">2713</span>         * @param data<a name="line.2713"></a>
+<span class="sourceLineNo">2714</span>         * @param condition should be broadcastable to data<a name="line.2714"></a>
+<span class="sourceLineNo">2715</span>         * @return 1-D dataset of values<a name="line.2715"></a>
+<span class="sourceLineNo">2716</span>         */<a name="line.2716"></a>
+<span class="sourceLineNo">2717</span>        public static Dataset extract(final IDataset data, final IDataset condition) {<a name="line.2717"></a>
+<span class="sourceLineNo">2718</span>                Dataset a = convertToDataset(data.getSliceView());<a name="line.2718"></a>
+<span class="sourceLineNo">2719</span>                Dataset b = cast(BooleanDataset.class, condition.getSliceView());<a name="line.2719"></a>
+<span class="sourceLineNo">2720</span><a name="line.2720"></a>
+<span class="sourceLineNo">2721</span>                try {<a name="line.2721"></a>
+<span class="sourceLineNo">2722</span>                        return a.getByBoolean(b);<a name="line.2722"></a>
+<span class="sourceLineNo">2723</span>                } catch (IllegalArgumentException e) {<a name="line.2723"></a>
+<span class="sourceLineNo">2724</span>                        final int length = ((Number) b.sum()).intValue();<a name="line.2724"></a>
+<span class="sourceLineNo">2725</span><a name="line.2725"></a>
+<span class="sourceLineNo">2726</span>                        BroadcastPairIterator it = new BroadcastPairIterator(a, b, null, false);<a name="line.2726"></a>
+<span class="sourceLineNo">2727</span>                        int size = ShapeUtils.calcSize(it.getShape());<a name="line.2727"></a>
+<span class="sourceLineNo">2728</span>                        Dataset c;<a name="line.2728"></a>
+<span class="sourceLineNo">2729</span>                        if (length &lt; size) {<a name="line.2729"></a>
+<span class="sourceLineNo">2730</span>                                int[] ashape = it.getFirstShape();<a name="line.2730"></a>
+<span class="sourceLineNo">2731</span>                                int[] bshape = it.getSecondShape();<a name="line.2731"></a>
+<span class="sourceLineNo">2732</span>                                int r = ashape.length;<a name="line.2732"></a>
+<span class="sourceLineNo">2733</span>                                size = length;<a name="line.2733"></a>
+<span class="sourceLineNo">2734</span>                                for (int i = 0; i &lt; r; i++) {<a name="line.2734"></a>
+<span class="sourceLineNo">2735</span>                                        int s = ashape[i];<a name="line.2735"></a>
+<span class="sourceLineNo">2736</span>                                        if (s &gt; 1 &amp;&amp; bshape[i] == 1) {<a name="line.2736"></a>
+<span class="sourceLineNo">2737</span>                                                size *= s;<a name="line.2737"></a>
+<span class="sourceLineNo">2738</span>                                        }<a name="line.2738"></a>
+<span class="sourceLineNo">2739</span>                                }<a name="line.2739"></a>
+<span class="sourceLineNo">2740</span>                        }<a name="line.2740"></a>
+<span class="sourceLineNo">2741</span>                        c = DatasetFactory.zeros(a.getClass(), size);<a name="line.2741"></a>
+<span class="sourceLineNo">2742</span><a name="line.2742"></a>
+<span class="sourceLineNo">2743</span>                        int i = 0;<a name="line.2743"></a>
+<span class="sourceLineNo">2744</span>                        if (it.isOutputDouble()) {<a name="line.2744"></a>
+<span class="sourceLineNo">2745</span>                                while (it.hasNext()) {<a name="line.2745"></a>
+<span class="sourceLineNo">2746</span>                                        if (it.bLong != 0) {<a name="line.2746"></a>
+<span class="sourceLineNo">2747</span>                                                c.setObjectAbs(i++, it.aDouble);<a name="line.2747"></a>
+<span class="sourceLineNo">2748</span>                                        }<a name="line.2748"></a>
+<span class="sourceLineNo">2749</span>                                }<a name="line.2749"></a>
+<span class="sourceLineNo">2750</span>                        } else {<a name="line.2750"></a>
+<span class="sourceLineNo">2751</span>                                while (it.hasNext()) {<a name="line.2751"></a>
+<span class="sourceLineNo">2752</span>                                        if (it.bLong != 0) {<a name="line.2752"></a>
+<span class="sourceLineNo">2753</span>                                                c.setObjectAbs(i++, it.aLong);<a name="line.2753"></a>
+<span class="sourceLineNo">2754</span>                                        }<a name="line.2754"></a>
+<span class="sourceLineNo">2755</span>                                }<a name="line.2755"></a>
+<span class="sourceLineNo">2756</span>                        }<a name="line.2756"></a>
+<span class="sourceLineNo">2757</span><a name="line.2757"></a>
+<span class="sourceLineNo">2758</span>                        return c;<a name="line.2758"></a>
+<span class="sourceLineNo">2759</span>                }<a name="line.2759"></a>
+<span class="sourceLineNo">2760</span>        }<a name="line.2760"></a>
+<span class="sourceLineNo">2761</span><a name="line.2761"></a>
+<span class="sourceLineNo">2762</span>        /**<a name="line.2762"></a>
+<span class="sourceLineNo">2763</span>         * Set shape to keep original rank<a name="line.2763"></a>
+<span class="sourceLineNo">2764</span>         * @param a<a name="line.2764"></a>
+<span class="sourceLineNo">2765</span>         * @param originalShape<a name="line.2765"></a>
+<span class="sourceLineNo">2766</span>         * @param axes<a name="line.2766"></a>
+<span class="sourceLineNo">2767</span>         * @since 2.2<a name="line.2767"></a>
+<span class="sourceLineNo">2768</span>         */<a name="line.2768"></a>
+<span class="sourceLineNo">2769</span>        public static void setShapeToOriginalRank(ILazyDataset a, int[] originalShape, int... axes) {<a name="line.2769"></a>
+<span class="sourceLineNo">2770</span>                a.setShape(ShapeUtils.getReducedShapeKeepRank(originalShape, axes));<a name="line.2770"></a>
+<span class="sourceLineNo">2771</span>        }<a name="line.2771"></a>
+<span class="sourceLineNo">2772</span>}<a name="line.2772"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/DateDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/DateDataset.html
new file mode 100644
index 0000000..e66151c
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/dataset/DateDatasetImpl.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/DateDatasetImpl.html
new file mode 100644
index 0000000..95a550b
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/DateDatasetImpl.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.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>        @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 DATE;<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>        private static String[] datesToStrings(final Date[] dates) {<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                final String[] dateStrings = new String[dates.length];<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                for (int i = 0; i &lt; dates.length; i++) {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                        dateStrings[i] = dateToString(dates[i]);<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>                return dateStrings;<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>        private static String dateToString(final Date date) {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                if (date != null) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                        return ISO8601_DATE_FORMAT.format(date);<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 null;<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 String objectToDateString(final Object obj) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                if (obj instanceof Date) {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        return dateToString((Date) obj);<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                } else if (obj instanceof Dataset) {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        Dataset dataset = (Dataset) obj;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        if (dataset.getSize() != 1) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                                logger.error("Given dataset must only have one item");<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<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>                        return objectToDateString(dataset.getObjectAbs(dataset.getOffset()));<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                } else if (obj instanceof IDataset) {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                        IDataset dataset = (IDataset) obj;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                        if (dataset.getSize() != 1) {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                                logger.error("Given dataset must only have one item");<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        }<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                        return objectToDateString(dataset.getObject(new int[dataset.getRank()]));<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                } else {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                        logger.error("Argument is of unsupported class");<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                        throw new IllegalArgumentException("Argument is of unsupported class");<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>        private static Date stringToDate(final String dateAsString) {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                if (dateAsString != null) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        try {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                                return ISO8601_DATE_FORMAT.parse(dateAsString);<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        } catch (ParseException e) {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                // fall through to return null<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                                logger.error("Could not parse datetime: " + dateAsString);<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 null;<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>        @Override<a name="line.108"></a>
+<span class="sourceLineNo">109</span>        public Date getDate() {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                final String dateAsString = super.getString();<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                return stringToDate(dateAsString);<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 Date getDate(int i) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                final String dateAsString = super.getString(i);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                return stringToDate(dateAsString);<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 Date getDate(int i, int j) {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                final String dateAsString = super.getString(i, j);<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                return stringToDate(dateAsString);<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 Date getDate(int... pos) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                final String dateAsString = super.getString(pos);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                return stringToDate(dateAsString);<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 Date getDateAbs(int index) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                final String dateAsString = super.getStringAbs(index);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                if (dateAsString != null) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                        return stringToDate(dateAsString);<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>                return null;<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>        @Override<a name="line.142"></a>
+<span class="sourceLineNo">143</span>        public void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                if (src instanceof String[]) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        super.setItemDirect(dindex, sindex, src);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                } else if (src instanceof Date[]) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                        String[] datesAsStrings = datesToStrings((Date[]) src);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                        data[dindex] = datesAsStrings[sindex];<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                } else {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                        logger.error("Argument is of unsupported class");<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                        throw new IllegalArgumentException("Argument is of unsupported class");<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>        public void setAbs(final int index, final Date date) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                data[index] = dateToString(date);<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                setDirty();<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>         * @since 2.0<a name="line.161"></a>
+<span class="sourceLineNo">162</span>         */<a name="line.162"></a>
+<span class="sourceLineNo">163</span>        public void setItem(final Date value) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                setAbs(getFirst1DIndex(), value);<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>        public void setItem(final Date value, final int i) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                setAbs(get1DIndex(i), value);<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>        public void setItem(final Date value, final int i, final int j) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                setAbs(get1DIndex(i, j), value);<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>        public void setItem(final Date value, final int... pos) {<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                setAbs(get1DIndex(pos), value);<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) {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                setItem(objectToDateString(obj));<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) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                setItem(objectToDateString(obj), i);<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, final int i, final int j) {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                setItem(objectToDateString(obj), i, j);<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 void set(final Object obj, int... pos) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                        pos = new int[shape.length];<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>                setItem(objectToDateString(obj), pos);<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 StringDatasetBase sort(Integer axis) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                // Note yet supported.<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                // TODO: this method will be inefficient as we store dates formatted as strings<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                throw new UnsupportedOperationException("Cannot sort dataset");<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/DoubleDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/DoubleDataset.html
new file mode 100644
index 0000000..f5ad7e0
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/DoubleDataset.html
@@ -0,0 +1,1402 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// GEN_COMMENT<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.ArrayList;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.Arrays;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.List;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.Set;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.TreeSet;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.commons.math3.complex.Complex; // NAN_OMIT<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.eclipse.january.metadata.StatisticsMetadata;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>/**<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * Extend dataset for double values // PRIM_TYPE<a name="line.28"></a>
+<span class="sourceLineNo">029</span> */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>public class DoubleDataset extends AbstractDataset {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        // pin UID to base class<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        protected double[] data; // subclass alias // PRIM_TYPE<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>        @Override<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        protected void setData() {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                data = (double[]) odata; // PRIM_TYPE<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        }<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>        protected static double[] createArray(final int size) { // PRIM_TYPE<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                double[] array = null; // PRIM_TYPE<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>                try {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                        array = new double[size]; // PRIM_TYPE<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                } catch (OutOfMemoryError e) {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                }<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return array;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        @Override<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        public int getDType() {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                return FLOAT64; // DATA_TYPE<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * Create a null dataset<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        DoubleDataset() {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        }<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>        /**<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * Create a zero-filled dataset of given shape<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         * @param shape<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         */<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        DoubleDataset(final int... shape) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                if (shape != null) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        size = ShapeUtils.calcSize(shape);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        this.shape = shape.clone();<a name="line.73"></a>
+<span class="sourceLineNo">074</span>        <a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        try {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                                odata = data = createArray(size);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        } catch (Throwable t) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                throw new IllegalArgumentException(t);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        }<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>        /**<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         * Create a dataset using given data<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @param data<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         * @param shape<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         *            (can be null to create 1D dataset)<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        DoubleDataset(final double[] data, int... shape) { // PRIM_TYPE<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                if (data == null) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        throw new IllegalArgumentException("Data must not be null");<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                if (shape == null || shape.length == 0) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                        shape = new int[] { data.length };<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                size = ShapeUtils.calcSize(shape);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                if (size != data.length) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                        Arrays.toString(shape), data.length));<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                }<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                this.shape = size == 0 ? null : shape.clone();<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>                odata = this.data = data;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>        }<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>        /**<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * Copy a dataset<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         * @param dataset<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         */<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        DoubleDataset(final DoubleDataset dataset) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                copyToView(dataset, this, true, true);<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>                try {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        if (dataset.stride == null) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                if (dataset.data != null) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                                        odata = data = dataset.data.clone();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                }<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        } else {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                offset = 0;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                stride = null;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                base = null;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                odata = data = createArray(size);<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                IndexIterator iter = dataset.getIterator();<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                                for (int i = 0; iter.hasNext(); i++) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                                        data[i] = dataset.data[iter.index];<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                                }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        }<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                } catch (Throwable t) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        throw new IllegalArgumentException(t);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                }<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>        /**<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         * Copy and cast a dataset to this class type<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         * @param dataset<a name="line.138"></a>
+<span class="sourceLineNo">139</span>         */<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        DoubleDataset(final Dataset dataset) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                copyToView(dataset, this, true, false);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                offset = 0;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                stride = null;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                base = null;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                try {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        odata = data = createArray(size);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                } catch (Throwable t) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                        throw new IllegalArgumentException(t);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                }<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                IndexIterator iter = dataset.getIterator();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                for (int i = 0; iter.hasNext(); i++) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                        data[i] = dataset.getElementDoubleAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                }<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>        @Override<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        public boolean equals(Object obj) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                if (this == obj) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        return true;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                }<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>                if (obj == null) {<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 (!getClass().equals(obj.getClass())) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                        if (getRank() == 0) { // for zero-rank datasets<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                                return obj.equals(getObjectAbs(offset));<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                        }<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><a name="line.173"></a>
+<span class="sourceLineNo">174</span>                DoubleDataset other = (DoubleDataset) obj;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                if (size != other.size) {<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>                if (!Arrays.equals(shape, other.shape)) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                        return false;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                if (data == other.data &amp;&amp; stride == null &amp;&amp; other.stride == null) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        return true;<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>                IndexIterator iter = getIterator();<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                IndexIterator oiter = other.getIterator();<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                        if (data[iter.index] != other.data[oiter.index]) { // OBJECT_UNEQUAL<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                                return false;<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>                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 int hashCode() {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                return super.hashCode();<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 DoubleDataset clone() {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                return new DoubleDataset(this);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        }<a name="line.203"></a>
+<span class="sourceLineNo">204</span><a name="line.204"></a>
+<span class="sourceLineNo">205</span>        /**<a name="line.205"></a>
+<span class="sourceLineNo">206</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * sequences or arrays are padded with zeros.<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * <a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * @param obj<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         * @return dataset with contents given by input<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         */<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        static DoubleDataset createFromObject(final Object obj) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                DoubleDataset result = new DoubleDataset();<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>                if (obj != null) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                        result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                        result.size = ShapeUtils.calcSize(result.shape);<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>                                result.odata = result.data = createArray(result.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(result.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>        <a name="line.225"></a>
+<span class="sourceLineNo">226</span>                        int[] pos = new int[result.shape.length];<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                        result.fillData(obj, 0, pos);<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>                return result;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        }<a name="line.231"></a>
+<span class="sourceLineNo">232</span>         // NAN_OMIT<a name="line.232"></a>
+<span class="sourceLineNo">233</span>        /** // NAN_OMIT<a name="line.233"></a>
+<span class="sourceLineNo">234</span>         * // NAN_OMIT<a name="line.234"></a>
+<span class="sourceLineNo">235</span>         * @param stop // NAN_OMIT<a name="line.235"></a>
+<span class="sourceLineNo">236</span>         * @return a new 1D dataset, filled with values determined by parameters // NAN_OMIT<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         */ // NAN_OMIT<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        static DoubleDataset createRange(final double stop) { // NAN_OMIT<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                return createRange(0, stop, 1); // NAN_OMIT<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        } // NAN_OMIT<a name="line.240"></a>
+<span class="sourceLineNo">241</span>         // NAN_OMIT<a name="line.241"></a>
+<span class="sourceLineNo">242</span>        /** // NAN_OMIT<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         * // NAN_OMIT<a name="line.243"></a>
+<span class="sourceLineNo">244</span>         * @param start // NAN_OMIT<a name="line.244"></a>
+<span class="sourceLineNo">245</span>         * @param stop // NAN_OMIT<a name="line.245"></a>
+<span class="sourceLineNo">246</span>         * @param step // NAN_OMIT<a name="line.246"></a>
+<span class="sourceLineNo">247</span>         * @return a new 1D dataset, filled with values determined by parameters // NAN_OMIT<a name="line.247"></a>
+<span class="sourceLineNo">248</span>         */ // NAN_OMIT<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        static DoubleDataset createRange(final double start, final double stop, final double step) { // NAN_OMIT<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                int size = calcSteps(start, stop, step); // NAN_OMIT<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                DoubleDataset result = new DoubleDataset(size); // NAN_OMIT<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                for (int i = 0; i &lt; size; i++) { // NAN_OMIT<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        result.data[i] = (start + i * step); // PRIM_TYPE // NAN_OMIT // ADD_CAST<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                } // NAN_OMIT<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                return result; // NAN_OMIT<a name="line.255"></a>
+<span class="sourceLineNo">256</span>        } // NAN_OMIT<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>         * @param shape<a name="line.259"></a>
+<span class="sourceLineNo">260</span>         * @return a dataset filled with ones<a name="line.260"></a>
+<span class="sourceLineNo">261</span>         */<a name="line.261"></a>
+<span class="sourceLineNo">262</span>        static DoubleDataset ones(final int... shape) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                return new DoubleDataset(shape).fill(1);<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 DoubleDataset fill(final Object obj) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                setDirty();<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                double dv = DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                IndexIterator iter = getIterator();<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                while (iter.hasNext()) {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                        data[iter.index] = dv;<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>                return this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         * @return data buffer as linear array<a name="line.280"></a>
+<span class="sourceLineNo">281</span>         */<a name="line.281"></a>
+<span class="sourceLineNo">282</span>        public double[] getData() { // PRIM_TYPE<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                return data;<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>        protected int getBufferLength() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                if (data == null)<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                        return 0;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                return data.length;<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>        @Override<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        public DoubleDataset getView(boolean deepCopyMetadata) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                DoubleDataset view = new DoubleDataset();<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                view.setData();<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                return view;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>        }<a name="line.299"></a>
+<span class="sourceLineNo">300</span><a name="line.300"></a>
+<span class="sourceLineNo">301</span>        /**<a name="line.301"></a>
+<span class="sourceLineNo">302</span>         * 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.302"></a>
+<span class="sourceLineNo">303</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.303"></a>
+<span class="sourceLineNo">304</span>         * <a name="line.304"></a>
+<span class="sourceLineNo">305</span>         * @param index<a name="line.305"></a>
+<span class="sourceLineNo">306</span>         *            absolute index<a name="line.306"></a>
+<span class="sourceLineNo">307</span>         * @return value<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         */<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        public double getAbs(final int index) { // PRIM_TYPE<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                return data[index];<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>        @Override<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                return data[index] != 0; // BOOLEAN_FALSE<a name="line.315"></a>
+<span class="sourceLineNo">316</span>        }<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span>        @Override<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        public double getElementDoubleAbs(final int index) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                return data[index]; // BOOLEAN_ZERO<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 long getElementLongAbs(final int index) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                return DTypeUtils.toLong(data[index]); // BOOLEAN_ZERO // OMIT_TOLONG_INT<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>        @Override<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        public Object getObjectAbs(final int index) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                return data[index];<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>        @Override<a name="line.333"></a>
+<span class="sourceLineNo">334</span>        public String getStringAbs(final int index) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                return stringFormat == null ? String.format("%.8g", data[index]) : // FORMAT_STRING<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                        stringFormat.format(data[index]);<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>         * Set a value at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.341"></a>
+<span class="sourceLineNo">342</span>         * <a name="line.342"></a>
+<span class="sourceLineNo">343</span>         * @param index<a name="line.343"></a>
+<span class="sourceLineNo">344</span>         *            absolute index<a name="line.344"></a>
+<span class="sourceLineNo">345</span>         * @param val<a name="line.345"></a>
+<span class="sourceLineNo">346</span>         *            new value<a name="line.346"></a>
+<span class="sourceLineNo">347</span>         */<a name="line.347"></a>
+<span class="sourceLineNo">348</span>        public void setAbs(final int index, final double val) { // PRIM_TYPE<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                setDirty();<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                data[index] = val;<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>        @Override<a name="line.353"></a>
+<span class="sourceLineNo">354</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                setDirty();<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                double[] dsrc = (double[]) src; // PRIM_TYPE<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                data[dindex] = dsrc[sindex];<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 void setObjectAbs(final int index, final Object obj) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                if (index &lt; 0 || index &gt; data.length) {<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                        throw new IndexOutOfBoundsException("Index given is outside dataset");<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>                setAbs(index, DTypeUtils.toReal(obj)); // FROM_OBJECT<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>         * @return item in first position<a name="line.370"></a>
+<span class="sourceLineNo">371</span>         * @since 2.0<a name="line.371"></a>
+<span class="sourceLineNo">372</span>         */<a name="line.372"></a>
+<span class="sourceLineNo">373</span>        public double get() { // PRIM_TYPE<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                return data[getFirst1DIndex()];<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>         * @return item in given position<a name="line.379"></a>
+<span class="sourceLineNo">380</span>         */<a name="line.380"></a>
+<span class="sourceLineNo">381</span>        public double get(final int i) { // PRIM_TYPE<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                return data[get1DIndex(i)];<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        }<a name="line.383"></a>
+<span class="sourceLineNo">384</span><a name="line.384"></a>
+<span class="sourceLineNo">385</span>        /**<a name="line.385"></a>
+<span class="sourceLineNo">386</span>         * @param i<a name="line.386"></a>
+<span class="sourceLineNo">387</span>         * @param j<a name="line.387"></a>
+<span class="sourceLineNo">388</span>         * @return item in given position<a name="line.388"></a>
+<span class="sourceLineNo">389</span>         */<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        public double get(final int i, final int j) { // PRIM_TYPE<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                return data[get1DIndex(i, j)];<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        }<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>        /**<a name="line.394"></a>
+<span class="sourceLineNo">395</span>         * @param pos<a name="line.395"></a>
+<span class="sourceLineNo">396</span>         * @return item in given position<a name="line.396"></a>
+<span class="sourceLineNo">397</span>         */<a name="line.397"></a>
+<span class="sourceLineNo">398</span>        public double get(final int... pos) { // PRIM_TYPE<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                return data[get1DIndex(pos)];<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>        @Override<a name="line.402"></a>
+<span class="sourceLineNo">403</span>        public Object getObject() {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                return Double.valueOf(get()); // CLASS_TYPE<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>        @Override<a name="line.407"></a>
+<span class="sourceLineNo">408</span>        public Object getObject(final int i) {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                return Double.valueOf(get(i)); // CLASS_TYPE<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>        @Override<a name="line.412"></a>
+<span class="sourceLineNo">413</span>        public Object getObject(final int i, final int j) {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                return Double.valueOf(get(i, j)); // CLASS_TYPE<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>        @Override<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        public Object getObject(final int... pos) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                return Double.valueOf(get(pos)); // CLASS_TYPE<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>        @Override<a name="line.422"></a>
+<span class="sourceLineNo">423</span>        public String getString() {<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                return getStringAbs(getFirst1DIndex());<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>        @Override<a name="line.427"></a>
+<span class="sourceLineNo">428</span>        public String getString(final int i) {<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                return getStringAbs(get1DIndex(i));<a name="line.429"></a>
+<span class="sourceLineNo">430</span>        }<a name="line.430"></a>
+<span class="sourceLineNo">431</span><a name="line.431"></a>
+<span class="sourceLineNo">432</span>        @Override<a name="line.432"></a>
+<span class="sourceLineNo">433</span>        public String getString(final int i, final int j) {<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                return getStringAbs(get1DIndex(i, j));<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 String getString(final int... pos) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                return getStringAbs(get1DIndex(pos));<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        }<a name="line.440"></a>
+<span class="sourceLineNo">441</span><a name="line.441"></a>
+<span class="sourceLineNo">442</span>        @Override<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        public double getDouble() {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                return get(); // BOOLEAN_ZERO<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>        @Override<a name="line.447"></a>
+<span class="sourceLineNo">448</span>        public double getDouble(final int i) {<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                return get(i); // BOOLEAN_ZERO<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>        @Override<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        public double getDouble(final int i, final int j) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                return get(i, j); // BOOLEAN_ZERO<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>        @Override<a name="line.457"></a>
+<span class="sourceLineNo">458</span>        public double getDouble(final int... pos) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                return get(pos); // BOOLEAN_ZERO<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>        @Override<a name="line.462"></a>
+<span class="sourceLineNo">463</span>        public float getFloat() {<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                return (float) get(); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        }<a name="line.465"></a>
+<span class="sourceLineNo">466</span><a name="line.466"></a>
+<span class="sourceLineNo">467</span>        @Override<a name="line.467"></a>
+<span class="sourceLineNo">468</span>        public float getFloat(final int i) {<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                return (float) get(i); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        }<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>        @Override<a name="line.472"></a>
+<span class="sourceLineNo">473</span>        public float getFloat(final int i, final int j) {<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                return (float) get(i, j); // BOOLEAN_ZERO // OMIT_REAL_CAST<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 float getFloat(final int... pos) {<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                return (float) get(pos); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        }<a name="line.480"></a>
+<span class="sourceLineNo">481</span><a name="line.481"></a>
+<span class="sourceLineNo">482</span>        @Override<a name="line.482"></a>
+<span class="sourceLineNo">483</span>        public long getLong() {<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                return (long) get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.484"></a>
+<span class="sourceLineNo">485</span>        }<a name="line.485"></a>
+<span class="sourceLineNo">486</span><a name="line.486"></a>
+<span class="sourceLineNo">487</span>        @Override<a name="line.487"></a>
+<span class="sourceLineNo">488</span>        public long getLong(final int i) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                return (long) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.489"></a>
+<span class="sourceLineNo">490</span>        }<a name="line.490"></a>
+<span class="sourceLineNo">491</span><a name="line.491"></a>
+<span class="sourceLineNo">492</span>        @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span>        public long getLong(final int i, final int j) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                return (long) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.497"></a>
+<span class="sourceLineNo">498</span>        public long getLong(final int... pos) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                return (long) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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 getInt() {<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                return (int) get(); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.507"></a>
+<span class="sourceLineNo">508</span>        public int getInt(final int i) {<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                return (int) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.509"></a>
+<span class="sourceLineNo">510</span>        }<a name="line.510"></a>
+<span class="sourceLineNo">511</span><a name="line.511"></a>
+<span class="sourceLineNo">512</span>        @Override<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        public int getInt(final int i, final int j) {<a name="line.513"></a>
+<span class="sourceLineNo">514</span>                return (int) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.514"></a>
+<span class="sourceLineNo">515</span>        }<a name="line.515"></a>
+<span class="sourceLineNo">516</span><a name="line.516"></a>
+<span class="sourceLineNo">517</span>        @Override<a name="line.517"></a>
+<span class="sourceLineNo">518</span>        public int getInt(final int... pos) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                return (int) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.519"></a>
+<span class="sourceLineNo">520</span>        }<a name="line.520"></a>
+<span class="sourceLineNo">521</span><a name="line.521"></a>
+<span class="sourceLineNo">522</span>        @Override<a name="line.522"></a>
+<span class="sourceLineNo">523</span>        public short getShort() {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                return (short) get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.524"></a>
+<span class="sourceLineNo">525</span>        }<a name="line.525"></a>
+<span class="sourceLineNo">526</span><a name="line.526"></a>
+<span class="sourceLineNo">527</span>        @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        public short getShort(final int i) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                return (short) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.529"></a>
+<span class="sourceLineNo">530</span>        }<a name="line.530"></a>
+<span class="sourceLineNo">531</span><a name="line.531"></a>
+<span class="sourceLineNo">532</span>        @Override<a name="line.532"></a>
+<span class="sourceLineNo">533</span>        public short getShort(final int i, final int j) {<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                return (short) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.537"></a>
+<span class="sourceLineNo">538</span>        public short getShort(final int... pos) {<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                return (short) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.539"></a>
+<span class="sourceLineNo">540</span>        }<a name="line.540"></a>
+<span class="sourceLineNo">541</span><a name="line.541"></a>
+<span class="sourceLineNo">542</span>        @Override<a name="line.542"></a>
+<span class="sourceLineNo">543</span>        public byte getByte() {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                return (byte) get(); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte(final int i) {<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                return (byte) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.549"></a>
+<span class="sourceLineNo">550</span>        }<a name="line.550"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>        @Override<a name="line.552"></a>
+<span class="sourceLineNo">553</span>        public byte getByte(final int i, final int j) {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                return (byte) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte(final int... pos) {<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                return (byte) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.559"></a>
+<span class="sourceLineNo">560</span>        }<a name="line.560"></a>
+<span class="sourceLineNo">561</span><a name="line.561"></a>
+<span class="sourceLineNo">562</span>        @Override<a name="line.562"></a>
+<span class="sourceLineNo">563</span>        public boolean getBoolean() {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                return get() != 0; // BOOLEAN_FALSE<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>        @Override<a name="line.567"></a>
+<span class="sourceLineNo">568</span>        public boolean getBoolean(final int i) {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                return get(i) != 0; // BOOLEAN_FALSE<a name="line.569"></a>
+<span class="sourceLineNo">570</span>        }<a name="line.570"></a>
+<span class="sourceLineNo">571</span><a name="line.571"></a>
+<span class="sourceLineNo">572</span>        @Override<a name="line.572"></a>
+<span class="sourceLineNo">573</span>        public boolean getBoolean(final int i, final int j) {<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                return get(i, j) != 0; // BOOLEAN_FALSE<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>        @Override<a name="line.577"></a>
+<span class="sourceLineNo">578</span>        public boolean getBoolean(final int... pos) {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                return get(pos) != 0; // BOOLEAN_FALSE<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>         * Sets the value at first point to the passed value. The dataset must not be null<a name="line.583"></a>
+<span class="sourceLineNo">584</span>         * <a name="line.584"></a>
+<span class="sourceLineNo">585</span>         * @param value<a name="line.585"></a>
+<span class="sourceLineNo">586</span>         * @since 2.0<a name="line.586"></a>
+<span class="sourceLineNo">587</span>         */<a name="line.587"></a>
+<span class="sourceLineNo">588</span>        public void setItem(final double value) { // PRIM_TYPE<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                setAbs(getFirst1DIndex(), value);<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>         * Sets the value at a particular point to the passed value. The dataset must be 1D<a name="line.593"></a>
+<span class="sourceLineNo">594</span>         * <a name="line.594"></a>
+<span class="sourceLineNo">595</span>         * @param value<a name="line.595"></a>
+<span class="sourceLineNo">596</span>         * @param i<a name="line.596"></a>
+<span class="sourceLineNo">597</span>         */<a name="line.597"></a>
+<span class="sourceLineNo">598</span>        public void setItem(final double value, final int i) { // PRIM_TYPE<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                setAbs(get1DIndex(i), value);<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>         * Sets the value at a particular point to the passed value. The dataset must be 2D<a name="line.603"></a>
+<span class="sourceLineNo">604</span>         * <a name="line.604"></a>
+<span class="sourceLineNo">605</span>         * @param value<a name="line.605"></a>
+<span class="sourceLineNo">606</span>         * @param i<a name="line.606"></a>
+<span class="sourceLineNo">607</span>         * @param j<a name="line.607"></a>
+<span class="sourceLineNo">608</span>         */<a name="line.608"></a>
+<span class="sourceLineNo">609</span>        public void setItem(final double value, final int i, final int j) { // PRIM_TYPE<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                setAbs(get1DIndex(i, j), value);<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>         * Sets the value at a particular point to the passed value<a name="line.614"></a>
+<span class="sourceLineNo">615</span>         * <a name="line.615"></a>
+<span class="sourceLineNo">616</span>         * @param value<a name="line.616"></a>
+<span class="sourceLineNo">617</span>         * @param pos<a name="line.617"></a>
+<span class="sourceLineNo">618</span>         */<a name="line.618"></a>
+<span class="sourceLineNo">619</span>        public void setItem(final double value, final int... pos) { // PRIM_TYPE<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                setAbs(get1DIndex(pos), value);<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 void set(final Object obj) {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                setItem(DTypeUtils.toReal(obj)); // FROM_OBJECT<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 void set(final Object obj, final int i) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                setItem(DTypeUtils.toReal(obj), i); // FROM_OBJECT<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 void set(final Object obj, final int i, final int j) {<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                setItem(DTypeUtils.toReal(obj), i, j); // FROM_OBJECT<a name="line.635"></a>
+<span class="sourceLineNo">636</span>        }<a name="line.636"></a>
+<span class="sourceLineNo">637</span><a name="line.637"></a>
+<span class="sourceLineNo">638</span>        @Override<a name="line.638"></a>
+<span class="sourceLineNo">639</span>        public void set(final Object obj, int... pos) {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                        pos = new int[shape.length];<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>                setItem(DTypeUtils.toReal(obj), pos); // FROM_OBJECT<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>        @Override<a name="line.647"></a>
+<span class="sourceLineNo">648</span>        public void resize(int... newShape) {<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                setDirty();<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                final IndexIterator iter = getIterator();<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                final int nsize = ShapeUtils.calcSize(newShape);<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                final double[] ndata; // PRIM_TYPE<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                try {<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                        ndata = createArray(nsize);<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                } catch (Throwable t) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                        throw new IllegalArgumentException(t);<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                }<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                for (int i = 0; iter.hasNext() &amp;&amp; i &lt; nsize; i++) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        ndata[i] = data[iter.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>                odata = data = ndata;<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                size = nsize;<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                shape = newShape;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                stride = null;<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                offset = 0;<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                base = null;<a name="line.668"></a>
+<span class="sourceLineNo">669</span>        }<a name="line.669"></a>
+<span class="sourceLineNo">670</span><a name="line.670"></a>
+<span class="sourceLineNo">671</span>        @Override<a name="line.671"></a>
+<span class="sourceLineNo">672</span>        public DoubleDataset sort(Integer axis) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                setDirty(); // BOOLEAN_OMIT<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                if (axis == null) { // BOOLEAN_OMIT<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        if (stride == null) { // BOOLEAN_OMIT<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                                Arrays.sort(data); // BOOLEAN_OMIT<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                        } else { // BOOLEAN_OMIT<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                                DoubleDataset ads = clone().sort(null); // BOOLEAN_OMIT<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                                setSlicedView(getView(false), ads); // BOOLEAN_OMIT<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                        } // BOOLEAN_OMIT<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                } else { // BOOLEAN_OMIT<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                        axis = checkAxis(axis); // BOOLEAN_OMIT<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                         // BOOLEAN_OMIT <a name="line.683"></a>
+<span class="sourceLineNo">684</span>                        DoubleDataset ads = new DoubleDataset(shape[axis]); // BOOLEAN_OMIT<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                        PositionIterator pi = getPositionIterator(axis); // BOOLEAN_OMIT<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                        int[] pos = pi.getPos(); // BOOLEAN_OMIT<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                        boolean[] hit = pi.getOmit(); // BOOLEAN_OMIT<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                        while (pi.hasNext()) { // BOOLEAN_OMIT<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                                copyItemsFromAxes(pos, hit, ads); // BOOLEAN_OMIT<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                                Arrays.sort(ads.data); // BOOLEAN_OMIT<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                                setItemsOnAxes(pos, hit, ads.data); // BOOLEAN_OMIT<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        } // BOOLEAN_OMIT<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                } // BOOLEAN_OMIT<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                return this; // BOOLEAN_OMIT<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                // throw new UnsupportedOperationException("Cannot sort dataset"); // BOOLEAN_USE<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 getUniqueItems() {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                Set&lt;Double&gt; set = new TreeSet&lt;Double&gt;(); // CLASS_TYPE<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                IndexIterator it = getIterator();<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                while (it.hasNext()) {<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                        set.add(data[it.index]);<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>                DoubleDataset u = new DoubleDataset(set.size()); // CLASS_TYPE<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                int i = 0;<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                double[] udata = u.getData(); // PRIM_TYPE<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                for (Double v : set) { // CLASS_TYPE<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        udata[i++] = v;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                return u;<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 DoubleDataset getSlice(final SliceIterator siter) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                DoubleDataset result = new DoubleDataset(siter.getShape());<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                double[] rdata = result.data; // PRIM_TYPE<a name="line.718"></a>
+<span class="sourceLineNo">719</span><a name="line.719"></a>
+<span class="sourceLineNo">720</span>                for (int i = 0; siter.hasNext(); i++)<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                        rdata[i] = data[siter.index];<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                return result;<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>        @Override<a name="line.727"></a>
+<span class="sourceLineNo">728</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                IndexIterator riter = result.getIterator();<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                result.setDirty();<a name="line.730"></a>
+<span class="sourceLineNo">731</span><a name="line.731"></a>
+<span class="sourceLineNo">732</span>                double[] rdata = ((DoubleDataset) result).data; // PRIM_TYPE<a name="line.732"></a>
+<span class="sourceLineNo">733</span><a name="line.733"></a>
+<span class="sourceLineNo">734</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                        rdata[riter.index] = data[iter.index];<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                }<a name="line.736"></a>
+<span class="sourceLineNo">737</span>        }<a name="line.737"></a>
+<span class="sourceLineNo">738</span><a name="line.738"></a>
+<span class="sourceLineNo">739</span>        @Override<a name="line.739"></a>
+<span class="sourceLineNo">740</span>        public DoubleDataset setByBoolean(final Object obj, Dataset selection) {<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                setDirty();<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                if (obj instanceof Dataset) {<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                        final Dataset ds = (Dataset) obj;<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                        if (length != ds.getSize()) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                                throw new IllegalArgumentException(<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.751"></a>
+<span class="sourceLineNo">752</span><a name="line.752"></a>
+<span class="sourceLineNo">753</span>                        while (biter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                                data[biter.index] = ds.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        }<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                } else {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                        final double dv = DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.758"></a>
+<span class="sourceLineNo">759</span><a name="line.759"></a>
+<span class="sourceLineNo">760</span>                        while (biter.hasNext()) {<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                                data[biter.index] = dv;<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>                return this;<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>        @Override<a name="line.767"></a>
+<span class="sourceLineNo">768</span>        public DoubleDataset setBy1DIndex(final Object obj, final Dataset index) {<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                setDirty();<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                if (obj instanceof Dataset) {<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                        final Dataset ds = (Dataset) obj;<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                        if (index.getSize() != ds.getSize()) {<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                                throw new IllegalArgumentException(<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                                                "Number of items in index dataset does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                        final IntegerIterator iter = new IntegerIterator(index, size);<a name="line.778"></a>
+<span class="sourceLineNo">779</span><a name="line.779"></a>
+<span class="sourceLineNo">780</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                                data[iter.index] = ds.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                        }<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                } else {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                        final double dv = DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        IntegerIterator iter = new IntegerIterator(index, size);<a name="line.785"></a>
+<span class="sourceLineNo">786</span><a name="line.786"></a>
+<span class="sourceLineNo">787</span>                        while (iter.hasNext()) {<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                                data[iter.index] = dv;<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                        }<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                }<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                return this;<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 DoubleDataset setByIndexes(final Object obj, final Object... indexes) {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                setDirty();<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                final int[] pos = iter.getPos();<a name="line.798"></a>
+<span class="sourceLineNo">799</span><a name="line.799"></a>
+<span class="sourceLineNo">800</span>                if (obj instanceof Dataset) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                        final Dataset ds = (Dataset) obj;<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                                throw new IllegalArgumentException(<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                                                "Number of items in index datasets does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.807"></a>
+<span class="sourceLineNo">808</span><a name="line.808"></a>
+<span class="sourceLineNo">809</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                                setItem(ds.getElementDoubleAbs(oiter.index), pos); // GET_ELEMENT_WITH_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>                        final double dv = DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.813"></a>
+<span class="sourceLineNo">814</span><a name="line.814"></a>
+<span class="sourceLineNo">815</span>                        while (iter.hasNext()) {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                                setItem(dv, pos);<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                        }<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                }<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                return this;<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>        DoubleDataset setSlicedView(Dataset view, Dataset d) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                setDirty();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span>                while (it.hasNext()) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                        data[it.aIndex] = it.bDouble; // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                }<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                return this;<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 DoubleDataset setSlice(final Object obj, final IndexIterator siter) {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                setDirty();<a name="line.835"></a>
+<span class="sourceLineNo">836</span><a name="line.836"></a>
+<span class="sourceLineNo">837</span>                if (obj instanceof IDataset) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                        final IDataset ds = (IDataset) obj;<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                        final int[] oshape = ds.getShape();<a name="line.839"></a>
+<span class="sourceLineNo">840</span><a name="line.840"></a>
+<span class="sourceLineNo">841</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                                throw new IllegalArgumentException(String.format(<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                                                Arrays.toString(siter.getShape())));<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>                        if (ds instanceof Dataset) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                final Dataset ads = (Dataset) ds;<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                final IndexIterator oiter = ads.getIterator();<a name="line.849"></a>
+<span class="sourceLineNo">850</span><a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                        data[siter.index] = ads.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                        } else {<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                final int[] pos = oiter.getPos();<a name="line.855"></a>
+<span class="sourceLineNo">856</span><a name="line.856"></a>
+<span class="sourceLineNo">857</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                                        data[siter.index] = ds.getDouble(pos); // PRIM_TYPE<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        }<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                } else {<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        try {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                double v = DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.862"></a>
+<span class="sourceLineNo">863</span><a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                while (siter.hasNext())<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                                        data[siter.index] = v;<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                        } catch (IllegalArgumentException e) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<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 this;<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>        @Override<a name="line.873"></a>
+<span class="sourceLineNo">874</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                double[] ddata = (double[]) dest.getBuffer(); // PRIM_TYPE<a name="line.875"></a>
+<span class="sourceLineNo">876</span><a name="line.876"></a>
+<span class="sourceLineNo">877</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.878"></a>
+<span class="sourceLineNo">879</span><a name="line.879"></a>
+<span class="sourceLineNo">880</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.880"></a>
+<span class="sourceLineNo">881</span><a name="line.881"></a>
+<span class="sourceLineNo">882</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<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>                dest.setDirty();<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                        ddata[diter.index] = data[siter.index];<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                }<a name="line.889"></a>
+<span class="sourceLineNo">890</span>        }<a name="line.890"></a>
+<span class="sourceLineNo">891</span><a name="line.891"></a>
+<span class="sourceLineNo">892</span>        @Override<a name="line.892"></a>
+<span class="sourceLineNo">893</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                setDirty();<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                double[] sdata = (double[]) src; // PRIM_TYPE<a name="line.895"></a>
+<span class="sourceLineNo">896</span><a name="line.896"></a>
+<span class="sourceLineNo">897</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.897"></a>
+<span class="sourceLineNo">898</span><a name="line.898"></a>
+<span class="sourceLineNo">899</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                        throw new IllegalArgumentException("destination array is not large enough");<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>                for (int i = 0; siter.hasNext(); i++) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        data[siter.index] = sdata[i];<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                }<a name="line.905"></a>
+<span class="sourceLineNo">906</span>        }<a name="line.906"></a>
+<span class="sourceLineNo">907</span><a name="line.907"></a>
+<span class="sourceLineNo">908</span>        private List&lt;int[]&gt; findPositions(final double value) { // PRIM_TYPE<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                IndexIterator iter = getIterator(true);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                List&lt;int[]&gt; posns = new ArrayList&lt;int[]&gt;();<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                int[] pos = iter.getPos();<a name="line.911"></a>
+<span class="sourceLineNo">912</span><a name="line.912"></a>
+<span class="sourceLineNo">913</span>                if (Double.isNaN(value)) { // CLASS_TYPE // REAL_ONLY<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                        while (iter.hasNext()) { // REAL_ONLY<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                if (Double.isNaN(data[iter.index])) { // REAL_ONLY<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                        posns.add(pos.clone()); // REAL_ONLY<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                                } // REAL_ONLY<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                        } // REAL_ONLY<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                } else // REAL_ONLY<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                        while (iter.hasNext()) {<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                                if (data[iter.index] == value) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                                        posns.add(pos.clone());<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>                return posns;<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 int[] maxPos(boolean... ignoreInvalids) {<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE // NAN_OMIT<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                List&lt;int[]&gt; max = md.getMaximumPositions(ignoreInvalids);<a name="line.935"></a>
+<span class="sourceLineNo">936</span><a name="line.936"></a>
+<span class="sourceLineNo">937</span>                if (max == null) {<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                        max = findPositions(md.getMaximum(ignoreInvalids).doubleValue()); // PRIM_TYPE // NAN_OMIT<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.940"></a>
+<span class="sourceLineNo">941</span><a name="line.941"></a>
+<span class="sourceLineNo">942</span>                        md.setMaximumPositions(max);<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>                return max.get(0); // first maximum<a name="line.945"></a>
+<span class="sourceLineNo">946</span>        }<a name="line.946"></a>
+<span class="sourceLineNo">947</span><a name="line.947"></a>
+<span class="sourceLineNo">948</span>        @Override<a name="line.948"></a>
+<span class="sourceLineNo">949</span>        public int[] minPos(boolean... ignoreInvalids) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE // NAN_OMIT<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                List&lt;int[]&gt; min = md.getMinimumPositions(ignoreInvalids);<a name="line.953"></a>
+<span class="sourceLineNo">954</span><a name="line.954"></a>
+<span class="sourceLineNo">955</span>                if (min == null) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                        min = findPositions(md.getMinimum(ignoreInvalids).doubleValue()); // PRIM_TYPE // NAN_OMIT<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.958"></a>
+<span class="sourceLineNo">959</span><a name="line.959"></a>
+<span class="sourceLineNo">960</span>                        md.setMinimumPositions(min);<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>                return min.get(0); // first minimum<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>        @Override<a name="line.966"></a>
+<span class="sourceLineNo">967</span>        public boolean containsNans() {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                        if (Double.isNaN(data[iter.index])) // CLASS_TYPE // REAL_ONLY<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                                return true; // REAL_ONLY<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                } // REAL_ONLY<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                return false;<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>        @Override<a name="line.976"></a>
+<span class="sourceLineNo">977</span>        public boolean containsInfs() {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                        if (Double.isInfinite(data[iter.index])) // CLASS_TYPE // REAL_ONLY<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                return true; // REAL_ONLY<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                } // REAL_ONLY<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                return false;<a name="line.983"></a>
+<span class="sourceLineNo">984</span>        }<a name="line.984"></a>
+<span class="sourceLineNo">985</span><a name="line.985"></a>
+<span class="sourceLineNo">986</span>        @Override<a name="line.986"></a>
+<span class="sourceLineNo">987</span>        public boolean containsInvalidNumbers() {<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                        double x = data[iter.index]; // PRIM_TYPE // REAL_ONLY<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                        if (Double.isNaN(x) || Double.isInfinite(x)) // CLASS_TYPE // REAL_ONLY<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                return true; // REAL_ONLY<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                } // REAL_ONLY<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                return false;<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>        @Override<a name="line.997"></a>
+<span class="sourceLineNo">998</span>        public DoubleDataset iadd(final Object b) {<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                setDirty(); // NAN_OMIT<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b); // NAN_OMIT<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                boolean useLong = bds.getElementClass().equals(Long.class); // NAN_OMIT<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                if (bds.getSize() == 1) { // NAN_OMIT<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                        final IndexIterator it = getIterator(); // NAN_OMIT<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                        final int bOffset = bds.getOffset(); // NAN_OMIT<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                        if (useLong) { // NAN_OMIT<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                                final long lb = bds.getElementLongAbs(bOffset); // NAN_OMIT<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                                        data[it.index] += lb; // NAN_OMIT<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                                } // NAN_OMIT<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                        } else { // NAN_OMIT<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                                final double db = bds.getElementDoubleAbs(bOffset); // NAN_OMIT<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                        data[it.index] += db; // NAN_OMIT<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                } // NAN_OMIT<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                        } // NAN_OMIT<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                } else { // NAN_OMIT<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds); // NAN_OMIT<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                        it.setOutputDouble(!useLong); // NAN_OMIT<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                        if (useLong) { // NAN_OMIT<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                        data[it.aIndex] += it.bLong; // NAN_OMIT<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                } // NAN_OMIT<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                        } else { // NAN_OMIT<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                        data[it.aIndex] += it.bDouble; // NAN_OMIT<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                } // NAN_OMIT<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                        } // NAN_OMIT<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                } // NAN_OMIT<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                return this;<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 DoubleDataset isubtract(final Object b) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                setDirty(); // NAN_OMIT<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b); // NAN_OMIT<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                boolean useLong = bds.getElementClass().equals(Long.class); // NAN_OMIT<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                if (bds.getSize() == 1) { // NAN_OMIT<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                        final IndexIterator it = getIterator(); // NAN_OMIT<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                        final int bOffset = bds.getOffset(); // NAN_OMIT<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                        if (useLong) { // NAN_OMIT<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                                final long lb = bds.getElementLongAbs(bOffset); // NAN_OMIT<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                                        data[it.index] -= lb; // NAN_OMIT<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                                } // NAN_OMIT<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                        } else { // NAN_OMIT<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                                final double db = bds.getElementDoubleAbs(bOffset); // NAN_OMIT<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                                        data[it.index] -= db; // NAN_OMIT<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                } // NAN_OMIT<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                        } // NAN_OMIT<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                } else { // NAN_OMIT<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds); // NAN_OMIT<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                        if (useLong) { // NAN_OMIT<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                it.setOutputDouble(false); // NAN_OMIT<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                                        data[it.aIndex] -= it.bLong; // NAN_OMIT<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                                } // NAN_OMIT<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                        } else { // NAN_OMIT<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                                it.setOutputDouble(true); // NAN_OMIT<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                                        data[it.aIndex] -= it.bDouble; // NAN_OMIT<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                } // NAN_OMIT<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                        } // NAN_OMIT<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                } // NAN_OMIT<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                return this;<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>        @Override<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>        public DoubleDataset imultiply(final Object b) {<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                setDirty(); // NAN_OMIT<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b); // NAN_OMIT<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                boolean useLong = bds.getElementClass().equals(Long.class); // NAN_OMIT<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                if (bds.getSize() == 1) { // NAN_OMIT<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        final IndexIterator it = getIterator(); // NAN_OMIT<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                        final int bOffset = bds.getOffset(); // NAN_OMIT<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        if (useLong) { // NAN_OMIT<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                final long lb = bds.getElementLongAbs(bOffset); // NAN_OMIT<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                        data[it.index] *= lb; // NAN_OMIT<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                } // NAN_OMIT<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                        } else { // NAN_OMIT<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                final double db = bds.getElementDoubleAbs(bOffset); // NAN_OMIT<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                        data[it.index] *= db; // NAN_OMIT<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                } // NAN_OMIT<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                        } // NAN_OMIT<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                } else { // NAN_OMIT<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds); // NAN_OMIT<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                        it.setOutputDouble(!useLong); // NAN_OMIT<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                        if (useLong) { // NAN_OMIT<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                        data[it.aIndex] *= it.bLong; // NAN_OMIT<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                } // NAN_OMIT<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                        } else { // 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.aIndex] *= it.bDouble; // NAN_OMIT<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                                } // NAN_OMIT<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                        } // NAN_OMIT<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                } // NAN_OMIT<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                return this;<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>        @Override<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>        public DoubleDataset idivide(final Object b) {<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                setDirty(); // NAN_OMIT<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b); // NAN_OMIT<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                boolean useLong = bds.getElementClass().equals(Long.class); // NAN_OMIT<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                if (bds.getSize() == 1) { // NAN_OMIT<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        final int bOffset = bds.getOffset(); // NAN_OMIT<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                        if (useLong) { // NAN_OMIT<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                                final long lb = bds.getElementLongAbs(bOffset); // NAN_OMIT<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                // if (lb == 0) { // INT_USE // NAN_OMIT<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                //      fill(0); // INT_USE // NAN_OMIT<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                // } else { // INT_USE // NAN_OMIT<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                final IndexIterator it = getIterator(); // NAN_OMIT<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        data[it.index] /= lb; // NAN_OMIT<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                } // 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>                        } else { // NAN_OMIT<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                final double db = bds.getElementDoubleAbs(bOffset); // NAN_OMIT<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                // if (db == 0) { // INT_USE // NAN_OMIT<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                //      fill(0); // INT_USE // NAN_OMIT<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                // } else { // INT_USE // NAN_OMIT<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                final IndexIterator it = getIterator(); // NAN_OMIT<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                        data[it.index] /= db; // NAN_OMIT<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                } // NAN_OMIT<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                // } // INT_USE // NAN_OMIT<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                        } // NAN_OMIT<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                } else { // NAN_OMIT<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds); // NAN_OMIT<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                        it.setOutputDouble(!useLong); // NAN_OMIT<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                        if (useLong) { // NAN_OMIT<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                        // if (it.bLong == 0) { // INT_USE // NAN_OMIT<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                        //      data[it.aIndex] = 0; // INT_USE // NAN_OMIT<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        // } else { // INT_USE // NAN_OMIT<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                        data[it.aIndex] /= it.bLong; // NAN_OMIT<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        // } // INT_USE // NAN_OMIT<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                } // NAN_OMIT<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        } else { // NAN_OMIT<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                        // if (it.bDouble == 0) { // INT_USE // NAN_OMIT<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                        //      data[it.aIndex] = 0; // INT_USE // NAN_OMIT<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                        // } else { // INT_USE // NAN_OMIT<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                        data[it.aIndex] /= it.bDouble; // NAN_OMIT<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                        // } // INT_USE // NAN_OMIT<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                } // NAN_OMIT<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                        } // NAN_OMIT<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                } // NAN_OMIT<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                return this;<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>        }<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span><a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>        @Override<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>        public DoubleDataset ifloor() {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                setDirty(); // REAL_ONLY<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                IndexIterator it = getIterator(); // REAL_ONLY<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                while (it.hasNext()) { // REAL_ONLY<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                        data[it.index] = Math.floor(data[it.index]); // PRIM_TYPE // REAL_ONLY // ADD_CAST<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                } // REAL_ONLY<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                return this;<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>        @Override<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>        public DoubleDataset iremainder(final Object b) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                setDirty(); // NAN_OMIT<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b); // NAN_OMIT<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                boolean useLong = bds.getElementClass().equals(Long.class); // NAN_OMIT<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                if (bds.getSize() == 1) { // NAN_OMIT<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                        final int bOffset = bds.getOffset(); // NAN_OMIT<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                        if (useLong) { // NAN_OMIT<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                final long lb = bds.getElementLongAbs(bOffset); // NAN_OMIT<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                // if (lb == 0) { // INT_USE // NAN_OMIT<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                //      fill(0); // INT_USE // NAN_OMIT<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                                // } else { // INT_USE // NAN_OMIT<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                                final IndexIterator it = getIterator(); // NAN_OMIT<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                                        data[it.index] %= lb; // NAN_OMIT<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                                } // NAN_OMIT<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>                                // } // INT_USE // NAN_OMIT<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                        } else { // NAN_OMIT<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                                final long lb = bds.getElementLongAbs(bOffset); // NAN_OMIT<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                                // if (lb == 0) { // INT_USE // NAN_OMIT<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>                                //      fill(0); // INT_USE // NAN_OMIT<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                                // } else { // INT_USE // NAN_OMIT<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                                final IndexIterator it = getIterator(); // NAN_OMIT<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                                        data[it.index] %= lb; // NAN_OMIT<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                                } // NAN_OMIT<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                                // } // INT_USE // NAN_OMIT<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                        } // NAN_OMIT<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                } else { // NAN_OMIT<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds); // NAN_OMIT<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                        it.setOutputDouble(!useLong); // NAN_OMIT<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                        if (useLong) { // 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>                                        data[it.aIndex] %= it.bLong; // NAN_OMIT // INT_EXCEPTION<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                                } // NAN_OMIT<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                        } else { // NAN_OMIT<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                                        data[it.aIndex] %= it.bDouble; // NAN_OMIT<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                                } // NAN_OMIT<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                        } // NAN_OMIT<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                } // NAN_OMIT<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                return this;<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>        }<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span><a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>        @Override<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>        public DoubleDataset ipower(final Object b) {<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                setDirty(); // NAN_OMIT<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b); // NAN_OMIT<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                if (bds.getSize() == 1) { // NAN_OMIT<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                        final int bOffset = bds.getOffset(); // NAN_OMIT<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                        final double vr = bds.getElementDoubleAbs(bOffset); // NAN_OMIT<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                        final IndexIterator it = getIterator(); // NAN_OMIT<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                        if (bds.isComplex()) { // NAN_OMIT<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                final double vi = bds.getElementDoubleAbs(bOffset + 1); // NAN_OMIT<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                if (vi == 0) { // NAN_OMIT<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        while (it.hasNext()) { // NAN_OMIT<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                                final double v = Math.pow(data[it.index], vr); // NAN_OMIT<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE // NAN_OMIT<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                                //      data[it.index] = 0; // INT_USE // NAN_OMIT<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                                // } else { // INT_USE // NAN_OMIT<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                                data[it.index] = v; // PRIM_TYPE_LONG // NAN_OMIT // ADD_CAST<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                                // } // INT_USE // NAN_OMIT<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                        } // NAN_OMIT<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                } else { // NAN_OMIT<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                        final Complex zv = new Complex(vr, vi); // NAN_OMIT<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        while (it.hasNext()) { // NAN_OMIT<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                                Complex zd = new Complex(data[it.index], 0); // NAN_OMIT<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                                final double v = zd.pow(zv).getReal(); // NAN_OMIT<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE // NAN_OMIT<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                                //      data[it.index] = 0; // INT_USE // NAN_OMIT<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                                // } else { // INT_USE // NAN_OMIT<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                                data[it.index] = v; // PRIM_TYPE_LONG // NAN_OMIT // ADD_CAST<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                                                // } // INT_USE // NAN_OMIT<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                                        } // 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(data[it.index], vr); // 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.index] = 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.index] = 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>                } else { // NAN_OMIT<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds); // NAN_OMIT<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                        it.setOutputDouble(true); // NAN_OMIT<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                        if (bds.isComplex()) { // NAN_OMIT<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1)); // NAN_OMIT<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        final double v = new Complex(it.aDouble, 0).pow(zv).getReal(); // NAN_OMIT<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE // NAN_OMIT<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                        //      data[it.aIndex] = 0; // INT_USE // NAN_OMIT<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                        // } else { // INT_USE // NAN_OMIT<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                        data[it.aIndex] = v; // PRIM_TYPE_LONG // NAN_OMIT // ADD_CAST<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                        // } // INT_USE // NAN_OMIT<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                } // NAN_OMIT<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                        } else {// NAN_OMIT<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                                        final double v = Math.pow(it.aDouble, it.bDouble); // NAN_OMIT<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE // NAN_OMIT<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                                        //      data[it.aIndex] = 0; // INT_USE // NAN_OMIT<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                        // } else { // INT_USE // NAN_OMIT<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                                        data[it.aIndex] = v; // PRIM_TYPE_LONG // NAN_OMIT // ADD_CAST<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                        // } // INT_USE // NAN_OMIT<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                } // NAN_OMIT<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                        } // NAN_OMIT<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                } // NAN_OMIT<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                return this;<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>        }<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span><a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>        @Override<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b); // NAN_OMIT<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds); // NAN_OMIT<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                it.setOutputDouble(true); // NAN_OMIT<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                double sum = 0;<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                double comp = 0; // NAN_OMIT<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                if (ignoreNaNs) { // REAL_ONLY // NAN_OMIT<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                        if (w == null) { // REAL_ONLY // NAN_OMIT<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                while (it.hasNext()) { // REAL_ONLY // NAN_OMIT<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                        final double diff = it.aDouble - it.bDouble; // REAL_ONLY // NAN_OMIT<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                        if (Double.isNaN(diff)) // REAL_ONLY // NAN_OMIT<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                                continue; // REAL_ONLY // NAN_OMIT<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                        final double err = diff * diff - comp; // REAL_ONLY // NAN_OMIT<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                        final double temp = sum + err; // REAL_ONLY // NAN_OMIT<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                                        comp = (temp - sum) - err; // REAL_ONLY // NAN_OMIT<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                                        sum = temp; // REAL_ONLY // NAN_OMIT<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                                } // REAL_ONLY // NAN_OMIT<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                        } else { // REAL_ONLY // NAN_OMIT<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>                                IndexIterator itw = w.getIterator(); // REAL_ONLY // NAN_OMIT<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) { // REAL_ONLY // NAN_OMIT<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                        final double diff = it.aDouble - it.bDouble; // REAL_ONLY // NAN_OMIT<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                        if (Double.isNaN(diff)) // REAL_ONLY // NAN_OMIT<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                                continue; // REAL_ONLY // NAN_OMIT<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                                        final double err = diff * diff * w.getElementDoubleAbs(itw.index) - comp; // REAL_ONLY // NAN_OMIT<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                        final double temp = sum + err; // REAL_ONLY // NAN_OMIT<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                        comp = (temp - sum) - err; // REAL_ONLY // NAN_OMIT<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                                        sum = temp; // REAL_ONLY // NAN_OMIT<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                } // REAL_ONLY // NAN_OMIT<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                        } // REAL_ONLY // NAN_OMIT<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                } else // REAL_ONLY // NAN_OMIT<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                { // NAN_OMIT<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                        if (w == null) { // NAN_OMIT<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                        final double diff = it.aDouble - it.bDouble; // NAN_OMIT<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                        final double err = diff * diff - comp; // NAN_OMIT<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                        final double temp = sum + err; // NAN_OMIT<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                        comp = (temp - sum) - err; // NAN_OMIT<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                        sum = temp; // NAN_OMIT<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                } // NAN_OMIT<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                        } else { // NAN_OMIT<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                                IndexIterator itw = w.getIterator(); // NAN_OMIT<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) { // NAN_OMIT<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                                        final double diff = it.aDouble - it.bDouble; // NAN_OMIT<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                                        final double err = diff * diff * w.getElementDoubleAbs(itw.index) - comp; // NAN_OMIT<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                                        final double temp = sum + err; // NAN_OMIT<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                                        comp = (temp - sum) - err; // NAN_OMIT<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                                        sum = temp; // NAN_OMIT<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                                } // NAN_OMIT<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                        } // NAN_OMIT<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                } // NAN_OMIT<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                return sum;<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>        }<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>}<a name="line.1330"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/FloatDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/FloatDataset.html
new file mode 100644
index 0000000..5dcdd2b
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/FloatDataset.html
@@ -0,0 +1,1402 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// This is generated from DoubleDataset.java by fromdouble.py<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.ArrayList;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.Arrays;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.List;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.Set;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.TreeSet;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.commons.math3.complex.Complex;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.eclipse.january.metadata.StatisticsMetadata;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>/**<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * Extend dataset for float values // PRIM_TYPE<a name="line.28"></a>
+<span class="sourceLineNo">029</span> */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>public class FloatDataset extends AbstractDataset {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        // pin UID to base class<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        protected float[] data; // subclass alias // PRIM_TYPE<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>        @Override<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        protected void setData() {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                data = (float[]) odata; // PRIM_TYPE<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        }<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>        protected static float[] createArray(final int size) { // PRIM_TYPE<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                float[] array = null; // PRIM_TYPE<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>                try {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                        array = new float[size]; // PRIM_TYPE<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                } catch (OutOfMemoryError e) {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                }<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return array;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        @Override<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        public int getDType() {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                return FLOAT32; // DATA_TYPE<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * Create a null dataset<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        FloatDataset() {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        }<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>        /**<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * Create a zero-filled dataset of given shape<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         * @param shape<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         */<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        FloatDataset(final int... shape) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                if (shape != null) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        size = ShapeUtils.calcSize(shape);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        this.shape = shape.clone();<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        try {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                                odata = data = createArray(size);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        } catch (Throwable t) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                throw new IllegalArgumentException(t);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        }<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>        /**<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         * Create a dataset using given data<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @param data<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         * @param shape<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         *            (can be null to create 1D dataset)<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        FloatDataset(final float[] data, int... shape) { // PRIM_TYPE<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                if (data == null) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        throw new IllegalArgumentException("Data must not be null");<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                if (shape == null || shape.length == 0) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                        shape = new int[] { data.length };<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                size = ShapeUtils.calcSize(shape);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                if (size != data.length) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                        Arrays.toString(shape), data.length));<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                }<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                this.shape = size == 0 ? null : shape.clone();<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>                odata = this.data = data;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>        }<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>        /**<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * Copy a dataset<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         * @param dataset<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         */<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        FloatDataset(final FloatDataset dataset) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                copyToView(dataset, this, true, true);<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>                try {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        if (dataset.stride == null) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                if (dataset.data != null) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                                        odata = data = dataset.data.clone();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                }<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        } else {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                offset = 0;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                stride = null;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                base = null;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                odata = data = createArray(size);<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                IndexIterator iter = dataset.getIterator();<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                                for (int i = 0; iter.hasNext(); i++) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                                        data[i] = dataset.data[iter.index];<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                                }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        }<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                } catch (Throwable t) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        throw new IllegalArgumentException(t);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                }<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>        /**<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         * Copy and cast a dataset to this class type<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         * @param dataset<a name="line.138"></a>
+<span class="sourceLineNo">139</span>         */<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        FloatDataset(final Dataset dataset) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                copyToView(dataset, this, true, false);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                offset = 0;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                stride = null;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                base = null;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                try {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        odata = data = createArray(size);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                } catch (Throwable t) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                        throw new IllegalArgumentException(t);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                }<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                IndexIterator iter = dataset.getIterator();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                for (int i = 0; iter.hasNext(); i++) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                        data[i] = (float) dataset.getElementDoubleAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                }<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>        @Override<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        public boolean equals(Object obj) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                if (this == obj) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        return true;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                }<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>                if (obj == null) {<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 (!getClass().equals(obj.getClass())) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                        if (getRank() == 0) { // for zero-rank datasets<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                                return obj.equals(getObjectAbs(offset));<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                        }<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><a name="line.173"></a>
+<span class="sourceLineNo">174</span>                FloatDataset other = (FloatDataset) obj;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                if (size != other.size) {<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>                if (!Arrays.equals(shape, other.shape)) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                        return false;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                if (data == other.data &amp;&amp; stride == null &amp;&amp; other.stride == null) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        return true;<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>                IndexIterator iter = getIterator();<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                IndexIterator oiter = other.getIterator();<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                        if (data[iter.index] != other.data[oiter.index]) { // OBJECT_UNEQUAL<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                                return false;<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>                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 int hashCode() {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                return super.hashCode();<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 FloatDataset clone() {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                return new FloatDataset(this);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        }<a name="line.203"></a>
+<span class="sourceLineNo">204</span><a name="line.204"></a>
+<span class="sourceLineNo">205</span>        /**<a name="line.205"></a>
+<span class="sourceLineNo">206</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * sequences or arrays are padded with zeros.<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         *<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * @param obj<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         * @return dataset with contents given by input<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         */<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        static FloatDataset createFromObject(final Object obj) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                FloatDataset result = new FloatDataset();<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>                if (obj != null) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                        result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                        result.size = ShapeUtils.calcSize(result.shape);<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>                                result.odata = result.data = createArray(result.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(result.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><a name="line.225"></a>
+<span class="sourceLineNo">226</span>                        int[] pos = new int[result.shape.length];<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                        result.fillData(obj, 0, pos);<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>                return result;<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>         *<a name="line.234"></a>
+<span class="sourceLineNo">235</span>         * @param stop<a name="line.235"></a>
+<span class="sourceLineNo">236</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         */<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        static FloatDataset createRange(final double stop) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                return createRange(0, stop, 1);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        }<a name="line.240"></a>
+<span class="sourceLineNo">241</span>        <a name="line.241"></a>
+<span class="sourceLineNo">242</span>        /**<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         *<a name="line.243"></a>
+<span class="sourceLineNo">244</span>         * @param start<a name="line.244"></a>
+<span class="sourceLineNo">245</span>         * @param stop<a name="line.245"></a>
+<span class="sourceLineNo">246</span>         * @param step<a name="line.246"></a>
+<span class="sourceLineNo">247</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.247"></a>
+<span class="sourceLineNo">248</span>         */<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        static FloatDataset createRange(final double start, final double stop, final double step) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                int size = calcSteps(start, stop, step);<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                FloatDataset result = new FloatDataset(size);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                for (int i = 0; i &lt; size; i++) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        result.data[i] = (float) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                }<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                return result;<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>        /**<a name="line.258"></a>
+<span class="sourceLineNo">259</span>         * @param shape<a name="line.259"></a>
+<span class="sourceLineNo">260</span>         * @return a dataset filled with ones<a name="line.260"></a>
+<span class="sourceLineNo">261</span>         */<a name="line.261"></a>
+<span class="sourceLineNo">262</span>        static FloatDataset ones(final int... shape) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                return new FloatDataset(shape).fill(1);<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 FloatDataset fill(final Object obj) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                setDirty();<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                float dv = (float) DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                IndexIterator iter = getIterator();<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                while (iter.hasNext()) {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                        data[iter.index] = dv;<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>                return this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         * @return data buffer as linear array<a name="line.280"></a>
+<span class="sourceLineNo">281</span>         */<a name="line.281"></a>
+<span class="sourceLineNo">282</span>        public float[] getData() { // PRIM_TYPE<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                return data;<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>        protected int getBufferLength() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                if (data == null)<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                        return 0;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                return data.length;<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>        @Override<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        public FloatDataset getView(boolean deepCopyMetadata) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                FloatDataset view = new FloatDataset();<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                view.setData();<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                return view;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>        }<a name="line.299"></a>
+<span class="sourceLineNo">300</span><a name="line.300"></a>
+<span class="sourceLineNo">301</span>        /**<a name="line.301"></a>
+<span class="sourceLineNo">302</span>         * 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.302"></a>
+<span class="sourceLineNo">303</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.303"></a>
+<span class="sourceLineNo">304</span>         *<a name="line.304"></a>
+<span class="sourceLineNo">305</span>         * @param index<a name="line.305"></a>
+<span class="sourceLineNo">306</span>         *            absolute index<a name="line.306"></a>
+<span class="sourceLineNo">307</span>         * @return value<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         */<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        public float getAbs(final int index) { // PRIM_TYPE<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                return data[index];<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>        @Override<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                return data[index] != 0; // BOOLEAN_FALSE<a name="line.315"></a>
+<span class="sourceLineNo">316</span>        }<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span>        @Override<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        public double getElementDoubleAbs(final int index) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                return data[index]; // BOOLEAN_ZERO<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 long getElementLongAbs(final int index) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                return DTypeUtils.toLong(data[index]); // BOOLEAN_ZERO // OMIT_TOLONG_INT<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>        @Override<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        public Object getObjectAbs(final int index) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                return data[index];<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>        @Override<a name="line.333"></a>
+<span class="sourceLineNo">334</span>        public String getStringAbs(final int index) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                return stringFormat == null ? String.format("%.8g", data[index]) : // FORMAT_STRING<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                        stringFormat.format(data[index]);<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>         * Set a value at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.341"></a>
+<span class="sourceLineNo">342</span>         *<a name="line.342"></a>
+<span class="sourceLineNo">343</span>         * @param index<a name="line.343"></a>
+<span class="sourceLineNo">344</span>         *            absolute index<a name="line.344"></a>
+<span class="sourceLineNo">345</span>         * @param val<a name="line.345"></a>
+<span class="sourceLineNo">346</span>         *            new value<a name="line.346"></a>
+<span class="sourceLineNo">347</span>         */<a name="line.347"></a>
+<span class="sourceLineNo">348</span>        public void setAbs(final int index, final float val) { // PRIM_TYPE<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                setDirty();<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                data[index] = val;<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>        @Override<a name="line.353"></a>
+<span class="sourceLineNo">354</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                setDirty();<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                float[] dsrc = (float[]) src; // PRIM_TYPE<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                data[dindex] = dsrc[sindex];<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 void setObjectAbs(final int index, final Object obj) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                if (index &lt; 0 || index &gt; data.length) {<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                        throw new IndexOutOfBoundsException("Index given is outside dataset");<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>                setAbs(index, (float) DTypeUtils.toReal(obj)); // FROM_OBJECT<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>         * @return item in first position<a name="line.370"></a>
+<span class="sourceLineNo">371</span>         * @since 2.0<a name="line.371"></a>
+<span class="sourceLineNo">372</span>         */<a name="line.372"></a>
+<span class="sourceLineNo">373</span>        public float get() { // PRIM_TYPE<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                return data[getFirst1DIndex()];<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>         * @return item in given position<a name="line.379"></a>
+<span class="sourceLineNo">380</span>         */<a name="line.380"></a>
+<span class="sourceLineNo">381</span>        public float get(final int i) { // PRIM_TYPE<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                return data[get1DIndex(i)];<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        }<a name="line.383"></a>
+<span class="sourceLineNo">384</span><a name="line.384"></a>
+<span class="sourceLineNo">385</span>        /**<a name="line.385"></a>
+<span class="sourceLineNo">386</span>         * @param i<a name="line.386"></a>
+<span class="sourceLineNo">387</span>         * @param j<a name="line.387"></a>
+<span class="sourceLineNo">388</span>         * @return item in given position<a name="line.388"></a>
+<span class="sourceLineNo">389</span>         */<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        public float get(final int i, final int j) { // PRIM_TYPE<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                return data[get1DIndex(i, j)];<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        }<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>        /**<a name="line.394"></a>
+<span class="sourceLineNo">395</span>         * @param pos<a name="line.395"></a>
+<span class="sourceLineNo">396</span>         * @return item in given position<a name="line.396"></a>
+<span class="sourceLineNo">397</span>         */<a name="line.397"></a>
+<span class="sourceLineNo">398</span>        public float get(final int... pos) { // PRIM_TYPE<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                return data[get1DIndex(pos)];<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>        @Override<a name="line.402"></a>
+<span class="sourceLineNo">403</span>        public Object getObject() {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                return Float.valueOf(get()); // CLASS_TYPE<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>        @Override<a name="line.407"></a>
+<span class="sourceLineNo">408</span>        public Object getObject(final int i) {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                return Float.valueOf(get(i)); // CLASS_TYPE<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>        @Override<a name="line.412"></a>
+<span class="sourceLineNo">413</span>        public Object getObject(final int i, final int j) {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                return Float.valueOf(get(i, j)); // CLASS_TYPE<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>        @Override<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        public Object getObject(final int... pos) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                return Float.valueOf(get(pos)); // CLASS_TYPE<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>        @Override<a name="line.422"></a>
+<span class="sourceLineNo">423</span>        public String getString() {<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                return getStringAbs(getFirst1DIndex());<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>        @Override<a name="line.427"></a>
+<span class="sourceLineNo">428</span>        public String getString(final int i) {<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                return getStringAbs(get1DIndex(i));<a name="line.429"></a>
+<span class="sourceLineNo">430</span>        }<a name="line.430"></a>
+<span class="sourceLineNo">431</span><a name="line.431"></a>
+<span class="sourceLineNo">432</span>        @Override<a name="line.432"></a>
+<span class="sourceLineNo">433</span>        public String getString(final int i, final int j) {<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                return getStringAbs(get1DIndex(i, j));<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 String getString(final int... pos) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                return getStringAbs(get1DIndex(pos));<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        }<a name="line.440"></a>
+<span class="sourceLineNo">441</span><a name="line.441"></a>
+<span class="sourceLineNo">442</span>        @Override<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        public double getDouble() {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                return get(); // BOOLEAN_ZERO<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>        @Override<a name="line.447"></a>
+<span class="sourceLineNo">448</span>        public double getDouble(final int i) {<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                return get(i); // BOOLEAN_ZERO<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>        @Override<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        public double getDouble(final int i, final int j) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                return get(i, j); // BOOLEAN_ZERO<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>        @Override<a name="line.457"></a>
+<span class="sourceLineNo">458</span>        public double getDouble(final int... pos) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                return get(pos); // BOOLEAN_ZERO<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>        @Override<a name="line.462"></a>
+<span class="sourceLineNo">463</span>        public float getFloat() {<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                return get(); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        }<a name="line.465"></a>
+<span class="sourceLineNo">466</span><a name="line.466"></a>
+<span class="sourceLineNo">467</span>        @Override<a name="line.467"></a>
+<span class="sourceLineNo">468</span>        public float getFloat(final int i) {<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                return get(i); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        }<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>        @Override<a name="line.472"></a>
+<span class="sourceLineNo">473</span>        public float getFloat(final int i, final int j) {<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_REAL_CAST<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 float getFloat(final int... pos) {<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                return get(pos); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        }<a name="line.480"></a>
+<span class="sourceLineNo">481</span><a name="line.481"></a>
+<span class="sourceLineNo">482</span>        @Override<a name="line.482"></a>
+<span class="sourceLineNo">483</span>        public long getLong() {<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                return (long) get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.484"></a>
+<span class="sourceLineNo">485</span>        }<a name="line.485"></a>
+<span class="sourceLineNo">486</span><a name="line.486"></a>
+<span class="sourceLineNo">487</span>        @Override<a name="line.487"></a>
+<span class="sourceLineNo">488</span>        public long getLong(final int i) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                return (long) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.489"></a>
+<span class="sourceLineNo">490</span>        }<a name="line.490"></a>
+<span class="sourceLineNo">491</span><a name="line.491"></a>
+<span class="sourceLineNo">492</span>        @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span>        public long getLong(final int i, final int j) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                return (long) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.497"></a>
+<span class="sourceLineNo">498</span>        public long getLong(final int... pos) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                return (long) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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 getInt() {<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                return (int) get(); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.507"></a>
+<span class="sourceLineNo">508</span>        public int getInt(final int i) {<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                return (int) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.509"></a>
+<span class="sourceLineNo">510</span>        }<a name="line.510"></a>
+<span class="sourceLineNo">511</span><a name="line.511"></a>
+<span class="sourceLineNo">512</span>        @Override<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        public int getInt(final int i, final int j) {<a name="line.513"></a>
+<span class="sourceLineNo">514</span>                return (int) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.514"></a>
+<span class="sourceLineNo">515</span>        }<a name="line.515"></a>
+<span class="sourceLineNo">516</span><a name="line.516"></a>
+<span class="sourceLineNo">517</span>        @Override<a name="line.517"></a>
+<span class="sourceLineNo">518</span>        public int getInt(final int... pos) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                return (int) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.519"></a>
+<span class="sourceLineNo">520</span>        }<a name="line.520"></a>
+<span class="sourceLineNo">521</span><a name="line.521"></a>
+<span class="sourceLineNo">522</span>        @Override<a name="line.522"></a>
+<span class="sourceLineNo">523</span>        public short getShort() {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                return (short) get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.524"></a>
+<span class="sourceLineNo">525</span>        }<a name="line.525"></a>
+<span class="sourceLineNo">526</span><a name="line.526"></a>
+<span class="sourceLineNo">527</span>        @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        public short getShort(final int i) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                return (short) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.529"></a>
+<span class="sourceLineNo">530</span>        }<a name="line.530"></a>
+<span class="sourceLineNo">531</span><a name="line.531"></a>
+<span class="sourceLineNo">532</span>        @Override<a name="line.532"></a>
+<span class="sourceLineNo">533</span>        public short getShort(final int i, final int j) {<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                return (short) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.537"></a>
+<span class="sourceLineNo">538</span>        public short getShort(final int... pos) {<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                return (short) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.539"></a>
+<span class="sourceLineNo">540</span>        }<a name="line.540"></a>
+<span class="sourceLineNo">541</span><a name="line.541"></a>
+<span class="sourceLineNo">542</span>        @Override<a name="line.542"></a>
+<span class="sourceLineNo">543</span>        public byte getByte() {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                return (byte) get(); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte(final int i) {<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                return (byte) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.549"></a>
+<span class="sourceLineNo">550</span>        }<a name="line.550"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>        @Override<a name="line.552"></a>
+<span class="sourceLineNo">553</span>        public byte getByte(final int i, final int j) {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                return (byte) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte(final int... pos) {<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                return (byte) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.559"></a>
+<span class="sourceLineNo">560</span>        }<a name="line.560"></a>
+<span class="sourceLineNo">561</span><a name="line.561"></a>
+<span class="sourceLineNo">562</span>        @Override<a name="line.562"></a>
+<span class="sourceLineNo">563</span>        public boolean getBoolean() {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                return get() != 0; // BOOLEAN_FALSE<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>        @Override<a name="line.567"></a>
+<span class="sourceLineNo">568</span>        public boolean getBoolean(final int i) {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                return get(i) != 0; // BOOLEAN_FALSE<a name="line.569"></a>
+<span class="sourceLineNo">570</span>        }<a name="line.570"></a>
+<span class="sourceLineNo">571</span><a name="line.571"></a>
+<span class="sourceLineNo">572</span>        @Override<a name="line.572"></a>
+<span class="sourceLineNo">573</span>        public boolean getBoolean(final int i, final int j) {<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                return get(i, j) != 0; // BOOLEAN_FALSE<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>        @Override<a name="line.577"></a>
+<span class="sourceLineNo">578</span>        public boolean getBoolean(final int... pos) {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                return get(pos) != 0; // BOOLEAN_FALSE<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>         * Sets the value at first point to the passed value. The dataset must not be null<a name="line.583"></a>
+<span class="sourceLineNo">584</span>         *<a name="line.584"></a>
+<span class="sourceLineNo">585</span>         * @param value<a name="line.585"></a>
+<span class="sourceLineNo">586</span>         * @since 2.0<a name="line.586"></a>
+<span class="sourceLineNo">587</span>         */<a name="line.587"></a>
+<span class="sourceLineNo">588</span>        public void setItem(final float value) { // PRIM_TYPE<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                setAbs(getFirst1DIndex(), value);<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>         * Sets the value at a particular point to the passed value. The dataset must be 1D<a name="line.593"></a>
+<span class="sourceLineNo">594</span>         *<a name="line.594"></a>
+<span class="sourceLineNo">595</span>         * @param value<a name="line.595"></a>
+<span class="sourceLineNo">596</span>         * @param i<a name="line.596"></a>
+<span class="sourceLineNo">597</span>         */<a name="line.597"></a>
+<span class="sourceLineNo">598</span>        public void setItem(final float value, final int i) { // PRIM_TYPE<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                setAbs(get1DIndex(i), value);<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>         * Sets the value at a particular point to the passed value. The dataset must be 2D<a name="line.603"></a>
+<span class="sourceLineNo">604</span>         *<a name="line.604"></a>
+<span class="sourceLineNo">605</span>         * @param value<a name="line.605"></a>
+<span class="sourceLineNo">606</span>         * @param i<a name="line.606"></a>
+<span class="sourceLineNo">607</span>         * @param j<a name="line.607"></a>
+<span class="sourceLineNo">608</span>         */<a name="line.608"></a>
+<span class="sourceLineNo">609</span>        public void setItem(final float value, final int i, final int j) { // PRIM_TYPE<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                setAbs(get1DIndex(i, j), value);<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>         * Sets the value at a particular point to the passed value<a name="line.614"></a>
+<span class="sourceLineNo">615</span>         *<a name="line.615"></a>
+<span class="sourceLineNo">616</span>         * @param value<a name="line.616"></a>
+<span class="sourceLineNo">617</span>         * @param pos<a name="line.617"></a>
+<span class="sourceLineNo">618</span>         */<a name="line.618"></a>
+<span class="sourceLineNo">619</span>        public void setItem(final float value, final int... pos) { // PRIM_TYPE<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                setAbs(get1DIndex(pos), value);<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 void set(final Object obj) {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                setItem((float) DTypeUtils.toReal(obj)); // FROM_OBJECT<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 void set(final Object obj, final int i) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                setItem((float) DTypeUtils.toReal(obj), i); // FROM_OBJECT<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 void set(final Object obj, final int i, final int j) {<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                setItem((float) DTypeUtils.toReal(obj), i, j); // FROM_OBJECT<a name="line.635"></a>
+<span class="sourceLineNo">636</span>        }<a name="line.636"></a>
+<span class="sourceLineNo">637</span><a name="line.637"></a>
+<span class="sourceLineNo">638</span>        @Override<a name="line.638"></a>
+<span class="sourceLineNo">639</span>        public void set(final Object obj, int... pos) {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                        pos = new int[shape.length];<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>                setItem((float) DTypeUtils.toReal(obj), pos); // FROM_OBJECT<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>        @Override<a name="line.647"></a>
+<span class="sourceLineNo">648</span>        public void resize(int... newShape) {<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                setDirty();<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                final IndexIterator iter = getIterator();<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                final int nsize = ShapeUtils.calcSize(newShape);<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                final float[] ndata; // PRIM_TYPE<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                try {<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                        ndata = createArray(nsize);<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                } catch (Throwable t) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                        throw new IllegalArgumentException(t);<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                }<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                for (int i = 0; iter.hasNext() &amp;&amp; i &lt; nsize; i++) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        ndata[i] = data[iter.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>                odata = data = ndata;<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                size = nsize;<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                shape = newShape;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                stride = null;<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                offset = 0;<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                base = null;<a name="line.668"></a>
+<span class="sourceLineNo">669</span>        }<a name="line.669"></a>
+<span class="sourceLineNo">670</span><a name="line.670"></a>
+<span class="sourceLineNo">671</span>        @Override<a name="line.671"></a>
+<span class="sourceLineNo">672</span>        public FloatDataset sort(Integer axis) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                setDirty();<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                if (axis == null) {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        if (stride == null) {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                                Arrays.sort(data);<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                        } else {<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                                FloatDataset ads = clone().sort(null);<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                                setSlicedView(getView(false), ads);<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                        }<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                } else {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                        axis = checkAxis(axis);<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                        <a name="line.683"></a>
+<span class="sourceLineNo">684</span>                        FloatDataset ads = new FloatDataset(shape[axis]);<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                        PositionIterator pi = getPositionIterator(axis);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                        int[] pos = pi.getPos();<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                        boolean[] hit = pi.getOmit();<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                        while (pi.hasNext()) {<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                                copyItemsFromAxes(pos, hit, ads);<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                                Arrays.sort(ads.data);<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                                setItemsOnAxes(pos, hit, ads.data);<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>                return this;<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                // throw new UnsupportedOperationException("Cannot sort dataset"); // BOOLEAN_USE<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 getUniqueItems() {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                Set&lt;Float&gt; set = new TreeSet&lt;Float&gt;(); // CLASS_TYPE<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                IndexIterator it = getIterator();<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                while (it.hasNext()) {<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                        set.add(data[it.index]);<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>                FloatDataset u = new FloatDataset(set.size()); // CLASS_TYPE<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                int i = 0;<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                float[] udata = u.getData(); // PRIM_TYPE<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                for (Float v : set) { // CLASS_TYPE<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        udata[i++] = v;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                return u;<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 FloatDataset getSlice(final SliceIterator siter) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                FloatDataset result = new FloatDataset(siter.getShape());<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                float[] rdata = result.data; // PRIM_TYPE<a name="line.718"></a>
+<span class="sourceLineNo">719</span><a name="line.719"></a>
+<span class="sourceLineNo">720</span>                for (int i = 0; siter.hasNext(); i++)<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                        rdata[i] = data[siter.index];<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                return result;<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>        @Override<a name="line.727"></a>
+<span class="sourceLineNo">728</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                IndexIterator riter = result.getIterator();<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                result.setDirty();<a name="line.730"></a>
+<span class="sourceLineNo">731</span><a name="line.731"></a>
+<span class="sourceLineNo">732</span>                float[] rdata = ((FloatDataset) result).data; // PRIM_TYPE<a name="line.732"></a>
+<span class="sourceLineNo">733</span><a name="line.733"></a>
+<span class="sourceLineNo">734</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                        rdata[riter.index] = data[iter.index];<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                }<a name="line.736"></a>
+<span class="sourceLineNo">737</span>        }<a name="line.737"></a>
+<span class="sourceLineNo">738</span><a name="line.738"></a>
+<span class="sourceLineNo">739</span>        @Override<a name="line.739"></a>
+<span class="sourceLineNo">740</span>        public FloatDataset setByBoolean(final Object obj, Dataset selection) {<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                setDirty();<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                if (obj instanceof Dataset) {<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                        final Dataset ds = (Dataset) obj;<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                        if (length != ds.getSize()) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                                throw new IllegalArgumentException(<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.751"></a>
+<span class="sourceLineNo">752</span><a name="line.752"></a>
+<span class="sourceLineNo">753</span>                        while (biter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                                data[biter.index] = (float) ds.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        }<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                } else {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                        final float dv = (float) DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.758"></a>
+<span class="sourceLineNo">759</span><a name="line.759"></a>
+<span class="sourceLineNo">760</span>                        while (biter.hasNext()) {<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                                data[biter.index] = dv;<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>                return this;<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>        @Override<a name="line.767"></a>
+<span class="sourceLineNo">768</span>        public FloatDataset setBy1DIndex(final Object obj, final Dataset index) {<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                setDirty();<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                if (obj instanceof Dataset) {<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                        final Dataset ds = (Dataset) obj;<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                        if (index.getSize() != ds.getSize()) {<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                                throw new IllegalArgumentException(<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                                                "Number of items in index dataset does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                        final IntegerIterator iter = new IntegerIterator(index, size);<a name="line.778"></a>
+<span class="sourceLineNo">779</span><a name="line.779"></a>
+<span class="sourceLineNo">780</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                                data[iter.index] = (float) ds.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                        }<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                } else {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                        final float dv = (float) DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        IntegerIterator iter = new IntegerIterator(index, size);<a name="line.785"></a>
+<span class="sourceLineNo">786</span><a name="line.786"></a>
+<span class="sourceLineNo">787</span>                        while (iter.hasNext()) {<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                                data[iter.index] = dv;<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                        }<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                }<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                return this;<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 FloatDataset setByIndexes(final Object obj, final Object... indexes) {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                setDirty();<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                final int[] pos = iter.getPos();<a name="line.798"></a>
+<span class="sourceLineNo">799</span><a name="line.799"></a>
+<span class="sourceLineNo">800</span>                if (obj instanceof Dataset) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                        final Dataset ds = (Dataset) obj;<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                                throw new IllegalArgumentException(<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                                                "Number of items in index datasets does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.807"></a>
+<span class="sourceLineNo">808</span><a name="line.808"></a>
+<span class="sourceLineNo">809</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                                setItem((float) ds.getElementDoubleAbs(oiter.index), pos); // GET_ELEMENT_WITH_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>                        final float dv = (float) DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.813"></a>
+<span class="sourceLineNo">814</span><a name="line.814"></a>
+<span class="sourceLineNo">815</span>                        while (iter.hasNext()) {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                                setItem(dv, pos);<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                        }<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                }<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                return this;<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>        FloatDataset setSlicedView(Dataset view, Dataset d) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                setDirty();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span>                while (it.hasNext()) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                        data[it.aIndex] = (float) it.bDouble; // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                }<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                return this;<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 FloatDataset setSlice(final Object obj, final IndexIterator siter) {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                setDirty();<a name="line.835"></a>
+<span class="sourceLineNo">836</span><a name="line.836"></a>
+<span class="sourceLineNo">837</span>                if (obj instanceof IDataset) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                        final IDataset ds = (IDataset) obj;<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                        final int[] oshape = ds.getShape();<a name="line.839"></a>
+<span class="sourceLineNo">840</span><a name="line.840"></a>
+<span class="sourceLineNo">841</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                                throw new IllegalArgumentException(String.format(<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                                                Arrays.toString(siter.getShape())));<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>                        if (ds instanceof Dataset) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                final Dataset ads = (Dataset) ds;<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                final IndexIterator oiter = ads.getIterator();<a name="line.849"></a>
+<span class="sourceLineNo">850</span><a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                        data[siter.index] = (float) ads.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                        } else {<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                final int[] pos = oiter.getPos();<a name="line.855"></a>
+<span class="sourceLineNo">856</span><a name="line.856"></a>
+<span class="sourceLineNo">857</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                                        data[siter.index] = ds.getFloat(pos); // PRIM_TYPE<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        }<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                } else {<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        try {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                float v = (float) DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.862"></a>
+<span class="sourceLineNo">863</span><a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                while (siter.hasNext())<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                                        data[siter.index] = v;<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                        } catch (IllegalArgumentException e) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<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 this;<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>        @Override<a name="line.873"></a>
+<span class="sourceLineNo">874</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                float[] ddata = (float[]) dest.getBuffer(); // PRIM_TYPE<a name="line.875"></a>
+<span class="sourceLineNo">876</span><a name="line.876"></a>
+<span class="sourceLineNo">877</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.878"></a>
+<span class="sourceLineNo">879</span><a name="line.879"></a>
+<span class="sourceLineNo">880</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.880"></a>
+<span class="sourceLineNo">881</span><a name="line.881"></a>
+<span class="sourceLineNo">882</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<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>                dest.setDirty();<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                        ddata[diter.index] = data[siter.index];<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                }<a name="line.889"></a>
+<span class="sourceLineNo">890</span>        }<a name="line.890"></a>
+<span class="sourceLineNo">891</span><a name="line.891"></a>
+<span class="sourceLineNo">892</span>        @Override<a name="line.892"></a>
+<span class="sourceLineNo">893</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                setDirty();<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                float[] sdata = (float[]) src; // PRIM_TYPE<a name="line.895"></a>
+<span class="sourceLineNo">896</span><a name="line.896"></a>
+<span class="sourceLineNo">897</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.897"></a>
+<span class="sourceLineNo">898</span><a name="line.898"></a>
+<span class="sourceLineNo">899</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                        throw new IllegalArgumentException("destination array is not large enough");<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>                for (int i = 0; siter.hasNext(); i++) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        data[siter.index] = sdata[i];<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                }<a name="line.905"></a>
+<span class="sourceLineNo">906</span>        }<a name="line.906"></a>
+<span class="sourceLineNo">907</span><a name="line.907"></a>
+<span class="sourceLineNo">908</span>        private List&lt;int[]&gt; findPositions(final float value) { // PRIM_TYPE<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                IndexIterator iter = getIterator(true);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                List&lt;int[]&gt; posns = new ArrayList&lt;int[]&gt;();<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                int[] pos = iter.getPos();<a name="line.911"></a>
+<span class="sourceLineNo">912</span><a name="line.912"></a>
+<span class="sourceLineNo">913</span>                if (Float.isNaN(value)) { // CLASS_TYPE // REAL_ONLY<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                        while (iter.hasNext()) { // REAL_ONLY<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                if (Double.isNaN(data[iter.index])) { // REAL_ONLY<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                        posns.add(pos.clone()); // REAL_ONLY<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                                } // REAL_ONLY<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                        } // REAL_ONLY<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                } else // REAL_ONLY<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                        while (iter.hasNext()) {<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                                if (data[iter.index] == value) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                                        posns.add(pos.clone());<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>                return posns;<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 int[] maxPos(boolean... ignoreInvalids) {<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                List&lt;int[]&gt; max = md.getMaximumPositions(ignoreInvalids);<a name="line.935"></a>
+<span class="sourceLineNo">936</span><a name="line.936"></a>
+<span class="sourceLineNo">937</span>                if (max == null) {<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                        max = findPositions(md.getMaximum(ignoreInvalids).floatValue()); // PRIM_TYPE<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.940"></a>
+<span class="sourceLineNo">941</span><a name="line.941"></a>
+<span class="sourceLineNo">942</span>                        md.setMaximumPositions(max);<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>                return max.get(0); // first maximum<a name="line.945"></a>
+<span class="sourceLineNo">946</span>        }<a name="line.946"></a>
+<span class="sourceLineNo">947</span><a name="line.947"></a>
+<span class="sourceLineNo">948</span>        @Override<a name="line.948"></a>
+<span class="sourceLineNo">949</span>        public int[] minPos(boolean... ignoreInvalids) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                List&lt;int[]&gt; min = md.getMinimumPositions(ignoreInvalids);<a name="line.953"></a>
+<span class="sourceLineNo">954</span><a name="line.954"></a>
+<span class="sourceLineNo">955</span>                if (min == null) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                        min = findPositions(md.getMinimum(ignoreInvalids).floatValue()); // PRIM_TYPE<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.958"></a>
+<span class="sourceLineNo">959</span><a name="line.959"></a>
+<span class="sourceLineNo">960</span>                        md.setMinimumPositions(min);<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>                return min.get(0); // first minimum<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>        @Override<a name="line.966"></a>
+<span class="sourceLineNo">967</span>        public boolean containsNans() {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                        if (Float.isNaN(data[iter.index])) // CLASS_TYPE // REAL_ONLY<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                                return true; // REAL_ONLY<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                } // REAL_ONLY<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                return false;<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>        @Override<a name="line.976"></a>
+<span class="sourceLineNo">977</span>        public boolean containsInfs() {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                        if (Float.isInfinite(data[iter.index])) // CLASS_TYPE // REAL_ONLY<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                return true; // REAL_ONLY<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                } // REAL_ONLY<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                return false;<a name="line.983"></a>
+<span class="sourceLineNo">984</span>        }<a name="line.984"></a>
+<span class="sourceLineNo">985</span><a name="line.985"></a>
+<span class="sourceLineNo">986</span>        @Override<a name="line.986"></a>
+<span class="sourceLineNo">987</span>        public boolean containsInvalidNumbers() {<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                        float x = data[iter.index]; // PRIM_TYPE // REAL_ONLY<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                        if (Float.isNaN(x) || Float.isInfinite(x)) // CLASS_TYPE // REAL_ONLY<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                return true; // REAL_ONLY<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                } // REAL_ONLY<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                return false;<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>        @Override<a name="line.997"></a>
+<span class="sourceLineNo">998</span>        public FloatDataset iadd(final Object b) {<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                setDirty();<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                if (bds.getSize() == 1) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                        final IndexIterator it = getIterator();<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                        final int bOffset = bds.getOffset();<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                        if (useLong) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                                while (it.hasNext()) {<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                                        data[it.index] += lb;<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>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                while (it.hasNext()) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                        data[it.index] += db;<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                }<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                        }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                } else {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                        it.setOutputDouble(!useLong);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                        if (useLong) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                while (it.hasNext()) {<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                        data[it.aIndex] += it.bLong;<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>                                while (it.hasNext()) {<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                        data[it.aIndex] += it.bDouble;<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                }<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                        }<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                }<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                return this;<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 FloatDataset isubtract(final Object b) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                setDirty();<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                if (bds.getSize() == 1) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                        final IndexIterator it = getIterator();<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                        final int bOffset = bds.getOffset();<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                        if (useLong) {<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                                while (it.hasNext()) {<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                                        data[it.index] -= lb;<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                                }<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                        } else {<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                                final double db = bds.getElementDoubleAbs(bOffset);<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] -= db;<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                        }<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                } else {<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                        if (useLong) {<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                it.setOutputDouble(false);<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                while (it.hasNext()) {<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                                        data[it.aIndex] -= it.bLong;<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                                }<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                        } else {<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                                it.setOutputDouble(true);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                                while (it.hasNext()) {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                                        data[it.aIndex] -= it.bDouble;<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                        }<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                }<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                return this;<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>        @Override<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>        public FloatDataset imultiply(final Object b) {<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                setDirty();<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                if (bds.getSize() == 1) {<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        final IndexIterator it = getIterator();<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                        final int bOffset = bds.getOffset();<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        if (useLong) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                while (it.hasNext()) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                        data[it.index] *= lb;<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>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                while (it.hasNext()) {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                        data[it.index] *= db;<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>                } 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>                                        data[it.aIndex] *= it.bLong;<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                }<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                        } else {<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.aIndex] *= it.bDouble;<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>                return this;<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>        @Override<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>        public FloatDataset idivide(final Object b) {<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                setDirty();<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                if (bds.getSize() == 1) {<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        final int bOffset = bds.getOffset();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                        if (useLong) {<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                // if (lb == 0) { // INT_USE<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                //      fill(0); // INT_USE<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                // } else { // INT_USE<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                final IndexIterator it = getIterator();<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                while (it.hasNext()) {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        data[it.index] /= lb;<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                }<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                                // } // INT_USE<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                        } else {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                // if (db == 0) { // INT_USE<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                //      fill(0); // INT_USE<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                // } else { // INT_USE<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                final IndexIterator it = getIterator();<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                while (it.hasNext()) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                        data[it.index] /= db;<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                }<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                // } // INT_USE<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>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                        it.setOutputDouble(!useLong);<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                        if (useLong) {<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                while (it.hasNext()) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                        // if (it.bLong == 0) { // INT_USE<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                        //      data[it.aIndex] = 0; // INT_USE<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        // } else { // INT_USE<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                        data[it.aIndex] /= it.bLong;<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        // } // INT_USE<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        } else {<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                                while (it.hasNext()) {<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                        // if (it.bDouble == 0) { // INT_USE<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                        //      data[it.aIndex] = 0; // INT_USE<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                        // } else { // INT_USE<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                        data[it.aIndex] /= it.bDouble;<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                        // } // INT_USE<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                }<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>                return this;<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>        }<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span><a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>        @Override<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>        public FloatDataset ifloor() {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                setDirty(); // REAL_ONLY<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                IndexIterator it = getIterator(); // REAL_ONLY<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                while (it.hasNext()) { // REAL_ONLY<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                        data[it.index] = (float) Math.floor(data[it.index]); // PRIM_TYPE // REAL_ONLY // ADD_CAST<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                } // REAL_ONLY<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                return this;<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>        @Override<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>        public FloatDataset iremainder(final Object b) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                setDirty();<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                if (bds.getSize() == 1) {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                        final int bOffset = bds.getOffset();<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                        if (useLong) {<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                // if (lb == 0) { // INT_USE<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                //      fill(0); // INT_USE<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                                // } else { // INT_USE<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                                final IndexIterator it = getIterator();<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                                while (it.hasNext()) {<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                                        data[it.index] %= lb;<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                                }<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>                                // } // INT_USE<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                        } else {<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                                // if (lb == 0) { // INT_USE<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>                                //      fill(0); // INT_USE<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                                // } else { // INT_USE<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                                final IndexIterator it = getIterator();<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                                while (it.hasNext()) {<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                                        data[it.index] %= lb;<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                                }<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                                // } // INT_USE<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                        }<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                } else {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                        it.setOutputDouble(!useLong);<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                        if (useLong) {<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                                while (it.hasNext()) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                        data[it.aIndex] %= it.bLong; // INT_EXCEPTION<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                                }<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                        } else {<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                                while (it.hasNext()) {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                                        data[it.aIndex] %= it.bDouble;<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>                }<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                return this;<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>        }<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span><a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>        @Override<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>        public FloatDataset ipower(final Object b) {<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                setDirty();<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                if (bds.getSize() == 1) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                        final int bOffset = bds.getOffset();<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                        final double vr = bds.getElementDoubleAbs(bOffset);<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                        final IndexIterator it = getIterator();<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                        if (bds.isComplex()) {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                final double vi = bds.getElementDoubleAbs(bOffset + 1);<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                if (vi == 0) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        while (it.hasNext()) {<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                                final double v = Math.pow(data[it.index], vr);<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                                //      data[it.index] = 0; // INT_USE<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                                // } else { // INT_USE<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                                data[it.index] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                                // } // INT_USE<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                        }<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                } else {<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                        final Complex zv = new Complex(vr, vi);<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        while (it.hasNext()) {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                                Complex zd = new Complex(data[it.index], 0);<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                                final double v = zd.pow(zv).getReal();<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                                //      data[it.index] = 0; // INT_USE<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                                // } else { // INT_USE<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                                data[it.index] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                                                // } // INT_USE<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>                        } 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(data[it.index], vr);<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.index] = 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.index] = (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>                } else {<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                        it.setOutputDouble(true);<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                        if (bds.isComplex()) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                while (it.hasNext()) {<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        final double v = new Complex(it.aDouble, 0).pow(zv).getReal();<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                        //      data[it.aIndex] = 0; // INT_USE<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                        // } else { // INT_USE<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                        data[it.aIndex] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                        // } // INT_USE<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                }<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                        } else {// NAN_OMIT<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                while (it.hasNext()) {<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                                        final double v = Math.pow(it.aDouble, it.bDouble);<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                                        //      data[it.aIndex] = 0; // INT_USE<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                        // } else { // INT_USE<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                                        data[it.aIndex] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                        // } // INT_USE<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                }<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                        }<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                }<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                return this;<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>        }<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span><a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>        @Override<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                it.setOutputDouble(true);<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                double sum = 0;<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                double comp = 0;<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                if (ignoreNaNs) { // REAL_ONLY<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                        if (w == null) { // REAL_ONLY<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                while (it.hasNext()) { // REAL_ONLY<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                        final double diff = it.aDouble - it.bDouble; // REAL_ONLY<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                        if (Double.isNaN(diff)) // REAL_ONLY<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                                continue; // REAL_ONLY<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                        final double err = diff * diff - comp; // REAL_ONLY<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                        final double temp = sum + err; // REAL_ONLY<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                                        comp = (temp - sum) - err; // REAL_ONLY<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                                        sum = temp; // REAL_ONLY<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                                } // REAL_ONLY<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                        } else { // REAL_ONLY<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>                                IndexIterator itw = w.getIterator(); // REAL_ONLY<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) { // REAL_ONLY<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                        final double diff = it.aDouble - it.bDouble; // REAL_ONLY<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                        if (Double.isNaN(diff)) // REAL_ONLY<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                                continue; // REAL_ONLY<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                                        final double err = diff * diff * w.getElementDoubleAbs(itw.index) - comp; // REAL_ONLY<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                        final double temp = sum + err; // REAL_ONLY<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                        comp = (temp - sum) - err; // REAL_ONLY<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                                        sum = temp; // REAL_ONLY<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                } // REAL_ONLY<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                        } // REAL_ONLY<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                } else // REAL_ONLY<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                {<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                        if (w == null) {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                while (it.hasNext()) {<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                        final double err = diff * diff - comp;<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                        final double temp = sum + err;<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                        comp = (temp - sum) - err;<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                        sum = temp;<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                }<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                        } else {<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                                IndexIterator itw = w.getIterator();<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                                        final double err = diff * diff * w.getElementDoubleAbs(itw.index) - comp;<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                                        final double temp = sum + err;<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                                        comp = (temp - sum) - err;<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                                        sum = temp;<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                                }<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                        }<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                }<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                return sum;<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>        }<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>}<a name="line.1330"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/IDataListener.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/IDataListener.html
new file mode 100644
index 0000000..f250aa9
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/dataset/IDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/IDataset.html
new file mode 100644
index 0000000..9a4d976
--- /dev/null
+++ b/apidocs/2.3.0/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 {@code 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;{@literal<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.3.0/src-html/org/eclipse/january/dataset/IDatasetChangeChecker.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/IDatasetChangeChecker.html
new file mode 100644
index 0000000..db39463
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/dataset/IDatasetConnector.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/IDatasetConnector.html
new file mode 100644
index 0000000..2c97f13
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/dataset/IDynamicDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/IDynamicDataset.html
new file mode 100644
index 0000000..b78d9e5
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/dataset/IDynamicShape.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/IDynamicShape.html
new file mode 100644
index 0000000..83fe7f1
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/dataset/IFileConnection.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/IFileConnection.html
new file mode 100644
index 0000000..2464be9
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/dataset/ILazyDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ILazyDataset.html
new file mode 100644
index 0000000..fe076c3
--- /dev/null
+++ b/apidocs/2.3.0/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;{@literal<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.3.0/src-html/org/eclipse/january/dataset/ILazyWriteableDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ILazyWriteableDataset.html
new file mode 100644
index 0000000..c432c95
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/dataset/IMetadataProvider.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/IMetadataProvider.html
new file mode 100644
index 0000000..f4b79f9
--- /dev/null
+++ b/apidocs/2.3.0/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 {@code 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.3.0/src-html/org/eclipse/january/dataset/IOperation.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/IOperation.html
new file mode 100644
index 0000000..59a7730
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/dataset/IRemoteData.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/IRemoteData.html
new file mode 100644
index 0000000..2279295
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/dataset/IndexIterator.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/IndexIterator.html
new file mode 100644
index 0000000..c77af42
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/dataset/IntegerDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/IntegerDataset.html
new file mode 100644
index 0000000..0125099
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/IntegerDataset.html
@@ -0,0 +1,1354 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// This is generated from DoubleDataset.java by fromdouble.py<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.ArrayList;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.Arrays;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.List;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.Set;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.TreeSet;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.commons.math3.complex.Complex;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.eclipse.january.metadata.StatisticsMetadata;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>/**<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * Extend dataset for int values // PRIM_TYPE<a name="line.28"></a>
+<span class="sourceLineNo">029</span> */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>public class IntegerDataset extends AbstractDataset {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        // pin UID to base class<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        protected int[] data; // subclass alias // PRIM_TYPE<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>        @Override<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        protected void setData() {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                data = (int[]) odata; // PRIM_TYPE<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        }<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>        protected static int[] createArray(final int size) { // PRIM_TYPE<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                int[] array = null; // PRIM_TYPE<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>                try {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                        array = new int[size]; // PRIM_TYPE<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                } catch (OutOfMemoryError e) {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                }<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return array;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        @Override<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        public int getDType() {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                return INT32; // DATA_TYPE<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * Create a null dataset<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        IntegerDataset() {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        }<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>        /**<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * Create a zero-filled dataset of given shape<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         * @param shape<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         */<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        IntegerDataset(final int... shape) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                if (shape != null) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        size = ShapeUtils.calcSize(shape);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        this.shape = shape.clone();<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        try {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                                odata = data = createArray(size);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        } catch (Throwable t) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                throw new IllegalArgumentException(t);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        }<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>        /**<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         * Create a dataset using given data<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @param data<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         * @param shape<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         *            (can be null to create 1D dataset)<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        IntegerDataset(final int[] data, int... shape) { // PRIM_TYPE<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                if (data == null) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        throw new IllegalArgumentException("Data must not be null");<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                if (shape == null || shape.length == 0) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                        shape = new int[] { data.length };<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                size = ShapeUtils.calcSize(shape);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                if (size != data.length) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                        Arrays.toString(shape), data.length));<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                }<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                this.shape = size == 0 ? null : shape.clone();<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>                odata = this.data = data;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>        }<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>        /**<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * Copy a dataset<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         * @param dataset<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         */<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        IntegerDataset(final IntegerDataset dataset) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                copyToView(dataset, this, true, true);<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>                try {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        if (dataset.stride == null) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                if (dataset.data != null) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                                        odata = data = dataset.data.clone();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                }<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        } else {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                offset = 0;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                stride = null;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                base = null;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                odata = data = createArray(size);<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                IndexIterator iter = dataset.getIterator();<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                                for (int i = 0; iter.hasNext(); i++) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                                        data[i] = dataset.data[iter.index];<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                                }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        }<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                } catch (Throwable t) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        throw new IllegalArgumentException(t);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                }<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>        /**<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         * Copy and cast a dataset to this class type<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         * @param dataset<a name="line.138"></a>
+<span class="sourceLineNo">139</span>         */<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        IntegerDataset(final Dataset dataset) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                copyToView(dataset, this, true, false);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                offset = 0;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                stride = null;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                base = null;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                try {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        odata = data = createArray(size);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                } catch (Throwable t) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                        throw new IllegalArgumentException(t);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                }<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                IndexIterator iter = dataset.getIterator();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                for (int i = 0; iter.hasNext(); i++) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                        data[i] = (int) dataset.getElementLongAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                }<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>        @Override<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        public boolean equals(Object obj) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                if (this == obj) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        return true;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                }<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>                if (obj == null) {<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 (!getClass().equals(obj.getClass())) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                        if (getRank() == 0) { // for zero-rank datasets<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                                return obj.equals(getObjectAbs(offset));<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                        }<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><a name="line.173"></a>
+<span class="sourceLineNo">174</span>                IntegerDataset other = (IntegerDataset) obj;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                if (size != other.size) {<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>                if (!Arrays.equals(shape, other.shape)) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                        return false;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                if (data == other.data &amp;&amp; stride == null &amp;&amp; other.stride == null) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        return true;<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>                IndexIterator iter = getIterator();<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                IndexIterator oiter = other.getIterator();<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                        if (data[iter.index] != other.data[oiter.index]) { // OBJECT_UNEQUAL<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                                return false;<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>                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 int hashCode() {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                return super.hashCode();<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 IntegerDataset clone() {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                return new IntegerDataset(this);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        }<a name="line.203"></a>
+<span class="sourceLineNo">204</span><a name="line.204"></a>
+<span class="sourceLineNo">205</span>        /**<a name="line.205"></a>
+<span class="sourceLineNo">206</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * sequences or arrays are padded with zeros.<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         *<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * @param obj<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         * @return dataset with contents given by input<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         */<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        static IntegerDataset createFromObject(final Object obj) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                IntegerDataset result = new IntegerDataset();<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>                if (obj != null) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                        result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                        result.size = ShapeUtils.calcSize(result.shape);<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>                                result.odata = result.data = createArray(result.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(result.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><a name="line.225"></a>
+<span class="sourceLineNo">226</span>                        int[] pos = new int[result.shape.length];<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                        result.fillData(obj, 0, pos);<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>                return result;<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>         *<a name="line.234"></a>
+<span class="sourceLineNo">235</span>         * @param stop<a name="line.235"></a>
+<span class="sourceLineNo">236</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         */<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        static IntegerDataset createRange(final double stop) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                return createRange(0, stop, 1);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        }<a name="line.240"></a>
+<span class="sourceLineNo">241</span>        <a name="line.241"></a>
+<span class="sourceLineNo">242</span>        /**<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         *<a name="line.243"></a>
+<span class="sourceLineNo">244</span>         * @param start<a name="line.244"></a>
+<span class="sourceLineNo">245</span>         * @param stop<a name="line.245"></a>
+<span class="sourceLineNo">246</span>         * @param step<a name="line.246"></a>
+<span class="sourceLineNo">247</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.247"></a>
+<span class="sourceLineNo">248</span>         */<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        static IntegerDataset createRange(final double start, final double stop, final double step) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                int size = calcSteps(start, stop, step);<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                IntegerDataset result = new IntegerDataset(size);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                for (int i = 0; i &lt; size; i++) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        result.data[i] = (int) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                }<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                return result;<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>        /**<a name="line.258"></a>
+<span class="sourceLineNo">259</span>         * @param shape<a name="line.259"></a>
+<span class="sourceLineNo">260</span>         * @return a dataset filled with ones<a name="line.260"></a>
+<span class="sourceLineNo">261</span>         */<a name="line.261"></a>
+<span class="sourceLineNo">262</span>        static IntegerDataset ones(final int... shape) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                return new IntegerDataset(shape).fill(1);<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 IntegerDataset fill(final Object obj) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                setDirty();<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                int dv = (int) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                IndexIterator iter = getIterator();<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                while (iter.hasNext()) {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                        data[iter.index] = dv;<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>                return this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         * @return data buffer as linear array<a name="line.280"></a>
+<span class="sourceLineNo">281</span>         */<a name="line.281"></a>
+<span class="sourceLineNo">282</span>        public int[] getData() { // PRIM_TYPE<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                return data;<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>        protected int getBufferLength() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                if (data == null)<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                        return 0;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                return data.length;<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>        @Override<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        public IntegerDataset getView(boolean deepCopyMetadata) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                IntegerDataset view = new IntegerDataset();<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                view.setData();<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                return view;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>        }<a name="line.299"></a>
+<span class="sourceLineNo">300</span><a name="line.300"></a>
+<span class="sourceLineNo">301</span>        /**<a name="line.301"></a>
+<span class="sourceLineNo">302</span>         * 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.302"></a>
+<span class="sourceLineNo">303</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.303"></a>
+<span class="sourceLineNo">304</span>         *<a name="line.304"></a>
+<span class="sourceLineNo">305</span>         * @param index<a name="line.305"></a>
+<span class="sourceLineNo">306</span>         *            absolute index<a name="line.306"></a>
+<span class="sourceLineNo">307</span>         * @return value<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         */<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        public int getAbs(final int index) { // PRIM_TYPE<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                return data[index];<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>        @Override<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                return data[index] != 0; // BOOLEAN_FALSE<a name="line.315"></a>
+<span class="sourceLineNo">316</span>        }<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span>        @Override<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        public double getElementDoubleAbs(final int index) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                return data[index]; // BOOLEAN_ZERO<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 long getElementLongAbs(final int index) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                return data[index]; // BOOLEAN_ZERO // OMIT_TOLONG_INT<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>        @Override<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        public Object getObjectAbs(final int index) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                return data[index];<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>        @Override<a name="line.333"></a>
+<span class="sourceLineNo">334</span>        public String getStringAbs(final int index) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                return stringFormat == null ? String.format("%d", data[index]) : // FORMAT_STRING<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                        stringFormat.format(data[index]);<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>         * Set a value at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.341"></a>
+<span class="sourceLineNo">342</span>         *<a name="line.342"></a>
+<span class="sourceLineNo">343</span>         * @param index<a name="line.343"></a>
+<span class="sourceLineNo">344</span>         *            absolute index<a name="line.344"></a>
+<span class="sourceLineNo">345</span>         * @param val<a name="line.345"></a>
+<span class="sourceLineNo">346</span>         *            new value<a name="line.346"></a>
+<span class="sourceLineNo">347</span>         */<a name="line.347"></a>
+<span class="sourceLineNo">348</span>        public void setAbs(final int index, final int val) { // PRIM_TYPE<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                setDirty();<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                data[index] = val;<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>        @Override<a name="line.353"></a>
+<span class="sourceLineNo">354</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                setDirty();<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                int[] dsrc = (int[]) src; // PRIM_TYPE<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                data[dindex] = dsrc[sindex];<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 void setObjectAbs(final int index, final Object obj) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                if (index &lt; 0 || index &gt; data.length) {<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                        throw new IndexOutOfBoundsException("Index given is outside dataset");<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>                setAbs(index, (int) DTypeUtils.toLong(obj)); // FROM_OBJECT<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>         * @return item in first position<a name="line.370"></a>
+<span class="sourceLineNo">371</span>         * @since 2.0<a name="line.371"></a>
+<span class="sourceLineNo">372</span>         */<a name="line.372"></a>
+<span class="sourceLineNo">373</span>        public int get() { // PRIM_TYPE<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                return data[getFirst1DIndex()];<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>         * @return item in given position<a name="line.379"></a>
+<span class="sourceLineNo">380</span>         */<a name="line.380"></a>
+<span class="sourceLineNo">381</span>        public int get(final int i) { // PRIM_TYPE<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                return data[get1DIndex(i)];<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        }<a name="line.383"></a>
+<span class="sourceLineNo">384</span><a name="line.384"></a>
+<span class="sourceLineNo">385</span>        /**<a name="line.385"></a>
+<span class="sourceLineNo">386</span>         * @param i<a name="line.386"></a>
+<span class="sourceLineNo">387</span>         * @param j<a name="line.387"></a>
+<span class="sourceLineNo">388</span>         * @return item in given position<a name="line.388"></a>
+<span class="sourceLineNo">389</span>         */<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        public int get(final int i, final int j) { // PRIM_TYPE<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                return data[get1DIndex(i, j)];<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        }<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>        /**<a name="line.394"></a>
+<span class="sourceLineNo">395</span>         * @param pos<a name="line.395"></a>
+<span class="sourceLineNo">396</span>         * @return item in given position<a name="line.396"></a>
+<span class="sourceLineNo">397</span>         */<a name="line.397"></a>
+<span class="sourceLineNo">398</span>        public int get(final int... pos) { // PRIM_TYPE<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                return data[get1DIndex(pos)];<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>        @Override<a name="line.402"></a>
+<span class="sourceLineNo">403</span>        public Object getObject() {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                return Integer.valueOf(get()); // CLASS_TYPE<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>        @Override<a name="line.407"></a>
+<span class="sourceLineNo">408</span>        public Object getObject(final int i) {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                return Integer.valueOf(get(i)); // CLASS_TYPE<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>        @Override<a name="line.412"></a>
+<span class="sourceLineNo">413</span>        public Object getObject(final int i, final int j) {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                return Integer.valueOf(get(i, j)); // CLASS_TYPE<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>        @Override<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        public Object getObject(final int... pos) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                return Integer.valueOf(get(pos)); // CLASS_TYPE<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>        @Override<a name="line.422"></a>
+<span class="sourceLineNo">423</span>        public String getString() {<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                return getStringAbs(getFirst1DIndex());<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>        @Override<a name="line.427"></a>
+<span class="sourceLineNo">428</span>        public String getString(final int i) {<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                return getStringAbs(get1DIndex(i));<a name="line.429"></a>
+<span class="sourceLineNo">430</span>        }<a name="line.430"></a>
+<span class="sourceLineNo">431</span><a name="line.431"></a>
+<span class="sourceLineNo">432</span>        @Override<a name="line.432"></a>
+<span class="sourceLineNo">433</span>        public String getString(final int i, final int j) {<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                return getStringAbs(get1DIndex(i, j));<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 String getString(final int... pos) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                return getStringAbs(get1DIndex(pos));<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        }<a name="line.440"></a>
+<span class="sourceLineNo">441</span><a name="line.441"></a>
+<span class="sourceLineNo">442</span>        @Override<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        public double getDouble() {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                return get(); // BOOLEAN_ZERO<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>        @Override<a name="line.447"></a>
+<span class="sourceLineNo">448</span>        public double getDouble(final int i) {<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                return get(i); // BOOLEAN_ZERO<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>        @Override<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        public double getDouble(final int i, final int j) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                return get(i, j); // BOOLEAN_ZERO<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>        @Override<a name="line.457"></a>
+<span class="sourceLineNo">458</span>        public double getDouble(final int... pos) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                return get(pos); // BOOLEAN_ZERO<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>        @Override<a name="line.462"></a>
+<span class="sourceLineNo">463</span>        public float getFloat() {<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                return get(); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        }<a name="line.465"></a>
+<span class="sourceLineNo">466</span><a name="line.466"></a>
+<span class="sourceLineNo">467</span>        @Override<a name="line.467"></a>
+<span class="sourceLineNo">468</span>        public float getFloat(final int i) {<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                return get(i); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        }<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>        @Override<a name="line.472"></a>
+<span class="sourceLineNo">473</span>        public float getFloat(final int i, final int j) {<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_REAL_CAST<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 float getFloat(final int... pos) {<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                return get(pos); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        }<a name="line.480"></a>
+<span class="sourceLineNo">481</span><a name="line.481"></a>
+<span class="sourceLineNo">482</span>        @Override<a name="line.482"></a>
+<span class="sourceLineNo">483</span>        public long getLong() {<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.484"></a>
+<span class="sourceLineNo">485</span>        }<a name="line.485"></a>
+<span class="sourceLineNo">486</span><a name="line.486"></a>
+<span class="sourceLineNo">487</span>        @Override<a name="line.487"></a>
+<span class="sourceLineNo">488</span>        public long getLong(final int i) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.489"></a>
+<span class="sourceLineNo">490</span>        }<a name="line.490"></a>
+<span class="sourceLineNo">491</span><a name="line.491"></a>
+<span class="sourceLineNo">492</span>        @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span>        public long getLong(final int i, final int j) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.497"></a>
+<span class="sourceLineNo">498</span>        public long getLong(final int... pos) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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 getInt() {<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.507"></a>
+<span class="sourceLineNo">508</span>        public int getInt(final int i) {<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.509"></a>
+<span class="sourceLineNo">510</span>        }<a name="line.510"></a>
+<span class="sourceLineNo">511</span><a name="line.511"></a>
+<span class="sourceLineNo">512</span>        @Override<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        public int getInt(final int i, final int j) {<a name="line.513"></a>
+<span class="sourceLineNo">514</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.514"></a>
+<span class="sourceLineNo">515</span>        }<a name="line.515"></a>
+<span class="sourceLineNo">516</span><a name="line.516"></a>
+<span class="sourceLineNo">517</span>        @Override<a name="line.517"></a>
+<span class="sourceLineNo">518</span>        public int getInt(final int... pos) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.519"></a>
+<span class="sourceLineNo">520</span>        }<a name="line.520"></a>
+<span class="sourceLineNo">521</span><a name="line.521"></a>
+<span class="sourceLineNo">522</span>        @Override<a name="line.522"></a>
+<span class="sourceLineNo">523</span>        public short getShort() {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                return (short) get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.524"></a>
+<span class="sourceLineNo">525</span>        }<a name="line.525"></a>
+<span class="sourceLineNo">526</span><a name="line.526"></a>
+<span class="sourceLineNo">527</span>        @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        public short getShort(final int i) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                return (short) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.529"></a>
+<span class="sourceLineNo">530</span>        }<a name="line.530"></a>
+<span class="sourceLineNo">531</span><a name="line.531"></a>
+<span class="sourceLineNo">532</span>        @Override<a name="line.532"></a>
+<span class="sourceLineNo">533</span>        public short getShort(final int i, final int j) {<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                return (short) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.537"></a>
+<span class="sourceLineNo">538</span>        public short getShort(final int... pos) {<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                return (short) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.539"></a>
+<span class="sourceLineNo">540</span>        }<a name="line.540"></a>
+<span class="sourceLineNo">541</span><a name="line.541"></a>
+<span class="sourceLineNo">542</span>        @Override<a name="line.542"></a>
+<span class="sourceLineNo">543</span>        public byte getByte() {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                return (byte) get(); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte(final int i) {<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                return (byte) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.549"></a>
+<span class="sourceLineNo">550</span>        }<a name="line.550"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>        @Override<a name="line.552"></a>
+<span class="sourceLineNo">553</span>        public byte getByte(final int i, final int j) {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                return (byte) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte(final int... pos) {<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                return (byte) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.559"></a>
+<span class="sourceLineNo">560</span>        }<a name="line.560"></a>
+<span class="sourceLineNo">561</span><a name="line.561"></a>
+<span class="sourceLineNo">562</span>        @Override<a name="line.562"></a>
+<span class="sourceLineNo">563</span>        public boolean getBoolean() {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                return get() != 0; // BOOLEAN_FALSE<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>        @Override<a name="line.567"></a>
+<span class="sourceLineNo">568</span>        public boolean getBoolean(final int i) {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                return get(i) != 0; // BOOLEAN_FALSE<a name="line.569"></a>
+<span class="sourceLineNo">570</span>        }<a name="line.570"></a>
+<span class="sourceLineNo">571</span><a name="line.571"></a>
+<span class="sourceLineNo">572</span>        @Override<a name="line.572"></a>
+<span class="sourceLineNo">573</span>        public boolean getBoolean(final int i, final int j) {<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                return get(i, j) != 0; // BOOLEAN_FALSE<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>        @Override<a name="line.577"></a>
+<span class="sourceLineNo">578</span>        public boolean getBoolean(final int... pos) {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                return get(pos) != 0; // BOOLEAN_FALSE<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>         * Sets the value at first point to the passed value. The dataset must not be null<a name="line.583"></a>
+<span class="sourceLineNo">584</span>         *<a name="line.584"></a>
+<span class="sourceLineNo">585</span>         * @param value<a name="line.585"></a>
+<span class="sourceLineNo">586</span>         * @since 2.0<a name="line.586"></a>
+<span class="sourceLineNo">587</span>         */<a name="line.587"></a>
+<span class="sourceLineNo">588</span>        public void setItem(final int value) { // PRIM_TYPE<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                setAbs(getFirst1DIndex(), value);<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>         * Sets the value at a particular point to the passed value. The dataset must be 1D<a name="line.593"></a>
+<span class="sourceLineNo">594</span>         *<a name="line.594"></a>
+<span class="sourceLineNo">595</span>         * @param value<a name="line.595"></a>
+<span class="sourceLineNo">596</span>         * @param i<a name="line.596"></a>
+<span class="sourceLineNo">597</span>         */<a name="line.597"></a>
+<span class="sourceLineNo">598</span>        public void setItem(final int value, final int i) { // PRIM_TYPE<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                setAbs(get1DIndex(i), value);<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>         * Sets the value at a particular point to the passed value. The dataset must be 2D<a name="line.603"></a>
+<span class="sourceLineNo">604</span>         *<a name="line.604"></a>
+<span class="sourceLineNo">605</span>         * @param value<a name="line.605"></a>
+<span class="sourceLineNo">606</span>         * @param i<a name="line.606"></a>
+<span class="sourceLineNo">607</span>         * @param j<a name="line.607"></a>
+<span class="sourceLineNo">608</span>         */<a name="line.608"></a>
+<span class="sourceLineNo">609</span>        public void setItem(final int value, final int i, final int j) { // PRIM_TYPE<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                setAbs(get1DIndex(i, j), value);<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>         * Sets the value at a particular point to the passed value<a name="line.614"></a>
+<span class="sourceLineNo">615</span>         *<a name="line.615"></a>
+<span class="sourceLineNo">616</span>         * @param value<a name="line.616"></a>
+<span class="sourceLineNo">617</span>         * @param pos<a name="line.617"></a>
+<span class="sourceLineNo">618</span>         */<a name="line.618"></a>
+<span class="sourceLineNo">619</span>        public void setItem(final int value, final int... pos) { // PRIM_TYPE<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                setAbs(get1DIndex(pos), value);<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 void set(final Object obj) {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                setItem((int) DTypeUtils.toLong(obj)); // FROM_OBJECT<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 void set(final Object obj, final int i) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                setItem((int) DTypeUtils.toLong(obj), i); // FROM_OBJECT<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 void set(final Object obj, final int i, final int j) {<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                setItem((int) DTypeUtils.toLong(obj), i, j); // FROM_OBJECT<a name="line.635"></a>
+<span class="sourceLineNo">636</span>        }<a name="line.636"></a>
+<span class="sourceLineNo">637</span><a name="line.637"></a>
+<span class="sourceLineNo">638</span>        @Override<a name="line.638"></a>
+<span class="sourceLineNo">639</span>        public void set(final Object obj, int... pos) {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                        pos = new int[shape.length];<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>                setItem((int) DTypeUtils.toLong(obj), pos); // FROM_OBJECT<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>        @Override<a name="line.647"></a>
+<span class="sourceLineNo">648</span>        public void resize(int... newShape) {<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                setDirty();<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                final IndexIterator iter = getIterator();<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                final int nsize = ShapeUtils.calcSize(newShape);<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                final int[] ndata; // PRIM_TYPE<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                try {<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                        ndata = createArray(nsize);<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                } catch (Throwable t) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                        throw new IllegalArgumentException(t);<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                }<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                for (int i = 0; iter.hasNext() &amp;&amp; i &lt; nsize; i++) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        ndata[i] = data[iter.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>                odata = data = ndata;<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                size = nsize;<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                shape = newShape;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                stride = null;<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                offset = 0;<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                base = null;<a name="line.668"></a>
+<span class="sourceLineNo">669</span>        }<a name="line.669"></a>
+<span class="sourceLineNo">670</span><a name="line.670"></a>
+<span class="sourceLineNo">671</span>        @Override<a name="line.671"></a>
+<span class="sourceLineNo">672</span>        public IntegerDataset sort(Integer axis) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                setDirty();<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                if (axis == null) {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        if (stride == null) {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                                Arrays.sort(data);<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                        } else {<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                                IntegerDataset ads = clone().sort(null);<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                                setSlicedView(getView(false), ads);<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                        }<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                } else {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                        axis = checkAxis(axis);<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                        <a name="line.683"></a>
+<span class="sourceLineNo">684</span>                        IntegerDataset ads = new IntegerDataset(shape[axis]);<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                        PositionIterator pi = getPositionIterator(axis);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                        int[] pos = pi.getPos();<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                        boolean[] hit = pi.getOmit();<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                        while (pi.hasNext()) {<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                                copyItemsFromAxes(pos, hit, ads);<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                                Arrays.sort(ads.data);<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                                setItemsOnAxes(pos, hit, ads.data);<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>                return this;<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                // throw new UnsupportedOperationException("Cannot sort dataset"); // BOOLEAN_USE<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 getUniqueItems() {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                Set&lt;Integer&gt; set = new TreeSet&lt;Integer&gt;(); // CLASS_TYPE<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                IndexIterator it = getIterator();<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                while (it.hasNext()) {<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                        set.add(data[it.index]);<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>                IntegerDataset u = new IntegerDataset(set.size()); // CLASS_TYPE<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                int i = 0;<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                int[] udata = u.getData(); // PRIM_TYPE<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                for (Integer v : set) { // CLASS_TYPE<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        udata[i++] = v;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                return u;<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 IntegerDataset getSlice(final SliceIterator siter) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                IntegerDataset result = new IntegerDataset(siter.getShape());<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                int[] rdata = result.data; // PRIM_TYPE<a name="line.718"></a>
+<span class="sourceLineNo">719</span><a name="line.719"></a>
+<span class="sourceLineNo">720</span>                for (int i = 0; siter.hasNext(); i++)<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                        rdata[i] = data[siter.index];<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                return result;<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>        @Override<a name="line.727"></a>
+<span class="sourceLineNo">728</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                IndexIterator riter = result.getIterator();<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                result.setDirty();<a name="line.730"></a>
+<span class="sourceLineNo">731</span><a name="line.731"></a>
+<span class="sourceLineNo">732</span>                int[] rdata = ((IntegerDataset) result).data; // PRIM_TYPE<a name="line.732"></a>
+<span class="sourceLineNo">733</span><a name="line.733"></a>
+<span class="sourceLineNo">734</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                        rdata[riter.index] = data[iter.index];<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                }<a name="line.736"></a>
+<span class="sourceLineNo">737</span>        }<a name="line.737"></a>
+<span class="sourceLineNo">738</span><a name="line.738"></a>
+<span class="sourceLineNo">739</span>        @Override<a name="line.739"></a>
+<span class="sourceLineNo">740</span>        public IntegerDataset setByBoolean(final Object obj, Dataset selection) {<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                setDirty();<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                if (obj instanceof Dataset) {<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                        final Dataset ds = (Dataset) obj;<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                        if (length != ds.getSize()) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                                throw new IllegalArgumentException(<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.751"></a>
+<span class="sourceLineNo">752</span><a name="line.752"></a>
+<span class="sourceLineNo">753</span>                        while (biter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                                data[biter.index] = (int) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        }<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                } else {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                        final int dv = (int) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.758"></a>
+<span class="sourceLineNo">759</span><a name="line.759"></a>
+<span class="sourceLineNo">760</span>                        while (biter.hasNext()) {<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                                data[biter.index] = dv;<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>                return this;<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>        @Override<a name="line.767"></a>
+<span class="sourceLineNo">768</span>        public IntegerDataset setBy1DIndex(final Object obj, final Dataset index) {<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                setDirty();<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                if (obj instanceof Dataset) {<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                        final Dataset ds = (Dataset) obj;<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                        if (index.getSize() != ds.getSize()) {<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                                throw new IllegalArgumentException(<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                                                "Number of items in index dataset does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                        final IntegerIterator iter = new IntegerIterator(index, size);<a name="line.778"></a>
+<span class="sourceLineNo">779</span><a name="line.779"></a>
+<span class="sourceLineNo">780</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                                data[iter.index] = (int) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                        }<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                } else {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                        final int dv = (int) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        IntegerIterator iter = new IntegerIterator(index, size);<a name="line.785"></a>
+<span class="sourceLineNo">786</span><a name="line.786"></a>
+<span class="sourceLineNo">787</span>                        while (iter.hasNext()) {<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                                data[iter.index] = dv;<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                        }<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                }<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                return this;<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 IntegerDataset setByIndexes(final Object obj, final Object... indexes) {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                setDirty();<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                final int[] pos = iter.getPos();<a name="line.798"></a>
+<span class="sourceLineNo">799</span><a name="line.799"></a>
+<span class="sourceLineNo">800</span>                if (obj instanceof Dataset) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                        final Dataset ds = (Dataset) obj;<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                                throw new IllegalArgumentException(<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                                                "Number of items in index datasets does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.807"></a>
+<span class="sourceLineNo">808</span><a name="line.808"></a>
+<span class="sourceLineNo">809</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                                setItem((int) ds.getElementLongAbs(oiter.index), pos); // GET_ELEMENT_WITH_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>                        final int dv = (int) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.813"></a>
+<span class="sourceLineNo">814</span><a name="line.814"></a>
+<span class="sourceLineNo">815</span>                        while (iter.hasNext()) {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                                setItem(dv, pos);<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                        }<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                }<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                return this;<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>        IntegerDataset setSlicedView(Dataset view, Dataset d) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                setDirty();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span>                while (it.hasNext()) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                        data[it.aIndex] = (int) it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                }<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                return this;<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 IntegerDataset setSlice(final Object obj, final IndexIterator siter) {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                setDirty();<a name="line.835"></a>
+<span class="sourceLineNo">836</span><a name="line.836"></a>
+<span class="sourceLineNo">837</span>                if (obj instanceof IDataset) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                        final IDataset ds = (IDataset) obj;<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                        final int[] oshape = ds.getShape();<a name="line.839"></a>
+<span class="sourceLineNo">840</span><a name="line.840"></a>
+<span class="sourceLineNo">841</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                                throw new IllegalArgumentException(String.format(<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                                                Arrays.toString(siter.getShape())));<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>                        if (ds instanceof Dataset) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                final Dataset ads = (Dataset) ds;<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                final IndexIterator oiter = ads.getIterator();<a name="line.849"></a>
+<span class="sourceLineNo">850</span><a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                        data[siter.index] = (int) ads.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                        } else {<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                final int[] pos = oiter.getPos();<a name="line.855"></a>
+<span class="sourceLineNo">856</span><a name="line.856"></a>
+<span class="sourceLineNo">857</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                                        data[siter.index] = ds.getInt(pos); // PRIM_TYPE<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        }<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                } else {<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        try {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                int v = (int) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.862"></a>
+<span class="sourceLineNo">863</span><a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                while (siter.hasNext())<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                                        data[siter.index] = v;<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                        } catch (IllegalArgumentException e) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<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 this;<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>        @Override<a name="line.873"></a>
+<span class="sourceLineNo">874</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                int[] ddata = (int[]) dest.getBuffer(); // PRIM_TYPE<a name="line.875"></a>
+<span class="sourceLineNo">876</span><a name="line.876"></a>
+<span class="sourceLineNo">877</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.878"></a>
+<span class="sourceLineNo">879</span><a name="line.879"></a>
+<span class="sourceLineNo">880</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.880"></a>
+<span class="sourceLineNo">881</span><a name="line.881"></a>
+<span class="sourceLineNo">882</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<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>                dest.setDirty();<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                        ddata[diter.index] = data[siter.index];<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                }<a name="line.889"></a>
+<span class="sourceLineNo">890</span>        }<a name="line.890"></a>
+<span class="sourceLineNo">891</span><a name="line.891"></a>
+<span class="sourceLineNo">892</span>        @Override<a name="line.892"></a>
+<span class="sourceLineNo">893</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                setDirty();<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                int[] sdata = (int[]) src; // PRIM_TYPE<a name="line.895"></a>
+<span class="sourceLineNo">896</span><a name="line.896"></a>
+<span class="sourceLineNo">897</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.897"></a>
+<span class="sourceLineNo">898</span><a name="line.898"></a>
+<span class="sourceLineNo">899</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                        throw new IllegalArgumentException("destination array is not large enough");<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>                for (int i = 0; siter.hasNext(); i++) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        data[siter.index] = sdata[i];<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                }<a name="line.905"></a>
+<span class="sourceLineNo">906</span>        }<a name="line.906"></a>
+<span class="sourceLineNo">907</span><a name="line.907"></a>
+<span class="sourceLineNo">908</span>        private List&lt;int[]&gt; findPositions(final int value) { // PRIM_TYPE<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                IndexIterator iter = getIterator(true);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                List&lt;int[]&gt; posns = new ArrayList&lt;int[]&gt;();<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                int[] pos = iter.getPos();<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>                        while (iter.hasNext()) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                if (data[iter.index] == value) {<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                        posns.add(pos.clone());<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>                }<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                return posns;<a name="line.920"></a>
+<span class="sourceLineNo">921</span>        }<a name="line.921"></a>
+<span class="sourceLineNo">922</span><a name="line.922"></a>
+<span class="sourceLineNo">923</span>        @Override<a name="line.923"></a>
+<span class="sourceLineNo">924</span>        public int[] maxPos(boolean... ignoreInvalids) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                List&lt;int[]&gt; max = md.getMaximumPositions(ignoreInvalids);<a name="line.928"></a>
+<span class="sourceLineNo">929</span><a name="line.929"></a>
+<span class="sourceLineNo">930</span>                if (max == null) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                        max = findPositions(md.getMaximum(ignoreInvalids).intValue()); // PRIM_TYPE<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.933"></a>
+<span class="sourceLineNo">934</span><a name="line.934"></a>
+<span class="sourceLineNo">935</span>                        md.setMaximumPositions(max);<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>                return max.get(0); // first maximum<a name="line.938"></a>
+<span class="sourceLineNo">939</span>        }<a name="line.939"></a>
+<span class="sourceLineNo">940</span><a name="line.940"></a>
+<span class="sourceLineNo">941</span>        @Override<a name="line.941"></a>
+<span class="sourceLineNo">942</span>        public int[] minPos(boolean... ignoreInvalids) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                List&lt;int[]&gt; min = md.getMinimumPositions(ignoreInvalids);<a name="line.946"></a>
+<span class="sourceLineNo">947</span><a name="line.947"></a>
+<span class="sourceLineNo">948</span>                if (min == null) {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                        min = findPositions(md.getMinimum(ignoreInvalids).intValue()); // PRIM_TYPE<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.951"></a>
+<span class="sourceLineNo">952</span><a name="line.952"></a>
+<span class="sourceLineNo">953</span>                        md.setMinimumPositions(min);<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 min.get(0); // first minimum<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 containsNans() {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                return false;<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>        @Override<a name="line.964"></a>
+<span class="sourceLineNo">965</span>        public boolean containsInfs() {<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>                return false;<a name="line.971"></a>
+<span class="sourceLineNo">972</span>        }<a name="line.972"></a>
+<span class="sourceLineNo">973</span><a name="line.973"></a>
+<span class="sourceLineNo">974</span>        @Override<a name="line.974"></a>
+<span class="sourceLineNo">975</span>        public IntegerDataset iadd(final Object b) {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                setDirty();<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                if (bds.getSize() == 1) {<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                        final IndexIterator it = getIterator();<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                        final int bOffset = bds.getOffset();<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                        if (useLong) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                while (it.hasNext()) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                        data[it.index] += lb;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                }<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                        } else {<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                final double db = bds.getElementDoubleAbs(bOffset);<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] += db;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                }<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                        }<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                } else {<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                        it.setOutputDouble(!useLong);<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                        if (useLong) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                                while (it.hasNext()) {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                        data[it.aIndex] += it.bLong;<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                }<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                        } else {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                while (it.hasNext()) {<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        data[it.aIndex] += it.bDouble;<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                }<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                        }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                return this;<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 IntegerDataset isubtract(final Object b) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                setDirty();<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                if (bds.getSize() == 1) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                        final IndexIterator it = getIterator();<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                        final int bOffset = bds.getOffset();<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                        if (useLong) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                while (it.hasNext()) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                        data[it.index] -= lb;<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>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                while (it.hasNext()) {<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                        data[it.index] -= db;<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                }<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                        }<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                } else {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                        if (useLong) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                it.setOutputDouble(false);<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                                while (it.hasNext()) {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                        data[it.aIndex] -= it.bLong;<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                }<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                        } else {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                it.setOutputDouble(true);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                while (it.hasNext()) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                        data[it.aIndex] -= it.bDouble;<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>                return this;<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>        @Override<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>        public IntegerDataset imultiply(final Object b) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                setDirty();<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                if (bds.getSize() == 1) {<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                        final IndexIterator it = getIterator();<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                        final int bOffset = bds.getOffset();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                        if (useLong) {<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                while (it.hasNext()) {<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                                        data[it.index] *= lb;<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                                }<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                        } else {<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                                while (it.hasNext()) {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                                        data[it.index] *= db;<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                        }<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                } else {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                        it.setOutputDouble(!useLong);<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                        if (useLong) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                while (it.hasNext()) {<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                        data[it.aIndex] *= it.bLong;<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>                                        data[it.aIndex] *= it.bDouble;<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>                return this;<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>        @Override<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>        public IntegerDataset idivide(final Object b) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                setDirty();<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                if (bds.getSize() == 1) {<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                        final int bOffset = bds.getOffset();<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                        if (useLong) {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                if (lb == 0) { // INT_USE<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        fill(0); // INT_USE<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                } else { // INT_USE<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                final IndexIterator it = getIterator();<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                while (it.hasNext()) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                        data[it.index] /= lb;<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                } // INT_USE<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        } else {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                if (db == 0) { // INT_USE<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        fill(0); // INT_USE<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                } else { // INT_USE<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                final IndexIterator it = getIterator();<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                while (it.hasNext()) {<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                        data[it.index] /= db;<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                                } // INT_USE<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        }<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                } else {<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                        it.setOutputDouble(!useLong);<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        if (useLong) {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                while (it.hasNext()) {<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                        if (it.bLong == 0) { // INT_USE<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                        } else { // INT_USE<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                        data[it.aIndex] /= it.bLong;<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        } // INT_USE<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                }<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                        } else {<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                while (it.hasNext()) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                        if (it.bDouble == 0) { // INT_USE<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                        } else { // INT_USE<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                        data[it.aIndex] /= it.bDouble;<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                        } // INT_USE<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>                }<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                return this;<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>        @Override<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>        public IntegerDataset ifloor() {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                return this;<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>        }<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span><a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>        @Override<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>        public IntegerDataset iremainder(final Object b) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                setDirty();<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                if (bds.getSize() == 1) {<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                        final int bOffset = bds.getOffset();<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                        if (useLong) {<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                if (lb == 0) { // INT_USE<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                        fill(0); // INT_USE<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                } else { // INT_USE<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                final IndexIterator it = getIterator();<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                while (it.hasNext()) {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                        data[it.index] %= lb;<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                }<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                                } // INT_USE<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                        } else {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                if (lb == 0) { // INT_USE<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        fill(0); // INT_USE<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                } else { // INT_USE<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                                final IndexIterator it = getIterator();<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                                while (it.hasNext()) {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                                        data[it.index] %= lb;<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                                }<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                                } // INT_USE<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                        }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                } else {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                        it.setOutputDouble(!useLong);<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                        if (useLong) {<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                while (it.hasNext()) {<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                                try {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                                data[it.aIndex] %= it.bLong; // INT_EXCEPTION<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                } catch (ArithmeticException e) {<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                        data[it.aIndex] = 0;<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>                                        data[it.aIndex] %= it.bDouble;<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>                }<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                return this;<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>        }<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span><a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>        @Override<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>        public IntegerDataset ipower(final Object b) {<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                setDirty();<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                if (bds.getSize() == 1) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                        final int bOffset = bds.getOffset();<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                        final double vr = bds.getElementDoubleAbs(bOffset);<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                        final IndexIterator it = getIterator();<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                        if (bds.isComplex()) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                                final double vi = bds.getElementDoubleAbs(bOffset + 1);<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                if (vi == 0) {<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 v = Math.pow(data[it.index], vr);<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                                                        data[it.index] = 0; // INT_USE<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                                                } else { // INT_USE<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                                                data[it.index] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                                                } // INT_USE<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                                        }<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                                } else {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                        final Complex zv = new Complex(vr, vi);<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                                        while (it.hasNext()) {<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                                                Complex zd = new Complex(data[it.index], 0);<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                                                final double v = zd.pow(zv).getReal();<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                                                        data[it.index] = 0; // INT_USE<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                                                } else { // INT_USE<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                                                data[it.index] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                                                } // INT_USE<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                        }<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                }<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                        } else {// NAN_OMIT<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                                while (it.hasNext()) {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                        final double v = Math.pow(data[it.index], vr);<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                                data[it.index] = 0; // INT_USE<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                        } else { // INT_USE<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                        data[it.index] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                        } // INT_USE<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                }<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                        }<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                } else {<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                        it.setOutputDouble(true);<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                        if (bds.isComplex()) {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                while (it.hasNext()) {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                        final double v = new Complex(it.aDouble, 0).pow(zv).getReal();<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                        } else { // INT_USE<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                        data[it.aIndex] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                                        } // INT_USE<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                                }<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        } else {// NAN_OMIT<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                                while (it.hasNext()) {<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                                        final double v = Math.pow(it.aDouble, it.bDouble);<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                        } else { // INT_USE<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                                        data[it.aIndex] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                        } // INT_USE<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                }<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                        }<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                }<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                return this;<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>        @Override<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                it.setOutputDouble(true);<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                double sum = 0;<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                double comp = 0;<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                {<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                        if (w == null) {<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                while (it.hasNext()) {<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                        final double err = diff * diff - comp;<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                                        final double temp = sum + err;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                        comp = (temp - sum) - err;<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                                        sum = temp;<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                }<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        } else {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                IndexIterator itw = w.getIterator();<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                                        final double err = diff * diff * w.getElementDoubleAbs(itw.index) - comp;<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                        final double temp = sum + err;<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                        comp = (temp - sum) - err;<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                        sum = temp;<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                }<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                        }<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                return sum;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/IntegerIterator.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/IntegerIterator.html
new file mode 100644
index 0000000..4d8c3de
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/IntegerIterator.html
@@ -0,0 +1,141 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>/**<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * Class to run over an integer dataset and return its items<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>public class IntegerIterator extends IndexIterator {<a name="line.18"></a>
+<span class="sourceLineNo">019</span>        final private IntegerDataset indices;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>        final private IndexIterator iter;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>        final private int istep; // step over items<a name="line.21"></a>
+<span class="sourceLineNo">022</span>        final private int imax; // maximum index in array<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>        /**<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * Constructor for an iterator over the items of an integer dataset<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         *<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         * @param index integer dataset<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * @param length of entire data array<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        public IntegerIterator(final Dataset index, final int length) {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                this(index, length, 1);<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        }<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        /**<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * Constructor for an iterator over the items of an integer dataset<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         * <a name="line.36"></a>
+<span class="sourceLineNo">037</span>         * @param index integer dataset<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         * @param length of entire data array<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         * @param isize number of elements in an item<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         */<a name="line.40"></a>
+<span class="sourceLineNo">041</span>        public IntegerIterator(final Dataset index, final int length, final int isize) {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                indices = DatasetUtils.convertToDataset(index).cast(IntegerDataset.class);<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                iter = index.getIterator();<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                istep = isize;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                imax = length*istep;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>        }<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>        @Override<a name="line.48"></a>
+<span class="sourceLineNo">049</span>        public boolean hasNext() {<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                while (iter.hasNext()) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                        index = istep*indices.getAbs(iter.index);<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                        if (index &lt; 0) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                                index += imax;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                        }<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                        return true;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                }<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                return false;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        @Override<a name="line.60"></a>
+<span class="sourceLineNo">061</span>        public int[] getPos() {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                return null;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        }<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>        @Override<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        public void reset() {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                iter.reset();<a name="line.67"></a>
+<span class="sourceLineNo">068</span>        }<a name="line.68"></a>
+<span class="sourceLineNo">069</span>}<a name="line.69"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/IntegersIterator.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/IntegersIterator.html
new file mode 100644
index 0000000..ab8f240
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/IntegersIterator.html
@@ -0,0 +1,340 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.ArrayList;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.Arrays;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.List;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>/**<a name="line.19"></a>
+<span class="sourceLineNo">020</span> * Class to run over an array of integer datasets and return its items<a name="line.20"></a>
+<span class="sourceLineNo">021</span> */<a name="line.21"></a>
+<span class="sourceLineNo">022</span>public class IntegersIterator extends IndexIterator {<a name="line.22"></a>
+<span class="sourceLineNo">023</span>        final private int[] ishape; // shape of input<a name="line.23"></a>
+<span class="sourceLineNo">024</span>        final private int irank; // rank of input shape<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        final private int[] oshape; // shape of output<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        final private int orank; // rank of output shape<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        private int offset; // offset of index subspace in new position <a name="line.27"></a>
+<span class="sourceLineNo">028</span>        private int srank; // rank of subspace<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>        final private IndexIterator it;<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>        /**<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * position in input shape<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         */<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        final private int[] ipos;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        /**<a name="line.36"></a>
+<span class="sourceLineNo">037</span>         * position in output shape<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         */<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        final private int[] opos;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        final private List&lt;Object&gt; indexes;<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>        /**<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * Constructor for an iterator over the items of an array of objects<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param shape of entire data array<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * @param index an array of integer dataset, boolean dataset, slices or null entries (same as full slices)<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         */<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        public IntegersIterator(final int[] shape, final Object... index) {<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                this(false, shape, index);<a name="line.48"></a>
+<span class="sourceLineNo">049</span>        }<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>        /**<a name="line.51"></a>
+<span class="sourceLineNo">052</span>         * Constructor for an iterator over the items of an array of objects<a name="line.52"></a>
+<span class="sourceLineNo">053</span>         * @param restrict1D if true, allow only one 1D integer datasets otherwise they must match shape<a name="line.53"></a>
+<span class="sourceLineNo">054</span>         * @param shape of entire data array<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         * @param index an array of integer dataset, boolean dataset, slices or null entries (same as full slices)<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        public IntegersIterator(final boolean restrict1D, final int[] shape, final Object... index) {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                ishape = shape.clone();<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                irank = shape.length;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                if (irank &lt; index.length) {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                        throw new IllegalArgumentException("Number of index datasets is greater than rank of dataset");<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                }<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                indexes = new ArrayList&lt;Object&gt;();<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                for (Object i : index) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                        if (i instanceof BooleanDataset) { // turn boolean datasets into integer ones<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                                for (IntegerDataset id : Comparisons.nonZero((Dataset) i)) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                                        indexes.add(id);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                                }<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                        } else if (i == null || i instanceof Slice) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                                indexes.add(i);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                        } else if (i instanceof IntegerDataset) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                                Dataset id = (Dataset) i;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                                int r = id.getRank();<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                                if (restrict1D &amp;&amp; r &gt; 1) {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                                        throw new IllegalArgumentException("Integer datasets were restricted to zero or one dimensions");<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                                }<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                                if (r == 0) { // avoid zero-rank datasets<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                        i = id.reshape(1);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                }<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                indexes.add(i);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        } else {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                                throw new IllegalArgumentException("Unsupported object for indexing");<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                        }<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                }<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                if (indexes.size() &lt; irank) { // pad out index list<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                        for (int i = indexes.size(); i &lt; irank; i++) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                                indexes.add(null);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                        }<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                } else if (indexes.size() &gt; irank) {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                        throw new IllegalArgumentException("Too many indices (a boolean dataset may have too many dimensions)");<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                }<a name="line.91"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span>                int ilength = -1;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                int[] cshape = null;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                int first = -1; // index of first null or slice after non-null index<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                boolean intact = true;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                srank = 0;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                for (int i = 0; i &lt; irank; i++) { // see if shapes are consistent and subspace is intact<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        Object obj = indexes.get(i);<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                        if (obj instanceof IntegerDataset &amp;&amp; !restrict1D) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                                IntegerDataset ind = (IntegerDataset) obj;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                if (first &gt; 0) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                        intact = false;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                int l = ind.size;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                                if (ilength &lt; l) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                                        ilength = l;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                                        cshape = null;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                                } else if (l != 1 &amp;&amp; l != ilength) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                                        throw new IllegalArgumentException("Index datasets do not have same size");<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                                }<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                                if (cshape == null) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                                        cshape = ind.shape;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                                        srank = cshape.length;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                        offset = i;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                                } else if (l &gt; 1 &amp;&amp; !Arrays.equals(ind.shape, cshape)) { // broadcast<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                        throw new IllegalArgumentException("Index datasets do not have same shape");<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                                }<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                        } else {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                if (cshape != null) {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                        if (first &lt; 0)<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                                first = i;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                                }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                        }<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>                List&lt;Integer&gt; oShape = new ArrayList&lt;Integer&gt;(irank);<a name="line.128"></a>
+<span class="sourceLineNo">129</span><a name="line.129"></a>
+<span class="sourceLineNo">130</span>                if (intact) { // get new output shape list<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        boolean used = false;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        for (int i = 0; i &lt; irank; i++) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                                Object obj = indexes.get(i);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                                if (obj instanceof IntegerDataset) {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                                        if (restrict1D || !used) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                                                used = true;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                                                int[] lshape = restrict1D ? ((IntegerDataset) obj).shape : cshape;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                                                for (int j : lshape) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                                                        oShape.add(j);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                                                }<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                                        }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                                } else if (obj instanceof Slice) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                                        Slice s = (Slice) obj;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                                        int l = ishape[i];<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                                        s.setLength(l);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                                        oShape.add(s.getNumSteps());<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                                } else {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                                        oShape.add(ishape[i]);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                                }<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                        }<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                } else {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        assert cshape != null;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                        for (int j : cshape) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                                oShape.add(j);<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                        }<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        for (int i = 0; i &lt; irank; i++) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                                Object obj = indexes.get(i);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                                if (obj == null) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                                        oShape.add(ishape[i]);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                                } else if (obj instanceof Slice) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                                        Slice s = (Slice) obj;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                                        int l = ishape[i];<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                                        s.setLength(l);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                                        oShape.add(s.getNumSteps());<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                                }<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        }<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                }<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                orank = oShape.size();<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                oshape = new int[orank];<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                for (int i = 0; i &lt; orank; i++) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        oshape[i] = oShape.get(i);<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                }<a name="line.172"></a>
+<span class="sourceLineNo">173</span><a name="line.173"></a>
+<span class="sourceLineNo">174</span>                for (int i = 0; i &lt; irank; i++) { // check input indexes for out of bounds<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                        Object obj = indexes.get(i);<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                        if (obj instanceof IntegerDataset) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                                IntegerDataset ind = (IntegerDataset) obj;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                                if (ind.getSize() &gt; 0) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                                        int l = ishape[i];<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                                        if (ind.min().intValue() &lt; -l || ind.max().intValue() &gt;= l) {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                                                throw new IllegalArgumentException("A value in index datasets is outside permitted range");<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                                        }<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                                }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                        }<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                }<a name="line.185"></a>
+<span class="sourceLineNo">186</span><a name="line.186"></a>
+<span class="sourceLineNo">187</span>                ipos = new int[irank];<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                it = new PositionIterator(oshape);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                opos = it.getPos();<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>        @Override<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        public int[] getShape() {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                return oshape;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        }<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>        @Override<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        public boolean hasNext() {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                if (it.hasNext()) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        int i = 0;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                        for (; i &lt; offset; i++) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                                Object obj = indexes.get(i);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                                if (obj == null) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                                        ipos[i] = opos[i];<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                                } else if (obj instanceof Slice) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                                        Slice s = (Slice) obj;<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                                        ipos[i] = s.getPosition(opos[i]); // overwrite position<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                                } else {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                                        throw new IllegalStateException("Bad state: index dataset before offset");<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                                }<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                        }<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                        int[] spos = srank &gt; 0 ? Arrays.copyOfRange(opos, i, i+srank) : opos;<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                        if (spos == opos) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                                for (; i &lt; irank; i++) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                                        Object obj = indexes.get(i);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                                        if (obj == null) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                                                ipos[i] = opos[i];<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                                        } else if (obj instanceof Slice) {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                                                Slice s = (Slice) obj;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                                                ipos[i] = s.getPosition(opos[i]); // overwrite position<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                                        } else if (obj instanceof IntegerDataset) { // allowed when restricted to 1D<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                                                int p = ((Dataset) obj).getInt(opos[i]);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                                                ipos[i] = p &lt; 0 ? p + ishape[i] : p;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                                        } else {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                                                throw new IllegalStateException("Bad state: index dataset after subspace");<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                                        }<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                                }<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                        } else {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                                for (int j = 0; j &lt; irank; j++) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                                        Object obj = indexes.get(j);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                                        if (obj instanceof IntegerDataset) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                                                IntegerDataset ind = (IntegerDataset) obj;<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                                int p = ind.size &gt; 1 ? ind.get(spos) : ind.getAbs(0); // broadcasting<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                                                ipos[i] = p &lt; 0 ? p + ishape[i] : p;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                                                i++;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                                        }<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                                }<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                                int o = orank - irank;<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                                for (; i &lt; irank; i++) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                                        Object obj = indexes.get(i);<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                                        if (obj == null) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                                                ipos[i] = opos[i+o];<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                        } else if (obj instanceof Slice) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                                                Slice s = (Slice) obj;<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                                                ipos[i] = s.getPosition(opos[i+o]); // overwrite position<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                                        } else {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                                                throw new IllegalStateException("Bad state: index dataset after subspace");<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                                        }<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                }<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                        }<a name="line.250"></a>
+<span class="sourceLineNo">251</span>//                      System.err.println(Arrays.toString(opos) + ", " + Arrays.toString(spos) + ", " + Arrays.toString(ipos));<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                        return true;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                }<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                return false;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        }<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>        @Override<a name="line.257"></a>
+<span class="sourceLineNo">258</span>        public int[] getPos() {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                return ipos;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>        }<a name="line.260"></a>
+<span class="sourceLineNo">261</span><a name="line.261"></a>
+<span class="sourceLineNo">262</span>        @Override<a name="line.262"></a>
+<span class="sourceLineNo">263</span>        public void reset() {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                it.reset();<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                Arrays.fill(ipos, 0);<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                index = 0;<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        }<a name="line.267"></a>
+<span class="sourceLineNo">268</span>}<a name="line.268"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/InterfaceUtils.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/InterfaceUtils.html
new file mode 100644
index 0000000..cbcf2f5
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/InterfaceUtils.html
@@ -0,0 +1,586 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.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) 2019 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.LinkedHashMap;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.List;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.Map;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.Map.Entry;<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> * @since 2.3<a name="line.23"></a>
+<span class="sourceLineNo">024</span> */<a name="line.24"></a>
+<span class="sourceLineNo">025</span>public class InterfaceUtils {<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        private static final Map&lt;Class&lt;?&gt;, Class&lt;? extends Dataset&gt;&gt; class2Interface;<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>        private static final Map&lt;Class&lt;? extends Dataset&gt;, Class&lt;?&gt;&gt; interface2Class;<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>        private static final Map&lt;Class&lt;?&gt;, Integer&gt; elementBytes;<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>        private static final Map&lt;Class&lt;?&gt;, Class&lt;?&gt;&gt; bestFloatElement;<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        private static final Map&lt;Class&lt;? extends Dataset&gt;, Class&lt;? extends CompoundDataset&gt;&gt; interface2Compound;<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>        private static final Map&lt;Class&lt;? extends CompoundDataset&gt;, Class&lt;? extends Dataset&gt;&gt; compound2Interface;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        static {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                class2Interface = createClassInterfaceMap();<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>                interface2Class = createInterfaceClassMap();<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>                elementBytes = createElementBytesMap();<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>                bestFloatElement = createBestFloatElementMap();<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>                interface2Compound = createInterfaceCompoundMap();<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                compound2Interface = new HashMap&lt;Class&lt;? extends CompoundDataset&gt;, Class&lt;? extends Dataset&gt;&gt;();<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                for (Entry&lt;Class&lt;? extends Dataset&gt;, Class&lt;? extends CompoundDataset&gt;&gt; e : interface2Compound.entrySet()) {<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                        compound2Interface.put(e.getValue(), e.getKey());<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>        private static Map&lt;Class&lt;?&gt;, Class&lt;? extends Dataset&gt;&gt; createClassInterfaceMap() {<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                Map&lt;Class&lt;?&gt;, Class&lt;? extends Dataset&gt;&gt; result = new HashMap&lt;&gt;();<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                result.put(Boolean.class, BooleanDataset.class);<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                result.put(Byte.class, ByteDataset.class);<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                result.put(Short.class, ShortDataset.class);<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                result.put(Integer.class, IntegerDataset.class);<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                result.put(Long.class, LongDataset.class);<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                result.put(Float.class, FloatDataset.class);<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                result.put(Double.class, DoubleDataset.class);<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                result.put(boolean.class, BooleanDataset.class);<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                result.put(byte.class, ByteDataset.class);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                result.put(short.class, ShortDataset.class);<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                result.put(int.class, IntegerDataset.class);<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                result.put(long.class, LongDataset.class);<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                result.put(float.class, FloatDataset.class);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                result.put(double.class, DoubleDataset.class);<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                result.put(Complex.class, ComplexDoubleDataset.class);<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                result.put(String.class, StringDataset.class);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                result.put(Date.class, DateDataset.class);<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                return result;<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>        private static Map&lt;Class&lt;? extends Dataset&gt;, Class&lt;?&gt;&gt; createInterfaceClassMap() {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                Map&lt;Class&lt;? extends Dataset&gt;, Class&lt;?&gt;&gt; result = new HashMap&lt;&gt;();<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                result.put(BooleanDataset.class, Boolean.class);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                result.put(ByteDataset.class, Byte.class);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                result.put(ShortDataset.class, Short.class);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                result.put(IntegerDataset.class, Integer.class);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                result.put(LongDataset.class, Long.class);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                result.put(FloatDataset.class, Float.class);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                result.put(DoubleDataset.class, Double.class);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                result.put(CompoundByteDataset.class, Byte.class);<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                result.put(CompoundShortDataset.class, Short.class);<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                result.put(CompoundIntegerDataset.class, Integer.class);<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                result.put(CompoundLongDataset.class, Long.class);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                result.put(CompoundFloatDataset.class, Float.class);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                result.put(CompoundDoubleDataset.class, Double.class);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                result.put(ComplexFloatDataset.class, Float.class);<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                result.put(ComplexDoubleDataset.class, Double.class);<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                result.put(RGBDataset.class, Short.class);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                result.put(StringDataset.class, String.class);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                result.put(DateDataset.class, Date.class);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                result.put(ObjectDataset.class, Object.class);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                return result;<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>        private static Map&lt;Class&lt;?&gt;, Integer&gt; createElementBytesMap() {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                Map&lt;Class&lt;?&gt;, Integer&gt; result = new LinkedHashMap&lt;&gt;();<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                result.put(Boolean.class, 1);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                result.put(Byte.class, Byte.SIZE / 8);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                result.put(Short.class, Short.SIZE / 8);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                result.put(Integer.class, Integer.SIZE / 8);<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                result.put(Long.class, Long.SIZE / 8);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                result.put(Float.class, Float.SIZE / 8);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                result.put(Double.class, Double.SIZE / 8);<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                result.put(String.class, 1);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                result.put(Object.class, 1);<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                result.put(Date.class, 1);<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                return result;<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>        private static Map&lt;Class&lt;?&gt;, Class&lt;?&gt;&gt; createBestFloatElementMap() {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                Map&lt;Class&lt;?&gt;, Class&lt;?&gt;&gt; result = new HashMap&lt;&gt;();<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                result.put(Boolean.class, Float.class);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                result.put(Byte.class, Float.class);<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                result.put(Short.class, Float.class);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                result.put(Integer.class, Double.class);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                result.put(Long.class, Double.class);<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                result.put(Float.class, Float.class);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                result.put(Double.class, Double.class);<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                return result;<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 Map&lt;Class&lt;? extends Dataset&gt;, Class&lt;? extends CompoundDataset&gt;&gt; createInterfaceCompoundMap() {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                Map&lt;Class&lt;? extends Dataset&gt;, Class&lt;? extends CompoundDataset&gt;&gt; result = new HashMap&lt;&gt;();<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                result.put(ByteDataset.class, CompoundByteDataset.class);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                result.put(ShortDataset.class, CompoundShortDataset.class);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                result.put(IntegerDataset.class, CompoundIntegerDataset.class);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                result.put(LongDataset.class, CompoundLongDataset.class);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                result.put(FloatDataset.class, CompoundFloatDataset.class);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                result.put(DoubleDataset.class, CompoundDoubleDataset.class);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                return result;<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>         * @param clazz<a name="line.138"></a>
+<span class="sourceLineNo">139</span>         * @return true if supported as an element class (note, Object is not supported)<a name="line.139"></a>
+<span class="sourceLineNo">140</span>         */<a name="line.140"></a>
+<span class="sourceLineNo">141</span>        public static boolean isElementSupported(Class&lt;? extends Object&gt; clazz) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                return class2Interface.containsKey(clazz);<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>         * @param clazz dataset class<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         * @return (boxed) class of constituent element<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         */<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        public static Class&lt;?&gt; getElementClass(final Class&lt;? extends Dataset&gt; clazz) {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                return interface2Class.get(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>        /**<a name="line.153"></a>
+<span class="sourceLineNo">154</span>         * Get dataset interface from an object. The following are supported: Java Number objects, Apache common math Complex<a name="line.154"></a>
+<span class="sourceLineNo">155</span>         * objects, Java arrays and lists<a name="line.155"></a>
+<span class="sourceLineNo">156</span>         *<a name="line.156"></a>
+<span class="sourceLineNo">157</span>         * @param obj<a name="line.157"></a>
+<span class="sourceLineNo">158</span>         * @return dataset interface <a name="line.158"></a>
+<span class="sourceLineNo">159</span>         */<a name="line.159"></a>
+<span class="sourceLineNo">160</span>        public static Class &lt;? extends Dataset&gt; getInterface(Object obj) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                Class&lt;? extends Dataset&gt; dc = null;<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>                if (obj == null) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        return ObjectDataset.class;<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 (obj instanceof List&lt;?&gt;) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                        List&lt;?&gt; jl = (List&lt;?&gt;) obj;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                        int l = jl.size();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                        for (int i = 0; i &lt; l; i++) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                                Class&lt;? extends Dataset&gt; lc = getInterface(jl.get(i));<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                                if (isBetter(lc, dc)) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                                        dc = lc;<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>                } else if (obj.getClass().isArray()) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                        Class&lt;?&gt; ca = obj.getClass().getComponentType();<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        if (isElementSupported(ca)) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                                return class2Interface.get(ca);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                        }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                        int l = Array.getLength(obj);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        for (int i = 0; i &lt; l; i++) {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                                Object lo = Array.get(obj, i);<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                                Class&lt;? extends Dataset&gt; lc = getInterface(lo);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                                if (isBetter(lc, dc)) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                                        dc = lc;<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>                } else if (obj instanceof Dataset) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                        return ((Dataset) obj).getClass();<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                } else if (obj instanceof ILazyDataset) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                        dc = getInterfaceFromClass(((ILazyDataset) obj).getElementsPerItem(), ((ILazyDataset) obj).getElementClass());<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                } else {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                        Class&lt;?&gt; ca = obj.getClass();<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                        if (isElementSupported(ca)) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                                return class2Interface.get(ca);<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>                return dc;<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>         * @param elementsPerItem<a name="line.203"></a>
+<span class="sourceLineNo">204</span>         * @param elementClass<a name="line.204"></a>
+<span class="sourceLineNo">205</span>         * @return dataset interface <a name="line.205"></a>
+<span class="sourceLineNo">206</span>         */<a name="line.206"></a>
+<span class="sourceLineNo">207</span>        public static Class&lt;? extends Dataset&gt; getInterfaceFromClass(int elementsPerItem, Class&lt;?&gt; elementClass) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                Class&lt;? extends Dataset&gt; clazz = class2Interface.get(elementClass);<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                if (clazz == null) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                        throw new IllegalArgumentException("Class of object not supported");<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                }<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                if (elementsPerItem &gt; 1 &amp;&amp; interface2Compound.containsKey(clazz)) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                        clazz = interface2Compound.get(clazz);<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                }<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                return clazz;<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        }<a name="line.216"></a>
+<span class="sourceLineNo">217</span><a name="line.217"></a>
+<span class="sourceLineNo">218</span>        /**<a name="line.218"></a>
+<span class="sourceLineNo">219</span>         * @param clazz dataset interface<a name="line.219"></a>
+<span class="sourceLineNo">220</span>         * @return elemental dataset interface available for given dataset interface<a name="line.220"></a>
+<span class="sourceLineNo">221</span>         */<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        public static Class&lt;? extends Dataset&gt; getElementalInterface(final Class&lt;? extends Dataset&gt; clazz) {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                return isElemental(clazz) ? clazz : compound2Interface.get(clazz);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        }<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>        /**<a name="line.226"></a>
+<span class="sourceLineNo">227</span>         * @param a dataset<a name="line.227"></a>
+<span class="sourceLineNo">228</span>         * @return true if dataset is not compound or complex<a name="line.228"></a>
+<span class="sourceLineNo">229</span>         */<a name="line.229"></a>
+<span class="sourceLineNo">230</span>        public static boolean isElemental(ILazyDataset a) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                return isElemental(getInterface(a));<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>         * @param clazz<a name="line.235"></a>
+<span class="sourceLineNo">236</span>         * @return true if dataset interface is not compound or complex<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         */<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        public static boolean isElemental(Class&lt;? extends Dataset&gt; clazz) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                return !CompoundDataset.class.isAssignableFrom(clazz) || !ComplexFloatDataset.class.equals(clazz) || !ComplexDoubleDataset.class.equals(clazz);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        }<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>        /**<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         * @param clazz<a name="line.243"></a>
+<span class="sourceLineNo">244</span>         * @return true if dataset interface is compound (not complex)<a name="line.244"></a>
+<span class="sourceLineNo">245</span>         */<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        public static boolean isCompound(Class&lt;? extends Dataset&gt; clazz) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                return compound2Interface.containsKey(clazz) || RGBDataset.class.equals(clazz);<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>        /**<a name="line.250"></a>
+<span class="sourceLineNo">251</span>         * @param a dataset<a name="line.251"></a>
+<span class="sourceLineNo">252</span>         * @return true if dataset has integer elements<a name="line.252"></a>
+<span class="sourceLineNo">253</span>         */<a name="line.253"></a>
+<span class="sourceLineNo">254</span>        public static boolean isInteger(ILazyDataset a) {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                return a instanceof Dataset ? isInteger(((Dataset) a).getClass()) : isElementClassInteger(a.getElementClass());<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>        /**<a name="line.258"></a>
+<span class="sourceLineNo">259</span>         * @param a dataset<a name="line.259"></a>
+<span class="sourceLineNo">260</span>         * @return true if dataset has floating point elements<a name="line.260"></a>
+<span class="sourceLineNo">261</span>         */<a name="line.261"></a>
+<span class="sourceLineNo">262</span>        public static boolean isFloating(ILazyDataset a) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                return a instanceof Dataset ? isFloating(((Dataset) a).getClass()) : isElementClassFloating(a.getElementClass());<a name="line.263"></a>
+<span class="sourceLineNo">264</span>        }<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>        /**<a name="line.266"></a>
+<span class="sourceLineNo">267</span>         * @param clazz<a name="line.267"></a>
+<span class="sourceLineNo">268</span>         * @return true if dataset interface has integer elements<a name="line.268"></a>
+<span class="sourceLineNo">269</span>         */<a name="line.269"></a>
+<span class="sourceLineNo">270</span>        public static boolean isInteger(Class&lt;? extends Dataset&gt; clazz) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                Class&lt;?&gt; c = interface2Class.get(clazz);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                return isElementClassInteger(c);<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>         * @param clazz<a name="line.276"></a>
+<span class="sourceLineNo">277</span>         * @return true if dataset interface has floating point elements<a name="line.277"></a>
+<span class="sourceLineNo">278</span>         */<a name="line.278"></a>
+<span class="sourceLineNo">279</span>        public static boolean isFloating(Class&lt;? extends Dataset&gt; clazz) {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                Class&lt;?&gt; c = interface2Class.get(clazz);<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                return isElementClassFloating(c);<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>        private static boolean isElementClassInteger(Class&lt;?&gt; c) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                return Byte.class == c || Short.class == c || Integer.class == c || Long.class == c;<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>        private static boolean isElementClassFloating(Class&lt;?&gt; c) {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                return Double.class == c || Float.class == c;<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>         * @param clazz<a name="line.293"></a>
+<span class="sourceLineNo">294</span>         * @return true if dataset interface has complex items<a name="line.294"></a>
+<span class="sourceLineNo">295</span>         */<a name="line.295"></a>
+<span class="sourceLineNo">296</span>        public static boolean isComplex(Class&lt;? extends Dataset&gt; clazz) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                return ComplexDoubleDataset.class.isAssignableFrom(clazz) || ComplexFloatDataset.class.isAssignableFrom(clazz);<a name="line.297"></a>
+<span class="sourceLineNo">298</span>        }<a name="line.298"></a>
+<span class="sourceLineNo">299</span><a name="line.299"></a>
+<span class="sourceLineNo">300</span>        /**<a name="line.300"></a>
+<span class="sourceLineNo">301</span>         * @param clazz<a name="line.301"></a>
+<span class="sourceLineNo">302</span>         * @return true if dataset interface has numerical elements<a name="line.302"></a>
+<span class="sourceLineNo">303</span>         */<a name="line.303"></a>
+<span class="sourceLineNo">304</span>        public static boolean isNumerical(Class&lt;? extends Dataset&gt; clazz) {<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                Class&lt;?&gt; c = interface2Class.get(clazz);<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                return Boolean.class == c || isElementClassInteger(c) || isElementClassFloating(c);<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>         * @param clazz<a name="line.310"></a>
+<span class="sourceLineNo">311</span>         * @return number of elements per item<a name="line.311"></a>
+<span class="sourceLineNo">312</span>         */<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        public static int getElementsPerItem(Class&lt;? extends Dataset&gt; clazz) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                if (isComplex(clazz)) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                        return 2;<a name="line.315"></a>
+<span class="sourceLineNo">316</span>                } else if (RGBDataset.class.isAssignableFrom(clazz)) {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                        return 3;<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                }<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                if (CompoundDataset.class.isAssignableFrom(clazz)) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                        throw new UnsupportedOperationException("Multi-element type unsupported");<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                }<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                return 1;<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>         * Find dataset interface that best fits given classes. The best class takes into account complex and array datasets<a name="line.326"></a>
+<span class="sourceLineNo">327</span>         *<a name="line.327"></a>
+<span class="sourceLineNo">328</span>         * @param a<a name="line.328"></a>
+<span class="sourceLineNo">329</span>         *            first dataset class<a name="line.329"></a>
+<span class="sourceLineNo">330</span>         * @param b<a name="line.330"></a>
+<span class="sourceLineNo">331</span>         *            second dataset class<a name="line.331"></a>
+<span class="sourceLineNo">332</span>         * @return best dataset interface<a name="line.332"></a>
+<span class="sourceLineNo">333</span>         */<a name="line.333"></a>
+<span class="sourceLineNo">334</span>        public static Class&lt;? extends Dataset&gt; getBestInterface(Class&lt;? extends Dataset&gt; a, Class&lt;? extends Dataset&gt; b) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                boolean isElemental = true;<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                <a name="line.336"></a>
+<span class="sourceLineNo">337</span>                if (a == null) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                        return b;<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                }<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                if (b == null) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                        return a;<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                }<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                if (!isElemental(a)) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                        isElemental = false;<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                        a = compound2Interface.get(a);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                }<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                if (!isElemental(b)) {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                        isElemental = false;<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        b = compound2Interface.get(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>                if (isFloating(a)) {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                        if (!isFloating(b)) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                                b = getBestFloatInterface(b); // note doesn't change if not numerical!!!<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                        } else if (isComplex(b)) {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                                a = DoubleDataset.class.isAssignableFrom(a) ? ComplexDoubleDataset.class : ComplexFloatDataset.class;<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                        }<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                        if (isComplex(a) &amp;&amp; !isComplex(b)) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                                b = DoubleDataset.class.isAssignableFrom(b) ? ComplexDoubleDataset.class : ComplexFloatDataset.class;<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                        }<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                } else if (isFloating(b)) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                        a = getBestFloatInterface(a);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                        if (isComplex(b)) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                                a = DoubleDataset.class.isAssignableFrom(a) ? ComplexDoubleDataset.class : ComplexFloatDataset.class;<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>                Class&lt;? extends Dataset&gt; c = isBetter(interface2Class.get(a), interface2Class.get(b)) ? a : b;<a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span>                if (!isElemental &amp;&amp; interface2Compound.containsKey(c)) {<a name="line.370"></a>
+<span class="sourceLineNo">371</span>                        c = interface2Compound.get(c);<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                }<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                return c;<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>        private static boolean isBetter(Class&lt;?&gt; a, Class&lt;?&gt; b) {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                for (Class&lt;?&gt; k : elementBytes.keySet()) { // elements order in increasing width (for numerical primitives)<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                        if (k.equals(b)) {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                                return true;<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                        }<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                        if (k.equals(a)) {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                                return false;<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>                return true;<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>         * The largest dataset type suitable for a summation of around a few thousand items without changing from the "kind"<a name="line.389"></a>
+<span class="sourceLineNo">390</span>         * of dataset<a name="line.390"></a>
+<span class="sourceLineNo">391</span>         *<a name="line.391"></a>
+<span class="sourceLineNo">392</span>         * @param otype<a name="line.392"></a>
+<span class="sourceLineNo">393</span>         * @return largest dataset type available for given dataset type<a name="line.393"></a>
+<span class="sourceLineNo">394</span>         */<a name="line.394"></a>
+<span class="sourceLineNo">395</span>        public static Class&lt;? extends Dataset&gt; getLargestInterface(Dataset a) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                if (a instanceof BooleanDataset || a instanceof ByteDataset || a instanceof ShortDataset) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                        return IntegerDataset.class;<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                } else if (a instanceof IntegerDataset) {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                        return LongDataset.class;<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                } else if (a instanceof FloatDataset) {<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                        return DoubleDataset.class;<a name="line.401"></a>
+<span class="sourceLineNo">402</span>                } else if (a instanceof ComplexFloatDataset) {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                        return ComplexDoubleDataset.class;<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                } else if (a instanceof CompoundByteDataset || a instanceof CompoundShortDataset) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>                        return CompoundIntegerDataset.class;<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                } else if (a instanceof CompoundIntegerDataset) {<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                        return CompoundLongDataset.class;<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                } else if (a instanceof CompoundFloatDataset) {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                        return CompoundDoubleDataset.class;<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                }<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                return a.getClass();<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>         * Find floating point dataset interface that best fits given types. The best type takes into account complex and array<a name="line.415"></a>
+<span class="sourceLineNo">416</span>         * datasets<a name="line.416"></a>
+<span class="sourceLineNo">417</span>         *<a name="line.417"></a>
+<span class="sourceLineNo">418</span>         * @param clazz<a name="line.418"></a>
+<span class="sourceLineNo">419</span>         *            old dataset class<a name="line.419"></a>
+<span class="sourceLineNo">420</span>         * @return best dataset interface<a name="line.420"></a>
+<span class="sourceLineNo">421</span>         */<a name="line.421"></a>
+<span class="sourceLineNo">422</span>        public static Class&lt;? extends Dataset&gt; getBestFloatInterface(Class&lt;? extends Dataset&gt; clazz) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                Class&lt;?&gt; e = interface2Class.get(clazz);<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                if (bestFloatElement.containsKey(e)) {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                        e = bestFloatElement.get(e);<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                        return class2Interface.get(e);<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                }<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                return clazz;<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 isize<a name="line.432"></a>
+<span class="sourceLineNo">433</span>         *            number of elements in an item<a name="line.433"></a>
+<span class="sourceLineNo">434</span>         * @param dtype<a name="line.434"></a>
+<span class="sourceLineNo">435</span>         * @return length of single item in bytes<a name="line.435"></a>
+<span class="sourceLineNo">436</span>         */<a name="line.436"></a>
+<span class="sourceLineNo">437</span>        public static int getItemBytes(final int isize, Class&lt;? extends Dataset&gt; clazz) {<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                int bytes = elementBytes.get(interface2Class.get(clazz));<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span>                return isize * bytes;<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>         * Convert double array to primitive array<a name="line.444"></a>
+<span class="sourceLineNo">445</span>         * @param clazz dataset interface<a name="line.445"></a>
+<span class="sourceLineNo">446</span>         * @param x<a name="line.446"></a>
+<span class="sourceLineNo">447</span>         * @return biggest native primitive array if integer. Return null if not interface is not numerical<a name="line.447"></a>
+<span class="sourceLineNo">448</span>         */<a name="line.448"></a>
+<span class="sourceLineNo">449</span>        public static Object fromDoublesToBiggestPrimitives(Class&lt;? extends Dataset&gt; clazz, double[] x) {<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                if (BooleanDataset.class.isAssignableFrom(clazz) || ByteDataset.class.isAssignableFrom(clazz)<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                                || ShortDataset.class.isAssignableFrom(clazz) || IntegerDataset.class.isAssignableFrom(clazz)) {<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                        int[] i32 = new int[x.length];<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                        for (int i = 0; i &lt; x.length; i++) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                                i32[i] = (int) (long) x[i];<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                        }<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                        return i32;<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                } else if (LongDataset.class.isAssignableFrom(clazz)) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        long[] i64 = new long[x.length];<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                        for (int i = 0; i &lt; x.length; i++) {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                                i64[i] = (long) x[i];<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                        }<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                        return i64;<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                } else if (FloatDataset.class.isAssignableFrom(clazz)) {<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                        float[] f32 = new float[x.length];<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                        for (int i = 0; i &lt; x.length; i++) {<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                                f32[i] = (float) x[i];<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                        }<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        return f32;<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                } else if (DoubleDataset.class.isAssignableFrom(clazz)) {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                        return x;<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                }<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                return null;<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>         * Convert double to number<a name="line.476"></a>
+<span class="sourceLineNo">477</span>         * @param clazz dataset interface<a name="line.477"></a>
+<span class="sourceLineNo">478</span>         * @param x<a name="line.478"></a>
+<span class="sourceLineNo">479</span>         * @return biggest number if integer. Return null if not interface is not numerical<a name="line.479"></a>
+<span class="sourceLineNo">480</span>         */<a name="line.480"></a>
+<span class="sourceLineNo">481</span>        public static Number fromDoubleToBiggestNumber(Class&lt;? extends Dataset&gt; clazz, double x) {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                if (BooleanDataset.class.isAssignableFrom(clazz) || ByteDataset.class.isAssignableFrom(clazz)<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                                || ShortDataset.class.isAssignableFrom(clazz) || IntegerDataset.class.isAssignableFrom(clazz)) {<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                        return Integer.valueOf((int) (long) x);<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                } else if (LongDataset.class.isAssignableFrom(clazz)) {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                        return Long.valueOf((long) x);<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                } else if (FloatDataset.class.isAssignableFrom(clazz)) {<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                        return Float.valueOf((float) x);<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                } else if (DoubleDataset.class.isAssignableFrom(clazz)) {<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                        return Double.valueOf(x);<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                }<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                return null;<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>         * @param clazz dataset interface<a name="line.496"></a>
+<span class="sourceLineNo">497</span>         * @param x<a name="line.497"></a>
+<span class="sourceLineNo">498</span>         * @return biggest native primitive if integer<a name="line.498"></a>
+<span class="sourceLineNo">499</span>         * @since 2.3<a name="line.499"></a>
+<span class="sourceLineNo">500</span>         */<a name="line.500"></a>
+<span class="sourceLineNo">501</span>        public static Number toBiggestNumber(Class&lt;? extends Dataset&gt; clazz, Number x) {<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                if (BooleanDataset.class.isAssignableFrom(clazz) || ByteDataset.class.isAssignableFrom(clazz)<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                                || ShortDataset.class.isAssignableFrom(clazz) || IntegerDataset.class.isAssignableFrom(clazz)) {<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                        return x instanceof Integer ? x : Integer.valueOf(x.intValue());<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                } else if (LongDataset.class.isAssignableFrom(clazz)) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                        return x instanceof Long ? x : Long.valueOf(x.longValue());<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                } else if (FloatDataset.class.isAssignableFrom(clazz)) {<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                        return x instanceof Float ? x : Float.valueOf(x.floatValue());<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                } else if (DoubleDataset.class.isAssignableFrom(clazz)) {<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                        return x instanceof Double ? x : Double.valueOf(x.doubleValue());<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                }<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                return null;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/InterpolatorUtils.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/InterpolatorUtils.html
new file mode 100644
index 0000000..3460163
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/InterpolatorUtils.html
@@ -0,0 +1,578 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.ArrayList;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.Collections;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.Comparator;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>class InterpolatedPoint {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        Dataset realPoint;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>        Dataset coordPoint;<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>        public InterpolatedPoint(Dataset realPoint, Dataset coordPoint) {<a name="line.24"></a>
+<span class="sourceLineNo">025</span>                this.realPoint = realPoint;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>                this.coordPoint = coordPoint;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        }<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>        public Dataset getRealPoint() {<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                return realPoint;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        }<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>        public Dataset getCoordPoint() {<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                return coordPoint;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        }<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        <a name="line.36"></a>
+<span class="sourceLineNo">037</span>        @Override<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        public String toString() {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                String realString = "[ " + realPoint.getDouble(0);<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                for(int i = 1; i &lt; realPoint.getShapeRef()[0]; i++) {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                        realString += " , " + realPoint.getDouble(i);<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                }<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                realString += " ]";<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                <a name="line.44"></a>
+<span class="sourceLineNo">045</span>                String coordString = "[ " + coordPoint.getDouble(0);<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                for(int i = 1; i &lt; coordPoint.getShapeRef()[0]; i++) {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                        coordString += " , " + coordPoint.getDouble(i) ;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                }<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                coordString += " ]";<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                <a name="line.50"></a>
+<span class="sourceLineNo">051</span>                return realString + " : " + coordString;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        }<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>}<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>public class InterpolatorUtils {<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>        public static Dataset regridOld(Dataset data, Dataset x, Dataset y,<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                        Dataset gridX, Dataset gridY) throws Exception {<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                <a name="line.60"></a>
+<span class="sourceLineNo">061</span>                DoubleDataset result = DatasetFactory.zeros(DoubleDataset.class, gridX.getShapeRef()[0], gridY.getShapeRef()[0]);<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                <a name="line.62"></a>
+<span class="sourceLineNo">063</span>                IndexIterator itx = gridX.getIterator();<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                <a name="line.64"></a>
+<span class="sourceLineNo">065</span>                // need a list of lists to store points<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                ArrayList&lt;ArrayList&lt;InterpolatedPoint&gt;&gt; pointList = new ArrayList&lt;ArrayList&lt;InterpolatedPoint&gt;&gt;();<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                <a name="line.67"></a>
+<span class="sourceLineNo">068</span>                while(itx.hasNext()){<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                        // Add a list to contain all the points which we find<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                        pointList.add(new ArrayList&lt;InterpolatedPoint&gt;());<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                        <a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        int xindex = itx.index;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        double xPos = gridX.getDouble(xindex);<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        <a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        IndexIterator ity = gridY.getIterator();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        while(ity.hasNext()){<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                                int yindex = ity.index;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                System.out.println("Testing : "+xindex+","+yindex);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                double yPos = gridX.getDouble(yindex);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                result.set(getInterpolated(data, x, y, xPos, yPos), yindex, xindex);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                                <a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        }<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                }<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                return result;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>        }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        <a name="line.86"></a>
+<span class="sourceLineNo">087</span>        <a name="line.87"></a>
+<span class="sourceLineNo">088</span>        <a name="line.88"></a>
+<span class="sourceLineNo">089</span>        <a name="line.89"></a>
+<span class="sourceLineNo">090</span>        public static Dataset selectDatasetRegion(Dataset dataset, int x, int y, int xSize, int ySize) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                int startX = x - xSize;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                int startY = y - ySize;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                int endX = x + xSize + 1;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                int endY = y + ySize +1;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                <a name="line.95"></a>
+<span class="sourceLineNo">096</span>                int shapeX = dataset.getShapeRef()[0];<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                int shapeY = dataset.getShapeRef()[1];<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                <a name="line.98"></a>
+<span class="sourceLineNo">099</span>                // Do edge checking<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                if (startX &lt; 0) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                        startX = 0;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                        endX = 3;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                } <a name="line.103"></a>
+<span class="sourceLineNo">104</span>                <a name="line.104"></a>
+<span class="sourceLineNo">105</span>                if (endX &gt; shapeX) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                        endX = shapeX;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                        startX = endX-3;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                }<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                <a name="line.109"></a>
+<span class="sourceLineNo">110</span>                if (startY &lt; 0) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                        startY = 0;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        endY = 3;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                }<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                <a name="line.114"></a>
+<span class="sourceLineNo">115</span>                if (endY &gt; shapeY) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                        endY = shapeY;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                        startY = endY-3;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                }<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                <a name="line.119"></a>
+<span class="sourceLineNo">120</span>                int[] start = new int[] { startX, startY };<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                int[] stop = new int[] { endX, endY };<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                <a name="line.122"></a>
+<span class="sourceLineNo">123</span>                <a name="line.123"></a>
+<span class="sourceLineNo">124</span>                return dataset.getSlice(start, stop, null);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>        }<a name="line.125"></a>
+<span class="sourceLineNo">126</span>        <a name="line.126"></a>
+<span class="sourceLineNo">127</span>        private static double getInterpolated(Dataset val, Dataset x, Dataset y, double xPos,<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        double yPos) throws Exception {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                <a name="line.129"></a>
+<span class="sourceLineNo">130</span>                // initial guess<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                Dataset xPosDS = x.getSlice(new int[] {0,0}, new int[] {x.getShapeRef()[0],1}, null).isubtract(xPos);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                int xPosMin = xPosDS.minPos()[0];<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                Dataset yPosDS = y.getSlice(new int[] {xPosMin,0}, new int[] {xPosMin+1,y.getShapeRef()[1]}, null).isubtract(yPos);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                int yPosMin = yPosDS.minPos()[0];<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                <a name="line.135"></a>
+<span class="sourceLineNo">136</span>                <a name="line.136"></a>
+<span class="sourceLineNo">137</span>                // now search around there 5x5<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                <a name="line.138"></a>
+<span class="sourceLineNo">139</span>                Dataset xClipped = selectDatasetRegion(x,xPosMin,yPosMin,2,2);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                Dataset yClipped = selectDatasetRegion(y,xPosMin,yPosMin,2,2);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                <a name="line.141"></a>
+<span class="sourceLineNo">142</span>                // first find the point in the arrays nearest to the point<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                Dataset xSquare = Maths.subtract(xClipped, xPos).ipower(2);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                Dataset ySquare = Maths.subtract(yClipped, yPos).ipower(2);<a name="line.144"></a>
+<span class="sourceLineNo">145</span><a name="line.145"></a>
+<span class="sourceLineNo">146</span>                Dataset total = Maths.add(xSquare, ySquare);<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>                int[] pos = total.minPos();<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>                // now pull out the region around that point, as a 3x3 grid     <a name="line.150"></a>
+<span class="sourceLineNo">151</span>                Dataset xReduced = selectDatasetRegion(x, pos[0], pos[1], 1, 1);<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                Dataset yReduced = selectDatasetRegion(y, pos[0], pos[1], 1, 1);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                Dataset valReduced = selectDatasetRegion(val, pos[0], pos[1], 1, 1);<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>                return getInterpolatedResultFromNinePoints(valReduced, xReduced, yReduced, xPos, yPos);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        }<a name="line.156"></a>
+<span class="sourceLineNo">157</span><a name="line.157"></a>
+<span class="sourceLineNo">158</span>        private static double getInterpolatedResultFromNinePoints(Dataset val, Dataset x, Dataset y,<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                        double xPos, double yPos) throws Exception {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                <a name="line.160"></a>
+<span class="sourceLineNo">161</span>                // First build the nine points<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                InterpolatedPoint p00 = makePoint(x, y, 0, 0);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                InterpolatedPoint p01 = makePoint(x, y, 0, 1);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                InterpolatedPoint p02 = makePoint(x, y, 0, 2);<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                InterpolatedPoint p10 = makePoint(x, y, 1, 0);<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                InterpolatedPoint p11 = makePoint(x, y, 1, 1);<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                InterpolatedPoint p12 = makePoint(x, y, 1, 2);<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                InterpolatedPoint p20 = makePoint(x, y, 2, 0);<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                InterpolatedPoint p21 = makePoint(x, y, 2, 1);<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                InterpolatedPoint p22 = makePoint(x, y, 2, 2);<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>                // now try every connection and find points that intersect with the interpolated value<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                ArrayList&lt;InterpolatedPoint&gt; points = new ArrayList&lt;InterpolatedPoint&gt;();<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>                InterpolatedPoint A = get1DInterpolatedPoint(p00, p10, 0, xPos);<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                InterpolatedPoint B = get1DInterpolatedPoint(p10, p20, 0, xPos);<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                InterpolatedPoint C = get1DInterpolatedPoint(p00, p01, 0, xPos);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                InterpolatedPoint D = get1DInterpolatedPoint(p10, p11, 0, xPos);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                InterpolatedPoint E = get1DInterpolatedPoint(p20, p21, 0, xPos);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                InterpolatedPoint F = get1DInterpolatedPoint(p01, p11, 0, xPos);<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                InterpolatedPoint G = get1DInterpolatedPoint(p11, p21, 0, xPos);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                InterpolatedPoint H = get1DInterpolatedPoint(p01, p02, 0, xPos);<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                InterpolatedPoint I = get1DInterpolatedPoint(p11, p12, 0, xPos);<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                InterpolatedPoint J = get1DInterpolatedPoint(p21, p22, 0, xPos);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                InterpolatedPoint K = get1DInterpolatedPoint(p02, p12, 0, xPos);<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                InterpolatedPoint L = get1DInterpolatedPoint(p12, p22, 0, xPos);<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>                // Now add any to the list which are not null<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                if (A != null)<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                        points.add(A);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                if (B != null)<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                        points.add(B);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                if (C != null)<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                        points.add(C);<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                if (D != null)<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                        points.add(D);<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                if (E != null)<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        points.add(E);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                if (F != null)<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        points.add(F);<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                if (G != null)<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        points.add(G);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                if (H != null)<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                        points.add(H);<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                if (I != null)<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                        points.add(I);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                if (J != null)<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        points.add(J);<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                if (K != null)<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                        points.add(K);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                if (L != null)<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                        points.add(L);<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>                // if no intercepts, then retun NaN;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                if (points.size() == 0) return Double.NaN;<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                <a name="line.216"></a>
+<span class="sourceLineNo">217</span>                InterpolatedPoint bestPoint = null;<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>                // sort the points by y<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                Collections.sort(points, new Comparator&lt;InterpolatedPoint&gt;() {<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        @Override<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                        public int compare(InterpolatedPoint o1, InterpolatedPoint o2) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                                return (int) Math.signum(o1.realPoint.getDouble(1) - o2.realPoint.getDouble(1));<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                        }<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                });<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                <a name="line.227"></a>
+<span class="sourceLineNo">228</span>                <a name="line.228"></a>
+<span class="sourceLineNo">229</span>                // now we have all the points which fit the x criteria, Find the points which fit the y<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                for (int a = 1; a &lt; points.size(); a++) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                        InterpolatedPoint testPoint = get1DInterpolatedPoint(points.get(a - 1), points.get(a), 1, yPos);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                        if (testPoint != null) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                bestPoint = testPoint;<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                                break;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        }<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>                if (bestPoint == null) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                        return Double.NaN;<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                }<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>                // now we have the best point, we can calculate the weights, and positions<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                int xs = (int) Math.floor(bestPoint.getCoordPoint().getDouble(0));<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                int ys = (int) Math.floor(bestPoint.getCoordPoint().getDouble(1));<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                <a name="line.245"></a>
+<span class="sourceLineNo">246</span>                double xoff = bestPoint.getCoordPoint().getDouble(0) - xs;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                double yoff = bestPoint.getCoordPoint().getDouble(1) - ys;<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>                // check corner cases<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                if (xs == 2) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                        xs = 1;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                        xoff = 1.0;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                }<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                <a name="line.254"></a>
+<span class="sourceLineNo">255</span>                if (ys == 2) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                        ys = 1;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                        yoff = 1.0;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                }<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                <a name="line.259"></a>
+<span class="sourceLineNo">260</span>                double w00 = (1 - xoff) * (1 - yoff);<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                double w10 = (xoff) * (1 - yoff);<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                double w01 = (1 - xoff) * (yoff);<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                double w11 = (xoff) * (yoff);<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                <a name="line.264"></a>
+<span class="sourceLineNo">265</span>                // now using the weights, we can get the final interpolated value<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                double result = val.getDouble(xs, ys) * w00;<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                result += val.getDouble(xs + 1, ys) * w10;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                result += val.getDouble(xs, ys + 1) * w01;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                result += val.getDouble(xs + 1, ys + 1) * w11;<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                <a name="line.270"></a>
+<span class="sourceLineNo">271</span>                return result;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>        }<a name="line.272"></a>
+<span class="sourceLineNo">273</span><a name="line.273"></a>
+<span class="sourceLineNo">274</span>        private static InterpolatedPoint makePoint(Dataset x, Dataset y, int i, int j) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                Dataset realPoint = DatasetFactory.createFromObject(new double[] { x.getDouble(i, j), y.getDouble(i, j) });<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                Dataset coordPoint = DatasetFactory.createFromObject(new double[] { i, j });<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                return new InterpolatedPoint(realPoint, coordPoint);<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        }<a name="line.278"></a>
+<span class="sourceLineNo">279</span><a name="line.279"></a>
+<span class="sourceLineNo">280</span>        /**<a name="line.280"></a>
+<span class="sourceLineNo">281</span>         * Gets an interpolated position when only dealing with 1 dimension for the interpolation.<a name="line.281"></a>
+<span class="sourceLineNo">282</span>         * <a name="line.282"></a>
+<span class="sourceLineNo">283</span>         * @param p1<a name="line.283"></a>
+<span class="sourceLineNo">284</span>         *            Point 1<a name="line.284"></a>
+<span class="sourceLineNo">285</span>         * @param p2<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         *            Point 2<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * @param interpolationDimension<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         *            The dimension in which the interpolation should be carried out<a name="line.288"></a>
+<span class="sourceLineNo">289</span>         * @param interpolatedValue<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         *            The value at which the interpolated point should be at in the chosen dimension<a name="line.290"></a>
+<span class="sourceLineNo">291</span>         * @return the new interpolated point.<a name="line.291"></a>
+<span class="sourceLineNo">292</span>         * @throws IllegalArgumentException<a name="line.292"></a>
+<span class="sourceLineNo">293</span>         */<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        private static InterpolatedPoint get1DInterpolatedPoint(InterpolatedPoint p1, InterpolatedPoint p2,<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                        int interpolationDimension, double interpolatedValue) throws IllegalArgumentException {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                <a name="line.296"></a>
+<span class="sourceLineNo">297</span>                checkPoints(p1, p2);<a name="line.297"></a>
+<span class="sourceLineNo">298</span><a name="line.298"></a>
+<span class="sourceLineNo">299</span>                if (interpolationDimension &gt;= p1.getRealPoint().getShapeRef()[0]) {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                        throw new IllegalArgumentException("Dimention is too large for these datasets");<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                }<a name="line.301"></a>
+<span class="sourceLineNo">302</span><a name="line.302"></a>
+<span class="sourceLineNo">303</span>                double p1_n = p1.getRealPoint().getDouble(interpolationDimension);<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                double p2_n = p2.getRealPoint().getDouble(interpolationDimension);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                double max = Math.max(p1_n, p2_n);<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                double min = Math.min(p1_n, p2_n);<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                <a name="line.307"></a>
+<span class="sourceLineNo">308</span>                if (interpolatedValue &lt; min || interpolatedValue &gt; max || min==max) {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                        return null;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                }<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                <a name="line.311"></a>
+<span class="sourceLineNo">312</span>                double proportion = (interpolatedValue - min) / (max - min);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                <a name="line.313"></a>
+<span class="sourceLineNo">314</span>                return getInterpolatedPoint(p1, p2, proportion);<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>        /**<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * Gets an interpolated point between 2 points given a certain proportion<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * <a name="line.319"></a>
+<span class="sourceLineNo">320</span>         * @param p1<a name="line.320"></a>
+<span class="sourceLineNo">321</span>         *            the initial point<a name="line.321"></a>
+<span class="sourceLineNo">322</span>         * @param p2<a name="line.322"></a>
+<span class="sourceLineNo">323</span>         *            the final point<a name="line.323"></a>
+<span class="sourceLineNo">324</span>         * @param proportion<a name="line.324"></a>
+<span class="sourceLineNo">325</span>         *            how far the new point is along the path between P1(0.0) and P2(1.0)<a name="line.325"></a>
+<span class="sourceLineNo">326</span>         * @return a new point which is the interpolated point<a name="line.326"></a>
+<span class="sourceLineNo">327</span>         */<a name="line.327"></a>
+<span class="sourceLineNo">328</span>        private static InterpolatedPoint getInterpolatedPoint(InterpolatedPoint p1, InterpolatedPoint p2, double proportion) {<a name="line.328"></a>
+<span class="sourceLineNo">329</span><a name="line.329"></a>
+<span class="sourceLineNo">330</span>                checkPoints(p1, p2);<a name="line.330"></a>
+<span class="sourceLineNo">331</span><a name="line.331"></a>
+<span class="sourceLineNo">332</span>                if (proportion &lt; 0 || proportion &gt; 1.0) {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        throw new IllegalArgumentException("Proportion must be between 0 and 1");<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                }<a name="line.334"></a>
+<span class="sourceLineNo">335</span><a name="line.335"></a>
+<span class="sourceLineNo">336</span>                Dataset p1RealContribution = Maths.multiply(p1.getRealPoint(), (1.0 - proportion));<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                Dataset p2RealContribution = Maths.multiply(p2.getRealPoint(), (proportion));<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>                Dataset realPoint = Maths.add(p1RealContribution, p2RealContribution);<a name="line.339"></a>
+<span class="sourceLineNo">340</span><a name="line.340"></a>
+<span class="sourceLineNo">341</span>                Dataset p1CoordContribution = Maths.multiply(p1.getCoordPoint(), (1.0 - proportion));<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                Dataset p2CoordContribution = Maths.multiply(p2.getCoordPoint(), (proportion));<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>                Dataset coordPoint = Maths.add(p1CoordContribution, p2CoordContribution);<a name="line.344"></a>
+<span class="sourceLineNo">345</span><a name="line.345"></a>
+<span class="sourceLineNo">346</span>                return new InterpolatedPoint(realPoint, coordPoint);<a name="line.346"></a>
+<span class="sourceLineNo">347</span>        }<a name="line.347"></a>
+<span class="sourceLineNo">348</span><a name="line.348"></a>
+<span class="sourceLineNo">349</span>        /**<a name="line.349"></a>
+<span class="sourceLineNo">350</span>         * Checks to see if 2 points have the same dimensionality<a name="line.350"></a>
+<span class="sourceLineNo">351</span>         * <a name="line.351"></a>
+<span class="sourceLineNo">352</span>         * @param p1<a name="line.352"></a>
+<span class="sourceLineNo">353</span>         *            Point 1<a name="line.353"></a>
+<span class="sourceLineNo">354</span>         * @param p2<a name="line.354"></a>
+<span class="sourceLineNo">355</span>         *            Point 2<a name="line.355"></a>
+<span class="sourceLineNo">356</span>         * @throws IllegalArgumentException<a name="line.356"></a>
+<span class="sourceLineNo">357</span>         */<a name="line.357"></a>
+<span class="sourceLineNo">358</span>        private static void checkPoints(InterpolatedPoint p1, InterpolatedPoint p2) throws IllegalArgumentException {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                if (!p1.getCoordPoint().isCompatibleWith(p2.getCoordPoint())) {<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                        throw new IllegalArgumentException("Datasets do not match");<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                }<a name="line.361"></a>
+<span class="sourceLineNo">362</span>        }<a name="line.362"></a>
+<span class="sourceLineNo">363</span>        <a name="line.363"></a>
+<span class="sourceLineNo">364</span>        public static Dataset remap1D(Dataset dataset, Dataset axis, Dataset outputAxis) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                Dataset data = DatasetFactory.zeros(DoubleDataset.class, outputAxis.getShapeRef());<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                for(int i = 0; i &lt; outputAxis.getShapeRef()[0]; i++) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                        double point = outputAxis.getDouble(i);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                        double position = getRealPositionAsIndex(axis, point);<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                        if (position &gt;= 0.0) {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                                data.set(Maths.interpolate(dataset, position), i);<a name="line.370"></a>
+<span class="sourceLineNo">371</span>                        } else {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                                data.set(Double.NaN,i);<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                        }<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                }<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                <a name="line.375"></a>
+<span class="sourceLineNo">376</span>                return data;<a name="line.376"></a>
+<span class="sourceLineNo">377</span>        }<a name="line.377"></a>
+<span class="sourceLineNo">378</span><a name="line.378"></a>
+<span class="sourceLineNo">379</span>        // TODO need to make this work with reverse number lists<a name="line.379"></a>
+<span class="sourceLineNo">380</span>        private static double getRealPositionAsIndex(Dataset dataset, double point) {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                for (int j = 0; j &lt; dataset.getShapeRef()[0]-1; j++) {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                        double end = dataset.getDouble(j+1);<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                        double start = dataset.getDouble(j);<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                        //TODO could make this check once outside the loop with a minor assumption.<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                        if ( start &lt; end) {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                                if ((end &gt; point) &amp;&amp; (start &lt;= point)) {<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                                        // we have a bounding point<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                                        double proportion = ((point-start)/(end-start));<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                                        return j + proportion;<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                                }<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                        } else {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                                if ((end &lt; point) &amp;&amp; (start &gt;= point)) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                                        // we have a bounding point<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                                        double proportion = ((point-start)/(end-start));<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                                        return j + proportion;<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                                }<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                        }<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                }<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                return -1.0;<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        }<a name="line.400"></a>
+<span class="sourceLineNo">401</span>        <a name="line.401"></a>
+<span class="sourceLineNo">402</span>        public static Dataset remapOneAxis(Dataset dataset, int axisIndex, Dataset corrections,<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                        Dataset originalAxisForCorrection, Dataset outputAxis) {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                int[] stop = dataset.getShapeRef();<a name="line.404"></a>
+<span class="sourceLineNo">405</span>                int[] start = new int[stop.length];<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                int[] step = new int[stop.length];<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                int[] resultSize = new int[stop.length];<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                for (int i = 0 ; i &lt; start.length; i++) {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                        start[i] = 0;<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                        step[i] = 1;<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                        resultSize[i] = stop[i];<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                }<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                <a name="line.413"></a>
+<span class="sourceLineNo">414</span>                resultSize[axisIndex] = outputAxis.getShapeRef()[0];<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                DoubleDataset result = DatasetFactory.zeros(DoubleDataset.class, resultSize);<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                <a name="line.416"></a>
+<span class="sourceLineNo">417</span>                step[axisIndex] = dataset.getShapeRef()[axisIndex];<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                IndexIterator iter = dataset.getSliceIterator(start, stop, step);<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                <a name="line.419"></a>
+<span class="sourceLineNo">420</span>                int[] pos = iter.getPos();<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                int[] posEnd = new int[pos.length];<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                while (iter.hasNext()){<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                        for (int i = 0 ; i &lt; posEnd.length; i++) {<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                                posEnd[i] = pos[i]+1;<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                        }<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                        posEnd[axisIndex] = stop[axisIndex];<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                        // get the dataset<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                        Dataset slice = dataset.getSlice(pos, posEnd, null).squeeze();<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                        int[] correctionPos = new int[pos.length-1];<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                        int index = 0;<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                        for(int j = 0; j &lt; pos.length; j++) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                                if (j != axisIndex) {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                                        correctionPos[index] = pos[j];<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                                        index++;<a name="line.434"></a>
+<span class="sourceLineNo">435</span>                                }<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                        }<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                        Dataset axis = Maths.subtract(originalAxisForCorrection,corrections.getDouble(correctionPos));<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                        Dataset remapped = remap1D(slice,axis,outputAxis);<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span>                        int[] ref = pos.clone();<a name="line.440"></a>
+<span class="sourceLineNo">441</span><a name="line.441"></a>
+<span class="sourceLineNo">442</span>                        for (int k = 0; k &lt; result.getShapeRef()[axisIndex]; k++) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                                ref[axisIndex] = k;<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                                result.set(remapped.getDouble(k), ref);<a name="line.444"></a>
+<span class="sourceLineNo">445</span>                        }<a name="line.445"></a>
+<span class="sourceLineNo">446</span>                }<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                <a name="line.447"></a>
+<span class="sourceLineNo">448</span>                return result;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>        }<a name="line.449"></a>
+<span class="sourceLineNo">450</span>        <a name="line.450"></a>
+<span class="sourceLineNo">451</span>        <a name="line.451"></a>
+<span class="sourceLineNo">452</span>        public static Dataset remapAxis(Dataset dataset, int axisIndex, Dataset originalAxisForCorrection, Dataset outputAxis) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                if (!dataset.isCompatibleWith(originalAxisForCorrection)) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                        throw new IllegalArgumentException("Datasets must be of the same shape");<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                }<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                <a name="line.456"></a>
+<span class="sourceLineNo">457</span>                int[] stop = dataset.getShapeRef();<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                int[] start = new int[stop.length];<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                int[] step = new int[stop.length];<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                int[] resultSize = new int[stop.length];<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                for (int i = 0 ; i &lt; start.length; i++) {<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                        start[i] = 0;<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                        step[i] = 1;<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                        resultSize[i] = stop[i];<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                }<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                <a name="line.466"></a>
+<span class="sourceLineNo">467</span>                resultSize[axisIndex] = outputAxis.getShapeRef()[0];<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                DoubleDataset result = DatasetFactory.zeros(DoubleDataset.class, resultSize);<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                <a name="line.469"></a>
+<span class="sourceLineNo">470</span>                step[axisIndex] = dataset.getShapeRef()[axisIndex];<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                IndexIterator iter = dataset.getSliceIterator(start, stop, step);<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                <a name="line.472"></a>
+<span class="sourceLineNo">473</span>                int[] pos = iter.getPos();<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                int[] posEnd = new int[pos.length];<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                while (iter.hasNext()){<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                        for (int i = 0 ; i &lt; posEnd.length; i++) {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                                posEnd[i] = pos[i]+1;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                        }<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                        posEnd[axisIndex] = stop[axisIndex];<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                        <a name="line.480"></a>
+<span class="sourceLineNo">481</span>                        // get the dataset<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                        Dataset slice = dataset.getSlice(pos, posEnd, null).squeeze();<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                        Dataset axis = originalAxisForCorrection.getSlice(pos, posEnd, null).squeeze();<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                        <a name="line.484"></a>
+<span class="sourceLineNo">485</span>                        Dataset remapped = remap1D(slice,axis,outputAxis);<a name="line.485"></a>
+<span class="sourceLineNo">486</span><a name="line.486"></a>
+<span class="sourceLineNo">487</span>                        int[] ref = pos.clone();<a name="line.487"></a>
+<span class="sourceLineNo">488</span><a name="line.488"></a>
+<span class="sourceLineNo">489</span>                        for (int k = 0; k &lt; result.shape[axisIndex]; k++) {<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                                ref[axisIndex] = k;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                                result.set(remapped.getDouble(k), ref);<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                        }<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                }<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                <a name="line.494"></a>
+<span class="sourceLineNo">495</span>                return result;<a name="line.495"></a>
+<span class="sourceLineNo">496</span>        }<a name="line.496"></a>
+<span class="sourceLineNo">497</span><a name="line.497"></a>
+<span class="sourceLineNo">498</span>        public static Dataset regrid(Dataset data, Dataset x, Dataset y, Dataset gridX, Dataset gridY) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                <a name="line.499"></a>
+<span class="sourceLineNo">500</span>                // apply X then Y regridding<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                Dataset result = remapAxis(data,1,x,gridX);<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                result = remapAxis(result,0,y,gridY);<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                <a name="line.503"></a>
+<span class="sourceLineNo">504</span>                return result;<a name="line.504"></a>
+<span class="sourceLineNo">505</span>        }<a name="line.505"></a>
+<span class="sourceLineNo">506</span>}<a name="line.506"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/LazyDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/LazyDataset.html
new file mode 100644
index 0000000..9090535
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/LazyDataset.html
@@ -0,0 +1,855 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.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.LinkedList;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import java.util.List;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import java.util.Map;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.eclipse.january.DatasetException;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.eclipse.january.IMonitor;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.eclipse.january.io.ILazyLoader;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.eclipse.january.metadata.MetadataFactory;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.eclipse.january.metadata.MetadataType;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.eclipse.january.metadata.OriginMetadata;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.eclipse.january.metadata.Reshapeable;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.eclipse.january.metadata.Sliceable;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.eclipse.january.metadata.Transposable;<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>public class LazyDataset extends LazyDatasetBase implements Serializable, Cloneable {<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        private static final long serialVersionUID = 2467865859867440242L;<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>        protected Map&lt;Class&lt;? extends MetadataType&gt;, List&lt;MetadataType&gt;&gt; oMetadata = null;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        protected int[] oShape; // original shape<a name="line.40"></a>
+<span class="sourceLineNo">041</span>        protected long  size;   // number of items<a name="line.41"></a>
+<span class="sourceLineNo">042</span>        private Class&lt;? extends Dataset&gt; clazz = null;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>        protected int   isize;  // number of elements per item<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span>        protected ILazyLoader loader;<a name="line.45"></a>
+<span class="sourceLineNo">046</span><a name="line.46"></a>
+<span class="sourceLineNo">047</span>        // relative to loader<a name="line.47"></a>
+<span class="sourceLineNo">048</span>        protected int[] begSlice = null; // slice begin<a name="line.48"></a>
+<span class="sourceLineNo">049</span>        protected int[] delSlice = null; // slice delta<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        /**<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         * @since 2.2<a name="line.51"></a>
+<span class="sourceLineNo">052</span>         */<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        protected int[] sShape   = null; // sliced shape<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>         * @since 2.2<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         */<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        protected int[] padding = null; // differences in shape from original (or sliced) shape<a name="line.58"></a>
+<span class="sourceLineNo">059</span>        protected int[] map; // transposition map (same length as current shape)<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 loader<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         * @param name<a name="line.64"></a>
+<span class="sourceLineNo">065</span>         * @param elements<a name="line.65"></a>
+<span class="sourceLineNo">066</span>         * @param clazz dataset interface<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * @param shape<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         * @since 2.3<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         */<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        public LazyDataset(ILazyLoader loader, String name, int elements, Class&lt;? extends Dataset&gt; clazz, int... shape) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                this.loader = loader;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                this.name = name;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                this.isize = elements;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                this.clazz = clazz;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                this.shape = shape.clone();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                this.oShape = this.shape;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                try {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                        size = ShapeUtils.calcLongSize(shape);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                } catch (IllegalArgumentException e) {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        size = Long.MAX_VALUE; // this indicates that the entire dataset cannot be read in! <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 lazy dataset<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @param loader<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         * @param name<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         * @param clazz dataset interface<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         * @param shape<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         * @since 2.3<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>        public LazyDataset(ILazyLoader loader, String name, Class&lt;? extends Dataset&gt; clazz, int... shape) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                this(loader, name, 1, clazz, 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>         * Create a lazy dataset<a name="line.97"></a>
+<span class="sourceLineNo">098</span>         * @param name<a name="line.98"></a>
+<span class="sourceLineNo">099</span>         * @param dtype dataset type<a name="line.99"></a>
+<span class="sourceLineNo">100</span>         * @param elements<a name="line.100"></a>
+<span class="sourceLineNo">101</span>         * @param shape<a name="line.101"></a>
+<span class="sourceLineNo">102</span>         * @param loader<a name="line.102"></a>
+<span class="sourceLineNo">103</span>         * @deprecated Use {@link #LazyDataset(ILazyLoader, String, int, Class, int[])}<a name="line.103"></a>
+<span class="sourceLineNo">104</span>         */<a name="line.104"></a>
+<span class="sourceLineNo">105</span>        @Deprecated<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        public LazyDataset(String name, int dtype, int elements, int[] shape, ILazyLoader loader) {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                this(loader, name, elements, DTypeUtils.getInterface(dtype), shape);<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>         * Create a lazy dataset<a name="line.111"></a>
+<span class="sourceLineNo">112</span>         * @param name<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * @param dtype dataset type<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         * @param shape<a name="line.114"></a>
+<span class="sourceLineNo">115</span>         * @param loader<a name="line.115"></a>
+<span class="sourceLineNo">116</span>         * @deprecated Use {@link #LazyDataset(ILazyLoader, String, int, Class, int[])}<a name="line.116"></a>
+<span class="sourceLineNo">117</span>         */<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        @Deprecated<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        public LazyDataset(String name, int dtype, int[] shape, ILazyLoader loader) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                this(name, dtype, 1, shape, loader);<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>        LazyDataset(LazyDataset other) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                name  = other.name;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                shape = other.shape.clone();<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                metadata  = other.copyMetadata();<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                oMetadata = other.oMetadata;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                oShape = other.oShape;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                size   = other.size;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                clazz  = other.clazz;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                isize  = other.isize;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                loader = other.loader;<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span>                begSlice = other.begSlice;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                delSlice = other.delSlice;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                sShape   = other.sShape;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                padding  = other.padding;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                map      = other.map;<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>         * Create a lazy dataset based on in-memory data (handy for testing)<a name="line.142"></a>
+<span class="sourceLineNo">143</span>         * @param dataset<a name="line.143"></a>
+<span class="sourceLineNo">144</span>         */<a name="line.144"></a>
+<span class="sourceLineNo">145</span>        public static LazyDataset createLazyDataset(final Dataset dataset) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                return new LazyDataset(dataset.getName(), dataset.getDType(), dataset.getElementsPerItem(), dataset.getShapeRef(),<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                new ILazyLoader() {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                        private static final long serialVersionUID = -6725268922780517523L;<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>                        final Dataset d = dataset;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                        @Override<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        public boolean isFileReadable() {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                                return true;<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 Dataset getDataset(IMonitor mon, SliceND slice) throws IOException {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                                return d.getSlice(mon, slice);<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><a name="line.162"></a>
+<span class="sourceLineNo">163</span>        /**<a name="line.163"></a>
+<span class="sourceLineNo">164</span>         * Can return -1 for unknown<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 int getDType() {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                return DTypeUtils.getDType(clazz);<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>        /**<a name="line.171"></a>
+<span class="sourceLineNo">172</span>         * @return dataset interface that supports element class and number of elements<a name="line.172"></a>
+<span class="sourceLineNo">173</span>         * @since 2.3<a name="line.173"></a>
+<span class="sourceLineNo">174</span>         */<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        public Class&lt;? extends Dataset&gt; getInterface() {<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                return clazz;<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>        /**<a name="line.179"></a>
+<span class="sourceLineNo">180</span>         * Can return -1 for unknown<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 int getElementsPerItem() {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                return isize;<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 getSize() {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                return (int) size;<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 String toString() {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                StringBuilder out = new StringBuilder();<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>                if (name != null &amp;&amp; name.length() &gt; 0) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                        out.append("Lazy dataset '");<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        out.append(name);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        out.append("' has shape [");<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                } else {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                        out.append("Lazy dataset shape is [");<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                }<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                int rank = shape == null ? 0 : shape.length;<a name="line.203"></a>
+<span class="sourceLineNo">204</span><a name="line.204"></a>
+<span class="sourceLineNo">205</span>                if (rank &gt; 0 &amp;&amp; shape[0] &gt;= 0) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                        out.append(shape[0]);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                }<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                for (int i = 1; i &lt; rank; i++) {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        out.append(", " + shape[i]);<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                }<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                out.append(']');<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>                return out.toString();<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 int hashCode() {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                final int prime = 31;<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                int result = super.hashCode();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                result = prime * result + Arrays.hashCode(oShape);<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                result = prime * result + (int) (size ^ (size &gt;&gt;&gt; 32));<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                result = prime * result + clazz.hashCode();<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                result = prime * result + isize;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                result = prime * result + ((loader == null) ? 0 : loader.hashCode());<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                result = prime * result + Arrays.hashCode(begSlice);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                result = prime * result + Arrays.hashCode(delSlice);<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                result = prime * result + Arrays.hashCode(sShape);<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                result = prime * result + Arrays.hashCode(padding);<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                result = prime * result + Arrays.hashCode(map);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                return result;<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 boolean equals(Object obj) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                if (this == obj) {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                        return true;<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                }<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                if (!super.equals(obj)) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                        return false;<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>                LazyDataset other = (LazyDataset) obj;<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                if (!Arrays.equals(oShape, other.oShape)) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                        return false;<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                }<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                if (size != other.size) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        return false;<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                }<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                if (!clazz.equals(other.clazz)) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                        return false;<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                }<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                if (isize != other.isize) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        return false;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                }<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>                if (loader != other.loader) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                        return false;<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>                if (!Arrays.equals(begSlice, other.begSlice)) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                        return false;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                }<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                if (!Arrays.equals(delSlice, other.delSlice)) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                        return false;<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                }<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                if (!Arrays.equals(sShape, other.sShape)) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                        return false;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                }<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                if (!Arrays.equals(padding, other.padding)) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                        return false;<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                }<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                if (!Arrays.equals(map, other.map)) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        return false;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                }<a name="line.274"></a>
+<span class="sourceLineNo">275</span><a name="line.275"></a>
+<span class="sourceLineNo">276</span>                return true;<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 LazyDataset clone() {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                return new LazyDataset(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>        @Override<a name="line.284"></a>
+<span class="sourceLineNo">285</span>        public void setShape(int... shape) {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                setShapeInternal(shape.clone());<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 LazyDataset squeezeEnds() {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                setShapeInternal(ShapeUtils.squeezeShape(shape, true));<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                return this;<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 Dataset getSlice(int[] start, int[] stop, int[] step) throws DatasetException {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                return getSlice(null, 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 Dataset getSlice(Slice... slice) throws DatasetException {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                if (slice == null || slice.length == 0) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                        return getSlice(null, new SliceND(shape));<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                }<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                return getSlice(null, new SliceND(shape, slice));<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>        @Override<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        public Dataset getSlice(SliceND slice) throws DatasetException {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                return getSlice(null, slice);<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>        @Override<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        public Dataset getSlice(IMonitor monitor, Slice... slice) throws DatasetException {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                if (slice == null || slice.length == 0) {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>                        return getSlice(monitor, new SliceND(shape));<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                }<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                return getSlice(monitor, new SliceND(shape, slice));<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 LazyDataset getSliceView(Slice... slice) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                if (slice == null || slice.length == 0) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                        return getSliceView(new SliceND(shape));<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                return getSliceView(new SliceND(shape, slice));<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 nShape<a name="line.330"></a>
+<span class="sourceLineNo">331</span>         */<a name="line.331"></a>
+<span class="sourceLineNo">332</span>        private void setShapeInternal(int... nShape) {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                // work out transposed (sliced) shape (instead of removing padding from current shape)<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                if (size != 0) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                        int[] pShape = calcTransposed(map, sShape == null ? oShape : sShape);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                        padding = ShapeUtils.calcShapePadding(pShape, nShape);<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>                if (metadata != null) {<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                        storeMetadata(metadata, Reshapeable.class);<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                        metadata = copyMetadata();<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                        reshapeMetadata(shape, nShape);<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                }<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                shape = nShape;<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 LazyDataset getSliceView(int[] start, int[] stop, int[] step) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                return getSliceView(new SliceND(shape, start, stop, step));<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 LazyDataset getSliceView(SliceND slice) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                LazyDataset view = clone();<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                if (slice.isAll()) {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                        return view;<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>                SliceND nslice = calcTrueSlice(slice);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                if (nslice != null) {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                        view.begSlice = nslice.getStart();<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                        view.delSlice = nslice.getStep();<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                        view.sShape = nslice.getShape();<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                }<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                view.shape = slice.getShape();<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                view.size = ShapeUtils.calcLongSize(view.shape);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                view.storeMetadata(metadata, Sliceable.class);<a name="line.367"></a>
+<span class="sourceLineNo">368</span><a name="line.368"></a>
+<span class="sourceLineNo">369</span>                view.sliceMetadata(true, slice);<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                return view;<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 Dataset getSlice(IMonitor monitor, int[] start, int[] stop, int[] step) throws DatasetException {<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                return getSlice(monitor, new SliceND(shape, start, stop, step));<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 Dataset getSlice(IMonitor monitor, SliceND slice) throws DatasetException {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                if (loader != null &amp;&amp; !loader.isFileReadable()) {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                        return null;<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>                SliceND nslice = calcTrueSlice(slice);<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span>                Dataset a;<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                if (nslice == null) {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                        a = DatasetFactory.zeros(clazz, slice.getShape());<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                } else {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                        try {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                                a = DatasetUtils.convertToDataset(loader.getDataset(monitor, nslice));<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                        } catch (IOException e) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                                logger.error("Problem getting {}: {}", String.format("slice %s %s %s from %s", Arrays.toString(slice.getStart()), Arrays.toString(slice.getStop()),<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                                                                Arrays.toString(slice.getStep()), loader), e);<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                                throw new DatasetException(e);<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.setName(name + AbstractDataset.BLOCK_OPEN + (nslice == null ? slice : nslice) + AbstractDataset.BLOCK_CLOSE);<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                if (metadata != null &amp;&amp; a instanceof LazyDatasetBase) {<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                        LazyDatasetBase ba = (LazyDatasetBase) a;<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                        ba.metadata = copyMetadata();<a name="line.401"></a>
+<span class="sourceLineNo">402</span>                        if (oMetadata != null) {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                                ba.restoreMetadata(oMetadata);<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                        }<a name="line.404"></a>
+<span class="sourceLineNo">405</span>                        // metadata axis may be larger than data<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                        if (nslice != null &amp;&amp; (!nslice.isAll() || nslice.getMaxShape() != nslice.getShape())) {<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                                ba.sliceMetadata(true, nslice);<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>                if (nslice != null) {<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                        if (map != null) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                                a = a.getTransposedView(map);<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                        }<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                        if (padding != null) {<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                                a.setShape(slice.getShape());<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                        }<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                }<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                a.addMetadata(MetadataFactory.createMetadata(OriginMetadata.class, this, nslice == null ? slice.convertToSlice() : nslice.convertToSlice(), oShape, null, name));<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>                return a;<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 LazyDataset getTransposedView(final int... axes) {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                LazyDataset view = clone();<a name="line.426"></a>
+<span class="sourceLineNo">427</span><a name="line.427"></a>
+<span class="sourceLineNo">428</span>                int[] naxes = checkPermutatedAxes(shape, axes);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                if (naxes == null) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                        return view;<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>                view.shape = calcTransposed(naxes, shape);<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                if (view.size != 0 &amp;&amp; padding != null) { // work out transpose by reverting effect of padding<a name="line.434"></a>
+<span class="sourceLineNo">435</span>                        int or = oShape.length;<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                        int nr = shape.length;<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                        int j = 0; // naxes index<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                        int[] mShape = calcTransposed(map, sShape == null ? oShape : sShape); // pre-padded shape<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                        int m = 0; // shape index<a name="line.439"></a>
+<span class="sourceLineNo">440</span>                        int e = -1; // index of unit dimension<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                        final List&lt;Integer&gt; uaxes = new LinkedList&lt;&gt;();<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                        for (int a : naxes) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                                uaxes.add(a);<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                        }<a name="line.444"></a>
+<span class="sourceLineNo">445</span>                        List&lt;Integer&gt; oList = new ArrayList&lt;&gt;(); // dimensions left out by padding (in order)<a name="line.445"></a>
+<span class="sourceLineNo">446</span>                        int np = padding.length;<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                        for (int i = 0; i &lt; np; i++) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                                int p = padding[i];<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                                if (p &gt; 0) { // remove added dimensions<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                                        for (int k = 0; k &lt; p; k++, j++) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                                                uaxes.remove((Integer) j);<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                                        }<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                                } else if (p == 0) { // leave alone<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                                        if (mShape[m] == 1) { // bump up last unit dimension index<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                                                e = m;<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                                        }<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                                        j++;<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                                        m++;<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                                } else { // add omitted dimensions to list<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                                        p = -p;<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                                        for (int k = 0; k &lt; p; k++) {<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                                                e = find(mShape, 1, e + 1);<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                                                oList.add(e);<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                                        }<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                                }<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                        }<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                        <a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        int[] omitted = new int[oList.size()];<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                        j = 0;<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                        for (Integer o : oList) {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                                omitted[j++] = o;<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                        }<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                        int[] used = new int[or - omitted.length]; // all dimensions not omitted in pre-padded shape<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                        j = 0;<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                        for (int i = 0; i &lt; or; i++) {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                                if (Arrays.binarySearch(omitted, i) &lt; 0) {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                                        used[j++] = i;<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>                        int[] vaxes = new int[uaxes.size()];<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                        j = 0;<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                        for (int i = 0; i &lt; nr; i++) { // remap dimension numbering<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                                int l = uaxes.indexOf(i);<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                                if (l &gt;= 0) {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                                        vaxes[l] = used[j++];<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>                        int[] taxes = new int[or];<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                        j = 0;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                        for (int i = 0; i &lt; or; i++) { // reassemble map<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                                if (Arrays.binarySearch(omitted, i) &gt;= 0) {<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                                        taxes[i] = i;<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                                } else {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                                        taxes[i] = vaxes[j++];<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>                        naxes = taxes;<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>                view.map = map == null ? naxes : calcTransposed(naxes, map);<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                if (view.size != 0) {<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                        // work out transposed (sliced) shape<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                        int[] tShape = calcTransposed(view.map, sShape == null ? oShape : sShape);<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                        try {<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                                view.padding = ShapeUtils.calcShapePadding(tShape, view.shape);<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                        } catch (IllegalArgumentException e) {<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                                System.err.println(e.getMessage() + ": " + Arrays.toString(tShape) + " cf " + Arrays.toString(view.shape));<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                        }<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                }<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                view.storeMetadata(metadata, Transposable.class);<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                view.transposeMetadata(axes);<a name="line.513"></a>
+<span class="sourceLineNo">514</span>                return view;<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>        private static int find(int[] map, int m, int off) {<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                for (int i = off, imax = map.length; i &lt; imax; i++) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                        if (map[i] == m) {<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                                return i;<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>                return -1;<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>        private static int[] calcTransposed(int[] map, int[] values) {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                if (values == null) {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                        return null;<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                }<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                int r = values.length;<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                if (map == null || r &lt; 2) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                        return values;<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                }<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                int[] ovalues = new int[r];<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                for (int i = 0; i &lt; r; i++) {<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                        ovalues[i] = values[map[i]];<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                }<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                return ovalues;<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>         * Calculate absolute slice<a name="line.542"></a>
+<span class="sourceLineNo">543</span>         * @param slice<a name="line.543"></a>
+<span class="sourceLineNo">544</span>         * @return true slice or null if zero-sized<a name="line.544"></a>
+<span class="sourceLineNo">545</span>         */<a name="line.545"></a>
+<span class="sourceLineNo">546</span>        protected final SliceND calcTrueSlice(SliceND slice) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                /*<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                 * Lazy dataset operations: getTransposedView (T), getSliceView (G), setShape/squeezeEnds (S+/S-):<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                 * <a name="line.549"></a>
+<span class="sourceLineNo">550</span>                 *     . T sets shape, base, and map in new view<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                 *     . G sets shape, size, begSlice and delSlice in new view<a name="line.551"></a>
+<span class="sourceLineNo">552</span>                 *     . S sets shape, shapePadding in current view<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                 * <a name="line.553"></a>
+<span class="sourceLineNo">554</span>                 * Then getSlice needs to interpret all info to find true slice, load data, get transposition (view)<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                 * and set shape. Therefore:<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                 *     . S needs to update shapePadding only<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                 *     . T needs to update shapePadding too<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                 *     . G needs to work out true slice to update<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                 * <a name="line.559"></a>
+<span class="sourceLineNo">560</span>                 * slice -&gt; true slice<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                 *   adjusts for shape (S^-1) then remap dimensions (T^-1)<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>                if (slice == null) {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                        slice = new SliceND(shape);<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>                if (ShapeUtils.calcLongSize(slice.getShape()) == 0) {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                        return null;<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>                int[] nshape;<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                int[] nstart;<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                int[] nstep;<a name="line.574"></a>
+<span class="sourceLineNo">575</span><a name="line.575"></a>
+<span class="sourceLineNo">576</span>                int r = oShape.length;<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                if (padding == null) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                        nshape = slice.getShape();<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                        nstart = slice.getStart();<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                        nstep = slice.getStep();<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                } else {<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                        final int[] lshape = slice.getShape();<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                        final int[] lstart = slice.getStart();<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                        final int[] lstep  = slice.getStep();<a name="line.584"></a>
+<span class="sourceLineNo">585</span><a name="line.585"></a>
+<span class="sourceLineNo">586</span>                        nstart = new int[r];<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                        nstep = new int[r];<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                        nshape = new int[r];<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                        int i = 0;<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                        int j = 0;<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                        for (int p : padding) { // remove padding<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                                if (p == 0) {<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                                        nshape[i] = lshape[j];<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                                        nstart[i] = lstart[j];<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                                        nstep[i]  = lstep[j];<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                                        i++;<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                                        j++;<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                                } else if (p &lt; 0) {<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                                        int imax = i - p;<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                                        while (i &lt; imax) {<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                                                nshape[i] = 1;<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                                                nstep[i]  = 1;<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                                                i++;<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                                        }<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                                } else {<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                                        j += p;<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><a name="line.610"></a>
+<span class="sourceLineNo">611</span>                if (map != null &amp;&amp; r &gt; 1) { // transpose dimensions<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                        int[] pshape = new int[r];<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                        int[] pstart = new int[r];<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                        int[] pstep = new int[r];<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        for (int i = 0; i &lt; r; i++) {<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                                int m = map[i];<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                                pshape[m] = nshape[i];<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                                pstart[m] = nstart[i];<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                                pstep[m]  = nstep[i];<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                        }<a name="line.620"></a>
+<span class="sourceLineNo">621</span><a name="line.621"></a>
+<span class="sourceLineNo">622</span>                        nshape = pshape;<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                        nstart = pstart;<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                        nstep  = pstep;<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                }<a name="line.625"></a>
+<span class="sourceLineNo">626</span><a name="line.626"></a>
+<span class="sourceLineNo">627</span>                int[] nstop = new int[r];<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                if (begSlice != null) { // find net slice<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                        for (int i = 0; i &lt; r; i++) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                                int b = begSlice[i];<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                                int d = delSlice[i];<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                                nstart[i] = b + nstart[i] * d;<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                                int nd = nstep[i] * d;<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                                nstep[i] = nd;<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                                nstop[i]  = nstart[i] + (nshape[i] - 1) * nd + (nd &gt;= 0 ? 1 : -1);<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                        }<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                } else {<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                        for (int i = 0; i &lt; r; i++) {<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                                int d = nstep[i];<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                                nstop[i] = nstart[i] + (nshape[i] - 1) * d + (d &gt;= 0 ? 1 : -1);<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                        }<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                }<a name="line.642"></a>
+<span class="sourceLineNo">643</span><a name="line.643"></a>
+<span class="sourceLineNo">644</span>                return createSlice(nstart, nstop, nstep);<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>        protected SliceND createSlice(int[] nstart, int[] nstop, int[] nstep) {<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                return SliceND.createSlice(oShape, null, nstart, nstop, nstep);<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>        /**<a name="line.651"></a>
+<span class="sourceLineNo">652</span>         * Transform data so that it can be used in setSlice of saver<a name="line.652"></a>
+<span class="sourceLineNo">653</span>         * @param data<a name="line.653"></a>
+<span class="sourceLineNo">654</span>         * @param tslice true slice <a name="line.654"></a>
+<span class="sourceLineNo">655</span>         * @return data with dimensions adjusted and remapped <a name="line.655"></a>
+<span class="sourceLineNo">656</span>         */<a name="line.656"></a>
+<span class="sourceLineNo">657</span>        final IDataset transformInput(IDataset data, SliceND tslice) {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                if (padding != null) { // remove padding<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                        data = data.getSliceView();<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        int[] nshape = tslice.getShape();<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                        data.setShape(nshape);<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>                return map == null ? data : data.getTransposedView(map);<a name="line.664"></a>
+<span class="sourceLineNo">665</span>        }<a name="line.665"></a>
+<span class="sourceLineNo">666</span><a name="line.666"></a>
+<span class="sourceLineNo">667</span>        /**<a name="line.667"></a>
+<span class="sourceLineNo">668</span>         * Store metadata items that has given annotation<a name="line.668"></a>
+<span class="sourceLineNo">669</span>         * @param origMetadata<a name="line.669"></a>
+<span class="sourceLineNo">670</span>         * @param aclazz<a name="line.670"></a>
+<span class="sourceLineNo">671</span>         */<a name="line.671"></a>
+<span class="sourceLineNo">672</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.672"></a>
+<span class="sourceLineNo">673</span>                List&lt;Class&lt;? extends MetadataType&gt;&gt; mclazzes = findAnnotatedMetadata(aclazz);<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                if (mclazzes.size() == 0) {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        return;<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>                if (oMetadata == null) {<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                        oMetadata = new HashMap&lt;Class&lt;? extends MetadataType&gt;, List&lt;MetadataType&gt;&gt;();<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                }<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                for (Class&lt;? extends MetadataType&gt; mc : mclazzes) {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                        if (oMetadata.containsKey(mc)) {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                                continue; // do not overwrite original<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>                        List&lt;MetadataType&gt; l = origMetadata.get(mc);<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                        List&lt;MetadataType&gt; nl = new ArrayList&lt;MetadataType&gt;(l.size());<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                        for (MetadataType m : l) {<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                                nl.add(m.clone());<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                        }<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                        oMetadata.put(mc, nl);<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><a name="line.694"></a>
+<span class="sourceLineNo">695</span>        @SuppressWarnings("unchecked")<a name="line.695"></a>
+<span class="sourceLineNo">696</span>        private List&lt;Class&lt;? extends MetadataType&gt;&gt; findAnnotatedMetadata(Class&lt;? extends Annotation&gt; aclazz) {<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                List&lt;Class&lt;? extends MetadataType&gt;&gt; mclazzes = new ArrayList&lt;Class&lt;? extends MetadataType&gt;&gt;();<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                if (metadata == null) {<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                        return mclazzes;<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>                for (Class&lt;? extends MetadataType&gt; c : metadata.keySet()) {<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                        boolean hasAnn = false;<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                        for (MetadataType m : metadata.get(c)) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                                if (m == null) {<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                                        continue;<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>                                Class&lt;? extends MetadataType&gt; mc = m.getClass();<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                                do { // iterate over super-classes<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                                        for (Field f : mc.getDeclaredFields()) {<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                                                if (f.isAnnotationPresent(aclazz)) {<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                                                        hasAnn = true;<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                                                        break;<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>                                        Class&lt;?&gt; sclazz = mc.getSuperclass();<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                                        if (!MetadataType.class.isAssignableFrom(sclazz)) {<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                                                break;<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                                        }<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                                        mc = (Class&lt;? extends MetadataType&gt;) sclazz;<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                                } while (!hasAnn);<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                                if (hasAnn) {<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                                        break;<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>                        if (hasAnn) {<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                                mclazzes.add(c);<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>                return mclazzes;<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>         * Gets the maximum size of a slice of a dataset in a given dimension<a name="line.735"></a>
+<span class="sourceLineNo">736</span>         * which should normally fit in memory. Note that it might be possible<a name="line.736"></a>
+<span class="sourceLineNo">737</span>         * to get more in memory, this is a conservative estimate and seems to<a name="line.737"></a>
+<span class="sourceLineNo">738</span>         * almost always work at the size returned; providing Xmx is less than<a name="line.738"></a>
+<span class="sourceLineNo">739</span>         * the physical memory.<a name="line.739"></a>
+<span class="sourceLineNo">740</span>         * <a name="line.740"></a>
+<span class="sourceLineNo">741</span>         * To get more in memory increase -Xmx setting or use an expression<a name="line.741"></a>
+<span class="sourceLineNo">742</span>         * which calls a rolling function (like rmean) instead of slicing directly<a name="line.742"></a>
+<span class="sourceLineNo">743</span>         * to memory.<a name="line.743"></a>
+<span class="sourceLineNo">744</span>         * <a name="line.744"></a>
+<span class="sourceLineNo">745</span>         * @param lazySet<a name="line.745"></a>
+<span class="sourceLineNo">746</span>         * @param dimension<a name="line.746"></a>
+<span class="sourceLineNo">747</span>         * @return maximum size of dimension that can be sliced.<a name="line.747"></a>
+<span class="sourceLineNo">748</span>         */<a name="line.748"></a>
+<span class="sourceLineNo">749</span>        public static int getMaxSliceLength(ILazyDataset lazySet, int dimension) {<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                // size in bytes of each item<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                final double size = DTypeUtils.getItemBytes(DTypeUtils.getDTypeFromClass(lazySet.getElementClass()), lazySet.getElementsPerItem());<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                <a name="line.752"></a>
+<span class="sourceLineNo">753</span>                // Max in bytes takes into account our minimum requirement<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                final double max  = Math.max(Runtime.getRuntime().totalMemory(), Runtime.getRuntime().maxMemory());<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                <a name="line.755"></a>
+<span class="sourceLineNo">756</span>                // Firstly if the whole dataset it likely to fit in memory, then we allow it.<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                // Space specified in bytes per item available<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                final double space = max/lazySet.getSize();<a name="line.758"></a>
+<span class="sourceLineNo">759</span><a name="line.759"></a>
+<span class="sourceLineNo">760</span>                // If we have room for this whole dataset, then fine<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                int[] shape = lazySet.getShape();<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                if (space &gt;= size) {<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                        return shape[dimension];<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>                // Otherwise estimate what we can fit in, conservatively.<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                // First get size of one slice, see it that fits, if not, still return 1<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                double sizeOneSlice = size; // in bytes<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                for (int dim = 0; dim &lt; shape.length; dim++) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        if (dim == dimension) {<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                                continue;<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                        }<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                        sizeOneSlice *= shape[dim];<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                }<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                double avail = max / sizeOneSlice;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                if (avail &lt; 1) {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                        return 1;<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>                // We fudge this to leave some room<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                return (int) Math.floor(avail/4d);<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/LazyDatasetBase.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/LazyDatasetBase.html
new file mode 100644
index 0000000..015d83a
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/LazyDatasetBase.html
@@ -0,0 +1,1202 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.io.Serializable;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.lang.annotation.Annotation;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.lang.reflect.Array;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.lang.reflect.Field;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.ArrayList;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.Arrays;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.Collection;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import java.util.concurrent.ConcurrentMap;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import java.util.List;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.util.Map;<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.eclipse.january.DatasetException;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.eclipse.january.MetadataException;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.eclipse.january.metadata.Dirtiable;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.eclipse.january.metadata.ErrorMetadata;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.eclipse.january.metadata.IMetadata;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.eclipse.january.metadata.MetadataFactory;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.eclipse.january.metadata.MetadataType;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.eclipse.january.metadata.Reshapeable;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.eclipse.january.metadata.Sliceable;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.eclipse.january.metadata.Transposable;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.slf4j.Logger;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.slf4j.LoggerFactory;<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>/**<a name="line.40"></a>
+<span class="sourceLineNo">041</span> * Common base for both lazy and normal dataset implementations<a name="line.41"></a>
+<span class="sourceLineNo">042</span> */<a name="line.42"></a>
+<span class="sourceLineNo">043</span>public abstract class LazyDatasetBase implements ILazyDataset, Serializable {<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span>        private static final long serialVersionUID = 767926846438976050L;<a name="line.45"></a>
+<span class="sourceLineNo">046</span><a name="line.46"></a>
+<span class="sourceLineNo">047</span>        protected static final Logger logger = LoggerFactory.getLogger(LazyDatasetBase.class);<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>        protected static boolean catchExceptions;<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>        static {<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                /**<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                 * Boolean to set to true if running jython scripts that utilise ScisoftPy in IDE<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                 */<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                try {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                        catchExceptions = Boolean.getBoolean("run.in.eclipse");<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                } catch (SecurityException e) {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                        // set a default for when the security manager does not allow access to the requested key<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                        catchExceptions = false;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                }<a name="line.60"></a>
+<span class="sourceLineNo">061</span>        }<a name="line.61"></a>
+<span class="sourceLineNo">062</span><a name="line.62"></a>
+<span class="sourceLineNo">063</span>        transient private boolean dirty = true; // indicate dirty state of metadata<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        protected String name = "";<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>        /**<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * The shape or dimensions of the dataset<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         */<a name="line.68"></a>
+<span class="sourceLineNo">069</span>        protected int[] shape;<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>        protected ConcurrentMap&lt;Class&lt;? extends MetadataType&gt;, List&lt;MetadataType&gt;&gt; metadata = null;<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>        /**<a name="line.73"></a>
+<span class="sourceLineNo">074</span>         * @return type of dataset item<a name="line.74"></a>
+<span class="sourceLineNo">075</span>         */<a name="line.75"></a>
+<span class="sourceLineNo">076</span>        abstract public int getDType();<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span>        @Override<a name="line.78"></a>
+<span class="sourceLineNo">079</span>        public Class&lt;?&gt; getElementClass() {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                return DTypeUtils.getElementClass(getDType());<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        }<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>        @Override<a name="line.83"></a>
+<span class="sourceLineNo">084</span>        public LazyDatasetBase clone() {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                return null;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        }<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>        @Override<a name="line.88"></a>
+<span class="sourceLineNo">089</span>        public boolean equals(Object obj) {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                if (this == obj) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                        return true;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                }<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                if (obj == null) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        return false;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                }<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                if (!getClass().equals(obj.getClass())) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        return false;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                }<a name="line.98"></a>
+<span class="sourceLineNo">099</span><a name="line.99"></a>
+<span class="sourceLineNo">100</span>                LazyDatasetBase other = (LazyDatasetBase) obj;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                if (getDType() != other.getDType()) {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                        return false;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                }<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                if (getElementsPerItem() != other.getElementsPerItem()) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                        return false;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                }<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                if (!Arrays.equals(shape, other.shape)) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        return false;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                return true;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        }<a name="line.111"></a>
+<span class="sourceLineNo">112</span><a name="line.112"></a>
+<span class="sourceLineNo">113</span>        @Override<a name="line.113"></a>
+<span class="sourceLineNo">114</span>        public int hashCode() {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                int hash = getDType() * 17 + getElementsPerItem();<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                int rank = shape.length;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                        hash = hash*17 + shape[i];<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                }<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                return hash;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        }<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>        @Override<a name="line.123"></a>
+<span class="sourceLineNo">124</span>        public String getName() {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                return name;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>        }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>        @Override<a name="line.128"></a>
+<span class="sourceLineNo">129</span>        public void setName(String name) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                this.name = name;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>        }<a name="line.131"></a>
+<span class="sourceLineNo">132</span><a name="line.132"></a>
+<span class="sourceLineNo">133</span>        @Override<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        public int[] getShape() {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                return shape.clone();<a name="line.135"></a>
+<span class="sourceLineNo">136</span>        }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>        @Override<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        public int getRank() {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                return shape.length;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>        }<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>        /**<a name="line.143"></a>
+<span class="sourceLineNo">144</span>         * This method allows anything that dirties the dataset to clear various metadata values<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * so that the other methods can work correctly.<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         * @since 2.1<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         */<a name="line.147"></a>
+<span class="sourceLineNo">148</span>        public void setDirty() {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                dirty = true;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>        }<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>        /**<a name="line.152"></a>
+<span class="sourceLineNo">153</span>         * Find first sub-interface of (or class that directly implements) MetadataType<a name="line.153"></a>
+<span class="sourceLineNo">154</span>         * @param clazz<a name="line.154"></a>
+<span class="sourceLineNo">155</span>         * @return sub-interface<a name="line.155"></a>
+<span class="sourceLineNo">156</span>         * @exception IllegalArgumentException when given class is {@link MetadataType} or an anonymous sub-class of it<a name="line.156"></a>
+<span class="sourceLineNo">157</span>         */<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        @SuppressWarnings("unchecked")<a name="line.158"></a>
+<span class="sourceLineNo">159</span>        public static Class&lt;? extends MetadataType&gt; findMetadataTypeSubInterfaces(Class&lt;? extends MetadataType&gt; clazz) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                if (clazz.equals(MetadataType.class)) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        throw new IllegalArgumentException("Cannot accept MetadataType");<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                if (clazz.isInterface()) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                        return clazz;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                }<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>                if (clazz.isAnonymousClass()) { // special case<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                        Class&lt;?&gt; s = clazz.getSuperclass();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                        if (!s.equals(Object.class)) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                                // only use super class if it is not an anonymous class of an interface<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                                clazz = (Class&lt;? extends MetadataType&gt;) s;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                        }<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                }<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>                for (Class&lt;?&gt; c : clazz.getInterfaces()) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                        if (c.equals(MetadataType.class)) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                                if (clazz.isAnonymousClass()) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                                        throw new IllegalArgumentException("Cannot accept anonymous subclasses of MetadataType");<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                                }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                                return clazz;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        }<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                        if (MetadataType.class.isAssignableFrom(c)) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                                return (Class&lt;? extends MetadataType&gt;) c;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                        }<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                }<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>                Class&lt;?&gt; c = clazz.getSuperclass(); // Naughty: someone has sub-classed a metadata class<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                if (c != null) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                        return findMetadataTypeSubInterfaces((Class&lt;? extends MetadataType&gt;) c);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                }<a name="line.191"></a>
+<span class="sourceLineNo">192</span><a name="line.192"></a>
+<span class="sourceLineNo">193</span>                logger.error("Somehow the search for metadata type interface ended in a bad place");<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                assert false; // should not be able to get here!!!<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                return null;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        }<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>        @Override<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        public void setMetadata(MetadataType metadata) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                addMetadata(metadata, true);<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>        @Override<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        public void addMetadata(MetadataType metadata) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                addMetadata(metadata, false);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        }<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>        private synchronized void addMetadata(MetadataType metadata, boolean clear) {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                if (metadata == null) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                        return;<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                }<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>                if (this.metadata == null) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        this.metadata = new ConcurrentHashMap&lt;Class&lt;? extends MetadataType&gt;, List&lt;MetadataType&gt;&gt;();<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>                Class&lt;? extends MetadataType&gt; clazz = findMetadataTypeSubInterfaces(metadata.getClass());<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                if (!this.metadata.containsKey(clazz)) {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                        this.metadata.put(clazz, new ArrayList&lt;MetadataType&gt;());<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                } else if (clear) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                        this.metadata.get(clazz).clear();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                }<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                this.metadata.get(clazz).add(metadata);<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>                // add for special case of sub-interfaces of IMetadata<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                if (!IMetadata.class.equals(clazz) &amp;&amp; IMetadata.class.isAssignableFrom(clazz)) {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                        clazz = IMetadata.class;<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                        if (!this.metadata.containsKey(clazz)) {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                                this.metadata.put(clazz, new ArrayList&lt;MetadataType&gt;());<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        } else if (clear) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                                this.metadata.get(clazz).clear();<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                        }<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                        this.metadata.get(clazz).add(metadata);<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                }<a name="line.234"></a>
+<span class="sourceLineNo">235</span>        }<a name="line.235"></a>
+<span class="sourceLineNo">236</span><a name="line.236"></a>
+<span class="sourceLineNo">237</span>        @Override<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        @Deprecated<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        public synchronized IMetadata getMetadata() {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                return getFirstMetadata(IMetadata.class);<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>        @SuppressWarnings("unchecked")<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; List&lt;S&gt; getMetadata(Class&lt;T&gt; clazz) throws MetadataException {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                if (metadata == null) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        dirty = false;<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                        return null;<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>                if (dirty) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                        dirtyMetadata();<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        dirty = false;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                }<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>                if (clazz == null) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                        List&lt;S&gt; all = new ArrayList&lt;S&gt;();<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        for (Class&lt;? extends MetadataType&gt; c : metadata.keySet()) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                                all.addAll((Collection&lt;S&gt;) metadata.get(c));<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                        }<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                        return all;<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>                return (List&lt;S&gt;) metadata.get(findMetadataTypeSubInterfaces(clazz));<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 synchronized &lt;S extends MetadataType, T extends S&gt; S getFirstMetadata(Class&lt;T&gt; clazz) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                try {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                        List&lt;S&gt; ml = getMetadata(clazz);<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                        if (ml == null) {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                                return null;<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        }<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                        for (S t : ml) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                                if (clazz.isInstance(t)) {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                                        return t;<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>                } catch (Exception e) {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                        logger.error("Get metadata failed!",e);<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                }<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
+<span class="sourceLineNo">283</span>                return null;<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 synchronized void clearMetadata(Class&lt;? extends MetadataType&gt; clazz) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                if (metadata == null) {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                        return;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                }<a name="line.290"></a>
+<span class="sourceLineNo">291</span><a name="line.291"></a>
+<span class="sourceLineNo">292</span>                if (clazz == null) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                        metadata.clear();<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                        return;<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>                List&lt;MetadataType&gt; list = metadata.get(findMetadataTypeSubInterfaces(clazz));<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                if( list != null) {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                        list.clear();<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><a name="line.302"></a>
+<span class="sourceLineNo">303</span>        /**<a name="line.303"></a>
+<span class="sourceLineNo">304</span>         * @since 2.0<a name="line.304"></a>
+<span class="sourceLineNo">305</span>         */<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        protected synchronized ConcurrentMap&lt;Class&lt;? extends MetadataType&gt;, List&lt;MetadataType&gt;&gt; copyMetadata() {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                return copyMetadata(metadata);<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>         * @since 2.0<a name="line.311"></a>
+<span class="sourceLineNo">312</span>         */<a name="line.312"></a>
+<span class="sourceLineNo">313</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.313"></a>
+<span class="sourceLineNo">314</span>                if (metadata == null) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                        return null;<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>                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.318"></a>
+<span class="sourceLineNo">319</span>                copyMetadata(metadata, map);<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                return map;<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>        private static void copyMetadata(Map&lt;Class&lt;? extends MetadataType&gt;, List&lt;MetadataType&gt;&gt; inMetadata,<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                        Map&lt;Class&lt;? extends MetadataType&gt;, List&lt;MetadataType&gt;&gt; outMetadata) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                for (Class&lt;? extends MetadataType&gt; c : inMetadata.keySet()) {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                        List&lt;MetadataType&gt; l = inMetadata.get(c);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                        List&lt;MetadataType&gt; nl = new ArrayList&lt;MetadataType&gt;(l.size());<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                        outMetadata.put(c, nl);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        for (MetadataType m : l) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                                if (m == null || isMetadataDirty(m)) { // skip dirty metadata<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                                        continue;<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                                }<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                                nl.add(m.clone());<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>        protected void restoreMetadata(Map&lt;Class&lt;? extends MetadataType&gt;, List&lt;MetadataType&gt;&gt; oldMetadata) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                copyMetadata(oldMetadata, metadata);<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>        /**<a name="line.342"></a>
+<span class="sourceLineNo">343</span>         * @since 2.2<a name="line.343"></a>
+<span class="sourceLineNo">344</span>         */<a name="line.344"></a>
+<span class="sourceLineNo">345</span>        protected static ConcurrentMap&lt;Class&lt;? extends MetadataType&gt;, List&lt;MetadataType&gt;&gt; getMetadataMap(ILazyDataset a, boolean clone) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                List&lt;MetadataType&gt; all = null;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                try {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                        all = a.getMetadata(null);<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                } catch (Exception e) {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                }<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                if (all == null) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                        return null;<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>                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.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>                for (MetadataType m : all) {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                        if (m == null || isMetadataDirty(m)) { // skip dirty metadata<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                                continue;<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                        }<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                        Class&lt;? extends MetadataType&gt; c = findMetadataTypeSubInterfaces(m.getClass());<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                        List&lt;MetadataType&gt; l = map.get(c);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                        if (l == null) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                                l = new ArrayList&lt;MetadataType&gt;();<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                                map.put(c, l);<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                        }<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                        if (clone) {<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                                m = m.clone();<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                        }<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                        l.add(m);<a name="line.370"></a>
+<span class="sourceLineNo">371</span>                }<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                return map;<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>        private static boolean isMetadataDirty(MetadataType m) {<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                Class&lt;? extends MetadataType&gt; c = m.getClass();<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                for (Field f : c.getDeclaredFields()) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                        if (f.isAnnotationPresent(Dirtiable.class)) {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                                Class&lt;?&gt; t = f.getType();<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                                if (t.equals(boolean.class) || t.equals(Boolean.class)) {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                                        try {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                                                f.setAccessible(true);<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                                                Object o = f.get(m);<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                                                if (o.equals(true)) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                                                        return true;<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                                                }<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                                        } catch (Exception e) {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                                                logger.debug("Could not retrieve value of dirty variable: {}", c.getCanonicalName(), e);<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>
+<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>                return false;<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>        interface MetadatasetAnnotationOperation {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                /**<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                 * Process value of given field<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                 * &lt;p&gt;<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                 * When the field is not a container then the returned value<a name="line.401"></a>
+<span class="sourceLineNo">402</span>                 * may replace the old value<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                 * @param f given field<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                 * @param o value of field<a name="line.404"></a>
+<span class="sourceLineNo">405</span>                 * @return transformed field<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                 */<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                Object processField(Field f, Object o);<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>                 * @return annotated class<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                 */<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                Class&lt;? extends Annotation&gt; getAnnClass();<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 axis<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                 * @return number of dimensions to insert or remove<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                 */<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                int change(int axis);<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>                 * @return rank or -1 to match<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                 */<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                int getNewRank();<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>                 * Run on given lazy dataset<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                 * @param lz<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                 * @return <a name="line.429"></a>
+<span class="sourceLineNo">430</span>                 */<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                ILazyDataset run(ILazyDataset lz);<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>        class MdsSlice implements MetadatasetAnnotationOperation {<a name="line.434"></a>
+<span class="sourceLineNo">435</span>                private boolean asView;<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                private SliceND slice;<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                private int[] oShape;<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                private long oSize;<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span>                public MdsSlice(boolean asView, SliceND slice) {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                        this.asView = asView;<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                        this.slice = slice;<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                        oShape = slice.getSourceShape();<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                        oSize = ShapeUtils.calcLongSize(oShape);<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>                @Override<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                public Object processField(Field field, Object o) {<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                        return o;<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>                @Override<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                public Class&lt;? extends Annotation&gt; getAnnClass() {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                        return Sliceable.class;<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>                @Override<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                public int change(int axis) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                        return 0;<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>                @Override<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                public int getNewRank() {<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                        return -1;<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                }<a name="line.465"></a>
+<span class="sourceLineNo">466</span><a name="line.466"></a>
+<span class="sourceLineNo">467</span>                @Override<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                public ILazyDataset run(ILazyDataset lz) {<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                        int rank = lz.getRank();<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                        if (slice.getStart().length != rank) {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                                throw new IllegalArgumentException("Slice rank does not match dataset!");<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>                        int[] shape = lz.getShape();<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                        SliceND nslice;<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                        if (!ShapeUtils.areShapesBroadcastCompatible(oShape, shape)) {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                                nslice = new SliceND(shape);<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                                for (int i = 0; i &lt; rank; i++) {<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                                        int s = shape[i];<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                                        int os = oShape[i];<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                                        if (s &gt;= os) {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                                                nslice.setSlice(i, 0, os, 1);<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                                        } else if (s == 1) {<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                                                nslice.setSlice(i, 0, 1, 1);<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                                        } else {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                                                throw new IllegalArgumentException("Sliceable dataset has non-unit dimension less than host!");<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>                                lz = lz.getSliceView(nslice);<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                        }<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                        if (lz.getSize() == oSize) {<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                                nslice = slice;<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                        } else {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                                nslice = slice.clone();<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                                for (int i = 0; i &lt; rank; i++) {<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                                        int s = shape[i];<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                                        if (s &gt;= oShape[i]) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                                                continue;<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                                        } else if (s == 1) {<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                                                nslice.setSlice(i, 0, 1, 1);<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                                        } else {<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                                                throw new IllegalArgumentException("Sliceable dataset has non-unit dimension less than host!");<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><a name="line.506"></a>
+<span class="sourceLineNo">507</span>                        if (asView || (lz instanceof IDataset)) {<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                                return lz.getSliceView(nslice);<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                        }<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                        try {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                                return lz.getSlice(nslice);<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                        } catch (DatasetException e) {<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                                logger.error("Could not slice dataset in metadata", e);<a name="line.513"></a>
+<span class="sourceLineNo">514</span>                                return null;<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><a name="line.518"></a>
+<span class="sourceLineNo">519</span>        class MdsReshape implements MetadatasetAnnotationOperation {<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                private boolean matchRank;<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                private int[] oldShape;<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                private int[] newShape;<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                boolean onesOnly;<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                int[] differences;<a name="line.524"></a>
+<span class="sourceLineNo">525</span><a name="line.525"></a>
+<span class="sourceLineNo">526</span>                /*<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                 * if only ones then record differences (insertions and deletions)<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                 * <a name="line.528"></a>
+<span class="sourceLineNo">529</span>                 * if shape changing, find broadcasted dimensions and disallow<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                 * merging that include those dimensions<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                 */<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                public MdsReshape(final int[] oldShape, final int[] newShape) {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                        this.oldShape = oldShape;<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                        this.newShape = newShape;<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                        differences = null;<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 Object processField(Field field, Object o) {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                        Annotation a = field.getAnnotation(Reshapeable.class);<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                        if (a != null) { // cannot be null<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                                matchRank = ((Reshapeable) a).matchRank();<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                        }<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                        return o;<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 Class&lt;? extends Annotation&gt; getAnnClass() {<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                        return Reshapeable.class;<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 int change(int axis) {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                        if (matchRank) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                                if (differences == null) {<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                                        init();<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>                                if (onesOnly) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                                        return differences == null ? 0 : differences[axis];<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                                }<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                                throw new UnsupportedOperationException("TODO support other shape operations");<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                        }<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                        return 0;<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>                @Override<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                public int getNewRank() {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                        return matchRank ? newShape.length : -1;<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>                private void init() {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                        int or = oldShape.length - 1;<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                        int nr = newShape.length - 1;<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        if (or &lt; 0 || nr &lt; 0) { // zero-rank shapes<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                                onesOnly = true;<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                                differences = new int[1];<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                                differences[0] = or &lt; 0 ? nr + 1 : or + 1;<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                                return;<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                        }<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                        onesOnly = ShapeUtils.differsByOnes(oldShape, newShape);<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                        int ob = 0;<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                        int nb = 0;<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                        if (onesOnly) {<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                                differences = ShapeUtils.calcShapePadding(oldShape, newShape);<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                        } else {<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                                differences = new int[or + 2];<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                                if (matchRank) {<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                                        logger.error("Combining dimensions is currently not supported");<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                                        throw new IllegalArgumentException("Combining dimensions is currently not supported");<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                                }<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                                // work out mapping: contiguous dimensions can be grouped or split<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                                while (ob &lt;= or &amp;&amp; nb &lt;= nr) {<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                                        int ol = oldShape[ob];<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                                        while (ol == 1 &amp;&amp; ol &lt;= or) {<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                                                ob++;<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                                                ol = oldShape[ob];<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                                        }<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                                        int oe = ob + 1;<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                                        int nl = newShape[nb];<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                                        while (nl == 1 &amp;&amp; nl &lt;= nr) {<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                                                nb++;<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                                                nl = newShape[nb];<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                                        }<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                                        int ne = nb + 1;<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                                        if (ol &lt; nl) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                                                differences[ob] = 1;<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                                                do { // case where new shape combines several dimensions into one dimension<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                                                        if (oe == (or + 1)) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                                                                break;<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                                                        }<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                                                        differences[oe] = 1;<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                                                        ol *= oldShape[oe++];<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                                                } while (ol &lt; nl);<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                                                differences[oe - 1] = oe - ob; // signal end with difference<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                                                if (nl != ol) {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                                                        logger.error("Single dimension is incompatible with subshape");<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                                                        throw new IllegalArgumentException("Single dimension is incompatible with subshape");<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                                                }<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                                        } else if (ol &gt; nl) {<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                                                do { // case where new shape spreads single dimension over several dimensions<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                                                        if (ne == (nr + 1)) {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                                                                break;<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                                                        }<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                                                        nl *= newShape[ne++];<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                                                } while (nl &lt; ol);<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                                                if (nl != ol) {<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                                                        logger.error("Subshape is incompatible with single dimension");<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                                                        throw new IllegalArgumentException("Subshape is incompatible with single dimension");<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><a name="line.632"></a>
+<span class="sourceLineNo">633</span>                                        ob = oe;<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                                        nb = ne;<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                                }<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                        }<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                }<a name="line.637"></a>
+<span class="sourceLineNo">638</span><a name="line.638"></a>
+<span class="sourceLineNo">639</span>                @Override<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                public ILazyDataset run(ILazyDataset lz) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                        if (differences == null) {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                                init();<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>                        int[] lshape = lz.getShape();<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                        if (Arrays.equals(newShape, lshape)) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                                return lz;<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                        }<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                        int or = lshape.length;<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        int nr = newShape.length;<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                        int[] nshape;<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                        if (onesOnly) {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                                nshape = ShapeUtils.padShape(differences, nr, lshape);<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                        } else {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                                nshape = new int[nr];<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                                boolean[] broadcast = new boolean[or];<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                                for (int ob = 0; ob &lt; or; ob++) {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                                        broadcast[ob] = oldShape[ob] != 1 &amp;&amp; lshape[ob] == 1;<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                                }<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                                int osize = lz.getSize();<a name="line.660"></a>
+<span class="sourceLineNo">661</span><a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                // cannot do 3x5x... to 15x... if metadata is broadcasting (i.e. 1x5x...)<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                                int ob = 0;<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                                int nsize = 1;<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                                for (int i = 0; i &lt; nr; i++) {<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                                        if (ob &lt; or &amp;&amp; broadcast[ob]) {<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                                                if (differences[ob] != 0) {<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                                                        logger.error("Metadata contains a broadcast axis which cannot be reshaped");<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                                                        throw new IllegalArgumentException("Metadata contains a broadcast axis which cannot be reshaped");<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                                                }<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                                                nshape[i] = 1;<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                                        } else {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                                                nshape[i] = nsize &lt; osize ? newShape[i] : 1;<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                        }<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                                        nsize *= nshape[i];<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                                        ob++;<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>                        ILazyDataset nlz;<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                        if (lz instanceof Dataset) {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                                nlz = ((Dataset) lz).reshape(nshape);<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                        } else {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                                nlz = lz.getSliceView();<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                                nlz.setShape(nshape);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                        }<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                        return nlz;<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><a name="line.690"></a>
+<span class="sourceLineNo">691</span>        class MdsTranspose implements MetadatasetAnnotationOperation {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                int[] map;<a name="line.692"></a>
+<span class="sourceLineNo">693</span><a name="line.693"></a>
+<span class="sourceLineNo">694</span>                public MdsTranspose(final int[] axesMap) {<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                        map = axesMap;<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>                @SuppressWarnings({ "rawtypes", "unchecked" })<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                @Override<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                public Object processField(Field f, Object o) {<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                        // reorder arrays and lists according the axes map<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                        if (o.getClass().isArray()) {<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                                int l = Array.getLength(o);<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                                if (l == map.length) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                                        Object narray = Array.newInstance(o.getClass().getComponentType(), l);<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                                        for (int i = 0; i &lt; l; i++) {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                                                Array.set(narray, i, Array.get(o, map[i]));<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                                        }<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                                        for (int i = 0; i &lt; l; i++) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                                                Array.set(o, i, Array.get(narray, i));<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>                        } else if (o instanceof List&lt;?&gt;) {<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                                List list = (List) o;<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                                int l = list.size();<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                                if (l == map.length) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                                        Object narray = Array.newInstance(o.getClass().getComponentType(), l);<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                                        for (int i = 0; i &lt; l; i++) {<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                                                Array.set(narray, i, list.get(map[i]));<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                                        }<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                                        list.clear();<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                                        for (int i = 0; i &lt; l; i++) {<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                                                list.add(Array.get(narray, i));<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>                        return o;<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 Class&lt;? extends Annotation&gt; getAnnClass() {<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                        return Transposable.class;<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 int change(int axis) {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                        return 0;<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>                @Override<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                public int getNewRank() {<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                        return -1;<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 ILazyDataset run(ILazyDataset lz) {<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        return lz.getTransposedView(map);<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>        class MdsDirty implements MetadatasetAnnotationOperation {<a name="line.751"></a>
+<span class="sourceLineNo">752</span><a name="line.752"></a>
+<span class="sourceLineNo">753</span>                @Override<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                public Object processField(Field f, Object o) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        // throw exception if not boolean???<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        Class&lt;?&gt; t = f.getType();<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                        if (t.equals(boolean.class) || t.equals(Boolean.class)) {<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                                if (o.equals(false)) {<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                                        o = true;<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                                }<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                        }<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                        return o;<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 Class&lt;? extends Annotation&gt; getAnnClass() {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                        return Dirtiable.class;<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>                @Override<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                public int change(int axis) {<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                        return 0;<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 int getNewRank() {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                        return -1;<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                }<a name="line.778"></a>
+<span class="sourceLineNo">779</span><a name="line.779"></a>
+<span class="sourceLineNo">780</span>                @Override<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                public ILazyDataset run(ILazyDataset lz) {<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                        return lz;<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><a name="line.785"></a>
+<span class="sourceLineNo">786</span>        /**<a name="line.786"></a>
+<span class="sourceLineNo">787</span>         * Slice all datasets in metadata that are annotated by @Sliceable. Call this on the new sliced<a name="line.787"></a>
+<span class="sourceLineNo">788</span>         * dataset after cloning the metadata<a name="line.788"></a>
+<span class="sourceLineNo">789</span>         * @param asView if true then just a view<a name="line.789"></a>
+<span class="sourceLineNo">790</span>         * @param slice<a name="line.790"></a>
+<span class="sourceLineNo">791</span>         */<a name="line.791"></a>
+<span class="sourceLineNo">792</span>        protected void sliceMetadata(boolean asView, final SliceND slice) {<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                processAnnotatedMetadata(new MdsSlice(asView, slice), true);<a name="line.793"></a>
+<span class="sourceLineNo">794</span>        }<a name="line.794"></a>
+<span class="sourceLineNo">795</span><a name="line.795"></a>
+<span class="sourceLineNo">796</span>        /**<a name="line.796"></a>
+<span class="sourceLineNo">797</span>         * Reshape all datasets in metadata that are annotated by @Reshapeable. Call this when squeezing<a name="line.797"></a>
+<span class="sourceLineNo">798</span>         * or setting the shape<a name="line.798"></a>
+<span class="sourceLineNo">799</span>         * <a name="line.799"></a>
+<span class="sourceLineNo">800</span>         * @param newShape<a name="line.800"></a>
+<span class="sourceLineNo">801</span>         */<a name="line.801"></a>
+<span class="sourceLineNo">802</span>        protected void reshapeMetadata(final int[] oldShape, final int[] newShape) {<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                processAnnotatedMetadata(new MdsReshape(oldShape, newShape), true);<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>         * Transpose all datasets in metadata that are annotated by @Transposable. Call this on the transposed<a name="line.807"></a>
+<span class="sourceLineNo">808</span>         * dataset after cloning the metadata<a name="line.808"></a>
+<span class="sourceLineNo">809</span>         * @param axesMap<a name="line.809"></a>
+<span class="sourceLineNo">810</span>         */<a name="line.810"></a>
+<span class="sourceLineNo">811</span>        protected void transposeMetadata(final int[] axesMap) {<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                processAnnotatedMetadata(new MdsTranspose(axesMap), true);<a name="line.812"></a>
+<span class="sourceLineNo">813</span>        }<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>         * Dirty metadata that are annotated by @Dirtiable. Call this when the dataset has been modified<a name="line.816"></a>
+<span class="sourceLineNo">817</span>         * @since 2.0<a name="line.817"></a>
+<span class="sourceLineNo">818</span>         */<a name="line.818"></a>
+<span class="sourceLineNo">819</span>        protected void dirtyMetadata() {<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                processAnnotatedMetadata(new MdsDirty(), true);<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>        @SuppressWarnings("unchecked")<a name="line.823"></a>
+<span class="sourceLineNo">824</span>        private void processAnnotatedMetadata(MetadatasetAnnotationOperation op, boolean throwException) {<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                if (metadata == null)<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                        return;<a name="line.826"></a>
+<span class="sourceLineNo">827</span><a name="line.827"></a>
+<span class="sourceLineNo">828</span>                for (List&lt;MetadataType&gt; l : metadata.values()) {<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        for (MetadataType m : l) {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                                if (m == null) {<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                                        continue;<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                }<a name="line.832"></a>
+<span class="sourceLineNo">833</span><a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                Class&lt;? extends MetadataType&gt; mc = m.getClass();<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                                do { // iterate over super-classes<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                        processClass(op, m, mc, throwException);<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                        Class&lt;?&gt; sclazz = mc.getSuperclass();<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                        if (!MetadataType.class.isAssignableFrom(sclazz)) {<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                                break;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                        }<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                        mc = (Class&lt;? extends MetadataType&gt;) sclazz;<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                                } while (true);<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                        }<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                }<a name="line.844"></a>
+<span class="sourceLineNo">845</span>        }<a name="line.845"></a>
+<span class="sourceLineNo">846</span><a name="line.846"></a>
+<span class="sourceLineNo">847</span>        @SuppressWarnings({ "unchecked", "rawtypes" })<a name="line.847"></a>
+<span class="sourceLineNo">848</span>        private static void processClass(MetadatasetAnnotationOperation op, MetadataType m, Class&lt;? extends MetadataType&gt; mc, boolean throwException) {<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                for (Field f : mc.getDeclaredFields()) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        if (!f.isAnnotationPresent(op.getAnnClass()))<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                continue;<a name="line.851"></a>
+<span class="sourceLineNo">852</span><a name="line.852"></a>
+<span class="sourceLineNo">853</span>                        try {<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                f.setAccessible(true);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                Object o = f.get(m);<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                                if (o == null) {<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                                        continue;<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>                                Object no = op.processField(f, o);<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                                if (no != o) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                        f.set(m, no);<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                                        continue;<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                                Object r = null;<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                if (o instanceof ILazyDataset) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                        try {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                                f.set(m, op.run((ILazyDataset) o));<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                        } catch (Exception e) {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                                logger.error("Problem processing " + o, e);<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                                                if (!catchExceptions) {<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                                                        throw e;<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>                                } else if (o.getClass().isArray()) {<a name="line.875"></a>
+<span class="sourceLineNo">876</span>                                        int l = Array.getLength(o);<a name="line.876"></a>
+<span class="sourceLineNo">877</span><a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                        for (int i = 0; r == null &amp;&amp; i &lt; l; i++) {<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                                r = Array.get(o, i);<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                                        }<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                                        int n = op.getNewRank();<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                        if (r == null) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                                if (n &lt; 0 || n != l) { // all nulls be need to match rank as necessary<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                                                        f.set(m, Array.newInstance(o.getClass().getComponentType(), n &lt; 0 ? l : n));<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                                                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                                                continue;<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                                        }<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                                        if (n &lt; 0) {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                                                n = l;<a name="line.889"></a>
+<span class="sourceLineNo">890</span>                                        }<a name="line.890"></a>
+<span class="sourceLineNo">891</span>                                        Object narray = Array.newInstance(r.getClass(), n);<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                        for (int i = 0, si = 0, di = 0; di &lt; n &amp;&amp; si &lt; l; i++) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                                int c = op.change(i);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                                if (c == 0) {<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                                                        Array.set(narray, di++, processObject(op, Array.get(o, si++)));<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                                } else if (c &gt; 0) {<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                                        di += c; // add nulls by skipping forward in destination array<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                                } else if (c &lt; 0) {<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                                        si -= c; // remove dimensions by skipping forward in source array<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                                }<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                                        }<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                                        if (n == l) {<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                                                for (int i = 0; i &lt; l; i++) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                                                        Array.set(o, i, Array.get(narray, i));<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>                                                f.set(m, narray);<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                        }<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                                } else if (o instanceof List&lt;?&gt;) {<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                                        List list = (List) o;<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                                        int l = list.size();<a name="line.911"></a>
+<span class="sourceLineNo">912</span><a name="line.912"></a>
+<span class="sourceLineNo">913</span>                                        for (int i = 0; r == null &amp;&amp; i &lt; l; i++) {<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                                                r = list.get(i);<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                        }<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                        int n = op.getNewRank();<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                                        if (r == null) {<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                                                if (n &lt; 0 || n != l) { // all nulls be need to match rank as necessary<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                                                        list.clear();<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                                                        for (int i = 0, imax = n &lt; 0 ? l : n; i &lt; imax; i++) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                                                                list.add(null);<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>                                                continue;<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>                                        if (n &lt; 0) {<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                                                n = l;<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                                        }<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                        Object narray = Array.newInstance(r.getClass(), n);<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                        for (int i = 0, si = 0, di = 0; i &lt; l &amp;&amp; si &lt; l; i++) {<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                                int c = op.change(i);<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                                if (c == 0) {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                                        Array.set(narray, di++, processObject(op, list.get(si++)));<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                                                } else if (c &gt; 0) {<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                                                        di += c; // add nulls by skipping forward in destination array<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                                                } else if (c &lt; 0) {<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                                                        si -= c; // remove dimensions by skipping forward in source array<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                                                }<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                                        }<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                                        list.clear();<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                        for (int i = 0; i &lt; n; i++) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                                list.add(Array.get(narray, i));<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                        }<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                } else if (o instanceof Map&lt;?,?&gt;) {<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                        Map map = (Map) o;<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                        for (Object k : map.keySet()) {<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                                                map.put(k, processObject(op, map.get(k)));<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>                        } catch (Exception e) {<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                logger.error("Problem occurred when processing metadata of class {}: {}", mc.getCanonicalName(), e);<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                if (throwException) {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                        throw new RuntimeException(e);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                } <a name="line.955"></a>
+<span class="sourceLineNo">956</span>                        }<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                }<a name="line.957"></a>
+<span class="sourceLineNo">958</span>        }<a name="line.958"></a>
+<span class="sourceLineNo">959</span><a name="line.959"></a>
+<span class="sourceLineNo">960</span>        @SuppressWarnings({ "unchecked", "rawtypes" })<a name="line.960"></a>
+<span class="sourceLineNo">961</span>        private static Object processObject(MetadatasetAnnotationOperation op, Object o) throws Exception {<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                if (o == null) {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                        return o;<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>                if (o instanceof ILazyDataset) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                        try {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                                return op.run((ILazyDataset) o);<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                        } catch (Exception e) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                logger.error("Problem processing " + o, e);<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                                if (!catchExceptions) {<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                                        throw e;<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 if (o.getClass().isArray()) {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        int l = Array.getLength(o);<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                        for (int i = 0; i &lt; l; i++) {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                                Array.set(o, i, processObject(op, Array.get(o, i)));<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                        }<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                } else if (o instanceof List&lt;?&gt;) {<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                        List list = (List) o;<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                        for (int i = 0, imax = list.size(); i &lt; imax; i++) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                list.set(i, processObject(op, list.get(i)));<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                        }<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                } else if (o instanceof Map&lt;?,?&gt;) {<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                        Map map = (Map) o;<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                        for (Object k : map.keySet()) {<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                map.put(k, processObject(op, map.get(k)));<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>                return o;<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>        protected ILazyDataset createFromSerializable(Serializable blob, boolean keepLazy) {<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                ILazyDataset d = null;<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                if (blob instanceof ILazyDataset) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        d = (ILazyDataset) blob;<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                        if (d instanceof IDataset) {<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                Dataset ed = DatasetUtils.convertToDataset((IDataset) d);<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                int is = ed.getElementsPerItem();<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                if (is != 1 &amp;&amp; is != getElementsPerItem()) {<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        throw new IllegalArgumentException("Dataset has incompatible number of elements with this dataset");<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                }<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                d = ed.cast(is == 1 ? DoubleDataset.class: CompoundDoubleDataset.class);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                        } else if (!keepLazy) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                                final int is = getElementsPerItem();<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                                try {<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                                        d = DatasetUtils.cast(is == 1 ? DoubleDataset.class: CompoundDoubleDataset.class, d.getSlice());<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                                } catch (DatasetException e) {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                                        logger.error("Could not get data from lazy dataset", e);<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                                        return null;<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>                } else {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                        final int is = getElementsPerItem();<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                        if (is == 1) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                d = DatasetFactory.createFromObject(DoubleDataset.class, blob);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                        } else {<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                try {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                        d = DatasetFactory.createFromObject(is, CompoundDoubleDataset.class, blob);<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                } catch (IllegalArgumentException e) { // if only single value supplied try again<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                        d = DatasetFactory.createFromObject(DoubleDataset.class, blob);<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>                        if (d.getSize() == getSize() &amp;&amp; !Arrays.equals(d.getShape(), shape)) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                d.setShape(shape.clone());<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>                List&lt;int[]&gt; s = BroadcastUtils.broadcastShapesToMax(shape, d.getShape());<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                d.setShape(s.get(0));<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span><a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                return d;<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>        }<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span><a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>        @Override<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>        public void setErrors(Serializable errors) {<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                if (shape == null) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                        throw new IllegalArgumentException("Cannot set errors for null dataset");<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                }<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                if (errors == null) {<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                        clearMetadata(ErrorMetadata.class);<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        return;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                }<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                if (errors == this) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                        logger.warn("Ignoring setting error to itself as this will lead to infinite recursion");<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        return;<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>                ILazyDataset errorData = createFromSerializable(errors, true);<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span><a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                ErrorMetadata emd = getErrorMetadata();<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                if (emd == null) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                        try {<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                emd = MetadataFactory.createMetadata(ErrorMetadata.class);<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                setMetadata(emd);<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                        } catch (MetadataException me) {<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                                logger.error("Could not create metadata", me);<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>                emd.setError(errorData);<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>        }<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span><a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>        protected ErrorMetadata getErrorMetadata() {<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                try {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                        List&lt;ErrorMetadata&gt; el = getMetadata(ErrorMetadata.class);<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                        if (el != null &amp;&amp; !el.isEmpty()) {<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                 return el.get(0);<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                        }<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                } catch (Exception e) {<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                }<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                return null;<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>        }<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span><a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>        @Override<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>        public ILazyDataset getErrors() {<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                ErrorMetadata emd = getErrorMetadata();<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                return emd == null ? null : emd.getError();<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>        @Override<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>        public boolean hasErrors() {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                return LazyDatasetBase.this.getErrors() != null;<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>        }<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span><a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>        /**<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>         * Check permutation axes<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>         * @param shape<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>         * @param axes<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>         * @return cleaned up copy of axes or null if trivial<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>         */<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>        public static int[] checkPermutatedAxes(int[] shape, int... axes) {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                int rank = shape == null ? 0 : shape.length;<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span><a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                if (axes == null || axes.length == 0) {<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                        axes = new int[rank];<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                                axes[i] = rank - 1 - i;<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>                        axes = axes.clone();<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>                if (axes.length != rank) {<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                        logger.error("axis permutation has length {} that does not match dataset's rank {}", axes.length, rank);<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                        throw new IllegalArgumentException("axis permutation does not match shape of dataset");<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>                // check all permutation values are within bounds<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                        axes[i] = ShapeUtils.checkAxis(rank, axes[i]);<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>                // check for a valid permutation (is this an unnecessary restriction?)<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                int[] perm = axes.clone();<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                Arrays.sort(perm);<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span><a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                        if (perm[i] != i) {<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                                logger.error("axis permutation is not valid: it does not contain complete set of axes");<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                throw new IllegalArgumentException("axis permutation does not contain complete set of axes");<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><a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                if (Arrays.equals(axes, perm)) {<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                        return null; // signal identity or trivial permutation<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>                return axes;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/LazyDynamicDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/LazyDynamicDataset.html
new file mode 100644
index 0000000..883d901
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/LazyDynamicDataset.html
@@ -0,0 +1,314 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.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><a name="line.25"></a>
+<span class="sourceLineNo">026</span>        class PeriodicRunnable implements Runnable {<a name="line.26"></a>
+<span class="sourceLineNo">027</span>                long millis;<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>                @Override<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                public void run() {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                        while (true) {<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                                try {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                                        Thread.sleep(millis);<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                                } catch (InterruptedException e) {<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                                        break;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                                }<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                                if (checker == null || checker.check()) {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                                        fireDataListeners();<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>        }<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>        private transient PeriodicRunnable runner = new PeriodicRunnable();<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>        private Thread checkingThread;<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>        public LazyDynamicDataset(String name, int dtype, int elements, int[] shape, int[] maxShape, ILazyLoader loader) {<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                super(name, dtype, elements, shape, loader);<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                if (maxShape == null) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                        this.maxShape = shape.clone();<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                        // check there are no unlimited dimensions in shape<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                        int rank = shape.length;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                        boolean isUnlimited = false;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                                if (shape[i] == ILazyWriteableDataset.UNLIMITED) {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                                        isUnlimited = 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>                        if (isUnlimited) { // set all zeros<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>                                        this.shape[i] = 0;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                                        this.oShape[i] = 0;<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>                } else {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        this.maxShape = maxShape.clone();<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                }<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                this.eventDelegate = new DataListenerDelegate();<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>         * @since 2.2<a name="line.74"></a>
+<span class="sourceLineNo">075</span>         */<a name="line.75"></a>
+<span class="sourceLineNo">076</span>        protected LazyDynamicDataset(LazyDynamicDataset other) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                super(other);<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>                maxShape = other.maxShape;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                eventDelegate = other.eventDelegate;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                checker = other.checker;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                runner = other.runner;<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 int hashCode() {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                final int prime = 31;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                int result = super.hashCode();<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                result = prime * result + ((checker == null) ? 0 : checker.hashCode());<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                result = prime * result + ((checkingThread == null) ? 0 : checkingThread.hashCode());<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                result = prime * result + Arrays.hashCode(maxShape);<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                return result;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>        }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>        @Override<a name="line.95"></a>
+<span class="sourceLineNo">096</span>        public boolean equals(Object obj) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                if (this == obj) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        return true;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                }<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                if (!super.equals(obj)) {<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><a name="line.103"></a>
+<span class="sourceLineNo">104</span>                LazyDynamicDataset other = (LazyDynamicDataset) obj;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                if (!Arrays.equals(maxShape, other.maxShape)) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                        return false;<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>                if (checker == null) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                        if (other.checker != null) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                                return false;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        }<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                } else if (!checker.equals(other.checker)) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                        return false;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                }<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                if (checkingThread == null) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                        if (other.checkingThread != null) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                return false;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        }<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                } else if (!checkingThread.equals(other.checkingThread)) {<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>                return true;<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 ILazyDataset getDataset() {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                return this;<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 void addDataListener(IDataListener l) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                eventDelegate.addDataListener(l);<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 void removeDataListener(IDataListener l) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                eventDelegate.removeDataListener(l);<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 void fireDataListeners() {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                synchronized (eventDelegate) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                        eventDelegate.fire(new DataEvent(name, shape));<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>        @Override<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        public boolean refreshShape() {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                if (loader instanceof ILazyDynamicLoader) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                        return resize(((ILazyDynamicLoader)loader).refreshShape());<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                }<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                return false;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>        }<a name="line.154"></a>
+<span class="sourceLineNo">155</span><a name="line.155"></a>
+<span class="sourceLineNo">156</span>        @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        public boolean resize(int... newShape) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                int rank = shape.length;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                if (newShape.length != rank) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        throw new IllegalArgumentException("Rank of new shape must match current shape");<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                }<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>                if (Arrays.equals(shape, newShape)) {<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 (maxShape != null) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                                int m = maxShape[i];<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                                if (m != -1 &amp;&amp; newShape[i] &gt; m) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                                        throw new IllegalArgumentException("A dimension of new shape must not exceed maximum shape");<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>                }<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                this.shape = newShape.clone();<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                this.oShape = this.shape;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                try {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        size = ShapeUtils.calcLongSize(shape);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                } catch (IllegalArgumentException e) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                        size = Long.MAX_VALUE; // this indicates that the entire dataset cannot be read in! <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>                eventDelegate.fire(new DataEvent(name, shape));<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                return true;<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[] getMaxShape() {<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 void setMaxShape(int... maxShape) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                this.maxShape = maxShape == null ? shape.clone() : maxShape.clone();<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>                if (this.maxShape.length &gt; oShape.length) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                        oShape = prependShapeWithOnes(this.maxShape.length, oShape);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                }<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                if (this.maxShape.length &gt; shape.length) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        shape = prependShapeWithOnes(this.maxShape.length, shape); // TODO this does not update any metadata<a name="line.200"></a>
+<span class="sourceLineNo">201</span>//                      setShapeInternal(prependShapeWithOnes(this.maxShape.length, shape));<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>        private final static int[] prependShapeWithOnes(int rank, int[] shape) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                int[] nShape = new int[rank];<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                int excess = rank - shape.length;<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                for (int i = 0; i &lt; excess; i++) {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        nShape[i] = 1;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                }<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                for (int i = excess; i &lt; nShape.length; i++) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                        nShape[i] = shape[i - excess];<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                }<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                return nShape;<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 LazyDynamicDataset clone() {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                return new LazyDynamicDataset(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 synchronized void startUpdateChecker(int milliseconds, IDatasetChangeChecker checker) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                // stop any current checking threads<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                if (checkingThread != null) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                        checkingThread.interrupt();<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                }<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                this.checker = checker;<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                if (checker != null) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        checker.setDataset(this);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                }<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                if (milliseconds &lt;= 0) {  <a name="line.232"></a>
+<span class="sourceLineNo">233</span>                        return;<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>                runner.millis = milliseconds;<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                checkingThread = new Thread(runner);<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                checkingThread.setDaemon(true);<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                checkingThread.setName("Checking thread with period " + milliseconds + "ms");<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                checkingThread.start();<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/LazyMaths.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/LazyMaths.html
new file mode 100644
index 0000000..ff29e47
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/LazyMaths.html
@@ -0,0 +1,359 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2017 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *    Tom Schoonjans - min and max methods<a name="line.11"></a>
+<span class="sourceLineNo">012</span> *******************************************************************************/<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>package org.eclipse.january.dataset;<a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.Arrays;<a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>import org.eclipse.january.DatasetException;<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>/**<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * Mathematics class for lazy datasets<a name="line.23"></a>
+<span class="sourceLineNo">024</span> */<a name="line.24"></a>
+<span class="sourceLineNo">025</span>public final class LazyMaths {<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>        private LazyMaths() {<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>         * Setup the logging facilities<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         */<a name="line.33"></a>
+<span class="sourceLineNo">034</span>        protected static final Logger logger = LoggerFactory.getLogger(LazyMaths.class);<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>        // TODO Uncomment this next line when minimum JDK is set to 1.8<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        // @FunctionalInterface<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        private static interface IMathOperation {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                void execute(IDataset a, IDataset b, Dataset c);<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>        private enum MathOperation implements IMathOperation {<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                // TODO use lambdas here when moving to Java 8<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                MAX(new IMathOperation() {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                        @Override<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                        public void execute(IDataset a, IDataset b, Dataset c) {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                                Maths.maximum(a, b, c);<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                        }<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                }, "maximum"),<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                MIN(new IMathOperation() {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                        @Override<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                        public void execute(IDataset a, IDataset b, Dataset c) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                                Maths.minimum(a, b, c);<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                        }<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                }, "minimum");<a name="line.55"></a>
+<span class="sourceLineNo">056</span><a name="line.56"></a>
+<span class="sourceLineNo">057</span>                private final IMathOperation operation;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                private final String operationName;<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>                private MathOperation(IMathOperation operation, String operationName) {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                        this.operation = operation;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                        this.operationName = operationName;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                }<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                <a name="line.64"></a>
+<span class="sourceLineNo">065</span>                @Override<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                public void execute(IDataset a, IDataset b, Dataset c) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        operation.execute(a, b, c);<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>                 * @return the operationName<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                 */<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                public String getOperationName() {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        return operationName;<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><a name="line.78"></a>
+<span class="sourceLineNo">079</span>        private static Dataset maxmin(final ILazyDataset data, MathOperation operation, int[] axes) throws DatasetException {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                // we will be working here with the "ignoreAxes" instead to improve performance dramatically<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                int[] ignoreAxes;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                if (axes.length == 0) {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                        ignoreAxes = axes;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                } else {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                        ignoreAxes = ShapeUtils.getRemainingAxes(data.getRank(), axes);<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>                final int[] oldShape = data.getShape();<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>                SliceND sa = new SliceND(oldShape);<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                SliceNDIterator it = new SliceNDIterator(sa, ignoreAxes);<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                Dataset result = null;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                <a name="line.93"></a>
+<span class="sourceLineNo">094</span>                while (it.hasNext()) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                        SliceND currentSlice = it.getCurrentSlice();<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                        IDataset slice = data.getSlice(currentSlice);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        if (result == null) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                                result = DatasetUtils.convertToDataset(slice);<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        } else {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                operation.execute(result, slice, result);<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>                if (result != null) {<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                        result.setName(operation.getOperationName());<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                        result.squeeze();<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                }<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                return result;<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>         * @param data<a name="line.111"></a>
+<span class="sourceLineNo">112</span>         * @param axes (can be negative). If null or empty then use all axes<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * @return maximum along axes in lazy dataset<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         * @throws DatasetException<a name="line.114"></a>
+<span class="sourceLineNo">115</span>         * @since 2.1<a name="line.115"></a>
+<span class="sourceLineNo">116</span>         */<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        public static Dataset max(final ILazyDataset data, int... axes) throws DatasetException {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                if (data instanceof Dataset) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        Dataset tmp = (Dataset) data;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                        axes = ShapeUtils.checkAxes(data.getRank(), axes);<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                        return tmp.max(axes);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                }<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                return maxmin(data, MathOperation.MAX, axes);<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>         * @param data<a name="line.127"></a>
+<span class="sourceLineNo">128</span>         * @param axes (can be negative). If null or empty then use all axes<a name="line.128"></a>
+<span class="sourceLineNo">129</span>         * @return minimum along axes in lazy dataset<a name="line.129"></a>
+<span class="sourceLineNo">130</span>         * @throws DatasetException<a name="line.130"></a>
+<span class="sourceLineNo">131</span>         * @since 2.1<a name="line.131"></a>
+<span class="sourceLineNo">132</span>         */<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        public static Dataset min(final ILazyDataset data, int... axes) throws DatasetException {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                if (data instanceof Dataset) {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                        Dataset tmp = (Dataset) data;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                        axes = ShapeUtils.checkAxes(data.getRank(), axes);<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                        return tmp.min(axes);<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                }<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                return maxmin(data, MathOperation.MIN, axes);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        }<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>        /**<a name="line.142"></a>
+<span class="sourceLineNo">143</span>         * @param data<a name="line.143"></a>
+<span class="sourceLineNo">144</span>         * @param axis (can be negative)<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * @return sum along axis in lazy dataset<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         * @throws DatasetException <a name="line.146"></a>
+<span class="sourceLineNo">147</span>         */<a name="line.147"></a>
+<span class="sourceLineNo">148</span>        public static Dataset sum(final ILazyDataset data, int axis) throws DatasetException {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                if (data instanceof Dataset) {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                        return ((Dataset) data).sum(axis);<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                }<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                int[][] sliceInfo = new int[3][];<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                int[] shape = data.getShape();<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                final Dataset result = prepareDataset(axis, shape, sliceInfo);<a name="line.154"></a>
+<span class="sourceLineNo">155</span><a name="line.155"></a>
+<span class="sourceLineNo">156</span>                final int[] start = sliceInfo[0];<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                final int[] stop = sliceInfo[1];<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                final int[] step = sliceInfo[2];<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                final int length = shape[axis];<a name="line.159"></a>
+<span class="sourceLineNo">160</span><a name="line.160"></a>
+<span class="sourceLineNo">161</span>                for (int i = 0; i &lt; length; i++) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        start[axis] = i;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                        stop[axis] = i + 1;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        result.iadd(data.getSlice(start, stop, step));<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>                result.setShape(ShapeUtils.squeezeShape(shape, axis));<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                return result;<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>        /**<a name="line.171"></a>
+<span class="sourceLineNo">172</span>         * @param data<a name="line.172"></a>
+<span class="sourceLineNo">173</span>         * @param ignoreAxes axes to ignore<a name="line.173"></a>
+<span class="sourceLineNo">174</span>         * @return sum when given axes are ignored in lazy dataset<a name="line.174"></a>
+<span class="sourceLineNo">175</span>         * @throws DatasetException <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>        public static Dataset sum(final ILazyDataset data, int... ignoreAxes) throws DatasetException {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                return sum(data, true, ignoreAxes);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>        }<a name="line.180"></a>
+<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">182</span>        /**<a name="line.182"></a>
+<span class="sourceLineNo">183</span>         * @param data<a name="line.183"></a>
+<span class="sourceLineNo">184</span>         * @param ignore if true, ignore the provided axes, otherwise use only the provided axes <a name="line.184"></a>
+<span class="sourceLineNo">185</span>         * @param axes axes to ignore or accept, depending on the preceding flag<a name="line.185"></a>
+<span class="sourceLineNo">186</span>         * @return sum<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         * @throws DatasetException <a name="line.187"></a>
+<span class="sourceLineNo">188</span>         * @since 2.0<a name="line.188"></a>
+<span class="sourceLineNo">189</span>         */<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        public static Dataset sum(final ILazyDataset data, boolean ignore, int... axes) throws DatasetException {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                ILazyDataset rv = data;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                <a name="line.192"></a>
+<span class="sourceLineNo">193</span>                if (ignore) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                        axes = ShapeUtils.getRemainingAxes(data.getRank(), axes);<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                } else {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                        axes = ShapeUtils.checkAxes(data.getRank(), axes);<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                }<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                for (int i = 0 ; i &lt; axes.length ; i++) {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        rv = sum(rv, axes[i] - i);<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>                return DatasetUtils.sliceAndConvertLazyDataset(rv);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        }<a name="line.203"></a>
+<span class="sourceLineNo">204</span><a name="line.204"></a>
+<span class="sourceLineNo">205</span>        /**<a name="line.205"></a>
+<span class="sourceLineNo">206</span>         * @param data<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * @param axis (can be negative)<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * @return product along axis in lazy dataset<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * @throws DatasetException <a name="line.209"></a>
+<span class="sourceLineNo">210</span>         */<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        public static Dataset product(final ILazyDataset data, int axis) throws DatasetException {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                int[][] sliceInfo = new int[3][];<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                int[] shape = data.getShape();<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                final Dataset result = prepareDataset(axis, shape, sliceInfo);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                result.fill(1);<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>                final int[] start = sliceInfo[0];<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                final int[] stop = sliceInfo[1];<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                final int[] step = sliceInfo[2];<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                final int length = shape[axis];<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>                for (int i = 0; i &lt; length; i++) {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                        start[axis] = i;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                        stop[axis] = i + 1;<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                        result.imultiply(data.getSlice(start, stop, step));<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                }<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>                result.setShape(ShapeUtils.squeezeShape(shape, axis));<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                return result;<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>         * @param start<a name="line.233"></a>
+<span class="sourceLineNo">234</span>         * @param stop inclusive<a name="line.234"></a>
+<span class="sourceLineNo">235</span>         * @param data<a name="line.235"></a>
+<span class="sourceLineNo">236</span>         * @param ignoreAxes<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         * @return mean when given axes are ignored in lazy dataset<a name="line.237"></a>
+<span class="sourceLineNo">238</span>         * @throws DatasetException <a name="line.238"></a>
+<span class="sourceLineNo">239</span>         */<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        public static Dataset mean(int start, int stop, ILazyDataset data, int... ignoreAxes) throws DatasetException {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                int[] shape = data.getShape();<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                PositionIterator iter = new PositionIterator(shape, ignoreAxes);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                int[] pos = iter.getPos();<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                boolean[] omit = iter.getOmit();<a name="line.244"></a>
+<span class="sourceLineNo">245</span><a name="line.245"></a>
+<span class="sourceLineNo">246</span>                int rank = shape.length;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                int[] st = new int[rank];<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                Arrays.fill(st, 1);<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                int[] end = new int[rank];<a name="line.249"></a>
+<span class="sourceLineNo">250</span><a name="line.250"></a>
+<span class="sourceLineNo">251</span>                RunningAverage av = null;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                int c = 0;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                while (iter.hasNext() &amp;&amp; c &lt; stop) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                        if (c++ &lt; start) continue;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                                end[i] = omit[i] ? shape[i] : pos[i] + 1;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                        }<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        IDataset ds = data.getSlice(pos, end, st);<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                        if (av == null) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                                av = new RunningAverage(ds);<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                        } else {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                av.update(ds);<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>                return  av != null ? av.getCurrentAverage().squeeze() : null;<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>        public static Dataset mean(ILazyDataset data, int... ignoreAxes) throws DatasetException {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                return mean(0, Integer.MAX_VALUE -1 , data, ignoreAxes);<a name="line.270"></a>
+<span class="sourceLineNo">271</span>        }<a name="line.271"></a>
+<span class="sourceLineNo">272</span><a name="line.272"></a>
+<span class="sourceLineNo">273</span>        private static Dataset prepareDataset(int axis, int[] shape, int[][] sliceInfo) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                int rank = shape.length;<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                axis = ShapeUtils.checkAxis(rank, axis);<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>                sliceInfo[0] = new int[rank];<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                sliceInfo[1] = shape.clone();<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                sliceInfo[2] = new int[rank];<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                Arrays.fill(sliceInfo[2], 1);<a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>                final int[] nshape = shape.clone();<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                nshape[axis] = 1;<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span>                return DatasetFactory.zeros(nshape);<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/LazyWriteableDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/LazyWriteableDataset.html
new file mode 100644
index 0000000..0c8734a
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/LazyWriteableDataset.html
@@ -0,0 +1,395 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.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>         * @since 2.2<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         */<a name="line.90"></a>
+<span class="sourceLineNo">091</span>        protected LazyWriteableDataset(LazyWriteableDataset other) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                super(other);<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>                chunks = other.chunks;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                saver  = other.saver;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                fillValue  = other.fillValue;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                writeAsync = other.writeAsync;<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 a lazy writeable dataset based on in-memory data (handy for testing)<a name="line.101"></a>
+<span class="sourceLineNo">102</span>         * @param dataset<a name="line.102"></a>
+<span class="sourceLineNo">103</span>         */<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        public static LazyWriteableDataset createLazyDataset(final Dataset dataset) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                return createLazyDataset(dataset, null);<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>         * Create a lazy writeable dataset based on in-memory data (handy for testing)<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         * @param dataset<a name="line.110"></a>
+<span class="sourceLineNo">111</span>         */<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        public static LazyWriteableDataset createLazyDataset(final Dataset dataset, final int[] maxShape) {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                return new LazyWriteableDataset(dataset.getName(), dataset.getDType(), dataset.getElementsPerItem(), dataset.getShapeRef(),<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                                maxShape, null,<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                new ILazySaver() {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                        private static final long serialVersionUID = ILazySaver.serialVersionUID;<a name="line.116"></a>
+<span class="sourceLineNo">117</span><a name="line.117"></a>
+<span class="sourceLineNo">118</span>                        Dataset d = dataset;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        @Override<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                        public boolean isFileReadable() {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                return true;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                        }<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        @Override<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                        public boolean isFileWriteable() {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                                return true;<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 void initialize() throws IOException {<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 Dataset getDataset(IMonitor mon, SliceND slice) throws IOException {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                                return d.getSlice(mon, slice);<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 void setSlice(IMonitor mon, IDataset data, SliceND slice) throws IOException {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                                if (slice.isExpanded()) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                                        Dataset od = d;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                                        d = DatasetFactory.zeros(od.getClass(), slice.getSourceShape());<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                                        d.setSlice(od, SliceND.createSlice(od, null, null));<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                                }<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                                d.setSlice(data, slice);<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>        @Override<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        public int hashCode() {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                final int prime = 31;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                int result = super.hashCode();<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                result = prime * result + Arrays.hashCode(chunks);<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                result = prime * result + ((fillValue == null) ? 0 : fillValue.hashCode());<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                result = prime * result + (writeAsync ? 1231 : 1237);<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                return result;<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 boolean equals(Object obj) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                if (this == obj) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                        return true;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                }<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                if (!super.equals(obj)) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        return false;<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>                LazyWriteableDataset other = (LazyWriteableDataset) obj;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                if (!Arrays.equals(chunks, other.chunks)) {<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>                if (fillValue == null) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                        if (other.fillValue != null) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                                return false;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                        }<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                } else if (!fillValue.equals(other.fillValue)) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        return false;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                }<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                if (saver == null) {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                        if (other.saver != null) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                                return false;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                        }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                } else if (!saver.equals(other.saver)) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                        return false;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                }<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                if (writeAsync != other.writeAsync) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                        return false;<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>                return true;<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 int[] getChunking() {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                return chunks;<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 void setChunking(int... chunks) {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                this.chunks = chunks == null ? null : chunks.clone();<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 LazyWriteableDataset clone() {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                return new LazyWriteableDataset(this);<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 LazyWriteableDataset getSliceView(int[] start, int[] stop, int[] step) {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                return (LazyWriteableDataset) super.getSliceView(start, stop, step);<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 LazyWriteableDataset getSliceView(Slice... slice) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                return (LazyWriteableDataset) super.getSliceView(slice);<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 LazyWriteableDataset getSliceView(SliceND slice) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                return (LazyWriteableDataset) super.getSliceView(slice);<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 LazyWriteableDataset getTransposedView(int... axes) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                return (LazyWriteableDataset) super.getTransposedView(axes);<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 void setWritingAsync(boolean async) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                writeAsync = async;<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>         * Set a slice of the dataset<a name="line.235"></a>
+<span class="sourceLineNo">236</span>         * <a name="line.236"></a>
+<span class="sourceLineNo">237</span>         * @param data<a name="line.237"></a>
+<span class="sourceLineNo">238</span>         * @param slice an n-D slice<a name="line.238"></a>
+<span class="sourceLineNo">239</span>         * @throws DatasetException <a name="line.239"></a>
+<span class="sourceLineNo">240</span>         */<a name="line.240"></a>
+<span class="sourceLineNo">241</span>        public void setSlice(IDataset data, SliceND slice) throws DatasetException {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                setSlice(null, data, slice);<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 void setSlice(IMonitor monitor, IDataset data, int[] start, int[] stop, int[] step) throws DatasetException {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                internalSetSlice(monitor, writeAsync, data, new SliceND(shape, maxShape, start, stop, step));<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 void setSlice(IMonitor monitor, IDataset data, SliceND slice) throws DatasetException {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                internalSetSlice(monitor, writeAsync, data, slice);<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 void setSliceSync(IMonitor monitor, IDataset data, SliceND slice) throws DatasetException {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                internalSetSlice(monitor, false, data, slice);<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>        private void internalSetSlice(IMonitor monitor, final boolean async, IDataset data, SliceND slice) throws DatasetException {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                int[] dshape = data instanceof Dataset ? ((Dataset) data).getShapeRef() : data.getShape();<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                if (dshape.length == 0) { // fix zero-rank case<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        dshape = new int[] {1}; // FIXME remove<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                }<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                // if necessary, reshape the input data according to the shape of the slice<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                if (!Arrays.equals(slice.getShape(), dshape)) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                        data = data.getSliceView();<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                        data.setShape(slice.getShape());<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>                SliceND nslice = calcTrueSlice(slice);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                if (nslice == null) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        return; // nothing to set<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>                data = transformInput(data, slice);<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>                if (saver == null) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                        throw new DatasetException("Cannot write to file as saver not defined!");<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>                try {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                        if (async &amp;&amp; saver instanceof ILazyAsyncSaver) {<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                                ((ILazyAsyncSaver)saver).setSliceAsync(monitor, data, nslice);<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                        } else {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                                if (!saver.isFileWriteable()) {<a name="line.286"></a>
+<span class="sourceLineNo">287</span>                                        throw new DatasetException("Cannot write to file as it is not writeable!");<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                                }<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                                saver.setSlice(monitor, data, nslice);<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                        }<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                } catch (IOException e) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        throw new DatasetException("Could not save dataset", e);<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                }<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                if (!refreshShape()) { // send event as data has changed<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                        eventDelegate.fire(new DataEvent(name, shape));<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>        /**<a name="line.299"></a>
+<span class="sourceLineNo">300</span>         * Set saver (and also loader)<a name="line.300"></a>
+<span class="sourceLineNo">301</span>         * @param saver<a name="line.301"></a>
+<span class="sourceLineNo">302</span>         */<a name="line.302"></a>
+<span class="sourceLineNo">303</span>        @Override<a name="line.303"></a>
+<span class="sourceLineNo">304</span>        public void setSaver(ILazySaver saver) {<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                this.saver = saver;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                this.loader = saver;<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 SliceND createSlice(int[] nstart, int[] nstop, int[] nstep) {<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                return SliceND.createSlice(oShape, maxShape, nstart, nstop, nstep);<a name="line.311"></a>
+<span class="sourceLineNo">312</span>        }<a name="line.312"></a>
+<span class="sourceLineNo">313</span><a name="line.313"></a>
+<span class="sourceLineNo">314</span>        @Override<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        public Object getFillValue() {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>                return fillValue;<a name="line.316"></a>
+<span class="sourceLineNo">317</span>        }<a name="line.317"></a>
+<span class="sourceLineNo">318</span><a name="line.318"></a>
+<span class="sourceLineNo">319</span>        @Override<a name="line.319"></a>
+<span class="sourceLineNo">320</span>        public void setFillValue(Object fill) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                fillValue = fill;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/LinearAlgebra.NormOrder.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/LinearAlgebra.NormOrder.html
new file mode 100644
index 0000000..cc97c9c
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/LinearAlgebra.NormOrder.html
@@ -0,0 +1,1301 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.Arrays;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.List;<a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>import org.apache.commons.math3.complex.Complex;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.commons.math3.linear.Array2DRowRealMatrix;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import org.apache.commons.math3.linear.ArrayRealVector;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.commons.math3.linear.CholeskyDecomposition;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.commons.math3.linear.ConjugateGradient;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.commons.math3.linear.EigenDecomposition;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.commons.math3.linear.LUDecomposition;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.commons.math3.linear.MatrixUtils;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.commons.math3.linear.QRDecomposition;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.commons.math3.linear.RealLinearOperator;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.commons.math3.linear.RealMatrix;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.commons.math3.linear.RealVector;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.commons.math3.linear.SingularValueDecomposition;<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>public class LinearAlgebra {<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>        private static final int CROSSOVERPOINT = 16; // point at which using slice iterators for inner loop is faster <a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>        /**<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         * Calculate the tensor dot product over given axes. This is the sum of products of elements selected<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         * from the given axes in each dataset<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * @param a<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * @param b<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @param axisa axis dimension in a to sum over (can be -ve)<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param axisb axis dimension in b to sum over (can be -ve)<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @return tensor dot product<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         */<a name="line.45"></a>
+<span class="sourceLineNo">046</span>        public static Dataset tensorDotProduct(final Dataset a, final Dataset b, final int axisa, final int axisb) {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                // this is slower for summing lengths &lt; ~15<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                final int[] ashape = a.getShapeRef();<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                final int[] bshape = b.getShapeRef();<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                final int arank = ashape.length;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                final int brank = bshape.length;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                int aaxis = ShapeUtils.checkAxis(arank, axisa);<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>                if (ashape[aaxis] &lt; CROSSOVERPOINT) { // faster to use position iteration<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                        return tensorDotProduct(a, b, new int[] {axisa}, new int[] {axisb});<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                }<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                int baxis = ShapeUtils.checkAxis(brank, axisb);<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>                final boolean[] achoice = new boolean[arank];<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                final boolean[] bchoice = new boolean[brank];<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                Arrays.fill(achoice, true);<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                Arrays.fill(bchoice, true);<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                achoice[aaxis] = false; // flag which axes not to iterate over<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                bchoice[baxis] = false;<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>                final boolean[] notachoice = new boolean[arank];<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                final boolean[] notbchoice = new boolean[brank];<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                notachoice[aaxis] = true; // flag which axes to iterate over<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                notbchoice[baxis] = true;<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>                int drank = arank + brank - 2;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                int[] dshape = new int[drank];<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                int d = 0;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                for (int i = 0; i &lt; arank; i++) {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        if (achoice[i])<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                                dshape[d++] = ashape[i];<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                }<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                for (int i = 0; i &lt; brank; i++) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        if (bchoice[i])<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                dshape[d++] = bshape[i];<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                Dataset data = DatasetFactory.zeros(InterfaceUtils.getBestInterface(a.getClass(), b.getClass()), dshape);<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>                SliceIterator ita = a.getSliceIteratorFromAxes(null, achoice);<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                int l = 0;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                final int[] apos = ita.getPos();<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                while (ita.hasNext()) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                        SliceIterator itb = b.getSliceIteratorFromAxes(null, bchoice);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                        final int[] bpos = itb.getPos();<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                        while (itb.hasNext()) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                                SliceIterator itaa = a.getSliceIteratorFromAxes(apos, notachoice);<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                                SliceIterator itba = b.getSliceIteratorFromAxes(bpos, notbchoice);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                                double sum = 0.0;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                                double com = 0.0;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                                while (itaa.hasNext() &amp;&amp; itba.hasNext()) {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                                        final double y = a.getElementDoubleAbs(itaa.index) * b.getElementDoubleAbs(itba.index) - com;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                                        final double t = sum + y;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                                        com = (t - sum) - y;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                        sum = t;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                                data.setObjectAbs(l++, sum);<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 data;<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>         * Calculate the tensor dot product over given axes. This is the sum of products of elements selected<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         * from the given axes in each dataset<a name="line.110"></a>
+<span class="sourceLineNo">111</span>         * @param a<a name="line.111"></a>
+<span class="sourceLineNo">112</span>         * @param b<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * @param axisa axis dimensions in a to sum over (can be -ve)<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         * @param axisb axis dimensions in b to sum over (can be -ve)<a name="line.114"></a>
+<span class="sourceLineNo">115</span>         * @return tensor dot product<a name="line.115"></a>
+<span class="sourceLineNo">116</span>         */<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        public static Dataset tensorDotProduct(final Dataset a, final Dataset b, final int[] axisa, final int[] axisb) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                if (axisa.length != axisb.length) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        throw new IllegalArgumentException("Numbers of summing axes must be same");<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                }<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                final int[] ashape = a.getShapeRef();<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                final int[] bshape = b.getShapeRef();<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                final int arank = ashape.length;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                final int brank = bshape.length;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                final int[] aaxes = new int[axisa.length];<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                final int[] baxes = new int[axisa.length];<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                for (int i = 0; i &lt; axisa.length; i++) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        aaxes[i] = ShapeUtils.checkAxis(arank, axisa[i]);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        int n = ShapeUtils.checkAxis(brank, axisb[i]);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        baxes[i] = n;<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        if (ashape[aaxes[i]] != bshape[n]) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                                throw new IllegalArgumentException("Summing axes do not have matching lengths");<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>                final boolean[] achoice = new boolean[arank];<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                final boolean[] bchoice = new boolean[brank];<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                Arrays.fill(achoice, true);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                Arrays.fill(bchoice, true);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                for (int i = 0; i &lt; aaxes.length; i++) { // flag which axes to iterate over<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                        achoice[aaxes[i]] = false;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                        bchoice[baxes[i]] = false;<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>                int drank = arank + brank - 2*aaxes.length;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                int[] dshape = new int[drank];<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                int d = 0;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                for (int i = 0; i &lt; arank; i++) {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                        if (achoice[i])<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                                dshape[d++] = ashape[i];<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                }<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                for (int i = 0; i &lt; brank; i++) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        if (bchoice[i])<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                                dshape[d++] = bshape[i];<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                }<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                Dataset data = DatasetFactory.zeros(InterfaceUtils.getBestInterface(a.getClass(), b.getClass()), dshape);<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>                SliceIterator ita = a.getSliceIteratorFromAxes(null, achoice);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                int l = 0;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                final int[] apos = ita.getPos();<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                while (ita.hasNext()) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                        SliceIterator itb = b.getSliceIteratorFromAxes(null, bchoice);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        final int[] bpos = itb.getPos();<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                        while (itb.hasNext()) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                                double sum = 0.0;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                                double com = 0.0;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                                apos[aaxes[aaxes.length - 1]] = -1;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                                bpos[baxes[aaxes.length - 1]] = -1;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                                while (true) { // step through summing axes<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                                        int e = aaxes.length - 1;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                                        for (; e &gt;= 0; e--) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                                                int ai = aaxes[e];<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                                                int bi = baxes[e];<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>                                                apos[ai]++;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                                                bpos[bi]++;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                                                if (apos[ai] == ashape[ai]) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                                                        apos[ai] = 0;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                                                        bpos[bi] = 0;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                                                } else<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                                                        break;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                                        }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                                        if (e == -1) break;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                                        final double y = a.getDouble(apos) * b.getDouble(bpos) - com;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                                        final double t = sum + y;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                                        com = (t - sum) - y;<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                                        sum = t;<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                                }<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                                data.setObjectAbs(l++, sum);<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><a name="line.193"></a>
+<span class="sourceLineNo">194</span>                return data;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        }<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>        /**<a name="line.197"></a>
+<span class="sourceLineNo">198</span>         * 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.198"></a>
+<span class="sourceLineNo">199</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.199"></a>
+<span class="sourceLineNo">200</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.200"></a>
+<span class="sourceLineNo">201</span>         * @param a<a name="line.201"></a>
+<span class="sourceLineNo">202</span>         * @param b<a name="line.202"></a>
+<span class="sourceLineNo">203</span>         * @return dot product<a name="line.203"></a>
+<span class="sourceLineNo">204</span>         */<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        public static Dataset dotProduct(Dataset a, Dataset b) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                if (b.getRank() &lt; 2)<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                        return tensorDotProduct(a, b, -1, 0);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                return tensorDotProduct(a, b, -1, -2);<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>        /**<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         * Calculate the outer product of two datasets<a name="line.212"></a>
+<span class="sourceLineNo">213</span>         * @param a<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         * @param b<a name="line.214"></a>
+<span class="sourceLineNo">215</span>         * @return outer product<a name="line.215"></a>
+<span class="sourceLineNo">216</span>         */<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        public static Dataset outerProduct(Dataset a, Dataset b) {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                int[] as = a.getShapeRef();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                int[] bs = b.getShapeRef();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                int rank = as.length + bs.length;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                int[] shape = new int[rank];<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                for (int i = 0; i &lt; as.length; i++) {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                        shape[i] = as[i];<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                for (int i = 0; i &lt; bs.length; i++) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                        shape[as.length + i] = bs[i];<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                }<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                int isa = a.getElementsPerItem();<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                int isb = b.getElementsPerItem();<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                if (isa != 1 || isb != 1) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                        throw new UnsupportedOperationException("Compound datasets not supported");<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                }<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                Dataset o = DatasetFactory.zeros(InterfaceUtils.getBestInterface(a.getClass(), b.getClass()), shape);<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span>                IndexIterator ita = a.getIterator();<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                IndexIterator itb = b.getIterator();<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                int j = 0;<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                while (ita.hasNext()) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                        double va = a.getElementDoubleAbs(ita.index);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        while (itb.hasNext()) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                                o.setObjectAbs(j++, va * b.getElementDoubleAbs(itb.index));<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                        }<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                        itb.reset();<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                }<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                return o;<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>         * Calculate the cross product of two datasets. Datasets must be broadcastable and<a name="line.249"></a>
+<span class="sourceLineNo">250</span>         * possess last dimensions of length 2 or 3<a name="line.250"></a>
+<span class="sourceLineNo">251</span>         * @param a<a name="line.251"></a>
+<span class="sourceLineNo">252</span>         * @param b<a name="line.252"></a>
+<span class="sourceLineNo">253</span>         * @return cross product<a name="line.253"></a>
+<span class="sourceLineNo">254</span>         */<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        public static Dataset crossProduct(Dataset a, Dataset b) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                return crossProduct(a, b, -1, -1, -1);<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>         * Calculate the cross product of two datasets. Datasets must be broadcastable and<a name="line.260"></a>
+<span class="sourceLineNo">261</span>         * possess dimensions of length 2 or 3. The axis parameters can be negative to indicate<a name="line.261"></a>
+<span class="sourceLineNo">262</span>         * dimensions from the end of their shapes<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         * @param a<a name="line.263"></a>
+<span class="sourceLineNo">264</span>         * @param b<a name="line.264"></a>
+<span class="sourceLineNo">265</span>         * @param axisA dimension to be used a vector (must have length of 2 or 3)<a name="line.265"></a>
+<span class="sourceLineNo">266</span>         * @param axisB dimension to be used a vector (must have length of 2 or 3)<a name="line.266"></a>
+<span class="sourceLineNo">267</span>         * @param axisC dimension to assign as cross-product<a name="line.267"></a>
+<span class="sourceLineNo">268</span>         * @return cross product<a name="line.268"></a>
+<span class="sourceLineNo">269</span>         */<a name="line.269"></a>
+<span class="sourceLineNo">270</span>        public static Dataset crossProduct(Dataset a, Dataset b, int axisA, int axisB, int axisC) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                final int rankA = a.getRank();<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                final int rankB = b.getRank();<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                if (rankA == 0 || rankB == 0) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                        throw new IllegalArgumentException("Datasets must have one or more dimensions");<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                }<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                axisA = a.checkAxis(axisA);<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                axisB = b.checkAxis(axisB);<a name="line.277"></a>
+<span class="sourceLineNo">278</span><a name="line.278"></a>
+<span class="sourceLineNo">279</span>                int la = a.getShapeRef()[axisA];<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                int lb = b.getShapeRef()[axisB];<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                if (Math.min(la,  lb) &lt; 2 || Math.max(la, lb) &gt; 3) {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                        throw new IllegalArgumentException("Chosen dimension of A &amp; B must be 2 or 3");<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>                if (Math.max(la,  lb) == 2) {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                        return crossProduct2D(a, b, axisA, axisB);<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 crossProduct3D(a, b, axisA, axisB, axisC);<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>        private static int[] removeAxisFromShape(int[] shape, int axis) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                int[] s = new int[shape.length - 1];<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                int i = 0;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                int j = 0;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                while (i &lt; axis) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                        s[j++] = shape[i++];<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                }<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                i++;<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                while (i &lt; shape.length) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                        s[j++] = shape[i++];<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                }<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                return s;<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>        // assume axes is in increasing order<a name="line.306"></a>
+<span class="sourceLineNo">307</span>        private static int[] removeAxesFromShape(int[] shape, int... axes) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                int n = axes.length;<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                int[] s = new int[shape.length - n];<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                int i = 0;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                int j = 0;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                for (int k = 0; k &lt; n; k++) {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                        int a = axes[k];<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                        while (i &lt; a) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                                s[j++] = shape[i++];<a name="line.315"></a>
+<span class="sourceLineNo">316</span>                        }<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                        i++;<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                }<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                while (i &lt; shape.length) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                        s[j++] = shape[i++];<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                }<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                return s;<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>        private static int[] addAxisToShape(int[] shape, int axis, int length) {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                int[] s = new int[shape.length + 1];<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                int i = 0;<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                int j = 0;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                while (i &lt; axis) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                        s[j++] = shape[i++];<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                }<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                s[j++] = length;<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                while (i &lt; shape.length) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                        s[j++] = shape[i++];<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                }<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                return s;<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>        private static Dataset crossProduct2D(Dataset a, Dataset b, int axisA, int axisB) {<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                // need to broadcast and omit given axes<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                int[] shapeA = removeAxisFromShape(a.getShapeRef(), axisA);<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                int[] shapeB = removeAxisFromShape(b.getShapeRef(), axisB);<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>                List&lt;int[]&gt; fullShapes = BroadcastUtils.broadcastShapes(shapeA, shapeB);<a name="line.344"></a>
+<span class="sourceLineNo">345</span><a name="line.345"></a>
+<span class="sourceLineNo">346</span>                int[] maxShape = fullShapes.get(0);<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                Dataset c = DatasetFactory.zeros(InterfaceUtils.getBestInterface(a.getClass(), b.getClass()), maxShape);<a name="line.347"></a>
+<span class="sourceLineNo">348</span><a name="line.348"></a>
+<span class="sourceLineNo">349</span>                PositionIterator ita = a.getPositionIterator(axisA);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                PositionIterator itb = b.getPositionIterator(axisB);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                IndexIterator itc = c.getIterator();<a name="line.351"></a>
+<span class="sourceLineNo">352</span><a name="line.352"></a>
+<span class="sourceLineNo">353</span>                final int[] pa = ita.getPos();<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                final int[] pb = itb.getPos();<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                while (itc.hasNext()) {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                        if (!ita.hasNext()) // TODO use broadcasting...<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                                ita.reset();<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                        if (!itb.hasNext())<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                                itb.reset();<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                        pa[axisA] = 0;<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                        pb[axisB] = 1;<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                        double cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                        pa[axisA] = 1;<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        pb[axisB] = 0;<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                        cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>                        c.setObjectAbs(itc.index, cv);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                }<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                return c;<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>        private static Dataset crossProduct3D(Dataset a, Dataset b, int axisA, int axisB, int axisC) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                int[] shapeA = removeAxisFromShape(a.getShapeRef(), axisA);<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                int[] shapeB = removeAxisFromShape(b.getShapeRef(), axisB);<a name="line.374"></a>
+<span class="sourceLineNo">375</span><a name="line.375"></a>
+<span class="sourceLineNo">376</span>                List&lt;int[]&gt; fullShapes = BroadcastUtils.broadcastShapes(shapeA, shapeB);<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>                int[] maxShape = fullShapes.get(0);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                int rankC = maxShape.length + 1;<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                axisC = ShapeUtils.checkAxis(rankC, axisC);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                maxShape = addAxisToShape(maxShape, axisC, 3);<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                Dataset c = DatasetFactory.zeros(InterfaceUtils.getBestInterface(a.getClass(), b.getClass()), maxShape);<a name="line.382"></a>
+<span class="sourceLineNo">383</span><a name="line.383"></a>
+<span class="sourceLineNo">384</span>                PositionIterator ita = a.getPositionIterator(axisA);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                PositionIterator itb = b.getPositionIterator(axisB);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                PositionIterator itc = c.getPositionIterator(axisC);<a name="line.386"></a>
+<span class="sourceLineNo">387</span><a name="line.387"></a>
+<span class="sourceLineNo">388</span>                final int[] pa = ita.getPos();<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                final int[] pb = itb.getPos();<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                final int[] pc = itc.getPos();<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                final int la = a.getShapeRef()[axisA];<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                final int lb = b.getShapeRef()[axisB];<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>                if (la == 2) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                        while (itc.hasNext()) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                                if (!ita.hasNext()) // TODO use broadcasting...<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                                        ita.reset();<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                                if (!itb.hasNext())<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                                        itb.reset();<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                                double cv;<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                                pa[axisA] = 1;<a name="line.401"></a>
+<span class="sourceLineNo">402</span>                                pb[axisB] = 2;<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                                pc[axisC] = 0;<a name="line.404"></a>
+<span class="sourceLineNo">405</span>                                c.set(cv, pc);<a name="line.405"></a>
+<span class="sourceLineNo">406</span><a name="line.406"></a>
+<span class="sourceLineNo">407</span>                                pa[axisA] = 0;<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                                pb[axisB] = 2;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                                cv = -a.getDouble(pa) * b.getDouble(pb);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                                pc[axisC] = 1;<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                                c.set(cv, pc);<a name="line.411"></a>
+<span class="sourceLineNo">412</span><a name="line.412"></a>
+<span class="sourceLineNo">413</span>                                pa[axisA] = 0;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                                pb[axisB] = 1;<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                                pa[axisA] = 1;<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                                pb[axisB] = 0;<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                                cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                                pc[axisC] = 2;<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                                c.set(cv, pc);<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                        }<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                } else if (lb == 2) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                        while (itc.hasNext()) {<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                                if (!ita.hasNext()) // TODO use broadcasting...<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                                        ita.reset();<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                                if (!itb.hasNext())<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                                        itb.reset();<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                                double cv;<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                                pa[axisA] = 2;<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                                pb[axisB] = 1;<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                                cv = -a.getDouble(pa) * b.getDouble(pb);<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                                pc[axisC] = 0;<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                                c.set(cv, pc);<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span>                                pa[axisA] = 2;<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                                pb[axisB] = 0;<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                                pc[axisC] = 1;<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                                c.set(cv, pc);<a name="line.439"></a>
+<span class="sourceLineNo">440</span><a name="line.440"></a>
+<span class="sourceLineNo">441</span>                                pa[axisA] = 0;<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                                pb[axisB] = 1;<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                                pa[axisA] = 1;<a name="line.444"></a>
+<span class="sourceLineNo">445</span>                                pb[axisB] = 0;<a name="line.445"></a>
+<span class="sourceLineNo">446</span>                                cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                                pc[axisC] = 2;<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                                c.set(cv, pc);<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                        }<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                        <a name="line.450"></a>
+<span class="sourceLineNo">451</span>                } else {<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                        while (itc.hasNext()) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                                if (!ita.hasNext()) // TODO use broadcasting...<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                                        ita.reset();<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                                if (!itb.hasNext())<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                                        itb.reset();<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                                double cv;<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                                pa[axisA] = 1;<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                                pb[axisB] = 2;<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                                pa[axisA] = 2;<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                                pb[axisB] = 1;<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                                cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                                pc[axisC] = 0;<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                                c.set(cv, pc);<a name="line.465"></a>
+<span class="sourceLineNo">466</span><a name="line.466"></a>
+<span class="sourceLineNo">467</span>                                pa[axisA] = 2;<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                                pb[axisB] = 0;<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                                pa[axisA] = 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>                }<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                return c;<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>        /**<a name="line.489"></a>
+<span class="sourceLineNo">490</span>         * Raise dataset to given power by matrix multiplication<a name="line.490"></a>
+<span class="sourceLineNo">491</span>         * @param a<a name="line.491"></a>
+<span class="sourceLineNo">492</span>         * @param n power<a name="line.492"></a>
+<span class="sourceLineNo">493</span>         * @return {@code a ** n}<a name="line.493"></a>
+<span class="sourceLineNo">494</span>         */<a name="line.494"></a>
+<span class="sourceLineNo">495</span>        public static Dataset power(Dataset a, int n) {<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                if (n &lt; 0) {<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                        LUDecomposition lud = new LUDecomposition(createRealMatrix(a));<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                        return createDataset(lud.getSolver().getInverse().power(-n));<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                }<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                Dataset p = createDataset(createRealMatrix(a).power(n));<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                if (!a.hasFloatingPointElements()) {<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                        return p.cast(a.getClass());<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                }<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                return p;<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 the Kronecker product as defined by <a name="line.508"></a>
+<span class="sourceLineNo">509</span>         * {@code kron[k0,...,kN] = a[i0,...,iN] * b[j0,...,jN]}<a name="line.509"></a>
+<span class="sourceLineNo">510</span>         * where {@code kn = sn * in + jn} for {@code n = 0...N} and {@code s} is shape of {@code b}<a name="line.510"></a>
+<span class="sourceLineNo">511</span>         * @param a<a name="line.511"></a>
+<span class="sourceLineNo">512</span>         * @param b<a name="line.512"></a>
+<span class="sourceLineNo">513</span>         * @return Kronecker product of a and b<a name="line.513"></a>
+<span class="sourceLineNo">514</span>         */<a name="line.514"></a>
+<span class="sourceLineNo">515</span>        public static Dataset kroneckerProduct(Dataset a, Dataset b) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                if (a.getElementsPerItem() != 1 || b.getElementsPerItem() != 1) {<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                        throw new UnsupportedOperationException("Compound datasets (including complex ones) are not currently supported");<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                }<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                int ar = a.getRank();<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                int br = b.getRank();<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                int[] aShape;<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                int[] bShape;<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                aShape = a.getShapeRef();<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                bShape = b.getShapeRef();<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                int r = ar;<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                // pre-pad if ranks are not same<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                if (ar &lt; br) {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                        r = br;<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                        int[] shape = new int[br];<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                        int j = 0;<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                        for (int i = ar; i &lt; br; i++) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                                shape[j++] = 1;<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                        }<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                        int i = 0;<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                        while (j &lt; br) {<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                                shape[j++] = aShape[i++];<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                        }<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                        a = a.reshape(shape);<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                        aShape = shape;<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                } else if (ar &gt; br) {<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                        int[] shape = new int[ar];<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                        int j = 0;<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                        for (int i = br; i &lt; ar; i++) {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                                shape[j++] = 1;<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                        }<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                        int i = 0;<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                        while (j &lt; ar) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                                shape[j++] = bShape[i++];<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                        }<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        b = b.reshape(shape);<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                        bShape = shape;<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>                int[] nShape = new int[r];<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                for (int i = 0; i &lt; r; i++) {<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                        nShape[i] = aShape[i] * bShape[i];<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                }<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                Dataset kron = DatasetFactory.zeros(InterfaceUtils.getBestInterface(a.getClass(), b.getClass()), nShape);<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                IndexIterator ita = a.getIterator(true);<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                IndexIterator itb = b.getIterator(true);<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                int[] pa = ita.getPos();<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                int[] pb = itb.getPos();<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                int[] off = new int[1];<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                int[] stride = AbstractDataset.createStrides(1, nShape, null, 0, off);<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                if (kron instanceof LongDataset) {<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                        while (ita.hasNext()) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                                long av = a.getElementLongAbs(ita.index);<a name="line.567"></a>
+<span class="sourceLineNo">568</span><a name="line.568"></a>
+<span class="sourceLineNo">569</span>                                int ka = 0; <a name="line.569"></a>
+<span class="sourceLineNo">570</span>                                for (int i = 0; i &lt; r; i++) {<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                                        ka += stride[i] * bShape[i] * pa[i];<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                                }<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                                itb.reset();<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                                while (itb.hasNext()) {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                                        long bv = b.getElementLongAbs(itb.index);<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                                        int kb = ka;<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                                        for (int i = 0; i &lt; r; i++) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                                                kb += stride[i] * pb[i];<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                                        }<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                                        kron.setObjectAbs(kb, av * bv);<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 (ita.hasNext()) {<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                                double av = a.getElementDoubleAbs(ita.index);<a name="line.585"></a>
+<span class="sourceLineNo">586</span><a name="line.586"></a>
+<span class="sourceLineNo">587</span>                                int ka = 0; <a name="line.587"></a>
+<span class="sourceLineNo">588</span>                                for (int i = 0; i &lt; r; i++) {<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                                        ka += stride[i] * bShape[i] * pa[i];<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                                }<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                                itb.reset();<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                                while (itb.hasNext()) {<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                                        double bv = b.getElementLongAbs(itb.index);<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                                        int kb = ka;<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                                        for (int i = 0; i &lt; r; i++) {<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                                                kb += stride[i] * pb[i];<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                                        }<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                                        kron.setObjectAbs(kb, av * bv);<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><a name="line.602"></a>
+<span class="sourceLineNo">603</span>                return kron;<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>         * Calculate trace of dataset - sum of values over 1st axis and 2nd axis<a name="line.607"></a>
+<span class="sourceLineNo">608</span>         * @param a<a name="line.608"></a>
+<span class="sourceLineNo">609</span>         * @return trace of dataset<a name="line.609"></a>
+<span class="sourceLineNo">610</span>         */<a name="line.610"></a>
+<span class="sourceLineNo">611</span>        public static Dataset trace(Dataset a) {<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                return trace(a, 0, 0, 1);<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        }<a name="line.613"></a>
+<span class="sourceLineNo">614</span><a name="line.614"></a>
+<span class="sourceLineNo">615</span>        /**<a name="line.615"></a>
+<span class="sourceLineNo">616</span>         * Calculate trace of dataset - sum of values over axis1 and axis2 where axis2 is offset<a name="line.616"></a>
+<span class="sourceLineNo">617</span>         * @param a<a name="line.617"></a>
+<span class="sourceLineNo">618</span>         * @param offset<a name="line.618"></a>
+<span class="sourceLineNo">619</span>         * @param axis1<a name="line.619"></a>
+<span class="sourceLineNo">620</span>         * @param axis2<a name="line.620"></a>
+<span class="sourceLineNo">621</span>         * @return trace of dataset<a name="line.621"></a>
+<span class="sourceLineNo">622</span>         */<a name="line.622"></a>
+<span class="sourceLineNo">623</span>        public static Dataset trace(Dataset a, int offset, int axis1, int axis2) {<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                int[] shape = a.getShapeRef();<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                int[] axes = new int[] { a.checkAxis(axis1), a.checkAxis(axis2) };<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                Arrays.sort(axes);<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                int is = a.getElementsPerItem();<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                Dataset trace = DatasetFactory.zeros(is, a.getClass(), removeAxesFromShape(shape, axes));<a name="line.628"></a>
+<span class="sourceLineNo">629</span><a name="line.629"></a>
+<span class="sourceLineNo">630</span>                int am = axes[0];<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                int mmax = shape[am];<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                int an = axes[1];<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                int nmax = shape[an];<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                PositionIterator it = new PositionIterator(shape, axes);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                int[] pos = it.getPos();<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                int i = 0;<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                int mmin;<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                int nmin;<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                if (offset &gt;= 0) {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        mmin = 0;<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                        nmin = offset;<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                } else {<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                        mmin = -offset;<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                        nmin = 0;<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                }<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                if (is == 1) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                        if (a instanceof LongDataset) {<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                                while (it.hasNext()) {<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                                        int m = mmin;<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                                        int n = nmin;<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                                        long s = 0;<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                                        while (m &lt; mmax &amp;&amp; n &lt; nmax) {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                                                pos[am] = m++;<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                                                pos[an] = n++;<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                                                s += a.getLong(pos);<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                                        }<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                                        trace.setObjectAbs(i++, s);<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                                }<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                        } else {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                                while (it.hasNext()) {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                                        int m = mmin;<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                        int n = nmin;<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                                        double s = 0;<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                                        while (m &lt; mmax &amp;&amp; n &lt; nmax) {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                                                pos[am] = m++;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                                                pos[an] = n++;<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                                                s += a.getDouble(pos);<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                                        }<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                                        trace.setObjectAbs(i++, s);<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>                } else {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                        AbstractCompoundDataset ca = (AbstractCompoundDataset) a;<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                        if (ca instanceof CompoundLongDataset) {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                                long[] t = new long[is];<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                                long[] s = new long[is];<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                                while (it.hasNext()) {<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                                        int m = mmin;<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                                        int n = nmin;<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                                        Arrays.fill(s, 0);<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                                        while (m &lt; mmax &amp;&amp; n &lt; nmax) {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                                                pos[am] = m++;<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                                                pos[an] = n++;<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                                                ((CompoundLongDataset)ca).getAbs(ca.get1DIndex(pos), t);<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                                                        s[k] += t[k];<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>                                        trace.setObjectAbs(i++, s);<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>                                double[] t = new double[is];<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                                double[] s = new double[is];<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                                while (it.hasNext()) {<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                                        int m = mmin;<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                                        int n = nmin;<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                                        Arrays.fill(s, 0);<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                                        while (m &lt; mmax &amp;&amp; n &lt; nmax) {<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                                                pos[am] = m++;<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                                                pos[an] = n++;<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                                                ca.getDoubleArray(t, pos);<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                                                        s[k] += t[k];<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>                                        trace.setObjectAbs(i++, s);<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>                }<a name="line.709"></a>
+<span class="sourceLineNo">710</span><a name="line.710"></a>
+<span class="sourceLineNo">711</span>                return trace;<a name="line.711"></a>
+<span class="sourceLineNo">712</span>        }<a name="line.712"></a>
+<span class="sourceLineNo">713</span><a name="line.713"></a>
+<span class="sourceLineNo">714</span>        /**<a name="line.714"></a>
+<span class="sourceLineNo">715</span>         * Order value for norm<a name="line.715"></a>
+<span class="sourceLineNo">716</span>         */<a name="line.716"></a>
+<span class="sourceLineNo">717</span>        public enum NormOrder {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                /**<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                 * 2-norm for vectors and Frobenius for matrices<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                 */<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                DEFAULT,<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                /**<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                 * Frobenius (not allowed for vectors)<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                 */<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                FROBENIUS,<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                /**<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                 * Zero-order (not allowed for matrices)<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                 */<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                ZERO,<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                /**<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                 * Positive infinity<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                 */<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                POS_INFINITY,<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                /**<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                 * Negative infinity<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                 */<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                NEG_INFINITY;<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<a name="line.741"></a>
+<span class="sourceLineNo">742</span>         * @return norm of dataset<a name="line.742"></a>
+<span class="sourceLineNo">743</span>         */<a name="line.743"></a>
+<span class="sourceLineNo">744</span>        public static double norm(Dataset a) {<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                return norm(a, NormOrder.DEFAULT);<a name="line.745"></a>
+<span class="sourceLineNo">746</span>        }<a name="line.746"></a>
+<span class="sourceLineNo">747</span><a name="line.747"></a>
+<span class="sourceLineNo">748</span>        /**<a name="line.748"></a>
+<span class="sourceLineNo">749</span>         * @param a<a name="line.749"></a>
+<span class="sourceLineNo">750</span>         * @param order<a name="line.750"></a>
+<span class="sourceLineNo">751</span>         * @return norm of dataset<a name="line.751"></a>
+<span class="sourceLineNo">752</span>         */<a name="line.752"></a>
+<span class="sourceLineNo">753</span>        public static double norm(Dataset a, NormOrder order) {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                int r = a.getRank();<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                if (r == 1) {<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        return vectorNorm(a, order);<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                } else if (r == 2) {<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                        return matrixNorm(a, order);<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                }<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                throw new IllegalArgumentException("Rank of dataset must be one or two");<a name="line.760"></a>
+<span class="sourceLineNo">761</span>        }<a name="line.761"></a>
+<span class="sourceLineNo">762</span><a name="line.762"></a>
+<span class="sourceLineNo">763</span>        private static double vectorNorm(Dataset a, NormOrder order) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                double n;<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                IndexIterator it;<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                switch (order) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                case FROBENIUS:<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                        throw new IllegalArgumentException("Not allowed for vectors");<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                case NEG_INFINITY:<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                case POS_INFINITY:<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                        it = a.getIterator();<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                        if (order == NormOrder.POS_INFINITY) {<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                                n = Double.NEGATIVE_INFINITY;<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                                if (a.isComplex()) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                                        while (it.hasNext()) {<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                                                double v = ((Complex) a.getObjectAbs(it.index)).abs();<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                                                n = Math.max(n, v);<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                                        }<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                                } else {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                                        while (it.hasNext()) {<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                                                double v = Math.abs(a.getElementDoubleAbs(it.index));<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                                                n = Math.max(n, v);<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>                                n = Double.POSITIVE_INFINITY;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                if (a.isComplex()) {<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                                        while (it.hasNext()) {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                                double v = ((Complex) a.getObjectAbs(it.index)).abs();<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                                n = Math.min(n, v);<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                                        }<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                                } else {<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                                        while (it.hasNext()) {<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                                                double v = Math.abs(a.getElementDoubleAbs(it.index));<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                                                n = Math.min(n, v);<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                                        }<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                                }<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                        }<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                        break;<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                case ZERO:<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                        it = a.getIterator();<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        n = 0;<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                        if (a.isComplex()) {<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                                while (it.hasNext()) {<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                                        if (!((Complex) a.getObjectAbs(it.index)).equals(Complex.ZERO))<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                                                n++;<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                                }<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                        } else {<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                                while (it.hasNext()) {<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                                        if (a.getElementBooleanAbs(it.index))<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                                                n++;<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>                        <a name="line.814"></a>
+<span class="sourceLineNo">815</span>                        break;<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                default:<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                        n = vectorNorm(a, 2);<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                        break;<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                }<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                return n;<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>        private static double matrixNorm(Dataset a, NormOrder order) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                double n;<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                IndexIterator it;<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                switch (order) {<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                case NEG_INFINITY:<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                case POS_INFINITY:<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        n = maxMinMatrixNorm(a, 1, order == NormOrder.POS_INFINITY);<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                        break;<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                case ZERO:<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                        throw new IllegalArgumentException("Not allowed for matrices");<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                default:<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                case FROBENIUS:<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        it = a.getIterator();<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                        n = 0;<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                        if (a.isComplex()) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                while (it.hasNext()) {<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                        double v = ((Complex) a.getObjectAbs(it.index)).abs();<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                        n += v*v;<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        } else {<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                                while (it.hasNext()) {<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                                        double v = a.getElementDoubleAbs(it.index);<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                                        n += v*v;<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>                        n = Math.sqrt(n);<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                        break;<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                }<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                return n;<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>         * @param a<a name="line.855"></a>
+<span class="sourceLineNo">856</span>         * @param p<a name="line.856"></a>
+<span class="sourceLineNo">857</span>         * @return p-norm of dataset<a name="line.857"></a>
+<span class="sourceLineNo">858</span>         */<a name="line.858"></a>
+<span class="sourceLineNo">859</span>        public static double norm(Dataset a, final double p) {<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                if (p == 0) {<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        return norm(a, NormOrder.ZERO);<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                }<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                int r = a.getRank();<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                if (r == 1) {<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                        return vectorNorm(a, p);<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                } else if (r == 2) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                        return matrixNorm(a, p);<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                }<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                throw new IllegalArgumentException("Rank of dataset must be one or two");<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>        private static double vectorNorm(Dataset a, final double p) {<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                IndexIterator it = a.getIterator();<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                double n = 0;<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                if (a.isComplex()) {<a name="line.875"></a>
+<span class="sourceLineNo">876</span>                        while (it.hasNext()) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                                double v = ((Complex) a.getObjectAbs(it.index)).abs();<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                if (p == 2) {<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                        v *= v;<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                                } else if (p != 1) {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                                        v = Math.pow(v, p);<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                }<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                n += v;<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                        }<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                } else {<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                        while (it.hasNext()) {<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                                double v = a.getElementDoubleAbs(it.index);<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                                if (p == 1) {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                                        v = Math.abs(v);<a name="line.889"></a>
+<span class="sourceLineNo">890</span>                                } else if (p == 2) {<a name="line.890"></a>
+<span class="sourceLineNo">891</span>                                        v *= v;<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                } else {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                        v = Math.pow(Math.abs(v), p);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                }<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                                n += v;<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                        }<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                }<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                return Math.pow(n, 1./p);<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>        private static double matrixNorm(Dataset a, final double p) {<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                double n;<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                if (Math.abs(p) == 1) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        n = maxMinMatrixNorm(a, 0, p &gt; 0);<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                } else if (Math.abs(p) == 2) {<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        double[] s = calcSingularValues(a);<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                        n = p &gt; 0 ? s[0] : s[s.length - 1];<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                } else {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                        throw new IllegalArgumentException("Order not allowed");<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>                return n;<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>        private static double maxMinMatrixNorm(Dataset a, int d, boolean max) {<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                double n;<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                IndexIterator it;<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                int[] pos;<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                int l;<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                it = a.getPositionIterator(d);<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                pos = it.getPos();<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                l = a.getShapeRef()[d];<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                if (max) {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                        n = Double.NEGATIVE_INFINITY;<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                        if (a.isComplex()) {<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                while (it.hasNext()) {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                                        double v = ((Complex) a.getObject(pos)).abs();<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                                        for (int i = 1; i &lt; l; i++) {<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                                                pos[d] = i;<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                                v += ((Complex) a.getObject(pos)).abs();<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                        }<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                        pos[d] = 0;<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                        n = Math.max(n, v);<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                        } else {<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                                while (it.hasNext()) {<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                                        double v = Math.abs(a.getDouble(pos));<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                                        for (int i = 1; i &lt; l; i++) {<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                                                pos[d] = i;<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                                                v += Math.abs(a.getDouble(pos));<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                                        }<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                        pos[d] = 0;<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                        n = Math.max(n, v);<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                }<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                        }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                } else {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                        n = Double.POSITIVE_INFINITY;<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                        if (a.isComplex()) {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                while (it.hasNext()) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                        double v = ((Complex) a.getObject(pos)).abs();<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                        for (int i = 1; i &lt; l; i++) {<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                                pos[d] = i;<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                                v += ((Complex) a.getObject(pos)).abs();<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                        }<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                        pos[d] = 0;<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                        n = Math.min(n, v);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                                }<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                        } else {<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                                while (it.hasNext()) {<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                                        double v = Math.abs(a.getDouble(pos));<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                                        for (int i = 1; i &lt; l; i++) {<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                                                pos[d] = i;<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                                                v += Math.abs(a.getDouble(pos));<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                                        }<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                        pos[d] = 0;<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                                        n = Math.min(n, v);<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                }<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                        }<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                }<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                return n;<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>        /**<a name="line.973"></a>
+<span class="sourceLineNo">974</span>         * @param a<a name="line.974"></a>
+<span class="sourceLineNo">975</span>         * @return array of singular values<a name="line.975"></a>
+<span class="sourceLineNo">976</span>         */<a name="line.976"></a>
+<span class="sourceLineNo">977</span>        public static double[] calcSingularValues(Dataset a) {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                return svd.getSingularValues();<a name="line.979"></a>
+<span class="sourceLineNo">980</span>        }<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span><a name="line.982"></a>
+<span class="sourceLineNo">983</span>        /**<a name="line.983"></a>
+<span class="sourceLineNo">984</span>         * Calculate singular value decomposition {@code A = U S V^T}<a name="line.984"></a>
+<span class="sourceLineNo">985</span>         * @param a<a name="line.985"></a>
+<span class="sourceLineNo">986</span>         * @return array of U - orthogonal matrix, s - singular values vector, V - orthogonal matrix<a name="line.986"></a>
+<span class="sourceLineNo">987</span>         */<a name="line.987"></a>
+<span class="sourceLineNo">988</span>        public static Dataset[] calcSingularValueDecomposition(Dataset a) {<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                return new Dataset[] {createDataset(svd.getU()), DatasetFactory.createFromObject(svd.getSingularValues()),<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                createDataset(svd.getV())};<a name="line.991"></a>
+<span class="sourceLineNo">992</span>        }<a name="line.992"></a>
+<span class="sourceLineNo">993</span><a name="line.993"></a>
+<span class="sourceLineNo">994</span>        /**<a name="line.994"></a>
+<span class="sourceLineNo">995</span>         * Calculate (Moore-Penrose) pseudo-inverse<a name="line.995"></a>
+<span class="sourceLineNo">996</span>         * @param a<a name="line.996"></a>
+<span class="sourceLineNo">997</span>         * @return pseudo-inverse<a name="line.997"></a>
+<span class="sourceLineNo">998</span>         */<a name="line.998"></a>
+<span class="sourceLineNo">999</span>        public static Dataset calcPseudoInverse(Dataset a) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                return createDataset(svd.getSolver().getInverse());<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>        }<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span><a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>        /**<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>         * Calculate matrix rank by singular value decomposition method<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>         * @param a<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>         * @return effective numerical rank of matrix<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>         */<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>        public static int calcMatrixRank(Dataset a) {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                return svd.getRank();<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>        }<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span><a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>        /**<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>         * Calculate condition number of matrix by singular value decomposition method<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>         * @param a<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>         * @return condition number<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>         */<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        public static double calcConditionNumber(Dataset a) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                return svd.getConditionNumber();<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>        }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span><a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>        /**<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>         * @param a<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>         * @return determinant of dataset<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>         */<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>        public static double calcDeterminant(Dataset a) {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                EigenDecomposition evd = new EigenDecomposition(createRealMatrix(a));<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                return evd.getDeterminant();<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        }<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span><a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>        /**<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>         * @param a<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>         * @return dataset of eigenvalues (can be double or complex double)<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>         */<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>        public static Dataset calcEigenvalues(Dataset a) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                EigenDecomposition evd = new EigenDecomposition(createRealMatrix(a));<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                double[] rev = evd.getRealEigenvalues();<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span><a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                if (evd.hasComplexEigenvalues()) {<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        double[] iev = evd.getImagEigenvalues();<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                        return DatasetFactory.createComplexDataset(ComplexDoubleDataset.class, rev, iev);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                }<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                return DatasetFactory.createFromObject(rev);<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>         * Calculate eigen-decomposition {@code A = V D V^T}<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>         * @param a<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>         * @return array of D eigenvalues (can be double or complex double) and V eigenvectors<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>         */<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>        public static Dataset[] calcEigenDecomposition(Dataset a) {<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                EigenDecomposition evd = new EigenDecomposition(createRealMatrix(a));<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                Dataset[] results = new Dataset[2];<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span><a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                double[] rev = evd.getRealEigenvalues();<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                if (evd.hasComplexEigenvalues()) {<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                        double[] iev = evd.getImagEigenvalues();<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                        results[0] = DatasetFactory.createComplexDataset(ComplexDoubleDataset.class, rev, iev);<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                } else {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                        results[0] = DatasetFactory.createFromObject(rev);<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                }<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                results[1] = createDataset(evd.getV());<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                return results;<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 QR decomposition {@code A = Q R}<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>         * @param a<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>         * @return array of Q and R<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>         */<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>        public static Dataset[] calcQRDecomposition(Dataset a) {<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                QRDecomposition qrd = new QRDecomposition(createRealMatrix(a));<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                return new Dataset[] {createDataset(qrd.getQT()).getTransposedView(), createDataset(qrd.getR())};<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 LU decomposition {@code A = P^-1 L U}<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>         * @param a<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>         * @return array of L, U and P<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>         */<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>        public static Dataset[] calcLUDecomposition(Dataset a) {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                LUDecomposition lud = new LUDecomposition(createRealMatrix(a));<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                return new Dataset[] {createDataset(lud.getL()), createDataset(lud.getU()),<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                createDataset(lud.getP())};<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>        /**<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>         * Calculate inverse of square dataset<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>         * @param a<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>         * @return inverse<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>         */<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>        public static Dataset calcInverse(Dataset a) {<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                LUDecomposition lud = new LUDecomposition(createRealMatrix(a));<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                return createDataset(lud.getSolver().getInverse());<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>         * Solve linear matrix equation {@code A x = v}<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>         * @param a<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>         * @param v<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>         * @return x<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>         */<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>        public static Dataset solve(Dataset a, Dataset v) {<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                LUDecomposition lud = new LUDecomposition(createRealMatrix(a));<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                if (v.getRank() == 1) {<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                        RealVector x = createRealVector(v);<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        return createDataset(lud.getSolver().solve(x));<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                }<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                RealMatrix x = createRealMatrix(v);<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                return createDataset(lud.getSolver().solve(x));<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>        <a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>        /**<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>         * Solve least squares matrix equation {@code A x = v} by SVD<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>         * @param a<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>         * @param v<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>         * @return x<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>         */<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>        public static Dataset solveSVD(Dataset a, Dataset v) {<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                if (v.getRank() == 1) {<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                        RealVector x = createRealVector(v);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                        return createDataset(svd.getSolver().solve(x));<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                }<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                RealMatrix x = createRealMatrix(v);<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                return createDataset(svd.getSolver().solve(x));<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 Cholesky decomposition {@code A = L L^T}<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>         * @param a<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>         * @return L<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>         */<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>        public static Dataset calcCholeskyDecomposition(Dataset a) {<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                CholeskyDecomposition cd = new CholeskyDecomposition(createRealMatrix(a));<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                return createDataset(cd.getL());<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>         * Calculation {@code A x = v} by conjugate gradient method with the stopping criterion being<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>         * that the estimated residual {@code r = v - A x} satisfies {@code ||r|| &lt; ||v||} with maximum of 100 iterations<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>         * @param a<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>         * @param v<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>         * @return value of {@code A^-1 v} by conjugate gradient method<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>         */<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>        public static Dataset calcConjugateGradient(Dataset a, Dataset v) {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                return calcConjugateGradient(a, v, 100, 1);<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>         * Calculation {@code A x = v} by conjugate gradient method with the stopping criterion being<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>         * that the estimated residual {@code r = v - A x} satisfies {@code ||r|| &lt; delta ||v||}<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>         * @param a<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>         * @param v<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>         * @param maxIterations<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>         * @param delta parameter used by stopping criterion<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>         * @return value of {@code A^-1 v} by conjugate gradient method<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>         */<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>        public static Dataset calcConjugateGradient(Dataset a, Dataset v, int maxIterations, double delta) {<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                ConjugateGradient cg = new ConjugateGradient(maxIterations, delta, false);<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                return createDataset(cg.solve((RealLinearOperator) createRealMatrix(a), createRealVector(v)));<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>        private static RealMatrix createRealMatrix(Dataset a) {<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                if (a.getRank() != 2) {<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                        throw new IllegalArgumentException("Dataset must be rank 2");<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                }<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                int[] shape = a.getShapeRef();<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                IndexIterator it = a.getIterator(true);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                int[] pos = it.getPos();<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                RealMatrix m = MatrixUtils.createRealMatrix(shape[0], shape[1]);<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                while (it.hasNext()) {<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        m.setEntry(pos[0], pos[1], a.getElementDoubleAbs(it.index));<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                }<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                return m;<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>        private static RealVector createRealVector(Dataset a) {<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                if (a.getRank() != 1) {<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                        throw new IllegalArgumentException("Dataset must be rank 1");<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>                int size = a.getSize();<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                IndexIterator it = a.getIterator(true);<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                int[] pos = it.getPos();<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                RealVector m = new ArrayRealVector(size);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                while (it.hasNext()) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                        m.setEntry(pos[0], a.getElementDoubleAbs(it.index));<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                }<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                return m;<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>        private static Dataset createDataset(RealVector v) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                DoubleDataset r = DatasetFactory.zeros(DoubleDataset.class, v.getDimension());<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                int size = r.getSize();<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                if (v instanceof ArrayRealVector) {<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                        double[] data = ((ArrayRealVector) v).getDataRef();<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                        for (int i = 0; i &lt; size; i++) {<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                                r.setAbs(i, data[i]);<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>                        for (int i = 0; i &lt; size; i++) {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                r.setAbs(i, v.getEntry(i));<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                        }<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                }<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                return r;<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>        }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span><a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>        private static Dataset createDataset(RealMatrix m) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                DoubleDataset r = DatasetFactory.zeros(DoubleDataset.class, m.getRowDimension(), m.getColumnDimension());<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                if (m instanceof Array2DRowRealMatrix) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                        double[][] data = ((Array2DRowRealMatrix) m).getDataRef();<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                        IndexIterator it = r.getIterator(true);<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                        int[] pos = it.getPos();<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                        while (it.hasNext()) {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                r.setAbs(it.index, data[pos[0]][pos[1]]);<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                        }<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                } else {<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                        IndexIterator it = r.getIterator(true);<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                        int[] pos = it.getPos();<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                        while (it.hasNext()) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                r.setAbs(it.index, m.getEntry(pos[0], pos[1]));<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>                return r;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/LinearAlgebra.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/LinearAlgebra.html
new file mode 100644
index 0000000..cc97c9c
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/LinearAlgebra.html
@@ -0,0 +1,1301 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.Arrays;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.List;<a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>import org.apache.commons.math3.complex.Complex;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.commons.math3.linear.Array2DRowRealMatrix;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import org.apache.commons.math3.linear.ArrayRealVector;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.commons.math3.linear.CholeskyDecomposition;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.commons.math3.linear.ConjugateGradient;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.commons.math3.linear.EigenDecomposition;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.commons.math3.linear.LUDecomposition;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.commons.math3.linear.MatrixUtils;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.commons.math3.linear.QRDecomposition;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.commons.math3.linear.RealLinearOperator;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.commons.math3.linear.RealMatrix;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.commons.math3.linear.RealVector;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.commons.math3.linear.SingularValueDecomposition;<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>public class LinearAlgebra {<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>        private static final int CROSSOVERPOINT = 16; // point at which using slice iterators for inner loop is faster <a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>        /**<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         * Calculate the tensor dot product over given axes. This is the sum of products of elements selected<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         * from the given axes in each dataset<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * @param a<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * @param b<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @param axisa axis dimension in a to sum over (can be -ve)<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param axisb axis dimension in b to sum over (can be -ve)<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @return tensor dot product<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         */<a name="line.45"></a>
+<span class="sourceLineNo">046</span>        public static Dataset tensorDotProduct(final Dataset a, final Dataset b, final int axisa, final int axisb) {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                // this is slower for summing lengths &lt; ~15<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                final int[] ashape = a.getShapeRef();<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                final int[] bshape = b.getShapeRef();<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                final int arank = ashape.length;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                final int brank = bshape.length;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                int aaxis = ShapeUtils.checkAxis(arank, axisa);<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>                if (ashape[aaxis] &lt; CROSSOVERPOINT) { // faster to use position iteration<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                        return tensorDotProduct(a, b, new int[] {axisa}, new int[] {axisb});<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                }<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                int baxis = ShapeUtils.checkAxis(brank, axisb);<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>                final boolean[] achoice = new boolean[arank];<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                final boolean[] bchoice = new boolean[brank];<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                Arrays.fill(achoice, true);<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                Arrays.fill(bchoice, true);<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                achoice[aaxis] = false; // flag which axes not to iterate over<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                bchoice[baxis] = false;<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>                final boolean[] notachoice = new boolean[arank];<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                final boolean[] notbchoice = new boolean[brank];<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                notachoice[aaxis] = true; // flag which axes to iterate over<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                notbchoice[baxis] = true;<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>                int drank = arank + brank - 2;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                int[] dshape = new int[drank];<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                int d = 0;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                for (int i = 0; i &lt; arank; i++) {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        if (achoice[i])<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                                dshape[d++] = ashape[i];<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                }<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                for (int i = 0; i &lt; brank; i++) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        if (bchoice[i])<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                dshape[d++] = bshape[i];<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                Dataset data = DatasetFactory.zeros(InterfaceUtils.getBestInterface(a.getClass(), b.getClass()), dshape);<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>                SliceIterator ita = a.getSliceIteratorFromAxes(null, achoice);<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                int l = 0;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                final int[] apos = ita.getPos();<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                while (ita.hasNext()) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                        SliceIterator itb = b.getSliceIteratorFromAxes(null, bchoice);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                        final int[] bpos = itb.getPos();<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                        while (itb.hasNext()) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                                SliceIterator itaa = a.getSliceIteratorFromAxes(apos, notachoice);<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                                SliceIterator itba = b.getSliceIteratorFromAxes(bpos, notbchoice);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                                double sum = 0.0;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                                double com = 0.0;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                                while (itaa.hasNext() &amp;&amp; itba.hasNext()) {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                                        final double y = a.getElementDoubleAbs(itaa.index) * b.getElementDoubleAbs(itba.index) - com;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                                        final double t = sum + y;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                                        com = (t - sum) - y;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                        sum = t;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                                data.setObjectAbs(l++, sum);<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 data;<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>         * Calculate the tensor dot product over given axes. This is the sum of products of elements selected<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         * from the given axes in each dataset<a name="line.110"></a>
+<span class="sourceLineNo">111</span>         * @param a<a name="line.111"></a>
+<span class="sourceLineNo">112</span>         * @param b<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * @param axisa axis dimensions in a to sum over (can be -ve)<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         * @param axisb axis dimensions in b to sum over (can be -ve)<a name="line.114"></a>
+<span class="sourceLineNo">115</span>         * @return tensor dot product<a name="line.115"></a>
+<span class="sourceLineNo">116</span>         */<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        public static Dataset tensorDotProduct(final Dataset a, final Dataset b, final int[] axisa, final int[] axisb) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                if (axisa.length != axisb.length) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        throw new IllegalArgumentException("Numbers of summing axes must be same");<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                }<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                final int[] ashape = a.getShapeRef();<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                final int[] bshape = b.getShapeRef();<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                final int arank = ashape.length;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                final int brank = bshape.length;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                final int[] aaxes = new int[axisa.length];<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                final int[] baxes = new int[axisa.length];<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                for (int i = 0; i &lt; axisa.length; i++) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        aaxes[i] = ShapeUtils.checkAxis(arank, axisa[i]);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        int n = ShapeUtils.checkAxis(brank, axisb[i]);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        baxes[i] = n;<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        if (ashape[aaxes[i]] != bshape[n]) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                                throw new IllegalArgumentException("Summing axes do not have matching lengths");<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>                final boolean[] achoice = new boolean[arank];<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                final boolean[] bchoice = new boolean[brank];<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                Arrays.fill(achoice, true);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                Arrays.fill(bchoice, true);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                for (int i = 0; i &lt; aaxes.length; i++) { // flag which axes to iterate over<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                        achoice[aaxes[i]] = false;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                        bchoice[baxes[i]] = false;<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>                int drank = arank + brank - 2*aaxes.length;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                int[] dshape = new int[drank];<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                int d = 0;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                for (int i = 0; i &lt; arank; i++) {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                        if (achoice[i])<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                                dshape[d++] = ashape[i];<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                }<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                for (int i = 0; i &lt; brank; i++) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        if (bchoice[i])<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                                dshape[d++] = bshape[i];<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                }<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                Dataset data = DatasetFactory.zeros(InterfaceUtils.getBestInterface(a.getClass(), b.getClass()), dshape);<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>                SliceIterator ita = a.getSliceIteratorFromAxes(null, achoice);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                int l = 0;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                final int[] apos = ita.getPos();<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                while (ita.hasNext()) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                        SliceIterator itb = b.getSliceIteratorFromAxes(null, bchoice);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        final int[] bpos = itb.getPos();<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                        while (itb.hasNext()) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                                double sum = 0.0;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                                double com = 0.0;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                                apos[aaxes[aaxes.length - 1]] = -1;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                                bpos[baxes[aaxes.length - 1]] = -1;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                                while (true) { // step through summing axes<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                                        int e = aaxes.length - 1;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                                        for (; e &gt;= 0; e--) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                                                int ai = aaxes[e];<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                                                int bi = baxes[e];<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>                                                apos[ai]++;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                                                bpos[bi]++;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                                                if (apos[ai] == ashape[ai]) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                                                        apos[ai] = 0;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                                                        bpos[bi] = 0;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                                                } else<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                                                        break;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                                        }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                                        if (e == -1) break;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                                        final double y = a.getDouble(apos) * b.getDouble(bpos) - com;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                                        final double t = sum + y;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                                        com = (t - sum) - y;<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                                        sum = t;<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                                }<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                                data.setObjectAbs(l++, sum);<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><a name="line.193"></a>
+<span class="sourceLineNo">194</span>                return data;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        }<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>        /**<a name="line.197"></a>
+<span class="sourceLineNo">198</span>         * 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.198"></a>
+<span class="sourceLineNo">199</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.199"></a>
+<span class="sourceLineNo">200</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.200"></a>
+<span class="sourceLineNo">201</span>         * @param a<a name="line.201"></a>
+<span class="sourceLineNo">202</span>         * @param b<a name="line.202"></a>
+<span class="sourceLineNo">203</span>         * @return dot product<a name="line.203"></a>
+<span class="sourceLineNo">204</span>         */<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        public static Dataset dotProduct(Dataset a, Dataset b) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                if (b.getRank() &lt; 2)<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                        return tensorDotProduct(a, b, -1, 0);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                return tensorDotProduct(a, b, -1, -2);<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>        /**<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         * Calculate the outer product of two datasets<a name="line.212"></a>
+<span class="sourceLineNo">213</span>         * @param a<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         * @param b<a name="line.214"></a>
+<span class="sourceLineNo">215</span>         * @return outer product<a name="line.215"></a>
+<span class="sourceLineNo">216</span>         */<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        public static Dataset outerProduct(Dataset a, Dataset b) {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                int[] as = a.getShapeRef();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                int[] bs = b.getShapeRef();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                int rank = as.length + bs.length;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                int[] shape = new int[rank];<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                for (int i = 0; i &lt; as.length; i++) {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                        shape[i] = as[i];<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                for (int i = 0; i &lt; bs.length; i++) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                        shape[as.length + i] = bs[i];<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                }<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                int isa = a.getElementsPerItem();<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                int isb = b.getElementsPerItem();<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                if (isa != 1 || isb != 1) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                        throw new UnsupportedOperationException("Compound datasets not supported");<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                }<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                Dataset o = DatasetFactory.zeros(InterfaceUtils.getBestInterface(a.getClass(), b.getClass()), shape);<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span>                IndexIterator ita = a.getIterator();<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                IndexIterator itb = b.getIterator();<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                int j = 0;<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                while (ita.hasNext()) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                        double va = a.getElementDoubleAbs(ita.index);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        while (itb.hasNext()) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                                o.setObjectAbs(j++, va * b.getElementDoubleAbs(itb.index));<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                        }<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                        itb.reset();<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                }<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                return o;<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>         * Calculate the cross product of two datasets. Datasets must be broadcastable and<a name="line.249"></a>
+<span class="sourceLineNo">250</span>         * possess last dimensions of length 2 or 3<a name="line.250"></a>
+<span class="sourceLineNo">251</span>         * @param a<a name="line.251"></a>
+<span class="sourceLineNo">252</span>         * @param b<a name="line.252"></a>
+<span class="sourceLineNo">253</span>         * @return cross product<a name="line.253"></a>
+<span class="sourceLineNo">254</span>         */<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        public static Dataset crossProduct(Dataset a, Dataset b) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                return crossProduct(a, b, -1, -1, -1);<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>         * Calculate the cross product of two datasets. Datasets must be broadcastable and<a name="line.260"></a>
+<span class="sourceLineNo">261</span>         * possess dimensions of length 2 or 3. The axis parameters can be negative to indicate<a name="line.261"></a>
+<span class="sourceLineNo">262</span>         * dimensions from the end of their shapes<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         * @param a<a name="line.263"></a>
+<span class="sourceLineNo">264</span>         * @param b<a name="line.264"></a>
+<span class="sourceLineNo">265</span>         * @param axisA dimension to be used a vector (must have length of 2 or 3)<a name="line.265"></a>
+<span class="sourceLineNo">266</span>         * @param axisB dimension to be used a vector (must have length of 2 or 3)<a name="line.266"></a>
+<span class="sourceLineNo">267</span>         * @param axisC dimension to assign as cross-product<a name="line.267"></a>
+<span class="sourceLineNo">268</span>         * @return cross product<a name="line.268"></a>
+<span class="sourceLineNo">269</span>         */<a name="line.269"></a>
+<span class="sourceLineNo">270</span>        public static Dataset crossProduct(Dataset a, Dataset b, int axisA, int axisB, int axisC) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                final int rankA = a.getRank();<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                final int rankB = b.getRank();<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                if (rankA == 0 || rankB == 0) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                        throw new IllegalArgumentException("Datasets must have one or more dimensions");<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                }<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                axisA = a.checkAxis(axisA);<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                axisB = b.checkAxis(axisB);<a name="line.277"></a>
+<span class="sourceLineNo">278</span><a name="line.278"></a>
+<span class="sourceLineNo">279</span>                int la = a.getShapeRef()[axisA];<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                int lb = b.getShapeRef()[axisB];<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                if (Math.min(la,  lb) &lt; 2 || Math.max(la, lb) &gt; 3) {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                        throw new IllegalArgumentException("Chosen dimension of A &amp; B must be 2 or 3");<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>                if (Math.max(la,  lb) == 2) {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                        return crossProduct2D(a, b, axisA, axisB);<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 crossProduct3D(a, b, axisA, axisB, axisC);<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>        private static int[] removeAxisFromShape(int[] shape, int axis) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                int[] s = new int[shape.length - 1];<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                int i = 0;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                int j = 0;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                while (i &lt; axis) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                        s[j++] = shape[i++];<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                }<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                i++;<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                while (i &lt; shape.length) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                        s[j++] = shape[i++];<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                }<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                return s;<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>        // assume axes is in increasing order<a name="line.306"></a>
+<span class="sourceLineNo">307</span>        private static int[] removeAxesFromShape(int[] shape, int... axes) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                int n = axes.length;<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                int[] s = new int[shape.length - n];<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                int i = 0;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                int j = 0;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                for (int k = 0; k &lt; n; k++) {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                        int a = axes[k];<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                        while (i &lt; a) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                                s[j++] = shape[i++];<a name="line.315"></a>
+<span class="sourceLineNo">316</span>                        }<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                        i++;<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                }<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                while (i &lt; shape.length) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                        s[j++] = shape[i++];<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                }<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                return s;<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>        private static int[] addAxisToShape(int[] shape, int axis, int length) {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                int[] s = new int[shape.length + 1];<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                int i = 0;<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                int j = 0;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                while (i &lt; axis) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                        s[j++] = shape[i++];<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                }<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                s[j++] = length;<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                while (i &lt; shape.length) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                        s[j++] = shape[i++];<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                }<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                return s;<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>        private static Dataset crossProduct2D(Dataset a, Dataset b, int axisA, int axisB) {<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                // need to broadcast and omit given axes<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                int[] shapeA = removeAxisFromShape(a.getShapeRef(), axisA);<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                int[] shapeB = removeAxisFromShape(b.getShapeRef(), axisB);<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>                List&lt;int[]&gt; fullShapes = BroadcastUtils.broadcastShapes(shapeA, shapeB);<a name="line.344"></a>
+<span class="sourceLineNo">345</span><a name="line.345"></a>
+<span class="sourceLineNo">346</span>                int[] maxShape = fullShapes.get(0);<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                Dataset c = DatasetFactory.zeros(InterfaceUtils.getBestInterface(a.getClass(), b.getClass()), maxShape);<a name="line.347"></a>
+<span class="sourceLineNo">348</span><a name="line.348"></a>
+<span class="sourceLineNo">349</span>                PositionIterator ita = a.getPositionIterator(axisA);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                PositionIterator itb = b.getPositionIterator(axisB);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                IndexIterator itc = c.getIterator();<a name="line.351"></a>
+<span class="sourceLineNo">352</span><a name="line.352"></a>
+<span class="sourceLineNo">353</span>                final int[] pa = ita.getPos();<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                final int[] pb = itb.getPos();<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                while (itc.hasNext()) {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                        if (!ita.hasNext()) // TODO use broadcasting...<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                                ita.reset();<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                        if (!itb.hasNext())<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                                itb.reset();<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                        pa[axisA] = 0;<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                        pb[axisB] = 1;<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                        double cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                        pa[axisA] = 1;<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        pb[axisB] = 0;<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                        cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>                        c.setObjectAbs(itc.index, cv);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                }<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                return c;<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>        private static Dataset crossProduct3D(Dataset a, Dataset b, int axisA, int axisB, int axisC) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                int[] shapeA = removeAxisFromShape(a.getShapeRef(), axisA);<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                int[] shapeB = removeAxisFromShape(b.getShapeRef(), axisB);<a name="line.374"></a>
+<span class="sourceLineNo">375</span><a name="line.375"></a>
+<span class="sourceLineNo">376</span>                List&lt;int[]&gt; fullShapes = BroadcastUtils.broadcastShapes(shapeA, shapeB);<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>                int[] maxShape = fullShapes.get(0);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                int rankC = maxShape.length + 1;<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                axisC = ShapeUtils.checkAxis(rankC, axisC);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                maxShape = addAxisToShape(maxShape, axisC, 3);<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                Dataset c = DatasetFactory.zeros(InterfaceUtils.getBestInterface(a.getClass(), b.getClass()), maxShape);<a name="line.382"></a>
+<span class="sourceLineNo">383</span><a name="line.383"></a>
+<span class="sourceLineNo">384</span>                PositionIterator ita = a.getPositionIterator(axisA);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                PositionIterator itb = b.getPositionIterator(axisB);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                PositionIterator itc = c.getPositionIterator(axisC);<a name="line.386"></a>
+<span class="sourceLineNo">387</span><a name="line.387"></a>
+<span class="sourceLineNo">388</span>                final int[] pa = ita.getPos();<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                final int[] pb = itb.getPos();<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                final int[] pc = itc.getPos();<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                final int la = a.getShapeRef()[axisA];<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                final int lb = b.getShapeRef()[axisB];<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>                if (la == 2) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                        while (itc.hasNext()) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                                if (!ita.hasNext()) // TODO use broadcasting...<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                                        ita.reset();<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                                if (!itb.hasNext())<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                                        itb.reset();<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                                double cv;<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                                pa[axisA] = 1;<a name="line.401"></a>
+<span class="sourceLineNo">402</span>                                pb[axisB] = 2;<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                                pc[axisC] = 0;<a name="line.404"></a>
+<span class="sourceLineNo">405</span>                                c.set(cv, pc);<a name="line.405"></a>
+<span class="sourceLineNo">406</span><a name="line.406"></a>
+<span class="sourceLineNo">407</span>                                pa[axisA] = 0;<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                                pb[axisB] = 2;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                                cv = -a.getDouble(pa) * b.getDouble(pb);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                                pc[axisC] = 1;<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                                c.set(cv, pc);<a name="line.411"></a>
+<span class="sourceLineNo">412</span><a name="line.412"></a>
+<span class="sourceLineNo">413</span>                                pa[axisA] = 0;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                                pb[axisB] = 1;<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                                pa[axisA] = 1;<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                                pb[axisB] = 0;<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                                cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                                pc[axisC] = 2;<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                                c.set(cv, pc);<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                        }<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                } else if (lb == 2) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                        while (itc.hasNext()) {<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                                if (!ita.hasNext()) // TODO use broadcasting...<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                                        ita.reset();<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                                if (!itb.hasNext())<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                                        itb.reset();<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                                double cv;<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                                pa[axisA] = 2;<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                                pb[axisB] = 1;<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                                cv = -a.getDouble(pa) * b.getDouble(pb);<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                                pc[axisC] = 0;<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                                c.set(cv, pc);<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span>                                pa[axisA] = 2;<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                                pb[axisB] = 0;<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                                pc[axisC] = 1;<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                                c.set(cv, pc);<a name="line.439"></a>
+<span class="sourceLineNo">440</span><a name="line.440"></a>
+<span class="sourceLineNo">441</span>                                pa[axisA] = 0;<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                                pb[axisB] = 1;<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                                pa[axisA] = 1;<a name="line.444"></a>
+<span class="sourceLineNo">445</span>                                pb[axisB] = 0;<a name="line.445"></a>
+<span class="sourceLineNo">446</span>                                cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                                pc[axisC] = 2;<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                                c.set(cv, pc);<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                        }<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                        <a name="line.450"></a>
+<span class="sourceLineNo">451</span>                } else {<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                        while (itc.hasNext()) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                                if (!ita.hasNext()) // TODO use broadcasting...<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                                        ita.reset();<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                                if (!itb.hasNext())<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                                        itb.reset();<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                                double cv;<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                                pa[axisA] = 1;<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                                pb[axisB] = 2;<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                                pa[axisA] = 2;<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                                pb[axisB] = 1;<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                                cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                                pc[axisC] = 0;<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                                c.set(cv, pc);<a name="line.465"></a>
+<span class="sourceLineNo">466</span><a name="line.466"></a>
+<span class="sourceLineNo">467</span>                                pa[axisA] = 2;<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                                pb[axisB] = 0;<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                                pa[axisA] = 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>                }<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                return c;<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>        /**<a name="line.489"></a>
+<span class="sourceLineNo">490</span>         * Raise dataset to given power by matrix multiplication<a name="line.490"></a>
+<span class="sourceLineNo">491</span>         * @param a<a name="line.491"></a>
+<span class="sourceLineNo">492</span>         * @param n power<a name="line.492"></a>
+<span class="sourceLineNo">493</span>         * @return {@code a ** n}<a name="line.493"></a>
+<span class="sourceLineNo">494</span>         */<a name="line.494"></a>
+<span class="sourceLineNo">495</span>        public static Dataset power(Dataset a, int n) {<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                if (n &lt; 0) {<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                        LUDecomposition lud = new LUDecomposition(createRealMatrix(a));<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                        return createDataset(lud.getSolver().getInverse().power(-n));<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                }<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                Dataset p = createDataset(createRealMatrix(a).power(n));<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                if (!a.hasFloatingPointElements()) {<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                        return p.cast(a.getClass());<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                }<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                return p;<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 the Kronecker product as defined by <a name="line.508"></a>
+<span class="sourceLineNo">509</span>         * {@code kron[k0,...,kN] = a[i0,...,iN] * b[j0,...,jN]}<a name="line.509"></a>
+<span class="sourceLineNo">510</span>         * where {@code kn = sn * in + jn} for {@code n = 0...N} and {@code s} is shape of {@code b}<a name="line.510"></a>
+<span class="sourceLineNo">511</span>         * @param a<a name="line.511"></a>
+<span class="sourceLineNo">512</span>         * @param b<a name="line.512"></a>
+<span class="sourceLineNo">513</span>         * @return Kronecker product of a and b<a name="line.513"></a>
+<span class="sourceLineNo">514</span>         */<a name="line.514"></a>
+<span class="sourceLineNo">515</span>        public static Dataset kroneckerProduct(Dataset a, Dataset b) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                if (a.getElementsPerItem() != 1 || b.getElementsPerItem() != 1) {<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                        throw new UnsupportedOperationException("Compound datasets (including complex ones) are not currently supported");<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                }<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                int ar = a.getRank();<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                int br = b.getRank();<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                int[] aShape;<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                int[] bShape;<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                aShape = a.getShapeRef();<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                bShape = b.getShapeRef();<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                int r = ar;<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                // pre-pad if ranks are not same<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                if (ar &lt; br) {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                        r = br;<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                        int[] shape = new int[br];<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                        int j = 0;<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                        for (int i = ar; i &lt; br; i++) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                                shape[j++] = 1;<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                        }<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                        int i = 0;<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                        while (j &lt; br) {<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                                shape[j++] = aShape[i++];<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                        }<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                        a = a.reshape(shape);<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                        aShape = shape;<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                } else if (ar &gt; br) {<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                        int[] shape = new int[ar];<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                        int j = 0;<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                        for (int i = br; i &lt; ar; i++) {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                                shape[j++] = 1;<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                        }<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                        int i = 0;<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                        while (j &lt; ar) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                                shape[j++] = bShape[i++];<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                        }<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        b = b.reshape(shape);<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                        bShape = shape;<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>                int[] nShape = new int[r];<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                for (int i = 0; i &lt; r; i++) {<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                        nShape[i] = aShape[i] * bShape[i];<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                }<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                Dataset kron = DatasetFactory.zeros(InterfaceUtils.getBestInterface(a.getClass(), b.getClass()), nShape);<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                IndexIterator ita = a.getIterator(true);<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                IndexIterator itb = b.getIterator(true);<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                int[] pa = ita.getPos();<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                int[] pb = itb.getPos();<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                int[] off = new int[1];<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                int[] stride = AbstractDataset.createStrides(1, nShape, null, 0, off);<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                if (kron instanceof LongDataset) {<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                        while (ita.hasNext()) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                                long av = a.getElementLongAbs(ita.index);<a name="line.567"></a>
+<span class="sourceLineNo">568</span><a name="line.568"></a>
+<span class="sourceLineNo">569</span>                                int ka = 0; <a name="line.569"></a>
+<span class="sourceLineNo">570</span>                                for (int i = 0; i &lt; r; i++) {<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                                        ka += stride[i] * bShape[i] * pa[i];<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                                }<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                                itb.reset();<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                                while (itb.hasNext()) {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                                        long bv = b.getElementLongAbs(itb.index);<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                                        int kb = ka;<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                                        for (int i = 0; i &lt; r; i++) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                                                kb += stride[i] * pb[i];<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                                        }<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                                        kron.setObjectAbs(kb, av * bv);<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 (ita.hasNext()) {<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                                double av = a.getElementDoubleAbs(ita.index);<a name="line.585"></a>
+<span class="sourceLineNo">586</span><a name="line.586"></a>
+<span class="sourceLineNo">587</span>                                int ka = 0; <a name="line.587"></a>
+<span class="sourceLineNo">588</span>                                for (int i = 0; i &lt; r; i++) {<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                                        ka += stride[i] * bShape[i] * pa[i];<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                                }<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                                itb.reset();<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                                while (itb.hasNext()) {<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                                        double bv = b.getElementLongAbs(itb.index);<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                                        int kb = ka;<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                                        for (int i = 0; i &lt; r; i++) {<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                                                kb += stride[i] * pb[i];<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                                        }<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                                        kron.setObjectAbs(kb, av * bv);<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><a name="line.602"></a>
+<span class="sourceLineNo">603</span>                return kron;<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>         * Calculate trace of dataset - sum of values over 1st axis and 2nd axis<a name="line.607"></a>
+<span class="sourceLineNo">608</span>         * @param a<a name="line.608"></a>
+<span class="sourceLineNo">609</span>         * @return trace of dataset<a name="line.609"></a>
+<span class="sourceLineNo">610</span>         */<a name="line.610"></a>
+<span class="sourceLineNo">611</span>        public static Dataset trace(Dataset a) {<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                return trace(a, 0, 0, 1);<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        }<a name="line.613"></a>
+<span class="sourceLineNo">614</span><a name="line.614"></a>
+<span class="sourceLineNo">615</span>        /**<a name="line.615"></a>
+<span class="sourceLineNo">616</span>         * Calculate trace of dataset - sum of values over axis1 and axis2 where axis2 is offset<a name="line.616"></a>
+<span class="sourceLineNo">617</span>         * @param a<a name="line.617"></a>
+<span class="sourceLineNo">618</span>         * @param offset<a name="line.618"></a>
+<span class="sourceLineNo">619</span>         * @param axis1<a name="line.619"></a>
+<span class="sourceLineNo">620</span>         * @param axis2<a name="line.620"></a>
+<span class="sourceLineNo">621</span>         * @return trace of dataset<a name="line.621"></a>
+<span class="sourceLineNo">622</span>         */<a name="line.622"></a>
+<span class="sourceLineNo">623</span>        public static Dataset trace(Dataset a, int offset, int axis1, int axis2) {<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                int[] shape = a.getShapeRef();<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                int[] axes = new int[] { a.checkAxis(axis1), a.checkAxis(axis2) };<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                Arrays.sort(axes);<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                int is = a.getElementsPerItem();<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                Dataset trace = DatasetFactory.zeros(is, a.getClass(), removeAxesFromShape(shape, axes));<a name="line.628"></a>
+<span class="sourceLineNo">629</span><a name="line.629"></a>
+<span class="sourceLineNo">630</span>                int am = axes[0];<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                int mmax = shape[am];<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                int an = axes[1];<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                int nmax = shape[an];<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                PositionIterator it = new PositionIterator(shape, axes);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                int[] pos = it.getPos();<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                int i = 0;<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                int mmin;<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                int nmin;<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                if (offset &gt;= 0) {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        mmin = 0;<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                        nmin = offset;<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                } else {<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                        mmin = -offset;<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                        nmin = 0;<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                }<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                if (is == 1) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                        if (a instanceof LongDataset) {<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                                while (it.hasNext()) {<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                                        int m = mmin;<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                                        int n = nmin;<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                                        long s = 0;<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                                        while (m &lt; mmax &amp;&amp; n &lt; nmax) {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                                                pos[am] = m++;<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                                                pos[an] = n++;<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                                                s += a.getLong(pos);<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                                        }<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                                        trace.setObjectAbs(i++, s);<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                                }<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                        } else {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                                while (it.hasNext()) {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                                        int m = mmin;<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                        int n = nmin;<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                                        double s = 0;<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                                        while (m &lt; mmax &amp;&amp; n &lt; nmax) {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                                                pos[am] = m++;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                                                pos[an] = n++;<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                                                s += a.getDouble(pos);<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                                        }<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                                        trace.setObjectAbs(i++, s);<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>                } else {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                        AbstractCompoundDataset ca = (AbstractCompoundDataset) a;<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                        if (ca instanceof CompoundLongDataset) {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                                long[] t = new long[is];<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                                long[] s = new long[is];<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                                while (it.hasNext()) {<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                                        int m = mmin;<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                                        int n = nmin;<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                                        Arrays.fill(s, 0);<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                                        while (m &lt; mmax &amp;&amp; n &lt; nmax) {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                                                pos[am] = m++;<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                                                pos[an] = n++;<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                                                ((CompoundLongDataset)ca).getAbs(ca.get1DIndex(pos), t);<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                                                        s[k] += t[k];<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>                                        trace.setObjectAbs(i++, s);<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>                                double[] t = new double[is];<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                                double[] s = new double[is];<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                                while (it.hasNext()) {<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                                        int m = mmin;<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                                        int n = nmin;<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                                        Arrays.fill(s, 0);<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                                        while (m &lt; mmax &amp;&amp; n &lt; nmax) {<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                                                pos[am] = m++;<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                                                pos[an] = n++;<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                                                ca.getDoubleArray(t, pos);<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                                                        s[k] += t[k];<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>                                        trace.setObjectAbs(i++, s);<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>                }<a name="line.709"></a>
+<span class="sourceLineNo">710</span><a name="line.710"></a>
+<span class="sourceLineNo">711</span>                return trace;<a name="line.711"></a>
+<span class="sourceLineNo">712</span>        }<a name="line.712"></a>
+<span class="sourceLineNo">713</span><a name="line.713"></a>
+<span class="sourceLineNo">714</span>        /**<a name="line.714"></a>
+<span class="sourceLineNo">715</span>         * Order value for norm<a name="line.715"></a>
+<span class="sourceLineNo">716</span>         */<a name="line.716"></a>
+<span class="sourceLineNo">717</span>        public enum NormOrder {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                /**<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                 * 2-norm for vectors and Frobenius for matrices<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                 */<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                DEFAULT,<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                /**<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                 * Frobenius (not allowed for vectors)<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                 */<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                FROBENIUS,<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                /**<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                 * Zero-order (not allowed for matrices)<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                 */<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                ZERO,<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                /**<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                 * Positive infinity<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                 */<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                POS_INFINITY,<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                /**<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                 * Negative infinity<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                 */<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                NEG_INFINITY;<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<a name="line.741"></a>
+<span class="sourceLineNo">742</span>         * @return norm of dataset<a name="line.742"></a>
+<span class="sourceLineNo">743</span>         */<a name="line.743"></a>
+<span class="sourceLineNo">744</span>        public static double norm(Dataset a) {<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                return norm(a, NormOrder.DEFAULT);<a name="line.745"></a>
+<span class="sourceLineNo">746</span>        }<a name="line.746"></a>
+<span class="sourceLineNo">747</span><a name="line.747"></a>
+<span class="sourceLineNo">748</span>        /**<a name="line.748"></a>
+<span class="sourceLineNo">749</span>         * @param a<a name="line.749"></a>
+<span class="sourceLineNo">750</span>         * @param order<a name="line.750"></a>
+<span class="sourceLineNo">751</span>         * @return norm of dataset<a name="line.751"></a>
+<span class="sourceLineNo">752</span>         */<a name="line.752"></a>
+<span class="sourceLineNo">753</span>        public static double norm(Dataset a, NormOrder order) {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                int r = a.getRank();<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                if (r == 1) {<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        return vectorNorm(a, order);<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                } else if (r == 2) {<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                        return matrixNorm(a, order);<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                }<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                throw new IllegalArgumentException("Rank of dataset must be one or two");<a name="line.760"></a>
+<span class="sourceLineNo">761</span>        }<a name="line.761"></a>
+<span class="sourceLineNo">762</span><a name="line.762"></a>
+<span class="sourceLineNo">763</span>        private static double vectorNorm(Dataset a, NormOrder order) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                double n;<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                IndexIterator it;<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                switch (order) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                case FROBENIUS:<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                        throw new IllegalArgumentException("Not allowed for vectors");<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                case NEG_INFINITY:<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                case POS_INFINITY:<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                        it = a.getIterator();<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                        if (order == NormOrder.POS_INFINITY) {<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                                n = Double.NEGATIVE_INFINITY;<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                                if (a.isComplex()) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                                        while (it.hasNext()) {<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                                                double v = ((Complex) a.getObjectAbs(it.index)).abs();<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                                                n = Math.max(n, v);<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                                        }<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                                } else {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                                        while (it.hasNext()) {<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                                                double v = Math.abs(a.getElementDoubleAbs(it.index));<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                                                n = Math.max(n, v);<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>                                n = Double.POSITIVE_INFINITY;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                if (a.isComplex()) {<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                                        while (it.hasNext()) {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                                double v = ((Complex) a.getObjectAbs(it.index)).abs();<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                                n = Math.min(n, v);<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                                        }<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                                } else {<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                                        while (it.hasNext()) {<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                                                double v = Math.abs(a.getElementDoubleAbs(it.index));<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                                                n = Math.min(n, v);<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                                        }<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                                }<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                        }<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                        break;<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                case ZERO:<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                        it = a.getIterator();<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        n = 0;<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                        if (a.isComplex()) {<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                                while (it.hasNext()) {<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                                        if (!((Complex) a.getObjectAbs(it.index)).equals(Complex.ZERO))<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                                                n++;<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                                }<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                        } else {<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                                while (it.hasNext()) {<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                                        if (a.getElementBooleanAbs(it.index))<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                                                n++;<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>                        <a name="line.814"></a>
+<span class="sourceLineNo">815</span>                        break;<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                default:<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                        n = vectorNorm(a, 2);<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                        break;<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                }<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                return n;<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>        private static double matrixNorm(Dataset a, NormOrder order) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                double n;<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                IndexIterator it;<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                switch (order) {<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                case NEG_INFINITY:<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                case POS_INFINITY:<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        n = maxMinMatrixNorm(a, 1, order == NormOrder.POS_INFINITY);<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                        break;<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                case ZERO:<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                        throw new IllegalArgumentException("Not allowed for matrices");<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                default:<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                case FROBENIUS:<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        it = a.getIterator();<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                        n = 0;<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                        if (a.isComplex()) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                while (it.hasNext()) {<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                        double v = ((Complex) a.getObjectAbs(it.index)).abs();<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                        n += v*v;<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        } else {<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                                while (it.hasNext()) {<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                                        double v = a.getElementDoubleAbs(it.index);<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                                        n += v*v;<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>                        n = Math.sqrt(n);<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                        break;<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                }<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                return n;<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>         * @param a<a name="line.855"></a>
+<span class="sourceLineNo">856</span>         * @param p<a name="line.856"></a>
+<span class="sourceLineNo">857</span>         * @return p-norm of dataset<a name="line.857"></a>
+<span class="sourceLineNo">858</span>         */<a name="line.858"></a>
+<span class="sourceLineNo">859</span>        public static double norm(Dataset a, final double p) {<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                if (p == 0) {<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        return norm(a, NormOrder.ZERO);<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                }<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                int r = a.getRank();<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                if (r == 1) {<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                        return vectorNorm(a, p);<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                } else if (r == 2) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                        return matrixNorm(a, p);<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                }<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                throw new IllegalArgumentException("Rank of dataset must be one or two");<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>        private static double vectorNorm(Dataset a, final double p) {<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                IndexIterator it = a.getIterator();<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                double n = 0;<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                if (a.isComplex()) {<a name="line.875"></a>
+<span class="sourceLineNo">876</span>                        while (it.hasNext()) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                                double v = ((Complex) a.getObjectAbs(it.index)).abs();<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                if (p == 2) {<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                        v *= v;<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                                } else if (p != 1) {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                                        v = Math.pow(v, p);<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                }<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                n += v;<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                        }<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                } else {<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                        while (it.hasNext()) {<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                                double v = a.getElementDoubleAbs(it.index);<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                                if (p == 1) {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                                        v = Math.abs(v);<a name="line.889"></a>
+<span class="sourceLineNo">890</span>                                } else if (p == 2) {<a name="line.890"></a>
+<span class="sourceLineNo">891</span>                                        v *= v;<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                } else {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                        v = Math.pow(Math.abs(v), p);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                }<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                                n += v;<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                        }<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                }<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                return Math.pow(n, 1./p);<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>        private static double matrixNorm(Dataset a, final double p) {<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                double n;<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                if (Math.abs(p) == 1) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        n = maxMinMatrixNorm(a, 0, p &gt; 0);<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                } else if (Math.abs(p) == 2) {<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        double[] s = calcSingularValues(a);<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                        n = p &gt; 0 ? s[0] : s[s.length - 1];<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                } else {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                        throw new IllegalArgumentException("Order not allowed");<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>                return n;<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>        private static double maxMinMatrixNorm(Dataset a, int d, boolean max) {<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                double n;<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                IndexIterator it;<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                int[] pos;<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                int l;<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                it = a.getPositionIterator(d);<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                pos = it.getPos();<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                l = a.getShapeRef()[d];<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                if (max) {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                        n = Double.NEGATIVE_INFINITY;<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                        if (a.isComplex()) {<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                while (it.hasNext()) {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                                        double v = ((Complex) a.getObject(pos)).abs();<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                                        for (int i = 1; i &lt; l; i++) {<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                                                pos[d] = i;<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                                v += ((Complex) a.getObject(pos)).abs();<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                        }<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                        pos[d] = 0;<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                        n = Math.max(n, v);<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                        } else {<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                                while (it.hasNext()) {<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                                        double v = Math.abs(a.getDouble(pos));<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                                        for (int i = 1; i &lt; l; i++) {<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                                                pos[d] = i;<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                                                v += Math.abs(a.getDouble(pos));<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                                        }<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                        pos[d] = 0;<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                        n = Math.max(n, v);<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                }<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                        }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                } else {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                        n = Double.POSITIVE_INFINITY;<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                        if (a.isComplex()) {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                while (it.hasNext()) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                        double v = ((Complex) a.getObject(pos)).abs();<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                        for (int i = 1; i &lt; l; i++) {<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                                pos[d] = i;<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                                v += ((Complex) a.getObject(pos)).abs();<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                        }<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                        pos[d] = 0;<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                        n = Math.min(n, v);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                                }<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                        } else {<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                                while (it.hasNext()) {<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                                        double v = Math.abs(a.getDouble(pos));<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                                        for (int i = 1; i &lt; l; i++) {<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                                                pos[d] = i;<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                                                v += Math.abs(a.getDouble(pos));<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                                        }<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                        pos[d] = 0;<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                                        n = Math.min(n, v);<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                }<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                        }<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                }<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                return n;<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>        /**<a name="line.973"></a>
+<span class="sourceLineNo">974</span>         * @param a<a name="line.974"></a>
+<span class="sourceLineNo">975</span>         * @return array of singular values<a name="line.975"></a>
+<span class="sourceLineNo">976</span>         */<a name="line.976"></a>
+<span class="sourceLineNo">977</span>        public static double[] calcSingularValues(Dataset a) {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                return svd.getSingularValues();<a name="line.979"></a>
+<span class="sourceLineNo">980</span>        }<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span><a name="line.982"></a>
+<span class="sourceLineNo">983</span>        /**<a name="line.983"></a>
+<span class="sourceLineNo">984</span>         * Calculate singular value decomposition {@code A = U S V^T}<a name="line.984"></a>
+<span class="sourceLineNo">985</span>         * @param a<a name="line.985"></a>
+<span class="sourceLineNo">986</span>         * @return array of U - orthogonal matrix, s - singular values vector, V - orthogonal matrix<a name="line.986"></a>
+<span class="sourceLineNo">987</span>         */<a name="line.987"></a>
+<span class="sourceLineNo">988</span>        public static Dataset[] calcSingularValueDecomposition(Dataset a) {<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                return new Dataset[] {createDataset(svd.getU()), DatasetFactory.createFromObject(svd.getSingularValues()),<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                createDataset(svd.getV())};<a name="line.991"></a>
+<span class="sourceLineNo">992</span>        }<a name="line.992"></a>
+<span class="sourceLineNo">993</span><a name="line.993"></a>
+<span class="sourceLineNo">994</span>        /**<a name="line.994"></a>
+<span class="sourceLineNo">995</span>         * Calculate (Moore-Penrose) pseudo-inverse<a name="line.995"></a>
+<span class="sourceLineNo">996</span>         * @param a<a name="line.996"></a>
+<span class="sourceLineNo">997</span>         * @return pseudo-inverse<a name="line.997"></a>
+<span class="sourceLineNo">998</span>         */<a name="line.998"></a>
+<span class="sourceLineNo">999</span>        public static Dataset calcPseudoInverse(Dataset a) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                return createDataset(svd.getSolver().getInverse());<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>        }<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span><a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>        /**<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>         * Calculate matrix rank by singular value decomposition method<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>         * @param a<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>         * @return effective numerical rank of matrix<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>         */<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>        public static int calcMatrixRank(Dataset a) {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                return svd.getRank();<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>        }<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span><a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>        /**<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>         * Calculate condition number of matrix by singular value decomposition method<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>         * @param a<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>         * @return condition number<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>         */<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        public static double calcConditionNumber(Dataset a) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                return svd.getConditionNumber();<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>        }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span><a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>        /**<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>         * @param a<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>         * @return determinant of dataset<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>         */<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>        public static double calcDeterminant(Dataset a) {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                EigenDecomposition evd = new EigenDecomposition(createRealMatrix(a));<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                return evd.getDeterminant();<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        }<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span><a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>        /**<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>         * @param a<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>         * @return dataset of eigenvalues (can be double or complex double)<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>         */<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>        public static Dataset calcEigenvalues(Dataset a) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                EigenDecomposition evd = new EigenDecomposition(createRealMatrix(a));<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                double[] rev = evd.getRealEigenvalues();<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span><a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                if (evd.hasComplexEigenvalues()) {<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        double[] iev = evd.getImagEigenvalues();<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                        return DatasetFactory.createComplexDataset(ComplexDoubleDataset.class, rev, iev);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                }<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                return DatasetFactory.createFromObject(rev);<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>         * Calculate eigen-decomposition {@code A = V D V^T}<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>         * @param a<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>         * @return array of D eigenvalues (can be double or complex double) and V eigenvectors<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>         */<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>        public static Dataset[] calcEigenDecomposition(Dataset a) {<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                EigenDecomposition evd = new EigenDecomposition(createRealMatrix(a));<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                Dataset[] results = new Dataset[2];<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span><a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                double[] rev = evd.getRealEigenvalues();<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                if (evd.hasComplexEigenvalues()) {<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                        double[] iev = evd.getImagEigenvalues();<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                        results[0] = DatasetFactory.createComplexDataset(ComplexDoubleDataset.class, rev, iev);<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                } else {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                        results[0] = DatasetFactory.createFromObject(rev);<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                }<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                results[1] = createDataset(evd.getV());<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                return results;<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 QR decomposition {@code A = Q R}<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>         * @param a<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>         * @return array of Q and R<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>         */<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>        public static Dataset[] calcQRDecomposition(Dataset a) {<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                QRDecomposition qrd = new QRDecomposition(createRealMatrix(a));<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                return new Dataset[] {createDataset(qrd.getQT()).getTransposedView(), createDataset(qrd.getR())};<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 LU decomposition {@code A = P^-1 L U}<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>         * @param a<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>         * @return array of L, U and P<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>         */<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>        public static Dataset[] calcLUDecomposition(Dataset a) {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                LUDecomposition lud = new LUDecomposition(createRealMatrix(a));<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                return new Dataset[] {createDataset(lud.getL()), createDataset(lud.getU()),<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                createDataset(lud.getP())};<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>        /**<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>         * Calculate inverse of square dataset<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>         * @param a<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>         * @return inverse<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>         */<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>        public static Dataset calcInverse(Dataset a) {<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                LUDecomposition lud = new LUDecomposition(createRealMatrix(a));<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                return createDataset(lud.getSolver().getInverse());<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>         * Solve linear matrix equation {@code A x = v}<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>         * @param a<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>         * @param v<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>         * @return x<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>         */<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>        public static Dataset solve(Dataset a, Dataset v) {<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                LUDecomposition lud = new LUDecomposition(createRealMatrix(a));<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                if (v.getRank() == 1) {<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                        RealVector x = createRealVector(v);<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        return createDataset(lud.getSolver().solve(x));<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                }<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                RealMatrix x = createRealMatrix(v);<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                return createDataset(lud.getSolver().solve(x));<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>        <a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>        /**<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>         * Solve least squares matrix equation {@code A x = v} by SVD<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>         * @param a<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>         * @param v<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>         * @return x<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>         */<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>        public static Dataset solveSVD(Dataset a, Dataset v) {<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                if (v.getRank() == 1) {<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                        RealVector x = createRealVector(v);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                        return createDataset(svd.getSolver().solve(x));<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                }<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                RealMatrix x = createRealMatrix(v);<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                return createDataset(svd.getSolver().solve(x));<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 Cholesky decomposition {@code A = L L^T}<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>         * @param a<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>         * @return L<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>         */<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>        public static Dataset calcCholeskyDecomposition(Dataset a) {<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                CholeskyDecomposition cd = new CholeskyDecomposition(createRealMatrix(a));<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                return createDataset(cd.getL());<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>         * Calculation {@code A x = v} by conjugate gradient method with the stopping criterion being<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>         * that the estimated residual {@code r = v - A x} satisfies {@code ||r|| &lt; ||v||} with maximum of 100 iterations<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>         * @param a<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>         * @param v<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>         * @return value of {@code A^-1 v} by conjugate gradient method<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>         */<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>        public static Dataset calcConjugateGradient(Dataset a, Dataset v) {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                return calcConjugateGradient(a, v, 100, 1);<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>         * Calculation {@code A x = v} by conjugate gradient method with the stopping criterion being<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>         * that the estimated residual {@code r = v - A x} satisfies {@code ||r|| &lt; delta ||v||}<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>         * @param a<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>         * @param v<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>         * @param maxIterations<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>         * @param delta parameter used by stopping criterion<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>         * @return value of {@code A^-1 v} by conjugate gradient method<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>         */<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>        public static Dataset calcConjugateGradient(Dataset a, Dataset v, int maxIterations, double delta) {<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                ConjugateGradient cg = new ConjugateGradient(maxIterations, delta, false);<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                return createDataset(cg.solve((RealLinearOperator) createRealMatrix(a), createRealVector(v)));<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>        private static RealMatrix createRealMatrix(Dataset a) {<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                if (a.getRank() != 2) {<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                        throw new IllegalArgumentException("Dataset must be rank 2");<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                }<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                int[] shape = a.getShapeRef();<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                IndexIterator it = a.getIterator(true);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                int[] pos = it.getPos();<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                RealMatrix m = MatrixUtils.createRealMatrix(shape[0], shape[1]);<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                while (it.hasNext()) {<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        m.setEntry(pos[0], pos[1], a.getElementDoubleAbs(it.index));<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                }<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                return m;<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>        private static RealVector createRealVector(Dataset a) {<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                if (a.getRank() != 1) {<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                        throw new IllegalArgumentException("Dataset must be rank 1");<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>                int size = a.getSize();<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                IndexIterator it = a.getIterator(true);<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                int[] pos = it.getPos();<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                RealVector m = new ArrayRealVector(size);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                while (it.hasNext()) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                        m.setEntry(pos[0], a.getElementDoubleAbs(it.index));<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                }<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                return m;<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>        private static Dataset createDataset(RealVector v) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                DoubleDataset r = DatasetFactory.zeros(DoubleDataset.class, v.getDimension());<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                int size = r.getSize();<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                if (v instanceof ArrayRealVector) {<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                        double[] data = ((ArrayRealVector) v).getDataRef();<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                        for (int i = 0; i &lt; size; i++) {<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                                r.setAbs(i, data[i]);<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>                        for (int i = 0; i &lt; size; i++) {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                r.setAbs(i, v.getEntry(i));<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                        }<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                }<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                return r;<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>        }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span><a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>        private static Dataset createDataset(RealMatrix m) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                DoubleDataset r = DatasetFactory.zeros(DoubleDataset.class, m.getRowDimension(), m.getColumnDimension());<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                if (m instanceof Array2DRowRealMatrix) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                        double[][] data = ((Array2DRowRealMatrix) m).getDataRef();<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                        IndexIterator it = r.getIterator(true);<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                        int[] pos = it.getPos();<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                        while (it.hasNext()) {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                r.setAbs(it.index, data[pos[0]][pos[1]]);<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                        }<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                } else {<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                        IndexIterator it = r.getIterator(true);<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                        int[] pos = it.getPos();<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                        while (it.hasNext()) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                r.setAbs(it.index, m.getEntry(pos[0], pos[1]));<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>                return r;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/LongDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/LongDataset.html
new file mode 100644
index 0000000..c2d9d0b
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/LongDataset.html
@@ -0,0 +1,1354 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// This is generated from DoubleDataset.java by fromdouble.py<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.ArrayList;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.Arrays;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.List;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.Set;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.TreeSet;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.commons.math3.complex.Complex;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.eclipse.january.metadata.StatisticsMetadata;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>/**<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * Extend dataset for long values // PRIM_TYPE<a name="line.28"></a>
+<span class="sourceLineNo">029</span> */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>public class LongDataset extends AbstractDataset {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        // pin UID to base class<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        protected long[] data; // subclass alias // PRIM_TYPE<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>        @Override<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        protected void setData() {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                data = (long[]) odata; // PRIM_TYPE<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        }<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>        protected static long[] createArray(final int size) { // PRIM_TYPE<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                long[] array = null; // PRIM_TYPE<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>                try {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                        array = new long[size]; // PRIM_TYPE<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                } catch (OutOfMemoryError e) {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                }<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return array;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        @Override<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        public int getDType() {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                return INT64; // DATA_TYPE<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * Create a null dataset<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        LongDataset() {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        }<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>        /**<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * Create a zero-filled dataset of given shape<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         * @param shape<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         */<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        LongDataset(final int... shape) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                if (shape != null) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        size = ShapeUtils.calcSize(shape);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        this.shape = shape.clone();<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        try {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                                odata = data = createArray(size);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        } catch (Throwable t) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                throw new IllegalArgumentException(t);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        }<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>        /**<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         * Create a dataset using given data<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @param data<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         * @param shape<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         *            (can be null to create 1D dataset)<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        LongDataset(final long[] data, int... shape) { // PRIM_TYPE<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                if (data == null) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        throw new IllegalArgumentException("Data must not be null");<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                if (shape == null || shape.length == 0) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                        shape = new int[] { data.length };<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                size = ShapeUtils.calcSize(shape);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                if (size != data.length) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                        Arrays.toString(shape), data.length));<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                }<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                this.shape = size == 0 ? null : shape.clone();<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>                odata = this.data = data;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>        }<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>        /**<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * Copy a dataset<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         * @param dataset<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         */<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        LongDataset(final LongDataset dataset) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                copyToView(dataset, this, true, true);<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>                try {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        if (dataset.stride == null) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                if (dataset.data != null) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                                        odata = data = dataset.data.clone();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                }<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        } else {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                offset = 0;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                stride = null;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                base = null;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                odata = data = createArray(size);<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                IndexIterator iter = dataset.getIterator();<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                                for (int i = 0; iter.hasNext(); i++) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                                        data[i] = dataset.data[iter.index];<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                                }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        }<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                } catch (Throwable t) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        throw new IllegalArgumentException(t);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                }<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>        /**<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         * Copy and cast a dataset to this class type<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         * @param dataset<a name="line.138"></a>
+<span class="sourceLineNo">139</span>         */<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        LongDataset(final Dataset dataset) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                copyToView(dataset, this, true, false);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                offset = 0;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                stride = null;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                base = null;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                try {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        odata = data = createArray(size);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                } catch (Throwable t) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                        throw new IllegalArgumentException(t);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                }<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                IndexIterator iter = dataset.getIterator();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                for (int i = 0; iter.hasNext(); i++) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                        data[i] = dataset.getElementLongAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                }<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>        @Override<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        public boolean equals(Object obj) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                if (this == obj) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        return true;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                }<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>                if (obj == null) {<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 (!getClass().equals(obj.getClass())) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                        if (getRank() == 0) { // for zero-rank datasets<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                                return obj.equals(getObjectAbs(offset));<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                        }<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><a name="line.173"></a>
+<span class="sourceLineNo">174</span>                LongDataset other = (LongDataset) obj;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                if (size != other.size) {<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>                if (!Arrays.equals(shape, other.shape)) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                        return false;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                if (data == other.data &amp;&amp; stride == null &amp;&amp; other.stride == null) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        return true;<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>                IndexIterator iter = getIterator();<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                IndexIterator oiter = other.getIterator();<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                        if (data[iter.index] != other.data[oiter.index]) { // OBJECT_UNEQUAL<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                                return false;<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>                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 int hashCode() {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                return super.hashCode();<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 LongDataset clone() {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                return new LongDataset(this);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        }<a name="line.203"></a>
+<span class="sourceLineNo">204</span><a name="line.204"></a>
+<span class="sourceLineNo">205</span>        /**<a name="line.205"></a>
+<span class="sourceLineNo">206</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * sequences or arrays are padded with zeros.<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         *<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * @param obj<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         * @return dataset with contents given by input<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         */<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        static LongDataset createFromObject(final Object obj) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                LongDataset result = new LongDataset();<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>                if (obj != null) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                        result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                        result.size = ShapeUtils.calcSize(result.shape);<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>                                result.odata = result.data = createArray(result.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(result.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><a name="line.225"></a>
+<span class="sourceLineNo">226</span>                        int[] pos = new int[result.shape.length];<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                        result.fillData(obj, 0, pos);<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>                return result;<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>         *<a name="line.234"></a>
+<span class="sourceLineNo">235</span>         * @param stop<a name="line.235"></a>
+<span class="sourceLineNo">236</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         */<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        static LongDataset createRange(final double stop) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                return createRange(0, stop, 1);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        }<a name="line.240"></a>
+<span class="sourceLineNo">241</span>        <a name="line.241"></a>
+<span class="sourceLineNo">242</span>        /**<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         *<a name="line.243"></a>
+<span class="sourceLineNo">244</span>         * @param start<a name="line.244"></a>
+<span class="sourceLineNo">245</span>         * @param stop<a name="line.245"></a>
+<span class="sourceLineNo">246</span>         * @param step<a name="line.246"></a>
+<span class="sourceLineNo">247</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.247"></a>
+<span class="sourceLineNo">248</span>         */<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        static LongDataset createRange(final double start, final double stop, final double step) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                int size = calcSteps(start, stop, step);<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                LongDataset result = new LongDataset(size);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                for (int i = 0; i &lt; size; i++) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        result.data[i] = (long) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                }<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                return result;<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>        /**<a name="line.258"></a>
+<span class="sourceLineNo">259</span>         * @param shape<a name="line.259"></a>
+<span class="sourceLineNo">260</span>         * @return a dataset filled with ones<a name="line.260"></a>
+<span class="sourceLineNo">261</span>         */<a name="line.261"></a>
+<span class="sourceLineNo">262</span>        static LongDataset ones(final int... shape) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                return new LongDataset(shape).fill(1);<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 LongDataset fill(final Object obj) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                setDirty();<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                long dv = DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                IndexIterator iter = getIterator();<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                while (iter.hasNext()) {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                        data[iter.index] = dv;<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>                return this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         * @return data buffer as linear array<a name="line.280"></a>
+<span class="sourceLineNo">281</span>         */<a name="line.281"></a>
+<span class="sourceLineNo">282</span>        public long[] getData() { // PRIM_TYPE<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                return data;<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>        protected int getBufferLength() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                if (data == null)<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                        return 0;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                return data.length;<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>        @Override<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        public LongDataset getView(boolean deepCopyMetadata) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                LongDataset view = new LongDataset();<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                view.setData();<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                return view;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>        }<a name="line.299"></a>
+<span class="sourceLineNo">300</span><a name="line.300"></a>
+<span class="sourceLineNo">301</span>        /**<a name="line.301"></a>
+<span class="sourceLineNo">302</span>         * 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.302"></a>
+<span class="sourceLineNo">303</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.303"></a>
+<span class="sourceLineNo">304</span>         *<a name="line.304"></a>
+<span class="sourceLineNo">305</span>         * @param index<a name="line.305"></a>
+<span class="sourceLineNo">306</span>         *            absolute index<a name="line.306"></a>
+<span class="sourceLineNo">307</span>         * @return value<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         */<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        public long getAbs(final int index) { // PRIM_TYPE<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                return data[index];<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>        @Override<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                return data[index] != 0; // BOOLEAN_FALSE<a name="line.315"></a>
+<span class="sourceLineNo">316</span>        }<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span>        @Override<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        public double getElementDoubleAbs(final int index) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                return data[index]; // BOOLEAN_ZERO<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 long getElementLongAbs(final int index) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                return data[index]; // BOOLEAN_ZERO // OMIT_TOLONG_INT<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>        @Override<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        public Object getObjectAbs(final int index) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                return data[index];<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>        @Override<a name="line.333"></a>
+<span class="sourceLineNo">334</span>        public String getStringAbs(final int index) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                return stringFormat == null ? String.format("%d", data[index]) : // FORMAT_STRING<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                        stringFormat.format(data[index]);<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>         * Set a value at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.341"></a>
+<span class="sourceLineNo">342</span>         *<a name="line.342"></a>
+<span class="sourceLineNo">343</span>         * @param index<a name="line.343"></a>
+<span class="sourceLineNo">344</span>         *            absolute index<a name="line.344"></a>
+<span class="sourceLineNo">345</span>         * @param val<a name="line.345"></a>
+<span class="sourceLineNo">346</span>         *            new value<a name="line.346"></a>
+<span class="sourceLineNo">347</span>         */<a name="line.347"></a>
+<span class="sourceLineNo">348</span>        public void setAbs(final int index, final long val) { // PRIM_TYPE<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                setDirty();<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                data[index] = val;<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>        @Override<a name="line.353"></a>
+<span class="sourceLineNo">354</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                setDirty();<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                long[] dsrc = (long[]) src; // PRIM_TYPE<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                data[dindex] = dsrc[sindex];<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 void setObjectAbs(final int index, final Object obj) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                if (index &lt; 0 || index &gt; data.length) {<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                        throw new IndexOutOfBoundsException("Index given is outside dataset");<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>                setAbs(index, DTypeUtils.toLong(obj)); // FROM_OBJECT<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>         * @return item in first position<a name="line.370"></a>
+<span class="sourceLineNo">371</span>         * @since 2.0<a name="line.371"></a>
+<span class="sourceLineNo">372</span>         */<a name="line.372"></a>
+<span class="sourceLineNo">373</span>        public long get() { // PRIM_TYPE<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                return data[getFirst1DIndex()];<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>         * @return item in given position<a name="line.379"></a>
+<span class="sourceLineNo">380</span>         */<a name="line.380"></a>
+<span class="sourceLineNo">381</span>        public long get(final int i) { // PRIM_TYPE<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                return data[get1DIndex(i)];<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        }<a name="line.383"></a>
+<span class="sourceLineNo">384</span><a name="line.384"></a>
+<span class="sourceLineNo">385</span>        /**<a name="line.385"></a>
+<span class="sourceLineNo">386</span>         * @param i<a name="line.386"></a>
+<span class="sourceLineNo">387</span>         * @param j<a name="line.387"></a>
+<span class="sourceLineNo">388</span>         * @return item in given position<a name="line.388"></a>
+<span class="sourceLineNo">389</span>         */<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        public long get(final int i, final int j) { // PRIM_TYPE<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                return data[get1DIndex(i, j)];<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        }<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>        /**<a name="line.394"></a>
+<span class="sourceLineNo">395</span>         * @param pos<a name="line.395"></a>
+<span class="sourceLineNo">396</span>         * @return item in given position<a name="line.396"></a>
+<span class="sourceLineNo">397</span>         */<a name="line.397"></a>
+<span class="sourceLineNo">398</span>        public long get(final int... pos) { // PRIM_TYPE<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                return data[get1DIndex(pos)];<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>        @Override<a name="line.402"></a>
+<span class="sourceLineNo">403</span>        public Object getObject() {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                return Long.valueOf(get()); // CLASS_TYPE<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>        @Override<a name="line.407"></a>
+<span class="sourceLineNo">408</span>        public Object getObject(final int i) {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                return Long.valueOf(get(i)); // CLASS_TYPE<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>        @Override<a name="line.412"></a>
+<span class="sourceLineNo">413</span>        public Object getObject(final int i, final int j) {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                return Long.valueOf(get(i, j)); // CLASS_TYPE<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>        @Override<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        public Object getObject(final int... pos) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                return Long.valueOf(get(pos)); // CLASS_TYPE<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>        @Override<a name="line.422"></a>
+<span class="sourceLineNo">423</span>        public String getString() {<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                return getStringAbs(getFirst1DIndex());<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>        @Override<a name="line.427"></a>
+<span class="sourceLineNo">428</span>        public String getString(final int i) {<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                return getStringAbs(get1DIndex(i));<a name="line.429"></a>
+<span class="sourceLineNo">430</span>        }<a name="line.430"></a>
+<span class="sourceLineNo">431</span><a name="line.431"></a>
+<span class="sourceLineNo">432</span>        @Override<a name="line.432"></a>
+<span class="sourceLineNo">433</span>        public String getString(final int i, final int j) {<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                return getStringAbs(get1DIndex(i, j));<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 String getString(final int... pos) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                return getStringAbs(get1DIndex(pos));<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        }<a name="line.440"></a>
+<span class="sourceLineNo">441</span><a name="line.441"></a>
+<span class="sourceLineNo">442</span>        @Override<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        public double getDouble() {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                return get(); // BOOLEAN_ZERO<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>        @Override<a name="line.447"></a>
+<span class="sourceLineNo">448</span>        public double getDouble(final int i) {<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                return get(i); // BOOLEAN_ZERO<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>        @Override<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        public double getDouble(final int i, final int j) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                return get(i, j); // BOOLEAN_ZERO<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>        @Override<a name="line.457"></a>
+<span class="sourceLineNo">458</span>        public double getDouble(final int... pos) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                return get(pos); // BOOLEAN_ZERO<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>        @Override<a name="line.462"></a>
+<span class="sourceLineNo">463</span>        public float getFloat() {<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                return get(); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        }<a name="line.465"></a>
+<span class="sourceLineNo">466</span><a name="line.466"></a>
+<span class="sourceLineNo">467</span>        @Override<a name="line.467"></a>
+<span class="sourceLineNo">468</span>        public float getFloat(final int i) {<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                return get(i); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        }<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>        @Override<a name="line.472"></a>
+<span class="sourceLineNo">473</span>        public float getFloat(final int i, final int j) {<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_REAL_CAST<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 float getFloat(final int... pos) {<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                return get(pos); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        }<a name="line.480"></a>
+<span class="sourceLineNo">481</span><a name="line.481"></a>
+<span class="sourceLineNo">482</span>        @Override<a name="line.482"></a>
+<span class="sourceLineNo">483</span>        public long getLong() {<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.484"></a>
+<span class="sourceLineNo">485</span>        }<a name="line.485"></a>
+<span class="sourceLineNo">486</span><a name="line.486"></a>
+<span class="sourceLineNo">487</span>        @Override<a name="line.487"></a>
+<span class="sourceLineNo">488</span>        public long getLong(final int i) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.489"></a>
+<span class="sourceLineNo">490</span>        }<a name="line.490"></a>
+<span class="sourceLineNo">491</span><a name="line.491"></a>
+<span class="sourceLineNo">492</span>        @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span>        public long getLong(final int i, final int j) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.497"></a>
+<span class="sourceLineNo">498</span>        public long getLong(final int... pos) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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 getInt() {<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                return (int) get(); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.507"></a>
+<span class="sourceLineNo">508</span>        public int getInt(final int i) {<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                return (int) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.509"></a>
+<span class="sourceLineNo">510</span>        }<a name="line.510"></a>
+<span class="sourceLineNo">511</span><a name="line.511"></a>
+<span class="sourceLineNo">512</span>        @Override<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        public int getInt(final int i, final int j) {<a name="line.513"></a>
+<span class="sourceLineNo">514</span>                return (int) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.514"></a>
+<span class="sourceLineNo">515</span>        }<a name="line.515"></a>
+<span class="sourceLineNo">516</span><a name="line.516"></a>
+<span class="sourceLineNo">517</span>        @Override<a name="line.517"></a>
+<span class="sourceLineNo">518</span>        public int getInt(final int... pos) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                return (int) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.519"></a>
+<span class="sourceLineNo">520</span>        }<a name="line.520"></a>
+<span class="sourceLineNo">521</span><a name="line.521"></a>
+<span class="sourceLineNo">522</span>        @Override<a name="line.522"></a>
+<span class="sourceLineNo">523</span>        public short getShort() {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                return (short) get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.524"></a>
+<span class="sourceLineNo">525</span>        }<a name="line.525"></a>
+<span class="sourceLineNo">526</span><a name="line.526"></a>
+<span class="sourceLineNo">527</span>        @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        public short getShort(final int i) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                return (short) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.529"></a>
+<span class="sourceLineNo">530</span>        }<a name="line.530"></a>
+<span class="sourceLineNo">531</span><a name="line.531"></a>
+<span class="sourceLineNo">532</span>        @Override<a name="line.532"></a>
+<span class="sourceLineNo">533</span>        public short getShort(final int i, final int j) {<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                return (short) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.537"></a>
+<span class="sourceLineNo">538</span>        public short getShort(final int... pos) {<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                return (short) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.539"></a>
+<span class="sourceLineNo">540</span>        }<a name="line.540"></a>
+<span class="sourceLineNo">541</span><a name="line.541"></a>
+<span class="sourceLineNo">542</span>        @Override<a name="line.542"></a>
+<span class="sourceLineNo">543</span>        public byte getByte() {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                return (byte) get(); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte(final int i) {<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                return (byte) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.549"></a>
+<span class="sourceLineNo">550</span>        }<a name="line.550"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>        @Override<a name="line.552"></a>
+<span class="sourceLineNo">553</span>        public byte getByte(final int i, final int j) {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                return (byte) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte(final int... pos) {<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                return (byte) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.559"></a>
+<span class="sourceLineNo">560</span>        }<a name="line.560"></a>
+<span class="sourceLineNo">561</span><a name="line.561"></a>
+<span class="sourceLineNo">562</span>        @Override<a name="line.562"></a>
+<span class="sourceLineNo">563</span>        public boolean getBoolean() {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                return get() != 0; // BOOLEAN_FALSE<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>        @Override<a name="line.567"></a>
+<span class="sourceLineNo">568</span>        public boolean getBoolean(final int i) {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                return get(i) != 0; // BOOLEAN_FALSE<a name="line.569"></a>
+<span class="sourceLineNo">570</span>        }<a name="line.570"></a>
+<span class="sourceLineNo">571</span><a name="line.571"></a>
+<span class="sourceLineNo">572</span>        @Override<a name="line.572"></a>
+<span class="sourceLineNo">573</span>        public boolean getBoolean(final int i, final int j) {<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                return get(i, j) != 0; // BOOLEAN_FALSE<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>        @Override<a name="line.577"></a>
+<span class="sourceLineNo">578</span>        public boolean getBoolean(final int... pos) {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                return get(pos) != 0; // BOOLEAN_FALSE<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>         * Sets the value at first point to the passed value. The dataset must not be null<a name="line.583"></a>
+<span class="sourceLineNo">584</span>         *<a name="line.584"></a>
+<span class="sourceLineNo">585</span>         * @param value<a name="line.585"></a>
+<span class="sourceLineNo">586</span>         * @since 2.0<a name="line.586"></a>
+<span class="sourceLineNo">587</span>         */<a name="line.587"></a>
+<span class="sourceLineNo">588</span>        public void setItem(final long value) { // PRIM_TYPE<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                setAbs(getFirst1DIndex(), value);<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>         * Sets the value at a particular point to the passed value. The dataset must be 1D<a name="line.593"></a>
+<span class="sourceLineNo">594</span>         *<a name="line.594"></a>
+<span class="sourceLineNo">595</span>         * @param value<a name="line.595"></a>
+<span class="sourceLineNo">596</span>         * @param i<a name="line.596"></a>
+<span class="sourceLineNo">597</span>         */<a name="line.597"></a>
+<span class="sourceLineNo">598</span>        public void setItem(final long value, final int i) { // PRIM_TYPE<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                setAbs(get1DIndex(i), value);<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>         * Sets the value at a particular point to the passed value. The dataset must be 2D<a name="line.603"></a>
+<span class="sourceLineNo">604</span>         *<a name="line.604"></a>
+<span class="sourceLineNo">605</span>         * @param value<a name="line.605"></a>
+<span class="sourceLineNo">606</span>         * @param i<a name="line.606"></a>
+<span class="sourceLineNo">607</span>         * @param j<a name="line.607"></a>
+<span class="sourceLineNo">608</span>         */<a name="line.608"></a>
+<span class="sourceLineNo">609</span>        public void setItem(final long value, final int i, final int j) { // PRIM_TYPE<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                setAbs(get1DIndex(i, j), value);<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>         * Sets the value at a particular point to the passed value<a name="line.614"></a>
+<span class="sourceLineNo">615</span>         *<a name="line.615"></a>
+<span class="sourceLineNo">616</span>         * @param value<a name="line.616"></a>
+<span class="sourceLineNo">617</span>         * @param pos<a name="line.617"></a>
+<span class="sourceLineNo">618</span>         */<a name="line.618"></a>
+<span class="sourceLineNo">619</span>        public void setItem(final long value, final int... pos) { // PRIM_TYPE<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                setAbs(get1DIndex(pos), value);<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 void set(final Object obj) {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                setItem(DTypeUtils.toLong(obj)); // FROM_OBJECT<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 void set(final Object obj, final int i) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                setItem(DTypeUtils.toLong(obj), i); // FROM_OBJECT<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 void set(final Object obj, final int i, final int j) {<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                setItem(DTypeUtils.toLong(obj), i, j); // FROM_OBJECT<a name="line.635"></a>
+<span class="sourceLineNo">636</span>        }<a name="line.636"></a>
+<span class="sourceLineNo">637</span><a name="line.637"></a>
+<span class="sourceLineNo">638</span>        @Override<a name="line.638"></a>
+<span class="sourceLineNo">639</span>        public void set(final Object obj, int... pos) {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                        pos = new int[shape.length];<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>                setItem(DTypeUtils.toLong(obj), pos); // FROM_OBJECT<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>        @Override<a name="line.647"></a>
+<span class="sourceLineNo">648</span>        public void resize(int... newShape) {<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                setDirty();<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                final IndexIterator iter = getIterator();<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                final int nsize = ShapeUtils.calcSize(newShape);<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                final long[] ndata; // PRIM_TYPE<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                try {<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                        ndata = createArray(nsize);<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                } catch (Throwable t) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                        throw new IllegalArgumentException(t);<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                }<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                for (int i = 0; iter.hasNext() &amp;&amp; i &lt; nsize; i++) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        ndata[i] = data[iter.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>                odata = data = ndata;<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                size = nsize;<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                shape = newShape;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                stride = null;<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                offset = 0;<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                base = null;<a name="line.668"></a>
+<span class="sourceLineNo">669</span>        }<a name="line.669"></a>
+<span class="sourceLineNo">670</span><a name="line.670"></a>
+<span class="sourceLineNo">671</span>        @Override<a name="line.671"></a>
+<span class="sourceLineNo">672</span>        public LongDataset sort(Integer axis) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                setDirty();<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                if (axis == null) {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        if (stride == null) {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                                Arrays.sort(data);<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                        } else {<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                                LongDataset ads = clone().sort(null);<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                                setSlicedView(getView(false), ads);<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                        }<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                } else {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                        axis = checkAxis(axis);<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                        <a name="line.683"></a>
+<span class="sourceLineNo">684</span>                        LongDataset ads = new LongDataset(shape[axis]);<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                        PositionIterator pi = getPositionIterator(axis);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                        int[] pos = pi.getPos();<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                        boolean[] hit = pi.getOmit();<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                        while (pi.hasNext()) {<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                                copyItemsFromAxes(pos, hit, ads);<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                                Arrays.sort(ads.data);<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                                setItemsOnAxes(pos, hit, ads.data);<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>                return this;<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                // throw new UnsupportedOperationException("Cannot sort dataset"); // BOOLEAN_USE<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 getUniqueItems() {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                Set&lt;Long&gt; set = new TreeSet&lt;Long&gt;(); // CLASS_TYPE<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                IndexIterator it = getIterator();<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                while (it.hasNext()) {<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                        set.add(data[it.index]);<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>                LongDataset u = new LongDataset(set.size()); // CLASS_TYPE<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                int i = 0;<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                long[] udata = u.getData(); // PRIM_TYPE<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                for (Long v : set) { // CLASS_TYPE<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        udata[i++] = v;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                return u;<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 LongDataset getSlice(final SliceIterator siter) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                LongDataset result = new LongDataset(siter.getShape());<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                long[] rdata = result.data; // PRIM_TYPE<a name="line.718"></a>
+<span class="sourceLineNo">719</span><a name="line.719"></a>
+<span class="sourceLineNo">720</span>                for (int i = 0; siter.hasNext(); i++)<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                        rdata[i] = data[siter.index];<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                return result;<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>        @Override<a name="line.727"></a>
+<span class="sourceLineNo">728</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                IndexIterator riter = result.getIterator();<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                result.setDirty();<a name="line.730"></a>
+<span class="sourceLineNo">731</span><a name="line.731"></a>
+<span class="sourceLineNo">732</span>                long[] rdata = ((LongDataset) result).data; // PRIM_TYPE<a name="line.732"></a>
+<span class="sourceLineNo">733</span><a name="line.733"></a>
+<span class="sourceLineNo">734</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                        rdata[riter.index] = data[iter.index];<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                }<a name="line.736"></a>
+<span class="sourceLineNo">737</span>        }<a name="line.737"></a>
+<span class="sourceLineNo">738</span><a name="line.738"></a>
+<span class="sourceLineNo">739</span>        @Override<a name="line.739"></a>
+<span class="sourceLineNo">740</span>        public LongDataset setByBoolean(final Object obj, Dataset selection) {<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                setDirty();<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                if (obj instanceof Dataset) {<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                        final Dataset ds = (Dataset) obj;<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                        if (length != ds.getSize()) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                                throw new IllegalArgumentException(<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.751"></a>
+<span class="sourceLineNo">752</span><a name="line.752"></a>
+<span class="sourceLineNo">753</span>                        while (biter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                                data[biter.index] = ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        }<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                } else {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                        final long dv = DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.758"></a>
+<span class="sourceLineNo">759</span><a name="line.759"></a>
+<span class="sourceLineNo">760</span>                        while (biter.hasNext()) {<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                                data[biter.index] = dv;<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>                return this;<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>        @Override<a name="line.767"></a>
+<span class="sourceLineNo">768</span>        public LongDataset setBy1DIndex(final Object obj, final Dataset index) {<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                setDirty();<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                if (obj instanceof Dataset) {<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                        final Dataset ds = (Dataset) obj;<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                        if (index.getSize() != ds.getSize()) {<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                                throw new IllegalArgumentException(<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                                                "Number of items in index dataset does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                        final IntegerIterator iter = new IntegerIterator(index, size);<a name="line.778"></a>
+<span class="sourceLineNo">779</span><a name="line.779"></a>
+<span class="sourceLineNo">780</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                                data[iter.index] = ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                        }<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                } else {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                        final long dv = DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        IntegerIterator iter = new IntegerIterator(index, size);<a name="line.785"></a>
+<span class="sourceLineNo">786</span><a name="line.786"></a>
+<span class="sourceLineNo">787</span>                        while (iter.hasNext()) {<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                                data[iter.index] = dv;<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                        }<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                }<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                return this;<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 LongDataset setByIndexes(final Object obj, final Object... indexes) {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                setDirty();<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                final int[] pos = iter.getPos();<a name="line.798"></a>
+<span class="sourceLineNo">799</span><a name="line.799"></a>
+<span class="sourceLineNo">800</span>                if (obj instanceof Dataset) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                        final Dataset ds = (Dataset) obj;<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                                throw new IllegalArgumentException(<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                                                "Number of items in index datasets does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.807"></a>
+<span class="sourceLineNo">808</span><a name="line.808"></a>
+<span class="sourceLineNo">809</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                                setItem(ds.getElementLongAbs(oiter.index), pos); // GET_ELEMENT_WITH_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>                        final long dv = DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.813"></a>
+<span class="sourceLineNo">814</span><a name="line.814"></a>
+<span class="sourceLineNo">815</span>                        while (iter.hasNext()) {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                                setItem(dv, pos);<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                        }<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                }<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                return this;<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>        LongDataset setSlicedView(Dataset view, Dataset d) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                setDirty();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span>                while (it.hasNext()) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                        data[it.aIndex] = it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                }<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                return this;<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 LongDataset setSlice(final Object obj, final IndexIterator siter) {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                setDirty();<a name="line.835"></a>
+<span class="sourceLineNo">836</span><a name="line.836"></a>
+<span class="sourceLineNo">837</span>                if (obj instanceof IDataset) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                        final IDataset ds = (IDataset) obj;<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                        final int[] oshape = ds.getShape();<a name="line.839"></a>
+<span class="sourceLineNo">840</span><a name="line.840"></a>
+<span class="sourceLineNo">841</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                                throw new IllegalArgumentException(String.format(<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                                                Arrays.toString(siter.getShape())));<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>                        if (ds instanceof Dataset) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                final Dataset ads = (Dataset) ds;<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                final IndexIterator oiter = ads.getIterator();<a name="line.849"></a>
+<span class="sourceLineNo">850</span><a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                        data[siter.index] = ads.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                        } else {<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                final int[] pos = oiter.getPos();<a name="line.855"></a>
+<span class="sourceLineNo">856</span><a name="line.856"></a>
+<span class="sourceLineNo">857</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                                        data[siter.index] = ds.getLong(pos); // PRIM_TYPE<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        }<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                } else {<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        try {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                long v = DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.862"></a>
+<span class="sourceLineNo">863</span><a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                while (siter.hasNext())<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                                        data[siter.index] = v;<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                        } catch (IllegalArgumentException e) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<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 this;<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>        @Override<a name="line.873"></a>
+<span class="sourceLineNo">874</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                long[] ddata = (long[]) dest.getBuffer(); // PRIM_TYPE<a name="line.875"></a>
+<span class="sourceLineNo">876</span><a name="line.876"></a>
+<span class="sourceLineNo">877</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.878"></a>
+<span class="sourceLineNo">879</span><a name="line.879"></a>
+<span class="sourceLineNo">880</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.880"></a>
+<span class="sourceLineNo">881</span><a name="line.881"></a>
+<span class="sourceLineNo">882</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<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>                dest.setDirty();<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                        ddata[diter.index] = data[siter.index];<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                }<a name="line.889"></a>
+<span class="sourceLineNo">890</span>        }<a name="line.890"></a>
+<span class="sourceLineNo">891</span><a name="line.891"></a>
+<span class="sourceLineNo">892</span>        @Override<a name="line.892"></a>
+<span class="sourceLineNo">893</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                setDirty();<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                long[] sdata = (long[]) src; // PRIM_TYPE<a name="line.895"></a>
+<span class="sourceLineNo">896</span><a name="line.896"></a>
+<span class="sourceLineNo">897</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.897"></a>
+<span class="sourceLineNo">898</span><a name="line.898"></a>
+<span class="sourceLineNo">899</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                        throw new IllegalArgumentException("destination array is not large enough");<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>                for (int i = 0; siter.hasNext(); i++) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        data[siter.index] = sdata[i];<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                }<a name="line.905"></a>
+<span class="sourceLineNo">906</span>        }<a name="line.906"></a>
+<span class="sourceLineNo">907</span><a name="line.907"></a>
+<span class="sourceLineNo">908</span>        private List&lt;int[]&gt; findPositions(final long value) { // PRIM_TYPE<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                IndexIterator iter = getIterator(true);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                List&lt;int[]&gt; posns = new ArrayList&lt;int[]&gt;();<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                int[] pos = iter.getPos();<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>                        while (iter.hasNext()) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                if (data[iter.index] == value) {<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                        posns.add(pos.clone());<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>                }<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                return posns;<a name="line.920"></a>
+<span class="sourceLineNo">921</span>        }<a name="line.921"></a>
+<span class="sourceLineNo">922</span><a name="line.922"></a>
+<span class="sourceLineNo">923</span>        @Override<a name="line.923"></a>
+<span class="sourceLineNo">924</span>        public int[] maxPos(boolean... ignoreInvalids) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                List&lt;int[]&gt; max = md.getMaximumPositions(ignoreInvalids);<a name="line.928"></a>
+<span class="sourceLineNo">929</span><a name="line.929"></a>
+<span class="sourceLineNo">930</span>                if (max == null) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                        max = findPositions(md.getMaximum(ignoreInvalids).longValue()); // PRIM_TYPE<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.933"></a>
+<span class="sourceLineNo">934</span><a name="line.934"></a>
+<span class="sourceLineNo">935</span>                        md.setMaximumPositions(max);<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>                return max.get(0); // first maximum<a name="line.938"></a>
+<span class="sourceLineNo">939</span>        }<a name="line.939"></a>
+<span class="sourceLineNo">940</span><a name="line.940"></a>
+<span class="sourceLineNo">941</span>        @Override<a name="line.941"></a>
+<span class="sourceLineNo">942</span>        public int[] minPos(boolean... ignoreInvalids) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                List&lt;int[]&gt; min = md.getMinimumPositions(ignoreInvalids);<a name="line.946"></a>
+<span class="sourceLineNo">947</span><a name="line.947"></a>
+<span class="sourceLineNo">948</span>                if (min == null) {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                        min = findPositions(md.getMinimum(ignoreInvalids).longValue()); // PRIM_TYPE<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.951"></a>
+<span class="sourceLineNo">952</span><a name="line.952"></a>
+<span class="sourceLineNo">953</span>                        md.setMinimumPositions(min);<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 min.get(0); // first minimum<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 containsNans() {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                return false;<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>        @Override<a name="line.964"></a>
+<span class="sourceLineNo">965</span>        public boolean containsInfs() {<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>                return false;<a name="line.971"></a>
+<span class="sourceLineNo">972</span>        }<a name="line.972"></a>
+<span class="sourceLineNo">973</span><a name="line.973"></a>
+<span class="sourceLineNo">974</span>        @Override<a name="line.974"></a>
+<span class="sourceLineNo">975</span>        public LongDataset iadd(final Object b) {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                setDirty();<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                if (bds.getSize() == 1) {<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                        final IndexIterator it = getIterator();<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                        final int bOffset = bds.getOffset();<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                        if (useLong) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                while (it.hasNext()) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                        data[it.index] += lb;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                }<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                        } else {<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                final double db = bds.getElementDoubleAbs(bOffset);<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] += db;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                }<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                        }<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                } else {<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                        it.setOutputDouble(!useLong);<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                        if (useLong) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                                while (it.hasNext()) {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                        data[it.aIndex] += it.bLong;<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                }<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                        } else {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                while (it.hasNext()) {<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        data[it.aIndex] += it.bDouble;<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                }<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                        }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                return this;<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 LongDataset isubtract(final Object b) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                setDirty();<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                if (bds.getSize() == 1) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                        final IndexIterator it = getIterator();<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                        final int bOffset = bds.getOffset();<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                        if (useLong) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                while (it.hasNext()) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                        data[it.index] -= lb;<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>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                while (it.hasNext()) {<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                        data[it.index] -= db;<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                }<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                        }<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                } else {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                        if (useLong) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                it.setOutputDouble(false);<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                                while (it.hasNext()) {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                        data[it.aIndex] -= it.bLong;<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                }<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                        } else {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                it.setOutputDouble(true);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                while (it.hasNext()) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                        data[it.aIndex] -= it.bDouble;<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>                return this;<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>        @Override<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>        public LongDataset imultiply(final Object b) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                setDirty();<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                if (bds.getSize() == 1) {<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                        final IndexIterator it = getIterator();<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                        final int bOffset = bds.getOffset();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                        if (useLong) {<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                while (it.hasNext()) {<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                                        data[it.index] *= lb;<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                                }<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                        } else {<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                                while (it.hasNext()) {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                                        data[it.index] *= db;<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                        }<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                } else {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                        it.setOutputDouble(!useLong);<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                        if (useLong) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                while (it.hasNext()) {<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                        data[it.aIndex] *= it.bLong;<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>                                        data[it.aIndex] *= it.bDouble;<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>                return this;<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>        @Override<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>        public LongDataset idivide(final Object b) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                setDirty();<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                if (bds.getSize() == 1) {<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                        final int bOffset = bds.getOffset();<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                        if (useLong) {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                if (lb == 0) { // INT_USE<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        fill(0); // INT_USE<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                } else { // INT_USE<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                final IndexIterator it = getIterator();<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                while (it.hasNext()) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                        data[it.index] /= lb;<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                } // INT_USE<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        } else {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                if (db == 0) { // INT_USE<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        fill(0); // INT_USE<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                } else { // INT_USE<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                final IndexIterator it = getIterator();<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                while (it.hasNext()) {<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                        data[it.index] /= db;<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                                } // INT_USE<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        }<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                } else {<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                        it.setOutputDouble(!useLong);<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        if (useLong) {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                while (it.hasNext()) {<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                        if (it.bLong == 0) { // INT_USE<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                        } else { // INT_USE<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                        data[it.aIndex] /= it.bLong;<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        } // INT_USE<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                }<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                        } else {<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                while (it.hasNext()) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                        if (it.bDouble == 0) { // INT_USE<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                        } else { // INT_USE<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                        data[it.aIndex] /= it.bDouble;<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                        } // INT_USE<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>                }<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                return this;<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>        @Override<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>        public LongDataset ifloor() {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                return this;<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>        }<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span><a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>        @Override<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>        public LongDataset iremainder(final Object b) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                setDirty();<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                if (bds.getSize() == 1) {<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                        final int bOffset = bds.getOffset();<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                        if (useLong) {<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                if (lb == 0) { // INT_USE<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                        fill(0); // INT_USE<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                } else { // INT_USE<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                final IndexIterator it = getIterator();<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                while (it.hasNext()) {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                        data[it.index] %= lb;<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                }<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                                } // INT_USE<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                        } else {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                if (lb == 0) { // INT_USE<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        fill(0); // INT_USE<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                } else { // INT_USE<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                                final IndexIterator it = getIterator();<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                                while (it.hasNext()) {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                                        data[it.index] %= lb;<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                                }<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                                } // INT_USE<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                        }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                } else {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                        it.setOutputDouble(!useLong);<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                        if (useLong) {<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                while (it.hasNext()) {<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                                try {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                                data[it.aIndex] %= it.bLong; // INT_EXCEPTION<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                } catch (ArithmeticException e) {<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                        data[it.aIndex] = 0;<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>                                        data[it.aIndex] %= it.bDouble;<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>                }<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                return this;<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>        }<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span><a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>        @Override<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>        public LongDataset ipower(final Object b) {<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                setDirty();<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                if (bds.getSize() == 1) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                        final int bOffset = bds.getOffset();<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                        final double vr = bds.getElementDoubleAbs(bOffset);<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                        final IndexIterator it = getIterator();<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                        if (bds.isComplex()) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                                final double vi = bds.getElementDoubleAbs(bOffset + 1);<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                if (vi == 0) {<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 v = Math.pow(data[it.index], vr);<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                                                        data[it.index] = 0; // INT_USE<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                                                } else { // INT_USE<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                                                data[it.index] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                                                } // INT_USE<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                                        }<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                                } else {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                        final Complex zv = new Complex(vr, vi);<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                                        while (it.hasNext()) {<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                                                Complex zd = new Complex(data[it.index], 0);<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                                                final double v = zd.pow(zv).getReal();<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                                                        data[it.index] = 0; // INT_USE<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                                                } else { // INT_USE<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                                                data[it.index] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                                                } // INT_USE<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                        }<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                }<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                        } else {// NAN_OMIT<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                                while (it.hasNext()) {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                        final double v = Math.pow(data[it.index], vr);<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                                data[it.index] = 0; // INT_USE<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                        } else { // INT_USE<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                        data[it.index] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                        } // INT_USE<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                }<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                        }<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                } else {<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                        it.setOutputDouble(true);<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                        if (bds.isComplex()) {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                while (it.hasNext()) {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                        final double v = new Complex(it.aDouble, 0).pow(zv).getReal();<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                        } else { // INT_USE<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                        data[it.aIndex] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                                        } // INT_USE<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                                }<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        } else {// NAN_OMIT<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                                while (it.hasNext()) {<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                                        final double v = Math.pow(it.aDouble, it.bDouble);<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                        } else { // INT_USE<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                                        data[it.aIndex] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                        } // INT_USE<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                }<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                        }<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                }<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                return this;<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>        @Override<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                it.setOutputDouble(true);<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                double sum = 0;<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                double comp = 0;<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                {<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                        if (w == null) {<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                while (it.hasNext()) {<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                        final double err = diff * diff - comp;<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                                        final double temp = sum + err;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                        comp = (temp - sum) - err;<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                                        sum = temp;<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                }<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        } else {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                IndexIterator itw = w.getIterator();<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                                        final double err = diff * diff * w.getElementDoubleAbs(itw.index) - comp;<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                        final double temp = sum + err;<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                        comp = (temp - sum) - err;<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                        sum = temp;<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                }<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                        }<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                return sum;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Maths.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Maths.html
new file mode 100644
index 0000000..00fbff7
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Maths.html
@@ -0,0 +1,37003 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.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.apache.commons.math3.complex.Complex;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.eclipse.january.dataset.DTypeUtils;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.eclipse.january.dataset.Comparisons.Monotonicity;<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> * Mathematics class<a name="line.26"></a>
+<span class="sourceLineNo">027</span> */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>public class Maths {<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>        // DO NOT EDIT THIS FILE, EDIT internal/template/MathsPreface.java INSTEAD<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>         * Unwrap result from mathematical methods if necessary<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * <a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * @param o<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         * @param a<a name="line.36"></a>
+<span class="sourceLineNo">037</span>         * @return a dataset if a is a dataset or an object of the same class as o<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         */<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        public static Object unwrap(final Dataset o, final Object a) {<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                return a instanceof Dataset ? o : o.getObjectAbs(o.getOffset());<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>         * Unwrap result from mathematical methods if necessary<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * <a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @param o<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         * @param a<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @return a dataset if either a and b are datasets or an object of the same<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         *         class as o<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         */<a name="line.50"></a>
+<span class="sourceLineNo">051</span>        public static Object unwrap(final Dataset o, final Object a, final Object b) {<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return (a instanceof Dataset || b instanceof Dataset) ? o : o.getObjectAbs(o.getOffset());<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>         * Unwrap result from mathematical methods if necessary<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * <a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param o<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param a<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @return a dataset if any inputs are datasets or an object of the same<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         *         class as o<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        public static Object unwrap(final Dataset o, final Object... a) {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                boolean isAnyDataset = false;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                for (Object obj : a) {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                        if (obj instanceof Dataset) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                                isAnyDataset = true;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                                break;<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>                return isAnyDataset ? o : o.getObjectAbs(o.getOffset());<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>         * @param a<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * @param b<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) {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                return floorDivide(a, b, null);<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>         * @param o<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         *            output can be null - in which case, a new dataset is created<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         * @return floor divide of a and b<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        public static Dataset floorDivide(final Object a, final Object b, final Dataset o) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                return Maths.divideTowardsFloor(a, b, o).ifloor();<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>         * @param a<a name="line.95"></a>
+<span class="sourceLineNo">096</span>         * @param b<a name="line.96"></a>
+<span class="sourceLineNo">097</span>         * @return floor remainder of a and b<a name="line.97"></a>
+<span class="sourceLineNo">098</span>         */<a name="line.98"></a>
+<span class="sourceLineNo">099</span>        public static Dataset floorRemainder(final Object a, final Object b) {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                return floorRemainder(a, b, 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>
+<span class="sourceLineNo">104</span>         * @param a<a name="line.104"></a>
+<span class="sourceLineNo">105</span>         * @param b<a name="line.105"></a>
+<span class="sourceLineNo">106</span>         * @param o<a name="line.106"></a>
+<span class="sourceLineNo">107</span>         *            output can be null - in which case, a new dataset is created<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * @return floor remainder of a and b<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         */<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        public static Dataset floorRemainder(final Object a, final Object b, final Dataset o) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                Dataset dq = floorDivide(da, db);<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                dq.imultiply(db);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                return Maths.subtract(da, dq, o);<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>         * Find reciprocal from dataset<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         * <a name="line.120"></a>
+<span class="sourceLineNo">121</span>         * @param a<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         * @return reciprocal dataset<a name="line.122"></a>
+<span class="sourceLineNo">123</span>         */<a name="line.123"></a>
+<span class="sourceLineNo">124</span>        public static Dataset reciprocal(final Object a) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                return reciprocal(a, null);<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>         * Find reciprocal from dataset<a name="line.129"></a>
+<span class="sourceLineNo">130</span>         * <a name="line.130"></a>
+<span class="sourceLineNo">131</span>         * @param a<a name="line.131"></a>
+<span class="sourceLineNo">132</span>         * @param o<a name="line.132"></a>
+<span class="sourceLineNo">133</span>         *            output can be null - in which case, a new dataset is created<a name="line.133"></a>
+<span class="sourceLineNo">134</span>         * @return reciprocal dataset<a name="line.134"></a>
+<span class="sourceLineNo">135</span>         */<a name="line.135"></a>
+<span class="sourceLineNo">136</span>        public static Dataset reciprocal(final Object a, final Dataset o) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                return Maths.divide(1, da, o);<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>         * abs - absolute value of each element<a name="line.142"></a>
+<span class="sourceLineNo">143</span>         * <a name="line.143"></a>
+<span class="sourceLineNo">144</span>         * @param a<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * @return dataset<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         */<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        public static Dataset abs(final Object a) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                return abs(a, null);<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>         * abs - absolute value of each element<a name="line.152"></a>
+<span class="sourceLineNo">153</span>         * <a name="line.153"></a>
+<span class="sourceLineNo">154</span>         * @param a<a name="line.154"></a>
+<span class="sourceLineNo">155</span>         * @param o<a name="line.155"></a>
+<span class="sourceLineNo">156</span>         *            output can be null - in which case, a new dataset is created<a name="line.156"></a>
+<span class="sourceLineNo">157</span>         * @return dataset<a name="line.157"></a>
+<span class="sourceLineNo">158</span>         */<a name="line.158"></a>
+<span class="sourceLineNo">159</span>        public static Dataset abs(final Object a, final Dataset o) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true, true, false);<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                final Dataset result = it.getOutput();<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                final int is = result.getElementsPerItem();<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                final int dt = result.getDType();<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                final int as = da.getElementsPerItem();<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                final boolean reset = result == o &amp;&amp; is &gt; 1;<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>                switch (dt) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                case Dataset.INT8:<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        it.setOutputDouble(false);<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span>                        while (it.hasNext()) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                                oi8data[it.oIndex] = (byte) Math.abs(it.aLong);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                        }<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                        break;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                case Dataset.INT16:<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                        it.setOutputDouble(false);<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>                        while (it.hasNext()) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                                oi16data[it.oIndex] = (short) Math.abs(it.aLong);<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                        }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                        break;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                case Dataset.INT32:<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                        it.setOutputDouble(false);<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>                        while (it.hasNext()) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                                oi32data[it.oIndex] = (int) Math.abs(it.aLong);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                        }<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                        break;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                case Dataset.INT64:<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                        it.setOutputDouble(false);<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>                        while (it.hasNext()) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                                oi64data[it.oIndex] = Math.abs(it.aLong);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        }<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        break;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                case Dataset.ARRAYINT8:<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        it.setOutputDouble(false);<a name="line.203"></a>
+<span class="sourceLineNo">204</span><a name="line.204"></a>
+<span class="sourceLineNo">205</span>                        if (is == 1) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                                while (it.hasNext()) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                                        oai8data[it.oIndex] = (byte) Math.abs(it.aLong);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                                }<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        } else if (as == 1) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                                while (it.hasNext()) {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                                        byte ox = (byte) Math.abs(it.aLong);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                                                oai8data[it.oIndex + j] = ox;<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>                        } else {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                                while (it.hasNext()) {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                                        oai8data[it.oIndex] = (byte) Math.abs(it.aLong);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                                                oai8data[it.oIndex + j] = (byte) Math.abs(da.getElementLongAbs(it.aIndex + j));<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>                        break;<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                case Dataset.ARRAYINT16:<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                        it.setOutputDouble(false);<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>                        if (is == 1) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                                while (it.hasNext()) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                                        oai16data[it.oIndex] = (short) Math.abs(it.aLong);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                                }<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                        } else if (as == 1) {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                                while (it.hasNext()) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                                        short ox = (short) Math.abs(it.aLong);<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                                                oai16data[it.oIndex + j] = ox;<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>                        } else {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                                while (it.hasNext()) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                                        oai16data[it.oIndex] = (short) Math.abs(it.aLong);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                                                oai16data[it.oIndex + j] = (short) Math.abs(da.getElementLongAbs(it.aIndex + j));<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>                        break;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                case Dataset.ARRAYINT32:<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                        it.setOutputDouble(false);<a name="line.251"></a>
+<span class="sourceLineNo">252</span><a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        if (is == 1) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                                while (it.hasNext()) {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                                        oai32data[it.oIndex] = (int) Math.abs(it.aLong);<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                                }<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                        } else if (as == 1) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                                while (it.hasNext()) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                                        int ox = (int) Math.abs(it.aLong);<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                                                oai32data[it.oIndex + j] = ox;<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>                        } else {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                                while (it.hasNext()) {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                                        oai32data[it.oIndex] = (int) Math.abs(it.aLong);<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                                                oai32data[it.oIndex + j] = (int) Math.abs(da.getElementLongAbs(it.aIndex + j));<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>                        break;<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                case Dataset.ARRAYINT64:<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                        it.setOutputDouble(false);<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>                        if (is == 1) {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                                while (it.hasNext()) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                                        oai64data[it.oIndex] = Math.abs(it.aLong);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                                }<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                        } else if (as == 1) {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                                while (it.hasNext()) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                                        long ox = Math.abs(it.aLong);<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                                                oai64data[it.oIndex + j] = ox;<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>                        } else {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                                while (it.hasNext()) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                                        oai64data[it.oIndex] = Math.abs(it.aLong);<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                                                oai64data[it.oIndex + j] = Math.abs(da.getElementLongAbs(it.aIndex + j));<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>                        break;<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                case Dataset.FLOAT32:<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                        if (as == 1) {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                                while (it.hasNext()) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                                        of32data[it.oIndex] = (float) (Math.abs(it.aDouble));<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                                }<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                        } else {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                while (it.hasNext()) {<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                                        of32data[it.oIndex] = (float) (Math.hypot(it.aDouble, da.getElementDoubleAbs(it.aIndex + 1)));<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>                        break;<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                case Dataset.FLOAT64:<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                        if (as == 1) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                                while (it.hasNext()) {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                                        of64data[it.oIndex] = Math.abs(it.aDouble);<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                                }<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                        } else {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>                                while (it.hasNext()) {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                                        of64data[it.oIndex] = Math.hypot(it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<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>                        break;<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                case Dataset.ARRAYFLOAT32:<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                        if (is == 1) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                                while (it.hasNext()) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                                        oaf32data[it.oIndex] = (float) (Math.abs(it.aDouble));<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                                }<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                        } else if (as == 1) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                                while (it.hasNext()) {<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                                        float ox = (float) (Math.abs(it.aDouble));<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                                                oaf32data[it.oIndex + j] = ox;<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>                        } else {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                                while (it.hasNext()) {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                                        oaf32data[it.oIndex] = (float) Math.abs(it.aDouble);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                                                oaf32data[it.oIndex + j] = (float) Math.abs(da.getElementDoubleAbs(it.aIndex + j));<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>                        break;<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                case Dataset.ARRAYFLOAT64:<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                        if (is == 1) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                                while (it.hasNext()) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                                        oaf64data[it.oIndex] = Math.abs(it.aDouble);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                                }<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        } else if (as == 1) {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                                while (it.hasNext()) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                                        final double ix = it.aDouble;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                                        double ox = Math.abs(ix);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                                                oaf64data[it.oIndex + j] = ox;<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>                        } else {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                                while (it.hasNext()) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                                        oaf64data[it.oIndex] = Math.abs(it.aDouble);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                                                oaf64data[it.oIndex + j] = Math.abs(da.getElementDoubleAbs(it.aIndex + 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>                        }<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                        break;<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                case Dataset.COMPLEX64:<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                        if (!da.isComplex()) {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                                while (it.hasNext()) {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                                        oc64data[it.oIndex] = (float) Math.abs(it.aDouble);<a name="line.370"></a>
+<span class="sourceLineNo">371</span>                                        if (reset) {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                                                oc64data[it.oIndex + 1] = 0;<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>                        } else {<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                                while (it.hasNext()) {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                                        oc64data[it.oIndex] = (float) Math.hypot(it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                                        if (reset) {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                                                oc64data[it.oIndex + 1] = 0;<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>                        break;<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                case Dataset.COMPLEX128:<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                        if (!da.isComplex()) {<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                                while (it.hasNext()) {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                                        oc128data[it.oIndex] = Math.abs(it.aDouble);<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                                        if (reset) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                                                oc128data[it.oIndex + 1] = 0;<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>                        } else {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                                while (it.hasNext()) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                                        oc128data[it.oIndex] = Math.hypot(it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                                        if (reset) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                                                oc128data[it.oIndex + 1] = 0;<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>                        }<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                        break;<a name="line.401"></a>
+<span class="sourceLineNo">402</span>                default:<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                        throw new IllegalArgumentException(<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                                        "abs supports integer, compound integer, real, compound real, complex datasets only");<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>                addFunctionName(result, "abs");<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                return result;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>        }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>        /**<a name="line.411"></a>
+<span class="sourceLineNo">412</span>         * @param a<a name="line.412"></a>
+<span class="sourceLineNo">413</span>         * @return a^*, complex conjugate of a<a name="line.413"></a>
+<span class="sourceLineNo">414</span>         */<a name="line.414"></a>
+<span class="sourceLineNo">415</span>        public static Dataset conjugate(final Object a) {<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                return conjugate(a, null);<a name="line.416"></a>
+<span class="sourceLineNo">417</span>        }<a name="line.417"></a>
+<span class="sourceLineNo">418</span><a name="line.418"></a>
+<span class="sourceLineNo">419</span>        /**<a name="line.419"></a>
+<span class="sourceLineNo">420</span>         * @param a<a name="line.420"></a>
+<span class="sourceLineNo">421</span>         * @param o<a name="line.421"></a>
+<span class="sourceLineNo">422</span>         *            output can be null - in which case, a new dataset is created<a name="line.422"></a>
+<span class="sourceLineNo">423</span>         * @return a^*, complex conjugate of a<a name="line.423"></a>
+<span class="sourceLineNo">424</span>         */<a name="line.424"></a>
+<span class="sourceLineNo">425</span>        public static Dataset conjugate(final Object a, final Dataset o) {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                int at = da.getDType();<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                IndexIterator it1 = da.getIterator();<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true, true, true);<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                Dataset result = it.getOutput();<a name="line.431"></a>
+<span class="sourceLineNo">432</span><a name="line.432"></a>
+<span class="sourceLineNo">433</span>                switch (at) {<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                case Dataset.COMPLEX64:<a name="line.434"></a>
+<span class="sourceLineNo">435</span>                        float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.435"></a>
+<span class="sourceLineNo">436</span><a name="line.436"></a>
+<span class="sourceLineNo">437</span>                        for (int i = 0; it1.hasNext();) {<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                                c64data[i++] = (float) da.getElementDoubleAbs(it1.index);<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                                c64data[i++] = (float) -da.getElementDoubleAbs(it1.index + 1);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>                        }<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                        result.setName(Operations.bracketIfNecessary(da.getName()).append("^*").toString());<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                        break;<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                case Dataset.COMPLEX128:<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                        double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span>                        for (int i = 0; it1.hasNext();) {<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                                c128data[i++] = da.getElementDoubleAbs(it1.index);<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                                c128data[i++] = -da.getElementDoubleAbs(it1.index + 1);<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                        }<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                        result.setName(Operations.bracketIfNecessary(da.getName()).append("^*").toString());<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                        break;<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                default:<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                        result = da;<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 result;<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>        /**<a name="line.459"></a>
+<span class="sourceLineNo">460</span>         * @param a<a name="line.460"></a>
+<span class="sourceLineNo">461</span>         *            side of right-angled triangle<a name="line.461"></a>
+<span class="sourceLineNo">462</span>         * @param b<a name="line.462"></a>
+<span class="sourceLineNo">463</span>         *            side of right-angled triangle<a name="line.463"></a>
+<span class="sourceLineNo">464</span>         * @return hypotenuse of right-angled triangle: sqrt(a^2 + a^2)<a name="line.464"></a>
+<span class="sourceLineNo">465</span>         */<a name="line.465"></a>
+<span class="sourceLineNo">466</span>        public static Dataset hypot(final Object a, final Object b) {<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                return hypot(a, b, null);<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>        /**<a name="line.470"></a>
+<span class="sourceLineNo">471</span>         * @param a<a name="line.471"></a>
+<span class="sourceLineNo">472</span>         *            side of right-angled triangle<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         * @param b<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         *            side of right-angled triangle<a name="line.474"></a>
+<span class="sourceLineNo">475</span>         * @param o<a name="line.475"></a>
+<span class="sourceLineNo">476</span>         *            output can be null - in which case, a new dataset is created<a name="line.476"></a>
+<span class="sourceLineNo">477</span>         * @return hypotenuse of right-angled triangle: sqrt(a^2 + a^2)<a name="line.477"></a>
+<span class="sourceLineNo">478</span>         */<a name="line.478"></a>
+<span class="sourceLineNo">479</span>        public static Dataset hypot(final Object a, final Object b, final Dataset o) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.481"></a>
+<span class="sourceLineNo">482</span><a name="line.482"></a>
+<span class="sourceLineNo">483</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                it.setOutputDouble(true);<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                final Dataset result = it.getOutput();<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                final int is = result.getElementsPerItem();<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                final int as = da.getElementsPerItem();<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                final int bs = db.getElementsPerItem();<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                final int dt = result.getDType();<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                switch (dt) {<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                case Dataset.BOOL:<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.492"></a>
+<span class="sourceLineNo">493</span><a name="line.493"></a>
+<span class="sourceLineNo">494</span>                        while (it.hasNext()) {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                                bdata[it.oIndex] = Math.hypot(it.aDouble, it.bDouble) != 0;<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                        }<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                        break;<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                case Dataset.INT8:<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                        byte[] i8data = ((ByteDataset) result).getData();<a name="line.499"></a>
+<span class="sourceLineNo">500</span><a name="line.500"></a>
+<span class="sourceLineNo">501</span>                        while (it.hasNext()) {<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                                i8data[it.oIndex] = (byte) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                        }<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                        break;<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                case Dataset.INT16:<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                        short[] i16data = ((ShortDataset) result).getData();<a name="line.506"></a>
+<span class="sourceLineNo">507</span><a name="line.507"></a>
+<span class="sourceLineNo">508</span>                        while (it.hasNext()) {<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                                i16data[it.oIndex] = (short) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                        }<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                        break;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                case Dataset.INT32:<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                        int[] i32data = ((IntegerDataset) result).getData();<a name="line.513"></a>
+<span class="sourceLineNo">514</span><a name="line.514"></a>
+<span class="sourceLineNo">515</span>                        while (it.hasNext()) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                                i32data[it.oIndex] = (int) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                        }<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                        break;<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                case Dataset.INT64:<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                        long[] i64data = ((LongDataset) result).getData();<a name="line.520"></a>
+<span class="sourceLineNo">521</span><a name="line.521"></a>
+<span class="sourceLineNo">522</span>                        while (it.hasNext()) {<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                                i64data[it.oIndex] = toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                        }<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        break;<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                case Dataset.FLOAT32:<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                        float[] f32data = ((FloatDataset) result).getData();<a name="line.527"></a>
+<span class="sourceLineNo">528</span><a name="line.528"></a>
+<span class="sourceLineNo">529</span>                        while (it.hasNext()) {<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                                f32data[it.oIndex] = (float) Math.hypot(it.aDouble, it.bDouble);<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                        }<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                        break;<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                case Dataset.FLOAT64:<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                        double[] f64data = ((DoubleDataset) result).getData();<a name="line.534"></a>
+<span class="sourceLineNo">535</span><a name="line.535"></a>
+<span class="sourceLineNo">536</span>                        while (it.hasNext()) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                                f64data[it.oIndex] = 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>                        break;<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                case Dataset.ARRAYINT8:<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                        byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.541"></a>
+<span class="sourceLineNo">542</span><a name="line.542"></a>
+<span class="sourceLineNo">543</span>                        if (is == 1) {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                                while (it.hasNext()) {<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                                        ai8data[it.oIndex] = (byte) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                                }<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                        } else if (as == 1) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                                while (it.hasNext()) {<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                                        ai8data[it.oIndex] = (byte) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                                                ai8data[it.oIndex<a name="line.551"></a>
+<span class="sourceLineNo">552</span>                                                                + j] = (byte) toLong(Math.hypot(it.aDouble, db.getElementDoubleAbs(it.bIndex + j)));<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>                        } else if (bs == 1) {<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                                while (it.hasNext()) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                                        ai8data[it.oIndex] = (byte) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                                                ai8data[it.oIndex<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                                                                + j] = (byte) toLong(Math.hypot(da.getElementDoubleAbs(it.aIndex + j), it.bDouble));<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>                        } else {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                                while (it.hasNext()) {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                                        ai8data[it.oIndex] = (byte) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                                                ai8data[it.oIndex + j] = (byte) toLong(Math.hypot(da.getElementDoubleAbs(it.aIndex + j),<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                                                                db.getElementDoubleAbs(it.bIndex + j)));<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>                        break;<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                case Dataset.ARRAYINT16:<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                        short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.574"></a>
+<span class="sourceLineNo">575</span><a name="line.575"></a>
+<span class="sourceLineNo">576</span>                        if (is == 1) {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                                while (it.hasNext()) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                                        ai16data[it.oIndex] = (short) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                                }<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                        } else if (as == 1) {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                                while (it.hasNext()) {<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                                        ai16data[it.oIndex] = (short) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                                                ai16data[it.oIndex<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                                                                + j] = (short) toLong(Math.hypot(it.aDouble, db.getElementDoubleAbs(it.bIndex + j)));<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>                        } else if (bs == 1) {<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                                while (it.hasNext()) {<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                                        ai16data[it.oIndex] = (short) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                                                ai16data[it.oIndex<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                                                                + j] = (short) toLong(Math.hypot(da.getElementDoubleAbs(it.aIndex + j), it.bDouble));<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>                        } else {<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                                while (it.hasNext()) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                                        ai16data[it.oIndex] = (short) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                                                ai16data[it.oIndex + j] = (short) toLong(Math.hypot(da.getElementDoubleAbs(it.aIndex + j),<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                                                                db.getElementDoubleAbs(it.bIndex + j)));<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                                        }<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                                }<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                        }<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        break;<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                case Dataset.ARRAYINT32:<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                        int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.607"></a>
+<span class="sourceLineNo">608</span><a name="line.608"></a>
+<span class="sourceLineNo">609</span>                        if (is == 1) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                                while (it.hasNext()) {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                                        ai32data[it.oIndex] = (int) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                                }<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                        } else if (as == 1) {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                                while (it.hasNext()) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                                        ai32data[it.oIndex] = (int) 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>                                                ai32data[it.oIndex<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                                                                + j] = (int) toLong(Math.hypot(it.aDouble, db.getElementDoubleAbs(it.bIndex + j)));<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>                        } else if (bs == 1) {<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                                while (it.hasNext()) {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                                        ai32data[it.oIndex] = (int) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                                                ai32data[it.oIndex<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                                                                + j] = (int) toLong(Math.hypot(da.getElementDoubleAbs(it.aIndex + j), it.bDouble));<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>                        } else {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                                while (it.hasNext()) {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                                        ai32data[it.oIndex] = (int) toLong(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>                                                ai32data[it.oIndex + j] = (int) toLong(Math.hypot(da.getElementDoubleAbs(it.aIndex + j),<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                                                                db.getElementDoubleAbs(it.bIndex + j)));<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                                        }<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                                }<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                        }<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                        break;<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                case Dataset.ARRAYINT64:<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.640"></a>
+<span class="sourceLineNo">641</span><a name="line.641"></a>
+<span class="sourceLineNo">642</span>                        if (is == 1) {<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                                while (it.hasNext()) {<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                                        ai64data[it.oIndex] = toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                                }<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                        } else if (as == 1) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                                while (it.hasNext()) {<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                                        ai64data[it.oIndex] = toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                                                ai64data[it.oIndex + j] = toLong(Math.hypot(it.aDouble, db.getElementDoubleAbs(it.bIndex + j)));<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>                        } else if (bs == 1) {<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                                while (it.hasNext()) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                                        ai64data[it.oIndex] = toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                                                ai64data[it.oIndex + j] = toLong(Math.hypot(da.getElementDoubleAbs(it.aIndex + j), it.bDouble));<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                                        }<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                                }<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        } else {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                                while (it.hasNext()) {<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                        ai64data[it.oIndex] = toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                                                ai64data[it.oIndex + j] = toLong(Math.hypot(da.getElementDoubleAbs(it.aIndex + j),<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                                                                db.getElementDoubleAbs(it.bIndex + j)));<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>                        }<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                        break;<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                case Dataset.ARRAYFLOAT32:<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                        float[] a32data = ((CompoundFloatDataset) result).getData();<a name="line.671"></a>
+<span class="sourceLineNo">672</span><a name="line.672"></a>
+<span class="sourceLineNo">673</span>                        if (is == 1) {<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                while (it.hasNext()) {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                                        a32data[it.oIndex] = (float) Math.hypot(it.aDouble, it.bDouble);<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                                }<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                        } else if (as == 1) {<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                                while (it.hasNext()) {<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                                        a32data[it.oIndex] = (float) Math.hypot(it.aDouble, it.bDouble);<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                                                a32data[it.oIndex + j] = (float) Math.hypot(it.aDouble, db.getElementDoubleAbs(it.bIndex + j));<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                                        }<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                                }<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                        } else if (bs == 1) {<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                                while (it.hasNext()) {<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                                        a32data[it.oIndex] = (float) Math.hypot(it.aDouble, it.bDouble);<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                                                a32data[it.oIndex + j] = (float) Math.hypot(da.getElementDoubleAbs(it.aIndex + j), it.bDouble);<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>                        } else {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                                while (it.hasNext()) {<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                                        a32data[it.oIndex] = (float) Math.hypot(it.aDouble, it.bDouble);<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                                                a32data[it.oIndex + j] = (float) Math.hypot(da.getElementDoubleAbs(it.aIndex + j),<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                                                                db.getElementDoubleAbs(it.bIndex + j));<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>                        }<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        break;<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                case Dataset.ARRAYFLOAT64:<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                        double[] a64data = ((CompoundDoubleDataset) result).getData();<a name="line.702"></a>
+<span class="sourceLineNo">703</span><a name="line.703"></a>
+<span class="sourceLineNo">704</span>                        if (is == 1) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                                while (it.hasNext()) {<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                                        a64data[it.oIndex] = Math.hypot(it.aDouble, it.bDouble);<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                                }<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                        } else if (as == 1) {<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                                while (it.hasNext()) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                                        a64data[it.oIndex] = Math.hypot(it.aDouble, it.bDouble);<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                                                a64data[it.oIndex + j] = Math.hypot(it.aDouble, db.getElementDoubleAbs(it.bIndex + j));<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>                        } else if (bs == 1) {<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                                while (it.hasNext()) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                                        a64data[it.oIndex] = Math.hypot(it.aDouble, it.bDouble);<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                                                a64data[it.oIndex + j] = Math.hypot(da.getElementDoubleAbs(it.aIndex + j), it.bDouble);<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>                        } else {<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                                while (it.hasNext()) {<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                                        a64data[it.oIndex] = Math.hypot(it.aDouble, it.bDouble);<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                                                a64data[it.oIndex + j] = Math.hypot(da.getElementDoubleAbs(it.aIndex + j),<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                                                                db.getElementDoubleAbs(it.bIndex + j));<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>                        }<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                        break;<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                default:<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                        throw new UnsupportedOperationException("hypot does not support this dataset type");<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>                addFunctionName(da, db, result, "hypot");<a name="line.736"></a>
+<span class="sourceLineNo">737</span><a name="line.737"></a>
+<span class="sourceLineNo">738</span>                return result;<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>        /**<a name="line.741"></a>
+<span class="sourceLineNo">742</span>         * @param a<a name="line.742"></a>
+<span class="sourceLineNo">743</span>         *            opposite side of right-angled triangle<a name="line.743"></a>
+<span class="sourceLineNo">744</span>         * @param b<a name="line.744"></a>
+<span class="sourceLineNo">745</span>         *            adjacent side of right-angled triangle<a name="line.745"></a>
+<span class="sourceLineNo">746</span>         * @return angle of triangle: atan(b/a)<a name="line.746"></a>
+<span class="sourceLineNo">747</span>         */<a name="line.747"></a>
+<span class="sourceLineNo">748</span>        public static Dataset arctan2(final Object a, final Object b) {<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                return arctan2(a, b, null);<a name="line.749"></a>
+<span class="sourceLineNo">750</span>        }<a name="line.750"></a>
+<span class="sourceLineNo">751</span><a name="line.751"></a>
+<span class="sourceLineNo">752</span>        /**<a name="line.752"></a>
+<span class="sourceLineNo">753</span>         * @param a<a name="line.753"></a>
+<span class="sourceLineNo">754</span>         *            opposite side of right-angled triangle<a name="line.754"></a>
+<span class="sourceLineNo">755</span>         * @param b<a name="line.755"></a>
+<span class="sourceLineNo">756</span>         *            adjacent side of right-angled triangle<a name="line.756"></a>
+<span class="sourceLineNo">757</span>         * @param o<a name="line.757"></a>
+<span class="sourceLineNo">758</span>         *            output can be null - in which case, a new dataset is created<a name="line.758"></a>
+<span class="sourceLineNo">759</span>         * @return angle of triangle: atan(b/a)<a name="line.759"></a>
+<span class="sourceLineNo">760</span>         */<a name="line.760"></a>
+<span class="sourceLineNo">761</span>        public static Dataset arctan2(final Object a, final Object b, final Dataset o) {<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.763"></a>
+<span class="sourceLineNo">764</span><a name="line.764"></a>
+<span class="sourceLineNo">765</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                it.setOutputDouble(true);<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                final Dataset result = it.getOutput();<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                final int is = result.getElementsPerItem();<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                final int as = da.getElementsPerItem();<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                final int bs = db.getElementsPerItem();<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                final int dt = result.getDType();<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                switch (dt) {<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                case Dataset.BOOL:<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.774"></a>
+<span class="sourceLineNo">775</span><a name="line.775"></a>
+<span class="sourceLineNo">776</span>                        while (it.hasNext()) {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                                bdata[it.oIndex] = Math.atan2(it.aDouble, it.bDouble) != 0;<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                        }<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                        break;<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                case Dataset.INT8:<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                        byte[] i8data = ((ByteDataset) result).getData();<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>                        while (it.hasNext()) {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                                i8data[it.oIndex] = (byte) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        }<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                        break;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                case Dataset.INT16:<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        short[] i16data = ((ShortDataset) result).getData();<a name="line.788"></a>
+<span class="sourceLineNo">789</span><a name="line.789"></a>
+<span class="sourceLineNo">790</span>                        while (it.hasNext()) {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                                i16data[it.oIndex] = (short) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                        }<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                        break;<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                case Dataset.INT32:<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                        int[] i32data = ((IntegerDataset) result).getData();<a name="line.795"></a>
+<span class="sourceLineNo">796</span><a name="line.796"></a>
+<span class="sourceLineNo">797</span>                        while (it.hasNext()) {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                                i32data[it.oIndex] = (int) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                        }<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                        break;<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                case Dataset.INT64:<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        long[] i64data = ((LongDataset) result).getData();<a name="line.802"></a>
+<span class="sourceLineNo">803</span><a name="line.803"></a>
+<span class="sourceLineNo">804</span>                        while (it.hasNext()) {<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                                i64data[it.oIndex] = toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                        }<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                        break;<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                case Dataset.FLOAT32:<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                        float[] f32data = ((FloatDataset) result).getData();<a name="line.809"></a>
+<span class="sourceLineNo">810</span><a name="line.810"></a>
+<span class="sourceLineNo">811</span>                        while (it.hasNext()) {<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                                f32data[it.oIndex] = (float) Math.atan2(it.aDouble, it.bDouble);<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                        }<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                        break;<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                case Dataset.FLOAT64:<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                        double[] f64data = ((DoubleDataset) result).getData();<a name="line.816"></a>
+<span class="sourceLineNo">817</span><a name="line.817"></a>
+<span class="sourceLineNo">818</span>                        while (it.hasNext()) {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                                f64data[it.oIndex] = Math.atan2(it.aDouble, it.bDouble);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                        }<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                        break;<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                case Dataset.ARRAYINT8:<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                        byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.823"></a>
+<span class="sourceLineNo">824</span><a name="line.824"></a>
+<span class="sourceLineNo">825</span>                        if (is == 1) {<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                                while (it.hasNext()) {<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                                        ai8data[it.oIndex] = (byte) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                                }<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        } else if (as == 1) {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                                while (it.hasNext()) {<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                                        ai8data[it.oIndex] = (byte) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                                ai8data[it.oIndex<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                                                + j] = (byte) toLong(Math.atan2(it.aDouble, db.getElementDoubleAbs(it.bIndex + j)));<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                                        }<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                }<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                        } else if (bs == 1) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                while (it.hasNext()) {<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                        ai8data[it.oIndex] = (byte) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                                ai8data[it.oIndex<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                                                                + j] = (byte) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + j), it.bDouble));<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>                        } else {<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                                while (it.hasNext()) {<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                        ai8data[it.oIndex] = (byte) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                                ai8data[it.oIndex + j] = (byte) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + j),<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                                                                db.getElementDoubleAbs(it.bIndex + j)));<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                        }<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                }<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                        }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                        break;<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                case Dataset.ARRAYINT16:<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                        short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.856"></a>
+<span class="sourceLineNo">857</span><a name="line.857"></a>
+<span class="sourceLineNo">858</span>                        if (is == 1) {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                                while (it.hasNext()) {<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                                        ai16data[it.oIndex] = (short) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                                }<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                        } else if (as == 1) {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                                while (it.hasNext()) {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                        ai16data[it.oIndex] = (short) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                                ai16data[it.oIndex<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                                                + j] = (short) 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>                                        ai16data[it.oIndex] = (short) 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>                                                ai16data[it.oIndex<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                                                                + j] = (short) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + j), it.bDouble));<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>                        } else {<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                while (it.hasNext()) {<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                                        ai16data[it.oIndex] = (short) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                                ai16data[it.oIndex + j] = (short) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + j),<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                                                db.getElementDoubleAbs(it.bIndex + j)));<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                                        }<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                        }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        break;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                case Dataset.ARRAYINT32:<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                        int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>                        if (is == 1) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                while (it.hasNext()) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                        ai32data[it.oIndex] = (int) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                }<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                        } else if (as == 1) {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                while (it.hasNext()) {<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                        ai32data[it.oIndex] = (int) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                                ai32data[it.oIndex<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                                                + j] = (int) toLong(Math.atan2(it.aDouble, db.getElementDoubleAbs(it.bIndex + j)));<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>                        } else if (bs == 1) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                                while (it.hasNext()) {<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                                        ai32data[it.oIndex] = (int) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                                ai32data[it.oIndex<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                                                + j] = (int) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + j), 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>                        } else {<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                                while (it.hasNext()) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                                        ai32data[it.oIndex] = (int) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                                ai32data[it.oIndex + j] = (int) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + j),<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                                                db.getElementDoubleAbs(it.bIndex + j)));<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>                        }<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                        break;<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                case Dataset.ARRAYINT64:<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                        long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.922"></a>
+<span class="sourceLineNo">923</span><a name="line.923"></a>
+<span class="sourceLineNo">924</span>                        if (is == 1) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                                while (it.hasNext()) {<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                        ai64data[it.oIndex] = toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                                }<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                        } else if (as == 1) {<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                                while (it.hasNext()) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                        ai64data[it.oIndex] = toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                                ai64data[it.oIndex + j] = toLong(Math.atan2(it.aDouble, db.getElementDoubleAbs(it.bIndex + j)));<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>                        } else if (bs == 1) {<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                                while (it.hasNext()) {<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                                        ai64data[it.oIndex] = toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                                                ai64data[it.oIndex + j] = toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + j), it.bDouble));<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>                                while (it.hasNext()) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                        ai64data[it.oIndex] = toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                                ai64data[it.oIndex + j] = toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + j),<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                                                db.getElementDoubleAbs(it.bIndex + j)));<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                                        }<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                }<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                        }<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                        break;<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                case Dataset.ARRAYFLOAT32:<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                        float[] a32data = ((CompoundFloatDataset) result).getData();<a name="line.953"></a>
+<span class="sourceLineNo">954</span><a name="line.954"></a>
+<span class="sourceLineNo">955</span>                        if (is == 1) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                while (it.hasNext()) {<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                                        a32data[it.oIndex] = (float) Math.atan2(it.aDouble, it.bDouble);<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                                }<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                        } else if (as == 1) {<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                                while (it.hasNext()) {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                                        a32data[it.oIndex] = (float) Math.atan2(it.aDouble, it.bDouble);<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                                                a32data[it.oIndex + j] = (float) Math.atan2(it.aDouble, db.getElementDoubleAbs(it.bIndex + j));<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 if (bs == 1) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                while (it.hasNext()) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                                        a32data[it.oIndex] = (float) Math.atan2(it.aDouble, it.bDouble);<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                                a32data[it.oIndex + j] = (float) Math.atan2(da.getElementDoubleAbs(it.aIndex + j), it.bDouble);<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>                        } else {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                                while (it.hasNext()) {<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                                        a32data[it.oIndex] = (float) Math.atan2(it.aDouble, it.bDouble);<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                                                a32data[it.oIndex + j] = (float) Math.atan2(da.getElementDoubleAbs(it.aIndex + j),<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                                                                db.getElementDoubleAbs(it.bIndex + j));<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>                        }<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                        break;<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                case Dataset.ARRAYFLOAT64:<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                        double[] a64data = ((CompoundDoubleDataset) result).getData();<a name="line.984"></a>
+<span class="sourceLineNo">985</span><a name="line.985"></a>
+<span class="sourceLineNo">986</span>                        if (is == 1) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                while (it.hasNext()) {<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                        a64data[it.oIndex] = Math.atan2(it.aDouble, it.bDouble);<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                                }<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                        } else if (as == 1) {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                while (it.hasNext()) {<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                        a64data[it.oIndex] = Math.atan2(it.aDouble, it.bDouble);<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                                                a64data[it.oIndex + j] = Math.atan2(it.aDouble, db.getElementDoubleAbs(it.bIndex + j));<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 if (bs == 1) {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                while (it.hasNext()) {<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                        a64data[it.oIndex] = Math.atan2(it.aDouble, it.bDouble);<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                                a64data[it.oIndex + j] = Math.atan2(da.getElementDoubleAbs(it.aIndex + j), it.bDouble);<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        }<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                }<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                        } else {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                while (it.hasNext()) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                                        a64data[it.oIndex] = Math.atan2(it.aDouble, it.bDouble);<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                                                a64data[it.oIndex + j] = Math.atan2(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                                        }<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                                }<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                        }<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                        break;<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                default:<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                        throw new UnsupportedOperationException("atan2 does not support multiple-element dataset");<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                }<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span><a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                addFunctionName(da, db, result, "atan2");<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span><a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                return result;<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>        /**<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>         * Create a dataset of the arguments from a complex dataset<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>         * <a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>         * @param a<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>         * @return dataset of angles in radians<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>         */<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        public static Dataset angle(final Object a) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                return angle(a, false, null);<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>         * Create a dataset of the arguments from a complex dataset<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>         * <a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>         * @param a<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>         * @param inDegrees<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>         *            if true then return angles in degrees else in radians<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>         * @return dataset of angles<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>         */<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>        public static Dataset angle(final Object a, final boolean inDegrees) {<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                return angle(a, inDegrees, null);<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>         * Create a dataset of the arguments from a complex dataset<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>         * <a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>         * @param a<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>         * @param o<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>         *            output can be null - in which case, a new dataset is created<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>         * @return dataset of angles in radians<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>         */<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>        public static Dataset angle(final Object a, final Dataset o) {<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                return angle(a, false, o);<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>        }<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span><a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>        /**<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>         * Create a dataset of the arguments from a complex dataset<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>         * <a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>         * @param a<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>         * @param inDegrees<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>         *            if true then return angles in degrees else in radians<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>         * @param o<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>         *            output can be null - in which case, a new dataset is created<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>         * @return dataset of angles<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>         */<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>        public static Dataset angle(final Object a, final boolean inDegrees, final Dataset o) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span><a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                if (!da.isComplex()) {<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        throw new UnsupportedOperationException("angle does not support this dataset type");<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                }<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span><a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true, false, false);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                final Dataset result = it.getOutput();<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                final int is = result.getElementsPerItem();<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                final int dt = result.getDType();<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span><a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                switch (dt) {<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                case Dataset.INT8:<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<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>                                        oi8data[it.oIndex] = (byte) toLong(<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                                        Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble)));<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                }<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                        } else {<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                while (it.hasNext()) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                        oi8data[it.oIndex] = (byte) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                }<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                        }<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                        break;<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                case Dataset.INT16:<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        it.setOutputDouble(false);<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span><a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                        if (inDegrees) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                while (it.hasNext()) {<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                        oi16data[it.oIndex] = (short) toLong(<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                                        Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble)));<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                }<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                        } else {<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                while (it.hasNext()) {<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                                        oi16data[it.oIndex] = (short) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                                }<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                        }<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        break;<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                case Dataset.INT32:<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                        it.setOutputDouble(false);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span><a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                        if (inDegrees) {<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                while (it.hasNext()) {<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                        oi32data[it.oIndex] = (int) toLong(<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                                        Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble)));<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                }<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                        } else {<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                while (it.hasNext()) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                        oi32data[it.oIndex] = (int) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<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>                        break;<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                case Dataset.INT64:<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                        it.setOutputDouble(false);<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span><a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                        if (inDegrees) {<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                while (it.hasNext()) {<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                        oi64data[it.oIndex] = toLong(<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                                        Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble)));<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                                }<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                        } else {<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                while (it.hasNext()) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                        oi64data[it.oIndex] = toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<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.ARRAYINT8:<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        it.setOutputDouble(false);<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span><a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                        if (inDegrees) {<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                while (it.hasNext()) {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                        final byte ox = (byte) toLong(<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                                        Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble)));<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                                oai8data[it.oIndex + j] = ox;<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>                        } else {<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                                while (it.hasNext()) {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                        final byte ox = (byte) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                                oai8data[it.oIndex + j] = ox;<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>                        break;<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                case Dataset.ARRAYINT16:<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                        it.setOutputDouble(false);<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span><a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                        if (inDegrees) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                while (it.hasNext()) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                        final short ox = (short) toLong(<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                                        Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble)));<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                                                oai16data[it.oIndex + j] = ox;<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                        }<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                }<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                        } else {<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                while (it.hasNext()) {<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                        final short ox = (short) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                                                oai16data[it.oIndex + j] = ox;<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>                        break;<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                case Dataset.ARRAYINT32:<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                        it.setOutputDouble(false);<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span><a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                        if (inDegrees) {<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                                while (it.hasNext()) {<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                                        final int ox = (int) toLong(<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                                                        Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble)));<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                                                oai32data[it.oIndex + j] = ox;<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                                        }<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                }<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                        } else {<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                while (it.hasNext()) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                                        final int ox = (int) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                                oai32data[it.oIndex + j] = ox;<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                                        }<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                                }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                        }<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                        break;<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                case Dataset.ARRAYINT64:<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                        it.setOutputDouble(false);<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>                                        final long ox = toLong(<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                                                        Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble)));<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                                                oai64data[it.oIndex + j] = ox;<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                                        }<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                }<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                        } else {<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                while (it.hasNext()) {<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                                        final long ox = toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                                oai64data[it.oIndex + j] = ox;<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        }<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                }<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                        }<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                        break;<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                case Dataset.FLOAT32:<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span><a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                        if (inDegrees) {<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                while (it.hasNext()) {<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                        of32data[it.oIndex] = (float) Math<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                                        .toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                }<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                        } else {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                while (it.hasNext()) {<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                        of32data[it.oIndex] = (float) Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble);<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.FLOAT64:<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                        if (inDegrees) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                while (it.hasNext()) {<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                        of64data[it.oIndex] = Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                }<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                        } else {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                while (it.hasNext()) {<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                        of64data[it.oIndex] = Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble);<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>                        break;<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                case Dataset.ARRAYFLOAT32:<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span><a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                        if (inDegrees) {<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                while (it.hasNext()) {<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        final float ox = (float) Math<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                                        .toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                                oaf32data[it.oIndex + j] = ox;<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>                        } else {<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                while (it.hasNext()) {<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                        final float ox = (float) Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble);<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                                oaf32data[it.oIndex + j] = ox;<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                                        }<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                }<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        }<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                        break;<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                case Dataset.ARRAYFLOAT64:<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span><a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                        if (inDegrees) {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                while (it.hasNext()) {<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                        final double ox = Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                oaf64data[it.oIndex + j] = ox;<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                }<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                        } else {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                while (it.hasNext()) {<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                        final double ox = Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble);<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                                oaf64data[it.oIndex + j] = ox;<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        }<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                }<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                        }<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                        break;<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                case Dataset.COMPLEX64:<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span><a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                        if (inDegrees) {<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                                while (it.hasNext()) {<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                                        oc64data[it.oIndex] = (float) Math<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>                                                        .toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                                        oc64data[it.oIndex + 1] = 0;<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                }<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                        } else {<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                while (it.hasNext()) {<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                                        oc64data[it.oIndex] = (float) Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble);<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                        oc64data[it.oIndex + 1] = 0;<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>                        break;<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                case Dataset.COMPLEX128:<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span><a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                        if (inDegrees) {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                while (it.hasNext()) {<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                        oc128data[it.oIndex] = Math<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                                        .toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                        oc128data[it.oIndex + 1] = 0;<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                }<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                        } else {<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                while (it.hasNext()) {<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                        oc128data[it.oIndex] = Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble);<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                                        oc128data[it.oIndex + 1] = 0;<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>                default:<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                        throw new IllegalArgumentException("angle does not support this dataset type");<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                }<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span><a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                addFunctionName(result, "angle");<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span><a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                return result;<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>        }<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>         * Create a phase only dataset. NB it will contain NaNs if there are any<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>         * items with zero amplitude<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>         * <a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>         * @param a<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>         *            dataset<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>         * @param keepZeros<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>         *            if true then zero items are returned as zero rather than NaNs<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>         * @return complex dataset where items have unit amplitude<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>         */<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>        public static Dataset phaseAsComplexNumber(final Object a, final boolean keepZeros) {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                return phaseAsComplexNumber(a, null, keepZeros);<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>         * Create a phase only dataset. NB it will contain NaNs if there are any<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>         * items with zero amplitude<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>         * <a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>         * @param a<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>         *            dataset<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>         * @param o<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>         *            output can be null - in which case, a new dataset is created<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>         * @param keepZeros<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>         *            if true then zero items are returned as zero rather than NaNs<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>         * @return complex dataset where items have unit amplitude<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>         */<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>        public static Dataset phaseAsComplexNumber(final Object a, final Dataset o, final boolean keepZeros) {<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span><a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                if (!da.isComplex()) {<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                        throw new IllegalArgumentException("Input dataset is not of complex type");<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>                }<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                Dataset result = o == null ? DatasetFactory.zeros(da) : o;<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                if (!result.isComplex()) {<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                        throw new IllegalArgumentException("Output dataset is not of complex type");<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                }<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                final int dt = result.getDType();<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, result);<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span><a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                switch (dt) {<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                case Dataset.COMPLEX64:<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                        float[] z64data = ((ComplexFloatDataset) result).getData();<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span><a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                        if (keepZeros) {<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                                while (it.hasNext()) {<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                                        double rr = it.aDouble;<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                                        double ri = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                                        double am = Math.hypot(rr, ri);<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                                        if (am == 0) {<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                                                z64data[it.oIndex] = 0;<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                                                z64data[it.oIndex + 1] = 0;<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                                        } else {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                                                z64data[it.oIndex] = (float) (rr / am);<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                                                z64data[it.oIndex + 1] = (float) (ri / am);<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>                        } else {<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                while (it.hasNext()) {<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                                        double rr = it.aDouble;<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                        double ri = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                        double am = Math.hypot(rr, ri);<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                        z64data[it.oIndex] = (float) (rr / am);<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                        z64data[it.oIndex + 1] = (float) (ri / am);<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>                        break;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                case Dataset.COMPLEX128:<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                        double[] z128data = ((ComplexDoubleDataset) result).getData();<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span><a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                        if (keepZeros) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                                while (it.hasNext()) {<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                                        double rr = it.aDouble;<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                                        double ri = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                                        double am = Math.hypot(rr, ri);<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                        if (am == 0) {<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                                                z128data[it.oIndex] = 0;<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                                                z128data[it.oIndex + 1] = 0;<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                                        } else {<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                                                z128data[it.oIndex] = rr / am;<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                                                z128data[it.oIndex + 1] = ri / am;<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                                        }<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                }<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                        } else {<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                while (it.hasNext()) {<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                                        double rr = it.aDouble;<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                                        double ri = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                                        double am = Math.hypot(rr, ri);<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                                        z128data[it.oIndex] = rr / am;<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                                        z128data[it.oIndex + 1] = ri / am;<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>                        break;<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>                addFunctionName(result, "phase");<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span><a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                return result;<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>        }<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span><a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>        /**<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>         * Adds all sets passed in together<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>         * <a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>         * The first IDataset must cast to Dataset<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>         * <a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>         * For memory efficiency sake if add(...) is called with a set of size one,<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>         * no clone is done, the original object is returned directly. Otherwise a<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>         * new data set is returned, the sum of those passed in.<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>         * <a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>         * @param sets<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>         * @param requireClone<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>         * @return sum of collection<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>         */<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>        public static Dataset add(final Collection&lt;IDataset&gt; sets, boolean requireClone) {<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                if (sets.isEmpty())<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                        return null;<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                final Iterator&lt;IDataset&gt; it = sets.iterator();<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                if (sets.size() == 1)<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                        return DatasetUtils.convertToDataset(it.next());<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span><a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                Dataset sum = requireClone ? ((Dataset) it.next()).clone() : (Dataset) it.next();<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span><a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                while (it.hasNext()) {<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                        Maths.add(sum, it.next(), sum);<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>                return sum;<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>        }<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span><a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>        /**<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>         * Multiplies all sets passed in together<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>         * <a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>         * The first IDataset must cast to Dataset<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>         * <a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>         * @param sets<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>         * @param requireClone<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>         * @return product of collection<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>         */<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>        public static Dataset multiply(final Collection&lt;IDataset&gt; sets, boolean requireClone) {<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                if (sets.isEmpty())<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                        return null;<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                final Iterator&lt;IDataset&gt; it = sets.iterator();<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                if (sets.size() == 1)<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                        return DatasetUtils.convertToDataset(it.next());<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                Dataset product = requireClone ? ((Dataset) it.next()).clone() : (Dataset) it.next();<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span><a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                while (it.hasNext()) {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                        Maths.multiply(product, it.next(), product);<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>                return product;<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>        }<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>         * Linearly interpolate values at points in a 1D dataset corresponding to<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>         * given coordinates.<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>         * <a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>         * @param x<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>         *            input 1-D coordinate dataset (must be ordered)<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>         * @param d<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>         *            input 1-D dataset<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>         * @param x0<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>         *            coordinate values<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>         * @param left<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>         *            value to use when x0 lies left of domain. If null, then<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>         *            interpolate to zero by using leftmost interval<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>         * @param right<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>         *            value to use when x0 lies right of domain. If null, then<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>         *            interpolate to zero by using rightmost interval<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>         * @return interpolated values<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>         */<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>        public static Dataset interpolate(final Dataset x, final Dataset d, final IDataset x0, Number left, Number right) {<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                assert x.getRank() == 1;<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                assert d.getRank() == 1;<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span><a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                DoubleDataset r = DatasetFactory.zeros(DoubleDataset.class, x0.getShape());<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span><a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                Monotonicity mono = Comparisons.findMonotonicity(x);<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                if (mono == Monotonicity.NOT_ORDERED) {<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                        throw new IllegalArgumentException("Dataset x must be ordered");<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                }<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                DoubleDataset dx = DatasetUtils.cast(DoubleDataset.class, x);<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                Dataset dx0 = DatasetUtils.convertToDataset(x0);<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                if (x == dx) {<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                        dx = (DoubleDataset) x.flatten();<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                double[] xa = dx.getData();<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                int s = xa.length - 1;<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                boolean isReversed = mono == Monotonicity.STRICTLY_DECREASING || mono == Monotonicity.NONINCREASING;<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                if (isReversed) {<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                        double[] txa = xa.clone();<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                        for (int i = 0; i &lt;= s; i++) { // reverse order<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                txa[s - i] = xa[i];<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                        }<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                        xa = txa;<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>                IndexIterator it = dx0.getIterator();<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                int k = -1;<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                while (it.hasNext()) {<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                        k++;<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                        double v = dx0.getElementDoubleAbs(it.index);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                        int i = Arrays.binarySearch(xa, v);<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                        if (i &lt; 0) {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                // i = -(insertion point) - 1<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                if (i == -1) {<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                        if (left != null) {<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                                r.setAbs(k, left.doubleValue());<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                                continue;<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                        }<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                        final double d1 = xa[0] - xa[1];<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                        double t = d1 - v + xa[0];<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                        if (t &gt;= 0) {<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                                continue; // sets to zero<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                        }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                        t /= d1;<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                        r.setAbs(k, t * d.getDouble(isReversed ? s : 0));<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                } else if (i == -s - 2) {<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                        if (right != null) {<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                                r.setAbs(k, right.doubleValue());<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                                continue;<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                        }<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                        final double d1 = xa[s] - xa[s - 1];<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                        double t = d1 - v + xa[s];<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                        if (t &lt;= 0) {<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                                                continue; // sets to zero<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                                        }<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                                        t /= d1;<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                                        r.setAbs(k, t * d.getDouble(isReversed ? 0 : s));<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>                                } else {<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                                        i = -i - 1;<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                        double t = (xa[i] - v) / (xa[i] - xa[i - 1]);<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                        if (isReversed) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                                i = s - i;<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                                r.setAbs(k, t * d.getDouble(i + 1) + (1 - t) * d.getDouble(i));<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                        } else {<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                                r.setAbs(k, (1 - t) * d.getDouble(i) + t * d.getDouble(i - 1));<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>                        } else {<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                                r.setAbs(k, d.getDouble(isReversed ? s - i : i));<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>                return r;<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>        /**<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>         * Linearly interpolate a value at a point in a 1D dataset. The dataset is<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>         * considered to have zero support outside its bounds. Thus points just<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>         * outside are interpolated from the boundary value to zero.<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>         * <a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>         * @param d<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>         *            input dataset<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>         * @param x0<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>         *            coordinate<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>         * @return interpolated value<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>         */<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>        public static double interpolate(final Dataset d, final double x0) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                assert d.getRank() == 1;<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span><a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                final int i0 = (int) Math.floor(x0);<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                final int e0 = d.getSize() - 1;<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                if (i0 &lt; -1 || i0 &gt; e0) {<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><a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                final double u0 = x0 - i0;<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span><a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                double r = 0;<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                final double f1 = i0 &lt; 0 ? 0 : d.getDouble(i0);<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                if (u0 &gt; 0) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                        r = (1 - u0) * f1 + (i0 == e0 ? 0 : u0 * d.getDouble(i0 + 1));<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                } else {<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                        r = f1;<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                }<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                return r;<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>        /**<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>         * Linearly interpolate a value at a point in a 1D dataset with a mask. The<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>         * dataset is considered to have zero support outside its bounds. Thus<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>         * points just outside are interpolated from the boundary value to zero.<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>         * <a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>         * @param d<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>         *            input dataset<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>         * @param m<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>         *            mask dataset<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>         * @param x0<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>         *            coordinate<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>         * @return interpolated value<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>         */<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>        public static double interpolate(final Dataset d, final Dataset m, final double x0) {<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                assert d.getRank() == 1;<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                assert m.getRank() == 1;<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span><a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                final int i0 = (int) Math.floor(x0);<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>                final int e0 = d.getSize() - 1;<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                if (i0 &lt; -1 || i0 &gt; e0) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                        return 0;<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>                final double u0 = x0 - i0;<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span><a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                double r = 0;<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                final double f1 = i0 &lt; 0 ? 0 : d.getDouble(i0) * m.getDouble(i0);<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                if (u0 &gt; 0) {<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                        r = (1 - u0) * f1 + (i0 == e0 ? 0 : u0 * d.getDouble(i0 + 1) * m.getDouble(i0 + 1));<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                } else {<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                        r = f1;<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                }<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                return r;<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>        /**<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>         * Linearly interpolate an array of values at a point in a compound 1D<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>         * dataset. The dataset is considered to have zero support outside its<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>         * bounds. Thus points just outside are interpolated from the boundary value<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>         * to zero.<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>         * <a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>         * @param values<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>         *            interpolated array<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>         * @param d<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>         *            input dataset<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>         * @param x0<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>         *            coordinate<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>         */<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>        public static void interpolate(final double[] values, final CompoundDataset d, final double x0) {<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                assert d.getRank() == 1;<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span><a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                final int is = d.getElementsPerItem();<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                if (is != values.length) {<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                        throw new IllegalArgumentException("Output array length must match elements in item");<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                }<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                final double[] f1, f2;<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span><a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                final int i0 = (int) Math.floor(x0);<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                final int e0 = d.getSize() - 1;<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                if (i0 &lt; -1 || i0 &gt; e0) {<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                        Arrays.fill(values, 0);<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                        return;<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                final double u0 = x0 - i0;<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span><a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                if (u0 &gt; 0) {<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                        f1 = new double[is];<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                        if (i0 &gt;= 0) {<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                d.getDoubleArray(f1, i0);<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                        }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                        double t = 1 - u0;<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                        if (i0 == e0) {<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                                for (int j = 0; j &lt; is; j++) {<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                                        values[j] = t * f1[j];<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>                                }<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                        } else {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                f2 = new double[is];<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                d.getDoubleArray(f2, i0 + 1);<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                for (int j = 0; j &lt; is; j++) {<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                        values[j] = t * f1[j] + u0 * f2[j];<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>                } else {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                        if (i0 &gt;= 0) {<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                                d.getDoubleArray(values, i0);<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                        } else {<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                                Arrays.fill(values, 0);<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                        }<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                }<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>        }<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span><a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>        /**<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>         * Linearly interpolate a value at a point in a 2D dataset. The dataset is<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>         * considered to have zero support outside its bounds. Thus points just<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>         * outside are interpolated from the boundary value to zero.<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>         * <a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>         * @param d<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>         *            input dataset<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>         * @param x0<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>         *            coordinate<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>         * @param x1<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>         *            coordinate<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>         * @return bilinear interpolation<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>         */<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>        public static double interpolate(final Dataset d, final double x0, final double x1) {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                final int[] s = d.getShape();<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                assert s.length == 2;<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span><a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                final int e0 = s[0] - 1;<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                final int e1 = s[1] - 1;<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                final int i0 = (int) Math.floor(x0);<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                final int i1 = (int) Math.floor(x1);<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                final double u0 = x0 - i0;<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                final double u1 = x1 - i1;<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                if (i0 &lt; -1 || i0 &gt; e0 || i1 &lt; -1 || i1 &gt; e1) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                        return 0;<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                }<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span><a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                // use bilinear interpolation<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                double r = 0;<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                final double f1, f2, f3, f4;<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                f1 = i0 &lt; 0 || i1 &lt; 0 ? 0 : d.getDouble(i0, i1);<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                if (u1 &gt; 0) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                        if (u0 &gt; 0) {<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                if (i0 == e0) {<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                        f2 = 0;<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                        f4 = 0;<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                        f3 = i1 == e1 ? 0 : d.getDouble(i0, i1 + 1);<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                } else {<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                        f2 = i1 &lt; 0 ? 0 : d.getDouble(i0 + 1, i1);<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                        if (i1 == e1) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                                f4 = 0;<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                                f3 = 0;<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                        } else {<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                f4 = d.getDouble(i0 + 1, i1 + 1);<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                f3 = i0 &lt; 0 ? 0 : d.getDouble(i0, i1 + 1);<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>                                r = (1 - u0) * (1 - u1) * f1 + u0 * (1 - u1) * f2 + (1 - u0) * u1 * f3 + u0 * u1 * f4;<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                        } else {<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                                f3 = i0 &lt; 0 || i1 == e1 ? 0 : d.getDouble(i0, i1 + 1);<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                                r = (1 - u1) * f1 + u1 * f3;<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                        }<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>                } else { // exactly on axis 1<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                        if (u0 &gt; 0) {<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                f2 = i0 == e0 || i1 &lt; 0 ? 0 : d.getDouble(i0 + 1, i1);<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                r = (1 - u0) * f1 + u0 * f2;<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                        } else { // exactly on axis 0<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                r = f1;<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 r;<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>        /**<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>         * Linearly interpolate a value at a point in a 2D dataset with a mask. The<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>         * dataset is considered to have zero support outside its bounds. Thus<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>         * points just outside are interpolated from the boundary value to zero.<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>         * <a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>         * @param d<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>         *            input dataset<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>         * @param m<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>         *            mask dataset<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>         * @param x0<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>         *            coordinate<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>         * @param x1<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>         *            coordinate<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>         * @return bilinear interpolation<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>         */<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>        public static double interpolate(final Dataset d, final Dataset m, final double x0, final double x1) {<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                if (m == null) {<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                        return interpolate(d, x0, x1);<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                }<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span><a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                final int[] s = d.getShapeRef();<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                assert s.length == 2;<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                assert m.getRank() == 2;<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span><a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                final int e0 = s[0] - 1;<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                final int e1 = s[1] - 1;<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                final int i0 = (int) Math.floor(x0);<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                final int i1 = (int) Math.floor(x1);<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                final double u0 = x0 - i0;<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                final double u1 = x1 - i1;<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                if (i0 &lt; -1 || i0 &gt; e0 || i1 &lt; -1 || i1 &gt; e1) {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                        return 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>                // use bilinear interpolation<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                double r = 0;<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                final double f1, f2, f3, f4;<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                f1 = i0 &lt; 0 || i1 &lt; 0 ? 0 : d.getDouble(i0, i1) * m.getDouble(i0, i1);<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                if (u1 &gt; 0) {<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                        if (i0 == e0) {<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                                f2 = 0;<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                f4 = 0;<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                f3 = i1 == e1 ? 0 : d.getDouble(i0, i1 + 1) * m.getDouble(i0, i1 + 1);<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                        } else {<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                f2 = i1 &lt; 0 ? 0 : d.getDouble(i0 + 1, i1) * m.getDouble(i0 + 1, i1);<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                if (i1 == e1) {<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                        f4 = 0;<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                                        f3 = 0;<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                                } else {<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                                        f4 = d.getDouble(i0 + 1, i1 + 1) * m.getDouble(i0 + 1, i1 + 1);<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                        f3 = i0 &lt; 0 ? 0 : d.getDouble(i0, i1 + 1) * m.getDouble(i0, i1 + 1);<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>                        r = (1 - u0) * (1 - u1) * f1 + u0 * (1 - u1) * f2 + (1 - u0) * u1 * f3 + u0 * u1 * f4;<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                } else { // exactly on axis 1<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                        if (u0 &gt; 0) {<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                                f2 = i0 == e0 || i1 &lt; 0 ? 0 : d.getDouble(i0 + 1, i1) * m.getDouble(i0 + 1, i1);<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                                r = (1 - u0) * f1 + u0 * f2;<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                        } else { // exactly on axis 0<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>                                r = f1;<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                        }<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                }<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                return r;<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>        /**<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>         * Linearly interpolate an array of values at a point in a compound 2D<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>         * dataset. The dataset is considered to have zero support outside its<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>         * bounds. Thus points just outside are interpolated from the boundary value<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>         * to zero.<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>         * <a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>         * @param values<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>         *            bilinear interpolated array<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>         * @param d<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>         * @param x0<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>         * @param x1<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>         */<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>        public static void interpolate(final double[] values, final CompoundDataset d, final double x0, final double x1) {<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                final int[] s = d.getShapeRef();<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                assert s.length == 2;<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span><a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                final int is = d.getElementsPerItem();<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                if (is != values.length) {<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                        throw new IllegalArgumentException("Output array length must match elements in item");<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                }<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span><a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                final int e0 = s[0] - 1;<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                final int e1 = s[1] - 1;<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                final int i0 = (int) Math.floor(x0);<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                final int i1 = (int) Math.floor(x1);<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                final double u0 = x0 - i0;<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                final double u1 = x1 - i1;<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span>                if (i0 &lt; -1 || i0 &gt; e0 || i1 &lt; -1 || i1 &gt; e1) {<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                        Arrays.fill(values, 0);<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                        return;<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                }<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                // use bilinear interpolation<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                double[] f1 = new double[is];<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                if (i0 &gt;= 0 &amp;&amp; i1 &gt;= 0) {<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                        d.getDoubleArray(f1, i0, i1);<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>                if (u1 &gt; 0) {<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                        if (u0 &gt; 0) {<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                double[] f2 = new double[is];<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                double[] f3 = new double[is];<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                double[] f4 = new double[is];<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                if (i0 != e0) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                        if (i1 != e1) {<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                d.getDoubleArray(f3, i0 + 1, i1 + 1);<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                        }<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                        if (i1 &gt;= 0) {<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                                d.getDoubleArray(f4, i0 + 1, i1);<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                        }<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                                }<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                if (i0 &gt;= 0 &amp;&amp; i1 != e1) {<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                        d.getDoubleArray(f2, i0, i1 + 1);<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                }<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                final double t0 = 1 - u0;<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                final double t1 = 1 - u1;<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                                final double w1 = t0 * t1;<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                                final double w2 = t0 * u1;<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                                final double w3 = u0 * u1;<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                                final double w4 = u0 * t1;<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                                for (int j = 0; j &lt; is; j++) {<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>                                        values[j] = w1 * f1[j] + w2 * f2[j] + w3 * f3[j] + w4 * f4[j];<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                                }<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                        } else {<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>                                double[] f2 = new double[is];<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                                if (i0 &gt;= 0 &amp;&amp; i1 != e1) {<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>                                        d.getDoubleArray(f2, i0, i1 + 1);<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>                                }<a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>                                final double t1 = 1 - u1;<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span>                                for (int j = 0; j &lt; is; j++) {<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>                                        values[j] = t1 * f1[j] + u1 * f2[j];<a name="line.1896"></a>
+<span class="sourceLineNo">1897</span>                                }<a name="line.1897"></a>
+<span class="sourceLineNo">1898</span>                        }<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>                } else { // exactly on axis 1<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>                        if (u0 &gt; 0) {<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>                                double[] f4 = new double[is];<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span>                                if (i0 != e0 &amp;&amp; i1 &gt;= 0) {<a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>                                        d.getDoubleArray(f4, i0 + 1, i1);<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span>                                }<a name="line.1904"></a>
+<span class="sourceLineNo">1905</span>                                final double t0 = 1 - u0;<a name="line.1905"></a>
+<span class="sourceLineNo">1906</span>                                for (int j = 0; j &lt; is; j++) {<a name="line.1906"></a>
+<span class="sourceLineNo">1907</span>                                        values[j] = t0 * f1[j] + u0 * f4[j];<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span>                                }<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>                        } else { // exactly on axis 0<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>                                if (i0 &gt;= 0 &amp;&amp; i1 &gt;= 0) {<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span>                                        d.getDoubleArray(values, i0, i1);<a name="line.1911"></a>
+<span class="sourceLineNo">1912</span>                                } else {<a name="line.1912"></a>
+<span class="sourceLineNo">1913</span>                                        Arrays.fill(values, 0);<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>                                }<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>                        }<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>                }<a name="line.1916"></a>
+<span class="sourceLineNo">1917</span>        }<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span><a name="line.1918"></a>
+<span class="sourceLineNo">1919</span>        /**<a name="line.1919"></a>
+<span class="sourceLineNo">1920</span>         * Linearly interpolate a value at a point in a n-D dataset. The dataset is<a name="line.1920"></a>
+<span class="sourceLineNo">1921</span>         * considered to have zero support outside its bounds. Thus points just<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span>         * outside are interpolated from the boundary value to zero. The number of<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>         * coordinates must match the rank of the dataset.<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span>         * <a name="line.1924"></a>
+<span class="sourceLineNo">1925</span>         * @param d<a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>         *            input dataset<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>         * @param x<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>         *            coordinates<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>         * @return interpolated value<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>         */<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>        public static double interpolate(final Dataset d, final double... x) {<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>                return interpolate(d, null, x);<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>         * Linearly interpolate a value at a point in a n-D dataset with a mask. The<a name="line.1936"></a>
+<span class="sourceLineNo">1937</span>         * dataset is considered to have zero support outside its bounds. Thus<a name="line.1937"></a>
+<span class="sourceLineNo">1938</span>         * points just outside are interpolated from the boundary value to zero. The<a name="line.1938"></a>
+<span class="sourceLineNo">1939</span>         * number of coordinates must match the rank of the dataset.<a name="line.1939"></a>
+<span class="sourceLineNo">1940</span>         * <a name="line.1940"></a>
+<span class="sourceLineNo">1941</span>         * @param d<a name="line.1941"></a>
+<span class="sourceLineNo">1942</span>         *            input dataset<a name="line.1942"></a>
+<span class="sourceLineNo">1943</span>         * @param m<a name="line.1943"></a>
+<span class="sourceLineNo">1944</span>         *            mask dataset (can be null)<a name="line.1944"></a>
+<span class="sourceLineNo">1945</span>         * @param x<a name="line.1945"></a>
+<span class="sourceLineNo">1946</span>         *            coordinates<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span>         * @return interpolated value<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span>         */<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span>        public static double interpolate(final Dataset d, final Dataset m, final double... x) {<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span>                int r = d.getRank();<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span>                if (r != x.length) {<a name="line.1951"></a>
+<span class="sourceLineNo">1952</span>                        throw new IllegalArgumentException("Number of coordinates must be equal to rank of dataset");<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>                switch (r) {<a name="line.1955"></a>
+<span class="sourceLineNo">1956</span>                case 1:<a name="line.1956"></a>
+<span class="sourceLineNo">1957</span>                        return m == null ? interpolate(d, x[0]) : interpolate(d, m, x[0]);<a name="line.1957"></a>
+<span class="sourceLineNo">1958</span>                case 2:<a name="line.1958"></a>
+<span class="sourceLineNo">1959</span>                        return m == null ? interpolate(d, x[0], x[1]) : interpolate(d, m, x[0], x[1]);<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span>                }<a name="line.1960"></a>
+<span class="sourceLineNo">1961</span><a name="line.1961"></a>
+<span class="sourceLineNo">1962</span>                if (m != null &amp;&amp; r != m.getRank()) {<a name="line.1962"></a>
+<span class="sourceLineNo">1963</span>                        throw new IllegalArgumentException("Rank of mask dataset must be equal to rank of dataset");<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>                // now do it iteratively<a name="line.1966"></a>
+<span class="sourceLineNo">1967</span>                int[] l = new int[r]; // lower indexes<a name="line.1967"></a>
+<span class="sourceLineNo">1968</span>                double[] f = new double[r]; // fractions<a name="line.1968"></a>
+<span class="sourceLineNo">1969</span>                for (int i = 0; i &lt; r; i++) {<a name="line.1969"></a>
+<span class="sourceLineNo">1970</span>                        double xi = x[i];<a name="line.1970"></a>
+<span class="sourceLineNo">1971</span>                        l[i] = (int) Math.floor(xi);<a name="line.1971"></a>
+<span class="sourceLineNo">1972</span>                        f[i] = xi - l[i];<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span>                }<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span><a name="line.1974"></a>
+<span class="sourceLineNo">1975</span>                int[] s = d.getShape();<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span><a name="line.1976"></a>
+<span class="sourceLineNo">1977</span>                int n = 1 &lt;&lt; r;<a name="line.1977"></a>
+<span class="sourceLineNo">1978</span>                double[] results = new double[n];<a name="line.1978"></a>
+<span class="sourceLineNo">1979</span><a name="line.1979"></a>
+<span class="sourceLineNo">1980</span>                // iterate over permutations {l} and {l+1}<a name="line.1980"></a>
+<span class="sourceLineNo">1981</span>                int[] twos = new int[r];<a name="line.1981"></a>
+<span class="sourceLineNo">1982</span>                Arrays.fill(twos, 2);<a name="line.1982"></a>
+<span class="sourceLineNo">1983</span>                PositionIterator it = new PositionIterator(twos);<a name="line.1983"></a>
+<span class="sourceLineNo">1984</span>                int[] ip = it.getPos();<a name="line.1984"></a>
+<span class="sourceLineNo">1985</span>                int j = 0;<a name="line.1985"></a>
+<span class="sourceLineNo">1986</span>                if (m == null) {<a name="line.1986"></a>
+<span class="sourceLineNo">1987</span>                        while (it.hasNext()) {<a name="line.1987"></a>
+<span class="sourceLineNo">1988</span>                                int[] p = l.clone();<a name="line.1988"></a>
+<span class="sourceLineNo">1989</span>                                boolean omit = false;<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span>                                for (int i = 0; i &lt; r; i++) {<a name="line.1990"></a>
+<span class="sourceLineNo">1991</span>                                        int pi = p[i] + ip[i];<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span>                                        if (pi &lt; 0 || pi &gt;= s[i]) {<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span>                                                omit = true;<a name="line.1993"></a>
+<span class="sourceLineNo">1994</span>                                                break;<a name="line.1994"></a>
+<span class="sourceLineNo">1995</span>                                        }<a name="line.1995"></a>
+<span class="sourceLineNo">1996</span>                                        p[i] = pi;<a name="line.1996"></a>
+<span class="sourceLineNo">1997</span>                                }<a name="line.1997"></a>
+<span class="sourceLineNo">1998</span>                                results[j++] = omit ? 0 : d.getDouble(p);<a name="line.1998"></a>
+<span class="sourceLineNo">1999</span>                        }<a name="line.1999"></a>
+<span class="sourceLineNo">2000</span>                } else {<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span>                        while (it.hasNext()) {<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span>                                int[] p = l.clone();<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>                                boolean omit = false;<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>                                for (int i = 0; i &lt; r; i++) {<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span>                                        int pi = p[i] + ip[i];<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>                                        if (pi &lt; 0 || pi &gt;= s[i]) {<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>                                                omit = true;<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span>                                                break;<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>                                        }<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>                                        p[i] = pi;<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span>                                }<a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>                                results[j++] = omit ? 0 : d.getDouble(p) * m.getDouble(p);<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>                // reduce recursively<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span>                for (int i = r - 1; i &gt;= 0; i--) {<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>                        results = combine(results, f[i], 1 &lt;&lt; i);<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span>                }<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>                return results[0];<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>        }<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span><a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>        private static double[] combine(double[] values, double f, int n) {<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>                double g = 1 - f;<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span>                double[] results = new double[n];<a name="line.2025"></a>
+<span class="sourceLineNo">2026</span>                for (int j = 0; j &lt; n; j++) {<a name="line.2026"></a>
+<span class="sourceLineNo">2027</span>                        int tj = 2 * j;<a name="line.2027"></a>
+<span class="sourceLineNo">2028</span>                        results[j] = g * values[tj] + f * values[tj + 1];<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>                return results;<a name="line.2031"></a>
+<span class="sourceLineNo">2032</span>        }<a name="line.2032"></a>
+<span class="sourceLineNo">2033</span><a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>        /**<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>         * Linearly interpolate an array of values at a point in a compound n-D<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span>         * dataset. The dataset is considered to have zero support outside its<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>         * bounds. Thus points just outside are interpolated from the boundary value<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>         * to zero.<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span>         * <a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>         * @param values<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>         *            linearly interpolated array<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>         * @param d<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>         * @param x<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>         */<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span>        public static void interpolate(final double[] values, final CompoundDataset d, final double... x) {<a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>                int r = d.getRank();<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>                if (r != x.length) {<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>                        throw new IllegalArgumentException("Number of coordinates must be equal to rank of dataset");<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>                }<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span><a name="line.2050"></a>
+<span class="sourceLineNo">2051</span>                switch (r) {<a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>                case 1:<a name="line.2052"></a>
+<span class="sourceLineNo">2053</span>                        interpolate(values, d, x[0]);<a name="line.2053"></a>
+<span class="sourceLineNo">2054</span>                        return;<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span>                case 2:<a name="line.2055"></a>
+<span class="sourceLineNo">2056</span>                        interpolate(values, d, x[0], x[1]);<a name="line.2056"></a>
+<span class="sourceLineNo">2057</span>                        return;<a name="line.2057"></a>
+<span class="sourceLineNo">2058</span>                }<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span><a name="line.2059"></a>
+<span class="sourceLineNo">2060</span>                final int is = d.getElementsPerItem();<a name="line.2060"></a>
+<span class="sourceLineNo">2061</span>                if (is != values.length) {<a name="line.2061"></a>
+<span class="sourceLineNo">2062</span>                        throw new IllegalArgumentException("Output array length must match elements in item");<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span>                }<a name="line.2063"></a>
+<span class="sourceLineNo">2064</span><a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>                // now do it iteratively<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>                int[] l = new int[r]; // lower indexes<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>                double[] f = new double[r]; // fractions<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>                for (int i = 0; i &lt; r; i++) {<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span>                        double xi = x[i];<a name="line.2069"></a>
+<span class="sourceLineNo">2070</span>                        l[i] = (int) Math.floor(xi);<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span>                        f[i] = xi - l[i];<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span>                }<a name="line.2072"></a>
+<span class="sourceLineNo">2073</span><a name="line.2073"></a>
+<span class="sourceLineNo">2074</span>                int[] s = d.getShape();<a name="line.2074"></a>
+<span class="sourceLineNo">2075</span><a name="line.2075"></a>
+<span class="sourceLineNo">2076</span>                int n = 1 &lt;&lt; r;<a name="line.2076"></a>
+<span class="sourceLineNo">2077</span>                double[][] results = new double[n][is];<a name="line.2077"></a>
+<span class="sourceLineNo">2078</span><a name="line.2078"></a>
+<span class="sourceLineNo">2079</span>                // iterate over permutations {l} and {l+1}<a name="line.2079"></a>
+<span class="sourceLineNo">2080</span>                int[] twos = new int[r];<a name="line.2080"></a>
+<span class="sourceLineNo">2081</span>                Arrays.fill(twos, 2);<a name="line.2081"></a>
+<span class="sourceLineNo">2082</span>                PositionIterator it = new PositionIterator(twos);<a name="line.2082"></a>
+<span class="sourceLineNo">2083</span>                int[] ip = it.getPos();<a name="line.2083"></a>
+<span class="sourceLineNo">2084</span>                int j = 0;<a name="line.2084"></a>
+<span class="sourceLineNo">2085</span>                while (it.hasNext()) {<a name="line.2085"></a>
+<span class="sourceLineNo">2086</span>                        int[] p = l.clone();<a name="line.2086"></a>
+<span class="sourceLineNo">2087</span>                        boolean omit = false;<a name="line.2087"></a>
+<span class="sourceLineNo">2088</span>                        for (int i = 0; i &lt; r; i++) {<a name="line.2088"></a>
+<span class="sourceLineNo">2089</span>                                int pi = p[i] + ip[i];<a name="line.2089"></a>
+<span class="sourceLineNo">2090</span>                                if (pi &lt; 0 || pi &gt;= s[i]) {<a name="line.2090"></a>
+<span class="sourceLineNo">2091</span>                                        omit = true;<a name="line.2091"></a>
+<span class="sourceLineNo">2092</span>                                        break;<a name="line.2092"></a>
+<span class="sourceLineNo">2093</span>                                }<a name="line.2093"></a>
+<span class="sourceLineNo">2094</span>                                p[i] = pi;<a name="line.2094"></a>
+<span class="sourceLineNo">2095</span>                        }<a name="line.2095"></a>
+<span class="sourceLineNo">2096</span>                        if (!omit) {<a name="line.2096"></a>
+<span class="sourceLineNo">2097</span>                                d.getDoubleArray(results[j++], p);<a name="line.2097"></a>
+<span class="sourceLineNo">2098</span>                        }<a name="line.2098"></a>
+<span class="sourceLineNo">2099</span>                }<a name="line.2099"></a>
+<span class="sourceLineNo">2100</span><a name="line.2100"></a>
+<span class="sourceLineNo">2101</span>                // reduce recursively<a name="line.2101"></a>
+<span class="sourceLineNo">2102</span>                for (int i = r - 1; i &gt;= 0; i--) {<a name="line.2102"></a>
+<span class="sourceLineNo">2103</span>                        results = combineArray(is, results, f[i], 1 &lt;&lt; i);<a name="line.2103"></a>
+<span class="sourceLineNo">2104</span>                }<a name="line.2104"></a>
+<span class="sourceLineNo">2105</span>                for (int k = 0; k &lt; is; k++) {<a name="line.2105"></a>
+<span class="sourceLineNo">2106</span>                        values[k] = results[0][k];<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>        private static double[][] combineArray(int is, double[][] values, double f, int n) {<a name="line.2110"></a>
+<span class="sourceLineNo">2111</span>                double g = 1 - f;<a name="line.2111"></a>
+<span class="sourceLineNo">2112</span>                double[][] results = new double[n][is];<a name="line.2112"></a>
+<span class="sourceLineNo">2113</span>                for (int j = 0; j &lt; n; j++) {<a name="line.2113"></a>
+<span class="sourceLineNo">2114</span>                        int tj = 2 * j;<a name="line.2114"></a>
+<span class="sourceLineNo">2115</span>                        for (int k = 0; k &lt; is; k++) {<a name="line.2115"></a>
+<span class="sourceLineNo">2116</span>                                results[j][k] = g * values[tj][k] + f * values[tj + 1][k];<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>                return results;<a name="line.2120"></a>
+<span class="sourceLineNo">2121</span>        }<a name="line.2121"></a>
+<span class="sourceLineNo">2122</span><a name="line.2122"></a>
+<span class="sourceLineNo">2123</span>        /**<a name="line.2123"></a>
+<span class="sourceLineNo">2124</span>         * Linearly interpolate a value at a point in a 1D dataset. The dataset is<a name="line.2124"></a>
+<span class="sourceLineNo">2125</span>         * considered to have zero support outside its bounds. Thus points just<a name="line.2125"></a>
+<span class="sourceLineNo">2126</span>         * outside are interpolated from the boundary value to zero.<a name="line.2126"></a>
+<span class="sourceLineNo">2127</span>         * <a name="line.2127"></a>
+<span class="sourceLineNo">2128</span>         * @param d<a name="line.2128"></a>
+<span class="sourceLineNo">2129</span>         *            input dataset<a name="line.2129"></a>
+<span class="sourceLineNo">2130</span>         * @param x0<a name="line.2130"></a>
+<span class="sourceLineNo">2131</span>         *            coordinate<a name="line.2131"></a>
+<span class="sourceLineNo">2132</span>         * @return interpolated value<a name="line.2132"></a>
+<span class="sourceLineNo">2133</span>         * @deprecated Use {@link #interpolate(Dataset, double)}<a name="line.2133"></a>
+<span class="sourceLineNo">2134</span>         */<a name="line.2134"></a>
+<span class="sourceLineNo">2135</span>        @Deprecated<a name="line.2135"></a>
+<span class="sourceLineNo">2136</span>        public static double getLinear(final IDataset d, final double x0) {<a name="line.2136"></a>
+<span class="sourceLineNo">2137</span>                return interpolate(DatasetUtils.convertToDataset(d), x0);<a name="line.2137"></a>
+<span class="sourceLineNo">2138</span>        }<a name="line.2138"></a>
+<span class="sourceLineNo">2139</span><a name="line.2139"></a>
+<span class="sourceLineNo">2140</span>        /**<a name="line.2140"></a>
+<span class="sourceLineNo">2141</span>         * Linearly interpolate a value at a point in a compound 1D dataset. The<a name="line.2141"></a>
+<span class="sourceLineNo">2142</span>         * dataset is considered to have zero support outside its bounds. Thus<a name="line.2142"></a>
+<span class="sourceLineNo">2143</span>         * points just outside are interpolated from the boundary value to zero.<a name="line.2143"></a>
+<span class="sourceLineNo">2144</span>         * <a name="line.2144"></a>
+<span class="sourceLineNo">2145</span>         * @param values<a name="line.2145"></a>
+<span class="sourceLineNo">2146</span>         *            interpolated array<a name="line.2146"></a>
+<span class="sourceLineNo">2147</span>         * @param d<a name="line.2147"></a>
+<span class="sourceLineNo">2148</span>         *            input dataset<a name="line.2148"></a>
+<span class="sourceLineNo">2149</span>         * @param x0<a name="line.2149"></a>
+<span class="sourceLineNo">2150</span>         *            coordinate<a name="line.2150"></a>
+<span class="sourceLineNo">2151</span>         * @deprecated Use {@link #interpolate(double[], CompoundDataset, double)}<a name="line.2151"></a>
+<span class="sourceLineNo">2152</span>         */<a name="line.2152"></a>
+<span class="sourceLineNo">2153</span>        @Deprecated<a name="line.2153"></a>
+<span class="sourceLineNo">2154</span>        public static void getLinear(final double[] values, final CompoundDataset d, final double x0) {<a name="line.2154"></a>
+<span class="sourceLineNo">2155</span>                interpolate(values, d, x0);<a name="line.2155"></a>
+<span class="sourceLineNo">2156</span>        }<a name="line.2156"></a>
+<span class="sourceLineNo">2157</span><a name="line.2157"></a>
+<span class="sourceLineNo">2158</span>        /**<a name="line.2158"></a>
+<span class="sourceLineNo">2159</span>         * Interpolated a value from 2D dataset<a name="line.2159"></a>
+<span class="sourceLineNo">2160</span>         * <a name="line.2160"></a>
+<span class="sourceLineNo">2161</span>         * @param d<a name="line.2161"></a>
+<span class="sourceLineNo">2162</span>         *            input dataset<a name="line.2162"></a>
+<span class="sourceLineNo">2163</span>         * @param x0<a name="line.2163"></a>
+<span class="sourceLineNo">2164</span>         *            coordinate<a name="line.2164"></a>
+<span class="sourceLineNo">2165</span>         * @param x1<a name="line.2165"></a>
+<span class="sourceLineNo">2166</span>         *            coordinate<a name="line.2166"></a>
+<span class="sourceLineNo">2167</span>         * @return bilinear interpolation<a name="line.2167"></a>
+<span class="sourceLineNo">2168</span>         * @deprecated Use {@link #interpolate(Dataset, double, double)}<a name="line.2168"></a>
+<span class="sourceLineNo">2169</span>         */<a name="line.2169"></a>
+<span class="sourceLineNo">2170</span>        @Deprecated<a name="line.2170"></a>
+<span class="sourceLineNo">2171</span>        public static double getBilinear(final IDataset d, final double x0, final double x1) {<a name="line.2171"></a>
+<span class="sourceLineNo">2172</span>                return interpolate(DatasetUtils.convertToDataset(d), x0, x1);<a name="line.2172"></a>
+<span class="sourceLineNo">2173</span>        }<a name="line.2173"></a>
+<span class="sourceLineNo">2174</span><a name="line.2174"></a>
+<span class="sourceLineNo">2175</span>        /**<a name="line.2175"></a>
+<span class="sourceLineNo">2176</span>         * Interpolated a value from 2D dataset with mask<a name="line.2176"></a>
+<span class="sourceLineNo">2177</span>         * <a name="line.2177"></a>
+<span class="sourceLineNo">2178</span>         * @param d<a name="line.2178"></a>
+<span class="sourceLineNo">2179</span>         *            input dataset<a name="line.2179"></a>
+<span class="sourceLineNo">2180</span>         * @param m<a name="line.2180"></a>
+<span class="sourceLineNo">2181</span>         *            mask dataset<a name="line.2181"></a>
+<span class="sourceLineNo">2182</span>         * @param x0<a name="line.2182"></a>
+<span class="sourceLineNo">2183</span>         *            coordinate<a name="line.2183"></a>
+<span class="sourceLineNo">2184</span>         * @param x1<a name="line.2184"></a>
+<span class="sourceLineNo">2185</span>         *            coordinate<a name="line.2185"></a>
+<span class="sourceLineNo">2186</span>         * @return bilinear interpolation<a name="line.2186"></a>
+<span class="sourceLineNo">2187</span>         * @deprecated Use {@link #interpolate(Dataset, Dataset, double, double)}<a name="line.2187"></a>
+<span class="sourceLineNo">2188</span>         */<a name="line.2188"></a>
+<span class="sourceLineNo">2189</span>        @Deprecated<a name="line.2189"></a>
+<span class="sourceLineNo">2190</span>        public static double getBilinear(final IDataset d, final IDataset m, final double x0, final double x1) {<a name="line.2190"></a>
+<span class="sourceLineNo">2191</span>                return interpolate(DatasetUtils.convertToDataset(d), DatasetUtils.convertToDataset(m), x0, x1);<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>         * Interpolated a value from 2D compound dataset<a name="line.2195"></a>
+<span class="sourceLineNo">2196</span>         * <a name="line.2196"></a>
+<span class="sourceLineNo">2197</span>         * @param values<a name="line.2197"></a>
+<span class="sourceLineNo">2198</span>         *            bilinear interpolated array<a name="line.2198"></a>
+<span class="sourceLineNo">2199</span>         * @param d<a name="line.2199"></a>
+<span class="sourceLineNo">2200</span>         * @param x0<a name="line.2200"></a>
+<span class="sourceLineNo">2201</span>         * @param x1<a name="line.2201"></a>
+<span class="sourceLineNo">2202</span>         * @deprecated Use<a name="line.2202"></a>
+<span class="sourceLineNo">2203</span>         *             {@link #interpolate(double[], CompoundDataset, double, double)}<a name="line.2203"></a>
+<span class="sourceLineNo">2204</span>         */<a name="line.2204"></a>
+<span class="sourceLineNo">2205</span>        @Deprecated<a name="line.2205"></a>
+<span class="sourceLineNo">2206</span>        public static void getBilinear(final double[] values, final CompoundDataset d, final double x0, final double x1) {<a name="line.2206"></a>
+<span class="sourceLineNo">2207</span>                interpolate(values, d, x0, x1);<a name="line.2207"></a>
+<span class="sourceLineNo">2208</span>        }<a name="line.2208"></a>
+<span class="sourceLineNo">2209</span><a name="line.2209"></a>
+<span class="sourceLineNo">2210</span>        /**<a name="line.2210"></a>
+<span class="sourceLineNo">2211</span>         * generate binomial coefficients with negative sign:<a name="line.2211"></a>
+<span class="sourceLineNo">2212</span>         * &lt;p&gt;<a name="line.2212"></a>
+<span class="sourceLineNo">2213</span>         * <a name="line.2213"></a>
+<span class="sourceLineNo">2214</span>         * &lt;pre&gt;<a name="line.2214"></a>
+<span class="sourceLineNo">2215</span>         *  (-1)^i n! / ( i! (n-i)! )<a name="line.2215"></a>
+<span class="sourceLineNo">2216</span>         * &lt;/pre&gt;<a name="line.2216"></a>
+<span class="sourceLineNo">2217</span>         * <a name="line.2217"></a>
+<span class="sourceLineNo">2218</span>         * @param n<a name="line.2218"></a>
+<span class="sourceLineNo">2219</span>         * @return array of coefficients<a name="line.2219"></a>
+<span class="sourceLineNo">2220</span>         */<a name="line.2220"></a>
+<span class="sourceLineNo">2221</span>        private static int[] bincoeff(final int n) {<a name="line.2221"></a>
+<span class="sourceLineNo">2222</span>                final int[] b = new int[n + 1];<a name="line.2222"></a>
+<span class="sourceLineNo">2223</span>                final int hn = n / 2;<a name="line.2223"></a>
+<span class="sourceLineNo">2224</span><a name="line.2224"></a>
+<span class="sourceLineNo">2225</span>                int bc = 1;<a name="line.2225"></a>
+<span class="sourceLineNo">2226</span>                b[0] = bc;<a name="line.2226"></a>
+<span class="sourceLineNo">2227</span>                for (int i = 1; i &lt;= hn; i++) {<a name="line.2227"></a>
+<span class="sourceLineNo">2228</span>                        bc = -(bc * (n - i + 1)) / i;<a name="line.2228"></a>
+<span class="sourceLineNo">2229</span>                        b[i] = bc;<a name="line.2229"></a>
+<span class="sourceLineNo">2230</span>                }<a name="line.2230"></a>
+<span class="sourceLineNo">2231</span>                if (n % 2 != 0) {<a name="line.2231"></a>
+<span class="sourceLineNo">2232</span>                        for (int i = hn + 1; i &lt;= n; i++) {<a name="line.2232"></a>
+<span class="sourceLineNo">2233</span>                                b[i] = -b[n - i];<a name="line.2233"></a>
+<span class="sourceLineNo">2234</span>                        }<a name="line.2234"></a>
+<span class="sourceLineNo">2235</span>                } else {<a name="line.2235"></a>
+<span class="sourceLineNo">2236</span>                        for (int i = hn + 1; i &lt;= n; i++) {<a name="line.2236"></a>
+<span class="sourceLineNo">2237</span>                                b[i] = b[n - i];<a name="line.2237"></a>
+<span class="sourceLineNo">2238</span>                        }<a name="line.2238"></a>
+<span class="sourceLineNo">2239</span>                }<a name="line.2239"></a>
+<span class="sourceLineNo">2240</span>                return b;<a name="line.2240"></a>
+<span class="sourceLineNo">2241</span>        }<a name="line.2241"></a>
+<span class="sourceLineNo">2242</span><a name="line.2242"></a>
+<span class="sourceLineNo">2243</span>        /**<a name="line.2243"></a>
+<span class="sourceLineNo">2244</span>         * 1st order discrete difference of dataset along flattened dataset using<a name="line.2244"></a>
+<span class="sourceLineNo">2245</span>         * finite difference<a name="line.2245"></a>
+<span class="sourceLineNo">2246</span>         * <a name="line.2246"></a>
+<span class="sourceLineNo">2247</span>         * @param a<a name="line.2247"></a>
+<span class="sourceLineNo">2248</span>         *            is 1d dataset<a name="line.2248"></a>
+<span class="sourceLineNo">2249</span>         * @param out<a name="line.2249"></a>
+<span class="sourceLineNo">2250</span>         *            is 1d dataset<a name="line.2250"></a>
+<span class="sourceLineNo">2251</span>         */<a name="line.2251"></a>
+<span class="sourceLineNo">2252</span>        private static void difference(final Dataset a, final Dataset out) {<a name="line.2252"></a>
+<span class="sourceLineNo">2253</span>                final int isize = a.getElementsPerItem();<a name="line.2253"></a>
+<span class="sourceLineNo">2254</span><a name="line.2254"></a>
+<span class="sourceLineNo">2255</span>                final IndexIterator it = a.getIterator();<a name="line.2255"></a>
+<span class="sourceLineNo">2256</span>                if (!it.hasNext())<a name="line.2256"></a>
+<span class="sourceLineNo">2257</span>                        return;<a name="line.2257"></a>
+<span class="sourceLineNo">2258</span>                int oi = it.index;<a name="line.2258"></a>
+<span class="sourceLineNo">2259</span><a name="line.2259"></a>
+<span class="sourceLineNo">2260</span>                switch (a.getDType()) {<a name="line.2260"></a>
+<span class="sourceLineNo">2261</span>                case Dataset.INT8:<a name="line.2261"></a>
+<span class="sourceLineNo">2262</span>                        final byte[] i8data = ((ByteDataset) a).getData();<a name="line.2262"></a>
+<span class="sourceLineNo">2263</span>                        final byte[] oi8data = ((ByteDataset) out).getData();<a name="line.2263"></a>
+<span class="sourceLineNo">2264</span>                        for (int i = 0; it.hasNext();) {<a name="line.2264"></a>
+<span class="sourceLineNo">2265</span>                                oi8data[i++] = (byte) (i8data[it.index] - i8data[oi]);<a name="line.2265"></a>
+<span class="sourceLineNo">2266</span>                                oi = it.index;<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.INT16:<a name="line.2269"></a>
+<span class="sourceLineNo">2270</span>                        final short[] i16data = ((ShortDataset) a).getData();<a name="line.2270"></a>
+<span class="sourceLineNo">2271</span>                        final short[] oi16data = ((ShortDataset) out).getData();<a name="line.2271"></a>
+<span class="sourceLineNo">2272</span>                        for (int i = 0; it.hasNext();) {<a name="line.2272"></a>
+<span class="sourceLineNo">2273</span>                                oi16data[i++] = (short) (i16data[it.index] - i16data[oi]);<a name="line.2273"></a>
+<span class="sourceLineNo">2274</span>                                oi = it.index;<a name="line.2274"></a>
+<span class="sourceLineNo">2275</span>                        }<a name="line.2275"></a>
+<span class="sourceLineNo">2276</span>                        break;<a name="line.2276"></a>
+<span class="sourceLineNo">2277</span>                case Dataset.INT32:<a name="line.2277"></a>
+<span class="sourceLineNo">2278</span>                        final int[] i32data = ((IntegerDataset) a).getData();<a name="line.2278"></a>
+<span class="sourceLineNo">2279</span>                        final int[] oi32data = ((IntegerDataset) out).getData();<a name="line.2279"></a>
+<span class="sourceLineNo">2280</span>                        for (int i = 0; it.hasNext();) {<a name="line.2280"></a>
+<span class="sourceLineNo">2281</span>                                oi32data[i++] = i32data[it.index] - i32data[oi];<a name="line.2281"></a>
+<span class="sourceLineNo">2282</span>                                oi = it.index;<a name="line.2282"></a>
+<span class="sourceLineNo">2283</span>                        }<a name="line.2283"></a>
+<span class="sourceLineNo">2284</span>                        break;<a name="line.2284"></a>
+<span class="sourceLineNo">2285</span>                case Dataset.INT64:<a name="line.2285"></a>
+<span class="sourceLineNo">2286</span>                        final long[] i64data = ((LongDataset) a).getData();<a name="line.2286"></a>
+<span class="sourceLineNo">2287</span>                        final long[] oi64data = ((LongDataset) out).getData();<a name="line.2287"></a>
+<span class="sourceLineNo">2288</span>                        for (int i = 0; it.hasNext();) {<a name="line.2288"></a>
+<span class="sourceLineNo">2289</span>                                oi64data[i++] = i64data[it.index] - i64data[oi];<a name="line.2289"></a>
+<span class="sourceLineNo">2290</span>                                oi = it.index;<a name="line.2290"></a>
+<span class="sourceLineNo">2291</span>                        }<a name="line.2291"></a>
+<span class="sourceLineNo">2292</span>                        break;<a name="line.2292"></a>
+<span class="sourceLineNo">2293</span>                case Dataset.ARRAYINT8:<a name="line.2293"></a>
+<span class="sourceLineNo">2294</span>                        final byte[] ai8data = ((CompoundByteDataset) a).getData();<a name="line.2294"></a>
+<span class="sourceLineNo">2295</span>                        final byte[] oai8data = ((CompoundByteDataset) out).getData();<a name="line.2295"></a>
+<span class="sourceLineNo">2296</span>                        for (int i = 0; it.hasNext();) {<a name="line.2296"></a>
+<span class="sourceLineNo">2297</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2297"></a>
+<span class="sourceLineNo">2298</span>                                        oai8data[i++] = (byte) (ai8data[it.index + k] - ai8data[oi++]);<a name="line.2298"></a>
+<span class="sourceLineNo">2299</span>                                }<a name="line.2299"></a>
+<span class="sourceLineNo">2300</span>                                oi = it.index;<a name="line.2300"></a>
+<span class="sourceLineNo">2301</span>                        }<a name="line.2301"></a>
+<span class="sourceLineNo">2302</span>                        break;<a name="line.2302"></a>
+<span class="sourceLineNo">2303</span>                case Dataset.ARRAYINT16:<a name="line.2303"></a>
+<span class="sourceLineNo">2304</span>                        final short[] ai16data = ((CompoundShortDataset) a).getData();<a name="line.2304"></a>
+<span class="sourceLineNo">2305</span>                        final short[] oai16data = ((CompoundShortDataset) out).getData();<a name="line.2305"></a>
+<span class="sourceLineNo">2306</span>                        for (int i = 0; it.hasNext();) {<a name="line.2306"></a>
+<span class="sourceLineNo">2307</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2307"></a>
+<span class="sourceLineNo">2308</span>                                        oai16data[i++] = (short) (ai16data[it.index + k] - ai16data[oi++]);<a name="line.2308"></a>
+<span class="sourceLineNo">2309</span>                                }<a name="line.2309"></a>
+<span class="sourceLineNo">2310</span>                                oi = it.index;<a name="line.2310"></a>
+<span class="sourceLineNo">2311</span>                        }<a name="line.2311"></a>
+<span class="sourceLineNo">2312</span>                        break;<a name="line.2312"></a>
+<span class="sourceLineNo">2313</span>                case Dataset.ARRAYINT32:<a name="line.2313"></a>
+<span class="sourceLineNo">2314</span>                        final int[] ai32data = ((CompoundIntegerDataset) a).getData();<a name="line.2314"></a>
+<span class="sourceLineNo">2315</span>                        final int[] oai32data = ((CompoundIntegerDataset) out).getData();<a name="line.2315"></a>
+<span class="sourceLineNo">2316</span>                        for (int i = 0; it.hasNext();) {<a name="line.2316"></a>
+<span class="sourceLineNo">2317</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2317"></a>
+<span class="sourceLineNo">2318</span>                                        oai32data[i++] = ai32data[it.index + k] - ai32data[oi++];<a name="line.2318"></a>
+<span class="sourceLineNo">2319</span>                                }<a name="line.2319"></a>
+<span class="sourceLineNo">2320</span>                                oi = it.index;<a name="line.2320"></a>
+<span class="sourceLineNo">2321</span>                        }<a name="line.2321"></a>
+<span class="sourceLineNo">2322</span>                        break;<a name="line.2322"></a>
+<span class="sourceLineNo">2323</span>                case Dataset.ARRAYINT64:<a name="line.2323"></a>
+<span class="sourceLineNo">2324</span>                        final long[] ai64data = ((CompoundLongDataset) a).getData();<a name="line.2324"></a>
+<span class="sourceLineNo">2325</span>                        final long[] oai64data = ((CompoundLongDataset) out).getData();<a name="line.2325"></a>
+<span class="sourceLineNo">2326</span>                        for (int i = 0; it.hasNext();) {<a name="line.2326"></a>
+<span class="sourceLineNo">2327</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2327"></a>
+<span class="sourceLineNo">2328</span>                                        oai64data[i++] = ai64data[it.index + k] - ai64data[oi++];<a name="line.2328"></a>
+<span class="sourceLineNo">2329</span>                                }<a name="line.2329"></a>
+<span class="sourceLineNo">2330</span>                                oi = it.index;<a name="line.2330"></a>
+<span class="sourceLineNo">2331</span>                        }<a name="line.2331"></a>
+<span class="sourceLineNo">2332</span>                        break;<a name="line.2332"></a>
+<span class="sourceLineNo">2333</span>                case Dataset.FLOAT32:<a name="line.2333"></a>
+<span class="sourceLineNo">2334</span>                        final float[] f32data = ((FloatDataset) a).getData();<a name="line.2334"></a>
+<span class="sourceLineNo">2335</span>                        final float[] of32data = ((FloatDataset) out).getData();<a name="line.2335"></a>
+<span class="sourceLineNo">2336</span>                        for (int i = 0; it.hasNext();) {<a name="line.2336"></a>
+<span class="sourceLineNo">2337</span>                                of32data[i++] = f32data[it.index] - f32data[oi];<a name="line.2337"></a>
+<span class="sourceLineNo">2338</span>                                oi = it.index;<a name="line.2338"></a>
+<span class="sourceLineNo">2339</span>                        }<a name="line.2339"></a>
+<span class="sourceLineNo">2340</span>                        break;<a name="line.2340"></a>
+<span class="sourceLineNo">2341</span>                case Dataset.FLOAT64:<a name="line.2341"></a>
+<span class="sourceLineNo">2342</span>                        final double[] f64data = ((DoubleDataset) a).getData();<a name="line.2342"></a>
+<span class="sourceLineNo">2343</span>                        final double[] of64data = ((DoubleDataset) out).getData();<a name="line.2343"></a>
+<span class="sourceLineNo">2344</span>                        for (int i = 0; it.hasNext();) {<a name="line.2344"></a>
+<span class="sourceLineNo">2345</span>                                of64data[i++] = f64data[it.index] - f64data[oi];<a name="line.2345"></a>
+<span class="sourceLineNo">2346</span>                                oi = it.index;<a name="line.2346"></a>
+<span class="sourceLineNo">2347</span>                        }<a name="line.2347"></a>
+<span class="sourceLineNo">2348</span>                        break;<a name="line.2348"></a>
+<span class="sourceLineNo">2349</span>                case Dataset.COMPLEX64:<a name="line.2349"></a>
+<span class="sourceLineNo">2350</span>                        final float[] c64data = ((ComplexFloatDataset) a).getData();<a name="line.2350"></a>
+<span class="sourceLineNo">2351</span>                        final float[] oc64data = ((ComplexFloatDataset) out).getData();<a name="line.2351"></a>
+<span class="sourceLineNo">2352</span>                        for (int i = 0; it.hasNext();) {<a name="line.2352"></a>
+<span class="sourceLineNo">2353</span>                                oc64data[i++] = c64data[it.index] - c64data[oi];<a name="line.2353"></a>
+<span class="sourceLineNo">2354</span>                                oc64data[i++] = c64data[it.index + 1] - c64data[oi + 1];<a name="line.2354"></a>
+<span class="sourceLineNo">2355</span>                                oi = it.index;<a name="line.2355"></a>
+<span class="sourceLineNo">2356</span>                        }<a name="line.2356"></a>
+<span class="sourceLineNo">2357</span>                        break;<a name="line.2357"></a>
+<span class="sourceLineNo">2358</span>                case Dataset.COMPLEX128:<a name="line.2358"></a>
+<span class="sourceLineNo">2359</span>                        final double[] c128data = ((ComplexDoubleDataset) a).getData();<a name="line.2359"></a>
+<span class="sourceLineNo">2360</span>                        final double[] oc128data = ((ComplexDoubleDataset) out).getData();<a name="line.2360"></a>
+<span class="sourceLineNo">2361</span>                        for (int i = 0; it.hasNext();) {<a name="line.2361"></a>
+<span class="sourceLineNo">2362</span>                                oc128data[i++] = c128data[it.index] - c128data[oi];<a name="line.2362"></a>
+<span class="sourceLineNo">2363</span>                                oc128data[i++] = c128data[it.index + 1] - c128data[oi + 1];<a name="line.2363"></a>
+<span class="sourceLineNo">2364</span>                                oi = it.index;<a name="line.2364"></a>
+<span class="sourceLineNo">2365</span>                        }<a name="line.2365"></a>
+<span class="sourceLineNo">2366</span>                        break;<a name="line.2366"></a>
+<span class="sourceLineNo">2367</span>                case Dataset.ARRAYFLOAT32:<a name="line.2367"></a>
+<span class="sourceLineNo">2368</span>                        final float[] af32data = ((CompoundFloatDataset) a).getData();<a name="line.2368"></a>
+<span class="sourceLineNo">2369</span>                        final float[] oaf32data = ((CompoundFloatDataset) out).getData();<a name="line.2369"></a>
+<span class="sourceLineNo">2370</span>                        for (int i = 0; it.hasNext();) {<a name="line.2370"></a>
+<span class="sourceLineNo">2371</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2371"></a>
+<span class="sourceLineNo">2372</span>                                        oaf32data[i++] = af32data[it.index + k] - af32data[oi++];<a name="line.2372"></a>
+<span class="sourceLineNo">2373</span>                                }<a name="line.2373"></a>
+<span class="sourceLineNo">2374</span>                                oi = it.index;<a name="line.2374"></a>
+<span class="sourceLineNo">2375</span>                        }<a name="line.2375"></a>
+<span class="sourceLineNo">2376</span>                        break;<a name="line.2376"></a>
+<span class="sourceLineNo">2377</span>                case Dataset.ARRAYFLOAT64:<a name="line.2377"></a>
+<span class="sourceLineNo">2378</span>                        final double[] af64data = ((CompoundDoubleDataset) a).getData();<a name="line.2378"></a>
+<span class="sourceLineNo">2379</span>                        final double[] oaf64data = ((CompoundDoubleDataset) out).getData();<a name="line.2379"></a>
+<span class="sourceLineNo">2380</span>                        for (int i = 0; it.hasNext();) {<a name="line.2380"></a>
+<span class="sourceLineNo">2381</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2381"></a>
+<span class="sourceLineNo">2382</span>                                        oaf64data[i++] = af64data[it.index + k] - af64data[oi++];<a name="line.2382"></a>
+<span class="sourceLineNo">2383</span>                                }<a name="line.2383"></a>
+<span class="sourceLineNo">2384</span>                                oi = it.index;<a name="line.2384"></a>
+<span class="sourceLineNo">2385</span>                        }<a name="line.2385"></a>
+<span class="sourceLineNo">2386</span>                        break;<a name="line.2386"></a>
+<span class="sourceLineNo">2387</span>                default:<a name="line.2387"></a>
+<span class="sourceLineNo">2388</span>                        throw new UnsupportedOperationException("difference does not support this dataset type");<a name="line.2388"></a>
+<span class="sourceLineNo">2389</span>                }<a name="line.2389"></a>
+<span class="sourceLineNo">2390</span>        }<a name="line.2390"></a>
+<span class="sourceLineNo">2391</span><a name="line.2391"></a>
+<span class="sourceLineNo">2392</span>        /**<a name="line.2392"></a>
+<span class="sourceLineNo">2393</span>         * Get next set of indexes<a name="line.2393"></a>
+<span class="sourceLineNo">2394</span>         * <a name="line.2394"></a>
+<span class="sourceLineNo">2395</span>         * @param it<a name="line.2395"></a>
+<span class="sourceLineNo">2396</span>         * @param indexes<a name="line.2396"></a>
+<span class="sourceLineNo">2397</span>         * @return true if there is more<a name="line.2397"></a>
+<span class="sourceLineNo">2398</span>         */<a name="line.2398"></a>
+<span class="sourceLineNo">2399</span>        private static boolean nextIndexes(IndexIterator it, int[] indexes) {<a name="line.2399"></a>
+<span class="sourceLineNo">2400</span>                if (!it.hasNext())<a name="line.2400"></a>
+<span class="sourceLineNo">2401</span>                        return false;<a name="line.2401"></a>
+<span class="sourceLineNo">2402</span>                int m = indexes.length;<a name="line.2402"></a>
+<span class="sourceLineNo">2403</span>                int i = 0;<a name="line.2403"></a>
+<span class="sourceLineNo">2404</span>                for (i = 0; i &lt; m - 1; i++) {<a name="line.2404"></a>
+<span class="sourceLineNo">2405</span>                        indexes[i] = indexes[i + 1];<a name="line.2405"></a>
+<span class="sourceLineNo">2406</span>                }<a name="line.2406"></a>
+<span class="sourceLineNo">2407</span>                indexes[i] = it.index;<a name="line.2407"></a>
+<span class="sourceLineNo">2408</span>                return true;<a name="line.2408"></a>
+<span class="sourceLineNo">2409</span>        }<a name="line.2409"></a>
+<span class="sourceLineNo">2410</span><a name="line.2410"></a>
+<span class="sourceLineNo">2411</span>        /**<a name="line.2411"></a>
+<span class="sourceLineNo">2412</span>         * General order discrete difference of dataset along flattened dataset<a name="line.2412"></a>
+<span class="sourceLineNo">2413</span>         * using finite difference<a name="line.2413"></a>
+<span class="sourceLineNo">2414</span>         * <a name="line.2414"></a>
+<span class="sourceLineNo">2415</span>         * @param a<a name="line.2415"></a>
+<span class="sourceLineNo">2416</span>         *            is 1d dataset<a name="line.2416"></a>
+<span class="sourceLineNo">2417</span>         * @param out<a name="line.2417"></a>
+<span class="sourceLineNo">2418</span>         *            is 1d dataset<a name="line.2418"></a>
+<span class="sourceLineNo">2419</span>         * @param n<a name="line.2419"></a>
+<span class="sourceLineNo">2420</span>         *            order of difference<a name="line.2420"></a>
+<span class="sourceLineNo">2421</span>         */<a name="line.2421"></a>
+<span class="sourceLineNo">2422</span>        private static void difference(final Dataset a, final Dataset out, final int n) {<a name="line.2422"></a>
+<span class="sourceLineNo">2423</span>                if (n == 1) {<a name="line.2423"></a>
+<span class="sourceLineNo">2424</span>                        difference(a, out);<a name="line.2424"></a>
+<span class="sourceLineNo">2425</span>                        return;<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>                final int isize = a.getElementsPerItem();<a name="line.2428"></a>
+<span class="sourceLineNo">2429</span><a name="line.2429"></a>
+<span class="sourceLineNo">2430</span>                final int[] coeff = bincoeff(n);<a name="line.2430"></a>
+<span class="sourceLineNo">2431</span>                final int m = n + 1;<a name="line.2431"></a>
+<span class="sourceLineNo">2432</span>                final int[] indexes = new int[m]; // store for index values<a name="line.2432"></a>
+<span class="sourceLineNo">2433</span><a name="line.2433"></a>
+<span class="sourceLineNo">2434</span>                final IndexIterator it = a.getIterator();<a name="line.2434"></a>
+<span class="sourceLineNo">2435</span>                for (int i = 0; i &lt; n; i++) {<a name="line.2435"></a>
+<span class="sourceLineNo">2436</span>                        indexes[i] = it.index;<a name="line.2436"></a>
+<span class="sourceLineNo">2437</span>                        it.hasNext();<a name="line.2437"></a>
+<span class="sourceLineNo">2438</span>                }<a name="line.2438"></a>
+<span class="sourceLineNo">2439</span>                indexes[n] = it.index;<a name="line.2439"></a>
+<span class="sourceLineNo">2440</span><a name="line.2440"></a>
+<span class="sourceLineNo">2441</span>                switch (a.getDType()) {<a name="line.2441"></a>
+<span class="sourceLineNo">2442</span>                case Dataset.INT8:<a name="line.2442"></a>
+<span class="sourceLineNo">2443</span>                        final byte[] i8data = ((ByteDataset) a).getData();<a name="line.2443"></a>
+<span class="sourceLineNo">2444</span>                        final byte[] oi8data = ((ByteDataset) out).getData();<a name="line.2444"></a>
+<span class="sourceLineNo">2445</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2445"></a>
+<span class="sourceLineNo">2446</span>                                int ox = 0;<a name="line.2446"></a>
+<span class="sourceLineNo">2447</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2447"></a>
+<span class="sourceLineNo">2448</span>                                        ox += i8data[indexes[j]] * coeff[j];<a name="line.2448"></a>
+<span class="sourceLineNo">2449</span>                                }<a name="line.2449"></a>
+<span class="sourceLineNo">2450</span>                                oi8data[i++] = (byte) ox;<a name="line.2450"></a>
+<span class="sourceLineNo">2451</span>                        }<a name="line.2451"></a>
+<span class="sourceLineNo">2452</span>                        break;<a name="line.2452"></a>
+<span class="sourceLineNo">2453</span>                case Dataset.INT16:<a name="line.2453"></a>
+<span class="sourceLineNo">2454</span>                        final short[] i16data = ((ShortDataset) a).getData();<a name="line.2454"></a>
+<span class="sourceLineNo">2455</span>                        final short[] oi16data = ((ShortDataset) out).getData();<a name="line.2455"></a>
+<span class="sourceLineNo">2456</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2456"></a>
+<span class="sourceLineNo">2457</span>                                int ox = 0;<a name="line.2457"></a>
+<span class="sourceLineNo">2458</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2458"></a>
+<span class="sourceLineNo">2459</span>                                        ox += i16data[indexes[j]] * coeff[j];<a name="line.2459"></a>
+<span class="sourceLineNo">2460</span>                                }<a name="line.2460"></a>
+<span class="sourceLineNo">2461</span>                                oi16data[i++] = (short) ox;<a name="line.2461"></a>
+<span class="sourceLineNo">2462</span>                        }<a name="line.2462"></a>
+<span class="sourceLineNo">2463</span>                        break;<a name="line.2463"></a>
+<span class="sourceLineNo">2464</span>                case Dataset.INT32:<a name="line.2464"></a>
+<span class="sourceLineNo">2465</span>                        final int[] i32data = ((IntegerDataset) a).getData();<a name="line.2465"></a>
+<span class="sourceLineNo">2466</span>                        final int[] oi32data = ((IntegerDataset) out).getData();<a name="line.2466"></a>
+<span class="sourceLineNo">2467</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2467"></a>
+<span class="sourceLineNo">2468</span>                                int ox = 0;<a name="line.2468"></a>
+<span class="sourceLineNo">2469</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2469"></a>
+<span class="sourceLineNo">2470</span>                                        ox += i32data[indexes[j]] * coeff[j];<a name="line.2470"></a>
+<span class="sourceLineNo">2471</span>                                }<a name="line.2471"></a>
+<span class="sourceLineNo">2472</span>                                oi32data[i++] = ox;<a name="line.2472"></a>
+<span class="sourceLineNo">2473</span>                        }<a name="line.2473"></a>
+<span class="sourceLineNo">2474</span>                        break;<a name="line.2474"></a>
+<span class="sourceLineNo">2475</span>                case Dataset.INT64:<a name="line.2475"></a>
+<span class="sourceLineNo">2476</span>                        final long[] i64data = ((LongDataset) a).getData();<a name="line.2476"></a>
+<span class="sourceLineNo">2477</span>                        final long[] oi64data = ((LongDataset) out).getData();<a name="line.2477"></a>
+<span class="sourceLineNo">2478</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2478"></a>
+<span class="sourceLineNo">2479</span>                                long ox = 0;<a name="line.2479"></a>
+<span class="sourceLineNo">2480</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2480"></a>
+<span class="sourceLineNo">2481</span>                                        ox += i64data[indexes[j]] * coeff[j];<a name="line.2481"></a>
+<span class="sourceLineNo">2482</span>                                }<a name="line.2482"></a>
+<span class="sourceLineNo">2483</span>                                oi64data[i++] = ox;<a name="line.2483"></a>
+<span class="sourceLineNo">2484</span>                        }<a name="line.2484"></a>
+<span class="sourceLineNo">2485</span>                        break;<a name="line.2485"></a>
+<span class="sourceLineNo">2486</span>                case Dataset.ARRAYINT8:<a name="line.2486"></a>
+<span class="sourceLineNo">2487</span>                        final byte[] ai8data = ((CompoundByteDataset) a).getData();<a name="line.2487"></a>
+<span class="sourceLineNo">2488</span>                        final byte[] oai8data = ((CompoundByteDataset) out).getData();<a name="line.2488"></a>
+<span class="sourceLineNo">2489</span>                        int[] box = new int[isize];<a name="line.2489"></a>
+<span class="sourceLineNo">2490</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2490"></a>
+<span class="sourceLineNo">2491</span>                                Arrays.fill(box, 0);<a name="line.2491"></a>
+<span class="sourceLineNo">2492</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2492"></a>
+<span class="sourceLineNo">2493</span>                                        double c = coeff[j];<a name="line.2493"></a>
+<span class="sourceLineNo">2494</span>                                        int l = indexes[j];<a name="line.2494"></a>
+<span class="sourceLineNo">2495</span>                                        for (int k = 0; k &lt; isize; k++) {<a name="line.2495"></a>
+<span class="sourceLineNo">2496</span>                                                box[k] += ai8data[l++] * c;<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>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2499"></a>
+<span class="sourceLineNo">2500</span>                                        oai8data[i++] = (byte) box[k];<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>                        break;<a name="line.2503"></a>
+<span class="sourceLineNo">2504</span>                case Dataset.ARRAYINT16:<a name="line.2504"></a>
+<span class="sourceLineNo">2505</span>                        final short[] ai16data = ((CompoundShortDataset) a).getData();<a name="line.2505"></a>
+<span class="sourceLineNo">2506</span>                        final short[] oai16data = ((CompoundShortDataset) out).getData();<a name="line.2506"></a>
+<span class="sourceLineNo">2507</span>                        int[] sox = new int[isize];<a name="line.2507"></a>
+<span class="sourceLineNo">2508</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2508"></a>
+<span class="sourceLineNo">2509</span>                                Arrays.fill(sox, 0);<a name="line.2509"></a>
+<span class="sourceLineNo">2510</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2510"></a>
+<span class="sourceLineNo">2511</span>                                        double c = coeff[j];<a name="line.2511"></a>
+<span class="sourceLineNo">2512</span>                                        int l = indexes[j];<a name="line.2512"></a>
+<span class="sourceLineNo">2513</span>                                        for (int k = 0; k &lt; isize; k++) {<a name="line.2513"></a>
+<span class="sourceLineNo">2514</span>                                                sox[k] += ai16data[l++] * c;<a name="line.2514"></a>
+<span class="sourceLineNo">2515</span>                                        }<a name="line.2515"></a>
+<span class="sourceLineNo">2516</span>                                }<a name="line.2516"></a>
+<span class="sourceLineNo">2517</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2517"></a>
+<span class="sourceLineNo">2518</span>                                        oai16data[i++] = (short) sox[k];<a name="line.2518"></a>
+<span class="sourceLineNo">2519</span>                                }<a name="line.2519"></a>
+<span class="sourceLineNo">2520</span>                        }<a name="line.2520"></a>
+<span class="sourceLineNo">2521</span>                        break;<a name="line.2521"></a>
+<span class="sourceLineNo">2522</span>                case Dataset.ARRAYINT32:<a name="line.2522"></a>
+<span class="sourceLineNo">2523</span>                        final int[] ai32data = ((CompoundIntegerDataset) a).getData();<a name="line.2523"></a>
+<span class="sourceLineNo">2524</span>                        final int[] oai32data = ((CompoundIntegerDataset) out).getData();<a name="line.2524"></a>
+<span class="sourceLineNo">2525</span>                        int[] iox = new int[isize];<a name="line.2525"></a>
+<span class="sourceLineNo">2526</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2526"></a>
+<span class="sourceLineNo">2527</span>                                Arrays.fill(iox, 0);<a name="line.2527"></a>
+<span class="sourceLineNo">2528</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2528"></a>
+<span class="sourceLineNo">2529</span>                                        double c = coeff[j];<a name="line.2529"></a>
+<span class="sourceLineNo">2530</span>                                        int l = indexes[j];<a name="line.2530"></a>
+<span class="sourceLineNo">2531</span>                                        for (int k = 0; k &lt; isize; k++) {<a name="line.2531"></a>
+<span class="sourceLineNo">2532</span>                                                iox[k] += ai32data[l++] * c;<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>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2535"></a>
+<span class="sourceLineNo">2536</span>                                        oai32data[i++] = iox[k];<a name="line.2536"></a>
+<span class="sourceLineNo">2537</span>                                }<a name="line.2537"></a>
+<span class="sourceLineNo">2538</span>                        }<a name="line.2538"></a>
+<span class="sourceLineNo">2539</span>                        break;<a name="line.2539"></a>
+<span class="sourceLineNo">2540</span>                case Dataset.ARRAYINT64:<a name="line.2540"></a>
+<span class="sourceLineNo">2541</span>                        final long[] ai64data = ((CompoundLongDataset) a).getData();<a name="line.2541"></a>
+<span class="sourceLineNo">2542</span>                        final long[] oai64data = ((CompoundLongDataset) out).getData();<a name="line.2542"></a>
+<span class="sourceLineNo">2543</span>                        long[] lox = new long[isize];<a name="line.2543"></a>
+<span class="sourceLineNo">2544</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2544"></a>
+<span class="sourceLineNo">2545</span>                                Arrays.fill(lox, 0);<a name="line.2545"></a>
+<span class="sourceLineNo">2546</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2546"></a>
+<span class="sourceLineNo">2547</span>                                        double c = coeff[j];<a name="line.2547"></a>
+<span class="sourceLineNo">2548</span>                                        int l = indexes[j];<a name="line.2548"></a>
+<span class="sourceLineNo">2549</span>                                        for (int k = 0; k &lt; isize; k++) {<a name="line.2549"></a>
+<span class="sourceLineNo">2550</span>                                                lox[k] += ai64data[l++] * c;<a name="line.2550"></a>
+<span class="sourceLineNo">2551</span>                                        }<a name="line.2551"></a>
+<span class="sourceLineNo">2552</span>                                }<a name="line.2552"></a>
+<span class="sourceLineNo">2553</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2553"></a>
+<span class="sourceLineNo">2554</span>                                        oai64data[i++] = lox[k];<a name="line.2554"></a>
+<span class="sourceLineNo">2555</span>                                }<a name="line.2555"></a>
+<span class="sourceLineNo">2556</span>                        }<a name="line.2556"></a>
+<span class="sourceLineNo">2557</span>                        break;<a name="line.2557"></a>
+<span class="sourceLineNo">2558</span>                case Dataset.FLOAT32:<a name="line.2558"></a>
+<span class="sourceLineNo">2559</span>                        final float[] f32data = ((FloatDataset) a).getData();<a name="line.2559"></a>
+<span class="sourceLineNo">2560</span>                        final float[] of32data = ((FloatDataset) out).getData();<a name="line.2560"></a>
+<span class="sourceLineNo">2561</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2561"></a>
+<span class="sourceLineNo">2562</span>                                float ox = 0;<a name="line.2562"></a>
+<span class="sourceLineNo">2563</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2563"></a>
+<span class="sourceLineNo">2564</span>                                        ox += f32data[indexes[j]] * coeff[j];<a name="line.2564"></a>
+<span class="sourceLineNo">2565</span>                                }<a name="line.2565"></a>
+<span class="sourceLineNo">2566</span>                                of32data[i++] = ox;<a name="line.2566"></a>
+<span class="sourceLineNo">2567</span>                        }<a name="line.2567"></a>
+<span class="sourceLineNo">2568</span>                        break;<a name="line.2568"></a>
+<span class="sourceLineNo">2569</span>                case Dataset.FLOAT64:<a name="line.2569"></a>
+<span class="sourceLineNo">2570</span>                        final double[] f64data = ((DoubleDataset) a).getData();<a name="line.2570"></a>
+<span class="sourceLineNo">2571</span>                        final double[] of64data = ((DoubleDataset) out).getData();<a name="line.2571"></a>
+<span class="sourceLineNo">2572</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2572"></a>
+<span class="sourceLineNo">2573</span>                                double ox = 0;<a name="line.2573"></a>
+<span class="sourceLineNo">2574</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2574"></a>
+<span class="sourceLineNo">2575</span>                                        ox += f64data[indexes[j]] * coeff[j];<a name="line.2575"></a>
+<span class="sourceLineNo">2576</span>                                }<a name="line.2576"></a>
+<span class="sourceLineNo">2577</span>                                of64data[i++] = ox;<a name="line.2577"></a>
+<span class="sourceLineNo">2578</span>                        }<a name="line.2578"></a>
+<span class="sourceLineNo">2579</span>                        break;<a name="line.2579"></a>
+<span class="sourceLineNo">2580</span>                case Dataset.COMPLEX64:<a name="line.2580"></a>
+<span class="sourceLineNo">2581</span>                        final float[] c64data = ((ComplexFloatDataset) a).getData();<a name="line.2581"></a>
+<span class="sourceLineNo">2582</span>                        final float[] oc64data = ((ComplexFloatDataset) out).getData();<a name="line.2582"></a>
+<span class="sourceLineNo">2583</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2583"></a>
+<span class="sourceLineNo">2584</span>                                float ox = 0;<a name="line.2584"></a>
+<span class="sourceLineNo">2585</span>                                float oy = 0;<a name="line.2585"></a>
+<span class="sourceLineNo">2586</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2586"></a>
+<span class="sourceLineNo">2587</span>                                        int l = indexes[j];<a name="line.2587"></a>
+<span class="sourceLineNo">2588</span>                                        ox += c64data[l++] * coeff[j];<a name="line.2588"></a>
+<span class="sourceLineNo">2589</span>                                        oy += c64data[l] * coeff[j];<a name="line.2589"></a>
+<span class="sourceLineNo">2590</span>                                }<a name="line.2590"></a>
+<span class="sourceLineNo">2591</span>                                oc64data[i++] = ox;<a name="line.2591"></a>
+<span class="sourceLineNo">2592</span>                                oc64data[i++] = oy;<a name="line.2592"></a>
+<span class="sourceLineNo">2593</span>                        }<a name="line.2593"></a>
+<span class="sourceLineNo">2594</span>                        break;<a name="line.2594"></a>
+<span class="sourceLineNo">2595</span>                case Dataset.COMPLEX128:<a name="line.2595"></a>
+<span class="sourceLineNo">2596</span>                        final double[] c128data = ((ComplexDoubleDataset) a).getData();<a name="line.2596"></a>
+<span class="sourceLineNo">2597</span>                        final double[] oc128data = ((ComplexDoubleDataset) out).getData();<a name="line.2597"></a>
+<span class="sourceLineNo">2598</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2598"></a>
+<span class="sourceLineNo">2599</span>                                double ox = 0;<a name="line.2599"></a>
+<span class="sourceLineNo">2600</span>                                double oy = 0;<a name="line.2600"></a>
+<span class="sourceLineNo">2601</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2601"></a>
+<span class="sourceLineNo">2602</span>                                        int l = indexes[j];<a name="line.2602"></a>
+<span class="sourceLineNo">2603</span>                                        ox += c128data[l++] * coeff[j];<a name="line.2603"></a>
+<span class="sourceLineNo">2604</span>                                        oy += c128data[l] * coeff[j];<a name="line.2604"></a>
+<span class="sourceLineNo">2605</span>                                }<a name="line.2605"></a>
+<span class="sourceLineNo">2606</span>                                oc128data[i++] = ox;<a name="line.2606"></a>
+<span class="sourceLineNo">2607</span>                                oc128data[i++] = oy;<a name="line.2607"></a>
+<span class="sourceLineNo">2608</span>                        }<a name="line.2608"></a>
+<span class="sourceLineNo">2609</span>                        break;<a name="line.2609"></a>
+<span class="sourceLineNo">2610</span>                case Dataset.ARRAYFLOAT32:<a name="line.2610"></a>
+<span class="sourceLineNo">2611</span>                        final float[] af32data = ((CompoundFloatDataset) a).getData();<a name="line.2611"></a>
+<span class="sourceLineNo">2612</span>                        final float[] oaf32data = ((CompoundFloatDataset) out).getData();<a name="line.2612"></a>
+<span class="sourceLineNo">2613</span>                        float[] fox = new float[isize];<a name="line.2613"></a>
+<span class="sourceLineNo">2614</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2614"></a>
+<span class="sourceLineNo">2615</span>                                Arrays.fill(fox, 0);<a name="line.2615"></a>
+<span class="sourceLineNo">2616</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2616"></a>
+<span class="sourceLineNo">2617</span>                                        double c = coeff[j];<a name="line.2617"></a>
+<span class="sourceLineNo">2618</span>                                        int l = indexes[j];<a name="line.2618"></a>
+<span class="sourceLineNo">2619</span>                                        for (int k = 0; k &lt; isize; k++) {<a name="line.2619"></a>
+<span class="sourceLineNo">2620</span>                                                fox[k] += af32data[l++] * c;<a name="line.2620"></a>
+<span class="sourceLineNo">2621</span>                                        }<a name="line.2621"></a>
+<span class="sourceLineNo">2622</span>                                }<a name="line.2622"></a>
+<span class="sourceLineNo">2623</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2623"></a>
+<span class="sourceLineNo">2624</span>                                        oaf32data[i++] = fox[k];<a name="line.2624"></a>
+<span class="sourceLineNo">2625</span>                                }<a name="line.2625"></a>
+<span class="sourceLineNo">2626</span>                        }<a name="line.2626"></a>
+<span class="sourceLineNo">2627</span>                        break;<a name="line.2627"></a>
+<span class="sourceLineNo">2628</span>                case Dataset.ARRAYFLOAT64:<a name="line.2628"></a>
+<span class="sourceLineNo">2629</span>                        final double[] af64data = ((CompoundDoubleDataset) a).getData();<a name="line.2629"></a>
+<span class="sourceLineNo">2630</span>                        final double[] oaf64data = ((CompoundDoubleDataset) out).getData();<a name="line.2630"></a>
+<span class="sourceLineNo">2631</span>                        double[] dox = new double[isize];<a name="line.2631"></a>
+<span class="sourceLineNo">2632</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2632"></a>
+<span class="sourceLineNo">2633</span>                                Arrays.fill(dox, 0);<a name="line.2633"></a>
+<span class="sourceLineNo">2634</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2634"></a>
+<span class="sourceLineNo">2635</span>                                        double c = coeff[j];<a name="line.2635"></a>
+<span class="sourceLineNo">2636</span>                                        int l = indexes[j];<a name="line.2636"></a>
+<span class="sourceLineNo">2637</span>                                        for (int k = 0; k &lt; isize; k++) {<a name="line.2637"></a>
+<span class="sourceLineNo">2638</span>                                                dox[k] += af64data[l++] * c;<a name="line.2638"></a>
+<span class="sourceLineNo">2639</span>                                        }<a name="line.2639"></a>
+<span class="sourceLineNo">2640</span>                                }<a name="line.2640"></a>
+<span class="sourceLineNo">2641</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2641"></a>
+<span class="sourceLineNo">2642</span>                                        oaf64data[i++] = dox[k];<a name="line.2642"></a>
+<span class="sourceLineNo">2643</span>                                }<a name="line.2643"></a>
+<span class="sourceLineNo">2644</span>                        }<a name="line.2644"></a>
+<span class="sourceLineNo">2645</span>                        break;<a name="line.2645"></a>
+<span class="sourceLineNo">2646</span>                default:<a name="line.2646"></a>
+<span class="sourceLineNo">2647</span>                        throw new UnsupportedOperationException("difference does not support multiple-element dataset");<a name="line.2647"></a>
+<span class="sourceLineNo">2648</span>                }<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>        /**<a name="line.2651"></a>
+<span class="sourceLineNo">2652</span>         * Discrete difference of dataset along axis using finite difference<a name="line.2652"></a>
+<span class="sourceLineNo">2653</span>         * <a name="line.2653"></a>
+<span class="sourceLineNo">2654</span>         * @param a<a name="line.2654"></a>
+<span class="sourceLineNo">2655</span>         * @param n<a name="line.2655"></a>
+<span class="sourceLineNo">2656</span>         *            order of difference<a name="line.2656"></a>
+<span class="sourceLineNo">2657</span>         * @param axis<a name="line.2657"></a>
+<span class="sourceLineNo">2658</span>         * @return difference<a name="line.2658"></a>
+<span class="sourceLineNo">2659</span>         */<a name="line.2659"></a>
+<span class="sourceLineNo">2660</span>        public static Dataset difference(Dataset a, final int n, int axis) {<a name="line.2660"></a>
+<span class="sourceLineNo">2661</span>                Dataset ds;<a name="line.2661"></a>
+<span class="sourceLineNo">2662</span>                final Class&lt;? extends Dataset&gt; clazz = a.getClass();<a name="line.2662"></a>
+<span class="sourceLineNo">2663</span>                final int rank = a.getRank();<a name="line.2663"></a>
+<span class="sourceLineNo">2664</span>                final int is = a.getElementsPerItem();<a name="line.2664"></a>
+<span class="sourceLineNo">2665</span><a name="line.2665"></a>
+<span class="sourceLineNo">2666</span>                if (axis &lt; 0) {<a name="line.2666"></a>
+<span class="sourceLineNo">2667</span>                        axis += rank;<a name="line.2667"></a>
+<span class="sourceLineNo">2668</span>                }<a name="line.2668"></a>
+<span class="sourceLineNo">2669</span>                if (axis &lt; 0 || axis &gt;= rank) {<a name="line.2669"></a>
+<span class="sourceLineNo">2670</span>                        throw new IllegalArgumentException("Axis is out of range");<a name="line.2670"></a>
+<span class="sourceLineNo">2671</span>                }<a name="line.2671"></a>
+<span class="sourceLineNo">2672</span><a name="line.2672"></a>
+<span class="sourceLineNo">2673</span>                int[] nshape = a.getShape();<a name="line.2673"></a>
+<span class="sourceLineNo">2674</span>                if (nshape[axis] &lt;= n) {<a name="line.2674"></a>
+<span class="sourceLineNo">2675</span>                        nshape[axis] = 0;<a name="line.2675"></a>
+<span class="sourceLineNo">2676</span>                        return DatasetFactory.zeros(is, clazz, nshape);<a name="line.2676"></a>
+<span class="sourceLineNo">2677</span>                }<a name="line.2677"></a>
+<span class="sourceLineNo">2678</span><a name="line.2678"></a>
+<span class="sourceLineNo">2679</span>                nshape[axis] -= n;<a name="line.2679"></a>
+<span class="sourceLineNo">2680</span>                ds = DatasetFactory.zeros(is, clazz, nshape);<a name="line.2680"></a>
+<span class="sourceLineNo">2681</span>                if (rank == 1) {<a name="line.2681"></a>
+<span class="sourceLineNo">2682</span>                        difference(a, ds, n);<a name="line.2682"></a>
+<span class="sourceLineNo">2683</span>                } else {<a name="line.2683"></a>
+<span class="sourceLineNo">2684</span>                        final Dataset src = DatasetFactory.zeros(is, clazz, a.getShapeRef()[axis]);<a name="line.2684"></a>
+<span class="sourceLineNo">2685</span>                        final Dataset dest = DatasetFactory.zeros(is, clazz, nshape[axis]);<a name="line.2685"></a>
+<span class="sourceLineNo">2686</span>                        final PositionIterator pi = a.getPositionIterator(axis);<a name="line.2686"></a>
+<span class="sourceLineNo">2687</span>                        final int[] pos = pi.getPos();<a name="line.2687"></a>
+<span class="sourceLineNo">2688</span>                        final boolean[] hit = pi.getOmit();<a name="line.2688"></a>
+<span class="sourceLineNo">2689</span>                        while (pi.hasNext()) {<a name="line.2689"></a>
+<span class="sourceLineNo">2690</span>                                a.copyItemsFromAxes(pos, hit, src);<a name="line.2690"></a>
+<span class="sourceLineNo">2691</span>                                difference(src, dest, n);<a name="line.2691"></a>
+<span class="sourceLineNo">2692</span>                                ds.setItemsOnAxes(pos, hit, dest.getBuffer());<a name="line.2692"></a>
+<span class="sourceLineNo">2693</span>                        }<a name="line.2693"></a>
+<span class="sourceLineNo">2694</span>                }<a name="line.2694"></a>
+<span class="sourceLineNo">2695</span><a name="line.2695"></a>
+<span class="sourceLineNo">2696</span>                return ds;<a name="line.2696"></a>
+<span class="sourceLineNo">2697</span>        }<a name="line.2697"></a>
+<span class="sourceLineNo">2698</span><a name="line.2698"></a>
+<span class="sourceLineNo">2699</span>        private static double SelectedMean(Dataset data, int Min, int Max) {<a name="line.2699"></a>
+<span class="sourceLineNo">2700</span><a name="line.2700"></a>
+<span class="sourceLineNo">2701</span>                double result = 0.0;<a name="line.2701"></a>
+<span class="sourceLineNo">2702</span>                for (int i = Min, imax = data.getSize(); i &lt;= Max; i++) {<a name="line.2702"></a>
+<span class="sourceLineNo">2703</span>                        // clip i appropriately, imagine that effectively the two ends<a name="line.2703"></a>
+<span class="sourceLineNo">2704</span>                        // continue<a name="line.2704"></a>
+<span class="sourceLineNo">2705</span>                        // straight out.<a name="line.2705"></a>
+<span class="sourceLineNo">2706</span>                        int pos = i;<a name="line.2706"></a>
+<span class="sourceLineNo">2707</span>                        if (pos &lt; 0) {<a name="line.2707"></a>
+<span class="sourceLineNo">2708</span>                                pos = 0;<a name="line.2708"></a>
+<span class="sourceLineNo">2709</span>                        } else if (pos &gt;= imax) {<a name="line.2709"></a>
+<span class="sourceLineNo">2710</span>                                pos = imax - 1;<a name="line.2710"></a>
+<span class="sourceLineNo">2711</span>                        }<a name="line.2711"></a>
+<span class="sourceLineNo">2712</span>                        result += data.getElementDoubleAbs(pos);<a name="line.2712"></a>
+<span class="sourceLineNo">2713</span>                }<a name="line.2713"></a>
+<span class="sourceLineNo">2714</span><a name="line.2714"></a>
+<span class="sourceLineNo">2715</span>                // now the sum is complete, average the values.<a name="line.2715"></a>
+<span class="sourceLineNo">2716</span>                result /= (Max - Min) + 1;<a name="line.2716"></a>
+<span class="sourceLineNo">2717</span>                return result;<a name="line.2717"></a>
+<span class="sourceLineNo">2718</span>        }<a name="line.2718"></a>
+<span class="sourceLineNo">2719</span><a name="line.2719"></a>
+<span class="sourceLineNo">2720</span>        private static void SelectedMeanArray(double[] out, Dataset data, int Min, int Max) {<a name="line.2720"></a>
+<span class="sourceLineNo">2721</span>                final int isize = out.length;<a name="line.2721"></a>
+<span class="sourceLineNo">2722</span>                for (int j = 0; j &lt; isize; j++)<a name="line.2722"></a>
+<span class="sourceLineNo">2723</span>                        out[j] = 0.;<a name="line.2723"></a>
+<span class="sourceLineNo">2724</span><a name="line.2724"></a>
+<span class="sourceLineNo">2725</span>                for (int i = Min, imax = data.getSize(); i &lt;= Max; i++) {<a name="line.2725"></a>
+<span class="sourceLineNo">2726</span>                        // clip i appropriately, imagine that effectively the two ends<a name="line.2726"></a>
+<span class="sourceLineNo">2727</span>                        // continue<a name="line.2727"></a>
+<span class="sourceLineNo">2728</span>                        // straight out.<a name="line.2728"></a>
+<span class="sourceLineNo">2729</span>                        int pos = i * isize;<a name="line.2729"></a>
+<span class="sourceLineNo">2730</span>                        if (pos &lt; 0) {<a name="line.2730"></a>
+<span class="sourceLineNo">2731</span>                                pos = 0;<a name="line.2731"></a>
+<span class="sourceLineNo">2732</span>                        } else if (pos &gt;= imax) {<a name="line.2732"></a>
+<span class="sourceLineNo">2733</span>                                pos = imax - isize;<a name="line.2733"></a>
+<span class="sourceLineNo">2734</span>                        }<a name="line.2734"></a>
+<span class="sourceLineNo">2735</span>                        for (int j = 0; j &lt; isize; j++)<a name="line.2735"></a>
+<span class="sourceLineNo">2736</span>                                out[j] += data.getElementDoubleAbs(pos + j);<a name="line.2736"></a>
+<span class="sourceLineNo">2737</span>                }<a name="line.2737"></a>
+<span class="sourceLineNo">2738</span><a name="line.2738"></a>
+<span class="sourceLineNo">2739</span>                // now the sum is complete, average the values.<a name="line.2739"></a>
+<span class="sourceLineNo">2740</span>                double norm = 1. / (Max - Min + 1.);<a name="line.2740"></a>
+<span class="sourceLineNo">2741</span>                for (int j = 0; j &lt; isize; j++)<a name="line.2741"></a>
+<span class="sourceLineNo">2742</span>                        out[j] *= norm;<a name="line.2742"></a>
+<span class="sourceLineNo">2743</span><a name="line.2743"></a>
+<span class="sourceLineNo">2744</span>        }<a name="line.2744"></a>
+<span class="sourceLineNo">2745</span><a name="line.2745"></a>
+<span class="sourceLineNo">2746</span>        /**<a name="line.2746"></a>
+<span class="sourceLineNo">2747</span>         * Calculates the derivative of a line described by two datasets (x,y) given<a name="line.2747"></a>
+<span class="sourceLineNo">2748</span>         * a spread of n either side of the point<a name="line.2748"></a>
+<span class="sourceLineNo">2749</span>         * <a name="line.2749"></a>
+<span class="sourceLineNo">2750</span>         * @param x<a name="line.2750"></a>
+<span class="sourceLineNo">2751</span>         *            The x values of the function to take the derivative of.<a name="line.2751"></a>
+<span class="sourceLineNo">2752</span>         * @param y<a name="line.2752"></a>
+<span class="sourceLineNo">2753</span>         *            The y values of the function to take the derivative of.<a name="line.2753"></a>
+<span class="sourceLineNo">2754</span>         * @param n<a name="line.2754"></a>
+<span class="sourceLineNo">2755</span>         *            The spread the derivative is calculated from, i.e. the<a name="line.2755"></a>
+<span class="sourceLineNo">2756</span>         *            smoothing, the higher the value, the more smoothing occurs.<a name="line.2756"></a>
+<span class="sourceLineNo">2757</span>         * @return A dataset which contains all the derivative point for point.<a name="line.2757"></a>
+<span class="sourceLineNo">2758</span>         */<a name="line.2758"></a>
+<span class="sourceLineNo">2759</span>        public static Dataset derivative(Dataset x, Dataset y, int n) {<a name="line.2759"></a>
+<span class="sourceLineNo">2760</span>                if (x.getRank() != 1 || y.getRank() != 1) {<a name="line.2760"></a>
+<span class="sourceLineNo">2761</span>                        throw new IllegalArgumentException("Only one dimensional dataset supported");<a name="line.2761"></a>
+<span class="sourceLineNo">2762</span>                }<a name="line.2762"></a>
+<span class="sourceLineNo">2763</span>                if (y.getSize() &gt; x.getSize()) {<a name="line.2763"></a>
+<span class="sourceLineNo">2764</span>                        throw new IllegalArgumentException("Length of x dataset should be greater than or equal to y's");<a name="line.2764"></a>
+<span class="sourceLineNo">2765</span>                }<a name="line.2765"></a>
+<span class="sourceLineNo">2766</span>                int dtype = y.getDType();<a name="line.2766"></a>
+<span class="sourceLineNo">2767</span>                Dataset result;<a name="line.2767"></a>
+<span class="sourceLineNo">2768</span>                switch (dtype) {<a name="line.2768"></a>
+<span class="sourceLineNo">2769</span>                case Dataset.BOOL:<a name="line.2769"></a>
+<span class="sourceLineNo">2770</span>                case Dataset.INT8:<a name="line.2770"></a>
+<span class="sourceLineNo">2771</span>                case Dataset.INT16:<a name="line.2771"></a>
+<span class="sourceLineNo">2772</span>                case Dataset.ARRAYINT8:<a name="line.2772"></a>
+<span class="sourceLineNo">2773</span>                case Dataset.ARRAYINT16:<a name="line.2773"></a>
+<span class="sourceLineNo">2774</span>                        result = DatasetFactory.zeros(y, FloatDataset.class);<a name="line.2774"></a>
+<span class="sourceLineNo">2775</span>                        break;<a name="line.2775"></a>
+<span class="sourceLineNo">2776</span>                case Dataset.INT32:<a name="line.2776"></a>
+<span class="sourceLineNo">2777</span>                case Dataset.INT64:<a name="line.2777"></a>
+<span class="sourceLineNo">2778</span>                case Dataset.ARRAYINT32:<a name="line.2778"></a>
+<span class="sourceLineNo">2779</span>                case Dataset.ARRAYINT64:<a name="line.2779"></a>
+<span class="sourceLineNo">2780</span>                        result = DatasetFactory.zeros(y, DoubleDataset.class);<a name="line.2780"></a>
+<span class="sourceLineNo">2781</span>                        break;<a name="line.2781"></a>
+<span class="sourceLineNo">2782</span>                case Dataset.FLOAT32:<a name="line.2782"></a>
+<span class="sourceLineNo">2783</span>                case Dataset.FLOAT64:<a name="line.2783"></a>
+<span class="sourceLineNo">2784</span>                case Dataset.COMPLEX64:<a name="line.2784"></a>
+<span class="sourceLineNo">2785</span>                case Dataset.COMPLEX128:<a name="line.2785"></a>
+<span class="sourceLineNo">2786</span>                case Dataset.ARRAYFLOAT32:<a name="line.2786"></a>
+<span class="sourceLineNo">2787</span>                case Dataset.ARRAYFLOAT64:<a name="line.2787"></a>
+<span class="sourceLineNo">2788</span>                        result = DatasetFactory.zeros(y);<a name="line.2788"></a>
+<span class="sourceLineNo">2789</span>                        break;<a name="line.2789"></a>
+<span class="sourceLineNo">2790</span>                default:<a name="line.2790"></a>
+<span class="sourceLineNo">2791</span>                        throw new UnsupportedOperationException("derivative does not support multiple-element dataset");<a name="line.2791"></a>
+<span class="sourceLineNo">2792</span>                }<a name="line.2792"></a>
+<span class="sourceLineNo">2793</span><a name="line.2793"></a>
+<span class="sourceLineNo">2794</span>                final int isize = y.getElementsPerItem();<a name="line.2794"></a>
+<span class="sourceLineNo">2795</span>                if (isize == 1) {<a name="line.2795"></a>
+<span class="sourceLineNo">2796</span>                        for (int i = 0, imax = x.getSize(); i &lt; imax; i++) {<a name="line.2796"></a>
+<span class="sourceLineNo">2797</span>                                double LeftValue = SelectedMean(y, i - n, i - 1);<a name="line.2797"></a>
+<span class="sourceLineNo">2798</span>                                double RightValue = SelectedMean(y, i + 1, i + n);<a name="line.2798"></a>
+<span class="sourceLineNo">2799</span>                                double LeftPosition = SelectedMean(x, i - n, i - 1);<a name="line.2799"></a>
+<span class="sourceLineNo">2800</span>                                double RightPosition = SelectedMean(x, i + 1, i + n);<a name="line.2800"></a>
+<span class="sourceLineNo">2801</span><a name="line.2801"></a>
+<span class="sourceLineNo">2802</span>                                // now the values and positions are calculated, the derivative<a name="line.2802"></a>
+<span class="sourceLineNo">2803</span>                                // can be<a name="line.2803"></a>
+<span class="sourceLineNo">2804</span>                                // calculated.<a name="line.2804"></a>
+<span class="sourceLineNo">2805</span>                                result.set(((RightValue - LeftValue) / (RightPosition - LeftPosition)), i);<a name="line.2805"></a>
+<span class="sourceLineNo">2806</span>                        }<a name="line.2806"></a>
+<span class="sourceLineNo">2807</span>                } else {<a name="line.2807"></a>
+<span class="sourceLineNo">2808</span>                        double[] leftValues = new double[isize];<a name="line.2808"></a>
+<span class="sourceLineNo">2809</span>                        double[] rightValues = new double[isize];<a name="line.2809"></a>
+<span class="sourceLineNo">2810</span>                        for (int i = 0, imax = x.getSize(); i &lt; imax; i++) {<a name="line.2810"></a>
+<span class="sourceLineNo">2811</span>                                SelectedMeanArray(leftValues, y, i - n, i - 1);<a name="line.2811"></a>
+<span class="sourceLineNo">2812</span>                                SelectedMeanArray(rightValues, y, i + 1, i + n);<a name="line.2812"></a>
+<span class="sourceLineNo">2813</span>                                double delta = SelectedMean(x, i - n, i - 1);<a name="line.2813"></a>
+<span class="sourceLineNo">2814</span>                                delta = 1. / (SelectedMean(x, i + 1, i + n) - delta);<a name="line.2814"></a>
+<span class="sourceLineNo">2815</span>                                for (int j = 0; j &lt; isize; j++) {<a name="line.2815"></a>
+<span class="sourceLineNo">2816</span>                                        rightValues[j] -= leftValues[j];<a name="line.2816"></a>
+<span class="sourceLineNo">2817</span>                                        rightValues[j] *= delta;<a name="line.2817"></a>
+<span class="sourceLineNo">2818</span>                                }<a name="line.2818"></a>
+<span class="sourceLineNo">2819</span>                                result.set(rightValues, i);<a name="line.2819"></a>
+<span class="sourceLineNo">2820</span>                        }<a name="line.2820"></a>
+<span class="sourceLineNo">2821</span>                }<a name="line.2821"></a>
+<span class="sourceLineNo">2822</span><a name="line.2822"></a>
+<span class="sourceLineNo">2823</span>                // set the name based on the changes made<a name="line.2823"></a>
+<span class="sourceLineNo">2824</span>                result.setName(y.getName() + "'");<a name="line.2824"></a>
+<span class="sourceLineNo">2825</span><a name="line.2825"></a>
+<span class="sourceLineNo">2826</span>                return result;<a name="line.2826"></a>
+<span class="sourceLineNo">2827</span>        }<a name="line.2827"></a>
+<span class="sourceLineNo">2828</span><a name="line.2828"></a>
+<span class="sourceLineNo">2829</span>        /**<a name="line.2829"></a>
+<span class="sourceLineNo">2830</span>         * Discrete difference of dataset along axis using finite central difference<a name="line.2830"></a>
+<span class="sourceLineNo">2831</span>         * <a name="line.2831"></a>
+<span class="sourceLineNo">2832</span>         * @param a<a name="line.2832"></a>
+<span class="sourceLineNo">2833</span>         * @param axis<a name="line.2833"></a>
+<span class="sourceLineNo">2834</span>         * @return difference<a name="line.2834"></a>
+<span class="sourceLineNo">2835</span>         */<a name="line.2835"></a>
+<span class="sourceLineNo">2836</span>        public static Dataset centralDifference(Dataset a, int axis) {<a name="line.2836"></a>
+<span class="sourceLineNo">2837</span>                Dataset ds;<a name="line.2837"></a>
+<span class="sourceLineNo">2838</span>                final Class&lt;? extends Dataset&gt; clazz = a.getClass();<a name="line.2838"></a>
+<span class="sourceLineNo">2839</span>                final int rank = a.getRank();<a name="line.2839"></a>
+<span class="sourceLineNo">2840</span>                final int is = a.getElementsPerItem();<a name="line.2840"></a>
+<span class="sourceLineNo">2841</span><a name="line.2841"></a>
+<span class="sourceLineNo">2842</span>                if (axis &lt; 0) {<a name="line.2842"></a>
+<span class="sourceLineNo">2843</span>                        axis += rank;<a name="line.2843"></a>
+<span class="sourceLineNo">2844</span>                }<a name="line.2844"></a>
+<span class="sourceLineNo">2845</span>                if (axis &lt; 0 || axis &gt;= rank) {<a name="line.2845"></a>
+<span class="sourceLineNo">2846</span>                        throw new IllegalArgumentException("Axis is out of range");<a name="line.2846"></a>
+<span class="sourceLineNo">2847</span>                }<a name="line.2847"></a>
+<span class="sourceLineNo">2848</span><a name="line.2848"></a>
+<span class="sourceLineNo">2849</span>                final int len = a.getShapeRef()[axis];<a name="line.2849"></a>
+<span class="sourceLineNo">2850</span>                if (len &lt; 2) {<a name="line.2850"></a>
+<span class="sourceLineNo">2851</span>                        throw new IllegalArgumentException("Dataset should have a size &gt; 1 along given axis");<a name="line.2851"></a>
+<span class="sourceLineNo">2852</span>                }<a name="line.2852"></a>
+<span class="sourceLineNo">2853</span>                ds = DatasetFactory.zeros(is, clazz, a.getShapeRef());<a name="line.2853"></a>
+<span class="sourceLineNo">2854</span>                if (rank == 1) {<a name="line.2854"></a>
+<span class="sourceLineNo">2855</span>                        centralDifference(a, ds);<a name="line.2855"></a>
+<span class="sourceLineNo">2856</span>                } else {<a name="line.2856"></a>
+<span class="sourceLineNo">2857</span>                        final Dataset src = DatasetFactory.zeros(is, clazz, len);<a name="line.2857"></a>
+<span class="sourceLineNo">2858</span>                        final Dataset dest = DatasetFactory.zeros(is, clazz, len);<a name="line.2858"></a>
+<span class="sourceLineNo">2859</span>                        final PositionIterator pi = a.getPositionIterator(axis);<a name="line.2859"></a>
+<span class="sourceLineNo">2860</span>                        final int[] pos = pi.getPos();<a name="line.2860"></a>
+<span class="sourceLineNo">2861</span>                        final boolean[] hit = pi.getOmit();<a name="line.2861"></a>
+<span class="sourceLineNo">2862</span>                        while (pi.hasNext()) {<a name="line.2862"></a>
+<span class="sourceLineNo">2863</span>                                a.copyItemsFromAxes(pos, hit, src);<a name="line.2863"></a>
+<span class="sourceLineNo">2864</span>                                centralDifference(src, dest);<a name="line.2864"></a>
+<span class="sourceLineNo">2865</span>                                ds.setItemsOnAxes(pos, hit, dest.getBuffer());<a name="line.2865"></a>
+<span class="sourceLineNo">2866</span>                        }<a name="line.2866"></a>
+<span class="sourceLineNo">2867</span>                }<a name="line.2867"></a>
+<span class="sourceLineNo">2868</span><a name="line.2868"></a>
+<span class="sourceLineNo">2869</span>                return ds;<a name="line.2869"></a>
+<span class="sourceLineNo">2870</span>        }<a name="line.2870"></a>
+<span class="sourceLineNo">2871</span><a name="line.2871"></a>
+<span class="sourceLineNo">2872</span>        /**<a name="line.2872"></a>
+<span class="sourceLineNo">2873</span>         * 1st order discrete difference of dataset along flattened dataset using<a name="line.2873"></a>
+<span class="sourceLineNo">2874</span>         * central difference<a name="line.2874"></a>
+<span class="sourceLineNo">2875</span>         * <a name="line.2875"></a>
+<span class="sourceLineNo">2876</span>         * @param a<a name="line.2876"></a>
+<span class="sourceLineNo">2877</span>         *            is 1d dataset<a name="line.2877"></a>
+<span class="sourceLineNo">2878</span>         * @param out<a name="line.2878"></a>
+<span class="sourceLineNo">2879</span>         *            is 1d dataset<a name="line.2879"></a>
+<span class="sourceLineNo">2880</span>         */<a name="line.2880"></a>
+<span class="sourceLineNo">2881</span>        private static void centralDifference(final Dataset a, final Dataset out) {<a name="line.2881"></a>
+<span class="sourceLineNo">2882</span>                final int isize = a.getElementsPerItem();<a name="line.2882"></a>
+<span class="sourceLineNo">2883</span>                final int dt = a.getDType();<a name="line.2883"></a>
+<span class="sourceLineNo">2884</span><a name="line.2884"></a>
+<span class="sourceLineNo">2885</span>                final int nlen = (out.getShapeRef()[0] - 1) * isize;<a name="line.2885"></a>
+<span class="sourceLineNo">2886</span>                if (nlen &lt; 1) {<a name="line.2886"></a>
+<span class="sourceLineNo">2887</span>                        throw new IllegalArgumentException("Dataset should have a size &gt; 1 along given axis");<a name="line.2887"></a>
+<span class="sourceLineNo">2888</span>                }<a name="line.2888"></a>
+<span class="sourceLineNo">2889</span>                final IndexIterator it = a.getIterator();<a name="line.2889"></a>
+<span class="sourceLineNo">2890</span>                if (!it.hasNext())<a name="line.2890"></a>
+<span class="sourceLineNo">2891</span>                        return;<a name="line.2891"></a>
+<span class="sourceLineNo">2892</span>                int oi = it.index;<a name="line.2892"></a>
+<span class="sourceLineNo">2893</span>                if (!it.hasNext())<a name="line.2893"></a>
+<span class="sourceLineNo">2894</span>                        return;<a name="line.2894"></a>
+<span class="sourceLineNo">2895</span>                int pi = it.index;<a name="line.2895"></a>
+<span class="sourceLineNo">2896</span><a name="line.2896"></a>
+<span class="sourceLineNo">2897</span>                switch (dt) {<a name="line.2897"></a>
+<span class="sourceLineNo">2898</span>                case Dataset.INT8:<a name="line.2898"></a>
+<span class="sourceLineNo">2899</span>                        final byte[] i8data = ((ByteDataset) a).getData();<a name="line.2899"></a>
+<span class="sourceLineNo">2900</span>                        final byte[] oi8data = ((ByteDataset) out).getData();<a name="line.2900"></a>
+<span class="sourceLineNo">2901</span>                        oi8data[0] = (byte) (i8data[pi] - i8data[oi]);<a name="line.2901"></a>
+<span class="sourceLineNo">2902</span>                        for (int i = 1; it.hasNext(); i++) {<a name="line.2902"></a>
+<span class="sourceLineNo">2903</span>                                oi8data[i] = (byte) ((i8data[it.index] - i8data[oi]) / 2);<a name="line.2903"></a>
+<span class="sourceLineNo">2904</span>                                oi = pi;<a name="line.2904"></a>
+<span class="sourceLineNo">2905</span>                                pi = it.index;<a name="line.2905"></a>
+<span class="sourceLineNo">2906</span>                        }<a name="line.2906"></a>
+<span class="sourceLineNo">2907</span>                        oi8data[nlen] = (byte) (i8data[pi] - i8data[oi]);<a name="line.2907"></a>
+<span class="sourceLineNo">2908</span>                        break;<a name="line.2908"></a>
+<span class="sourceLineNo">2909</span>                case Dataset.INT16:<a name="line.2909"></a>
+<span class="sourceLineNo">2910</span>                        final short[] i16data = ((ShortDataset) a).getData();<a name="line.2910"></a>
+<span class="sourceLineNo">2911</span>                        final short[] oi16data = ((ShortDataset) out).getData();<a name="line.2911"></a>
+<span class="sourceLineNo">2912</span>                        oi16data[0] = (short) (i16data[pi] - i16data[oi]);<a name="line.2912"></a>
+<span class="sourceLineNo">2913</span>                        for (int i = 1; it.hasNext(); i++) {<a name="line.2913"></a>
+<span class="sourceLineNo">2914</span>                                oi16data[i] = (short) ((i16data[it.index] - i16data[oi]) / 2);<a name="line.2914"></a>
+<span class="sourceLineNo">2915</span>                                oi = pi;<a name="line.2915"></a>
+<span class="sourceLineNo">2916</span>                                pi = it.index;<a name="line.2916"></a>
+<span class="sourceLineNo">2917</span>                        }<a name="line.2917"></a>
+<span class="sourceLineNo">2918</span>                        oi16data[nlen] = (short) (i16data[pi] - i16data[oi]);<a name="line.2918"></a>
+<span class="sourceLineNo">2919</span>                        break;<a name="line.2919"></a>
+<span class="sourceLineNo">2920</span>                case Dataset.INT32:<a name="line.2920"></a>
+<span class="sourceLineNo">2921</span>                        final int[] i32data = ((IntegerDataset) a).getData();<a name="line.2921"></a>
+<span class="sourceLineNo">2922</span>                        final int[] oi32data = ((IntegerDataset) out).getData();<a name="line.2922"></a>
+<span class="sourceLineNo">2923</span>                        oi32data[0] = i32data[pi] - i32data[oi];<a name="line.2923"></a>
+<span class="sourceLineNo">2924</span>                        for (int i = 1; it.hasNext(); i++) {<a name="line.2924"></a>
+<span class="sourceLineNo">2925</span>                                oi32data[i] = (i32data[it.index] - i32data[oi]) / 2;<a name="line.2925"></a>
+<span class="sourceLineNo">2926</span>                                oi = pi;<a name="line.2926"></a>
+<span class="sourceLineNo">2927</span>                                pi = it.index;<a name="line.2927"></a>
+<span class="sourceLineNo">2928</span>                        }<a name="line.2928"></a>
+<span class="sourceLineNo">2929</span>                        oi32data[nlen] = i32data[pi] - i32data[oi];<a name="line.2929"></a>
+<span class="sourceLineNo">2930</span>                        break;<a name="line.2930"></a>
+<span class="sourceLineNo">2931</span>                case Dataset.INT64:<a name="line.2931"></a>
+<span class="sourceLineNo">2932</span>                        final long[] i64data = ((LongDataset) a).getData();<a name="line.2932"></a>
+<span class="sourceLineNo">2933</span>                        final long[] oi64data = ((LongDataset) out).getData();<a name="line.2933"></a>
+<span class="sourceLineNo">2934</span>                        oi64data[0] = i64data[pi] - i64data[oi];<a name="line.2934"></a>
+<span class="sourceLineNo">2935</span>                        for (int i = 1; it.hasNext(); i++) {<a name="line.2935"></a>
+<span class="sourceLineNo">2936</span>                                oi64data[i] = (i64data[it.index] - i64data[oi]) / 2;<a name="line.2936"></a>
+<span class="sourceLineNo">2937</span>                                oi = pi;<a name="line.2937"></a>
+<span class="sourceLineNo">2938</span>                                pi = it.index;<a name="line.2938"></a>
+<span class="sourceLineNo">2939</span>                        }<a name="line.2939"></a>
+<span class="sourceLineNo">2940</span>                        oi64data[nlen] = i64data[pi] - i64data[oi];<a name="line.2940"></a>
+<span class="sourceLineNo">2941</span>                        break;<a name="line.2941"></a>
+<span class="sourceLineNo">2942</span>                case Dataset.ARRAYINT8:<a name="line.2942"></a>
+<span class="sourceLineNo">2943</span>                        final byte[] ai8data = ((CompoundByteDataset) a).getData();<a name="line.2943"></a>
+<span class="sourceLineNo">2944</span>                        final byte[] oai8data = ((CompoundByteDataset) out).getData();<a name="line.2944"></a>
+<span class="sourceLineNo">2945</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.2945"></a>
+<span class="sourceLineNo">2946</span>                                oai8data[k] = (byte) (ai8data[pi + k] - ai8data[oi + k]);<a name="line.2946"></a>
+<span class="sourceLineNo">2947</span>                        }<a name="line.2947"></a>
+<span class="sourceLineNo">2948</span>                        for (int i = isize; it.hasNext();) {<a name="line.2948"></a>
+<span class="sourceLineNo">2949</span>                                int l = it.index;<a name="line.2949"></a>
+<span class="sourceLineNo">2950</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2950"></a>
+<span class="sourceLineNo">2951</span>                                        oai8data[i++] = (byte) ((ai8data[l++] - ai8data[oi++]) / 2);<a name="line.2951"></a>
+<span class="sourceLineNo">2952</span>                                }<a name="line.2952"></a>
+<span class="sourceLineNo">2953</span>                                oi = pi;<a name="line.2953"></a>
+<span class="sourceLineNo">2954</span>                                pi = it.index;<a name="line.2954"></a>
+<span class="sourceLineNo">2955</span>                        }<a name="line.2955"></a>
+<span class="sourceLineNo">2956</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.2956"></a>
+<span class="sourceLineNo">2957</span>                                oai8data[nlen + k] = (byte) (ai8data[pi + k] - ai8data[oi + k]);<a name="line.2957"></a>
+<span class="sourceLineNo">2958</span>                        }<a name="line.2958"></a>
+<span class="sourceLineNo">2959</span>                        break;<a name="line.2959"></a>
+<span class="sourceLineNo">2960</span>                case Dataset.ARRAYINT16:<a name="line.2960"></a>
+<span class="sourceLineNo">2961</span>                        final short[] ai16data = ((CompoundShortDataset) a).getData();<a name="line.2961"></a>
+<span class="sourceLineNo">2962</span>                        final short[] oai16data = ((CompoundShortDataset) out).getData();<a name="line.2962"></a>
+<span class="sourceLineNo">2963</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.2963"></a>
+<span class="sourceLineNo">2964</span>                                oai16data[k] = (short) (ai16data[pi + k] - ai16data[oi + k]);<a name="line.2964"></a>
+<span class="sourceLineNo">2965</span>                        }<a name="line.2965"></a>
+<span class="sourceLineNo">2966</span>                        for (int i = isize; it.hasNext();) {<a name="line.2966"></a>
+<span class="sourceLineNo">2967</span>                                int l = it.index;<a name="line.2967"></a>
+<span class="sourceLineNo">2968</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2968"></a>
+<span class="sourceLineNo">2969</span>                                        oai16data[i++] = (short) ((ai16data[l++] - ai16data[oi++]) / 2);<a name="line.2969"></a>
+<span class="sourceLineNo">2970</span>                                }<a name="line.2970"></a>
+<span class="sourceLineNo">2971</span>                                oi = pi;<a name="line.2971"></a>
+<span class="sourceLineNo">2972</span>                                pi = it.index;<a name="line.2972"></a>
+<span class="sourceLineNo">2973</span>                        }<a name="line.2973"></a>
+<span class="sourceLineNo">2974</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.2974"></a>
+<span class="sourceLineNo">2975</span>                                oai16data[nlen + k] = (short) (ai16data[pi + k] - ai16data[oi + k]);<a name="line.2975"></a>
+<span class="sourceLineNo">2976</span>                        }<a name="line.2976"></a>
+<span class="sourceLineNo">2977</span>                        break;<a name="line.2977"></a>
+<span class="sourceLineNo">2978</span>                case Dataset.ARRAYINT32:<a name="line.2978"></a>
+<span class="sourceLineNo">2979</span>                        final int[] ai32data = ((CompoundIntegerDataset) a).getData();<a name="line.2979"></a>
+<span class="sourceLineNo">2980</span>                        final int[] oai32data = ((CompoundIntegerDataset) out).getData();<a name="line.2980"></a>
+<span class="sourceLineNo">2981</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.2981"></a>
+<span class="sourceLineNo">2982</span>                                oai32data[k] = ai32data[pi + k] - ai32data[oi + k];<a name="line.2982"></a>
+<span class="sourceLineNo">2983</span>                        }<a name="line.2983"></a>
+<span class="sourceLineNo">2984</span>                        for (int i = isize; it.hasNext();) {<a name="line.2984"></a>
+<span class="sourceLineNo">2985</span>                                int l = it.index;<a name="line.2985"></a>
+<span class="sourceLineNo">2986</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2986"></a>
+<span class="sourceLineNo">2987</span>                                        oai32data[i++] = (ai32data[l++] - ai32data[oi++]) / 2;<a name="line.2987"></a>
+<span class="sourceLineNo">2988</span>                                }<a name="line.2988"></a>
+<span class="sourceLineNo">2989</span>                                oi = pi;<a name="line.2989"></a>
+<span class="sourceLineNo">2990</span>                                pi = it.index;<a name="line.2990"></a>
+<span class="sourceLineNo">2991</span>                        }<a name="line.2991"></a>
+<span class="sourceLineNo">2992</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.2992"></a>
+<span class="sourceLineNo">2993</span>                                oai32data[nlen + k] = ai32data[pi + k] - ai32data[oi + k];<a name="line.2993"></a>
+<span class="sourceLineNo">2994</span>                        }<a name="line.2994"></a>
+<span class="sourceLineNo">2995</span>                        break;<a name="line.2995"></a>
+<span class="sourceLineNo">2996</span>                case Dataset.ARRAYINT64:<a name="line.2996"></a>
+<span class="sourceLineNo">2997</span>                        final long[] ai64data = ((CompoundLongDataset) a).getData();<a name="line.2997"></a>
+<span class="sourceLineNo">2998</span>                        final long[] oai64data = ((CompoundLongDataset) out).getData();<a name="line.2998"></a>
+<span class="sourceLineNo">2999</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.2999"></a>
+<span class="sourceLineNo">3000</span>                                oai64data[k] = ai64data[pi + k] - ai64data[oi + k];<a name="line.3000"></a>
+<span class="sourceLineNo">3001</span>                        }<a name="line.3001"></a>
+<span class="sourceLineNo">3002</span>                        for (int i = isize; it.hasNext();) {<a name="line.3002"></a>
+<span class="sourceLineNo">3003</span>                                int l = it.index;<a name="line.3003"></a>
+<span class="sourceLineNo">3004</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.3004"></a>
+<span class="sourceLineNo">3005</span>                                        oai64data[i++] = (ai64data[l++] - ai64data[oi++]) / 2;<a name="line.3005"></a>
+<span class="sourceLineNo">3006</span>                                }<a name="line.3006"></a>
+<span class="sourceLineNo">3007</span>                                oi = pi;<a name="line.3007"></a>
+<span class="sourceLineNo">3008</span>                                pi = it.index;<a name="line.3008"></a>
+<span class="sourceLineNo">3009</span>                        }<a name="line.3009"></a>
+<span class="sourceLineNo">3010</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.3010"></a>
+<span class="sourceLineNo">3011</span>                                oai64data[nlen + k] = ai64data[pi + k] - ai64data[oi + k];<a name="line.3011"></a>
+<span class="sourceLineNo">3012</span>                        }<a name="line.3012"></a>
+<span class="sourceLineNo">3013</span>                        break;<a name="line.3013"></a>
+<span class="sourceLineNo">3014</span>                case Dataset.FLOAT32:<a name="line.3014"></a>
+<span class="sourceLineNo">3015</span>                        final float[] f32data = ((FloatDataset) a).getData();<a name="line.3015"></a>
+<span class="sourceLineNo">3016</span>                        final float[] of32data = ((FloatDataset) out).getData();<a name="line.3016"></a>
+<span class="sourceLineNo">3017</span>                        of32data[0] = f32data[pi] - f32data[oi];<a name="line.3017"></a>
+<span class="sourceLineNo">3018</span>                        for (int i = 1; it.hasNext(); i++) {<a name="line.3018"></a>
+<span class="sourceLineNo">3019</span>                                of32data[i] = (f32data[it.index] - f32data[oi]) * 0.5f;<a name="line.3019"></a>
+<span class="sourceLineNo">3020</span>                                oi = pi;<a name="line.3020"></a>
+<span class="sourceLineNo">3021</span>                                pi = it.index;<a name="line.3021"></a>
+<span class="sourceLineNo">3022</span>                        }<a name="line.3022"></a>
+<span class="sourceLineNo">3023</span>                        of32data[nlen] = f32data[pi] - f32data[oi];<a name="line.3023"></a>
+<span class="sourceLineNo">3024</span>                        break;<a name="line.3024"></a>
+<span class="sourceLineNo">3025</span>                case Dataset.FLOAT64:<a name="line.3025"></a>
+<span class="sourceLineNo">3026</span>                        final double[] f64data = ((DoubleDataset) a).getData();<a name="line.3026"></a>
+<span class="sourceLineNo">3027</span>                        final double[] of64data = ((DoubleDataset) out).getData();<a name="line.3027"></a>
+<span class="sourceLineNo">3028</span>                        of64data[0] = f64data[pi] - f64data[oi];<a name="line.3028"></a>
+<span class="sourceLineNo">3029</span>                        for (int i = 1; it.hasNext(); i++) {<a name="line.3029"></a>
+<span class="sourceLineNo">3030</span>                                of64data[i] = (f64data[it.index] - f64data[oi]) * 0.5f;<a name="line.3030"></a>
+<span class="sourceLineNo">3031</span>                                oi = pi;<a name="line.3031"></a>
+<span class="sourceLineNo">3032</span>                                pi = it.index;<a name="line.3032"></a>
+<span class="sourceLineNo">3033</span>                        }<a name="line.3033"></a>
+<span class="sourceLineNo">3034</span>                        of64data[nlen] = f64data[pi] - f64data[oi];<a name="line.3034"></a>
+<span class="sourceLineNo">3035</span>                        break;<a name="line.3035"></a>
+<span class="sourceLineNo">3036</span>                case Dataset.COMPLEX64:<a name="line.3036"></a>
+<span class="sourceLineNo">3037</span>                        final float[] c64data = ((ComplexFloatDataset) a).getData();<a name="line.3037"></a>
+<span class="sourceLineNo">3038</span>                        final float[] oc64data = ((ComplexFloatDataset) out).getData();<a name="line.3038"></a>
+<span class="sourceLineNo">3039</span>                        oc64data[0] = c64data[pi] - c64data[oi];<a name="line.3039"></a>
+<span class="sourceLineNo">3040</span>                        oc64data[1] = c64data[pi + 1] - c64data[oi + 1];<a name="line.3040"></a>
+<span class="sourceLineNo">3041</span>                        for (int i = 2; it.hasNext();) {<a name="line.3041"></a>
+<span class="sourceLineNo">3042</span>                                oc64data[i++] = (c64data[it.index] - c64data[oi++]) * 0.5f;<a name="line.3042"></a>
+<span class="sourceLineNo">3043</span>                                oc64data[i++] = (c64data[it.index + 1] - c64data[oi]) * 0.5f;<a name="line.3043"></a>
+<span class="sourceLineNo">3044</span>                                oi = pi;<a name="line.3044"></a>
+<span class="sourceLineNo">3045</span>                                pi = it.index;<a name="line.3045"></a>
+<span class="sourceLineNo">3046</span>                        }<a name="line.3046"></a>
+<span class="sourceLineNo">3047</span>                        oc64data[nlen] = c64data[pi] - c64data[oi];<a name="line.3047"></a>
+<span class="sourceLineNo">3048</span>                        oc64data[nlen + 1] = c64data[pi + 1] - c64data[oi + 1];<a name="line.3048"></a>
+<span class="sourceLineNo">3049</span>                        break;<a name="line.3049"></a>
+<span class="sourceLineNo">3050</span>                case Dataset.COMPLEX128:<a name="line.3050"></a>
+<span class="sourceLineNo">3051</span>                        final double[] c128data = ((ComplexDoubleDataset) a).getData();<a name="line.3051"></a>
+<span class="sourceLineNo">3052</span>                        final double[] oc128data = ((ComplexDoubleDataset) out).getData();<a name="line.3052"></a>
+<span class="sourceLineNo">3053</span>                        oc128data[0] = c128data[pi] - c128data[oi];<a name="line.3053"></a>
+<span class="sourceLineNo">3054</span>                        oc128data[1] = c128data[pi + 1] - c128data[oi + 1];<a name="line.3054"></a>
+<span class="sourceLineNo">3055</span>                        for (int i = 2; it.hasNext();) {<a name="line.3055"></a>
+<span class="sourceLineNo">3056</span>                                oc128data[i++] = (c128data[it.index] - c128data[oi++]) * 0.5f;<a name="line.3056"></a>
+<span class="sourceLineNo">3057</span>                                oc128data[i++] = (c128data[it.index + 1] - c128data[oi]) * 0.5f;<a name="line.3057"></a>
+<span class="sourceLineNo">3058</span>                                oi = pi;<a name="line.3058"></a>
+<span class="sourceLineNo">3059</span>                                pi = it.index;<a name="line.3059"></a>
+<span class="sourceLineNo">3060</span>                        }<a name="line.3060"></a>
+<span class="sourceLineNo">3061</span>                        oc128data[nlen] = c128data[pi] - c128data[oi];<a name="line.3061"></a>
+<span class="sourceLineNo">3062</span>                        oc128data[nlen + 1] = c128data[pi + 1] - c128data[oi + 1];<a name="line.3062"></a>
+<span class="sourceLineNo">3063</span>                        break;<a name="line.3063"></a>
+<span class="sourceLineNo">3064</span>                case Dataset.ARRAYFLOAT32:<a name="line.3064"></a>
+<span class="sourceLineNo">3065</span>                        final float[] af32data = ((CompoundFloatDataset) a).getData();<a name="line.3065"></a>
+<span class="sourceLineNo">3066</span>                        final float[] oaf32data = ((CompoundFloatDataset) out).getData();<a name="line.3066"></a>
+<span class="sourceLineNo">3067</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.3067"></a>
+<span class="sourceLineNo">3068</span>                                oaf32data[k] = af32data[pi + k] - af32data[oi + k];<a name="line.3068"></a>
+<span class="sourceLineNo">3069</span>                        }<a name="line.3069"></a>
+<span class="sourceLineNo">3070</span>                        for (int i = isize; it.hasNext();) {<a name="line.3070"></a>
+<span class="sourceLineNo">3071</span>                                int l = it.index;<a name="line.3071"></a>
+<span class="sourceLineNo">3072</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.3072"></a>
+<span class="sourceLineNo">3073</span>                                        oaf32data[i++] = (af32data[l++] - af32data[oi++]) * 0.5f;<a name="line.3073"></a>
+<span class="sourceLineNo">3074</span>                                }<a name="line.3074"></a>
+<span class="sourceLineNo">3075</span>                                oi = pi;<a name="line.3075"></a>
+<span class="sourceLineNo">3076</span>                                pi = it.index;<a name="line.3076"></a>
+<span class="sourceLineNo">3077</span>                        }<a name="line.3077"></a>
+<span class="sourceLineNo">3078</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.3078"></a>
+<span class="sourceLineNo">3079</span>                                oaf32data[nlen + k] = af32data[pi + k] - af32data[oi + k];<a name="line.3079"></a>
+<span class="sourceLineNo">3080</span>                        }<a name="line.3080"></a>
+<span class="sourceLineNo">3081</span>                        break;<a name="line.3081"></a>
+<span class="sourceLineNo">3082</span>                case Dataset.ARRAYFLOAT64:<a name="line.3082"></a>
+<span class="sourceLineNo">3083</span>                        final double[] af64data = ((CompoundDoubleDataset) a).getData();<a name="line.3083"></a>
+<span class="sourceLineNo">3084</span>                        final double[] oaf64data = ((CompoundDoubleDataset) out).getData();<a name="line.3084"></a>
+<span class="sourceLineNo">3085</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.3085"></a>
+<span class="sourceLineNo">3086</span>                                oaf64data[k] = af64data[pi + k] - af64data[oi + k];<a name="line.3086"></a>
+<span class="sourceLineNo">3087</span>                        }<a name="line.3087"></a>
+<span class="sourceLineNo">3088</span>                        for (int i = isize; it.hasNext();) {<a name="line.3088"></a>
+<span class="sourceLineNo">3089</span>                                int l = it.index;<a name="line.3089"></a>
+<span class="sourceLineNo">3090</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.3090"></a>
+<span class="sourceLineNo">3091</span>                                        oaf64data[i++] = (af64data[l++] - af64data[oi++]) * 0.5;<a name="line.3091"></a>
+<span class="sourceLineNo">3092</span>                                }<a name="line.3092"></a>
+<span class="sourceLineNo">3093</span>                                oi = pi;<a name="line.3093"></a>
+<span class="sourceLineNo">3094</span>                                pi = it.index;<a name="line.3094"></a>
+<span class="sourceLineNo">3095</span>                        }<a name="line.3095"></a>
+<span class="sourceLineNo">3096</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.3096"></a>
+<span class="sourceLineNo">3097</span>                                oaf64data[nlen + k] = af64data[pi + k] - af64data[oi + k];<a name="line.3097"></a>
+<span class="sourceLineNo">3098</span>                        }<a name="line.3098"></a>
+<span class="sourceLineNo">3099</span>                        break;<a name="line.3099"></a>
+<span class="sourceLineNo">3100</span>                default:<a name="line.3100"></a>
+<span class="sourceLineNo">3101</span>                        throw new UnsupportedOperationException("difference does not support this dataset type");<a name="line.3101"></a>
+<span class="sourceLineNo">3102</span>                }<a name="line.3102"></a>
+<span class="sourceLineNo">3103</span>        }<a name="line.3103"></a>
+<span class="sourceLineNo">3104</span><a name="line.3104"></a>
+<span class="sourceLineNo">3105</span>        /**<a name="line.3105"></a>
+<span class="sourceLineNo">3106</span>         * Calculate gradient (or partial derivatives) by central difference<a name="line.3106"></a>
+<span class="sourceLineNo">3107</span>         * <a name="line.3107"></a>
+<span class="sourceLineNo">3108</span>         * @param y<a name="line.3108"></a>
+<span class="sourceLineNo">3109</span>         * @param x<a name="line.3109"></a>
+<span class="sourceLineNo">3110</span>         *            one or more datasets for dependent variables<a name="line.3110"></a>
+<span class="sourceLineNo">3111</span>         * @return a list of datasets (one for each dimension in y)<a name="line.3111"></a>
+<span class="sourceLineNo">3112</span>         */<a name="line.3112"></a>
+<span class="sourceLineNo">3113</span>        public static List&lt;Dataset&gt; gradient(Dataset y, Dataset... x) {<a name="line.3113"></a>
+<span class="sourceLineNo">3114</span>                final int rank = y.getRank();<a name="line.3114"></a>
+<span class="sourceLineNo">3115</span><a name="line.3115"></a>
+<span class="sourceLineNo">3116</span>                if (x.length &gt; 0) {<a name="line.3116"></a>
+<span class="sourceLineNo">3117</span>                        if (x.length != rank) {<a name="line.3117"></a>
+<span class="sourceLineNo">3118</span>                                throw new IllegalArgumentException(<a name="line.3118"></a>
+<span class="sourceLineNo">3119</span>                                                "Number of dependent datasets must be equal to rank of first argument");<a name="line.3119"></a>
+<span class="sourceLineNo">3120</span>                        }<a name="line.3120"></a>
+<span class="sourceLineNo">3121</span>                        for (int a = 0; a &lt; rank; a++) {<a name="line.3121"></a>
+<span class="sourceLineNo">3122</span>                                int rx = x[a].getRank();<a name="line.3122"></a>
+<span class="sourceLineNo">3123</span>                                if (rx != rank &amp;&amp; rx != 1) {<a name="line.3123"></a>
+<span class="sourceLineNo">3124</span>                                        throw new IllegalArgumentException(<a name="line.3124"></a>
+<span class="sourceLineNo">3125</span>                                                        "Dependent datasets must be 1-D or match rank of first argument");<a name="line.3125"></a>
+<span class="sourceLineNo">3126</span>                                }<a name="line.3126"></a>
+<span class="sourceLineNo">3127</span>                                if (rx == 1) {<a name="line.3127"></a>
+<span class="sourceLineNo">3128</span>                                        if (y.getShapeRef()[a] != x[a].getShapeRef()[0]) {<a name="line.3128"></a>
+<span class="sourceLineNo">3129</span>                                                throw new IllegalArgumentException("Length of dependent dataset must match axis length");<a name="line.3129"></a>
+<span class="sourceLineNo">3130</span>                                        }<a name="line.3130"></a>
+<span class="sourceLineNo">3131</span>                                } else {<a name="line.3131"></a>
+<span class="sourceLineNo">3132</span>                                        y.checkCompatibility(x[a]);<a name="line.3132"></a>
+<span class="sourceLineNo">3133</span>                                }<a name="line.3133"></a>
+<span class="sourceLineNo">3134</span>                        }<a name="line.3134"></a>
+<span class="sourceLineNo">3135</span>                }<a name="line.3135"></a>
+<span class="sourceLineNo">3136</span><a name="line.3136"></a>
+<span class="sourceLineNo">3137</span>                List&lt;Dataset&gt; grad = new ArrayList&lt;Dataset&gt;(rank);<a name="line.3137"></a>
+<span class="sourceLineNo">3138</span><a name="line.3138"></a>
+<span class="sourceLineNo">3139</span>                for (int a = 0; a &lt; rank; a++) {<a name="line.3139"></a>
+<span class="sourceLineNo">3140</span>                        Dataset g = centralDifference(y, a);<a name="line.3140"></a>
+<span class="sourceLineNo">3141</span>                        grad.add(g);<a name="line.3141"></a>
+<span class="sourceLineNo">3142</span>                }<a name="line.3142"></a>
+<span class="sourceLineNo">3143</span><a name="line.3143"></a>
+<span class="sourceLineNo">3144</span>                if (x.length &gt; 0) {<a name="line.3144"></a>
+<span class="sourceLineNo">3145</span>                        for (int a = 0; a &lt; rank; a++) {<a name="line.3145"></a>
+<span class="sourceLineNo">3146</span>                                Dataset g = grad.get(a);<a name="line.3146"></a>
+<span class="sourceLineNo">3147</span>                                Dataset dx = x[a];<a name="line.3147"></a>
+<span class="sourceLineNo">3148</span>                                int r = dx.getRank();<a name="line.3148"></a>
+<span class="sourceLineNo">3149</span>                                if (r == rank) {<a name="line.3149"></a>
+<span class="sourceLineNo">3150</span>                                        g.idivide(centralDifference(dx, a));<a name="line.3150"></a>
+<span class="sourceLineNo">3151</span>                                } else {<a name="line.3151"></a>
+<span class="sourceLineNo">3152</span>                                        final int is = dx.getElementsPerItem();<a name="line.3152"></a>
+<span class="sourceLineNo">3153</span>                                        final Dataset bdx = DatasetFactory.zeros(is, dx.getClass(), y.getShapeRef());<a name="line.3153"></a>
+<span class="sourceLineNo">3154</span>                                        final PositionIterator pi = y.getPositionIterator(a);<a name="line.3154"></a>
+<span class="sourceLineNo">3155</span>                                        final int[] pos = pi.getPos();<a name="line.3155"></a>
+<span class="sourceLineNo">3156</span>                                        final boolean[] hit = pi.getOmit();<a name="line.3156"></a>
+<span class="sourceLineNo">3157</span>                                        dx = centralDifference(dx, 0);<a name="line.3157"></a>
+<span class="sourceLineNo">3158</span><a name="line.3158"></a>
+<span class="sourceLineNo">3159</span>                                        while (pi.hasNext()) {<a name="line.3159"></a>
+<span class="sourceLineNo">3160</span>                                                bdx.setItemsOnAxes(pos, hit, dx.getBuffer());<a name="line.3160"></a>
+<span class="sourceLineNo">3161</span>                                        }<a name="line.3161"></a>
+<span class="sourceLineNo">3162</span>                                        g.idivide(bdx);<a name="line.3162"></a>
+<span class="sourceLineNo">3163</span>                                }<a name="line.3163"></a>
+<span class="sourceLineNo">3164</span>                        }<a name="line.3164"></a>
+<span class="sourceLineNo">3165</span>                }<a name="line.3165"></a>
+<span class="sourceLineNo">3166</span>                return grad;<a name="line.3166"></a>
+<span class="sourceLineNo">3167</span>        }<a name="line.3167"></a>
+<span class="sourceLineNo">3168</span><a name="line.3168"></a>
+<span class="sourceLineNo">3169</span>        protected static void addFunctionName(final Dataset a, final Dataset b, final Dataset dataset, final String fname) {<a name="line.3169"></a>
+<span class="sourceLineNo">3170</span>                dataset.setName(Operations.createFunctionName(fname, a.getName(), b.getName()));<a name="line.3170"></a>
+<span class="sourceLineNo">3171</span>        }<a name="line.3171"></a>
+<span class="sourceLineNo">3172</span><a name="line.3172"></a>
+<span class="sourceLineNo">3173</span>        protected static void addFunctionName(final Dataset dataset, final String fname) {<a name="line.3173"></a>
+<span class="sourceLineNo">3174</span>                dataset.setName(Operations.createFunctionName(fname, dataset.getName()));<a name="line.3174"></a>
+<span class="sourceLineNo">3175</span>        }<a name="line.3175"></a>
+<span class="sourceLineNo">3176</span><a name="line.3176"></a>
+<span class="sourceLineNo">3177</span>        protected static void addBinaryOperatorName(final Dataset a, final Dataset b, final Dataset dataset, final String oname) {<a name="line.3177"></a>
+<span class="sourceLineNo">3178</span>                dataset.setName(Operations.createBinaryOperationName(oname, a.getName(), b.getName()));<a name="line.3178"></a>
+<span class="sourceLineNo">3179</span>        }<a name="line.3179"></a>
+<span class="sourceLineNo">3180</span><a name="line.3180"></a>
+<span class="sourceLineNo">3181</span>        protected static final long toLong(double d) {<a name="line.3181"></a>
+<span class="sourceLineNo">3182</span>                if (Double.isInfinite(d) || Double.isNaN(d))<a name="line.3182"></a>
+<span class="sourceLineNo">3183</span>                        return 0l;<a name="line.3183"></a>
+<span class="sourceLineNo">3184</span>                return (long) d;<a name="line.3184"></a>
+<span class="sourceLineNo">3185</span>        }<a name="line.3185"></a>
+<span class="sourceLineNo">3186</span><a name="line.3186"></a>
+<span class="sourceLineNo">3187</span>// Start of generated code<a name="line.3187"></a>
+<span class="sourceLineNo">3188</span>        /**<a name="line.3188"></a>
+<span class="sourceLineNo">3189</span>         * add operator<a name="line.3189"></a>
+<span class="sourceLineNo">3190</span>         * @param a<a name="line.3190"></a>
+<span class="sourceLineNo">3191</span>         * @param b<a name="line.3191"></a>
+<span class="sourceLineNo">3192</span>         * @return {@code a + b}, addition of a and b<a name="line.3192"></a>
+<span class="sourceLineNo">3193</span>         */<a name="line.3193"></a>
+<span class="sourceLineNo">3194</span>        public static Dataset add(final Object a, final Object b) {<a name="line.3194"></a>
+<span class="sourceLineNo">3195</span>                return add(a, b, null);<a name="line.3195"></a>
+<span class="sourceLineNo">3196</span>        }<a name="line.3196"></a>
+<span class="sourceLineNo">3197</span><a name="line.3197"></a>
+<span class="sourceLineNo">3198</span>        /**<a name="line.3198"></a>
+<span class="sourceLineNo">3199</span>         * add operator<a name="line.3199"></a>
+<span class="sourceLineNo">3200</span>         * @param a<a name="line.3200"></a>
+<span class="sourceLineNo">3201</span>         * @param b<a name="line.3201"></a>
+<span class="sourceLineNo">3202</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.3202"></a>
+<span class="sourceLineNo">3203</span>         * @return {@code a + b}, addition of a and b<a name="line.3203"></a>
+<span class="sourceLineNo">3204</span>         */<a name="line.3204"></a>
+<span class="sourceLineNo">3205</span>        public static Dataset add(final Object a, final Object b, final Dataset o) {<a name="line.3205"></a>
+<span class="sourceLineNo">3206</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.3206"></a>
+<span class="sourceLineNo">3207</span>                Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.3207"></a>
+<span class="sourceLineNo">3208</span>                BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.3208"></a>
+<span class="sourceLineNo">3209</span>                final Dataset result = it.getOutput();<a name="line.3209"></a>
+<span class="sourceLineNo">3210</span>                if (!result.isComplex()) {<a name="line.3210"></a>
+<span class="sourceLineNo">3211</span>                        boolean change = false;<a name="line.3211"></a>
+<span class="sourceLineNo">3212</span>                        if (da.isComplex()) {<a name="line.3212"></a>
+<span class="sourceLineNo">3213</span>                                da = da.getRealView();<a name="line.3213"></a>
+<span class="sourceLineNo">3214</span>                                change = true;<a name="line.3214"></a>
+<span class="sourceLineNo">3215</span>                        }<a name="line.3215"></a>
+<span class="sourceLineNo">3216</span>                        if (db.isComplex()) {<a name="line.3216"></a>
+<span class="sourceLineNo">3217</span>                                db = db.getRealView();<a name="line.3217"></a>
+<span class="sourceLineNo">3218</span>                                change = true;<a name="line.3218"></a>
+<span class="sourceLineNo">3219</span>                        }<a name="line.3219"></a>
+<span class="sourceLineNo">3220</span>                        if (change) {<a name="line.3220"></a>
+<span class="sourceLineNo">3221</span>                                it = BroadcastIterator.createIterator(da, db, result, true);<a name="line.3221"></a>
+<span class="sourceLineNo">3222</span>                        }<a name="line.3222"></a>
+<span class="sourceLineNo">3223</span>                }<a name="line.3223"></a>
+<span class="sourceLineNo">3224</span>                final int is = result.getElementsPerItem();<a name="line.3224"></a>
+<span class="sourceLineNo">3225</span>                final int as = da.getElementsPerItem();<a name="line.3225"></a>
+<span class="sourceLineNo">3226</span>                final int bs = db.getElementsPerItem();<a name="line.3226"></a>
+<span class="sourceLineNo">3227</span>                final int dt = result.getDType();<a name="line.3227"></a>
+<span class="sourceLineNo">3228</span><a name="line.3228"></a>
+<span class="sourceLineNo">3229</span>                switch(dt) {<a name="line.3229"></a>
+<span class="sourceLineNo">3230</span>                case Dataset.INT8:<a name="line.3230"></a>
+<span class="sourceLineNo">3231</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.3231"></a>
+<span class="sourceLineNo">3232</span>                        if (it.isOutputDouble()) {<a name="line.3232"></a>
+<span class="sourceLineNo">3233</span>                                while (it.hasNext()) {<a name="line.3233"></a>
+<span class="sourceLineNo">3234</span>                                        final double iax = it.aDouble;<a name="line.3234"></a>
+<span class="sourceLineNo">3235</span>                                        final double ibx = it.bDouble;<a name="line.3235"></a>
+<span class="sourceLineNo">3236</span>                                        byte ox;<a name="line.3236"></a>
+<span class="sourceLineNo">3237</span>                                        ox = (byte) toLong(iax + ibx);<a name="line.3237"></a>
+<span class="sourceLineNo">3238</span>                                        oi8data[it.oIndex] = ox;<a name="line.3238"></a>
+<span class="sourceLineNo">3239</span>                                }<a name="line.3239"></a>
+<span class="sourceLineNo">3240</span>                        } else {<a name="line.3240"></a>
+<span class="sourceLineNo">3241</span>                                while (it.hasNext()) {<a name="line.3241"></a>
+<span class="sourceLineNo">3242</span>                                        final long iax = it.aLong;<a name="line.3242"></a>
+<span class="sourceLineNo">3243</span>                                        final long ibx = it.bLong;<a name="line.3243"></a>
+<span class="sourceLineNo">3244</span>                                        byte ox;<a name="line.3244"></a>
+<span class="sourceLineNo">3245</span>                                        ox = (byte) (iax + ibx);<a name="line.3245"></a>
+<span class="sourceLineNo">3246</span>                                        oi8data[it.oIndex] = ox;<a name="line.3246"></a>
+<span class="sourceLineNo">3247</span>                                }<a name="line.3247"></a>
+<span class="sourceLineNo">3248</span>                        }<a name="line.3248"></a>
+<span class="sourceLineNo">3249</span>                        break;<a name="line.3249"></a>
+<span class="sourceLineNo">3250</span>                case Dataset.INT16:<a name="line.3250"></a>
+<span class="sourceLineNo">3251</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.3251"></a>
+<span class="sourceLineNo">3252</span>                        if (it.isOutputDouble()) {<a name="line.3252"></a>
+<span class="sourceLineNo">3253</span>                                while (it.hasNext()) {<a name="line.3253"></a>
+<span class="sourceLineNo">3254</span>                                        final double iax = it.aDouble;<a name="line.3254"></a>
+<span class="sourceLineNo">3255</span>                                        final double ibx = it.bDouble;<a name="line.3255"></a>
+<span class="sourceLineNo">3256</span>                                        short ox;<a name="line.3256"></a>
+<span class="sourceLineNo">3257</span>                                        ox = (short) toLong(iax + ibx);<a name="line.3257"></a>
+<span class="sourceLineNo">3258</span>                                        oi16data[it.oIndex] = ox;<a name="line.3258"></a>
+<span class="sourceLineNo">3259</span>                                }<a name="line.3259"></a>
+<span class="sourceLineNo">3260</span>                        } else {<a name="line.3260"></a>
+<span class="sourceLineNo">3261</span>                                while (it.hasNext()) {<a name="line.3261"></a>
+<span class="sourceLineNo">3262</span>                                        final long iax = it.aLong;<a name="line.3262"></a>
+<span class="sourceLineNo">3263</span>                                        final long ibx = it.bLong;<a name="line.3263"></a>
+<span class="sourceLineNo">3264</span>                                        short ox;<a name="line.3264"></a>
+<span class="sourceLineNo">3265</span>                                        ox = (short) (iax + ibx);<a name="line.3265"></a>
+<span class="sourceLineNo">3266</span>                                        oi16data[it.oIndex] = ox;<a name="line.3266"></a>
+<span class="sourceLineNo">3267</span>                                }<a name="line.3267"></a>
+<span class="sourceLineNo">3268</span>                        }<a name="line.3268"></a>
+<span class="sourceLineNo">3269</span>                        break;<a name="line.3269"></a>
+<span class="sourceLineNo">3270</span>                case Dataset.INT64:<a name="line.3270"></a>
+<span class="sourceLineNo">3271</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.3271"></a>
+<span class="sourceLineNo">3272</span>                        if (it.isOutputDouble()) {<a name="line.3272"></a>
+<span class="sourceLineNo">3273</span>                                while (it.hasNext()) {<a name="line.3273"></a>
+<span class="sourceLineNo">3274</span>                                        final double iax = it.aDouble;<a name="line.3274"></a>
+<span class="sourceLineNo">3275</span>                                        final double ibx = it.bDouble;<a name="line.3275"></a>
+<span class="sourceLineNo">3276</span>                                        long ox;<a name="line.3276"></a>
+<span class="sourceLineNo">3277</span>                                        ox = toLong(iax + ibx);<a name="line.3277"></a>
+<span class="sourceLineNo">3278</span>                                        oi64data[it.oIndex] = ox;<a name="line.3278"></a>
+<span class="sourceLineNo">3279</span>                                }<a name="line.3279"></a>
+<span class="sourceLineNo">3280</span>                        } else {<a name="line.3280"></a>
+<span class="sourceLineNo">3281</span>                                while (it.hasNext()) {<a name="line.3281"></a>
+<span class="sourceLineNo">3282</span>                                        final long iax = it.aLong;<a name="line.3282"></a>
+<span class="sourceLineNo">3283</span>                                        final long ibx = it.bLong;<a name="line.3283"></a>
+<span class="sourceLineNo">3284</span>                                        long ox;<a name="line.3284"></a>
+<span class="sourceLineNo">3285</span>                                        ox = (iax + ibx);<a name="line.3285"></a>
+<span class="sourceLineNo">3286</span>                                        oi64data[it.oIndex] = ox;<a name="line.3286"></a>
+<span class="sourceLineNo">3287</span>                                }<a name="line.3287"></a>
+<span class="sourceLineNo">3288</span>                        }<a name="line.3288"></a>
+<span class="sourceLineNo">3289</span>                        break;<a name="line.3289"></a>
+<span class="sourceLineNo">3290</span>                case Dataset.INT32:<a name="line.3290"></a>
+<span class="sourceLineNo">3291</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.3291"></a>
+<span class="sourceLineNo">3292</span>                        if (it.isOutputDouble()) {<a name="line.3292"></a>
+<span class="sourceLineNo">3293</span>                                while (it.hasNext()) {<a name="line.3293"></a>
+<span class="sourceLineNo">3294</span>                                        final double iax = it.aDouble;<a name="line.3294"></a>
+<span class="sourceLineNo">3295</span>                                        final double ibx = it.bDouble;<a name="line.3295"></a>
+<span class="sourceLineNo">3296</span>                                        int ox;<a name="line.3296"></a>
+<span class="sourceLineNo">3297</span>                                        ox = (int) toLong(iax + ibx);<a name="line.3297"></a>
+<span class="sourceLineNo">3298</span>                                        oi32data[it.oIndex] = ox;<a name="line.3298"></a>
+<span class="sourceLineNo">3299</span>                                }<a name="line.3299"></a>
+<span class="sourceLineNo">3300</span>                        } else {<a name="line.3300"></a>
+<span class="sourceLineNo">3301</span>                                while (it.hasNext()) {<a name="line.3301"></a>
+<span class="sourceLineNo">3302</span>                                        final long iax = it.aLong;<a name="line.3302"></a>
+<span class="sourceLineNo">3303</span>                                        final long ibx = it.bLong;<a name="line.3303"></a>
+<span class="sourceLineNo">3304</span>                                        int ox;<a name="line.3304"></a>
+<span class="sourceLineNo">3305</span>                                        ox = (int) (iax + ibx);<a name="line.3305"></a>
+<span class="sourceLineNo">3306</span>                                        oi32data[it.oIndex] = ox;<a name="line.3306"></a>
+<span class="sourceLineNo">3307</span>                                }<a name="line.3307"></a>
+<span class="sourceLineNo">3308</span>                        }<a name="line.3308"></a>
+<span class="sourceLineNo">3309</span>                        break;<a name="line.3309"></a>
+<span class="sourceLineNo">3310</span>                case Dataset.ARRAYINT8:<a name="line.3310"></a>
+<span class="sourceLineNo">3311</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.3311"></a>
+<span class="sourceLineNo">3312</span>                        if (is == 1) {<a name="line.3312"></a>
+<span class="sourceLineNo">3313</span>                                if (it.isOutputDouble()) {<a name="line.3313"></a>
+<span class="sourceLineNo">3314</span>                                        while (it.hasNext()) {<a name="line.3314"></a>
+<span class="sourceLineNo">3315</span>                                                final double iax = it.aDouble;<a name="line.3315"></a>
+<span class="sourceLineNo">3316</span>                                                final double ibx = it.bDouble;<a name="line.3316"></a>
+<span class="sourceLineNo">3317</span>                                                byte ox;<a name="line.3317"></a>
+<span class="sourceLineNo">3318</span>                                                ox = (byte) toLong(iax + ibx);<a name="line.3318"></a>
+<span class="sourceLineNo">3319</span>                                                oai8data[it.oIndex] = ox;<a name="line.3319"></a>
+<span class="sourceLineNo">3320</span>                                        }<a name="line.3320"></a>
+<span class="sourceLineNo">3321</span>                                } else {<a name="line.3321"></a>
+<span class="sourceLineNo">3322</span>                                        while (it.hasNext()) {<a name="line.3322"></a>
+<span class="sourceLineNo">3323</span>                                                final long iax = it.aLong;<a name="line.3323"></a>
+<span class="sourceLineNo">3324</span>                                                final long ibx = it.bLong;<a name="line.3324"></a>
+<span class="sourceLineNo">3325</span>                                                byte ox;<a name="line.3325"></a>
+<span class="sourceLineNo">3326</span>                                                ox = (byte) (iax + ibx);<a name="line.3326"></a>
+<span class="sourceLineNo">3327</span>                                                oai8data[it.oIndex] = ox;<a name="line.3327"></a>
+<span class="sourceLineNo">3328</span>                                        }<a name="line.3328"></a>
+<span class="sourceLineNo">3329</span>                                }<a name="line.3329"></a>
+<span class="sourceLineNo">3330</span>                        } else if (as &lt; bs) {<a name="line.3330"></a>
+<span class="sourceLineNo">3331</span>                                if (it.isOutputDouble()) {<a name="line.3331"></a>
+<span class="sourceLineNo">3332</span>                                        while (it.hasNext()) {<a name="line.3332"></a>
+<span class="sourceLineNo">3333</span>                                                final double iax = it.aDouble;<a name="line.3333"></a>
+<span class="sourceLineNo">3334</span>                                                double ibx = it.bDouble;<a name="line.3334"></a>
+<span class="sourceLineNo">3335</span>                                                byte ox;<a name="line.3335"></a>
+<span class="sourceLineNo">3336</span>                                                ox = (byte) toLong(iax + ibx);<a name="line.3336"></a>
+<span class="sourceLineNo">3337</span>                                                oai8data[it.oIndex] = ox;<a name="line.3337"></a>
+<span class="sourceLineNo">3338</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3338"></a>
+<span class="sourceLineNo">3339</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.3339"></a>
+<span class="sourceLineNo">3340</span>                                                        ox = (byte) toLong(iax + ibx);<a name="line.3340"></a>
+<span class="sourceLineNo">3341</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.3341"></a>
+<span class="sourceLineNo">3342</span>                                                }<a name="line.3342"></a>
+<span class="sourceLineNo">3343</span>                                        }<a name="line.3343"></a>
+<span class="sourceLineNo">3344</span>                                } else {<a name="line.3344"></a>
+<span class="sourceLineNo">3345</span>                                        while (it.hasNext()) {<a name="line.3345"></a>
+<span class="sourceLineNo">3346</span>                                                final long iax = it.aLong;<a name="line.3346"></a>
+<span class="sourceLineNo">3347</span>                                                long ibx = it.bLong;<a name="line.3347"></a>
+<span class="sourceLineNo">3348</span>                                                byte ox;<a name="line.3348"></a>
+<span class="sourceLineNo">3349</span>                                                ox = (byte) (iax + ibx);<a name="line.3349"></a>
+<span class="sourceLineNo">3350</span>                                                oai8data[it.oIndex] = ox;<a name="line.3350"></a>
+<span class="sourceLineNo">3351</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3351"></a>
+<span class="sourceLineNo">3352</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.3352"></a>
+<span class="sourceLineNo">3353</span>                                                        ox = (byte) (iax + ibx);<a name="line.3353"></a>
+<span class="sourceLineNo">3354</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.3354"></a>
+<span class="sourceLineNo">3355</span>                                                }<a name="line.3355"></a>
+<span class="sourceLineNo">3356</span>                                        }<a name="line.3356"></a>
+<span class="sourceLineNo">3357</span>                                }<a name="line.3357"></a>
+<span class="sourceLineNo">3358</span>                        } else if (as &gt; bs) {<a name="line.3358"></a>
+<span class="sourceLineNo">3359</span>                                if (it.isOutputDouble()) {<a name="line.3359"></a>
+<span class="sourceLineNo">3360</span>                                        while (it.hasNext()) {<a name="line.3360"></a>
+<span class="sourceLineNo">3361</span>                                                double iax = it.aDouble;<a name="line.3361"></a>
+<span class="sourceLineNo">3362</span>                                                final double ibx = it.bDouble;<a name="line.3362"></a>
+<span class="sourceLineNo">3363</span>                                                byte ox;<a name="line.3363"></a>
+<span class="sourceLineNo">3364</span>                                                ox = (byte) toLong(iax + ibx);<a name="line.3364"></a>
+<span class="sourceLineNo">3365</span>                                                oai8data[it.oIndex] = ox;<a name="line.3365"></a>
+<span class="sourceLineNo">3366</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3366"></a>
+<span class="sourceLineNo">3367</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.3367"></a>
+<span class="sourceLineNo">3368</span>                                                        ox = (byte) toLong(iax + ibx);<a name="line.3368"></a>
+<span class="sourceLineNo">3369</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.3369"></a>
+<span class="sourceLineNo">3370</span>                                                }<a name="line.3370"></a>
+<span class="sourceLineNo">3371</span>                                        }<a name="line.3371"></a>
+<span class="sourceLineNo">3372</span>                                } else {<a name="line.3372"></a>
+<span class="sourceLineNo">3373</span>                                        while (it.hasNext()) {<a name="line.3373"></a>
+<span class="sourceLineNo">3374</span>                                                long iax = it.aLong;<a name="line.3374"></a>
+<span class="sourceLineNo">3375</span>                                                final long ibx = it.bLong;<a name="line.3375"></a>
+<span class="sourceLineNo">3376</span>                                                byte ox;<a name="line.3376"></a>
+<span class="sourceLineNo">3377</span>                                                ox = (byte) (iax + ibx);<a name="line.3377"></a>
+<span class="sourceLineNo">3378</span>                                                oai8data[it.oIndex] = ox;<a name="line.3378"></a>
+<span class="sourceLineNo">3379</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3379"></a>
+<span class="sourceLineNo">3380</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.3380"></a>
+<span class="sourceLineNo">3381</span>                                                        ox = (byte) (iax + ibx);<a name="line.3381"></a>
+<span class="sourceLineNo">3382</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.3382"></a>
+<span class="sourceLineNo">3383</span>                                                }<a name="line.3383"></a>
+<span class="sourceLineNo">3384</span>                                        }<a name="line.3384"></a>
+<span class="sourceLineNo">3385</span>                                }<a name="line.3385"></a>
+<span class="sourceLineNo">3386</span>                        } else if (as == 1) {<a name="line.3386"></a>
+<span class="sourceLineNo">3387</span>                                if (it.isOutputDouble()) {<a name="line.3387"></a>
+<span class="sourceLineNo">3388</span>                                        while (it.hasNext()) {<a name="line.3388"></a>
+<span class="sourceLineNo">3389</span>                                                final double iax = it.aDouble;<a name="line.3389"></a>
+<span class="sourceLineNo">3390</span>                                                final double ibx = it.bDouble;<a name="line.3390"></a>
+<span class="sourceLineNo">3391</span>                                                byte ox;<a name="line.3391"></a>
+<span class="sourceLineNo">3392</span>                                                ox = (byte) toLong(iax + ibx);<a name="line.3392"></a>
+<span class="sourceLineNo">3393</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.3393"></a>
+<span class="sourceLineNo">3394</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.3394"></a>
+<span class="sourceLineNo">3395</span>                                                }<a name="line.3395"></a>
+<span class="sourceLineNo">3396</span>                                        }<a name="line.3396"></a>
+<span class="sourceLineNo">3397</span>                                } else {<a name="line.3397"></a>
+<span class="sourceLineNo">3398</span>                                        while (it.hasNext()) {<a name="line.3398"></a>
+<span class="sourceLineNo">3399</span>                                                final long iax = it.aLong;<a name="line.3399"></a>
+<span class="sourceLineNo">3400</span>                                                final long ibx = it.bLong;<a name="line.3400"></a>
+<span class="sourceLineNo">3401</span>                                                byte ox;<a name="line.3401"></a>
+<span class="sourceLineNo">3402</span>                                                ox = (byte) (iax + ibx);<a name="line.3402"></a>
+<span class="sourceLineNo">3403</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.3403"></a>
+<span class="sourceLineNo">3404</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.3404"></a>
+<span class="sourceLineNo">3405</span>                                                }<a name="line.3405"></a>
+<span class="sourceLineNo">3406</span>                                        }<a name="line.3406"></a>
+<span class="sourceLineNo">3407</span>                                }<a name="line.3407"></a>
+<span class="sourceLineNo">3408</span>                        } else {<a name="line.3408"></a>
+<span class="sourceLineNo">3409</span>                                if (it.isOutputDouble()) {<a name="line.3409"></a>
+<span class="sourceLineNo">3410</span>                                        while (it.hasNext()) {<a name="line.3410"></a>
+<span class="sourceLineNo">3411</span>                                                double iax = it.aDouble;<a name="line.3411"></a>
+<span class="sourceLineNo">3412</span>                                                double ibx = it.bDouble;<a name="line.3412"></a>
+<span class="sourceLineNo">3413</span>                                                byte ox;<a name="line.3413"></a>
+<span class="sourceLineNo">3414</span>                                                ox = (byte) toLong(iax + ibx);<a name="line.3414"></a>
+<span class="sourceLineNo">3415</span>                                                oai8data[it.oIndex] = ox;<a name="line.3415"></a>
+<span class="sourceLineNo">3416</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3416"></a>
+<span class="sourceLineNo">3417</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.3417"></a>
+<span class="sourceLineNo">3418</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.3418"></a>
+<span class="sourceLineNo">3419</span>                                                        ox = (byte) toLong(iax + ibx);<a name="line.3419"></a>
+<span class="sourceLineNo">3420</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.3420"></a>
+<span class="sourceLineNo">3421</span>                                                }<a name="line.3421"></a>
+<span class="sourceLineNo">3422</span>                                        }<a name="line.3422"></a>
+<span class="sourceLineNo">3423</span>                                } else {<a name="line.3423"></a>
+<span class="sourceLineNo">3424</span>                                        while (it.hasNext()) {<a name="line.3424"></a>
+<span class="sourceLineNo">3425</span>                                                long iax = it.aLong;<a name="line.3425"></a>
+<span class="sourceLineNo">3426</span>                                                long ibx = it.bLong;<a name="line.3426"></a>
+<span class="sourceLineNo">3427</span>                                                byte ox;<a name="line.3427"></a>
+<span class="sourceLineNo">3428</span>                                                ox = (byte) (iax + ibx);<a name="line.3428"></a>
+<span class="sourceLineNo">3429</span>                                                oai8data[it.oIndex] = ox;<a name="line.3429"></a>
+<span class="sourceLineNo">3430</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3430"></a>
+<span class="sourceLineNo">3431</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.3431"></a>
+<span class="sourceLineNo">3432</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.3432"></a>
+<span class="sourceLineNo">3433</span>                                                        ox = (byte) (iax + ibx);<a name="line.3433"></a>
+<span class="sourceLineNo">3434</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.3434"></a>
+<span class="sourceLineNo">3435</span>                                                }<a name="line.3435"></a>
+<span class="sourceLineNo">3436</span>                                        }<a name="line.3436"></a>
+<span class="sourceLineNo">3437</span>                                }<a name="line.3437"></a>
+<span class="sourceLineNo">3438</span>                        }<a name="line.3438"></a>
+<span class="sourceLineNo">3439</span>                        break;<a name="line.3439"></a>
+<span class="sourceLineNo">3440</span>                case Dataset.ARRAYINT16:<a name="line.3440"></a>
+<span class="sourceLineNo">3441</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.3441"></a>
+<span class="sourceLineNo">3442</span>                        if (is == 1) {<a name="line.3442"></a>
+<span class="sourceLineNo">3443</span>                                if (it.isOutputDouble()) {<a name="line.3443"></a>
+<span class="sourceLineNo">3444</span>                                        while (it.hasNext()) {<a name="line.3444"></a>
+<span class="sourceLineNo">3445</span>                                                final double iax = it.aDouble;<a name="line.3445"></a>
+<span class="sourceLineNo">3446</span>                                                final double ibx = it.bDouble;<a name="line.3446"></a>
+<span class="sourceLineNo">3447</span>                                                short ox;<a name="line.3447"></a>
+<span class="sourceLineNo">3448</span>                                                ox = (short) toLong(iax + ibx);<a name="line.3448"></a>
+<span class="sourceLineNo">3449</span>                                                oai16data[it.oIndex] = ox;<a name="line.3449"></a>
+<span class="sourceLineNo">3450</span>                                        }<a name="line.3450"></a>
+<span class="sourceLineNo">3451</span>                                } else {<a name="line.3451"></a>
+<span class="sourceLineNo">3452</span>                                        while (it.hasNext()) {<a name="line.3452"></a>
+<span class="sourceLineNo">3453</span>                                                final long iax = it.aLong;<a name="line.3453"></a>
+<span class="sourceLineNo">3454</span>                                                final long ibx = it.bLong;<a name="line.3454"></a>
+<span class="sourceLineNo">3455</span>                                                short ox;<a name="line.3455"></a>
+<span class="sourceLineNo">3456</span>                                                ox = (short) (iax + ibx);<a name="line.3456"></a>
+<span class="sourceLineNo">3457</span>                                                oai16data[it.oIndex] = ox;<a name="line.3457"></a>
+<span class="sourceLineNo">3458</span>                                        }<a name="line.3458"></a>
+<span class="sourceLineNo">3459</span>                                }<a name="line.3459"></a>
+<span class="sourceLineNo">3460</span>                        } else if (as &lt; bs) {<a name="line.3460"></a>
+<span class="sourceLineNo">3461</span>                                if (it.isOutputDouble()) {<a name="line.3461"></a>
+<span class="sourceLineNo">3462</span>                                        while (it.hasNext()) {<a name="line.3462"></a>
+<span class="sourceLineNo">3463</span>                                                final double iax = it.aDouble;<a name="line.3463"></a>
+<span class="sourceLineNo">3464</span>                                                double ibx = it.bDouble;<a name="line.3464"></a>
+<span class="sourceLineNo">3465</span>                                                short ox;<a name="line.3465"></a>
+<span class="sourceLineNo">3466</span>                                                ox = (short) toLong(iax + ibx);<a name="line.3466"></a>
+<span class="sourceLineNo">3467</span>                                                oai16data[it.oIndex] = ox;<a name="line.3467"></a>
+<span class="sourceLineNo">3468</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3468"></a>
+<span class="sourceLineNo">3469</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.3469"></a>
+<span class="sourceLineNo">3470</span>                                                        ox = (short) toLong(iax + ibx);<a name="line.3470"></a>
+<span class="sourceLineNo">3471</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.3471"></a>
+<span class="sourceLineNo">3472</span>                                                }<a name="line.3472"></a>
+<span class="sourceLineNo">3473</span>                                        }<a name="line.3473"></a>
+<span class="sourceLineNo">3474</span>                                } else {<a name="line.3474"></a>
+<span class="sourceLineNo">3475</span>                                        while (it.hasNext()) {<a name="line.3475"></a>
+<span class="sourceLineNo">3476</span>                                                final long iax = it.aLong;<a name="line.3476"></a>
+<span class="sourceLineNo">3477</span>                                                long ibx = it.bLong;<a name="line.3477"></a>
+<span class="sourceLineNo">3478</span>                                                short ox;<a name="line.3478"></a>
+<span class="sourceLineNo">3479</span>                                                ox = (short) (iax + ibx);<a name="line.3479"></a>
+<span class="sourceLineNo">3480</span>                                                oai16data[it.oIndex] = ox;<a name="line.3480"></a>
+<span class="sourceLineNo">3481</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3481"></a>
+<span class="sourceLineNo">3482</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.3482"></a>
+<span class="sourceLineNo">3483</span>                                                        ox = (short) (iax + ibx);<a name="line.3483"></a>
+<span class="sourceLineNo">3484</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.3484"></a>
+<span class="sourceLineNo">3485</span>                                                }<a name="line.3485"></a>
+<span class="sourceLineNo">3486</span>                                        }<a name="line.3486"></a>
+<span class="sourceLineNo">3487</span>                                }<a name="line.3487"></a>
+<span class="sourceLineNo">3488</span>                        } else if (as &gt; bs) {<a name="line.3488"></a>
+<span class="sourceLineNo">3489</span>                                if (it.isOutputDouble()) {<a name="line.3489"></a>
+<span class="sourceLineNo">3490</span>                                        while (it.hasNext()) {<a name="line.3490"></a>
+<span class="sourceLineNo">3491</span>                                                double iax = it.aDouble;<a name="line.3491"></a>
+<span class="sourceLineNo">3492</span>                                                final double ibx = it.bDouble;<a name="line.3492"></a>
+<span class="sourceLineNo">3493</span>                                                short ox;<a name="line.3493"></a>
+<span class="sourceLineNo">3494</span>                                                ox = (short) toLong(iax + ibx);<a name="line.3494"></a>
+<span class="sourceLineNo">3495</span>                                                oai16data[it.oIndex] = ox;<a name="line.3495"></a>
+<span class="sourceLineNo">3496</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3496"></a>
+<span class="sourceLineNo">3497</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.3497"></a>
+<span class="sourceLineNo">3498</span>                                                        ox = (short) toLong(iax + ibx);<a name="line.3498"></a>
+<span class="sourceLineNo">3499</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.3499"></a>
+<span class="sourceLineNo">3500</span>                                                }<a name="line.3500"></a>
+<span class="sourceLineNo">3501</span>                                        }<a name="line.3501"></a>
+<span class="sourceLineNo">3502</span>                                } else {<a name="line.3502"></a>
+<span class="sourceLineNo">3503</span>                                        while (it.hasNext()) {<a name="line.3503"></a>
+<span class="sourceLineNo">3504</span>                                                long iax = it.aLong;<a name="line.3504"></a>
+<span class="sourceLineNo">3505</span>                                                final long ibx = it.bLong;<a name="line.3505"></a>
+<span class="sourceLineNo">3506</span>                                                short ox;<a name="line.3506"></a>
+<span class="sourceLineNo">3507</span>                                                ox = (short) (iax + ibx);<a name="line.3507"></a>
+<span class="sourceLineNo">3508</span>                                                oai16data[it.oIndex] = ox;<a name="line.3508"></a>
+<span class="sourceLineNo">3509</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3509"></a>
+<span class="sourceLineNo">3510</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.3510"></a>
+<span class="sourceLineNo">3511</span>                                                        ox = (short) (iax + ibx);<a name="line.3511"></a>
+<span class="sourceLineNo">3512</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.3512"></a>
+<span class="sourceLineNo">3513</span>                                                }<a name="line.3513"></a>
+<span class="sourceLineNo">3514</span>                                        }<a name="line.3514"></a>
+<span class="sourceLineNo">3515</span>                                }<a name="line.3515"></a>
+<span class="sourceLineNo">3516</span>                        } else if (as == 1) {<a name="line.3516"></a>
+<span class="sourceLineNo">3517</span>                                if (it.isOutputDouble()) {<a name="line.3517"></a>
+<span class="sourceLineNo">3518</span>                                        while (it.hasNext()) {<a name="line.3518"></a>
+<span class="sourceLineNo">3519</span>                                                final double iax = it.aDouble;<a name="line.3519"></a>
+<span class="sourceLineNo">3520</span>                                                final double ibx = it.bDouble;<a name="line.3520"></a>
+<span class="sourceLineNo">3521</span>                                                short ox;<a name="line.3521"></a>
+<span class="sourceLineNo">3522</span>                                                ox = (short) toLong(iax + ibx);<a name="line.3522"></a>
+<span class="sourceLineNo">3523</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.3523"></a>
+<span class="sourceLineNo">3524</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.3524"></a>
+<span class="sourceLineNo">3525</span>                                                }<a name="line.3525"></a>
+<span class="sourceLineNo">3526</span>                                        }<a name="line.3526"></a>
+<span class="sourceLineNo">3527</span>                                } else {<a name="line.3527"></a>
+<span class="sourceLineNo">3528</span>                                        while (it.hasNext()) {<a name="line.3528"></a>
+<span class="sourceLineNo">3529</span>                                                final long iax = it.aLong;<a name="line.3529"></a>
+<span class="sourceLineNo">3530</span>                                                final long ibx = it.bLong;<a name="line.3530"></a>
+<span class="sourceLineNo">3531</span>                                                short ox;<a name="line.3531"></a>
+<span class="sourceLineNo">3532</span>                                                ox = (short) (iax + ibx);<a name="line.3532"></a>
+<span class="sourceLineNo">3533</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.3533"></a>
+<span class="sourceLineNo">3534</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.3534"></a>
+<span class="sourceLineNo">3535</span>                                                }<a name="line.3535"></a>
+<span class="sourceLineNo">3536</span>                                        }<a name="line.3536"></a>
+<span class="sourceLineNo">3537</span>                                }<a name="line.3537"></a>
+<span class="sourceLineNo">3538</span>                        } else {<a name="line.3538"></a>
+<span class="sourceLineNo">3539</span>                                if (it.isOutputDouble()) {<a name="line.3539"></a>
+<span class="sourceLineNo">3540</span>                                        while (it.hasNext()) {<a name="line.3540"></a>
+<span class="sourceLineNo">3541</span>                                                double iax = it.aDouble;<a name="line.3541"></a>
+<span class="sourceLineNo">3542</span>                                                double ibx = it.bDouble;<a name="line.3542"></a>
+<span class="sourceLineNo">3543</span>                                                short ox;<a name="line.3543"></a>
+<span class="sourceLineNo">3544</span>                                                ox = (short) toLong(iax + ibx);<a name="line.3544"></a>
+<span class="sourceLineNo">3545</span>                                                oai16data[it.oIndex] = ox;<a name="line.3545"></a>
+<span class="sourceLineNo">3546</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3546"></a>
+<span class="sourceLineNo">3547</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.3547"></a>
+<span class="sourceLineNo">3548</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.3548"></a>
+<span class="sourceLineNo">3549</span>                                                        ox = (short) toLong(iax + ibx);<a name="line.3549"></a>
+<span class="sourceLineNo">3550</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.3550"></a>
+<span class="sourceLineNo">3551</span>                                                }<a name="line.3551"></a>
+<span class="sourceLineNo">3552</span>                                        }<a name="line.3552"></a>
+<span class="sourceLineNo">3553</span>                                } else {<a name="line.3553"></a>
+<span class="sourceLineNo">3554</span>                                        while (it.hasNext()) {<a name="line.3554"></a>
+<span class="sourceLineNo">3555</span>                                                long iax = it.aLong;<a name="line.3555"></a>
+<span class="sourceLineNo">3556</span>                                                long ibx = it.bLong;<a name="line.3556"></a>
+<span class="sourceLineNo">3557</span>                                                short ox;<a name="line.3557"></a>
+<span class="sourceLineNo">3558</span>                                                ox = (short) (iax + ibx);<a name="line.3558"></a>
+<span class="sourceLineNo">3559</span>                                                oai16data[it.oIndex] = ox;<a name="line.3559"></a>
+<span class="sourceLineNo">3560</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3560"></a>
+<span class="sourceLineNo">3561</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.3561"></a>
+<span class="sourceLineNo">3562</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.3562"></a>
+<span class="sourceLineNo">3563</span>                                                        ox = (short) (iax + ibx);<a name="line.3563"></a>
+<span class="sourceLineNo">3564</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.3564"></a>
+<span class="sourceLineNo">3565</span>                                                }<a name="line.3565"></a>
+<span class="sourceLineNo">3566</span>                                        }<a name="line.3566"></a>
+<span class="sourceLineNo">3567</span>                                }<a name="line.3567"></a>
+<span class="sourceLineNo">3568</span>                        }<a name="line.3568"></a>
+<span class="sourceLineNo">3569</span>                        break;<a name="line.3569"></a>
+<span class="sourceLineNo">3570</span>                case Dataset.ARRAYINT64:<a name="line.3570"></a>
+<span class="sourceLineNo">3571</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.3571"></a>
+<span class="sourceLineNo">3572</span>                        if (is == 1) {<a name="line.3572"></a>
+<span class="sourceLineNo">3573</span>                                if (it.isOutputDouble()) {<a name="line.3573"></a>
+<span class="sourceLineNo">3574</span>                                        while (it.hasNext()) {<a name="line.3574"></a>
+<span class="sourceLineNo">3575</span>                                                final double iax = it.aDouble;<a name="line.3575"></a>
+<span class="sourceLineNo">3576</span>                                                final double ibx = it.bDouble;<a name="line.3576"></a>
+<span class="sourceLineNo">3577</span>                                                long ox;<a name="line.3577"></a>
+<span class="sourceLineNo">3578</span>                                                ox = toLong(iax + ibx);<a name="line.3578"></a>
+<span class="sourceLineNo">3579</span>                                                oai64data[it.oIndex] = ox;<a name="line.3579"></a>
+<span class="sourceLineNo">3580</span>                                        }<a name="line.3580"></a>
+<span class="sourceLineNo">3581</span>                                } else {<a name="line.3581"></a>
+<span class="sourceLineNo">3582</span>                                        while (it.hasNext()) {<a name="line.3582"></a>
+<span class="sourceLineNo">3583</span>                                                final long iax = it.aLong;<a name="line.3583"></a>
+<span class="sourceLineNo">3584</span>                                                final long ibx = it.bLong;<a name="line.3584"></a>
+<span class="sourceLineNo">3585</span>                                                long ox;<a name="line.3585"></a>
+<span class="sourceLineNo">3586</span>                                                ox = (iax + ibx);<a name="line.3586"></a>
+<span class="sourceLineNo">3587</span>                                                oai64data[it.oIndex] = ox;<a name="line.3587"></a>
+<span class="sourceLineNo">3588</span>                                        }<a name="line.3588"></a>
+<span class="sourceLineNo">3589</span>                                }<a name="line.3589"></a>
+<span class="sourceLineNo">3590</span>                        } else if (as &lt; bs) {<a name="line.3590"></a>
+<span class="sourceLineNo">3591</span>                                if (it.isOutputDouble()) {<a name="line.3591"></a>
+<span class="sourceLineNo">3592</span>                                        while (it.hasNext()) {<a name="line.3592"></a>
+<span class="sourceLineNo">3593</span>                                                final double iax = it.aDouble;<a name="line.3593"></a>
+<span class="sourceLineNo">3594</span>                                                double ibx = it.bDouble;<a name="line.3594"></a>
+<span class="sourceLineNo">3595</span>                                                long ox;<a name="line.3595"></a>
+<span class="sourceLineNo">3596</span>                                                ox = toLong(iax + ibx);<a name="line.3596"></a>
+<span class="sourceLineNo">3597</span>                                                oai64data[it.oIndex] = ox;<a name="line.3597"></a>
+<span class="sourceLineNo">3598</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3598"></a>
+<span class="sourceLineNo">3599</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.3599"></a>
+<span class="sourceLineNo">3600</span>                                                        ox = toLong(iax + ibx);<a name="line.3600"></a>
+<span class="sourceLineNo">3601</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.3601"></a>
+<span class="sourceLineNo">3602</span>                                                }<a name="line.3602"></a>
+<span class="sourceLineNo">3603</span>                                        }<a name="line.3603"></a>
+<span class="sourceLineNo">3604</span>                                } else {<a name="line.3604"></a>
+<span class="sourceLineNo">3605</span>                                        while (it.hasNext()) {<a name="line.3605"></a>
+<span class="sourceLineNo">3606</span>                                                final long iax = it.aLong;<a name="line.3606"></a>
+<span class="sourceLineNo">3607</span>                                                long ibx = it.bLong;<a name="line.3607"></a>
+<span class="sourceLineNo">3608</span>                                                long ox;<a name="line.3608"></a>
+<span class="sourceLineNo">3609</span>                                                ox = (iax + ibx);<a name="line.3609"></a>
+<span class="sourceLineNo">3610</span>                                                oai64data[it.oIndex] = ox;<a name="line.3610"></a>
+<span class="sourceLineNo">3611</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3611"></a>
+<span class="sourceLineNo">3612</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.3612"></a>
+<span class="sourceLineNo">3613</span>                                                        ox = (iax + ibx);<a name="line.3613"></a>
+<span class="sourceLineNo">3614</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.3614"></a>
+<span class="sourceLineNo">3615</span>                                                }<a name="line.3615"></a>
+<span class="sourceLineNo">3616</span>                                        }<a name="line.3616"></a>
+<span class="sourceLineNo">3617</span>                                }<a name="line.3617"></a>
+<span class="sourceLineNo">3618</span>                        } else if (as &gt; bs) {<a name="line.3618"></a>
+<span class="sourceLineNo">3619</span>                                if (it.isOutputDouble()) {<a name="line.3619"></a>
+<span class="sourceLineNo">3620</span>                                        while (it.hasNext()) {<a name="line.3620"></a>
+<span class="sourceLineNo">3621</span>                                                double iax = it.aDouble;<a name="line.3621"></a>
+<span class="sourceLineNo">3622</span>                                                final double ibx = it.bDouble;<a name="line.3622"></a>
+<span class="sourceLineNo">3623</span>                                                long ox;<a name="line.3623"></a>
+<span class="sourceLineNo">3624</span>                                                ox = toLong(iax + ibx);<a name="line.3624"></a>
+<span class="sourceLineNo">3625</span>                                                oai64data[it.oIndex] = ox;<a name="line.3625"></a>
+<span class="sourceLineNo">3626</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3626"></a>
+<span class="sourceLineNo">3627</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.3627"></a>
+<span class="sourceLineNo">3628</span>                                                        ox = toLong(iax + ibx);<a name="line.3628"></a>
+<span class="sourceLineNo">3629</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.3629"></a>
+<span class="sourceLineNo">3630</span>                                                }<a name="line.3630"></a>
+<span class="sourceLineNo">3631</span>                                        }<a name="line.3631"></a>
+<span class="sourceLineNo">3632</span>                                } else {<a name="line.3632"></a>
+<span class="sourceLineNo">3633</span>                                        while (it.hasNext()) {<a name="line.3633"></a>
+<span class="sourceLineNo">3634</span>                                                long iax = it.aLong;<a name="line.3634"></a>
+<span class="sourceLineNo">3635</span>                                                final long ibx = it.bLong;<a name="line.3635"></a>
+<span class="sourceLineNo">3636</span>                                                long ox;<a name="line.3636"></a>
+<span class="sourceLineNo">3637</span>                                                ox = (iax + ibx);<a name="line.3637"></a>
+<span class="sourceLineNo">3638</span>                                                oai64data[it.oIndex] = ox;<a name="line.3638"></a>
+<span class="sourceLineNo">3639</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3639"></a>
+<span class="sourceLineNo">3640</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.3640"></a>
+<span class="sourceLineNo">3641</span>                                                        ox = (iax + ibx);<a name="line.3641"></a>
+<span class="sourceLineNo">3642</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.3642"></a>
+<span class="sourceLineNo">3643</span>                                                }<a name="line.3643"></a>
+<span class="sourceLineNo">3644</span>                                        }<a name="line.3644"></a>
+<span class="sourceLineNo">3645</span>                                }<a name="line.3645"></a>
+<span class="sourceLineNo">3646</span>                        } else if (as == 1) {<a name="line.3646"></a>
+<span class="sourceLineNo">3647</span>                                if (it.isOutputDouble()) {<a name="line.3647"></a>
+<span class="sourceLineNo">3648</span>                                        while (it.hasNext()) {<a name="line.3648"></a>
+<span class="sourceLineNo">3649</span>                                                final double iax = it.aDouble;<a name="line.3649"></a>
+<span class="sourceLineNo">3650</span>                                                final double ibx = it.bDouble;<a name="line.3650"></a>
+<span class="sourceLineNo">3651</span>                                                long ox;<a name="line.3651"></a>
+<span class="sourceLineNo">3652</span>                                                ox = toLong(iax + ibx);<a name="line.3652"></a>
+<span class="sourceLineNo">3653</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.3653"></a>
+<span class="sourceLineNo">3654</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.3654"></a>
+<span class="sourceLineNo">3655</span>                                                }<a name="line.3655"></a>
+<span class="sourceLineNo">3656</span>                                        }<a name="line.3656"></a>
+<span class="sourceLineNo">3657</span>                                } else {<a name="line.3657"></a>
+<span class="sourceLineNo">3658</span>                                        while (it.hasNext()) {<a name="line.3658"></a>
+<span class="sourceLineNo">3659</span>                                                final long iax = it.aLong;<a name="line.3659"></a>
+<span class="sourceLineNo">3660</span>                                                final long ibx = it.bLong;<a name="line.3660"></a>
+<span class="sourceLineNo">3661</span>                                                long ox;<a name="line.3661"></a>
+<span class="sourceLineNo">3662</span>                                                ox = (iax + ibx);<a name="line.3662"></a>
+<span class="sourceLineNo">3663</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.3663"></a>
+<span class="sourceLineNo">3664</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.3664"></a>
+<span class="sourceLineNo">3665</span>                                                }<a name="line.3665"></a>
+<span class="sourceLineNo">3666</span>                                        }<a name="line.3666"></a>
+<span class="sourceLineNo">3667</span>                                }<a name="line.3667"></a>
+<span class="sourceLineNo">3668</span>                        } else {<a name="line.3668"></a>
+<span class="sourceLineNo">3669</span>                                if (it.isOutputDouble()) {<a name="line.3669"></a>
+<span class="sourceLineNo">3670</span>                                        while (it.hasNext()) {<a name="line.3670"></a>
+<span class="sourceLineNo">3671</span>                                                double iax = it.aDouble;<a name="line.3671"></a>
+<span class="sourceLineNo">3672</span>                                                double ibx = it.bDouble;<a name="line.3672"></a>
+<span class="sourceLineNo">3673</span>                                                long ox;<a name="line.3673"></a>
+<span class="sourceLineNo">3674</span>                                                ox = toLong(iax + ibx);<a name="line.3674"></a>
+<span class="sourceLineNo">3675</span>                                                oai64data[it.oIndex] = ox;<a name="line.3675"></a>
+<span class="sourceLineNo">3676</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3676"></a>
+<span class="sourceLineNo">3677</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.3677"></a>
+<span class="sourceLineNo">3678</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.3678"></a>
+<span class="sourceLineNo">3679</span>                                                        ox = toLong(iax + ibx);<a name="line.3679"></a>
+<span class="sourceLineNo">3680</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.3680"></a>
+<span class="sourceLineNo">3681</span>                                                }<a name="line.3681"></a>
+<span class="sourceLineNo">3682</span>                                        }<a name="line.3682"></a>
+<span class="sourceLineNo">3683</span>                                } else {<a name="line.3683"></a>
+<span class="sourceLineNo">3684</span>                                        while (it.hasNext()) {<a name="line.3684"></a>
+<span class="sourceLineNo">3685</span>                                                long iax = it.aLong;<a name="line.3685"></a>
+<span class="sourceLineNo">3686</span>                                                long ibx = it.bLong;<a name="line.3686"></a>
+<span class="sourceLineNo">3687</span>                                                long ox;<a name="line.3687"></a>
+<span class="sourceLineNo">3688</span>                                                ox = (iax + ibx);<a name="line.3688"></a>
+<span class="sourceLineNo">3689</span>                                                oai64data[it.oIndex] = ox;<a name="line.3689"></a>
+<span class="sourceLineNo">3690</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3690"></a>
+<span class="sourceLineNo">3691</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.3691"></a>
+<span class="sourceLineNo">3692</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.3692"></a>
+<span class="sourceLineNo">3693</span>                                                        ox = (iax + ibx);<a name="line.3693"></a>
+<span class="sourceLineNo">3694</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.3694"></a>
+<span class="sourceLineNo">3695</span>                                                }<a name="line.3695"></a>
+<span class="sourceLineNo">3696</span>                                        }<a name="line.3696"></a>
+<span class="sourceLineNo">3697</span>                                }<a name="line.3697"></a>
+<span class="sourceLineNo">3698</span>                        }<a name="line.3698"></a>
+<span class="sourceLineNo">3699</span>                        break;<a name="line.3699"></a>
+<span class="sourceLineNo">3700</span>                case Dataset.ARRAYINT32:<a name="line.3700"></a>
+<span class="sourceLineNo">3701</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.3701"></a>
+<span class="sourceLineNo">3702</span>                        if (is == 1) {<a name="line.3702"></a>
+<span class="sourceLineNo">3703</span>                                if (it.isOutputDouble()) {<a name="line.3703"></a>
+<span class="sourceLineNo">3704</span>                                        while (it.hasNext()) {<a name="line.3704"></a>
+<span class="sourceLineNo">3705</span>                                                final double iax = it.aDouble;<a name="line.3705"></a>
+<span class="sourceLineNo">3706</span>                                                final double ibx = it.bDouble;<a name="line.3706"></a>
+<span class="sourceLineNo">3707</span>                                                int ox;<a name="line.3707"></a>
+<span class="sourceLineNo">3708</span>                                                ox = (int) toLong(iax + ibx);<a name="line.3708"></a>
+<span class="sourceLineNo">3709</span>                                                oai32data[it.oIndex] = ox;<a name="line.3709"></a>
+<span class="sourceLineNo">3710</span>                                        }<a name="line.3710"></a>
+<span class="sourceLineNo">3711</span>                                } else {<a name="line.3711"></a>
+<span class="sourceLineNo">3712</span>                                        while (it.hasNext()) {<a name="line.3712"></a>
+<span class="sourceLineNo">3713</span>                                                final long iax = it.aLong;<a name="line.3713"></a>
+<span class="sourceLineNo">3714</span>                                                final long ibx = it.bLong;<a name="line.3714"></a>
+<span class="sourceLineNo">3715</span>                                                int ox;<a name="line.3715"></a>
+<span class="sourceLineNo">3716</span>                                                ox = (int) (iax + ibx);<a name="line.3716"></a>
+<span class="sourceLineNo">3717</span>                                                oai32data[it.oIndex] = ox;<a name="line.3717"></a>
+<span class="sourceLineNo">3718</span>                                        }<a name="line.3718"></a>
+<span class="sourceLineNo">3719</span>                                }<a name="line.3719"></a>
+<span class="sourceLineNo">3720</span>                        } else if (as &lt; bs) {<a name="line.3720"></a>
+<span class="sourceLineNo">3721</span>                                if (it.isOutputDouble()) {<a name="line.3721"></a>
+<span class="sourceLineNo">3722</span>                                        while (it.hasNext()) {<a name="line.3722"></a>
+<span class="sourceLineNo">3723</span>                                                final double iax = it.aDouble;<a name="line.3723"></a>
+<span class="sourceLineNo">3724</span>                                                double ibx = it.bDouble;<a name="line.3724"></a>
+<span class="sourceLineNo">3725</span>                                                int ox;<a name="line.3725"></a>
+<span class="sourceLineNo">3726</span>                                                ox = (int) toLong(iax + ibx);<a name="line.3726"></a>
+<span class="sourceLineNo">3727</span>                                                oai32data[it.oIndex] = ox;<a name="line.3727"></a>
+<span class="sourceLineNo">3728</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3728"></a>
+<span class="sourceLineNo">3729</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.3729"></a>
+<span class="sourceLineNo">3730</span>                                                        ox = (int) toLong(iax + ibx);<a name="line.3730"></a>
+<span class="sourceLineNo">3731</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.3731"></a>
+<span class="sourceLineNo">3732</span>                                                }<a name="line.3732"></a>
+<span class="sourceLineNo">3733</span>                                        }<a name="line.3733"></a>
+<span class="sourceLineNo">3734</span>                                } else {<a name="line.3734"></a>
+<span class="sourceLineNo">3735</span>                                        while (it.hasNext()) {<a name="line.3735"></a>
+<span class="sourceLineNo">3736</span>                                                final long iax = it.aLong;<a name="line.3736"></a>
+<span class="sourceLineNo">3737</span>                                                long ibx = it.bLong;<a name="line.3737"></a>
+<span class="sourceLineNo">3738</span>                                                int ox;<a name="line.3738"></a>
+<span class="sourceLineNo">3739</span>                                                ox = (int) (iax + ibx);<a name="line.3739"></a>
+<span class="sourceLineNo">3740</span>                                                oai32data[it.oIndex] = ox;<a name="line.3740"></a>
+<span class="sourceLineNo">3741</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3741"></a>
+<span class="sourceLineNo">3742</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.3742"></a>
+<span class="sourceLineNo">3743</span>                                                        ox = (int) (iax + ibx);<a name="line.3743"></a>
+<span class="sourceLineNo">3744</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.3744"></a>
+<span class="sourceLineNo">3745</span>                                                }<a name="line.3745"></a>
+<span class="sourceLineNo">3746</span>                                        }<a name="line.3746"></a>
+<span class="sourceLineNo">3747</span>                                }<a name="line.3747"></a>
+<span class="sourceLineNo">3748</span>                        } else if (as &gt; bs) {<a name="line.3748"></a>
+<span class="sourceLineNo">3749</span>                                if (it.isOutputDouble()) {<a name="line.3749"></a>
+<span class="sourceLineNo">3750</span>                                        while (it.hasNext()) {<a name="line.3750"></a>
+<span class="sourceLineNo">3751</span>                                                double iax = it.aDouble;<a name="line.3751"></a>
+<span class="sourceLineNo">3752</span>                                                final double ibx = it.bDouble;<a name="line.3752"></a>
+<span class="sourceLineNo">3753</span>                                                int ox;<a name="line.3753"></a>
+<span class="sourceLineNo">3754</span>                                                ox = (int) toLong(iax + ibx);<a name="line.3754"></a>
+<span class="sourceLineNo">3755</span>                                                oai32data[it.oIndex] = ox;<a name="line.3755"></a>
+<span class="sourceLineNo">3756</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3756"></a>
+<span class="sourceLineNo">3757</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.3757"></a>
+<span class="sourceLineNo">3758</span>                                                        ox = (int) toLong(iax + ibx);<a name="line.3758"></a>
+<span class="sourceLineNo">3759</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.3759"></a>
+<span class="sourceLineNo">3760</span>                                                }<a name="line.3760"></a>
+<span class="sourceLineNo">3761</span>                                        }<a name="line.3761"></a>
+<span class="sourceLineNo">3762</span>                                } else {<a name="line.3762"></a>
+<span class="sourceLineNo">3763</span>                                        while (it.hasNext()) {<a name="line.3763"></a>
+<span class="sourceLineNo">3764</span>                                                long iax = it.aLong;<a name="line.3764"></a>
+<span class="sourceLineNo">3765</span>                                                final long ibx = it.bLong;<a name="line.3765"></a>
+<span class="sourceLineNo">3766</span>                                                int ox;<a name="line.3766"></a>
+<span class="sourceLineNo">3767</span>                                                ox = (int) (iax + ibx);<a name="line.3767"></a>
+<span class="sourceLineNo">3768</span>                                                oai32data[it.oIndex] = ox;<a name="line.3768"></a>
+<span class="sourceLineNo">3769</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3769"></a>
+<span class="sourceLineNo">3770</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.3770"></a>
+<span class="sourceLineNo">3771</span>                                                        ox = (int) (iax + ibx);<a name="line.3771"></a>
+<span class="sourceLineNo">3772</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.3772"></a>
+<span class="sourceLineNo">3773</span>                                                }<a name="line.3773"></a>
+<span class="sourceLineNo">3774</span>                                        }<a name="line.3774"></a>
+<span class="sourceLineNo">3775</span>                                }<a name="line.3775"></a>
+<span class="sourceLineNo">3776</span>                        } else if (as == 1) {<a name="line.3776"></a>
+<span class="sourceLineNo">3777</span>                                if (it.isOutputDouble()) {<a name="line.3777"></a>
+<span class="sourceLineNo">3778</span>                                        while (it.hasNext()) {<a name="line.3778"></a>
+<span class="sourceLineNo">3779</span>                                                final double iax = it.aDouble;<a name="line.3779"></a>
+<span class="sourceLineNo">3780</span>                                                final double ibx = it.bDouble;<a name="line.3780"></a>
+<span class="sourceLineNo">3781</span>                                                int ox;<a name="line.3781"></a>
+<span class="sourceLineNo">3782</span>                                                ox = (int) toLong(iax + ibx);<a name="line.3782"></a>
+<span class="sourceLineNo">3783</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.3783"></a>
+<span class="sourceLineNo">3784</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.3784"></a>
+<span class="sourceLineNo">3785</span>                                                }<a name="line.3785"></a>
+<span class="sourceLineNo">3786</span>                                        }<a name="line.3786"></a>
+<span class="sourceLineNo">3787</span>                                } else {<a name="line.3787"></a>
+<span class="sourceLineNo">3788</span>                                        while (it.hasNext()) {<a name="line.3788"></a>
+<span class="sourceLineNo">3789</span>                                                final long iax = it.aLong;<a name="line.3789"></a>
+<span class="sourceLineNo">3790</span>                                                final long ibx = it.bLong;<a name="line.3790"></a>
+<span class="sourceLineNo">3791</span>                                                int ox;<a name="line.3791"></a>
+<span class="sourceLineNo">3792</span>                                                ox = (int) (iax + ibx);<a name="line.3792"></a>
+<span class="sourceLineNo">3793</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.3793"></a>
+<span class="sourceLineNo">3794</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.3794"></a>
+<span class="sourceLineNo">3795</span>                                                }<a name="line.3795"></a>
+<span class="sourceLineNo">3796</span>                                        }<a name="line.3796"></a>
+<span class="sourceLineNo">3797</span>                                }<a name="line.3797"></a>
+<span class="sourceLineNo">3798</span>                        } else {<a name="line.3798"></a>
+<span class="sourceLineNo">3799</span>                                if (it.isOutputDouble()) {<a name="line.3799"></a>
+<span class="sourceLineNo">3800</span>                                        while (it.hasNext()) {<a name="line.3800"></a>
+<span class="sourceLineNo">3801</span>                                                double iax = it.aDouble;<a name="line.3801"></a>
+<span class="sourceLineNo">3802</span>                                                double ibx = it.bDouble;<a name="line.3802"></a>
+<span class="sourceLineNo">3803</span>                                                int ox;<a name="line.3803"></a>
+<span class="sourceLineNo">3804</span>                                                ox = (int) toLong(iax + ibx);<a name="line.3804"></a>
+<span class="sourceLineNo">3805</span>                                                oai32data[it.oIndex] = ox;<a name="line.3805"></a>
+<span class="sourceLineNo">3806</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3806"></a>
+<span class="sourceLineNo">3807</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.3807"></a>
+<span class="sourceLineNo">3808</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.3808"></a>
+<span class="sourceLineNo">3809</span>                                                        ox = (int) toLong(iax + ibx);<a name="line.3809"></a>
+<span class="sourceLineNo">3810</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.3810"></a>
+<span class="sourceLineNo">3811</span>                                                }<a name="line.3811"></a>
+<span class="sourceLineNo">3812</span>                                        }<a name="line.3812"></a>
+<span class="sourceLineNo">3813</span>                                } else {<a name="line.3813"></a>
+<span class="sourceLineNo">3814</span>                                        while (it.hasNext()) {<a name="line.3814"></a>
+<span class="sourceLineNo">3815</span>                                                long iax = it.aLong;<a name="line.3815"></a>
+<span class="sourceLineNo">3816</span>                                                long ibx = it.bLong;<a name="line.3816"></a>
+<span class="sourceLineNo">3817</span>                                                int ox;<a name="line.3817"></a>
+<span class="sourceLineNo">3818</span>                                                ox = (int) (iax + ibx);<a name="line.3818"></a>
+<span class="sourceLineNo">3819</span>                                                oai32data[it.oIndex] = ox;<a name="line.3819"></a>
+<span class="sourceLineNo">3820</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3820"></a>
+<span class="sourceLineNo">3821</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.3821"></a>
+<span class="sourceLineNo">3822</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.3822"></a>
+<span class="sourceLineNo">3823</span>                                                        ox = (int) (iax + ibx);<a name="line.3823"></a>
+<span class="sourceLineNo">3824</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.3824"></a>
+<span class="sourceLineNo">3825</span>                                                }<a name="line.3825"></a>
+<span class="sourceLineNo">3826</span>                                        }<a name="line.3826"></a>
+<span class="sourceLineNo">3827</span>                                }<a name="line.3827"></a>
+<span class="sourceLineNo">3828</span>                        }<a name="line.3828"></a>
+<span class="sourceLineNo">3829</span>                        break;<a name="line.3829"></a>
+<span class="sourceLineNo">3830</span>                case Dataset.FLOAT32:<a name="line.3830"></a>
+<span class="sourceLineNo">3831</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.3831"></a>
+<span class="sourceLineNo">3832</span>                        if (it.isOutputDouble()) {<a name="line.3832"></a>
+<span class="sourceLineNo">3833</span>                                while (it.hasNext()) {<a name="line.3833"></a>
+<span class="sourceLineNo">3834</span>                                        final double iax = it.aDouble;<a name="line.3834"></a>
+<span class="sourceLineNo">3835</span>                                        final double ibx = it.bDouble;<a name="line.3835"></a>
+<span class="sourceLineNo">3836</span>                                        float ox;<a name="line.3836"></a>
+<span class="sourceLineNo">3837</span>                                        ox = (float) (iax + ibx);<a name="line.3837"></a>
+<span class="sourceLineNo">3838</span>                                        of32data[it.oIndex] = ox;<a name="line.3838"></a>
+<span class="sourceLineNo">3839</span>                                }<a name="line.3839"></a>
+<span class="sourceLineNo">3840</span>                        } else {<a name="line.3840"></a>
+<span class="sourceLineNo">3841</span>                                while (it.hasNext()) {<a name="line.3841"></a>
+<span class="sourceLineNo">3842</span>                                        final long iax = it.aLong;<a name="line.3842"></a>
+<span class="sourceLineNo">3843</span>                                        final long ibx = it.bLong;<a name="line.3843"></a>
+<span class="sourceLineNo">3844</span>                                        float ox;<a name="line.3844"></a>
+<span class="sourceLineNo">3845</span>                                        ox = (iax + ibx);<a name="line.3845"></a>
+<span class="sourceLineNo">3846</span>                                        of32data[it.oIndex] = ox;<a name="line.3846"></a>
+<span class="sourceLineNo">3847</span>                                }<a name="line.3847"></a>
+<span class="sourceLineNo">3848</span>                        }<a name="line.3848"></a>
+<span class="sourceLineNo">3849</span>                        break;<a name="line.3849"></a>
+<span class="sourceLineNo">3850</span>                case Dataset.FLOAT64:<a name="line.3850"></a>
+<span class="sourceLineNo">3851</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.3851"></a>
+<span class="sourceLineNo">3852</span>                        if (it.isOutputDouble()) {<a name="line.3852"></a>
+<span class="sourceLineNo">3853</span>                                while (it.hasNext()) {<a name="line.3853"></a>
+<span class="sourceLineNo">3854</span>                                        final double iax = it.aDouble;<a name="line.3854"></a>
+<span class="sourceLineNo">3855</span>                                        final double ibx = it.bDouble;<a name="line.3855"></a>
+<span class="sourceLineNo">3856</span>                                        double ox;<a name="line.3856"></a>
+<span class="sourceLineNo">3857</span>                                        ox = (iax + ibx);<a name="line.3857"></a>
+<span class="sourceLineNo">3858</span>                                        of64data[it.oIndex] = ox;<a name="line.3858"></a>
+<span class="sourceLineNo">3859</span>                                }<a name="line.3859"></a>
+<span class="sourceLineNo">3860</span>                        } else {<a name="line.3860"></a>
+<span class="sourceLineNo">3861</span>                                while (it.hasNext()) {<a name="line.3861"></a>
+<span class="sourceLineNo">3862</span>                                        final long iax = it.aLong;<a name="line.3862"></a>
+<span class="sourceLineNo">3863</span>                                        final long ibx = it.bLong;<a name="line.3863"></a>
+<span class="sourceLineNo">3864</span>                                        double ox;<a name="line.3864"></a>
+<span class="sourceLineNo">3865</span>                                        ox = (iax + ibx);<a name="line.3865"></a>
+<span class="sourceLineNo">3866</span>                                        of64data[it.oIndex] = ox;<a name="line.3866"></a>
+<span class="sourceLineNo">3867</span>                                }<a name="line.3867"></a>
+<span class="sourceLineNo">3868</span>                        }<a name="line.3868"></a>
+<span class="sourceLineNo">3869</span>                        break;<a name="line.3869"></a>
+<span class="sourceLineNo">3870</span>                case Dataset.ARRAYFLOAT32:<a name="line.3870"></a>
+<span class="sourceLineNo">3871</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.3871"></a>
+<span class="sourceLineNo">3872</span>                        if (is == 1) {<a name="line.3872"></a>
+<span class="sourceLineNo">3873</span>                                if (it.isOutputDouble()) {<a name="line.3873"></a>
+<span class="sourceLineNo">3874</span>                                        while (it.hasNext()) {<a name="line.3874"></a>
+<span class="sourceLineNo">3875</span>                                                final double iax = it.aDouble;<a name="line.3875"></a>
+<span class="sourceLineNo">3876</span>                                                final double ibx = it.bDouble;<a name="line.3876"></a>
+<span class="sourceLineNo">3877</span>                                                float ox;<a name="line.3877"></a>
+<span class="sourceLineNo">3878</span>                                                ox = (float) (iax + ibx);<a name="line.3878"></a>
+<span class="sourceLineNo">3879</span>                                                oaf32data[it.oIndex] = ox;<a name="line.3879"></a>
+<span class="sourceLineNo">3880</span>                                        }<a name="line.3880"></a>
+<span class="sourceLineNo">3881</span>                                } else {<a name="line.3881"></a>
+<span class="sourceLineNo">3882</span>                                        while (it.hasNext()) {<a name="line.3882"></a>
+<span class="sourceLineNo">3883</span>                                                final long iax = it.aLong;<a name="line.3883"></a>
+<span class="sourceLineNo">3884</span>                                                final long ibx = it.bLong;<a name="line.3884"></a>
+<span class="sourceLineNo">3885</span>                                                float ox;<a name="line.3885"></a>
+<span class="sourceLineNo">3886</span>                                                ox = (iax + ibx);<a name="line.3886"></a>
+<span class="sourceLineNo">3887</span>                                                oaf32data[it.oIndex] = ox;<a name="line.3887"></a>
+<span class="sourceLineNo">3888</span>                                        }<a name="line.3888"></a>
+<span class="sourceLineNo">3889</span>                                }<a name="line.3889"></a>
+<span class="sourceLineNo">3890</span>                        } else if (as &lt; bs) {<a name="line.3890"></a>
+<span class="sourceLineNo">3891</span>                                if (it.isOutputDouble()) {<a name="line.3891"></a>
+<span class="sourceLineNo">3892</span>                                        while (it.hasNext()) {<a name="line.3892"></a>
+<span class="sourceLineNo">3893</span>                                                final double iax = it.aDouble;<a name="line.3893"></a>
+<span class="sourceLineNo">3894</span>                                                double ibx = it.bDouble;<a name="line.3894"></a>
+<span class="sourceLineNo">3895</span>                                                float ox;<a name="line.3895"></a>
+<span class="sourceLineNo">3896</span>                                                ox = (float) (iax + ibx);<a name="line.3896"></a>
+<span class="sourceLineNo">3897</span>                                                oaf32data[it.oIndex] = ox;<a name="line.3897"></a>
+<span class="sourceLineNo">3898</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3898"></a>
+<span class="sourceLineNo">3899</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.3899"></a>
+<span class="sourceLineNo">3900</span>                                                        ox = (float) (iax + ibx);<a name="line.3900"></a>
+<span class="sourceLineNo">3901</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.3901"></a>
+<span class="sourceLineNo">3902</span>                                                }<a name="line.3902"></a>
+<span class="sourceLineNo">3903</span>                                        }<a name="line.3903"></a>
+<span class="sourceLineNo">3904</span>                                } else {<a name="line.3904"></a>
+<span class="sourceLineNo">3905</span>                                        while (it.hasNext()) {<a name="line.3905"></a>
+<span class="sourceLineNo">3906</span>                                                final long iax = it.aLong;<a name="line.3906"></a>
+<span class="sourceLineNo">3907</span>                                                long ibx = it.bLong;<a name="line.3907"></a>
+<span class="sourceLineNo">3908</span>                                                float ox;<a name="line.3908"></a>
+<span class="sourceLineNo">3909</span>                                                ox = (iax + ibx);<a name="line.3909"></a>
+<span class="sourceLineNo">3910</span>                                                oaf32data[it.oIndex] = ox;<a name="line.3910"></a>
+<span class="sourceLineNo">3911</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3911"></a>
+<span class="sourceLineNo">3912</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.3912"></a>
+<span class="sourceLineNo">3913</span>                                                        ox = (iax + ibx);<a name="line.3913"></a>
+<span class="sourceLineNo">3914</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.3914"></a>
+<span class="sourceLineNo">3915</span>                                                }<a name="line.3915"></a>
+<span class="sourceLineNo">3916</span>                                        }<a name="line.3916"></a>
+<span class="sourceLineNo">3917</span>                                }<a name="line.3917"></a>
+<span class="sourceLineNo">3918</span>                        } else if (as &gt; bs) {<a name="line.3918"></a>
+<span class="sourceLineNo">3919</span>                                if (it.isOutputDouble()) {<a name="line.3919"></a>
+<span class="sourceLineNo">3920</span>                                        while (it.hasNext()) {<a name="line.3920"></a>
+<span class="sourceLineNo">3921</span>                                                double iax = it.aDouble;<a name="line.3921"></a>
+<span class="sourceLineNo">3922</span>                                                final double ibx = it.bDouble;<a name="line.3922"></a>
+<span class="sourceLineNo">3923</span>                                                float ox;<a name="line.3923"></a>
+<span class="sourceLineNo">3924</span>                                                ox = (float) (iax + ibx);<a name="line.3924"></a>
+<span class="sourceLineNo">3925</span>                                                oaf32data[it.oIndex] = ox;<a name="line.3925"></a>
+<span class="sourceLineNo">3926</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3926"></a>
+<span class="sourceLineNo">3927</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.3927"></a>
+<span class="sourceLineNo">3928</span>                                                        ox = (float) (iax + ibx);<a name="line.3928"></a>
+<span class="sourceLineNo">3929</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.3929"></a>
+<span class="sourceLineNo">3930</span>                                                }<a name="line.3930"></a>
+<span class="sourceLineNo">3931</span>                                        }<a name="line.3931"></a>
+<span class="sourceLineNo">3932</span>                                } else {<a name="line.3932"></a>
+<span class="sourceLineNo">3933</span>                                        while (it.hasNext()) {<a name="line.3933"></a>
+<span class="sourceLineNo">3934</span>                                                long iax = it.aLong;<a name="line.3934"></a>
+<span class="sourceLineNo">3935</span>                                                final long ibx = it.bLong;<a name="line.3935"></a>
+<span class="sourceLineNo">3936</span>                                                float ox;<a name="line.3936"></a>
+<span class="sourceLineNo">3937</span>                                                ox = (iax + ibx);<a name="line.3937"></a>
+<span class="sourceLineNo">3938</span>                                                oaf32data[it.oIndex] = ox;<a name="line.3938"></a>
+<span class="sourceLineNo">3939</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3939"></a>
+<span class="sourceLineNo">3940</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.3940"></a>
+<span class="sourceLineNo">3941</span>                                                        ox = (iax + ibx);<a name="line.3941"></a>
+<span class="sourceLineNo">3942</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.3942"></a>
+<span class="sourceLineNo">3943</span>                                                }<a name="line.3943"></a>
+<span class="sourceLineNo">3944</span>                                        }<a name="line.3944"></a>
+<span class="sourceLineNo">3945</span>                                }<a name="line.3945"></a>
+<span class="sourceLineNo">3946</span>                        } else if (as == 1) {<a name="line.3946"></a>
+<span class="sourceLineNo">3947</span>                                if (it.isOutputDouble()) {<a name="line.3947"></a>
+<span class="sourceLineNo">3948</span>                                        while (it.hasNext()) {<a name="line.3948"></a>
+<span class="sourceLineNo">3949</span>                                                final double iax = it.aDouble;<a name="line.3949"></a>
+<span class="sourceLineNo">3950</span>                                                final double ibx = it.bDouble;<a name="line.3950"></a>
+<span class="sourceLineNo">3951</span>                                                float ox;<a name="line.3951"></a>
+<span class="sourceLineNo">3952</span>                                                ox = (float) (iax + ibx);<a name="line.3952"></a>
+<span class="sourceLineNo">3953</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.3953"></a>
+<span class="sourceLineNo">3954</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.3954"></a>
+<span class="sourceLineNo">3955</span>                                                }<a name="line.3955"></a>
+<span class="sourceLineNo">3956</span>                                        }<a name="line.3956"></a>
+<span class="sourceLineNo">3957</span>                                } else {<a name="line.3957"></a>
+<span class="sourceLineNo">3958</span>                                        while (it.hasNext()) {<a name="line.3958"></a>
+<span class="sourceLineNo">3959</span>                                                final long iax = it.aLong;<a name="line.3959"></a>
+<span class="sourceLineNo">3960</span>                                                final long ibx = it.bLong;<a name="line.3960"></a>
+<span class="sourceLineNo">3961</span>                                                float ox;<a name="line.3961"></a>
+<span class="sourceLineNo">3962</span>                                                ox = (iax + ibx);<a name="line.3962"></a>
+<span class="sourceLineNo">3963</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.3963"></a>
+<span class="sourceLineNo">3964</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.3964"></a>
+<span class="sourceLineNo">3965</span>                                                }<a name="line.3965"></a>
+<span class="sourceLineNo">3966</span>                                        }<a name="line.3966"></a>
+<span class="sourceLineNo">3967</span>                                }<a name="line.3967"></a>
+<span class="sourceLineNo">3968</span>                        } else {<a name="line.3968"></a>
+<span class="sourceLineNo">3969</span>                                if (it.isOutputDouble()) {<a name="line.3969"></a>
+<span class="sourceLineNo">3970</span>                                        while (it.hasNext()) {<a name="line.3970"></a>
+<span class="sourceLineNo">3971</span>                                                double iax = it.aDouble;<a name="line.3971"></a>
+<span class="sourceLineNo">3972</span>                                                double ibx = it.bDouble;<a name="line.3972"></a>
+<span class="sourceLineNo">3973</span>                                                float ox;<a name="line.3973"></a>
+<span class="sourceLineNo">3974</span>                                                ox = (float) (iax + ibx);<a name="line.3974"></a>
+<span class="sourceLineNo">3975</span>                                                oaf32data[it.oIndex] = ox;<a name="line.3975"></a>
+<span class="sourceLineNo">3976</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3976"></a>
+<span class="sourceLineNo">3977</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.3977"></a>
+<span class="sourceLineNo">3978</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.3978"></a>
+<span class="sourceLineNo">3979</span>                                                        ox = (float) (iax + ibx);<a name="line.3979"></a>
+<span class="sourceLineNo">3980</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.3980"></a>
+<span class="sourceLineNo">3981</span>                                                }<a name="line.3981"></a>
+<span class="sourceLineNo">3982</span>                                        }<a name="line.3982"></a>
+<span class="sourceLineNo">3983</span>                                } else {<a name="line.3983"></a>
+<span class="sourceLineNo">3984</span>                                        while (it.hasNext()) {<a name="line.3984"></a>
+<span class="sourceLineNo">3985</span>                                                long iax = it.aLong;<a name="line.3985"></a>
+<span class="sourceLineNo">3986</span>                                                long ibx = it.bLong;<a name="line.3986"></a>
+<span class="sourceLineNo">3987</span>                                                float ox;<a name="line.3987"></a>
+<span class="sourceLineNo">3988</span>                                                ox = (iax + ibx);<a name="line.3988"></a>
+<span class="sourceLineNo">3989</span>                                                oaf32data[it.oIndex] = ox;<a name="line.3989"></a>
+<span class="sourceLineNo">3990</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.3990"></a>
+<span class="sourceLineNo">3991</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.3991"></a>
+<span class="sourceLineNo">3992</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.3992"></a>
+<span class="sourceLineNo">3993</span>                                                        ox = (iax + ibx);<a name="line.3993"></a>
+<span class="sourceLineNo">3994</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.3994"></a>
+<span class="sourceLineNo">3995</span>                                                }<a name="line.3995"></a>
+<span class="sourceLineNo">3996</span>                                        }<a name="line.3996"></a>
+<span class="sourceLineNo">3997</span>                                }<a name="line.3997"></a>
+<span class="sourceLineNo">3998</span>                        }<a name="line.3998"></a>
+<span class="sourceLineNo">3999</span>                        break;<a name="line.3999"></a>
+<span class="sourceLineNo">4000</span>                case Dataset.ARRAYFLOAT64:<a name="line.4000"></a>
+<span class="sourceLineNo">4001</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.4001"></a>
+<span class="sourceLineNo">4002</span>                        if (is == 1) {<a name="line.4002"></a>
+<span class="sourceLineNo">4003</span>                                if (it.isOutputDouble()) {<a name="line.4003"></a>
+<span class="sourceLineNo">4004</span>                                        while (it.hasNext()) {<a name="line.4004"></a>
+<span class="sourceLineNo">4005</span>                                                final double iax = it.aDouble;<a name="line.4005"></a>
+<span class="sourceLineNo">4006</span>                                                final double ibx = it.bDouble;<a name="line.4006"></a>
+<span class="sourceLineNo">4007</span>                                                double ox;<a name="line.4007"></a>
+<span class="sourceLineNo">4008</span>                                                ox = (iax + ibx);<a name="line.4008"></a>
+<span class="sourceLineNo">4009</span>                                                oaf64data[it.oIndex] = ox;<a name="line.4009"></a>
+<span class="sourceLineNo">4010</span>                                        }<a name="line.4010"></a>
+<span class="sourceLineNo">4011</span>                                } else {<a name="line.4011"></a>
+<span class="sourceLineNo">4012</span>                                        while (it.hasNext()) {<a name="line.4012"></a>
+<span class="sourceLineNo">4013</span>                                                final long iax = it.aLong;<a name="line.4013"></a>
+<span class="sourceLineNo">4014</span>                                                final long ibx = it.bLong;<a name="line.4014"></a>
+<span class="sourceLineNo">4015</span>                                                double ox;<a name="line.4015"></a>
+<span class="sourceLineNo">4016</span>                                                ox = (iax + ibx);<a name="line.4016"></a>
+<span class="sourceLineNo">4017</span>                                                oaf64data[it.oIndex] = ox;<a name="line.4017"></a>
+<span class="sourceLineNo">4018</span>                                        }<a name="line.4018"></a>
+<span class="sourceLineNo">4019</span>                                }<a name="line.4019"></a>
+<span class="sourceLineNo">4020</span>                        } else if (as &lt; bs) {<a name="line.4020"></a>
+<span class="sourceLineNo">4021</span>                                if (it.isOutputDouble()) {<a name="line.4021"></a>
+<span class="sourceLineNo">4022</span>                                        while (it.hasNext()) {<a name="line.4022"></a>
+<span class="sourceLineNo">4023</span>                                                final double iax = it.aDouble;<a name="line.4023"></a>
+<span class="sourceLineNo">4024</span>                                                double ibx = it.bDouble;<a name="line.4024"></a>
+<span class="sourceLineNo">4025</span>                                                double ox;<a name="line.4025"></a>
+<span class="sourceLineNo">4026</span>                                                ox = (iax + ibx);<a name="line.4026"></a>
+<span class="sourceLineNo">4027</span>                                                oaf64data[it.oIndex] = ox;<a name="line.4027"></a>
+<span class="sourceLineNo">4028</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4028"></a>
+<span class="sourceLineNo">4029</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.4029"></a>
+<span class="sourceLineNo">4030</span>                                                        ox = (iax + ibx);<a name="line.4030"></a>
+<span class="sourceLineNo">4031</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.4031"></a>
+<span class="sourceLineNo">4032</span>                                                }<a name="line.4032"></a>
+<span class="sourceLineNo">4033</span>                                        }<a name="line.4033"></a>
+<span class="sourceLineNo">4034</span>                                } else {<a name="line.4034"></a>
+<span class="sourceLineNo">4035</span>                                        while (it.hasNext()) {<a name="line.4035"></a>
+<span class="sourceLineNo">4036</span>                                                final long iax = it.aLong;<a name="line.4036"></a>
+<span class="sourceLineNo">4037</span>                                                long ibx = it.bLong;<a name="line.4037"></a>
+<span class="sourceLineNo">4038</span>                                                double ox;<a name="line.4038"></a>
+<span class="sourceLineNo">4039</span>                                                ox = (iax + ibx);<a name="line.4039"></a>
+<span class="sourceLineNo">4040</span>                                                oaf64data[it.oIndex] = ox;<a name="line.4040"></a>
+<span class="sourceLineNo">4041</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4041"></a>
+<span class="sourceLineNo">4042</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.4042"></a>
+<span class="sourceLineNo">4043</span>                                                        ox = (iax + ibx);<a name="line.4043"></a>
+<span class="sourceLineNo">4044</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.4044"></a>
+<span class="sourceLineNo">4045</span>                                                }<a name="line.4045"></a>
+<span class="sourceLineNo">4046</span>                                        }<a name="line.4046"></a>
+<span class="sourceLineNo">4047</span>                                }<a name="line.4047"></a>
+<span class="sourceLineNo">4048</span>                        } else if (as &gt; bs) {<a name="line.4048"></a>
+<span class="sourceLineNo">4049</span>                                if (it.isOutputDouble()) {<a name="line.4049"></a>
+<span class="sourceLineNo">4050</span>                                        while (it.hasNext()) {<a name="line.4050"></a>
+<span class="sourceLineNo">4051</span>                                                double iax = it.aDouble;<a name="line.4051"></a>
+<span class="sourceLineNo">4052</span>                                                final double ibx = it.bDouble;<a name="line.4052"></a>
+<span class="sourceLineNo">4053</span>                                                double ox;<a name="line.4053"></a>
+<span class="sourceLineNo">4054</span>                                                ox = (iax + ibx);<a name="line.4054"></a>
+<span class="sourceLineNo">4055</span>                                                oaf64data[it.oIndex] = ox;<a name="line.4055"></a>
+<span class="sourceLineNo">4056</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4056"></a>
+<span class="sourceLineNo">4057</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.4057"></a>
+<span class="sourceLineNo">4058</span>                                                        ox = (iax + ibx);<a name="line.4058"></a>
+<span class="sourceLineNo">4059</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.4059"></a>
+<span class="sourceLineNo">4060</span>                                                }<a name="line.4060"></a>
+<span class="sourceLineNo">4061</span>                                        }<a name="line.4061"></a>
+<span class="sourceLineNo">4062</span>                                } else {<a name="line.4062"></a>
+<span class="sourceLineNo">4063</span>                                        while (it.hasNext()) {<a name="line.4063"></a>
+<span class="sourceLineNo">4064</span>                                                long iax = it.aLong;<a name="line.4064"></a>
+<span class="sourceLineNo">4065</span>                                                final long ibx = it.bLong;<a name="line.4065"></a>
+<span class="sourceLineNo">4066</span>                                                double ox;<a name="line.4066"></a>
+<span class="sourceLineNo">4067</span>                                                ox = (iax + ibx);<a name="line.4067"></a>
+<span class="sourceLineNo">4068</span>                                                oaf64data[it.oIndex] = ox;<a name="line.4068"></a>
+<span class="sourceLineNo">4069</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4069"></a>
+<span class="sourceLineNo">4070</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.4070"></a>
+<span class="sourceLineNo">4071</span>                                                        ox = (iax + ibx);<a name="line.4071"></a>
+<span class="sourceLineNo">4072</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.4072"></a>
+<span class="sourceLineNo">4073</span>                                                }<a name="line.4073"></a>
+<span class="sourceLineNo">4074</span>                                        }<a name="line.4074"></a>
+<span class="sourceLineNo">4075</span>                                }<a name="line.4075"></a>
+<span class="sourceLineNo">4076</span>                        } else if (as == 1) {<a name="line.4076"></a>
+<span class="sourceLineNo">4077</span>                                if (it.isOutputDouble()) {<a name="line.4077"></a>
+<span class="sourceLineNo">4078</span>                                        while (it.hasNext()) {<a name="line.4078"></a>
+<span class="sourceLineNo">4079</span>                                                final double iax = it.aDouble;<a name="line.4079"></a>
+<span class="sourceLineNo">4080</span>                                                final double ibx = it.bDouble;<a name="line.4080"></a>
+<span class="sourceLineNo">4081</span>                                                double ox;<a name="line.4081"></a>
+<span class="sourceLineNo">4082</span>                                                ox = (iax + ibx);<a name="line.4082"></a>
+<span class="sourceLineNo">4083</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.4083"></a>
+<span class="sourceLineNo">4084</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.4084"></a>
+<span class="sourceLineNo">4085</span>                                                }<a name="line.4085"></a>
+<span class="sourceLineNo">4086</span>                                        }<a name="line.4086"></a>
+<span class="sourceLineNo">4087</span>                                } else {<a name="line.4087"></a>
+<span class="sourceLineNo">4088</span>                                        while (it.hasNext()) {<a name="line.4088"></a>
+<span class="sourceLineNo">4089</span>                                                final long iax = it.aLong;<a name="line.4089"></a>
+<span class="sourceLineNo">4090</span>                                                final long ibx = it.bLong;<a name="line.4090"></a>
+<span class="sourceLineNo">4091</span>                                                double ox;<a name="line.4091"></a>
+<span class="sourceLineNo">4092</span>                                                ox = (iax + ibx);<a name="line.4092"></a>
+<span class="sourceLineNo">4093</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.4093"></a>
+<span class="sourceLineNo">4094</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.4094"></a>
+<span class="sourceLineNo">4095</span>                                                }<a name="line.4095"></a>
+<span class="sourceLineNo">4096</span>                                        }<a name="line.4096"></a>
+<span class="sourceLineNo">4097</span>                                }<a name="line.4097"></a>
+<span class="sourceLineNo">4098</span>                        } else {<a name="line.4098"></a>
+<span class="sourceLineNo">4099</span>                                if (it.isOutputDouble()) {<a name="line.4099"></a>
+<span class="sourceLineNo">4100</span>                                        while (it.hasNext()) {<a name="line.4100"></a>
+<span class="sourceLineNo">4101</span>                                                double iax = it.aDouble;<a name="line.4101"></a>
+<span class="sourceLineNo">4102</span>                                                double ibx = it.bDouble;<a name="line.4102"></a>
+<span class="sourceLineNo">4103</span>                                                double ox;<a name="line.4103"></a>
+<span class="sourceLineNo">4104</span>                                                ox = (iax + ibx);<a name="line.4104"></a>
+<span class="sourceLineNo">4105</span>                                                oaf64data[it.oIndex] = ox;<a name="line.4105"></a>
+<span class="sourceLineNo">4106</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4106"></a>
+<span class="sourceLineNo">4107</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.4107"></a>
+<span class="sourceLineNo">4108</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.4108"></a>
+<span class="sourceLineNo">4109</span>                                                        ox = (iax + ibx);<a name="line.4109"></a>
+<span class="sourceLineNo">4110</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.4110"></a>
+<span class="sourceLineNo">4111</span>                                                }<a name="line.4111"></a>
+<span class="sourceLineNo">4112</span>                                        }<a name="line.4112"></a>
+<span class="sourceLineNo">4113</span>                                } else {<a name="line.4113"></a>
+<span class="sourceLineNo">4114</span>                                        while (it.hasNext()) {<a name="line.4114"></a>
+<span class="sourceLineNo">4115</span>                                                long iax = it.aLong;<a name="line.4115"></a>
+<span class="sourceLineNo">4116</span>                                                long ibx = it.bLong;<a name="line.4116"></a>
+<span class="sourceLineNo">4117</span>                                                double ox;<a name="line.4117"></a>
+<span class="sourceLineNo">4118</span>                                                ox = (iax + ibx);<a name="line.4118"></a>
+<span class="sourceLineNo">4119</span>                                                oaf64data[it.oIndex] = ox;<a name="line.4119"></a>
+<span class="sourceLineNo">4120</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4120"></a>
+<span class="sourceLineNo">4121</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.4121"></a>
+<span class="sourceLineNo">4122</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.4122"></a>
+<span class="sourceLineNo">4123</span>                                                        ox = (iax + ibx);<a name="line.4123"></a>
+<span class="sourceLineNo">4124</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.4124"></a>
+<span class="sourceLineNo">4125</span>                                                }<a name="line.4125"></a>
+<span class="sourceLineNo">4126</span>                                        }<a name="line.4126"></a>
+<span class="sourceLineNo">4127</span>                                }<a name="line.4127"></a>
+<span class="sourceLineNo">4128</span>                        }<a name="line.4128"></a>
+<span class="sourceLineNo">4129</span>                        break;<a name="line.4129"></a>
+<span class="sourceLineNo">4130</span>                case Dataset.COMPLEX64:<a name="line.4130"></a>
+<span class="sourceLineNo">4131</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.4131"></a>
+<span class="sourceLineNo">4132</span>                        if (!da.isComplex()) {<a name="line.4132"></a>
+<span class="sourceLineNo">4133</span>                                if (it.isOutputDouble()) {<a name="line.4133"></a>
+<span class="sourceLineNo">4134</span>                                        final double iay = 0;<a name="line.4134"></a>
+<span class="sourceLineNo">4135</span>                                        if (db.isComplex()) {<a name="line.4135"></a>
+<span class="sourceLineNo">4136</span>                                                while (it.hasNext()) {<a name="line.4136"></a>
+<span class="sourceLineNo">4137</span>                                                        final double iax = it.aDouble;<a name="line.4137"></a>
+<span class="sourceLineNo">4138</span>                                                        final double ibx = it.bDouble;<a name="line.4138"></a>
+<span class="sourceLineNo">4139</span>                                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.4139"></a>
+<span class="sourceLineNo">4140</span>                                                        float ox;<a name="line.4140"></a>
+<span class="sourceLineNo">4141</span>                                                        float oy;<a name="line.4141"></a>
+<span class="sourceLineNo">4142</span>                                                        ox = (float) (iax + ibx);<a name="line.4142"></a>
+<span class="sourceLineNo">4143</span>                                                        oy = (float) (iay + iby);<a name="line.4143"></a>
+<span class="sourceLineNo">4144</span>                                                        oc64data[it.oIndex] = ox;<a name="line.4144"></a>
+<span class="sourceLineNo">4145</span>                                                        oc64data[it.oIndex + 1] = oy;<a name="line.4145"></a>
+<span class="sourceLineNo">4146</span>                                                }<a name="line.4146"></a>
+<span class="sourceLineNo">4147</span>                                        } else {<a name="line.4147"></a>
+<span class="sourceLineNo">4148</span>                                                while (it.hasNext()) {<a name="line.4148"></a>
+<span class="sourceLineNo">4149</span>                                                        final double iax = it.aDouble;<a name="line.4149"></a>
+<span class="sourceLineNo">4150</span>                                                        final double ibx = it.bDouble;<a name="line.4150"></a>
+<span class="sourceLineNo">4151</span>                                                        final double iby = 0;<a name="line.4151"></a>
+<span class="sourceLineNo">4152</span>                                                        float ox;<a name="line.4152"></a>
+<span class="sourceLineNo">4153</span>                                                        float oy;<a name="line.4153"></a>
+<span class="sourceLineNo">4154</span>                                                        ox = (float) (iax + ibx);<a name="line.4154"></a>
+<span class="sourceLineNo">4155</span>                                                        oy = (float) (iay + iby);<a name="line.4155"></a>
+<span class="sourceLineNo">4156</span>                                                        oc64data[it.oIndex] = ox;<a name="line.4156"></a>
+<span class="sourceLineNo">4157</span>                                                        oc64data[it.oIndex + 1] = oy;<a name="line.4157"></a>
+<span class="sourceLineNo">4158</span>                                                }<a name="line.4158"></a>
+<span class="sourceLineNo">4159</span>                                        }<a name="line.4159"></a>
+<span class="sourceLineNo">4160</span>                                } else {<a name="line.4160"></a>
+<span class="sourceLineNo">4161</span>                                        final long iay = 0;<a name="line.4161"></a>
+<span class="sourceLineNo">4162</span>                                        while (it.hasNext()) {<a name="line.4162"></a>
+<span class="sourceLineNo">4163</span>                                                final long iax = it.aLong;<a name="line.4163"></a>
+<span class="sourceLineNo">4164</span>                                                final long ibx = it.bLong;<a name="line.4164"></a>
+<span class="sourceLineNo">4165</span>                                                final long iby = 0;<a name="line.4165"></a>
+<span class="sourceLineNo">4166</span>                                                float ox;<a name="line.4166"></a>
+<span class="sourceLineNo">4167</span>                                                float oy;<a name="line.4167"></a>
+<span class="sourceLineNo">4168</span>                                                ox = (float) (iax + ibx);<a name="line.4168"></a>
+<span class="sourceLineNo">4169</span>                                                oy = (float) (iay + iby);<a name="line.4169"></a>
+<span class="sourceLineNo">4170</span>                                                oc64data[it.oIndex] = ox;<a name="line.4170"></a>
+<span class="sourceLineNo">4171</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.4171"></a>
+<span class="sourceLineNo">4172</span>                                        }<a name="line.4172"></a>
+<span class="sourceLineNo">4173</span>                                }<a name="line.4173"></a>
+<span class="sourceLineNo">4174</span>                        } else if (!db.isComplex()) {<a name="line.4174"></a>
+<span class="sourceLineNo">4175</span>                                final double iby = 0;<a name="line.4175"></a>
+<span class="sourceLineNo">4176</span>                                while (it.hasNext()) {<a name="line.4176"></a>
+<span class="sourceLineNo">4177</span>                                        final double iax = it.aDouble;<a name="line.4177"></a>
+<span class="sourceLineNo">4178</span>                                        final double ibx = it.bDouble;<a name="line.4178"></a>
+<span class="sourceLineNo">4179</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.4179"></a>
+<span class="sourceLineNo">4180</span>                                        float ox;<a name="line.4180"></a>
+<span class="sourceLineNo">4181</span>                                        float oy;<a name="line.4181"></a>
+<span class="sourceLineNo">4182</span>                                        ox = (float) (iax + ibx);<a name="line.4182"></a>
+<span class="sourceLineNo">4183</span>                                        oy = (float) (iay + iby);<a name="line.4183"></a>
+<span class="sourceLineNo">4184</span>                                        oc64data[it.oIndex] = ox;<a name="line.4184"></a>
+<span class="sourceLineNo">4185</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.4185"></a>
+<span class="sourceLineNo">4186</span>                                }<a name="line.4186"></a>
+<span class="sourceLineNo">4187</span>                        } else {<a name="line.4187"></a>
+<span class="sourceLineNo">4188</span>                                while (it.hasNext()) {<a name="line.4188"></a>
+<span class="sourceLineNo">4189</span>                                        final double iax = it.aDouble;<a name="line.4189"></a>
+<span class="sourceLineNo">4190</span>                                        final double ibx = it.bDouble;<a name="line.4190"></a>
+<span class="sourceLineNo">4191</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.4191"></a>
+<span class="sourceLineNo">4192</span>                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.4192"></a>
+<span class="sourceLineNo">4193</span>                                        float ox;<a name="line.4193"></a>
+<span class="sourceLineNo">4194</span>                                        float oy;<a name="line.4194"></a>
+<span class="sourceLineNo">4195</span>                                        ox = (float) (iax + ibx);<a name="line.4195"></a>
+<span class="sourceLineNo">4196</span>                                        oy = (float) (iay + iby);<a name="line.4196"></a>
+<span class="sourceLineNo">4197</span>                                        oc64data[it.oIndex] = ox;<a name="line.4197"></a>
+<span class="sourceLineNo">4198</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.4198"></a>
+<span class="sourceLineNo">4199</span>                                }<a name="line.4199"></a>
+<span class="sourceLineNo">4200</span>                        }<a name="line.4200"></a>
+<span class="sourceLineNo">4201</span>                        break;<a name="line.4201"></a>
+<span class="sourceLineNo">4202</span>                case Dataset.COMPLEX128:<a name="line.4202"></a>
+<span class="sourceLineNo">4203</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.4203"></a>
+<span class="sourceLineNo">4204</span>                        if (!da.isComplex()) {<a name="line.4204"></a>
+<span class="sourceLineNo">4205</span>                                if (it.isOutputDouble()) {<a name="line.4205"></a>
+<span class="sourceLineNo">4206</span>                                        final double iay = 0;<a name="line.4206"></a>
+<span class="sourceLineNo">4207</span>                                        if (db.isComplex()) {<a name="line.4207"></a>
+<span class="sourceLineNo">4208</span>                                                while (it.hasNext()) {<a name="line.4208"></a>
+<span class="sourceLineNo">4209</span>                                                        final double iax = it.aDouble;<a name="line.4209"></a>
+<span class="sourceLineNo">4210</span>                                                        final double ibx = it.bDouble;<a name="line.4210"></a>
+<span class="sourceLineNo">4211</span>                                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.4211"></a>
+<span class="sourceLineNo">4212</span>                                                        double ox;<a name="line.4212"></a>
+<span class="sourceLineNo">4213</span>                                                        double oy;<a name="line.4213"></a>
+<span class="sourceLineNo">4214</span>                                                        ox = (iax + ibx);<a name="line.4214"></a>
+<span class="sourceLineNo">4215</span>                                                        oy = (iay + iby);<a name="line.4215"></a>
+<span class="sourceLineNo">4216</span>                                                        oc128data[it.oIndex] = ox;<a name="line.4216"></a>
+<span class="sourceLineNo">4217</span>                                                        oc128data[it.oIndex + 1] = oy;<a name="line.4217"></a>
+<span class="sourceLineNo">4218</span>                                                }<a name="line.4218"></a>
+<span class="sourceLineNo">4219</span>                                        } else {<a name="line.4219"></a>
+<span class="sourceLineNo">4220</span>                                                while (it.hasNext()) {<a name="line.4220"></a>
+<span class="sourceLineNo">4221</span>                                                        final double iax = it.aDouble;<a name="line.4221"></a>
+<span class="sourceLineNo">4222</span>                                                        final double ibx = it.bDouble;<a name="line.4222"></a>
+<span class="sourceLineNo">4223</span>                                                        final double iby = 0;<a name="line.4223"></a>
+<span class="sourceLineNo">4224</span>                                                        double ox;<a name="line.4224"></a>
+<span class="sourceLineNo">4225</span>                                                        double oy;<a name="line.4225"></a>
+<span class="sourceLineNo">4226</span>                                                        ox = (iax + ibx);<a name="line.4226"></a>
+<span class="sourceLineNo">4227</span>                                                        oy = (iay + iby);<a name="line.4227"></a>
+<span class="sourceLineNo">4228</span>                                                        oc128data[it.oIndex] = ox;<a name="line.4228"></a>
+<span class="sourceLineNo">4229</span>                                                        oc128data[it.oIndex + 1] = oy;<a name="line.4229"></a>
+<span class="sourceLineNo">4230</span>                                                }<a name="line.4230"></a>
+<span class="sourceLineNo">4231</span>                                        }<a name="line.4231"></a>
+<span class="sourceLineNo">4232</span>                                } else {<a name="line.4232"></a>
+<span class="sourceLineNo">4233</span>                                        final long iay = 0;<a name="line.4233"></a>
+<span class="sourceLineNo">4234</span>                                        while (it.hasNext()) {<a name="line.4234"></a>
+<span class="sourceLineNo">4235</span>                                                final long iax = it.aLong;<a name="line.4235"></a>
+<span class="sourceLineNo">4236</span>                                                final long ibx = it.bLong;<a name="line.4236"></a>
+<span class="sourceLineNo">4237</span>                                                final long iby = 0;<a name="line.4237"></a>
+<span class="sourceLineNo">4238</span>                                                double ox;<a name="line.4238"></a>
+<span class="sourceLineNo">4239</span>                                                double oy;<a name="line.4239"></a>
+<span class="sourceLineNo">4240</span>                                                ox = (iax + ibx);<a name="line.4240"></a>
+<span class="sourceLineNo">4241</span>                                                oy = (iay + iby);<a name="line.4241"></a>
+<span class="sourceLineNo">4242</span>                                                oc128data[it.oIndex] = ox;<a name="line.4242"></a>
+<span class="sourceLineNo">4243</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.4243"></a>
+<span class="sourceLineNo">4244</span>                                        }<a name="line.4244"></a>
+<span class="sourceLineNo">4245</span>                                }<a name="line.4245"></a>
+<span class="sourceLineNo">4246</span>                        } else if (!db.isComplex()) {<a name="line.4246"></a>
+<span class="sourceLineNo">4247</span>                                final double iby = 0;<a name="line.4247"></a>
+<span class="sourceLineNo">4248</span>                                while (it.hasNext()) {<a name="line.4248"></a>
+<span class="sourceLineNo">4249</span>                                        final double iax = it.aDouble;<a name="line.4249"></a>
+<span class="sourceLineNo">4250</span>                                        final double ibx = it.bDouble;<a name="line.4250"></a>
+<span class="sourceLineNo">4251</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.4251"></a>
+<span class="sourceLineNo">4252</span>                                        double ox;<a name="line.4252"></a>
+<span class="sourceLineNo">4253</span>                                        double oy;<a name="line.4253"></a>
+<span class="sourceLineNo">4254</span>                                        ox = (iax + ibx);<a name="line.4254"></a>
+<span class="sourceLineNo">4255</span>                                        oy = (iay + iby);<a name="line.4255"></a>
+<span class="sourceLineNo">4256</span>                                        oc128data[it.oIndex] = ox;<a name="line.4256"></a>
+<span class="sourceLineNo">4257</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.4257"></a>
+<span class="sourceLineNo">4258</span>                                }<a name="line.4258"></a>
+<span class="sourceLineNo">4259</span>                        } else {<a name="line.4259"></a>
+<span class="sourceLineNo">4260</span>                                while (it.hasNext()) {<a name="line.4260"></a>
+<span class="sourceLineNo">4261</span>                                        final double iax = it.aDouble;<a name="line.4261"></a>
+<span class="sourceLineNo">4262</span>                                        final double ibx = it.bDouble;<a name="line.4262"></a>
+<span class="sourceLineNo">4263</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.4263"></a>
+<span class="sourceLineNo">4264</span>                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.4264"></a>
+<span class="sourceLineNo">4265</span>                                        double ox;<a name="line.4265"></a>
+<span class="sourceLineNo">4266</span>                                        double oy;<a name="line.4266"></a>
+<span class="sourceLineNo">4267</span>                                        ox = (iax + ibx);<a name="line.4267"></a>
+<span class="sourceLineNo">4268</span>                                        oy = (iay + iby);<a name="line.4268"></a>
+<span class="sourceLineNo">4269</span>                                        oc128data[it.oIndex] = ox;<a name="line.4269"></a>
+<span class="sourceLineNo">4270</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.4270"></a>
+<span class="sourceLineNo">4271</span>                                }<a name="line.4271"></a>
+<span class="sourceLineNo">4272</span>                        }<a name="line.4272"></a>
+<span class="sourceLineNo">4273</span>                        break;<a name="line.4273"></a>
+<span class="sourceLineNo">4274</span>                default:<a name="line.4274"></a>
+<span class="sourceLineNo">4275</span>                        throw new IllegalArgumentException("add supports integer, compound integer, real, compound real, complex datasets only");<a name="line.4275"></a>
+<span class="sourceLineNo">4276</span>                }<a name="line.4276"></a>
+<span class="sourceLineNo">4277</span><a name="line.4277"></a>
+<span class="sourceLineNo">4278</span>                addBinaryOperatorName(da, db, result, "+");<a name="line.4278"></a>
+<span class="sourceLineNo">4279</span>                return result;<a name="line.4279"></a>
+<span class="sourceLineNo">4280</span>        }<a name="line.4280"></a>
+<span class="sourceLineNo">4281</span><a name="line.4281"></a>
+<span class="sourceLineNo">4282</span>        /**<a name="line.4282"></a>
+<span class="sourceLineNo">4283</span>         * subtract operator<a name="line.4283"></a>
+<span class="sourceLineNo">4284</span>         * @param a<a name="line.4284"></a>
+<span class="sourceLineNo">4285</span>         * @param b<a name="line.4285"></a>
+<span class="sourceLineNo">4286</span>         * @return {@code a - b}, subtraction of a by b<a name="line.4286"></a>
+<span class="sourceLineNo">4287</span>         */<a name="line.4287"></a>
+<span class="sourceLineNo">4288</span>        public static Dataset subtract(final Object a, final Object b) {<a name="line.4288"></a>
+<span class="sourceLineNo">4289</span>                return subtract(a, b, null);<a name="line.4289"></a>
+<span class="sourceLineNo">4290</span>        }<a name="line.4290"></a>
+<span class="sourceLineNo">4291</span><a name="line.4291"></a>
+<span class="sourceLineNo">4292</span>        /**<a name="line.4292"></a>
+<span class="sourceLineNo">4293</span>         * subtract operator<a name="line.4293"></a>
+<span class="sourceLineNo">4294</span>         * @param a<a name="line.4294"></a>
+<span class="sourceLineNo">4295</span>         * @param b<a name="line.4295"></a>
+<span class="sourceLineNo">4296</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.4296"></a>
+<span class="sourceLineNo">4297</span>         * @return {@code a - b}, subtraction of a by b<a name="line.4297"></a>
+<span class="sourceLineNo">4298</span>         */<a name="line.4298"></a>
+<span class="sourceLineNo">4299</span>        public static Dataset subtract(final Object a, final Object b, final Dataset o) {<a name="line.4299"></a>
+<span class="sourceLineNo">4300</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.4300"></a>
+<span class="sourceLineNo">4301</span>                Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.4301"></a>
+<span class="sourceLineNo">4302</span>                BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.4302"></a>
+<span class="sourceLineNo">4303</span>                final Dataset result = it.getOutput();<a name="line.4303"></a>
+<span class="sourceLineNo">4304</span>                if (!result.isComplex()) {<a name="line.4304"></a>
+<span class="sourceLineNo">4305</span>                        boolean change = false;<a name="line.4305"></a>
+<span class="sourceLineNo">4306</span>                        if (da.isComplex()) {<a name="line.4306"></a>
+<span class="sourceLineNo">4307</span>                                da = da.getRealView();<a name="line.4307"></a>
+<span class="sourceLineNo">4308</span>                                change = true;<a name="line.4308"></a>
+<span class="sourceLineNo">4309</span>                        }<a name="line.4309"></a>
+<span class="sourceLineNo">4310</span>                        if (db.isComplex()) {<a name="line.4310"></a>
+<span class="sourceLineNo">4311</span>                                db = db.getRealView();<a name="line.4311"></a>
+<span class="sourceLineNo">4312</span>                                change = true;<a name="line.4312"></a>
+<span class="sourceLineNo">4313</span>                        }<a name="line.4313"></a>
+<span class="sourceLineNo">4314</span>                        if (change) {<a name="line.4314"></a>
+<span class="sourceLineNo">4315</span>                                it = BroadcastIterator.createIterator(da, db, result, true);<a name="line.4315"></a>
+<span class="sourceLineNo">4316</span>                        }<a name="line.4316"></a>
+<span class="sourceLineNo">4317</span>                }<a name="line.4317"></a>
+<span class="sourceLineNo">4318</span>                final int is = result.getElementsPerItem();<a name="line.4318"></a>
+<span class="sourceLineNo">4319</span>                final int as = da.getElementsPerItem();<a name="line.4319"></a>
+<span class="sourceLineNo">4320</span>                final int bs = db.getElementsPerItem();<a name="line.4320"></a>
+<span class="sourceLineNo">4321</span>                final int dt = result.getDType();<a name="line.4321"></a>
+<span class="sourceLineNo">4322</span><a name="line.4322"></a>
+<span class="sourceLineNo">4323</span>                switch(dt) {<a name="line.4323"></a>
+<span class="sourceLineNo">4324</span>                case Dataset.INT8:<a name="line.4324"></a>
+<span class="sourceLineNo">4325</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.4325"></a>
+<span class="sourceLineNo">4326</span>                        if (it.isOutputDouble()) {<a name="line.4326"></a>
+<span class="sourceLineNo">4327</span>                                while (it.hasNext()) {<a name="line.4327"></a>
+<span class="sourceLineNo">4328</span>                                        final double iax = it.aDouble;<a name="line.4328"></a>
+<span class="sourceLineNo">4329</span>                                        final double ibx = it.bDouble;<a name="line.4329"></a>
+<span class="sourceLineNo">4330</span>                                        byte ox;<a name="line.4330"></a>
+<span class="sourceLineNo">4331</span>                                        ox = (byte) toLong(iax - ibx);<a name="line.4331"></a>
+<span class="sourceLineNo">4332</span>                                        oi8data[it.oIndex] = ox;<a name="line.4332"></a>
+<span class="sourceLineNo">4333</span>                                }<a name="line.4333"></a>
+<span class="sourceLineNo">4334</span>                        } else {<a name="line.4334"></a>
+<span class="sourceLineNo">4335</span>                                while (it.hasNext()) {<a name="line.4335"></a>
+<span class="sourceLineNo">4336</span>                                        final long iax = it.aLong;<a name="line.4336"></a>
+<span class="sourceLineNo">4337</span>                                        final long ibx = it.bLong;<a name="line.4337"></a>
+<span class="sourceLineNo">4338</span>                                        byte ox;<a name="line.4338"></a>
+<span class="sourceLineNo">4339</span>                                        ox = (byte) (iax - ibx);<a name="line.4339"></a>
+<span class="sourceLineNo">4340</span>                                        oi8data[it.oIndex] = ox;<a name="line.4340"></a>
+<span class="sourceLineNo">4341</span>                                }<a name="line.4341"></a>
+<span class="sourceLineNo">4342</span>                        }<a name="line.4342"></a>
+<span class="sourceLineNo">4343</span>                        break;<a name="line.4343"></a>
+<span class="sourceLineNo">4344</span>                case Dataset.INT16:<a name="line.4344"></a>
+<span class="sourceLineNo">4345</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.4345"></a>
+<span class="sourceLineNo">4346</span>                        if (it.isOutputDouble()) {<a name="line.4346"></a>
+<span class="sourceLineNo">4347</span>                                while (it.hasNext()) {<a name="line.4347"></a>
+<span class="sourceLineNo">4348</span>                                        final double iax = it.aDouble;<a name="line.4348"></a>
+<span class="sourceLineNo">4349</span>                                        final double ibx = it.bDouble;<a name="line.4349"></a>
+<span class="sourceLineNo">4350</span>                                        short ox;<a name="line.4350"></a>
+<span class="sourceLineNo">4351</span>                                        ox = (short) toLong(iax - ibx);<a name="line.4351"></a>
+<span class="sourceLineNo">4352</span>                                        oi16data[it.oIndex] = ox;<a name="line.4352"></a>
+<span class="sourceLineNo">4353</span>                                }<a name="line.4353"></a>
+<span class="sourceLineNo">4354</span>                        } else {<a name="line.4354"></a>
+<span class="sourceLineNo">4355</span>                                while (it.hasNext()) {<a name="line.4355"></a>
+<span class="sourceLineNo">4356</span>                                        final long iax = it.aLong;<a name="line.4356"></a>
+<span class="sourceLineNo">4357</span>                                        final long ibx = it.bLong;<a name="line.4357"></a>
+<span class="sourceLineNo">4358</span>                                        short ox;<a name="line.4358"></a>
+<span class="sourceLineNo">4359</span>                                        ox = (short) (iax - ibx);<a name="line.4359"></a>
+<span class="sourceLineNo">4360</span>                                        oi16data[it.oIndex] = ox;<a name="line.4360"></a>
+<span class="sourceLineNo">4361</span>                                }<a name="line.4361"></a>
+<span class="sourceLineNo">4362</span>                        }<a name="line.4362"></a>
+<span class="sourceLineNo">4363</span>                        break;<a name="line.4363"></a>
+<span class="sourceLineNo">4364</span>                case Dataset.INT64:<a name="line.4364"></a>
+<span class="sourceLineNo">4365</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.4365"></a>
+<span class="sourceLineNo">4366</span>                        if (it.isOutputDouble()) {<a name="line.4366"></a>
+<span class="sourceLineNo">4367</span>                                while (it.hasNext()) {<a name="line.4367"></a>
+<span class="sourceLineNo">4368</span>                                        final double iax = it.aDouble;<a name="line.4368"></a>
+<span class="sourceLineNo">4369</span>                                        final double ibx = it.bDouble;<a name="line.4369"></a>
+<span class="sourceLineNo">4370</span>                                        long ox;<a name="line.4370"></a>
+<span class="sourceLineNo">4371</span>                                        ox = toLong(iax - ibx);<a name="line.4371"></a>
+<span class="sourceLineNo">4372</span>                                        oi64data[it.oIndex] = ox;<a name="line.4372"></a>
+<span class="sourceLineNo">4373</span>                                }<a name="line.4373"></a>
+<span class="sourceLineNo">4374</span>                        } else {<a name="line.4374"></a>
+<span class="sourceLineNo">4375</span>                                while (it.hasNext()) {<a name="line.4375"></a>
+<span class="sourceLineNo">4376</span>                                        final long iax = it.aLong;<a name="line.4376"></a>
+<span class="sourceLineNo">4377</span>                                        final long ibx = it.bLong;<a name="line.4377"></a>
+<span class="sourceLineNo">4378</span>                                        long ox;<a name="line.4378"></a>
+<span class="sourceLineNo">4379</span>                                        ox = (iax - ibx);<a name="line.4379"></a>
+<span class="sourceLineNo">4380</span>                                        oi64data[it.oIndex] = ox;<a name="line.4380"></a>
+<span class="sourceLineNo">4381</span>                                }<a name="line.4381"></a>
+<span class="sourceLineNo">4382</span>                        }<a name="line.4382"></a>
+<span class="sourceLineNo">4383</span>                        break;<a name="line.4383"></a>
+<span class="sourceLineNo">4384</span>                case Dataset.INT32:<a name="line.4384"></a>
+<span class="sourceLineNo">4385</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.4385"></a>
+<span class="sourceLineNo">4386</span>                        if (it.isOutputDouble()) {<a name="line.4386"></a>
+<span class="sourceLineNo">4387</span>                                while (it.hasNext()) {<a name="line.4387"></a>
+<span class="sourceLineNo">4388</span>                                        final double iax = it.aDouble;<a name="line.4388"></a>
+<span class="sourceLineNo">4389</span>                                        final double ibx = it.bDouble;<a name="line.4389"></a>
+<span class="sourceLineNo">4390</span>                                        int ox;<a name="line.4390"></a>
+<span class="sourceLineNo">4391</span>                                        ox = (int) toLong(iax - ibx);<a name="line.4391"></a>
+<span class="sourceLineNo">4392</span>                                        oi32data[it.oIndex] = ox;<a name="line.4392"></a>
+<span class="sourceLineNo">4393</span>                                }<a name="line.4393"></a>
+<span class="sourceLineNo">4394</span>                        } else {<a name="line.4394"></a>
+<span class="sourceLineNo">4395</span>                                while (it.hasNext()) {<a name="line.4395"></a>
+<span class="sourceLineNo">4396</span>                                        final long iax = it.aLong;<a name="line.4396"></a>
+<span class="sourceLineNo">4397</span>                                        final long ibx = it.bLong;<a name="line.4397"></a>
+<span class="sourceLineNo">4398</span>                                        int ox;<a name="line.4398"></a>
+<span class="sourceLineNo">4399</span>                                        ox = (int) (iax - ibx);<a name="line.4399"></a>
+<span class="sourceLineNo">4400</span>                                        oi32data[it.oIndex] = ox;<a name="line.4400"></a>
+<span class="sourceLineNo">4401</span>                                }<a name="line.4401"></a>
+<span class="sourceLineNo">4402</span>                        }<a name="line.4402"></a>
+<span class="sourceLineNo">4403</span>                        break;<a name="line.4403"></a>
+<span class="sourceLineNo">4404</span>                case Dataset.ARRAYINT8:<a name="line.4404"></a>
+<span class="sourceLineNo">4405</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.4405"></a>
+<span class="sourceLineNo">4406</span>                        if (is == 1) {<a name="line.4406"></a>
+<span class="sourceLineNo">4407</span>                                if (it.isOutputDouble()) {<a name="line.4407"></a>
+<span class="sourceLineNo">4408</span>                                        while (it.hasNext()) {<a name="line.4408"></a>
+<span class="sourceLineNo">4409</span>                                                final double iax = it.aDouble;<a name="line.4409"></a>
+<span class="sourceLineNo">4410</span>                                                final double ibx = it.bDouble;<a name="line.4410"></a>
+<span class="sourceLineNo">4411</span>                                                byte ox;<a name="line.4411"></a>
+<span class="sourceLineNo">4412</span>                                                ox = (byte) toLong(iax - ibx);<a name="line.4412"></a>
+<span class="sourceLineNo">4413</span>                                                oai8data[it.oIndex] = ox;<a name="line.4413"></a>
+<span class="sourceLineNo">4414</span>                                        }<a name="line.4414"></a>
+<span class="sourceLineNo">4415</span>                                } else {<a name="line.4415"></a>
+<span class="sourceLineNo">4416</span>                                        while (it.hasNext()) {<a name="line.4416"></a>
+<span class="sourceLineNo">4417</span>                                                final long iax = it.aLong;<a name="line.4417"></a>
+<span class="sourceLineNo">4418</span>                                                final long ibx = it.bLong;<a name="line.4418"></a>
+<span class="sourceLineNo">4419</span>                                                byte ox;<a name="line.4419"></a>
+<span class="sourceLineNo">4420</span>                                                ox = (byte) (iax - ibx);<a name="line.4420"></a>
+<span class="sourceLineNo">4421</span>                                                oai8data[it.oIndex] = ox;<a name="line.4421"></a>
+<span class="sourceLineNo">4422</span>                                        }<a name="line.4422"></a>
+<span class="sourceLineNo">4423</span>                                }<a name="line.4423"></a>
+<span class="sourceLineNo">4424</span>                        } else if (as &lt; bs) {<a name="line.4424"></a>
+<span class="sourceLineNo">4425</span>                                if (it.isOutputDouble()) {<a name="line.4425"></a>
+<span class="sourceLineNo">4426</span>                                        while (it.hasNext()) {<a name="line.4426"></a>
+<span class="sourceLineNo">4427</span>                                                final double iax = it.aDouble;<a name="line.4427"></a>
+<span class="sourceLineNo">4428</span>                                                double ibx = it.bDouble;<a name="line.4428"></a>
+<span class="sourceLineNo">4429</span>                                                byte ox;<a name="line.4429"></a>
+<span class="sourceLineNo">4430</span>                                                ox = (byte) toLong(iax - ibx);<a name="line.4430"></a>
+<span class="sourceLineNo">4431</span>                                                oai8data[it.oIndex] = ox;<a name="line.4431"></a>
+<span class="sourceLineNo">4432</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4432"></a>
+<span class="sourceLineNo">4433</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.4433"></a>
+<span class="sourceLineNo">4434</span>                                                        ox = (byte) toLong(iax - ibx);<a name="line.4434"></a>
+<span class="sourceLineNo">4435</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.4435"></a>
+<span class="sourceLineNo">4436</span>                                                }<a name="line.4436"></a>
+<span class="sourceLineNo">4437</span>                                        }<a name="line.4437"></a>
+<span class="sourceLineNo">4438</span>                                } else {<a name="line.4438"></a>
+<span class="sourceLineNo">4439</span>                                        while (it.hasNext()) {<a name="line.4439"></a>
+<span class="sourceLineNo">4440</span>                                                final long iax = it.aLong;<a name="line.4440"></a>
+<span class="sourceLineNo">4441</span>                                                long ibx = it.bLong;<a name="line.4441"></a>
+<span class="sourceLineNo">4442</span>                                                byte ox;<a name="line.4442"></a>
+<span class="sourceLineNo">4443</span>                                                ox = (byte) (iax - ibx);<a name="line.4443"></a>
+<span class="sourceLineNo">4444</span>                                                oai8data[it.oIndex] = ox;<a name="line.4444"></a>
+<span class="sourceLineNo">4445</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4445"></a>
+<span class="sourceLineNo">4446</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.4446"></a>
+<span class="sourceLineNo">4447</span>                                                        ox = (byte) (iax - ibx);<a name="line.4447"></a>
+<span class="sourceLineNo">4448</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.4448"></a>
+<span class="sourceLineNo">4449</span>                                                }<a name="line.4449"></a>
+<span class="sourceLineNo">4450</span>                                        }<a name="line.4450"></a>
+<span class="sourceLineNo">4451</span>                                }<a name="line.4451"></a>
+<span class="sourceLineNo">4452</span>                        } else if (as &gt; bs) {<a name="line.4452"></a>
+<span class="sourceLineNo">4453</span>                                if (it.isOutputDouble()) {<a name="line.4453"></a>
+<span class="sourceLineNo">4454</span>                                        while (it.hasNext()) {<a name="line.4454"></a>
+<span class="sourceLineNo">4455</span>                                                double iax = it.aDouble;<a name="line.4455"></a>
+<span class="sourceLineNo">4456</span>                                                final double ibx = it.bDouble;<a name="line.4456"></a>
+<span class="sourceLineNo">4457</span>                                                byte ox;<a name="line.4457"></a>
+<span class="sourceLineNo">4458</span>                                                ox = (byte) toLong(iax - ibx);<a name="line.4458"></a>
+<span class="sourceLineNo">4459</span>                                                oai8data[it.oIndex] = ox;<a name="line.4459"></a>
+<span class="sourceLineNo">4460</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4460"></a>
+<span class="sourceLineNo">4461</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.4461"></a>
+<span class="sourceLineNo">4462</span>                                                        ox = (byte) toLong(iax - ibx);<a name="line.4462"></a>
+<span class="sourceLineNo">4463</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.4463"></a>
+<span class="sourceLineNo">4464</span>                                                }<a name="line.4464"></a>
+<span class="sourceLineNo">4465</span>                                        }<a name="line.4465"></a>
+<span class="sourceLineNo">4466</span>                                } else {<a name="line.4466"></a>
+<span class="sourceLineNo">4467</span>                                        while (it.hasNext()) {<a name="line.4467"></a>
+<span class="sourceLineNo">4468</span>                                                long iax = it.aLong;<a name="line.4468"></a>
+<span class="sourceLineNo">4469</span>                                                final long ibx = it.bLong;<a name="line.4469"></a>
+<span class="sourceLineNo">4470</span>                                                byte ox;<a name="line.4470"></a>
+<span class="sourceLineNo">4471</span>                                                ox = (byte) (iax - ibx);<a name="line.4471"></a>
+<span class="sourceLineNo">4472</span>                                                oai8data[it.oIndex] = ox;<a name="line.4472"></a>
+<span class="sourceLineNo">4473</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4473"></a>
+<span class="sourceLineNo">4474</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.4474"></a>
+<span class="sourceLineNo">4475</span>                                                        ox = (byte) (iax - ibx);<a name="line.4475"></a>
+<span class="sourceLineNo">4476</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.4476"></a>
+<span class="sourceLineNo">4477</span>                                                }<a name="line.4477"></a>
+<span class="sourceLineNo">4478</span>                                        }<a name="line.4478"></a>
+<span class="sourceLineNo">4479</span>                                }<a name="line.4479"></a>
+<span class="sourceLineNo">4480</span>                        } else if (as == 1) {<a name="line.4480"></a>
+<span class="sourceLineNo">4481</span>                                if (it.isOutputDouble()) {<a name="line.4481"></a>
+<span class="sourceLineNo">4482</span>                                        while (it.hasNext()) {<a name="line.4482"></a>
+<span class="sourceLineNo">4483</span>                                                final double iax = it.aDouble;<a name="line.4483"></a>
+<span class="sourceLineNo">4484</span>                                                final double ibx = it.bDouble;<a name="line.4484"></a>
+<span class="sourceLineNo">4485</span>                                                byte ox;<a name="line.4485"></a>
+<span class="sourceLineNo">4486</span>                                                ox = (byte) toLong(iax - ibx);<a name="line.4486"></a>
+<span class="sourceLineNo">4487</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.4487"></a>
+<span class="sourceLineNo">4488</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.4488"></a>
+<span class="sourceLineNo">4489</span>                                                }<a name="line.4489"></a>
+<span class="sourceLineNo">4490</span>                                        }<a name="line.4490"></a>
+<span class="sourceLineNo">4491</span>                                } else {<a name="line.4491"></a>
+<span class="sourceLineNo">4492</span>                                        while (it.hasNext()) {<a name="line.4492"></a>
+<span class="sourceLineNo">4493</span>                                                final long iax = it.aLong;<a name="line.4493"></a>
+<span class="sourceLineNo">4494</span>                                                final long ibx = it.bLong;<a name="line.4494"></a>
+<span class="sourceLineNo">4495</span>                                                byte ox;<a name="line.4495"></a>
+<span class="sourceLineNo">4496</span>                                                ox = (byte) (iax - ibx);<a name="line.4496"></a>
+<span class="sourceLineNo">4497</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.4497"></a>
+<span class="sourceLineNo">4498</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.4498"></a>
+<span class="sourceLineNo">4499</span>                                                }<a name="line.4499"></a>
+<span class="sourceLineNo">4500</span>                                        }<a name="line.4500"></a>
+<span class="sourceLineNo">4501</span>                                }<a name="line.4501"></a>
+<span class="sourceLineNo">4502</span>                        } else {<a name="line.4502"></a>
+<span class="sourceLineNo">4503</span>                                if (it.isOutputDouble()) {<a name="line.4503"></a>
+<span class="sourceLineNo">4504</span>                                        while (it.hasNext()) {<a name="line.4504"></a>
+<span class="sourceLineNo">4505</span>                                                double iax = it.aDouble;<a name="line.4505"></a>
+<span class="sourceLineNo">4506</span>                                                double ibx = it.bDouble;<a name="line.4506"></a>
+<span class="sourceLineNo">4507</span>                                                byte ox;<a name="line.4507"></a>
+<span class="sourceLineNo">4508</span>                                                ox = (byte) toLong(iax - ibx);<a name="line.4508"></a>
+<span class="sourceLineNo">4509</span>                                                oai8data[it.oIndex] = ox;<a name="line.4509"></a>
+<span class="sourceLineNo">4510</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4510"></a>
+<span class="sourceLineNo">4511</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.4511"></a>
+<span class="sourceLineNo">4512</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.4512"></a>
+<span class="sourceLineNo">4513</span>                                                        ox = (byte) toLong(iax - ibx);<a name="line.4513"></a>
+<span class="sourceLineNo">4514</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.4514"></a>
+<span class="sourceLineNo">4515</span>                                                }<a name="line.4515"></a>
+<span class="sourceLineNo">4516</span>                                        }<a name="line.4516"></a>
+<span class="sourceLineNo">4517</span>                                } else {<a name="line.4517"></a>
+<span class="sourceLineNo">4518</span>                                        while (it.hasNext()) {<a name="line.4518"></a>
+<span class="sourceLineNo">4519</span>                                                long iax = it.aLong;<a name="line.4519"></a>
+<span class="sourceLineNo">4520</span>                                                long ibx = it.bLong;<a name="line.4520"></a>
+<span class="sourceLineNo">4521</span>                                                byte ox;<a name="line.4521"></a>
+<span class="sourceLineNo">4522</span>                                                ox = (byte) (iax - ibx);<a name="line.4522"></a>
+<span class="sourceLineNo">4523</span>                                                oai8data[it.oIndex] = ox;<a name="line.4523"></a>
+<span class="sourceLineNo">4524</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4524"></a>
+<span class="sourceLineNo">4525</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.4525"></a>
+<span class="sourceLineNo">4526</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.4526"></a>
+<span class="sourceLineNo">4527</span>                                                        ox = (byte) (iax - ibx);<a name="line.4527"></a>
+<span class="sourceLineNo">4528</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.4528"></a>
+<span class="sourceLineNo">4529</span>                                                }<a name="line.4529"></a>
+<span class="sourceLineNo">4530</span>                                        }<a name="line.4530"></a>
+<span class="sourceLineNo">4531</span>                                }<a name="line.4531"></a>
+<span class="sourceLineNo">4532</span>                        }<a name="line.4532"></a>
+<span class="sourceLineNo">4533</span>                        break;<a name="line.4533"></a>
+<span class="sourceLineNo">4534</span>                case Dataset.ARRAYINT16:<a name="line.4534"></a>
+<span class="sourceLineNo">4535</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.4535"></a>
+<span class="sourceLineNo">4536</span>                        if (is == 1) {<a name="line.4536"></a>
+<span class="sourceLineNo">4537</span>                                if (it.isOutputDouble()) {<a name="line.4537"></a>
+<span class="sourceLineNo">4538</span>                                        while (it.hasNext()) {<a name="line.4538"></a>
+<span class="sourceLineNo">4539</span>                                                final double iax = it.aDouble;<a name="line.4539"></a>
+<span class="sourceLineNo">4540</span>                                                final double ibx = it.bDouble;<a name="line.4540"></a>
+<span class="sourceLineNo">4541</span>                                                short ox;<a name="line.4541"></a>
+<span class="sourceLineNo">4542</span>                                                ox = (short) toLong(iax - ibx);<a name="line.4542"></a>
+<span class="sourceLineNo">4543</span>                                                oai16data[it.oIndex] = ox;<a name="line.4543"></a>
+<span class="sourceLineNo">4544</span>                                        }<a name="line.4544"></a>
+<span class="sourceLineNo">4545</span>                                } else {<a name="line.4545"></a>
+<span class="sourceLineNo">4546</span>                                        while (it.hasNext()) {<a name="line.4546"></a>
+<span class="sourceLineNo">4547</span>                                                final long iax = it.aLong;<a name="line.4547"></a>
+<span class="sourceLineNo">4548</span>                                                final long ibx = it.bLong;<a name="line.4548"></a>
+<span class="sourceLineNo">4549</span>                                                short ox;<a name="line.4549"></a>
+<span class="sourceLineNo">4550</span>                                                ox = (short) (iax - ibx);<a name="line.4550"></a>
+<span class="sourceLineNo">4551</span>                                                oai16data[it.oIndex] = ox;<a name="line.4551"></a>
+<span class="sourceLineNo">4552</span>                                        }<a name="line.4552"></a>
+<span class="sourceLineNo">4553</span>                                }<a name="line.4553"></a>
+<span class="sourceLineNo">4554</span>                        } else if (as &lt; bs) {<a name="line.4554"></a>
+<span class="sourceLineNo">4555</span>                                if (it.isOutputDouble()) {<a name="line.4555"></a>
+<span class="sourceLineNo">4556</span>                                        while (it.hasNext()) {<a name="line.4556"></a>
+<span class="sourceLineNo">4557</span>                                                final double iax = it.aDouble;<a name="line.4557"></a>
+<span class="sourceLineNo">4558</span>                                                double ibx = it.bDouble;<a name="line.4558"></a>
+<span class="sourceLineNo">4559</span>                                                short ox;<a name="line.4559"></a>
+<span class="sourceLineNo">4560</span>                                                ox = (short) toLong(iax - ibx);<a name="line.4560"></a>
+<span class="sourceLineNo">4561</span>                                                oai16data[it.oIndex] = ox;<a name="line.4561"></a>
+<span class="sourceLineNo">4562</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4562"></a>
+<span class="sourceLineNo">4563</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.4563"></a>
+<span class="sourceLineNo">4564</span>                                                        ox = (short) toLong(iax - ibx);<a name="line.4564"></a>
+<span class="sourceLineNo">4565</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.4565"></a>
+<span class="sourceLineNo">4566</span>                                                }<a name="line.4566"></a>
+<span class="sourceLineNo">4567</span>                                        }<a name="line.4567"></a>
+<span class="sourceLineNo">4568</span>                                } else {<a name="line.4568"></a>
+<span class="sourceLineNo">4569</span>                                        while (it.hasNext()) {<a name="line.4569"></a>
+<span class="sourceLineNo">4570</span>                                                final long iax = it.aLong;<a name="line.4570"></a>
+<span class="sourceLineNo">4571</span>                                                long ibx = it.bLong;<a name="line.4571"></a>
+<span class="sourceLineNo">4572</span>                                                short ox;<a name="line.4572"></a>
+<span class="sourceLineNo">4573</span>                                                ox = (short) (iax - ibx);<a name="line.4573"></a>
+<span class="sourceLineNo">4574</span>                                                oai16data[it.oIndex] = ox;<a name="line.4574"></a>
+<span class="sourceLineNo">4575</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4575"></a>
+<span class="sourceLineNo">4576</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.4576"></a>
+<span class="sourceLineNo">4577</span>                                                        ox = (short) (iax - ibx);<a name="line.4577"></a>
+<span class="sourceLineNo">4578</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.4578"></a>
+<span class="sourceLineNo">4579</span>                                                }<a name="line.4579"></a>
+<span class="sourceLineNo">4580</span>                                        }<a name="line.4580"></a>
+<span class="sourceLineNo">4581</span>                                }<a name="line.4581"></a>
+<span class="sourceLineNo">4582</span>                        } else if (as &gt; bs) {<a name="line.4582"></a>
+<span class="sourceLineNo">4583</span>                                if (it.isOutputDouble()) {<a name="line.4583"></a>
+<span class="sourceLineNo">4584</span>                                        while (it.hasNext()) {<a name="line.4584"></a>
+<span class="sourceLineNo">4585</span>                                                double iax = it.aDouble;<a name="line.4585"></a>
+<span class="sourceLineNo">4586</span>                                                final double ibx = it.bDouble;<a name="line.4586"></a>
+<span class="sourceLineNo">4587</span>                                                short ox;<a name="line.4587"></a>
+<span class="sourceLineNo">4588</span>                                                ox = (short) toLong(iax - ibx);<a name="line.4588"></a>
+<span class="sourceLineNo">4589</span>                                                oai16data[it.oIndex] = ox;<a name="line.4589"></a>
+<span class="sourceLineNo">4590</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4590"></a>
+<span class="sourceLineNo">4591</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.4591"></a>
+<span class="sourceLineNo">4592</span>                                                        ox = (short) toLong(iax - ibx);<a name="line.4592"></a>
+<span class="sourceLineNo">4593</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.4593"></a>
+<span class="sourceLineNo">4594</span>                                                }<a name="line.4594"></a>
+<span class="sourceLineNo">4595</span>                                        }<a name="line.4595"></a>
+<span class="sourceLineNo">4596</span>                                } else {<a name="line.4596"></a>
+<span class="sourceLineNo">4597</span>                                        while (it.hasNext()) {<a name="line.4597"></a>
+<span class="sourceLineNo">4598</span>                                                long iax = it.aLong;<a name="line.4598"></a>
+<span class="sourceLineNo">4599</span>                                                final long ibx = it.bLong;<a name="line.4599"></a>
+<span class="sourceLineNo">4600</span>                                                short ox;<a name="line.4600"></a>
+<span class="sourceLineNo">4601</span>                                                ox = (short) (iax - ibx);<a name="line.4601"></a>
+<span class="sourceLineNo">4602</span>                                                oai16data[it.oIndex] = ox;<a name="line.4602"></a>
+<span class="sourceLineNo">4603</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4603"></a>
+<span class="sourceLineNo">4604</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.4604"></a>
+<span class="sourceLineNo">4605</span>                                                        ox = (short) (iax - ibx);<a name="line.4605"></a>
+<span class="sourceLineNo">4606</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.4606"></a>
+<span class="sourceLineNo">4607</span>                                                }<a name="line.4607"></a>
+<span class="sourceLineNo">4608</span>                                        }<a name="line.4608"></a>
+<span class="sourceLineNo">4609</span>                                }<a name="line.4609"></a>
+<span class="sourceLineNo">4610</span>                        } else if (as == 1) {<a name="line.4610"></a>
+<span class="sourceLineNo">4611</span>                                if (it.isOutputDouble()) {<a name="line.4611"></a>
+<span class="sourceLineNo">4612</span>                                        while (it.hasNext()) {<a name="line.4612"></a>
+<span class="sourceLineNo">4613</span>                                                final double iax = it.aDouble;<a name="line.4613"></a>
+<span class="sourceLineNo">4614</span>                                                final double ibx = it.bDouble;<a name="line.4614"></a>
+<span class="sourceLineNo">4615</span>                                                short ox;<a name="line.4615"></a>
+<span class="sourceLineNo">4616</span>                                                ox = (short) toLong(iax - ibx);<a name="line.4616"></a>
+<span class="sourceLineNo">4617</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.4617"></a>
+<span class="sourceLineNo">4618</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.4618"></a>
+<span class="sourceLineNo">4619</span>                                                }<a name="line.4619"></a>
+<span class="sourceLineNo">4620</span>                                        }<a name="line.4620"></a>
+<span class="sourceLineNo">4621</span>                                } else {<a name="line.4621"></a>
+<span class="sourceLineNo">4622</span>                                        while (it.hasNext()) {<a name="line.4622"></a>
+<span class="sourceLineNo">4623</span>                                                final long iax = it.aLong;<a name="line.4623"></a>
+<span class="sourceLineNo">4624</span>                                                final long ibx = it.bLong;<a name="line.4624"></a>
+<span class="sourceLineNo">4625</span>                                                short ox;<a name="line.4625"></a>
+<span class="sourceLineNo">4626</span>                                                ox = (short) (iax - ibx);<a name="line.4626"></a>
+<span class="sourceLineNo">4627</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.4627"></a>
+<span class="sourceLineNo">4628</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.4628"></a>
+<span class="sourceLineNo">4629</span>                                                }<a name="line.4629"></a>
+<span class="sourceLineNo">4630</span>                                        }<a name="line.4630"></a>
+<span class="sourceLineNo">4631</span>                                }<a name="line.4631"></a>
+<span class="sourceLineNo">4632</span>                        } else {<a name="line.4632"></a>
+<span class="sourceLineNo">4633</span>                                if (it.isOutputDouble()) {<a name="line.4633"></a>
+<span class="sourceLineNo">4634</span>                                        while (it.hasNext()) {<a name="line.4634"></a>
+<span class="sourceLineNo">4635</span>                                                double iax = it.aDouble;<a name="line.4635"></a>
+<span class="sourceLineNo">4636</span>                                                double ibx = it.bDouble;<a name="line.4636"></a>
+<span class="sourceLineNo">4637</span>                                                short ox;<a name="line.4637"></a>
+<span class="sourceLineNo">4638</span>                                                ox = (short) toLong(iax - ibx);<a name="line.4638"></a>
+<span class="sourceLineNo">4639</span>                                                oai16data[it.oIndex] = ox;<a name="line.4639"></a>
+<span class="sourceLineNo">4640</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4640"></a>
+<span class="sourceLineNo">4641</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.4641"></a>
+<span class="sourceLineNo">4642</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.4642"></a>
+<span class="sourceLineNo">4643</span>                                                        ox = (short) toLong(iax - ibx);<a name="line.4643"></a>
+<span class="sourceLineNo">4644</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.4644"></a>
+<span class="sourceLineNo">4645</span>                                                }<a name="line.4645"></a>
+<span class="sourceLineNo">4646</span>                                        }<a name="line.4646"></a>
+<span class="sourceLineNo">4647</span>                                } else {<a name="line.4647"></a>
+<span class="sourceLineNo">4648</span>                                        while (it.hasNext()) {<a name="line.4648"></a>
+<span class="sourceLineNo">4649</span>                                                long iax = it.aLong;<a name="line.4649"></a>
+<span class="sourceLineNo">4650</span>                                                long ibx = it.bLong;<a name="line.4650"></a>
+<span class="sourceLineNo">4651</span>                                                short ox;<a name="line.4651"></a>
+<span class="sourceLineNo">4652</span>                                                ox = (short) (iax - ibx);<a name="line.4652"></a>
+<span class="sourceLineNo">4653</span>                                                oai16data[it.oIndex] = ox;<a name="line.4653"></a>
+<span class="sourceLineNo">4654</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4654"></a>
+<span class="sourceLineNo">4655</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.4655"></a>
+<span class="sourceLineNo">4656</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.4656"></a>
+<span class="sourceLineNo">4657</span>                                                        ox = (short) (iax - ibx);<a name="line.4657"></a>
+<span class="sourceLineNo">4658</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.4658"></a>
+<span class="sourceLineNo">4659</span>                                                }<a name="line.4659"></a>
+<span class="sourceLineNo">4660</span>                                        }<a name="line.4660"></a>
+<span class="sourceLineNo">4661</span>                                }<a name="line.4661"></a>
+<span class="sourceLineNo">4662</span>                        }<a name="line.4662"></a>
+<span class="sourceLineNo">4663</span>                        break;<a name="line.4663"></a>
+<span class="sourceLineNo">4664</span>                case Dataset.ARRAYINT64:<a name="line.4664"></a>
+<span class="sourceLineNo">4665</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.4665"></a>
+<span class="sourceLineNo">4666</span>                        if (is == 1) {<a name="line.4666"></a>
+<span class="sourceLineNo">4667</span>                                if (it.isOutputDouble()) {<a name="line.4667"></a>
+<span class="sourceLineNo">4668</span>                                        while (it.hasNext()) {<a name="line.4668"></a>
+<span class="sourceLineNo">4669</span>                                                final double iax = it.aDouble;<a name="line.4669"></a>
+<span class="sourceLineNo">4670</span>                                                final double ibx = it.bDouble;<a name="line.4670"></a>
+<span class="sourceLineNo">4671</span>                                                long ox;<a name="line.4671"></a>
+<span class="sourceLineNo">4672</span>                                                ox = toLong(iax - ibx);<a name="line.4672"></a>
+<span class="sourceLineNo">4673</span>                                                oai64data[it.oIndex] = ox;<a name="line.4673"></a>
+<span class="sourceLineNo">4674</span>                                        }<a name="line.4674"></a>
+<span class="sourceLineNo">4675</span>                                } else {<a name="line.4675"></a>
+<span class="sourceLineNo">4676</span>                                        while (it.hasNext()) {<a name="line.4676"></a>
+<span class="sourceLineNo">4677</span>                                                final long iax = it.aLong;<a name="line.4677"></a>
+<span class="sourceLineNo">4678</span>                                                final long ibx = it.bLong;<a name="line.4678"></a>
+<span class="sourceLineNo">4679</span>                                                long ox;<a name="line.4679"></a>
+<span class="sourceLineNo">4680</span>                                                ox = (iax - ibx);<a name="line.4680"></a>
+<span class="sourceLineNo">4681</span>                                                oai64data[it.oIndex] = ox;<a name="line.4681"></a>
+<span class="sourceLineNo">4682</span>                                        }<a name="line.4682"></a>
+<span class="sourceLineNo">4683</span>                                }<a name="line.4683"></a>
+<span class="sourceLineNo">4684</span>                        } else if (as &lt; bs) {<a name="line.4684"></a>
+<span class="sourceLineNo">4685</span>                                if (it.isOutputDouble()) {<a name="line.4685"></a>
+<span class="sourceLineNo">4686</span>                                        while (it.hasNext()) {<a name="line.4686"></a>
+<span class="sourceLineNo">4687</span>                                                final double iax = it.aDouble;<a name="line.4687"></a>
+<span class="sourceLineNo">4688</span>                                                double ibx = it.bDouble;<a name="line.4688"></a>
+<span class="sourceLineNo">4689</span>                                                long ox;<a name="line.4689"></a>
+<span class="sourceLineNo">4690</span>                                                ox = toLong(iax - ibx);<a name="line.4690"></a>
+<span class="sourceLineNo">4691</span>                                                oai64data[it.oIndex] = ox;<a name="line.4691"></a>
+<span class="sourceLineNo">4692</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4692"></a>
+<span class="sourceLineNo">4693</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.4693"></a>
+<span class="sourceLineNo">4694</span>                                                        ox = toLong(iax - ibx);<a name="line.4694"></a>
+<span class="sourceLineNo">4695</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.4695"></a>
+<span class="sourceLineNo">4696</span>                                                }<a name="line.4696"></a>
+<span class="sourceLineNo">4697</span>                                        }<a name="line.4697"></a>
+<span class="sourceLineNo">4698</span>                                } else {<a name="line.4698"></a>
+<span class="sourceLineNo">4699</span>                                        while (it.hasNext()) {<a name="line.4699"></a>
+<span class="sourceLineNo">4700</span>                                                final long iax = it.aLong;<a name="line.4700"></a>
+<span class="sourceLineNo">4701</span>                                                long ibx = it.bLong;<a name="line.4701"></a>
+<span class="sourceLineNo">4702</span>                                                long ox;<a name="line.4702"></a>
+<span class="sourceLineNo">4703</span>                                                ox = (iax - ibx);<a name="line.4703"></a>
+<span class="sourceLineNo">4704</span>                                                oai64data[it.oIndex] = ox;<a name="line.4704"></a>
+<span class="sourceLineNo">4705</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4705"></a>
+<span class="sourceLineNo">4706</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.4706"></a>
+<span class="sourceLineNo">4707</span>                                                        ox = (iax - ibx);<a name="line.4707"></a>
+<span class="sourceLineNo">4708</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.4708"></a>
+<span class="sourceLineNo">4709</span>                                                }<a name="line.4709"></a>
+<span class="sourceLineNo">4710</span>                                        }<a name="line.4710"></a>
+<span class="sourceLineNo">4711</span>                                }<a name="line.4711"></a>
+<span class="sourceLineNo">4712</span>                        } else if (as &gt; bs) {<a name="line.4712"></a>
+<span class="sourceLineNo">4713</span>                                if (it.isOutputDouble()) {<a name="line.4713"></a>
+<span class="sourceLineNo">4714</span>                                        while (it.hasNext()) {<a name="line.4714"></a>
+<span class="sourceLineNo">4715</span>                                                double iax = it.aDouble;<a name="line.4715"></a>
+<span class="sourceLineNo">4716</span>                                                final double ibx = it.bDouble;<a name="line.4716"></a>
+<span class="sourceLineNo">4717</span>                                                long ox;<a name="line.4717"></a>
+<span class="sourceLineNo">4718</span>                                                ox = toLong(iax - ibx);<a name="line.4718"></a>
+<span class="sourceLineNo">4719</span>                                                oai64data[it.oIndex] = ox;<a name="line.4719"></a>
+<span class="sourceLineNo">4720</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4720"></a>
+<span class="sourceLineNo">4721</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.4721"></a>
+<span class="sourceLineNo">4722</span>                                                        ox = toLong(iax - ibx);<a name="line.4722"></a>
+<span class="sourceLineNo">4723</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.4723"></a>
+<span class="sourceLineNo">4724</span>                                                }<a name="line.4724"></a>
+<span class="sourceLineNo">4725</span>                                        }<a name="line.4725"></a>
+<span class="sourceLineNo">4726</span>                                } else {<a name="line.4726"></a>
+<span class="sourceLineNo">4727</span>                                        while (it.hasNext()) {<a name="line.4727"></a>
+<span class="sourceLineNo">4728</span>                                                long iax = it.aLong;<a name="line.4728"></a>
+<span class="sourceLineNo">4729</span>                                                final long ibx = it.bLong;<a name="line.4729"></a>
+<span class="sourceLineNo">4730</span>                                                long ox;<a name="line.4730"></a>
+<span class="sourceLineNo">4731</span>                                                ox = (iax - ibx);<a name="line.4731"></a>
+<span class="sourceLineNo">4732</span>                                                oai64data[it.oIndex] = ox;<a name="line.4732"></a>
+<span class="sourceLineNo">4733</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4733"></a>
+<span class="sourceLineNo">4734</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.4734"></a>
+<span class="sourceLineNo">4735</span>                                                        ox = (iax - ibx);<a name="line.4735"></a>
+<span class="sourceLineNo">4736</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.4736"></a>
+<span class="sourceLineNo">4737</span>                                                }<a name="line.4737"></a>
+<span class="sourceLineNo">4738</span>                                        }<a name="line.4738"></a>
+<span class="sourceLineNo">4739</span>                                }<a name="line.4739"></a>
+<span class="sourceLineNo">4740</span>                        } else if (as == 1) {<a name="line.4740"></a>
+<span class="sourceLineNo">4741</span>                                if (it.isOutputDouble()) {<a name="line.4741"></a>
+<span class="sourceLineNo">4742</span>                                        while (it.hasNext()) {<a name="line.4742"></a>
+<span class="sourceLineNo">4743</span>                                                final double iax = it.aDouble;<a name="line.4743"></a>
+<span class="sourceLineNo">4744</span>                                                final double ibx = it.bDouble;<a name="line.4744"></a>
+<span class="sourceLineNo">4745</span>                                                long ox;<a name="line.4745"></a>
+<span class="sourceLineNo">4746</span>                                                ox = toLong(iax - ibx);<a name="line.4746"></a>
+<span class="sourceLineNo">4747</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.4747"></a>
+<span class="sourceLineNo">4748</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.4748"></a>
+<span class="sourceLineNo">4749</span>                                                }<a name="line.4749"></a>
+<span class="sourceLineNo">4750</span>                                        }<a name="line.4750"></a>
+<span class="sourceLineNo">4751</span>                                } else {<a name="line.4751"></a>
+<span class="sourceLineNo">4752</span>                                        while (it.hasNext()) {<a name="line.4752"></a>
+<span class="sourceLineNo">4753</span>                                                final long iax = it.aLong;<a name="line.4753"></a>
+<span class="sourceLineNo">4754</span>                                                final long ibx = it.bLong;<a name="line.4754"></a>
+<span class="sourceLineNo">4755</span>                                                long ox;<a name="line.4755"></a>
+<span class="sourceLineNo">4756</span>                                                ox = (iax - ibx);<a name="line.4756"></a>
+<span class="sourceLineNo">4757</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.4757"></a>
+<span class="sourceLineNo">4758</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.4758"></a>
+<span class="sourceLineNo">4759</span>                                                }<a name="line.4759"></a>
+<span class="sourceLineNo">4760</span>                                        }<a name="line.4760"></a>
+<span class="sourceLineNo">4761</span>                                }<a name="line.4761"></a>
+<span class="sourceLineNo">4762</span>                        } else {<a name="line.4762"></a>
+<span class="sourceLineNo">4763</span>                                if (it.isOutputDouble()) {<a name="line.4763"></a>
+<span class="sourceLineNo">4764</span>                                        while (it.hasNext()) {<a name="line.4764"></a>
+<span class="sourceLineNo">4765</span>                                                double iax = it.aDouble;<a name="line.4765"></a>
+<span class="sourceLineNo">4766</span>                                                double ibx = it.bDouble;<a name="line.4766"></a>
+<span class="sourceLineNo">4767</span>                                                long ox;<a name="line.4767"></a>
+<span class="sourceLineNo">4768</span>                                                ox = toLong(iax - ibx);<a name="line.4768"></a>
+<span class="sourceLineNo">4769</span>                                                oai64data[it.oIndex] = ox;<a name="line.4769"></a>
+<span class="sourceLineNo">4770</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4770"></a>
+<span class="sourceLineNo">4771</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.4771"></a>
+<span class="sourceLineNo">4772</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.4772"></a>
+<span class="sourceLineNo">4773</span>                                                        ox = toLong(iax - ibx);<a name="line.4773"></a>
+<span class="sourceLineNo">4774</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.4774"></a>
+<span class="sourceLineNo">4775</span>                                                }<a name="line.4775"></a>
+<span class="sourceLineNo">4776</span>                                        }<a name="line.4776"></a>
+<span class="sourceLineNo">4777</span>                                } else {<a name="line.4777"></a>
+<span class="sourceLineNo">4778</span>                                        while (it.hasNext()) {<a name="line.4778"></a>
+<span class="sourceLineNo">4779</span>                                                long iax = it.aLong;<a name="line.4779"></a>
+<span class="sourceLineNo">4780</span>                                                long ibx = it.bLong;<a name="line.4780"></a>
+<span class="sourceLineNo">4781</span>                                                long ox;<a name="line.4781"></a>
+<span class="sourceLineNo">4782</span>                                                ox = (iax - ibx);<a name="line.4782"></a>
+<span class="sourceLineNo">4783</span>                                                oai64data[it.oIndex] = ox;<a name="line.4783"></a>
+<span class="sourceLineNo">4784</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4784"></a>
+<span class="sourceLineNo">4785</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.4785"></a>
+<span class="sourceLineNo">4786</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.4786"></a>
+<span class="sourceLineNo">4787</span>                                                        ox = (iax - ibx);<a name="line.4787"></a>
+<span class="sourceLineNo">4788</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.4788"></a>
+<span class="sourceLineNo">4789</span>                                                }<a name="line.4789"></a>
+<span class="sourceLineNo">4790</span>                                        }<a name="line.4790"></a>
+<span class="sourceLineNo">4791</span>                                }<a name="line.4791"></a>
+<span class="sourceLineNo">4792</span>                        }<a name="line.4792"></a>
+<span class="sourceLineNo">4793</span>                        break;<a name="line.4793"></a>
+<span class="sourceLineNo">4794</span>                case Dataset.ARRAYINT32:<a name="line.4794"></a>
+<span class="sourceLineNo">4795</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.4795"></a>
+<span class="sourceLineNo">4796</span>                        if (is == 1) {<a name="line.4796"></a>
+<span class="sourceLineNo">4797</span>                                if (it.isOutputDouble()) {<a name="line.4797"></a>
+<span class="sourceLineNo">4798</span>                                        while (it.hasNext()) {<a name="line.4798"></a>
+<span class="sourceLineNo">4799</span>                                                final double iax = it.aDouble;<a name="line.4799"></a>
+<span class="sourceLineNo">4800</span>                                                final double ibx = it.bDouble;<a name="line.4800"></a>
+<span class="sourceLineNo">4801</span>                                                int ox;<a name="line.4801"></a>
+<span class="sourceLineNo">4802</span>                                                ox = (int) toLong(iax - ibx);<a name="line.4802"></a>
+<span class="sourceLineNo">4803</span>                                                oai32data[it.oIndex] = ox;<a name="line.4803"></a>
+<span class="sourceLineNo">4804</span>                                        }<a name="line.4804"></a>
+<span class="sourceLineNo">4805</span>                                } else {<a name="line.4805"></a>
+<span class="sourceLineNo">4806</span>                                        while (it.hasNext()) {<a name="line.4806"></a>
+<span class="sourceLineNo">4807</span>                                                final long iax = it.aLong;<a name="line.4807"></a>
+<span class="sourceLineNo">4808</span>                                                final long ibx = it.bLong;<a name="line.4808"></a>
+<span class="sourceLineNo">4809</span>                                                int ox;<a name="line.4809"></a>
+<span class="sourceLineNo">4810</span>                                                ox = (int) (iax - ibx);<a name="line.4810"></a>
+<span class="sourceLineNo">4811</span>                                                oai32data[it.oIndex] = ox;<a name="line.4811"></a>
+<span class="sourceLineNo">4812</span>                                        }<a name="line.4812"></a>
+<span class="sourceLineNo">4813</span>                                }<a name="line.4813"></a>
+<span class="sourceLineNo">4814</span>                        } else if (as &lt; bs) {<a name="line.4814"></a>
+<span class="sourceLineNo">4815</span>                                if (it.isOutputDouble()) {<a name="line.4815"></a>
+<span class="sourceLineNo">4816</span>                                        while (it.hasNext()) {<a name="line.4816"></a>
+<span class="sourceLineNo">4817</span>                                                final double iax = it.aDouble;<a name="line.4817"></a>
+<span class="sourceLineNo">4818</span>                                                double ibx = it.bDouble;<a name="line.4818"></a>
+<span class="sourceLineNo">4819</span>                                                int ox;<a name="line.4819"></a>
+<span class="sourceLineNo">4820</span>                                                ox = (int) toLong(iax - ibx);<a name="line.4820"></a>
+<span class="sourceLineNo">4821</span>                                                oai32data[it.oIndex] = ox;<a name="line.4821"></a>
+<span class="sourceLineNo">4822</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4822"></a>
+<span class="sourceLineNo">4823</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.4823"></a>
+<span class="sourceLineNo">4824</span>                                                        ox = (int) toLong(iax - ibx);<a name="line.4824"></a>
+<span class="sourceLineNo">4825</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.4825"></a>
+<span class="sourceLineNo">4826</span>                                                }<a name="line.4826"></a>
+<span class="sourceLineNo">4827</span>                                        }<a name="line.4827"></a>
+<span class="sourceLineNo">4828</span>                                } else {<a name="line.4828"></a>
+<span class="sourceLineNo">4829</span>                                        while (it.hasNext()) {<a name="line.4829"></a>
+<span class="sourceLineNo">4830</span>                                                final long iax = it.aLong;<a name="line.4830"></a>
+<span class="sourceLineNo">4831</span>                                                long ibx = it.bLong;<a name="line.4831"></a>
+<span class="sourceLineNo">4832</span>                                                int ox;<a name="line.4832"></a>
+<span class="sourceLineNo">4833</span>                                                ox = (int) (iax - ibx);<a name="line.4833"></a>
+<span class="sourceLineNo">4834</span>                                                oai32data[it.oIndex] = ox;<a name="line.4834"></a>
+<span class="sourceLineNo">4835</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4835"></a>
+<span class="sourceLineNo">4836</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.4836"></a>
+<span class="sourceLineNo">4837</span>                                                        ox = (int) (iax - ibx);<a name="line.4837"></a>
+<span class="sourceLineNo">4838</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.4838"></a>
+<span class="sourceLineNo">4839</span>                                                }<a name="line.4839"></a>
+<span class="sourceLineNo">4840</span>                                        }<a name="line.4840"></a>
+<span class="sourceLineNo">4841</span>                                }<a name="line.4841"></a>
+<span class="sourceLineNo">4842</span>                        } else if (as &gt; bs) {<a name="line.4842"></a>
+<span class="sourceLineNo">4843</span>                                if (it.isOutputDouble()) {<a name="line.4843"></a>
+<span class="sourceLineNo">4844</span>                                        while (it.hasNext()) {<a name="line.4844"></a>
+<span class="sourceLineNo">4845</span>                                                double iax = it.aDouble;<a name="line.4845"></a>
+<span class="sourceLineNo">4846</span>                                                final double ibx = it.bDouble;<a name="line.4846"></a>
+<span class="sourceLineNo">4847</span>                                                int ox;<a name="line.4847"></a>
+<span class="sourceLineNo">4848</span>                                                ox = (int) toLong(iax - ibx);<a name="line.4848"></a>
+<span class="sourceLineNo">4849</span>                                                oai32data[it.oIndex] = ox;<a name="line.4849"></a>
+<span class="sourceLineNo">4850</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4850"></a>
+<span class="sourceLineNo">4851</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.4851"></a>
+<span class="sourceLineNo">4852</span>                                                        ox = (int) toLong(iax - ibx);<a name="line.4852"></a>
+<span class="sourceLineNo">4853</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.4853"></a>
+<span class="sourceLineNo">4854</span>                                                }<a name="line.4854"></a>
+<span class="sourceLineNo">4855</span>                                        }<a name="line.4855"></a>
+<span class="sourceLineNo">4856</span>                                } else {<a name="line.4856"></a>
+<span class="sourceLineNo">4857</span>                                        while (it.hasNext()) {<a name="line.4857"></a>
+<span class="sourceLineNo">4858</span>                                                long iax = it.aLong;<a name="line.4858"></a>
+<span class="sourceLineNo">4859</span>                                                final long ibx = it.bLong;<a name="line.4859"></a>
+<span class="sourceLineNo">4860</span>                                                int ox;<a name="line.4860"></a>
+<span class="sourceLineNo">4861</span>                                                ox = (int) (iax - ibx);<a name="line.4861"></a>
+<span class="sourceLineNo">4862</span>                                                oai32data[it.oIndex] = ox;<a name="line.4862"></a>
+<span class="sourceLineNo">4863</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4863"></a>
+<span class="sourceLineNo">4864</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.4864"></a>
+<span class="sourceLineNo">4865</span>                                                        ox = (int) (iax - ibx);<a name="line.4865"></a>
+<span class="sourceLineNo">4866</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.4866"></a>
+<span class="sourceLineNo">4867</span>                                                }<a name="line.4867"></a>
+<span class="sourceLineNo">4868</span>                                        }<a name="line.4868"></a>
+<span class="sourceLineNo">4869</span>                                }<a name="line.4869"></a>
+<span class="sourceLineNo">4870</span>                        } else if (as == 1) {<a name="line.4870"></a>
+<span class="sourceLineNo">4871</span>                                if (it.isOutputDouble()) {<a name="line.4871"></a>
+<span class="sourceLineNo">4872</span>                                        while (it.hasNext()) {<a name="line.4872"></a>
+<span class="sourceLineNo">4873</span>                                                final double iax = it.aDouble;<a name="line.4873"></a>
+<span class="sourceLineNo">4874</span>                                                final double ibx = it.bDouble;<a name="line.4874"></a>
+<span class="sourceLineNo">4875</span>                                                int ox;<a name="line.4875"></a>
+<span class="sourceLineNo">4876</span>                                                ox = (int) toLong(iax - ibx);<a name="line.4876"></a>
+<span class="sourceLineNo">4877</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.4877"></a>
+<span class="sourceLineNo">4878</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.4878"></a>
+<span class="sourceLineNo">4879</span>                                                }<a name="line.4879"></a>
+<span class="sourceLineNo">4880</span>                                        }<a name="line.4880"></a>
+<span class="sourceLineNo">4881</span>                                } else {<a name="line.4881"></a>
+<span class="sourceLineNo">4882</span>                                        while (it.hasNext()) {<a name="line.4882"></a>
+<span class="sourceLineNo">4883</span>                                                final long iax = it.aLong;<a name="line.4883"></a>
+<span class="sourceLineNo">4884</span>                                                final long ibx = it.bLong;<a name="line.4884"></a>
+<span class="sourceLineNo">4885</span>                                                int ox;<a name="line.4885"></a>
+<span class="sourceLineNo">4886</span>                                                ox = (int) (iax - ibx);<a name="line.4886"></a>
+<span class="sourceLineNo">4887</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.4887"></a>
+<span class="sourceLineNo">4888</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.4888"></a>
+<span class="sourceLineNo">4889</span>                                                }<a name="line.4889"></a>
+<span class="sourceLineNo">4890</span>                                        }<a name="line.4890"></a>
+<span class="sourceLineNo">4891</span>                                }<a name="line.4891"></a>
+<span class="sourceLineNo">4892</span>                        } else {<a name="line.4892"></a>
+<span class="sourceLineNo">4893</span>                                if (it.isOutputDouble()) {<a name="line.4893"></a>
+<span class="sourceLineNo">4894</span>                                        while (it.hasNext()) {<a name="line.4894"></a>
+<span class="sourceLineNo">4895</span>                                                double iax = it.aDouble;<a name="line.4895"></a>
+<span class="sourceLineNo">4896</span>                                                double ibx = it.bDouble;<a name="line.4896"></a>
+<span class="sourceLineNo">4897</span>                                                int ox;<a name="line.4897"></a>
+<span class="sourceLineNo">4898</span>                                                ox = (int) toLong(iax - ibx);<a name="line.4898"></a>
+<span class="sourceLineNo">4899</span>                                                oai32data[it.oIndex] = ox;<a name="line.4899"></a>
+<span class="sourceLineNo">4900</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4900"></a>
+<span class="sourceLineNo">4901</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.4901"></a>
+<span class="sourceLineNo">4902</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.4902"></a>
+<span class="sourceLineNo">4903</span>                                                        ox = (int) toLong(iax - ibx);<a name="line.4903"></a>
+<span class="sourceLineNo">4904</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.4904"></a>
+<span class="sourceLineNo">4905</span>                                                }<a name="line.4905"></a>
+<span class="sourceLineNo">4906</span>                                        }<a name="line.4906"></a>
+<span class="sourceLineNo">4907</span>                                } else {<a name="line.4907"></a>
+<span class="sourceLineNo">4908</span>                                        while (it.hasNext()) {<a name="line.4908"></a>
+<span class="sourceLineNo">4909</span>                                                long iax = it.aLong;<a name="line.4909"></a>
+<span class="sourceLineNo">4910</span>                                                long ibx = it.bLong;<a name="line.4910"></a>
+<span class="sourceLineNo">4911</span>                                                int ox;<a name="line.4911"></a>
+<span class="sourceLineNo">4912</span>                                                ox = (int) (iax - ibx);<a name="line.4912"></a>
+<span class="sourceLineNo">4913</span>                                                oai32data[it.oIndex] = ox;<a name="line.4913"></a>
+<span class="sourceLineNo">4914</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4914"></a>
+<span class="sourceLineNo">4915</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.4915"></a>
+<span class="sourceLineNo">4916</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.4916"></a>
+<span class="sourceLineNo">4917</span>                                                        ox = (int) (iax - ibx);<a name="line.4917"></a>
+<span class="sourceLineNo">4918</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.4918"></a>
+<span class="sourceLineNo">4919</span>                                                }<a name="line.4919"></a>
+<span class="sourceLineNo">4920</span>                                        }<a name="line.4920"></a>
+<span class="sourceLineNo">4921</span>                                }<a name="line.4921"></a>
+<span class="sourceLineNo">4922</span>                        }<a name="line.4922"></a>
+<span class="sourceLineNo">4923</span>                        break;<a name="line.4923"></a>
+<span class="sourceLineNo">4924</span>                case Dataset.FLOAT32:<a name="line.4924"></a>
+<span class="sourceLineNo">4925</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.4925"></a>
+<span class="sourceLineNo">4926</span>                        if (it.isOutputDouble()) {<a name="line.4926"></a>
+<span class="sourceLineNo">4927</span>                                while (it.hasNext()) {<a name="line.4927"></a>
+<span class="sourceLineNo">4928</span>                                        final double iax = it.aDouble;<a name="line.4928"></a>
+<span class="sourceLineNo">4929</span>                                        final double ibx = it.bDouble;<a name="line.4929"></a>
+<span class="sourceLineNo">4930</span>                                        float ox;<a name="line.4930"></a>
+<span class="sourceLineNo">4931</span>                                        ox = (float) (iax - ibx);<a name="line.4931"></a>
+<span class="sourceLineNo">4932</span>                                        of32data[it.oIndex] = ox;<a name="line.4932"></a>
+<span class="sourceLineNo">4933</span>                                }<a name="line.4933"></a>
+<span class="sourceLineNo">4934</span>                        } else {<a name="line.4934"></a>
+<span class="sourceLineNo">4935</span>                                while (it.hasNext()) {<a name="line.4935"></a>
+<span class="sourceLineNo">4936</span>                                        final long iax = it.aLong;<a name="line.4936"></a>
+<span class="sourceLineNo">4937</span>                                        final long ibx = it.bLong;<a name="line.4937"></a>
+<span class="sourceLineNo">4938</span>                                        float ox;<a name="line.4938"></a>
+<span class="sourceLineNo">4939</span>                                        ox = (iax - ibx);<a name="line.4939"></a>
+<span class="sourceLineNo">4940</span>                                        of32data[it.oIndex] = ox;<a name="line.4940"></a>
+<span class="sourceLineNo">4941</span>                                }<a name="line.4941"></a>
+<span class="sourceLineNo">4942</span>                        }<a name="line.4942"></a>
+<span class="sourceLineNo">4943</span>                        break;<a name="line.4943"></a>
+<span class="sourceLineNo">4944</span>                case Dataset.FLOAT64:<a name="line.4944"></a>
+<span class="sourceLineNo">4945</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.4945"></a>
+<span class="sourceLineNo">4946</span>                        if (it.isOutputDouble()) {<a name="line.4946"></a>
+<span class="sourceLineNo">4947</span>                                while (it.hasNext()) {<a name="line.4947"></a>
+<span class="sourceLineNo">4948</span>                                        final double iax = it.aDouble;<a name="line.4948"></a>
+<span class="sourceLineNo">4949</span>                                        final double ibx = it.bDouble;<a name="line.4949"></a>
+<span class="sourceLineNo">4950</span>                                        double ox;<a name="line.4950"></a>
+<span class="sourceLineNo">4951</span>                                        ox = (iax - ibx);<a name="line.4951"></a>
+<span class="sourceLineNo">4952</span>                                        of64data[it.oIndex] = ox;<a name="line.4952"></a>
+<span class="sourceLineNo">4953</span>                                }<a name="line.4953"></a>
+<span class="sourceLineNo">4954</span>                        } else {<a name="line.4954"></a>
+<span class="sourceLineNo">4955</span>                                while (it.hasNext()) {<a name="line.4955"></a>
+<span class="sourceLineNo">4956</span>                                        final long iax = it.aLong;<a name="line.4956"></a>
+<span class="sourceLineNo">4957</span>                                        final long ibx = it.bLong;<a name="line.4957"></a>
+<span class="sourceLineNo">4958</span>                                        double ox;<a name="line.4958"></a>
+<span class="sourceLineNo">4959</span>                                        ox = (iax - ibx);<a name="line.4959"></a>
+<span class="sourceLineNo">4960</span>                                        of64data[it.oIndex] = ox;<a name="line.4960"></a>
+<span class="sourceLineNo">4961</span>                                }<a name="line.4961"></a>
+<span class="sourceLineNo">4962</span>                        }<a name="line.4962"></a>
+<span class="sourceLineNo">4963</span>                        break;<a name="line.4963"></a>
+<span class="sourceLineNo">4964</span>                case Dataset.ARRAYFLOAT32:<a name="line.4964"></a>
+<span class="sourceLineNo">4965</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.4965"></a>
+<span class="sourceLineNo">4966</span>                        if (is == 1) {<a name="line.4966"></a>
+<span class="sourceLineNo">4967</span>                                if (it.isOutputDouble()) {<a name="line.4967"></a>
+<span class="sourceLineNo">4968</span>                                        while (it.hasNext()) {<a name="line.4968"></a>
+<span class="sourceLineNo">4969</span>                                                final double iax = it.aDouble;<a name="line.4969"></a>
+<span class="sourceLineNo">4970</span>                                                final double ibx = it.bDouble;<a name="line.4970"></a>
+<span class="sourceLineNo">4971</span>                                                float ox;<a name="line.4971"></a>
+<span class="sourceLineNo">4972</span>                                                ox = (float) (iax - ibx);<a name="line.4972"></a>
+<span class="sourceLineNo">4973</span>                                                oaf32data[it.oIndex] = ox;<a name="line.4973"></a>
+<span class="sourceLineNo">4974</span>                                        }<a name="line.4974"></a>
+<span class="sourceLineNo">4975</span>                                } else {<a name="line.4975"></a>
+<span class="sourceLineNo">4976</span>                                        while (it.hasNext()) {<a name="line.4976"></a>
+<span class="sourceLineNo">4977</span>                                                final long iax = it.aLong;<a name="line.4977"></a>
+<span class="sourceLineNo">4978</span>                                                final long ibx = it.bLong;<a name="line.4978"></a>
+<span class="sourceLineNo">4979</span>                                                float ox;<a name="line.4979"></a>
+<span class="sourceLineNo">4980</span>                                                ox = (iax - ibx);<a name="line.4980"></a>
+<span class="sourceLineNo">4981</span>                                                oaf32data[it.oIndex] = ox;<a name="line.4981"></a>
+<span class="sourceLineNo">4982</span>                                        }<a name="line.4982"></a>
+<span class="sourceLineNo">4983</span>                                }<a name="line.4983"></a>
+<span class="sourceLineNo">4984</span>                        } else if (as &lt; bs) {<a name="line.4984"></a>
+<span class="sourceLineNo">4985</span>                                if (it.isOutputDouble()) {<a name="line.4985"></a>
+<span class="sourceLineNo">4986</span>                                        while (it.hasNext()) {<a name="line.4986"></a>
+<span class="sourceLineNo">4987</span>                                                final double iax = it.aDouble;<a name="line.4987"></a>
+<span class="sourceLineNo">4988</span>                                                double ibx = it.bDouble;<a name="line.4988"></a>
+<span class="sourceLineNo">4989</span>                                                float ox;<a name="line.4989"></a>
+<span class="sourceLineNo">4990</span>                                                ox = (float) (iax - ibx);<a name="line.4990"></a>
+<span class="sourceLineNo">4991</span>                                                oaf32data[it.oIndex] = ox;<a name="line.4991"></a>
+<span class="sourceLineNo">4992</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.4992"></a>
+<span class="sourceLineNo">4993</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.4993"></a>
+<span class="sourceLineNo">4994</span>                                                        ox = (float) (iax - ibx);<a name="line.4994"></a>
+<span class="sourceLineNo">4995</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.4995"></a>
+<span class="sourceLineNo">4996</span>                                                }<a name="line.4996"></a>
+<span class="sourceLineNo">4997</span>                                        }<a name="line.4997"></a>
+<span class="sourceLineNo">4998</span>                                } else {<a name="line.4998"></a>
+<span class="sourceLineNo">4999</span>                                        while (it.hasNext()) {<a name="line.4999"></a>
+<span class="sourceLineNo">5000</span>                                                final long iax = it.aLong;<a name="line.5000"></a>
+<span class="sourceLineNo">5001</span>                                                long ibx = it.bLong;<a name="line.5001"></a>
+<span class="sourceLineNo">5002</span>                                                float ox;<a name="line.5002"></a>
+<span class="sourceLineNo">5003</span>                                                ox = (iax - ibx);<a name="line.5003"></a>
+<span class="sourceLineNo">5004</span>                                                oaf32data[it.oIndex] = ox;<a name="line.5004"></a>
+<span class="sourceLineNo">5005</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5005"></a>
+<span class="sourceLineNo">5006</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.5006"></a>
+<span class="sourceLineNo">5007</span>                                                        ox = (iax - ibx);<a name="line.5007"></a>
+<span class="sourceLineNo">5008</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.5008"></a>
+<span class="sourceLineNo">5009</span>                                                }<a name="line.5009"></a>
+<span class="sourceLineNo">5010</span>                                        }<a name="line.5010"></a>
+<span class="sourceLineNo">5011</span>                                }<a name="line.5011"></a>
+<span class="sourceLineNo">5012</span>                        } else if (as &gt; bs) {<a name="line.5012"></a>
+<span class="sourceLineNo">5013</span>                                if (it.isOutputDouble()) {<a name="line.5013"></a>
+<span class="sourceLineNo">5014</span>                                        while (it.hasNext()) {<a name="line.5014"></a>
+<span class="sourceLineNo">5015</span>                                                double iax = it.aDouble;<a name="line.5015"></a>
+<span class="sourceLineNo">5016</span>                                                final double ibx = it.bDouble;<a name="line.5016"></a>
+<span class="sourceLineNo">5017</span>                                                float ox;<a name="line.5017"></a>
+<span class="sourceLineNo">5018</span>                                                ox = (float) (iax - ibx);<a name="line.5018"></a>
+<span class="sourceLineNo">5019</span>                                                oaf32data[it.oIndex] = ox;<a name="line.5019"></a>
+<span class="sourceLineNo">5020</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5020"></a>
+<span class="sourceLineNo">5021</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.5021"></a>
+<span class="sourceLineNo">5022</span>                                                        ox = (float) (iax - ibx);<a name="line.5022"></a>
+<span class="sourceLineNo">5023</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.5023"></a>
+<span class="sourceLineNo">5024</span>                                                }<a name="line.5024"></a>
+<span class="sourceLineNo">5025</span>                                        }<a name="line.5025"></a>
+<span class="sourceLineNo">5026</span>                                } else {<a name="line.5026"></a>
+<span class="sourceLineNo">5027</span>                                        while (it.hasNext()) {<a name="line.5027"></a>
+<span class="sourceLineNo">5028</span>                                                long iax = it.aLong;<a name="line.5028"></a>
+<span class="sourceLineNo">5029</span>                                                final long ibx = it.bLong;<a name="line.5029"></a>
+<span class="sourceLineNo">5030</span>                                                float ox;<a name="line.5030"></a>
+<span class="sourceLineNo">5031</span>                                                ox = (iax - ibx);<a name="line.5031"></a>
+<span class="sourceLineNo">5032</span>                                                oaf32data[it.oIndex] = ox;<a name="line.5032"></a>
+<span class="sourceLineNo">5033</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5033"></a>
+<span class="sourceLineNo">5034</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.5034"></a>
+<span class="sourceLineNo">5035</span>                                                        ox = (iax - ibx);<a name="line.5035"></a>
+<span class="sourceLineNo">5036</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.5036"></a>
+<span class="sourceLineNo">5037</span>                                                }<a name="line.5037"></a>
+<span class="sourceLineNo">5038</span>                                        }<a name="line.5038"></a>
+<span class="sourceLineNo">5039</span>                                }<a name="line.5039"></a>
+<span class="sourceLineNo">5040</span>                        } else if (as == 1) {<a name="line.5040"></a>
+<span class="sourceLineNo">5041</span>                                if (it.isOutputDouble()) {<a name="line.5041"></a>
+<span class="sourceLineNo">5042</span>                                        while (it.hasNext()) {<a name="line.5042"></a>
+<span class="sourceLineNo">5043</span>                                                final double iax = it.aDouble;<a name="line.5043"></a>
+<span class="sourceLineNo">5044</span>                                                final double ibx = it.bDouble;<a name="line.5044"></a>
+<span class="sourceLineNo">5045</span>                                                float ox;<a name="line.5045"></a>
+<span class="sourceLineNo">5046</span>                                                ox = (float) (iax - ibx);<a name="line.5046"></a>
+<span class="sourceLineNo">5047</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.5047"></a>
+<span class="sourceLineNo">5048</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.5048"></a>
+<span class="sourceLineNo">5049</span>                                                }<a name="line.5049"></a>
+<span class="sourceLineNo">5050</span>                                        }<a name="line.5050"></a>
+<span class="sourceLineNo">5051</span>                                } else {<a name="line.5051"></a>
+<span class="sourceLineNo">5052</span>                                        while (it.hasNext()) {<a name="line.5052"></a>
+<span class="sourceLineNo">5053</span>                                                final long iax = it.aLong;<a name="line.5053"></a>
+<span class="sourceLineNo">5054</span>                                                final long ibx = it.bLong;<a name="line.5054"></a>
+<span class="sourceLineNo">5055</span>                                                float ox;<a name="line.5055"></a>
+<span class="sourceLineNo">5056</span>                                                ox = (iax - ibx);<a name="line.5056"></a>
+<span class="sourceLineNo">5057</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.5057"></a>
+<span class="sourceLineNo">5058</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.5058"></a>
+<span class="sourceLineNo">5059</span>                                                }<a name="line.5059"></a>
+<span class="sourceLineNo">5060</span>                                        }<a name="line.5060"></a>
+<span class="sourceLineNo">5061</span>                                }<a name="line.5061"></a>
+<span class="sourceLineNo">5062</span>                        } else {<a name="line.5062"></a>
+<span class="sourceLineNo">5063</span>                                if (it.isOutputDouble()) {<a name="line.5063"></a>
+<span class="sourceLineNo">5064</span>                                        while (it.hasNext()) {<a name="line.5064"></a>
+<span class="sourceLineNo">5065</span>                                                double iax = it.aDouble;<a name="line.5065"></a>
+<span class="sourceLineNo">5066</span>                                                double ibx = it.bDouble;<a name="line.5066"></a>
+<span class="sourceLineNo">5067</span>                                                float ox;<a name="line.5067"></a>
+<span class="sourceLineNo">5068</span>                                                ox = (float) (iax - ibx);<a name="line.5068"></a>
+<span class="sourceLineNo">5069</span>                                                oaf32data[it.oIndex] = ox;<a name="line.5069"></a>
+<span class="sourceLineNo">5070</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5070"></a>
+<span class="sourceLineNo">5071</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.5071"></a>
+<span class="sourceLineNo">5072</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.5072"></a>
+<span class="sourceLineNo">5073</span>                                                        ox = (float) (iax - ibx);<a name="line.5073"></a>
+<span class="sourceLineNo">5074</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.5074"></a>
+<span class="sourceLineNo">5075</span>                                                }<a name="line.5075"></a>
+<span class="sourceLineNo">5076</span>                                        }<a name="line.5076"></a>
+<span class="sourceLineNo">5077</span>                                } else {<a name="line.5077"></a>
+<span class="sourceLineNo">5078</span>                                        while (it.hasNext()) {<a name="line.5078"></a>
+<span class="sourceLineNo">5079</span>                                                long iax = it.aLong;<a name="line.5079"></a>
+<span class="sourceLineNo">5080</span>                                                long ibx = it.bLong;<a name="line.5080"></a>
+<span class="sourceLineNo">5081</span>                                                float ox;<a name="line.5081"></a>
+<span class="sourceLineNo">5082</span>                                                ox = (iax - ibx);<a name="line.5082"></a>
+<span class="sourceLineNo">5083</span>                                                oaf32data[it.oIndex] = ox;<a name="line.5083"></a>
+<span class="sourceLineNo">5084</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5084"></a>
+<span class="sourceLineNo">5085</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.5085"></a>
+<span class="sourceLineNo">5086</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.5086"></a>
+<span class="sourceLineNo">5087</span>                                                        ox = (iax - ibx);<a name="line.5087"></a>
+<span class="sourceLineNo">5088</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.5088"></a>
+<span class="sourceLineNo">5089</span>                                                }<a name="line.5089"></a>
+<span class="sourceLineNo">5090</span>                                        }<a name="line.5090"></a>
+<span class="sourceLineNo">5091</span>                                }<a name="line.5091"></a>
+<span class="sourceLineNo">5092</span>                        }<a name="line.5092"></a>
+<span class="sourceLineNo">5093</span>                        break;<a name="line.5093"></a>
+<span class="sourceLineNo">5094</span>                case Dataset.ARRAYFLOAT64:<a name="line.5094"></a>
+<span class="sourceLineNo">5095</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.5095"></a>
+<span class="sourceLineNo">5096</span>                        if (is == 1) {<a name="line.5096"></a>
+<span class="sourceLineNo">5097</span>                                if (it.isOutputDouble()) {<a name="line.5097"></a>
+<span class="sourceLineNo">5098</span>                                        while (it.hasNext()) {<a name="line.5098"></a>
+<span class="sourceLineNo">5099</span>                                                final double iax = it.aDouble;<a name="line.5099"></a>
+<span class="sourceLineNo">5100</span>                                                final double ibx = it.bDouble;<a name="line.5100"></a>
+<span class="sourceLineNo">5101</span>                                                double ox;<a name="line.5101"></a>
+<span class="sourceLineNo">5102</span>                                                ox = (iax - ibx);<a name="line.5102"></a>
+<span class="sourceLineNo">5103</span>                                                oaf64data[it.oIndex] = ox;<a name="line.5103"></a>
+<span class="sourceLineNo">5104</span>                                        }<a name="line.5104"></a>
+<span class="sourceLineNo">5105</span>                                } else {<a name="line.5105"></a>
+<span class="sourceLineNo">5106</span>                                        while (it.hasNext()) {<a name="line.5106"></a>
+<span class="sourceLineNo">5107</span>                                                final long iax = it.aLong;<a name="line.5107"></a>
+<span class="sourceLineNo">5108</span>                                                final long ibx = it.bLong;<a name="line.5108"></a>
+<span class="sourceLineNo">5109</span>                                                double ox;<a name="line.5109"></a>
+<span class="sourceLineNo">5110</span>                                                ox = (iax - ibx);<a name="line.5110"></a>
+<span class="sourceLineNo">5111</span>                                                oaf64data[it.oIndex] = ox;<a name="line.5111"></a>
+<span class="sourceLineNo">5112</span>                                        }<a name="line.5112"></a>
+<span class="sourceLineNo">5113</span>                                }<a name="line.5113"></a>
+<span class="sourceLineNo">5114</span>                        } else if (as &lt; bs) {<a name="line.5114"></a>
+<span class="sourceLineNo">5115</span>                                if (it.isOutputDouble()) {<a name="line.5115"></a>
+<span class="sourceLineNo">5116</span>                                        while (it.hasNext()) {<a name="line.5116"></a>
+<span class="sourceLineNo">5117</span>                                                final double iax = it.aDouble;<a name="line.5117"></a>
+<span class="sourceLineNo">5118</span>                                                double ibx = it.bDouble;<a name="line.5118"></a>
+<span class="sourceLineNo">5119</span>                                                double ox;<a name="line.5119"></a>
+<span class="sourceLineNo">5120</span>                                                ox = (iax - ibx);<a name="line.5120"></a>
+<span class="sourceLineNo">5121</span>                                                oaf64data[it.oIndex] = ox;<a name="line.5121"></a>
+<span class="sourceLineNo">5122</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5122"></a>
+<span class="sourceLineNo">5123</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.5123"></a>
+<span class="sourceLineNo">5124</span>                                                        ox = (iax - ibx);<a name="line.5124"></a>
+<span class="sourceLineNo">5125</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.5125"></a>
+<span class="sourceLineNo">5126</span>                                                }<a name="line.5126"></a>
+<span class="sourceLineNo">5127</span>                                        }<a name="line.5127"></a>
+<span class="sourceLineNo">5128</span>                                } else {<a name="line.5128"></a>
+<span class="sourceLineNo">5129</span>                                        while (it.hasNext()) {<a name="line.5129"></a>
+<span class="sourceLineNo">5130</span>                                                final long iax = it.aLong;<a name="line.5130"></a>
+<span class="sourceLineNo">5131</span>                                                long ibx = it.bLong;<a name="line.5131"></a>
+<span class="sourceLineNo">5132</span>                                                double ox;<a name="line.5132"></a>
+<span class="sourceLineNo">5133</span>                                                ox = (iax - ibx);<a name="line.5133"></a>
+<span class="sourceLineNo">5134</span>                                                oaf64data[it.oIndex] = ox;<a name="line.5134"></a>
+<span class="sourceLineNo">5135</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5135"></a>
+<span class="sourceLineNo">5136</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.5136"></a>
+<span class="sourceLineNo">5137</span>                                                        ox = (iax - ibx);<a name="line.5137"></a>
+<span class="sourceLineNo">5138</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.5138"></a>
+<span class="sourceLineNo">5139</span>                                                }<a name="line.5139"></a>
+<span class="sourceLineNo">5140</span>                                        }<a name="line.5140"></a>
+<span class="sourceLineNo">5141</span>                                }<a name="line.5141"></a>
+<span class="sourceLineNo">5142</span>                        } else if (as &gt; bs) {<a name="line.5142"></a>
+<span class="sourceLineNo">5143</span>                                if (it.isOutputDouble()) {<a name="line.5143"></a>
+<span class="sourceLineNo">5144</span>                                        while (it.hasNext()) {<a name="line.5144"></a>
+<span class="sourceLineNo">5145</span>                                                double iax = it.aDouble;<a name="line.5145"></a>
+<span class="sourceLineNo">5146</span>                                                final double ibx = it.bDouble;<a name="line.5146"></a>
+<span class="sourceLineNo">5147</span>                                                double ox;<a name="line.5147"></a>
+<span class="sourceLineNo">5148</span>                                                ox = (iax - ibx);<a name="line.5148"></a>
+<span class="sourceLineNo">5149</span>                                                oaf64data[it.oIndex] = ox;<a name="line.5149"></a>
+<span class="sourceLineNo">5150</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5150"></a>
+<span class="sourceLineNo">5151</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.5151"></a>
+<span class="sourceLineNo">5152</span>                                                        ox = (iax - ibx);<a name="line.5152"></a>
+<span class="sourceLineNo">5153</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.5153"></a>
+<span class="sourceLineNo">5154</span>                                                }<a name="line.5154"></a>
+<span class="sourceLineNo">5155</span>                                        }<a name="line.5155"></a>
+<span class="sourceLineNo">5156</span>                                } else {<a name="line.5156"></a>
+<span class="sourceLineNo">5157</span>                                        while (it.hasNext()) {<a name="line.5157"></a>
+<span class="sourceLineNo">5158</span>                                                long iax = it.aLong;<a name="line.5158"></a>
+<span class="sourceLineNo">5159</span>                                                final long ibx = it.bLong;<a name="line.5159"></a>
+<span class="sourceLineNo">5160</span>                                                double ox;<a name="line.5160"></a>
+<span class="sourceLineNo">5161</span>                                                ox = (iax - ibx);<a name="line.5161"></a>
+<span class="sourceLineNo">5162</span>                                                oaf64data[it.oIndex] = ox;<a name="line.5162"></a>
+<span class="sourceLineNo">5163</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5163"></a>
+<span class="sourceLineNo">5164</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.5164"></a>
+<span class="sourceLineNo">5165</span>                                                        ox = (iax - ibx);<a name="line.5165"></a>
+<span class="sourceLineNo">5166</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.5166"></a>
+<span class="sourceLineNo">5167</span>                                                }<a name="line.5167"></a>
+<span class="sourceLineNo">5168</span>                                        }<a name="line.5168"></a>
+<span class="sourceLineNo">5169</span>                                }<a name="line.5169"></a>
+<span class="sourceLineNo">5170</span>                        } else if (as == 1) {<a name="line.5170"></a>
+<span class="sourceLineNo">5171</span>                                if (it.isOutputDouble()) {<a name="line.5171"></a>
+<span class="sourceLineNo">5172</span>                                        while (it.hasNext()) {<a name="line.5172"></a>
+<span class="sourceLineNo">5173</span>                                                final double iax = it.aDouble;<a name="line.5173"></a>
+<span class="sourceLineNo">5174</span>                                                final double ibx = it.bDouble;<a name="line.5174"></a>
+<span class="sourceLineNo">5175</span>                                                double ox;<a name="line.5175"></a>
+<span class="sourceLineNo">5176</span>                                                ox = (iax - ibx);<a name="line.5176"></a>
+<span class="sourceLineNo">5177</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.5177"></a>
+<span class="sourceLineNo">5178</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.5178"></a>
+<span class="sourceLineNo">5179</span>                                                }<a name="line.5179"></a>
+<span class="sourceLineNo">5180</span>                                        }<a name="line.5180"></a>
+<span class="sourceLineNo">5181</span>                                } else {<a name="line.5181"></a>
+<span class="sourceLineNo">5182</span>                                        while (it.hasNext()) {<a name="line.5182"></a>
+<span class="sourceLineNo">5183</span>                                                final long iax = it.aLong;<a name="line.5183"></a>
+<span class="sourceLineNo">5184</span>                                                final long ibx = it.bLong;<a name="line.5184"></a>
+<span class="sourceLineNo">5185</span>                                                double ox;<a name="line.5185"></a>
+<span class="sourceLineNo">5186</span>                                                ox = (iax - ibx);<a name="line.5186"></a>
+<span class="sourceLineNo">5187</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.5187"></a>
+<span class="sourceLineNo">5188</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.5188"></a>
+<span class="sourceLineNo">5189</span>                                                }<a name="line.5189"></a>
+<span class="sourceLineNo">5190</span>                                        }<a name="line.5190"></a>
+<span class="sourceLineNo">5191</span>                                }<a name="line.5191"></a>
+<span class="sourceLineNo">5192</span>                        } else {<a name="line.5192"></a>
+<span class="sourceLineNo">5193</span>                                if (it.isOutputDouble()) {<a name="line.5193"></a>
+<span class="sourceLineNo">5194</span>                                        while (it.hasNext()) {<a name="line.5194"></a>
+<span class="sourceLineNo">5195</span>                                                double iax = it.aDouble;<a name="line.5195"></a>
+<span class="sourceLineNo">5196</span>                                                double ibx = it.bDouble;<a name="line.5196"></a>
+<span class="sourceLineNo">5197</span>                                                double ox;<a name="line.5197"></a>
+<span class="sourceLineNo">5198</span>                                                ox = (iax - ibx);<a name="line.5198"></a>
+<span class="sourceLineNo">5199</span>                                                oaf64data[it.oIndex] = ox;<a name="line.5199"></a>
+<span class="sourceLineNo">5200</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5200"></a>
+<span class="sourceLineNo">5201</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.5201"></a>
+<span class="sourceLineNo">5202</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.5202"></a>
+<span class="sourceLineNo">5203</span>                                                        ox = (iax - ibx);<a name="line.5203"></a>
+<span class="sourceLineNo">5204</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.5204"></a>
+<span class="sourceLineNo">5205</span>                                                }<a name="line.5205"></a>
+<span class="sourceLineNo">5206</span>                                        }<a name="line.5206"></a>
+<span class="sourceLineNo">5207</span>                                } else {<a name="line.5207"></a>
+<span class="sourceLineNo">5208</span>                                        while (it.hasNext()) {<a name="line.5208"></a>
+<span class="sourceLineNo">5209</span>                                                long iax = it.aLong;<a name="line.5209"></a>
+<span class="sourceLineNo">5210</span>                                                long ibx = it.bLong;<a name="line.5210"></a>
+<span class="sourceLineNo">5211</span>                                                double ox;<a name="line.5211"></a>
+<span class="sourceLineNo">5212</span>                                                ox = (iax - ibx);<a name="line.5212"></a>
+<span class="sourceLineNo">5213</span>                                                oaf64data[it.oIndex] = ox;<a name="line.5213"></a>
+<span class="sourceLineNo">5214</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5214"></a>
+<span class="sourceLineNo">5215</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.5215"></a>
+<span class="sourceLineNo">5216</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.5216"></a>
+<span class="sourceLineNo">5217</span>                                                        ox = (iax - ibx);<a name="line.5217"></a>
+<span class="sourceLineNo">5218</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.5218"></a>
+<span class="sourceLineNo">5219</span>                                                }<a name="line.5219"></a>
+<span class="sourceLineNo">5220</span>                                        }<a name="line.5220"></a>
+<span class="sourceLineNo">5221</span>                                }<a name="line.5221"></a>
+<span class="sourceLineNo">5222</span>                        }<a name="line.5222"></a>
+<span class="sourceLineNo">5223</span>                        break;<a name="line.5223"></a>
+<span class="sourceLineNo">5224</span>                case Dataset.COMPLEX64:<a name="line.5224"></a>
+<span class="sourceLineNo">5225</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.5225"></a>
+<span class="sourceLineNo">5226</span>                        if (!da.isComplex()) {<a name="line.5226"></a>
+<span class="sourceLineNo">5227</span>                                if (it.isOutputDouble()) {<a name="line.5227"></a>
+<span class="sourceLineNo">5228</span>                                        final double iay = 0;<a name="line.5228"></a>
+<span class="sourceLineNo">5229</span>                                        if (db.isComplex()) {<a name="line.5229"></a>
+<span class="sourceLineNo">5230</span>                                                while (it.hasNext()) {<a name="line.5230"></a>
+<span class="sourceLineNo">5231</span>                                                        final double iax = it.aDouble;<a name="line.5231"></a>
+<span class="sourceLineNo">5232</span>                                                        final double ibx = it.bDouble;<a name="line.5232"></a>
+<span class="sourceLineNo">5233</span>                                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.5233"></a>
+<span class="sourceLineNo">5234</span>                                                        float ox;<a name="line.5234"></a>
+<span class="sourceLineNo">5235</span>                                                        float oy;<a name="line.5235"></a>
+<span class="sourceLineNo">5236</span>                                                        ox = (float) (iax - ibx);<a name="line.5236"></a>
+<span class="sourceLineNo">5237</span>                                                        oy = (float) (iay - iby);<a name="line.5237"></a>
+<span class="sourceLineNo">5238</span>                                                        oc64data[it.oIndex] = ox;<a name="line.5238"></a>
+<span class="sourceLineNo">5239</span>                                                        oc64data[it.oIndex + 1] = oy;<a name="line.5239"></a>
+<span class="sourceLineNo">5240</span>                                                }<a name="line.5240"></a>
+<span class="sourceLineNo">5241</span>                                        } else {<a name="line.5241"></a>
+<span class="sourceLineNo">5242</span>                                                while (it.hasNext()) {<a name="line.5242"></a>
+<span class="sourceLineNo">5243</span>                                                        final double iax = it.aDouble;<a name="line.5243"></a>
+<span class="sourceLineNo">5244</span>                                                        final double ibx = it.bDouble;<a name="line.5244"></a>
+<span class="sourceLineNo">5245</span>                                                        final double iby = 0;<a name="line.5245"></a>
+<span class="sourceLineNo">5246</span>                                                        float ox;<a name="line.5246"></a>
+<span class="sourceLineNo">5247</span>                                                        float oy;<a name="line.5247"></a>
+<span class="sourceLineNo">5248</span>                                                        ox = (float) (iax - ibx);<a name="line.5248"></a>
+<span class="sourceLineNo">5249</span>                                                        oy = (float) (iay - iby);<a name="line.5249"></a>
+<span class="sourceLineNo">5250</span>                                                        oc64data[it.oIndex] = ox;<a name="line.5250"></a>
+<span class="sourceLineNo">5251</span>                                                        oc64data[it.oIndex + 1] = oy;<a name="line.5251"></a>
+<span class="sourceLineNo">5252</span>                                                }<a name="line.5252"></a>
+<span class="sourceLineNo">5253</span>                                        }<a name="line.5253"></a>
+<span class="sourceLineNo">5254</span>                                } else {<a name="line.5254"></a>
+<span class="sourceLineNo">5255</span>                                        final long iay = 0;<a name="line.5255"></a>
+<span class="sourceLineNo">5256</span>                                        while (it.hasNext()) {<a name="line.5256"></a>
+<span class="sourceLineNo">5257</span>                                                final long iax = it.aLong;<a name="line.5257"></a>
+<span class="sourceLineNo">5258</span>                                                final long ibx = it.bLong;<a name="line.5258"></a>
+<span class="sourceLineNo">5259</span>                                                final long iby = 0;<a name="line.5259"></a>
+<span class="sourceLineNo">5260</span>                                                float ox;<a name="line.5260"></a>
+<span class="sourceLineNo">5261</span>                                                float oy;<a name="line.5261"></a>
+<span class="sourceLineNo">5262</span>                                                ox = (float) (iax - ibx);<a name="line.5262"></a>
+<span class="sourceLineNo">5263</span>                                                oy = (float) (iay - iby);<a name="line.5263"></a>
+<span class="sourceLineNo">5264</span>                                                oc64data[it.oIndex] = ox;<a name="line.5264"></a>
+<span class="sourceLineNo">5265</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.5265"></a>
+<span class="sourceLineNo">5266</span>                                        }<a name="line.5266"></a>
+<span class="sourceLineNo">5267</span>                                }<a name="line.5267"></a>
+<span class="sourceLineNo">5268</span>                        } else if (!db.isComplex()) {<a name="line.5268"></a>
+<span class="sourceLineNo">5269</span>                                final double iby = 0;<a name="line.5269"></a>
+<span class="sourceLineNo">5270</span>                                while (it.hasNext()) {<a name="line.5270"></a>
+<span class="sourceLineNo">5271</span>                                        final double iax = it.aDouble;<a name="line.5271"></a>
+<span class="sourceLineNo">5272</span>                                        final double ibx = it.bDouble;<a name="line.5272"></a>
+<span class="sourceLineNo">5273</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.5273"></a>
+<span class="sourceLineNo">5274</span>                                        float ox;<a name="line.5274"></a>
+<span class="sourceLineNo">5275</span>                                        float oy;<a name="line.5275"></a>
+<span class="sourceLineNo">5276</span>                                        ox = (float) (iax - ibx);<a name="line.5276"></a>
+<span class="sourceLineNo">5277</span>                                        oy = (float) (iay - iby);<a name="line.5277"></a>
+<span class="sourceLineNo">5278</span>                                        oc64data[it.oIndex] = ox;<a name="line.5278"></a>
+<span class="sourceLineNo">5279</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.5279"></a>
+<span class="sourceLineNo">5280</span>                                }<a name="line.5280"></a>
+<span class="sourceLineNo">5281</span>                        } else {<a name="line.5281"></a>
+<span class="sourceLineNo">5282</span>                                while (it.hasNext()) {<a name="line.5282"></a>
+<span class="sourceLineNo">5283</span>                                        final double iax = it.aDouble;<a name="line.5283"></a>
+<span class="sourceLineNo">5284</span>                                        final double ibx = it.bDouble;<a name="line.5284"></a>
+<span class="sourceLineNo">5285</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.5285"></a>
+<span class="sourceLineNo">5286</span>                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.5286"></a>
+<span class="sourceLineNo">5287</span>                                        float ox;<a name="line.5287"></a>
+<span class="sourceLineNo">5288</span>                                        float oy;<a name="line.5288"></a>
+<span class="sourceLineNo">5289</span>                                        ox = (float) (iax - ibx);<a name="line.5289"></a>
+<span class="sourceLineNo">5290</span>                                        oy = (float) (iay - iby);<a name="line.5290"></a>
+<span class="sourceLineNo">5291</span>                                        oc64data[it.oIndex] = ox;<a name="line.5291"></a>
+<span class="sourceLineNo">5292</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.5292"></a>
+<span class="sourceLineNo">5293</span>                                }<a name="line.5293"></a>
+<span class="sourceLineNo">5294</span>                        }<a name="line.5294"></a>
+<span class="sourceLineNo">5295</span>                        break;<a name="line.5295"></a>
+<span class="sourceLineNo">5296</span>                case Dataset.COMPLEX128:<a name="line.5296"></a>
+<span class="sourceLineNo">5297</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.5297"></a>
+<span class="sourceLineNo">5298</span>                        if (!da.isComplex()) {<a name="line.5298"></a>
+<span class="sourceLineNo">5299</span>                                if (it.isOutputDouble()) {<a name="line.5299"></a>
+<span class="sourceLineNo">5300</span>                                        final double iay = 0;<a name="line.5300"></a>
+<span class="sourceLineNo">5301</span>                                        if (db.isComplex()) {<a name="line.5301"></a>
+<span class="sourceLineNo">5302</span>                                                while (it.hasNext()) {<a name="line.5302"></a>
+<span class="sourceLineNo">5303</span>                                                        final double iax = it.aDouble;<a name="line.5303"></a>
+<span class="sourceLineNo">5304</span>                                                        final double ibx = it.bDouble;<a name="line.5304"></a>
+<span class="sourceLineNo">5305</span>                                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.5305"></a>
+<span class="sourceLineNo">5306</span>                                                        double ox;<a name="line.5306"></a>
+<span class="sourceLineNo">5307</span>                                                        double oy;<a name="line.5307"></a>
+<span class="sourceLineNo">5308</span>                                                        ox = (iax - ibx);<a name="line.5308"></a>
+<span class="sourceLineNo">5309</span>                                                        oy = (iay - iby);<a name="line.5309"></a>
+<span class="sourceLineNo">5310</span>                                                        oc128data[it.oIndex] = ox;<a name="line.5310"></a>
+<span class="sourceLineNo">5311</span>                                                        oc128data[it.oIndex + 1] = oy;<a name="line.5311"></a>
+<span class="sourceLineNo">5312</span>                                                }<a name="line.5312"></a>
+<span class="sourceLineNo">5313</span>                                        } else {<a name="line.5313"></a>
+<span class="sourceLineNo">5314</span>                                                while (it.hasNext()) {<a name="line.5314"></a>
+<span class="sourceLineNo">5315</span>                                                        final double iax = it.aDouble;<a name="line.5315"></a>
+<span class="sourceLineNo">5316</span>                                                        final double ibx = it.bDouble;<a name="line.5316"></a>
+<span class="sourceLineNo">5317</span>                                                        final double iby = 0;<a name="line.5317"></a>
+<span class="sourceLineNo">5318</span>                                                        double ox;<a name="line.5318"></a>
+<span class="sourceLineNo">5319</span>                                                        double oy;<a name="line.5319"></a>
+<span class="sourceLineNo">5320</span>                                                        ox = (iax - ibx);<a name="line.5320"></a>
+<span class="sourceLineNo">5321</span>                                                        oy = (iay - iby);<a name="line.5321"></a>
+<span class="sourceLineNo">5322</span>                                                        oc128data[it.oIndex] = ox;<a name="line.5322"></a>
+<span class="sourceLineNo">5323</span>                                                        oc128data[it.oIndex + 1] = oy;<a name="line.5323"></a>
+<span class="sourceLineNo">5324</span>                                                }<a name="line.5324"></a>
+<span class="sourceLineNo">5325</span>                                        }<a name="line.5325"></a>
+<span class="sourceLineNo">5326</span>                                } else {<a name="line.5326"></a>
+<span class="sourceLineNo">5327</span>                                        final long iay = 0;<a name="line.5327"></a>
+<span class="sourceLineNo">5328</span>                                        while (it.hasNext()) {<a name="line.5328"></a>
+<span class="sourceLineNo">5329</span>                                                final long iax = it.aLong;<a name="line.5329"></a>
+<span class="sourceLineNo">5330</span>                                                final long ibx = it.bLong;<a name="line.5330"></a>
+<span class="sourceLineNo">5331</span>                                                final long iby = 0;<a name="line.5331"></a>
+<span class="sourceLineNo">5332</span>                                                double ox;<a name="line.5332"></a>
+<span class="sourceLineNo">5333</span>                                                double oy;<a name="line.5333"></a>
+<span class="sourceLineNo">5334</span>                                                ox = (iax - ibx);<a name="line.5334"></a>
+<span class="sourceLineNo">5335</span>                                                oy = (iay - iby);<a name="line.5335"></a>
+<span class="sourceLineNo">5336</span>                                                oc128data[it.oIndex] = ox;<a name="line.5336"></a>
+<span class="sourceLineNo">5337</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.5337"></a>
+<span class="sourceLineNo">5338</span>                                        }<a name="line.5338"></a>
+<span class="sourceLineNo">5339</span>                                }<a name="line.5339"></a>
+<span class="sourceLineNo">5340</span>                        } else if (!db.isComplex()) {<a name="line.5340"></a>
+<span class="sourceLineNo">5341</span>                                final double iby = 0;<a name="line.5341"></a>
+<span class="sourceLineNo">5342</span>                                while (it.hasNext()) {<a name="line.5342"></a>
+<span class="sourceLineNo">5343</span>                                        final double iax = it.aDouble;<a name="line.5343"></a>
+<span class="sourceLineNo">5344</span>                                        final double ibx = it.bDouble;<a name="line.5344"></a>
+<span class="sourceLineNo">5345</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.5345"></a>
+<span class="sourceLineNo">5346</span>                                        double ox;<a name="line.5346"></a>
+<span class="sourceLineNo">5347</span>                                        double oy;<a name="line.5347"></a>
+<span class="sourceLineNo">5348</span>                                        ox = (iax - ibx);<a name="line.5348"></a>
+<span class="sourceLineNo">5349</span>                                        oy = (iay - iby);<a name="line.5349"></a>
+<span class="sourceLineNo">5350</span>                                        oc128data[it.oIndex] = ox;<a name="line.5350"></a>
+<span class="sourceLineNo">5351</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.5351"></a>
+<span class="sourceLineNo">5352</span>                                }<a name="line.5352"></a>
+<span class="sourceLineNo">5353</span>                        } else {<a name="line.5353"></a>
+<span class="sourceLineNo">5354</span>                                while (it.hasNext()) {<a name="line.5354"></a>
+<span class="sourceLineNo">5355</span>                                        final double iax = it.aDouble;<a name="line.5355"></a>
+<span class="sourceLineNo">5356</span>                                        final double ibx = it.bDouble;<a name="line.5356"></a>
+<span class="sourceLineNo">5357</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.5357"></a>
+<span class="sourceLineNo">5358</span>                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.5358"></a>
+<span class="sourceLineNo">5359</span>                                        double ox;<a name="line.5359"></a>
+<span class="sourceLineNo">5360</span>                                        double oy;<a name="line.5360"></a>
+<span class="sourceLineNo">5361</span>                                        ox = (iax - ibx);<a name="line.5361"></a>
+<span class="sourceLineNo">5362</span>                                        oy = (iay - iby);<a name="line.5362"></a>
+<span class="sourceLineNo">5363</span>                                        oc128data[it.oIndex] = ox;<a name="line.5363"></a>
+<span class="sourceLineNo">5364</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.5364"></a>
+<span class="sourceLineNo">5365</span>                                }<a name="line.5365"></a>
+<span class="sourceLineNo">5366</span>                        }<a name="line.5366"></a>
+<span class="sourceLineNo">5367</span>                        break;<a name="line.5367"></a>
+<span class="sourceLineNo">5368</span>                default:<a name="line.5368"></a>
+<span class="sourceLineNo">5369</span>                        throw new IllegalArgumentException("subtract supports integer, compound integer, real, compound real, complex datasets only");<a name="line.5369"></a>
+<span class="sourceLineNo">5370</span>                }<a name="line.5370"></a>
+<span class="sourceLineNo">5371</span><a name="line.5371"></a>
+<span class="sourceLineNo">5372</span>                addBinaryOperatorName(da, db, result, "-");<a name="line.5372"></a>
+<span class="sourceLineNo">5373</span>                return result;<a name="line.5373"></a>
+<span class="sourceLineNo">5374</span>        }<a name="line.5374"></a>
+<span class="sourceLineNo">5375</span><a name="line.5375"></a>
+<span class="sourceLineNo">5376</span>        /**<a name="line.5376"></a>
+<span class="sourceLineNo">5377</span>         * multiply operator<a name="line.5377"></a>
+<span class="sourceLineNo">5378</span>         * @param a<a name="line.5378"></a>
+<span class="sourceLineNo">5379</span>         * @param b<a name="line.5379"></a>
+<span class="sourceLineNo">5380</span>         * @return {@code a * b}, product of a and b<a name="line.5380"></a>
+<span class="sourceLineNo">5381</span>         */<a name="line.5381"></a>
+<span class="sourceLineNo">5382</span>        public static Dataset multiply(final Object a, final Object b) {<a name="line.5382"></a>
+<span class="sourceLineNo">5383</span>                return multiply(a, b, null);<a name="line.5383"></a>
+<span class="sourceLineNo">5384</span>        }<a name="line.5384"></a>
+<span class="sourceLineNo">5385</span><a name="line.5385"></a>
+<span class="sourceLineNo">5386</span>        /**<a name="line.5386"></a>
+<span class="sourceLineNo">5387</span>         * multiply operator<a name="line.5387"></a>
+<span class="sourceLineNo">5388</span>         * @param a<a name="line.5388"></a>
+<span class="sourceLineNo">5389</span>         * @param b<a name="line.5389"></a>
+<span class="sourceLineNo">5390</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.5390"></a>
+<span class="sourceLineNo">5391</span>         * @return {@code a * b}, product of a and b<a name="line.5391"></a>
+<span class="sourceLineNo">5392</span>         */<a name="line.5392"></a>
+<span class="sourceLineNo">5393</span>        public static Dataset multiply(final Object a, final Object b, final Dataset o) {<a name="line.5393"></a>
+<span class="sourceLineNo">5394</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.5394"></a>
+<span class="sourceLineNo">5395</span>                Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.5395"></a>
+<span class="sourceLineNo">5396</span>                BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.5396"></a>
+<span class="sourceLineNo">5397</span>                final Dataset result = it.getOutput();<a name="line.5397"></a>
+<span class="sourceLineNo">5398</span>                if (!result.isComplex()) {<a name="line.5398"></a>
+<span class="sourceLineNo">5399</span>                        boolean change = false;<a name="line.5399"></a>
+<span class="sourceLineNo">5400</span>                        if (da.isComplex()) {<a name="line.5400"></a>
+<span class="sourceLineNo">5401</span>                                da = da.getRealView();<a name="line.5401"></a>
+<span class="sourceLineNo">5402</span>                                change = true;<a name="line.5402"></a>
+<span class="sourceLineNo">5403</span>                        }<a name="line.5403"></a>
+<span class="sourceLineNo">5404</span>                        if (db.isComplex()) {<a name="line.5404"></a>
+<span class="sourceLineNo">5405</span>                                db = db.getRealView();<a name="line.5405"></a>
+<span class="sourceLineNo">5406</span>                                change = true;<a name="line.5406"></a>
+<span class="sourceLineNo">5407</span>                        }<a name="line.5407"></a>
+<span class="sourceLineNo">5408</span>                        if (change) {<a name="line.5408"></a>
+<span class="sourceLineNo">5409</span>                                it = BroadcastIterator.createIterator(da, db, result, true);<a name="line.5409"></a>
+<span class="sourceLineNo">5410</span>                        }<a name="line.5410"></a>
+<span class="sourceLineNo">5411</span>                }<a name="line.5411"></a>
+<span class="sourceLineNo">5412</span>                final int is = result.getElementsPerItem();<a name="line.5412"></a>
+<span class="sourceLineNo">5413</span>                final int as = da.getElementsPerItem();<a name="line.5413"></a>
+<span class="sourceLineNo">5414</span>                final int bs = db.getElementsPerItem();<a name="line.5414"></a>
+<span class="sourceLineNo">5415</span>                final int dt = result.getDType();<a name="line.5415"></a>
+<span class="sourceLineNo">5416</span><a name="line.5416"></a>
+<span class="sourceLineNo">5417</span>                switch(dt) {<a name="line.5417"></a>
+<span class="sourceLineNo">5418</span>                case Dataset.INT8:<a name="line.5418"></a>
+<span class="sourceLineNo">5419</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.5419"></a>
+<span class="sourceLineNo">5420</span>                        if (it.isOutputDouble()) {<a name="line.5420"></a>
+<span class="sourceLineNo">5421</span>                                while (it.hasNext()) {<a name="line.5421"></a>
+<span class="sourceLineNo">5422</span>                                        final double iax = it.aDouble;<a name="line.5422"></a>
+<span class="sourceLineNo">5423</span>                                        final double ibx = it.bDouble;<a name="line.5423"></a>
+<span class="sourceLineNo">5424</span>                                        byte ox;<a name="line.5424"></a>
+<span class="sourceLineNo">5425</span>                                        ox = (byte) toLong(iax * ibx);<a name="line.5425"></a>
+<span class="sourceLineNo">5426</span>                                        oi8data[it.oIndex] = ox;<a name="line.5426"></a>
+<span class="sourceLineNo">5427</span>                                }<a name="line.5427"></a>
+<span class="sourceLineNo">5428</span>                        } else {<a name="line.5428"></a>
+<span class="sourceLineNo">5429</span>                                while (it.hasNext()) {<a name="line.5429"></a>
+<span class="sourceLineNo">5430</span>                                        final long iax = it.aLong;<a name="line.5430"></a>
+<span class="sourceLineNo">5431</span>                                        final long ibx = it.bLong;<a name="line.5431"></a>
+<span class="sourceLineNo">5432</span>                                        byte ox;<a name="line.5432"></a>
+<span class="sourceLineNo">5433</span>                                        ox = (byte) (iax * ibx);<a name="line.5433"></a>
+<span class="sourceLineNo">5434</span>                                        oi8data[it.oIndex] = ox;<a name="line.5434"></a>
+<span class="sourceLineNo">5435</span>                                }<a name="line.5435"></a>
+<span class="sourceLineNo">5436</span>                        }<a name="line.5436"></a>
+<span class="sourceLineNo">5437</span>                        break;<a name="line.5437"></a>
+<span class="sourceLineNo">5438</span>                case Dataset.INT16:<a name="line.5438"></a>
+<span class="sourceLineNo">5439</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.5439"></a>
+<span class="sourceLineNo">5440</span>                        if (it.isOutputDouble()) {<a name="line.5440"></a>
+<span class="sourceLineNo">5441</span>                                while (it.hasNext()) {<a name="line.5441"></a>
+<span class="sourceLineNo">5442</span>                                        final double iax = it.aDouble;<a name="line.5442"></a>
+<span class="sourceLineNo">5443</span>                                        final double ibx = it.bDouble;<a name="line.5443"></a>
+<span class="sourceLineNo">5444</span>                                        short ox;<a name="line.5444"></a>
+<span class="sourceLineNo">5445</span>                                        ox = (short) toLong(iax * ibx);<a name="line.5445"></a>
+<span class="sourceLineNo">5446</span>                                        oi16data[it.oIndex] = ox;<a name="line.5446"></a>
+<span class="sourceLineNo">5447</span>                                }<a name="line.5447"></a>
+<span class="sourceLineNo">5448</span>                        } else {<a name="line.5448"></a>
+<span class="sourceLineNo">5449</span>                                while (it.hasNext()) {<a name="line.5449"></a>
+<span class="sourceLineNo">5450</span>                                        final long iax = it.aLong;<a name="line.5450"></a>
+<span class="sourceLineNo">5451</span>                                        final long ibx = it.bLong;<a name="line.5451"></a>
+<span class="sourceLineNo">5452</span>                                        short ox;<a name="line.5452"></a>
+<span class="sourceLineNo">5453</span>                                        ox = (short) (iax * ibx);<a name="line.5453"></a>
+<span class="sourceLineNo">5454</span>                                        oi16data[it.oIndex] = ox;<a name="line.5454"></a>
+<span class="sourceLineNo">5455</span>                                }<a name="line.5455"></a>
+<span class="sourceLineNo">5456</span>                        }<a name="line.5456"></a>
+<span class="sourceLineNo">5457</span>                        break;<a name="line.5457"></a>
+<span class="sourceLineNo">5458</span>                case Dataset.INT64:<a name="line.5458"></a>
+<span class="sourceLineNo">5459</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.5459"></a>
+<span class="sourceLineNo">5460</span>                        if (it.isOutputDouble()) {<a name="line.5460"></a>
+<span class="sourceLineNo">5461</span>                                while (it.hasNext()) {<a name="line.5461"></a>
+<span class="sourceLineNo">5462</span>                                        final double iax = it.aDouble;<a name="line.5462"></a>
+<span class="sourceLineNo">5463</span>                                        final double ibx = it.bDouble;<a name="line.5463"></a>
+<span class="sourceLineNo">5464</span>                                        long ox;<a name="line.5464"></a>
+<span class="sourceLineNo">5465</span>                                        ox = toLong(iax * ibx);<a name="line.5465"></a>
+<span class="sourceLineNo">5466</span>                                        oi64data[it.oIndex] = ox;<a name="line.5466"></a>
+<span class="sourceLineNo">5467</span>                                }<a name="line.5467"></a>
+<span class="sourceLineNo">5468</span>                        } else {<a name="line.5468"></a>
+<span class="sourceLineNo">5469</span>                                while (it.hasNext()) {<a name="line.5469"></a>
+<span class="sourceLineNo">5470</span>                                        final long iax = it.aLong;<a name="line.5470"></a>
+<span class="sourceLineNo">5471</span>                                        final long ibx = it.bLong;<a name="line.5471"></a>
+<span class="sourceLineNo">5472</span>                                        long ox;<a name="line.5472"></a>
+<span class="sourceLineNo">5473</span>                                        ox = (iax * ibx);<a name="line.5473"></a>
+<span class="sourceLineNo">5474</span>                                        oi64data[it.oIndex] = ox;<a name="line.5474"></a>
+<span class="sourceLineNo">5475</span>                                }<a name="line.5475"></a>
+<span class="sourceLineNo">5476</span>                        }<a name="line.5476"></a>
+<span class="sourceLineNo">5477</span>                        break;<a name="line.5477"></a>
+<span class="sourceLineNo">5478</span>                case Dataset.INT32:<a name="line.5478"></a>
+<span class="sourceLineNo">5479</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.5479"></a>
+<span class="sourceLineNo">5480</span>                        if (it.isOutputDouble()) {<a name="line.5480"></a>
+<span class="sourceLineNo">5481</span>                                while (it.hasNext()) {<a name="line.5481"></a>
+<span class="sourceLineNo">5482</span>                                        final double iax = it.aDouble;<a name="line.5482"></a>
+<span class="sourceLineNo">5483</span>                                        final double ibx = it.bDouble;<a name="line.5483"></a>
+<span class="sourceLineNo">5484</span>                                        int ox;<a name="line.5484"></a>
+<span class="sourceLineNo">5485</span>                                        ox = (int) toLong(iax * ibx);<a name="line.5485"></a>
+<span class="sourceLineNo">5486</span>                                        oi32data[it.oIndex] = ox;<a name="line.5486"></a>
+<span class="sourceLineNo">5487</span>                                }<a name="line.5487"></a>
+<span class="sourceLineNo">5488</span>                        } else {<a name="line.5488"></a>
+<span class="sourceLineNo">5489</span>                                while (it.hasNext()) {<a name="line.5489"></a>
+<span class="sourceLineNo">5490</span>                                        final long iax = it.aLong;<a name="line.5490"></a>
+<span class="sourceLineNo">5491</span>                                        final long ibx = it.bLong;<a name="line.5491"></a>
+<span class="sourceLineNo">5492</span>                                        int ox;<a name="line.5492"></a>
+<span class="sourceLineNo">5493</span>                                        ox = (int) (iax * ibx);<a name="line.5493"></a>
+<span class="sourceLineNo">5494</span>                                        oi32data[it.oIndex] = ox;<a name="line.5494"></a>
+<span class="sourceLineNo">5495</span>                                }<a name="line.5495"></a>
+<span class="sourceLineNo">5496</span>                        }<a name="line.5496"></a>
+<span class="sourceLineNo">5497</span>                        break;<a name="line.5497"></a>
+<span class="sourceLineNo">5498</span>                case Dataset.ARRAYINT8:<a name="line.5498"></a>
+<span class="sourceLineNo">5499</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.5499"></a>
+<span class="sourceLineNo">5500</span>                        if (is == 1) {<a name="line.5500"></a>
+<span class="sourceLineNo">5501</span>                                if (it.isOutputDouble()) {<a name="line.5501"></a>
+<span class="sourceLineNo">5502</span>                                        while (it.hasNext()) {<a name="line.5502"></a>
+<span class="sourceLineNo">5503</span>                                                final double iax = it.aDouble;<a name="line.5503"></a>
+<span class="sourceLineNo">5504</span>                                                final double ibx = it.bDouble;<a name="line.5504"></a>
+<span class="sourceLineNo">5505</span>                                                byte ox;<a name="line.5505"></a>
+<span class="sourceLineNo">5506</span>                                                ox = (byte) toLong(iax * ibx);<a name="line.5506"></a>
+<span class="sourceLineNo">5507</span>                                                oai8data[it.oIndex] = ox;<a name="line.5507"></a>
+<span class="sourceLineNo">5508</span>                                        }<a name="line.5508"></a>
+<span class="sourceLineNo">5509</span>                                } else {<a name="line.5509"></a>
+<span class="sourceLineNo">5510</span>                                        while (it.hasNext()) {<a name="line.5510"></a>
+<span class="sourceLineNo">5511</span>                                                final long iax = it.aLong;<a name="line.5511"></a>
+<span class="sourceLineNo">5512</span>                                                final long ibx = it.bLong;<a name="line.5512"></a>
+<span class="sourceLineNo">5513</span>                                                byte ox;<a name="line.5513"></a>
+<span class="sourceLineNo">5514</span>                                                ox = (byte) (iax * ibx);<a name="line.5514"></a>
+<span class="sourceLineNo">5515</span>                                                oai8data[it.oIndex] = ox;<a name="line.5515"></a>
+<span class="sourceLineNo">5516</span>                                        }<a name="line.5516"></a>
+<span class="sourceLineNo">5517</span>                                }<a name="line.5517"></a>
+<span class="sourceLineNo">5518</span>                        } else if (as &lt; bs) {<a name="line.5518"></a>
+<span class="sourceLineNo">5519</span>                                if (it.isOutputDouble()) {<a name="line.5519"></a>
+<span class="sourceLineNo">5520</span>                                        while (it.hasNext()) {<a name="line.5520"></a>
+<span class="sourceLineNo">5521</span>                                                final double iax = it.aDouble;<a name="line.5521"></a>
+<span class="sourceLineNo">5522</span>                                                double ibx = it.bDouble;<a name="line.5522"></a>
+<span class="sourceLineNo">5523</span>                                                byte ox;<a name="line.5523"></a>
+<span class="sourceLineNo">5524</span>                                                ox = (byte) toLong(iax * ibx);<a name="line.5524"></a>
+<span class="sourceLineNo">5525</span>                                                oai8data[it.oIndex] = ox;<a name="line.5525"></a>
+<span class="sourceLineNo">5526</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5526"></a>
+<span class="sourceLineNo">5527</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.5527"></a>
+<span class="sourceLineNo">5528</span>                                                        ox = (byte) toLong(iax * ibx);<a name="line.5528"></a>
+<span class="sourceLineNo">5529</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.5529"></a>
+<span class="sourceLineNo">5530</span>                                                }<a name="line.5530"></a>
+<span class="sourceLineNo">5531</span>                                        }<a name="line.5531"></a>
+<span class="sourceLineNo">5532</span>                                } else {<a name="line.5532"></a>
+<span class="sourceLineNo">5533</span>                                        while (it.hasNext()) {<a name="line.5533"></a>
+<span class="sourceLineNo">5534</span>                                                final long iax = it.aLong;<a name="line.5534"></a>
+<span class="sourceLineNo">5535</span>                                                long ibx = it.bLong;<a name="line.5535"></a>
+<span class="sourceLineNo">5536</span>                                                byte ox;<a name="line.5536"></a>
+<span class="sourceLineNo">5537</span>                                                ox = (byte) (iax * ibx);<a name="line.5537"></a>
+<span class="sourceLineNo">5538</span>                                                oai8data[it.oIndex] = ox;<a name="line.5538"></a>
+<span class="sourceLineNo">5539</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5539"></a>
+<span class="sourceLineNo">5540</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.5540"></a>
+<span class="sourceLineNo">5541</span>                                                        ox = (byte) (iax * ibx);<a name="line.5541"></a>
+<span class="sourceLineNo">5542</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.5542"></a>
+<span class="sourceLineNo">5543</span>                                                }<a name="line.5543"></a>
+<span class="sourceLineNo">5544</span>                                        }<a name="line.5544"></a>
+<span class="sourceLineNo">5545</span>                                }<a name="line.5545"></a>
+<span class="sourceLineNo">5546</span>                        } else if (as &gt; bs) {<a name="line.5546"></a>
+<span class="sourceLineNo">5547</span>                                if (it.isOutputDouble()) {<a name="line.5547"></a>
+<span class="sourceLineNo">5548</span>                                        while (it.hasNext()) {<a name="line.5548"></a>
+<span class="sourceLineNo">5549</span>                                                double iax = it.aDouble;<a name="line.5549"></a>
+<span class="sourceLineNo">5550</span>                                                final double ibx = it.bDouble;<a name="line.5550"></a>
+<span class="sourceLineNo">5551</span>                                                byte ox;<a name="line.5551"></a>
+<span class="sourceLineNo">5552</span>                                                ox = (byte) toLong(iax * ibx);<a name="line.5552"></a>
+<span class="sourceLineNo">5553</span>                                                oai8data[it.oIndex] = ox;<a name="line.5553"></a>
+<span class="sourceLineNo">5554</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5554"></a>
+<span class="sourceLineNo">5555</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.5555"></a>
+<span class="sourceLineNo">5556</span>                                                        ox = (byte) toLong(iax * ibx);<a name="line.5556"></a>
+<span class="sourceLineNo">5557</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.5557"></a>
+<span class="sourceLineNo">5558</span>                                                }<a name="line.5558"></a>
+<span class="sourceLineNo">5559</span>                                        }<a name="line.5559"></a>
+<span class="sourceLineNo">5560</span>                                } else {<a name="line.5560"></a>
+<span class="sourceLineNo">5561</span>                                        while (it.hasNext()) {<a name="line.5561"></a>
+<span class="sourceLineNo">5562</span>                                                long iax = it.aLong;<a name="line.5562"></a>
+<span class="sourceLineNo">5563</span>                                                final long ibx = it.bLong;<a name="line.5563"></a>
+<span class="sourceLineNo">5564</span>                                                byte ox;<a name="line.5564"></a>
+<span class="sourceLineNo">5565</span>                                                ox = (byte) (iax * ibx);<a name="line.5565"></a>
+<span class="sourceLineNo">5566</span>                                                oai8data[it.oIndex] = ox;<a name="line.5566"></a>
+<span class="sourceLineNo">5567</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5567"></a>
+<span class="sourceLineNo">5568</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.5568"></a>
+<span class="sourceLineNo">5569</span>                                                        ox = (byte) (iax * ibx);<a name="line.5569"></a>
+<span class="sourceLineNo">5570</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.5570"></a>
+<span class="sourceLineNo">5571</span>                                                }<a name="line.5571"></a>
+<span class="sourceLineNo">5572</span>                                        }<a name="line.5572"></a>
+<span class="sourceLineNo">5573</span>                                }<a name="line.5573"></a>
+<span class="sourceLineNo">5574</span>                        } else if (as == 1) {<a name="line.5574"></a>
+<span class="sourceLineNo">5575</span>                                if (it.isOutputDouble()) {<a name="line.5575"></a>
+<span class="sourceLineNo">5576</span>                                        while (it.hasNext()) {<a name="line.5576"></a>
+<span class="sourceLineNo">5577</span>                                                final double iax = it.aDouble;<a name="line.5577"></a>
+<span class="sourceLineNo">5578</span>                                                final double ibx = it.bDouble;<a name="line.5578"></a>
+<span class="sourceLineNo">5579</span>                                                byte ox;<a name="line.5579"></a>
+<span class="sourceLineNo">5580</span>                                                ox = (byte) toLong(iax * ibx);<a name="line.5580"></a>
+<span class="sourceLineNo">5581</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.5581"></a>
+<span class="sourceLineNo">5582</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.5582"></a>
+<span class="sourceLineNo">5583</span>                                                }<a name="line.5583"></a>
+<span class="sourceLineNo">5584</span>                                        }<a name="line.5584"></a>
+<span class="sourceLineNo">5585</span>                                } else {<a name="line.5585"></a>
+<span class="sourceLineNo">5586</span>                                        while (it.hasNext()) {<a name="line.5586"></a>
+<span class="sourceLineNo">5587</span>                                                final long iax = it.aLong;<a name="line.5587"></a>
+<span class="sourceLineNo">5588</span>                                                final long ibx = it.bLong;<a name="line.5588"></a>
+<span class="sourceLineNo">5589</span>                                                byte ox;<a name="line.5589"></a>
+<span class="sourceLineNo">5590</span>                                                ox = (byte) (iax * ibx);<a name="line.5590"></a>
+<span class="sourceLineNo">5591</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.5591"></a>
+<span class="sourceLineNo">5592</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.5592"></a>
+<span class="sourceLineNo">5593</span>                                                }<a name="line.5593"></a>
+<span class="sourceLineNo">5594</span>                                        }<a name="line.5594"></a>
+<span class="sourceLineNo">5595</span>                                }<a name="line.5595"></a>
+<span class="sourceLineNo">5596</span>                        } else {<a name="line.5596"></a>
+<span class="sourceLineNo">5597</span>                                if (it.isOutputDouble()) {<a name="line.5597"></a>
+<span class="sourceLineNo">5598</span>                                        while (it.hasNext()) {<a name="line.5598"></a>
+<span class="sourceLineNo">5599</span>                                                double iax = it.aDouble;<a name="line.5599"></a>
+<span class="sourceLineNo">5600</span>                                                double ibx = it.bDouble;<a name="line.5600"></a>
+<span class="sourceLineNo">5601</span>                                                byte ox;<a name="line.5601"></a>
+<span class="sourceLineNo">5602</span>                                                ox = (byte) toLong(iax * ibx);<a name="line.5602"></a>
+<span class="sourceLineNo">5603</span>                                                oai8data[it.oIndex] = ox;<a name="line.5603"></a>
+<span class="sourceLineNo">5604</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5604"></a>
+<span class="sourceLineNo">5605</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.5605"></a>
+<span class="sourceLineNo">5606</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.5606"></a>
+<span class="sourceLineNo">5607</span>                                                        ox = (byte) toLong(iax * ibx);<a name="line.5607"></a>
+<span class="sourceLineNo">5608</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.5608"></a>
+<span class="sourceLineNo">5609</span>                                                }<a name="line.5609"></a>
+<span class="sourceLineNo">5610</span>                                        }<a name="line.5610"></a>
+<span class="sourceLineNo">5611</span>                                } else {<a name="line.5611"></a>
+<span class="sourceLineNo">5612</span>                                        while (it.hasNext()) {<a name="line.5612"></a>
+<span class="sourceLineNo">5613</span>                                                long iax = it.aLong;<a name="line.5613"></a>
+<span class="sourceLineNo">5614</span>                                                long ibx = it.bLong;<a name="line.5614"></a>
+<span class="sourceLineNo">5615</span>                                                byte ox;<a name="line.5615"></a>
+<span class="sourceLineNo">5616</span>                                                ox = (byte) (iax * ibx);<a name="line.5616"></a>
+<span class="sourceLineNo">5617</span>                                                oai8data[it.oIndex] = ox;<a name="line.5617"></a>
+<span class="sourceLineNo">5618</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5618"></a>
+<span class="sourceLineNo">5619</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.5619"></a>
+<span class="sourceLineNo">5620</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.5620"></a>
+<span class="sourceLineNo">5621</span>                                                        ox = (byte) (iax * ibx);<a name="line.5621"></a>
+<span class="sourceLineNo">5622</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.5622"></a>
+<span class="sourceLineNo">5623</span>                                                }<a name="line.5623"></a>
+<span class="sourceLineNo">5624</span>                                        }<a name="line.5624"></a>
+<span class="sourceLineNo">5625</span>                                }<a name="line.5625"></a>
+<span class="sourceLineNo">5626</span>                        }<a name="line.5626"></a>
+<span class="sourceLineNo">5627</span>                        break;<a name="line.5627"></a>
+<span class="sourceLineNo">5628</span>                case Dataset.ARRAYINT16:<a name="line.5628"></a>
+<span class="sourceLineNo">5629</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.5629"></a>
+<span class="sourceLineNo">5630</span>                        if (is == 1) {<a name="line.5630"></a>
+<span class="sourceLineNo">5631</span>                                if (it.isOutputDouble()) {<a name="line.5631"></a>
+<span class="sourceLineNo">5632</span>                                        while (it.hasNext()) {<a name="line.5632"></a>
+<span class="sourceLineNo">5633</span>                                                final double iax = it.aDouble;<a name="line.5633"></a>
+<span class="sourceLineNo">5634</span>                                                final double ibx = it.bDouble;<a name="line.5634"></a>
+<span class="sourceLineNo">5635</span>                                                short ox;<a name="line.5635"></a>
+<span class="sourceLineNo">5636</span>                                                ox = (short) toLong(iax * ibx);<a name="line.5636"></a>
+<span class="sourceLineNo">5637</span>                                                oai16data[it.oIndex] = ox;<a name="line.5637"></a>
+<span class="sourceLineNo">5638</span>                                        }<a name="line.5638"></a>
+<span class="sourceLineNo">5639</span>                                } else {<a name="line.5639"></a>
+<span class="sourceLineNo">5640</span>                                        while (it.hasNext()) {<a name="line.5640"></a>
+<span class="sourceLineNo">5641</span>                                                final long iax = it.aLong;<a name="line.5641"></a>
+<span class="sourceLineNo">5642</span>                                                final long ibx = it.bLong;<a name="line.5642"></a>
+<span class="sourceLineNo">5643</span>                                                short ox;<a name="line.5643"></a>
+<span class="sourceLineNo">5644</span>                                                ox = (short) (iax * ibx);<a name="line.5644"></a>
+<span class="sourceLineNo">5645</span>                                                oai16data[it.oIndex] = ox;<a name="line.5645"></a>
+<span class="sourceLineNo">5646</span>                                        }<a name="line.5646"></a>
+<span class="sourceLineNo">5647</span>                                }<a name="line.5647"></a>
+<span class="sourceLineNo">5648</span>                        } else if (as &lt; bs) {<a name="line.5648"></a>
+<span class="sourceLineNo">5649</span>                                if (it.isOutputDouble()) {<a name="line.5649"></a>
+<span class="sourceLineNo">5650</span>                                        while (it.hasNext()) {<a name="line.5650"></a>
+<span class="sourceLineNo">5651</span>                                                final double iax = it.aDouble;<a name="line.5651"></a>
+<span class="sourceLineNo">5652</span>                                                double ibx = it.bDouble;<a name="line.5652"></a>
+<span class="sourceLineNo">5653</span>                                                short ox;<a name="line.5653"></a>
+<span class="sourceLineNo">5654</span>                                                ox = (short) toLong(iax * ibx);<a name="line.5654"></a>
+<span class="sourceLineNo">5655</span>                                                oai16data[it.oIndex] = ox;<a name="line.5655"></a>
+<span class="sourceLineNo">5656</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5656"></a>
+<span class="sourceLineNo">5657</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.5657"></a>
+<span class="sourceLineNo">5658</span>                                                        ox = (short) toLong(iax * ibx);<a name="line.5658"></a>
+<span class="sourceLineNo">5659</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.5659"></a>
+<span class="sourceLineNo">5660</span>                                                }<a name="line.5660"></a>
+<span class="sourceLineNo">5661</span>                                        }<a name="line.5661"></a>
+<span class="sourceLineNo">5662</span>                                } else {<a name="line.5662"></a>
+<span class="sourceLineNo">5663</span>                                        while (it.hasNext()) {<a name="line.5663"></a>
+<span class="sourceLineNo">5664</span>                                                final long iax = it.aLong;<a name="line.5664"></a>
+<span class="sourceLineNo">5665</span>                                                long ibx = it.bLong;<a name="line.5665"></a>
+<span class="sourceLineNo">5666</span>                                                short ox;<a name="line.5666"></a>
+<span class="sourceLineNo">5667</span>                                                ox = (short) (iax * ibx);<a name="line.5667"></a>
+<span class="sourceLineNo">5668</span>                                                oai16data[it.oIndex] = ox;<a name="line.5668"></a>
+<span class="sourceLineNo">5669</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5669"></a>
+<span class="sourceLineNo">5670</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.5670"></a>
+<span class="sourceLineNo">5671</span>                                                        ox = (short) (iax * ibx);<a name="line.5671"></a>
+<span class="sourceLineNo">5672</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.5672"></a>
+<span class="sourceLineNo">5673</span>                                                }<a name="line.5673"></a>
+<span class="sourceLineNo">5674</span>                                        }<a name="line.5674"></a>
+<span class="sourceLineNo">5675</span>                                }<a name="line.5675"></a>
+<span class="sourceLineNo">5676</span>                        } else if (as &gt; bs) {<a name="line.5676"></a>
+<span class="sourceLineNo">5677</span>                                if (it.isOutputDouble()) {<a name="line.5677"></a>
+<span class="sourceLineNo">5678</span>                                        while (it.hasNext()) {<a name="line.5678"></a>
+<span class="sourceLineNo">5679</span>                                                double iax = it.aDouble;<a name="line.5679"></a>
+<span class="sourceLineNo">5680</span>                                                final double ibx = it.bDouble;<a name="line.5680"></a>
+<span class="sourceLineNo">5681</span>                                                short ox;<a name="line.5681"></a>
+<span class="sourceLineNo">5682</span>                                                ox = (short) toLong(iax * ibx);<a name="line.5682"></a>
+<span class="sourceLineNo">5683</span>                                                oai16data[it.oIndex] = ox;<a name="line.5683"></a>
+<span class="sourceLineNo">5684</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5684"></a>
+<span class="sourceLineNo">5685</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.5685"></a>
+<span class="sourceLineNo">5686</span>                                                        ox = (short) toLong(iax * ibx);<a name="line.5686"></a>
+<span class="sourceLineNo">5687</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.5687"></a>
+<span class="sourceLineNo">5688</span>                                                }<a name="line.5688"></a>
+<span class="sourceLineNo">5689</span>                                        }<a name="line.5689"></a>
+<span class="sourceLineNo">5690</span>                                } else {<a name="line.5690"></a>
+<span class="sourceLineNo">5691</span>                                        while (it.hasNext()) {<a name="line.5691"></a>
+<span class="sourceLineNo">5692</span>                                                long iax = it.aLong;<a name="line.5692"></a>
+<span class="sourceLineNo">5693</span>                                                final long ibx = it.bLong;<a name="line.5693"></a>
+<span class="sourceLineNo">5694</span>                                                short ox;<a name="line.5694"></a>
+<span class="sourceLineNo">5695</span>                                                ox = (short) (iax * ibx);<a name="line.5695"></a>
+<span class="sourceLineNo">5696</span>                                                oai16data[it.oIndex] = ox;<a name="line.5696"></a>
+<span class="sourceLineNo">5697</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5697"></a>
+<span class="sourceLineNo">5698</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.5698"></a>
+<span class="sourceLineNo">5699</span>                                                        ox = (short) (iax * ibx);<a name="line.5699"></a>
+<span class="sourceLineNo">5700</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.5700"></a>
+<span class="sourceLineNo">5701</span>                                                }<a name="line.5701"></a>
+<span class="sourceLineNo">5702</span>                                        }<a name="line.5702"></a>
+<span class="sourceLineNo">5703</span>                                }<a name="line.5703"></a>
+<span class="sourceLineNo">5704</span>                        } else if (as == 1) {<a name="line.5704"></a>
+<span class="sourceLineNo">5705</span>                                if (it.isOutputDouble()) {<a name="line.5705"></a>
+<span class="sourceLineNo">5706</span>                                        while (it.hasNext()) {<a name="line.5706"></a>
+<span class="sourceLineNo">5707</span>                                                final double iax = it.aDouble;<a name="line.5707"></a>
+<span class="sourceLineNo">5708</span>                                                final double ibx = it.bDouble;<a name="line.5708"></a>
+<span class="sourceLineNo">5709</span>                                                short ox;<a name="line.5709"></a>
+<span class="sourceLineNo">5710</span>                                                ox = (short) toLong(iax * ibx);<a name="line.5710"></a>
+<span class="sourceLineNo">5711</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.5711"></a>
+<span class="sourceLineNo">5712</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.5712"></a>
+<span class="sourceLineNo">5713</span>                                                }<a name="line.5713"></a>
+<span class="sourceLineNo">5714</span>                                        }<a name="line.5714"></a>
+<span class="sourceLineNo">5715</span>                                } else {<a name="line.5715"></a>
+<span class="sourceLineNo">5716</span>                                        while (it.hasNext()) {<a name="line.5716"></a>
+<span class="sourceLineNo">5717</span>                                                final long iax = it.aLong;<a name="line.5717"></a>
+<span class="sourceLineNo">5718</span>                                                final long ibx = it.bLong;<a name="line.5718"></a>
+<span class="sourceLineNo">5719</span>                                                short ox;<a name="line.5719"></a>
+<span class="sourceLineNo">5720</span>                                                ox = (short) (iax * ibx);<a name="line.5720"></a>
+<span class="sourceLineNo">5721</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.5721"></a>
+<span class="sourceLineNo">5722</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.5722"></a>
+<span class="sourceLineNo">5723</span>                                                }<a name="line.5723"></a>
+<span class="sourceLineNo">5724</span>                                        }<a name="line.5724"></a>
+<span class="sourceLineNo">5725</span>                                }<a name="line.5725"></a>
+<span class="sourceLineNo">5726</span>                        } else {<a name="line.5726"></a>
+<span class="sourceLineNo">5727</span>                                if (it.isOutputDouble()) {<a name="line.5727"></a>
+<span class="sourceLineNo">5728</span>                                        while (it.hasNext()) {<a name="line.5728"></a>
+<span class="sourceLineNo">5729</span>                                                double iax = it.aDouble;<a name="line.5729"></a>
+<span class="sourceLineNo">5730</span>                                                double ibx = it.bDouble;<a name="line.5730"></a>
+<span class="sourceLineNo">5731</span>                                                short ox;<a name="line.5731"></a>
+<span class="sourceLineNo">5732</span>                                                ox = (short) toLong(iax * ibx);<a name="line.5732"></a>
+<span class="sourceLineNo">5733</span>                                                oai16data[it.oIndex] = ox;<a name="line.5733"></a>
+<span class="sourceLineNo">5734</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5734"></a>
+<span class="sourceLineNo">5735</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.5735"></a>
+<span class="sourceLineNo">5736</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.5736"></a>
+<span class="sourceLineNo">5737</span>                                                        ox = (short) toLong(iax * ibx);<a name="line.5737"></a>
+<span class="sourceLineNo">5738</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.5738"></a>
+<span class="sourceLineNo">5739</span>                                                }<a name="line.5739"></a>
+<span class="sourceLineNo">5740</span>                                        }<a name="line.5740"></a>
+<span class="sourceLineNo">5741</span>                                } else {<a name="line.5741"></a>
+<span class="sourceLineNo">5742</span>                                        while (it.hasNext()) {<a name="line.5742"></a>
+<span class="sourceLineNo">5743</span>                                                long iax = it.aLong;<a name="line.5743"></a>
+<span class="sourceLineNo">5744</span>                                                long ibx = it.bLong;<a name="line.5744"></a>
+<span class="sourceLineNo">5745</span>                                                short ox;<a name="line.5745"></a>
+<span class="sourceLineNo">5746</span>                                                ox = (short) (iax * ibx);<a name="line.5746"></a>
+<span class="sourceLineNo">5747</span>                                                oai16data[it.oIndex] = ox;<a name="line.5747"></a>
+<span class="sourceLineNo">5748</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5748"></a>
+<span class="sourceLineNo">5749</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.5749"></a>
+<span class="sourceLineNo">5750</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.5750"></a>
+<span class="sourceLineNo">5751</span>                                                        ox = (short) (iax * ibx);<a name="line.5751"></a>
+<span class="sourceLineNo">5752</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.5752"></a>
+<span class="sourceLineNo">5753</span>                                                }<a name="line.5753"></a>
+<span class="sourceLineNo">5754</span>                                        }<a name="line.5754"></a>
+<span class="sourceLineNo">5755</span>                                }<a name="line.5755"></a>
+<span class="sourceLineNo">5756</span>                        }<a name="line.5756"></a>
+<span class="sourceLineNo">5757</span>                        break;<a name="line.5757"></a>
+<span class="sourceLineNo">5758</span>                case Dataset.ARRAYINT64:<a name="line.5758"></a>
+<span class="sourceLineNo">5759</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.5759"></a>
+<span class="sourceLineNo">5760</span>                        if (is == 1) {<a name="line.5760"></a>
+<span class="sourceLineNo">5761</span>                                if (it.isOutputDouble()) {<a name="line.5761"></a>
+<span class="sourceLineNo">5762</span>                                        while (it.hasNext()) {<a name="line.5762"></a>
+<span class="sourceLineNo">5763</span>                                                final double iax = it.aDouble;<a name="line.5763"></a>
+<span class="sourceLineNo">5764</span>                                                final double ibx = it.bDouble;<a name="line.5764"></a>
+<span class="sourceLineNo">5765</span>                                                long ox;<a name="line.5765"></a>
+<span class="sourceLineNo">5766</span>                                                ox = toLong(iax * ibx);<a name="line.5766"></a>
+<span class="sourceLineNo">5767</span>                                                oai64data[it.oIndex] = ox;<a name="line.5767"></a>
+<span class="sourceLineNo">5768</span>                                        }<a name="line.5768"></a>
+<span class="sourceLineNo">5769</span>                                } else {<a name="line.5769"></a>
+<span class="sourceLineNo">5770</span>                                        while (it.hasNext()) {<a name="line.5770"></a>
+<span class="sourceLineNo">5771</span>                                                final long iax = it.aLong;<a name="line.5771"></a>
+<span class="sourceLineNo">5772</span>                                                final long ibx = it.bLong;<a name="line.5772"></a>
+<span class="sourceLineNo">5773</span>                                                long ox;<a name="line.5773"></a>
+<span class="sourceLineNo">5774</span>                                                ox = (iax * ibx);<a name="line.5774"></a>
+<span class="sourceLineNo">5775</span>                                                oai64data[it.oIndex] = ox;<a name="line.5775"></a>
+<span class="sourceLineNo">5776</span>                                        }<a name="line.5776"></a>
+<span class="sourceLineNo">5777</span>                                }<a name="line.5777"></a>
+<span class="sourceLineNo">5778</span>                        } else if (as &lt; bs) {<a name="line.5778"></a>
+<span class="sourceLineNo">5779</span>                                if (it.isOutputDouble()) {<a name="line.5779"></a>
+<span class="sourceLineNo">5780</span>                                        while (it.hasNext()) {<a name="line.5780"></a>
+<span class="sourceLineNo">5781</span>                                                final double iax = it.aDouble;<a name="line.5781"></a>
+<span class="sourceLineNo">5782</span>                                                double ibx = it.bDouble;<a name="line.5782"></a>
+<span class="sourceLineNo">5783</span>                                                long ox;<a name="line.5783"></a>
+<span class="sourceLineNo">5784</span>                                                ox = toLong(iax * ibx);<a name="line.5784"></a>
+<span class="sourceLineNo">5785</span>                                                oai64data[it.oIndex] = ox;<a name="line.5785"></a>
+<span class="sourceLineNo">5786</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5786"></a>
+<span class="sourceLineNo">5787</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.5787"></a>
+<span class="sourceLineNo">5788</span>                                                        ox = toLong(iax * ibx);<a name="line.5788"></a>
+<span class="sourceLineNo">5789</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.5789"></a>
+<span class="sourceLineNo">5790</span>                                                }<a name="line.5790"></a>
+<span class="sourceLineNo">5791</span>                                        }<a name="line.5791"></a>
+<span class="sourceLineNo">5792</span>                                } else {<a name="line.5792"></a>
+<span class="sourceLineNo">5793</span>                                        while (it.hasNext()) {<a name="line.5793"></a>
+<span class="sourceLineNo">5794</span>                                                final long iax = it.aLong;<a name="line.5794"></a>
+<span class="sourceLineNo">5795</span>                                                long ibx = it.bLong;<a name="line.5795"></a>
+<span class="sourceLineNo">5796</span>                                                long ox;<a name="line.5796"></a>
+<span class="sourceLineNo">5797</span>                                                ox = (iax * ibx);<a name="line.5797"></a>
+<span class="sourceLineNo">5798</span>                                                oai64data[it.oIndex] = ox;<a name="line.5798"></a>
+<span class="sourceLineNo">5799</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5799"></a>
+<span class="sourceLineNo">5800</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.5800"></a>
+<span class="sourceLineNo">5801</span>                                                        ox = (iax * ibx);<a name="line.5801"></a>
+<span class="sourceLineNo">5802</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.5802"></a>
+<span class="sourceLineNo">5803</span>                                                }<a name="line.5803"></a>
+<span class="sourceLineNo">5804</span>                                        }<a name="line.5804"></a>
+<span class="sourceLineNo">5805</span>                                }<a name="line.5805"></a>
+<span class="sourceLineNo">5806</span>                        } else if (as &gt; bs) {<a name="line.5806"></a>
+<span class="sourceLineNo">5807</span>                                if (it.isOutputDouble()) {<a name="line.5807"></a>
+<span class="sourceLineNo">5808</span>                                        while (it.hasNext()) {<a name="line.5808"></a>
+<span class="sourceLineNo">5809</span>                                                double iax = it.aDouble;<a name="line.5809"></a>
+<span class="sourceLineNo">5810</span>                                                final double ibx = it.bDouble;<a name="line.5810"></a>
+<span class="sourceLineNo">5811</span>                                                long ox;<a name="line.5811"></a>
+<span class="sourceLineNo">5812</span>                                                ox = toLong(iax * ibx);<a name="line.5812"></a>
+<span class="sourceLineNo">5813</span>                                                oai64data[it.oIndex] = ox;<a name="line.5813"></a>
+<span class="sourceLineNo">5814</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5814"></a>
+<span class="sourceLineNo">5815</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.5815"></a>
+<span class="sourceLineNo">5816</span>                                                        ox = toLong(iax * ibx);<a name="line.5816"></a>
+<span class="sourceLineNo">5817</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.5817"></a>
+<span class="sourceLineNo">5818</span>                                                }<a name="line.5818"></a>
+<span class="sourceLineNo">5819</span>                                        }<a name="line.5819"></a>
+<span class="sourceLineNo">5820</span>                                } else {<a name="line.5820"></a>
+<span class="sourceLineNo">5821</span>                                        while (it.hasNext()) {<a name="line.5821"></a>
+<span class="sourceLineNo">5822</span>                                                long iax = it.aLong;<a name="line.5822"></a>
+<span class="sourceLineNo">5823</span>                                                final long ibx = it.bLong;<a name="line.5823"></a>
+<span class="sourceLineNo">5824</span>                                                long ox;<a name="line.5824"></a>
+<span class="sourceLineNo">5825</span>                                                ox = (iax * ibx);<a name="line.5825"></a>
+<span class="sourceLineNo">5826</span>                                                oai64data[it.oIndex] = ox;<a name="line.5826"></a>
+<span class="sourceLineNo">5827</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5827"></a>
+<span class="sourceLineNo">5828</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.5828"></a>
+<span class="sourceLineNo">5829</span>                                                        ox = (iax * ibx);<a name="line.5829"></a>
+<span class="sourceLineNo">5830</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.5830"></a>
+<span class="sourceLineNo">5831</span>                                                }<a name="line.5831"></a>
+<span class="sourceLineNo">5832</span>                                        }<a name="line.5832"></a>
+<span class="sourceLineNo">5833</span>                                }<a name="line.5833"></a>
+<span class="sourceLineNo">5834</span>                        } else if (as == 1) {<a name="line.5834"></a>
+<span class="sourceLineNo">5835</span>                                if (it.isOutputDouble()) {<a name="line.5835"></a>
+<span class="sourceLineNo">5836</span>                                        while (it.hasNext()) {<a name="line.5836"></a>
+<span class="sourceLineNo">5837</span>                                                final double iax = it.aDouble;<a name="line.5837"></a>
+<span class="sourceLineNo">5838</span>                                                final double ibx = it.bDouble;<a name="line.5838"></a>
+<span class="sourceLineNo">5839</span>                                                long ox;<a name="line.5839"></a>
+<span class="sourceLineNo">5840</span>                                                ox = toLong(iax * ibx);<a name="line.5840"></a>
+<span class="sourceLineNo">5841</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.5841"></a>
+<span class="sourceLineNo">5842</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.5842"></a>
+<span class="sourceLineNo">5843</span>                                                }<a name="line.5843"></a>
+<span class="sourceLineNo">5844</span>                                        }<a name="line.5844"></a>
+<span class="sourceLineNo">5845</span>                                } else {<a name="line.5845"></a>
+<span class="sourceLineNo">5846</span>                                        while (it.hasNext()) {<a name="line.5846"></a>
+<span class="sourceLineNo">5847</span>                                                final long iax = it.aLong;<a name="line.5847"></a>
+<span class="sourceLineNo">5848</span>                                                final long ibx = it.bLong;<a name="line.5848"></a>
+<span class="sourceLineNo">5849</span>                                                long ox;<a name="line.5849"></a>
+<span class="sourceLineNo">5850</span>                                                ox = (iax * ibx);<a name="line.5850"></a>
+<span class="sourceLineNo">5851</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.5851"></a>
+<span class="sourceLineNo">5852</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.5852"></a>
+<span class="sourceLineNo">5853</span>                                                }<a name="line.5853"></a>
+<span class="sourceLineNo">5854</span>                                        }<a name="line.5854"></a>
+<span class="sourceLineNo">5855</span>                                }<a name="line.5855"></a>
+<span class="sourceLineNo">5856</span>                        } else {<a name="line.5856"></a>
+<span class="sourceLineNo">5857</span>                                if (it.isOutputDouble()) {<a name="line.5857"></a>
+<span class="sourceLineNo">5858</span>                                        while (it.hasNext()) {<a name="line.5858"></a>
+<span class="sourceLineNo">5859</span>                                                double iax = it.aDouble;<a name="line.5859"></a>
+<span class="sourceLineNo">5860</span>                                                double ibx = it.bDouble;<a name="line.5860"></a>
+<span class="sourceLineNo">5861</span>                                                long ox;<a name="line.5861"></a>
+<span class="sourceLineNo">5862</span>                                                ox = toLong(iax * ibx);<a name="line.5862"></a>
+<span class="sourceLineNo">5863</span>                                                oai64data[it.oIndex] = ox;<a name="line.5863"></a>
+<span class="sourceLineNo">5864</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5864"></a>
+<span class="sourceLineNo">5865</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.5865"></a>
+<span class="sourceLineNo">5866</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.5866"></a>
+<span class="sourceLineNo">5867</span>                                                        ox = toLong(iax * ibx);<a name="line.5867"></a>
+<span class="sourceLineNo">5868</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.5868"></a>
+<span class="sourceLineNo">5869</span>                                                }<a name="line.5869"></a>
+<span class="sourceLineNo">5870</span>                                        }<a name="line.5870"></a>
+<span class="sourceLineNo">5871</span>                                } else {<a name="line.5871"></a>
+<span class="sourceLineNo">5872</span>                                        while (it.hasNext()) {<a name="line.5872"></a>
+<span class="sourceLineNo">5873</span>                                                long iax = it.aLong;<a name="line.5873"></a>
+<span class="sourceLineNo">5874</span>                                                long ibx = it.bLong;<a name="line.5874"></a>
+<span class="sourceLineNo">5875</span>                                                long ox;<a name="line.5875"></a>
+<span class="sourceLineNo">5876</span>                                                ox = (iax * ibx);<a name="line.5876"></a>
+<span class="sourceLineNo">5877</span>                                                oai64data[it.oIndex] = ox;<a name="line.5877"></a>
+<span class="sourceLineNo">5878</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5878"></a>
+<span class="sourceLineNo">5879</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.5879"></a>
+<span class="sourceLineNo">5880</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.5880"></a>
+<span class="sourceLineNo">5881</span>                                                        ox = (iax * ibx);<a name="line.5881"></a>
+<span class="sourceLineNo">5882</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.5882"></a>
+<span class="sourceLineNo">5883</span>                                                }<a name="line.5883"></a>
+<span class="sourceLineNo">5884</span>                                        }<a name="line.5884"></a>
+<span class="sourceLineNo">5885</span>                                }<a name="line.5885"></a>
+<span class="sourceLineNo">5886</span>                        }<a name="line.5886"></a>
+<span class="sourceLineNo">5887</span>                        break;<a name="line.5887"></a>
+<span class="sourceLineNo">5888</span>                case Dataset.ARRAYINT32:<a name="line.5888"></a>
+<span class="sourceLineNo">5889</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.5889"></a>
+<span class="sourceLineNo">5890</span>                        if (is == 1) {<a name="line.5890"></a>
+<span class="sourceLineNo">5891</span>                                if (it.isOutputDouble()) {<a name="line.5891"></a>
+<span class="sourceLineNo">5892</span>                                        while (it.hasNext()) {<a name="line.5892"></a>
+<span class="sourceLineNo">5893</span>                                                final double iax = it.aDouble;<a name="line.5893"></a>
+<span class="sourceLineNo">5894</span>                                                final double ibx = it.bDouble;<a name="line.5894"></a>
+<span class="sourceLineNo">5895</span>                                                int ox;<a name="line.5895"></a>
+<span class="sourceLineNo">5896</span>                                                ox = (int) toLong(iax * ibx);<a name="line.5896"></a>
+<span class="sourceLineNo">5897</span>                                                oai32data[it.oIndex] = ox;<a name="line.5897"></a>
+<span class="sourceLineNo">5898</span>                                        }<a name="line.5898"></a>
+<span class="sourceLineNo">5899</span>                                } else {<a name="line.5899"></a>
+<span class="sourceLineNo">5900</span>                                        while (it.hasNext()) {<a name="line.5900"></a>
+<span class="sourceLineNo">5901</span>                                                final long iax = it.aLong;<a name="line.5901"></a>
+<span class="sourceLineNo">5902</span>                                                final long ibx = it.bLong;<a name="line.5902"></a>
+<span class="sourceLineNo">5903</span>                                                int ox;<a name="line.5903"></a>
+<span class="sourceLineNo">5904</span>                                                ox = (int) (iax * ibx);<a name="line.5904"></a>
+<span class="sourceLineNo">5905</span>                                                oai32data[it.oIndex] = ox;<a name="line.5905"></a>
+<span class="sourceLineNo">5906</span>                                        }<a name="line.5906"></a>
+<span class="sourceLineNo">5907</span>                                }<a name="line.5907"></a>
+<span class="sourceLineNo">5908</span>                        } else if (as &lt; bs) {<a name="line.5908"></a>
+<span class="sourceLineNo">5909</span>                                if (it.isOutputDouble()) {<a name="line.5909"></a>
+<span class="sourceLineNo">5910</span>                                        while (it.hasNext()) {<a name="line.5910"></a>
+<span class="sourceLineNo">5911</span>                                                final double iax = it.aDouble;<a name="line.5911"></a>
+<span class="sourceLineNo">5912</span>                                                double ibx = it.bDouble;<a name="line.5912"></a>
+<span class="sourceLineNo">5913</span>                                                int ox;<a name="line.5913"></a>
+<span class="sourceLineNo">5914</span>                                                ox = (int) toLong(iax * ibx);<a name="line.5914"></a>
+<span class="sourceLineNo">5915</span>                                                oai32data[it.oIndex] = ox;<a name="line.5915"></a>
+<span class="sourceLineNo">5916</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5916"></a>
+<span class="sourceLineNo">5917</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.5917"></a>
+<span class="sourceLineNo">5918</span>                                                        ox = (int) toLong(iax * ibx);<a name="line.5918"></a>
+<span class="sourceLineNo">5919</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.5919"></a>
+<span class="sourceLineNo">5920</span>                                                }<a name="line.5920"></a>
+<span class="sourceLineNo">5921</span>                                        }<a name="line.5921"></a>
+<span class="sourceLineNo">5922</span>                                } else {<a name="line.5922"></a>
+<span class="sourceLineNo">5923</span>                                        while (it.hasNext()) {<a name="line.5923"></a>
+<span class="sourceLineNo">5924</span>                                                final long iax = it.aLong;<a name="line.5924"></a>
+<span class="sourceLineNo">5925</span>                                                long ibx = it.bLong;<a name="line.5925"></a>
+<span class="sourceLineNo">5926</span>                                                int ox;<a name="line.5926"></a>
+<span class="sourceLineNo">5927</span>                                                ox = (int) (iax * ibx);<a name="line.5927"></a>
+<span class="sourceLineNo">5928</span>                                                oai32data[it.oIndex] = ox;<a name="line.5928"></a>
+<span class="sourceLineNo">5929</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5929"></a>
+<span class="sourceLineNo">5930</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.5930"></a>
+<span class="sourceLineNo">5931</span>                                                        ox = (int) (iax * ibx);<a name="line.5931"></a>
+<span class="sourceLineNo">5932</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.5932"></a>
+<span class="sourceLineNo">5933</span>                                                }<a name="line.5933"></a>
+<span class="sourceLineNo">5934</span>                                        }<a name="line.5934"></a>
+<span class="sourceLineNo">5935</span>                                }<a name="line.5935"></a>
+<span class="sourceLineNo">5936</span>                        } else if (as &gt; bs) {<a name="line.5936"></a>
+<span class="sourceLineNo">5937</span>                                if (it.isOutputDouble()) {<a name="line.5937"></a>
+<span class="sourceLineNo">5938</span>                                        while (it.hasNext()) {<a name="line.5938"></a>
+<span class="sourceLineNo">5939</span>                                                double iax = it.aDouble;<a name="line.5939"></a>
+<span class="sourceLineNo">5940</span>                                                final double ibx = it.bDouble;<a name="line.5940"></a>
+<span class="sourceLineNo">5941</span>                                                int ox;<a name="line.5941"></a>
+<span class="sourceLineNo">5942</span>                                                ox = (int) toLong(iax * ibx);<a name="line.5942"></a>
+<span class="sourceLineNo">5943</span>                                                oai32data[it.oIndex] = ox;<a name="line.5943"></a>
+<span class="sourceLineNo">5944</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5944"></a>
+<span class="sourceLineNo">5945</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.5945"></a>
+<span class="sourceLineNo">5946</span>                                                        ox = (int) toLong(iax * ibx);<a name="line.5946"></a>
+<span class="sourceLineNo">5947</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.5947"></a>
+<span class="sourceLineNo">5948</span>                                                }<a name="line.5948"></a>
+<span class="sourceLineNo">5949</span>                                        }<a name="line.5949"></a>
+<span class="sourceLineNo">5950</span>                                } else {<a name="line.5950"></a>
+<span class="sourceLineNo">5951</span>                                        while (it.hasNext()) {<a name="line.5951"></a>
+<span class="sourceLineNo">5952</span>                                                long iax = it.aLong;<a name="line.5952"></a>
+<span class="sourceLineNo">5953</span>                                                final long ibx = it.bLong;<a name="line.5953"></a>
+<span class="sourceLineNo">5954</span>                                                int ox;<a name="line.5954"></a>
+<span class="sourceLineNo">5955</span>                                                ox = (int) (iax * ibx);<a name="line.5955"></a>
+<span class="sourceLineNo">5956</span>                                                oai32data[it.oIndex] = ox;<a name="line.5956"></a>
+<span class="sourceLineNo">5957</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5957"></a>
+<span class="sourceLineNo">5958</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.5958"></a>
+<span class="sourceLineNo">5959</span>                                                        ox = (int) (iax * ibx);<a name="line.5959"></a>
+<span class="sourceLineNo">5960</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.5960"></a>
+<span class="sourceLineNo">5961</span>                                                }<a name="line.5961"></a>
+<span class="sourceLineNo">5962</span>                                        }<a name="line.5962"></a>
+<span class="sourceLineNo">5963</span>                                }<a name="line.5963"></a>
+<span class="sourceLineNo">5964</span>                        } else if (as == 1) {<a name="line.5964"></a>
+<span class="sourceLineNo">5965</span>                                if (it.isOutputDouble()) {<a name="line.5965"></a>
+<span class="sourceLineNo">5966</span>                                        while (it.hasNext()) {<a name="line.5966"></a>
+<span class="sourceLineNo">5967</span>                                                final double iax = it.aDouble;<a name="line.5967"></a>
+<span class="sourceLineNo">5968</span>                                                final double ibx = it.bDouble;<a name="line.5968"></a>
+<span class="sourceLineNo">5969</span>                                                int ox;<a name="line.5969"></a>
+<span class="sourceLineNo">5970</span>                                                ox = (int) toLong(iax * ibx);<a name="line.5970"></a>
+<span class="sourceLineNo">5971</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.5971"></a>
+<span class="sourceLineNo">5972</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.5972"></a>
+<span class="sourceLineNo">5973</span>                                                }<a name="line.5973"></a>
+<span class="sourceLineNo">5974</span>                                        }<a name="line.5974"></a>
+<span class="sourceLineNo">5975</span>                                } else {<a name="line.5975"></a>
+<span class="sourceLineNo">5976</span>                                        while (it.hasNext()) {<a name="line.5976"></a>
+<span class="sourceLineNo">5977</span>                                                final long iax = it.aLong;<a name="line.5977"></a>
+<span class="sourceLineNo">5978</span>                                                final long ibx = it.bLong;<a name="line.5978"></a>
+<span class="sourceLineNo">5979</span>                                                int ox;<a name="line.5979"></a>
+<span class="sourceLineNo">5980</span>                                                ox = (int) (iax * ibx);<a name="line.5980"></a>
+<span class="sourceLineNo">5981</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.5981"></a>
+<span class="sourceLineNo">5982</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.5982"></a>
+<span class="sourceLineNo">5983</span>                                                }<a name="line.5983"></a>
+<span class="sourceLineNo">5984</span>                                        }<a name="line.5984"></a>
+<span class="sourceLineNo">5985</span>                                }<a name="line.5985"></a>
+<span class="sourceLineNo">5986</span>                        } else {<a name="line.5986"></a>
+<span class="sourceLineNo">5987</span>                                if (it.isOutputDouble()) {<a name="line.5987"></a>
+<span class="sourceLineNo">5988</span>                                        while (it.hasNext()) {<a name="line.5988"></a>
+<span class="sourceLineNo">5989</span>                                                double iax = it.aDouble;<a name="line.5989"></a>
+<span class="sourceLineNo">5990</span>                                                double ibx = it.bDouble;<a name="line.5990"></a>
+<span class="sourceLineNo">5991</span>                                                int ox;<a name="line.5991"></a>
+<span class="sourceLineNo">5992</span>                                                ox = (int) toLong(iax * ibx);<a name="line.5992"></a>
+<span class="sourceLineNo">5993</span>                                                oai32data[it.oIndex] = ox;<a name="line.5993"></a>
+<span class="sourceLineNo">5994</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.5994"></a>
+<span class="sourceLineNo">5995</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.5995"></a>
+<span class="sourceLineNo">5996</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.5996"></a>
+<span class="sourceLineNo">5997</span>                                                        ox = (int) toLong(iax * ibx);<a name="line.5997"></a>
+<span class="sourceLineNo">5998</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.5998"></a>
+<span class="sourceLineNo">5999</span>                                                }<a name="line.5999"></a>
+<span class="sourceLineNo">6000</span>                                        }<a name="line.6000"></a>
+<span class="sourceLineNo">6001</span>                                } else {<a name="line.6001"></a>
+<span class="sourceLineNo">6002</span>                                        while (it.hasNext()) {<a name="line.6002"></a>
+<span class="sourceLineNo">6003</span>                                                long iax = it.aLong;<a name="line.6003"></a>
+<span class="sourceLineNo">6004</span>                                                long ibx = it.bLong;<a name="line.6004"></a>
+<span class="sourceLineNo">6005</span>                                                int ox;<a name="line.6005"></a>
+<span class="sourceLineNo">6006</span>                                                ox = (int) (iax * ibx);<a name="line.6006"></a>
+<span class="sourceLineNo">6007</span>                                                oai32data[it.oIndex] = ox;<a name="line.6007"></a>
+<span class="sourceLineNo">6008</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6008"></a>
+<span class="sourceLineNo">6009</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.6009"></a>
+<span class="sourceLineNo">6010</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.6010"></a>
+<span class="sourceLineNo">6011</span>                                                        ox = (int) (iax * ibx);<a name="line.6011"></a>
+<span class="sourceLineNo">6012</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.6012"></a>
+<span class="sourceLineNo">6013</span>                                                }<a name="line.6013"></a>
+<span class="sourceLineNo">6014</span>                                        }<a name="line.6014"></a>
+<span class="sourceLineNo">6015</span>                                }<a name="line.6015"></a>
+<span class="sourceLineNo">6016</span>                        }<a name="line.6016"></a>
+<span class="sourceLineNo">6017</span>                        break;<a name="line.6017"></a>
+<span class="sourceLineNo">6018</span>                case Dataset.FLOAT32:<a name="line.6018"></a>
+<span class="sourceLineNo">6019</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.6019"></a>
+<span class="sourceLineNo">6020</span>                        if (it.isOutputDouble()) {<a name="line.6020"></a>
+<span class="sourceLineNo">6021</span>                                while (it.hasNext()) {<a name="line.6021"></a>
+<span class="sourceLineNo">6022</span>                                        final double iax = it.aDouble;<a name="line.6022"></a>
+<span class="sourceLineNo">6023</span>                                        final double ibx = it.bDouble;<a name="line.6023"></a>
+<span class="sourceLineNo">6024</span>                                        float ox;<a name="line.6024"></a>
+<span class="sourceLineNo">6025</span>                                        ox = (float) (iax * ibx);<a name="line.6025"></a>
+<span class="sourceLineNo">6026</span>                                        of32data[it.oIndex] = ox;<a name="line.6026"></a>
+<span class="sourceLineNo">6027</span>                                }<a name="line.6027"></a>
+<span class="sourceLineNo">6028</span>                        } else {<a name="line.6028"></a>
+<span class="sourceLineNo">6029</span>                                while (it.hasNext()) {<a name="line.6029"></a>
+<span class="sourceLineNo">6030</span>                                        final long iax = it.aLong;<a name="line.6030"></a>
+<span class="sourceLineNo">6031</span>                                        final long ibx = it.bLong;<a name="line.6031"></a>
+<span class="sourceLineNo">6032</span>                                        float ox;<a name="line.6032"></a>
+<span class="sourceLineNo">6033</span>                                        ox = (iax * ibx);<a name="line.6033"></a>
+<span class="sourceLineNo">6034</span>                                        of32data[it.oIndex] = ox;<a name="line.6034"></a>
+<span class="sourceLineNo">6035</span>                                }<a name="line.6035"></a>
+<span class="sourceLineNo">6036</span>                        }<a name="line.6036"></a>
+<span class="sourceLineNo">6037</span>                        break;<a name="line.6037"></a>
+<span class="sourceLineNo">6038</span>                case Dataset.FLOAT64:<a name="line.6038"></a>
+<span class="sourceLineNo">6039</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.6039"></a>
+<span class="sourceLineNo">6040</span>                        if (it.isOutputDouble()) {<a name="line.6040"></a>
+<span class="sourceLineNo">6041</span>                                while (it.hasNext()) {<a name="line.6041"></a>
+<span class="sourceLineNo">6042</span>                                        final double iax = it.aDouble;<a name="line.6042"></a>
+<span class="sourceLineNo">6043</span>                                        final double ibx = it.bDouble;<a name="line.6043"></a>
+<span class="sourceLineNo">6044</span>                                        double ox;<a name="line.6044"></a>
+<span class="sourceLineNo">6045</span>                                        ox = (iax * ibx);<a name="line.6045"></a>
+<span class="sourceLineNo">6046</span>                                        of64data[it.oIndex] = ox;<a name="line.6046"></a>
+<span class="sourceLineNo">6047</span>                                }<a name="line.6047"></a>
+<span class="sourceLineNo">6048</span>                        } else {<a name="line.6048"></a>
+<span class="sourceLineNo">6049</span>                                while (it.hasNext()) {<a name="line.6049"></a>
+<span class="sourceLineNo">6050</span>                                        final long iax = it.aLong;<a name="line.6050"></a>
+<span class="sourceLineNo">6051</span>                                        final long ibx = it.bLong;<a name="line.6051"></a>
+<span class="sourceLineNo">6052</span>                                        double ox;<a name="line.6052"></a>
+<span class="sourceLineNo">6053</span>                                        ox = (iax * ibx);<a name="line.6053"></a>
+<span class="sourceLineNo">6054</span>                                        of64data[it.oIndex] = ox;<a name="line.6054"></a>
+<span class="sourceLineNo">6055</span>                                }<a name="line.6055"></a>
+<span class="sourceLineNo">6056</span>                        }<a name="line.6056"></a>
+<span class="sourceLineNo">6057</span>                        break;<a name="line.6057"></a>
+<span class="sourceLineNo">6058</span>                case Dataset.ARRAYFLOAT32:<a name="line.6058"></a>
+<span class="sourceLineNo">6059</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.6059"></a>
+<span class="sourceLineNo">6060</span>                        if (is == 1) {<a name="line.6060"></a>
+<span class="sourceLineNo">6061</span>                                if (it.isOutputDouble()) {<a name="line.6061"></a>
+<span class="sourceLineNo">6062</span>                                        while (it.hasNext()) {<a name="line.6062"></a>
+<span class="sourceLineNo">6063</span>                                                final double iax = it.aDouble;<a name="line.6063"></a>
+<span class="sourceLineNo">6064</span>                                                final double ibx = it.bDouble;<a name="line.6064"></a>
+<span class="sourceLineNo">6065</span>                                                float ox;<a name="line.6065"></a>
+<span class="sourceLineNo">6066</span>                                                ox = (float) (iax * ibx);<a name="line.6066"></a>
+<span class="sourceLineNo">6067</span>                                                oaf32data[it.oIndex] = ox;<a name="line.6067"></a>
+<span class="sourceLineNo">6068</span>                                        }<a name="line.6068"></a>
+<span class="sourceLineNo">6069</span>                                } else {<a name="line.6069"></a>
+<span class="sourceLineNo">6070</span>                                        while (it.hasNext()) {<a name="line.6070"></a>
+<span class="sourceLineNo">6071</span>                                                final long iax = it.aLong;<a name="line.6071"></a>
+<span class="sourceLineNo">6072</span>                                                final long ibx = it.bLong;<a name="line.6072"></a>
+<span class="sourceLineNo">6073</span>                                                float ox;<a name="line.6073"></a>
+<span class="sourceLineNo">6074</span>                                                ox = (iax * ibx);<a name="line.6074"></a>
+<span class="sourceLineNo">6075</span>                                                oaf32data[it.oIndex] = ox;<a name="line.6075"></a>
+<span class="sourceLineNo">6076</span>                                        }<a name="line.6076"></a>
+<span class="sourceLineNo">6077</span>                                }<a name="line.6077"></a>
+<span class="sourceLineNo">6078</span>                        } else if (as &lt; bs) {<a name="line.6078"></a>
+<span class="sourceLineNo">6079</span>                                if (it.isOutputDouble()) {<a name="line.6079"></a>
+<span class="sourceLineNo">6080</span>                                        while (it.hasNext()) {<a name="line.6080"></a>
+<span class="sourceLineNo">6081</span>                                                final double iax = it.aDouble;<a name="line.6081"></a>
+<span class="sourceLineNo">6082</span>                                                double ibx = it.bDouble;<a name="line.6082"></a>
+<span class="sourceLineNo">6083</span>                                                float ox;<a name="line.6083"></a>
+<span class="sourceLineNo">6084</span>                                                ox = (float) (iax * ibx);<a name="line.6084"></a>
+<span class="sourceLineNo">6085</span>                                                oaf32data[it.oIndex] = ox;<a name="line.6085"></a>
+<span class="sourceLineNo">6086</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6086"></a>
+<span class="sourceLineNo">6087</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.6087"></a>
+<span class="sourceLineNo">6088</span>                                                        ox = (float) (iax * ibx);<a name="line.6088"></a>
+<span class="sourceLineNo">6089</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.6089"></a>
+<span class="sourceLineNo">6090</span>                                                }<a name="line.6090"></a>
+<span class="sourceLineNo">6091</span>                                        }<a name="line.6091"></a>
+<span class="sourceLineNo">6092</span>                                } else {<a name="line.6092"></a>
+<span class="sourceLineNo">6093</span>                                        while (it.hasNext()) {<a name="line.6093"></a>
+<span class="sourceLineNo">6094</span>                                                final long iax = it.aLong;<a name="line.6094"></a>
+<span class="sourceLineNo">6095</span>                                                long ibx = it.bLong;<a name="line.6095"></a>
+<span class="sourceLineNo">6096</span>                                                float ox;<a name="line.6096"></a>
+<span class="sourceLineNo">6097</span>                                                ox = (iax * ibx);<a name="line.6097"></a>
+<span class="sourceLineNo">6098</span>                                                oaf32data[it.oIndex] = ox;<a name="line.6098"></a>
+<span class="sourceLineNo">6099</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6099"></a>
+<span class="sourceLineNo">6100</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.6100"></a>
+<span class="sourceLineNo">6101</span>                                                        ox = (iax * ibx);<a name="line.6101"></a>
+<span class="sourceLineNo">6102</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.6102"></a>
+<span class="sourceLineNo">6103</span>                                                }<a name="line.6103"></a>
+<span class="sourceLineNo">6104</span>                                        }<a name="line.6104"></a>
+<span class="sourceLineNo">6105</span>                                }<a name="line.6105"></a>
+<span class="sourceLineNo">6106</span>                        } else if (as &gt; bs) {<a name="line.6106"></a>
+<span class="sourceLineNo">6107</span>                                if (it.isOutputDouble()) {<a name="line.6107"></a>
+<span class="sourceLineNo">6108</span>                                        while (it.hasNext()) {<a name="line.6108"></a>
+<span class="sourceLineNo">6109</span>                                                double iax = it.aDouble;<a name="line.6109"></a>
+<span class="sourceLineNo">6110</span>                                                final double ibx = it.bDouble;<a name="line.6110"></a>
+<span class="sourceLineNo">6111</span>                                                float ox;<a name="line.6111"></a>
+<span class="sourceLineNo">6112</span>                                                ox = (float) (iax * ibx);<a name="line.6112"></a>
+<span class="sourceLineNo">6113</span>                                                oaf32data[it.oIndex] = ox;<a name="line.6113"></a>
+<span class="sourceLineNo">6114</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6114"></a>
+<span class="sourceLineNo">6115</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.6115"></a>
+<span class="sourceLineNo">6116</span>                                                        ox = (float) (iax * ibx);<a name="line.6116"></a>
+<span class="sourceLineNo">6117</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.6117"></a>
+<span class="sourceLineNo">6118</span>                                                }<a name="line.6118"></a>
+<span class="sourceLineNo">6119</span>                                        }<a name="line.6119"></a>
+<span class="sourceLineNo">6120</span>                                } else {<a name="line.6120"></a>
+<span class="sourceLineNo">6121</span>                                        while (it.hasNext()) {<a name="line.6121"></a>
+<span class="sourceLineNo">6122</span>                                                long iax = it.aLong;<a name="line.6122"></a>
+<span class="sourceLineNo">6123</span>                                                final long ibx = it.bLong;<a name="line.6123"></a>
+<span class="sourceLineNo">6124</span>                                                float ox;<a name="line.6124"></a>
+<span class="sourceLineNo">6125</span>                                                ox = (iax * ibx);<a name="line.6125"></a>
+<span class="sourceLineNo">6126</span>                                                oaf32data[it.oIndex] = ox;<a name="line.6126"></a>
+<span class="sourceLineNo">6127</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6127"></a>
+<span class="sourceLineNo">6128</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.6128"></a>
+<span class="sourceLineNo">6129</span>                                                        ox = (iax * ibx);<a name="line.6129"></a>
+<span class="sourceLineNo">6130</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.6130"></a>
+<span class="sourceLineNo">6131</span>                                                }<a name="line.6131"></a>
+<span class="sourceLineNo">6132</span>                                        }<a name="line.6132"></a>
+<span class="sourceLineNo">6133</span>                                }<a name="line.6133"></a>
+<span class="sourceLineNo">6134</span>                        } else if (as == 1) {<a name="line.6134"></a>
+<span class="sourceLineNo">6135</span>                                if (it.isOutputDouble()) {<a name="line.6135"></a>
+<span class="sourceLineNo">6136</span>                                        while (it.hasNext()) {<a name="line.6136"></a>
+<span class="sourceLineNo">6137</span>                                                final double iax = it.aDouble;<a name="line.6137"></a>
+<span class="sourceLineNo">6138</span>                                                final double ibx = it.bDouble;<a name="line.6138"></a>
+<span class="sourceLineNo">6139</span>                                                float ox;<a name="line.6139"></a>
+<span class="sourceLineNo">6140</span>                                                ox = (float) (iax * ibx);<a name="line.6140"></a>
+<span class="sourceLineNo">6141</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.6141"></a>
+<span class="sourceLineNo">6142</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.6142"></a>
+<span class="sourceLineNo">6143</span>                                                }<a name="line.6143"></a>
+<span class="sourceLineNo">6144</span>                                        }<a name="line.6144"></a>
+<span class="sourceLineNo">6145</span>                                } else {<a name="line.6145"></a>
+<span class="sourceLineNo">6146</span>                                        while (it.hasNext()) {<a name="line.6146"></a>
+<span class="sourceLineNo">6147</span>                                                final long iax = it.aLong;<a name="line.6147"></a>
+<span class="sourceLineNo">6148</span>                                                final long ibx = it.bLong;<a name="line.6148"></a>
+<span class="sourceLineNo">6149</span>                                                float ox;<a name="line.6149"></a>
+<span class="sourceLineNo">6150</span>                                                ox = (iax * ibx);<a name="line.6150"></a>
+<span class="sourceLineNo">6151</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.6151"></a>
+<span class="sourceLineNo">6152</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.6152"></a>
+<span class="sourceLineNo">6153</span>                                                }<a name="line.6153"></a>
+<span class="sourceLineNo">6154</span>                                        }<a name="line.6154"></a>
+<span class="sourceLineNo">6155</span>                                }<a name="line.6155"></a>
+<span class="sourceLineNo">6156</span>                        } else {<a name="line.6156"></a>
+<span class="sourceLineNo">6157</span>                                if (it.isOutputDouble()) {<a name="line.6157"></a>
+<span class="sourceLineNo">6158</span>                                        while (it.hasNext()) {<a name="line.6158"></a>
+<span class="sourceLineNo">6159</span>                                                double iax = it.aDouble;<a name="line.6159"></a>
+<span class="sourceLineNo">6160</span>                                                double ibx = it.bDouble;<a name="line.6160"></a>
+<span class="sourceLineNo">6161</span>                                                float ox;<a name="line.6161"></a>
+<span class="sourceLineNo">6162</span>                                                ox = (float) (iax * ibx);<a name="line.6162"></a>
+<span class="sourceLineNo">6163</span>                                                oaf32data[it.oIndex] = ox;<a name="line.6163"></a>
+<span class="sourceLineNo">6164</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6164"></a>
+<span class="sourceLineNo">6165</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.6165"></a>
+<span class="sourceLineNo">6166</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.6166"></a>
+<span class="sourceLineNo">6167</span>                                                        ox = (float) (iax * ibx);<a name="line.6167"></a>
+<span class="sourceLineNo">6168</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.6168"></a>
+<span class="sourceLineNo">6169</span>                                                }<a name="line.6169"></a>
+<span class="sourceLineNo">6170</span>                                        }<a name="line.6170"></a>
+<span class="sourceLineNo">6171</span>                                } else {<a name="line.6171"></a>
+<span class="sourceLineNo">6172</span>                                        while (it.hasNext()) {<a name="line.6172"></a>
+<span class="sourceLineNo">6173</span>                                                long iax = it.aLong;<a name="line.6173"></a>
+<span class="sourceLineNo">6174</span>                                                long ibx = it.bLong;<a name="line.6174"></a>
+<span class="sourceLineNo">6175</span>                                                float ox;<a name="line.6175"></a>
+<span class="sourceLineNo">6176</span>                                                ox = (iax * ibx);<a name="line.6176"></a>
+<span class="sourceLineNo">6177</span>                                                oaf32data[it.oIndex] = ox;<a name="line.6177"></a>
+<span class="sourceLineNo">6178</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6178"></a>
+<span class="sourceLineNo">6179</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.6179"></a>
+<span class="sourceLineNo">6180</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.6180"></a>
+<span class="sourceLineNo">6181</span>                                                        ox = (iax * ibx);<a name="line.6181"></a>
+<span class="sourceLineNo">6182</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.6182"></a>
+<span class="sourceLineNo">6183</span>                                                }<a name="line.6183"></a>
+<span class="sourceLineNo">6184</span>                                        }<a name="line.6184"></a>
+<span class="sourceLineNo">6185</span>                                }<a name="line.6185"></a>
+<span class="sourceLineNo">6186</span>                        }<a name="line.6186"></a>
+<span class="sourceLineNo">6187</span>                        break;<a name="line.6187"></a>
+<span class="sourceLineNo">6188</span>                case Dataset.ARRAYFLOAT64:<a name="line.6188"></a>
+<span class="sourceLineNo">6189</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.6189"></a>
+<span class="sourceLineNo">6190</span>                        if (is == 1) {<a name="line.6190"></a>
+<span class="sourceLineNo">6191</span>                                if (it.isOutputDouble()) {<a name="line.6191"></a>
+<span class="sourceLineNo">6192</span>                                        while (it.hasNext()) {<a name="line.6192"></a>
+<span class="sourceLineNo">6193</span>                                                final double iax = it.aDouble;<a name="line.6193"></a>
+<span class="sourceLineNo">6194</span>                                                final double ibx = it.bDouble;<a name="line.6194"></a>
+<span class="sourceLineNo">6195</span>                                                double ox;<a name="line.6195"></a>
+<span class="sourceLineNo">6196</span>                                                ox = (iax * ibx);<a name="line.6196"></a>
+<span class="sourceLineNo">6197</span>                                                oaf64data[it.oIndex] = ox;<a name="line.6197"></a>
+<span class="sourceLineNo">6198</span>                                        }<a name="line.6198"></a>
+<span class="sourceLineNo">6199</span>                                } else {<a name="line.6199"></a>
+<span class="sourceLineNo">6200</span>                                        while (it.hasNext()) {<a name="line.6200"></a>
+<span class="sourceLineNo">6201</span>                                                final long iax = it.aLong;<a name="line.6201"></a>
+<span class="sourceLineNo">6202</span>                                                final long ibx = it.bLong;<a name="line.6202"></a>
+<span class="sourceLineNo">6203</span>                                                double ox;<a name="line.6203"></a>
+<span class="sourceLineNo">6204</span>                                                ox = (iax * ibx);<a name="line.6204"></a>
+<span class="sourceLineNo">6205</span>                                                oaf64data[it.oIndex] = ox;<a name="line.6205"></a>
+<span class="sourceLineNo">6206</span>                                        }<a name="line.6206"></a>
+<span class="sourceLineNo">6207</span>                                }<a name="line.6207"></a>
+<span class="sourceLineNo">6208</span>                        } else if (as &lt; bs) {<a name="line.6208"></a>
+<span class="sourceLineNo">6209</span>                                if (it.isOutputDouble()) {<a name="line.6209"></a>
+<span class="sourceLineNo">6210</span>                                        while (it.hasNext()) {<a name="line.6210"></a>
+<span class="sourceLineNo">6211</span>                                                final double iax = it.aDouble;<a name="line.6211"></a>
+<span class="sourceLineNo">6212</span>                                                double ibx = it.bDouble;<a name="line.6212"></a>
+<span class="sourceLineNo">6213</span>                                                double ox;<a name="line.6213"></a>
+<span class="sourceLineNo">6214</span>                                                ox = (iax * ibx);<a name="line.6214"></a>
+<span class="sourceLineNo">6215</span>                                                oaf64data[it.oIndex] = ox;<a name="line.6215"></a>
+<span class="sourceLineNo">6216</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6216"></a>
+<span class="sourceLineNo">6217</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.6217"></a>
+<span class="sourceLineNo">6218</span>                                                        ox = (iax * ibx);<a name="line.6218"></a>
+<span class="sourceLineNo">6219</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.6219"></a>
+<span class="sourceLineNo">6220</span>                                                }<a name="line.6220"></a>
+<span class="sourceLineNo">6221</span>                                        }<a name="line.6221"></a>
+<span class="sourceLineNo">6222</span>                                } else {<a name="line.6222"></a>
+<span class="sourceLineNo">6223</span>                                        while (it.hasNext()) {<a name="line.6223"></a>
+<span class="sourceLineNo">6224</span>                                                final long iax = it.aLong;<a name="line.6224"></a>
+<span class="sourceLineNo">6225</span>                                                long ibx = it.bLong;<a name="line.6225"></a>
+<span class="sourceLineNo">6226</span>                                                double ox;<a name="line.6226"></a>
+<span class="sourceLineNo">6227</span>                                                ox = (iax * ibx);<a name="line.6227"></a>
+<span class="sourceLineNo">6228</span>                                                oaf64data[it.oIndex] = ox;<a name="line.6228"></a>
+<span class="sourceLineNo">6229</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6229"></a>
+<span class="sourceLineNo">6230</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.6230"></a>
+<span class="sourceLineNo">6231</span>                                                        ox = (iax * ibx);<a name="line.6231"></a>
+<span class="sourceLineNo">6232</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.6232"></a>
+<span class="sourceLineNo">6233</span>                                                }<a name="line.6233"></a>
+<span class="sourceLineNo">6234</span>                                        }<a name="line.6234"></a>
+<span class="sourceLineNo">6235</span>                                }<a name="line.6235"></a>
+<span class="sourceLineNo">6236</span>                        } else if (as &gt; bs) {<a name="line.6236"></a>
+<span class="sourceLineNo">6237</span>                                if (it.isOutputDouble()) {<a name="line.6237"></a>
+<span class="sourceLineNo">6238</span>                                        while (it.hasNext()) {<a name="line.6238"></a>
+<span class="sourceLineNo">6239</span>                                                double iax = it.aDouble;<a name="line.6239"></a>
+<span class="sourceLineNo">6240</span>                                                final double ibx = it.bDouble;<a name="line.6240"></a>
+<span class="sourceLineNo">6241</span>                                                double ox;<a name="line.6241"></a>
+<span class="sourceLineNo">6242</span>                                                ox = (iax * ibx);<a name="line.6242"></a>
+<span class="sourceLineNo">6243</span>                                                oaf64data[it.oIndex] = ox;<a name="line.6243"></a>
+<span class="sourceLineNo">6244</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6244"></a>
+<span class="sourceLineNo">6245</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.6245"></a>
+<span class="sourceLineNo">6246</span>                                                        ox = (iax * ibx);<a name="line.6246"></a>
+<span class="sourceLineNo">6247</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.6247"></a>
+<span class="sourceLineNo">6248</span>                                                }<a name="line.6248"></a>
+<span class="sourceLineNo">6249</span>                                        }<a name="line.6249"></a>
+<span class="sourceLineNo">6250</span>                                } else {<a name="line.6250"></a>
+<span class="sourceLineNo">6251</span>                                        while (it.hasNext()) {<a name="line.6251"></a>
+<span class="sourceLineNo">6252</span>                                                long iax = it.aLong;<a name="line.6252"></a>
+<span class="sourceLineNo">6253</span>                                                final long ibx = it.bLong;<a name="line.6253"></a>
+<span class="sourceLineNo">6254</span>                                                double ox;<a name="line.6254"></a>
+<span class="sourceLineNo">6255</span>                                                ox = (iax * ibx);<a name="line.6255"></a>
+<span class="sourceLineNo">6256</span>                                                oaf64data[it.oIndex] = ox;<a name="line.6256"></a>
+<span class="sourceLineNo">6257</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6257"></a>
+<span class="sourceLineNo">6258</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.6258"></a>
+<span class="sourceLineNo">6259</span>                                                        ox = (iax * ibx);<a name="line.6259"></a>
+<span class="sourceLineNo">6260</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.6260"></a>
+<span class="sourceLineNo">6261</span>                                                }<a name="line.6261"></a>
+<span class="sourceLineNo">6262</span>                                        }<a name="line.6262"></a>
+<span class="sourceLineNo">6263</span>                                }<a name="line.6263"></a>
+<span class="sourceLineNo">6264</span>                        } else if (as == 1) {<a name="line.6264"></a>
+<span class="sourceLineNo">6265</span>                                if (it.isOutputDouble()) {<a name="line.6265"></a>
+<span class="sourceLineNo">6266</span>                                        while (it.hasNext()) {<a name="line.6266"></a>
+<span class="sourceLineNo">6267</span>                                                final double iax = it.aDouble;<a name="line.6267"></a>
+<span class="sourceLineNo">6268</span>                                                final double ibx = it.bDouble;<a name="line.6268"></a>
+<span class="sourceLineNo">6269</span>                                                double ox;<a name="line.6269"></a>
+<span class="sourceLineNo">6270</span>                                                ox = (iax * ibx);<a name="line.6270"></a>
+<span class="sourceLineNo">6271</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.6271"></a>
+<span class="sourceLineNo">6272</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.6272"></a>
+<span class="sourceLineNo">6273</span>                                                }<a name="line.6273"></a>
+<span class="sourceLineNo">6274</span>                                        }<a name="line.6274"></a>
+<span class="sourceLineNo">6275</span>                                } else {<a name="line.6275"></a>
+<span class="sourceLineNo">6276</span>                                        while (it.hasNext()) {<a name="line.6276"></a>
+<span class="sourceLineNo">6277</span>                                                final long iax = it.aLong;<a name="line.6277"></a>
+<span class="sourceLineNo">6278</span>                                                final long ibx = it.bLong;<a name="line.6278"></a>
+<span class="sourceLineNo">6279</span>                                                double ox;<a name="line.6279"></a>
+<span class="sourceLineNo">6280</span>                                                ox = (iax * ibx);<a name="line.6280"></a>
+<span class="sourceLineNo">6281</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.6281"></a>
+<span class="sourceLineNo">6282</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.6282"></a>
+<span class="sourceLineNo">6283</span>                                                }<a name="line.6283"></a>
+<span class="sourceLineNo">6284</span>                                        }<a name="line.6284"></a>
+<span class="sourceLineNo">6285</span>                                }<a name="line.6285"></a>
+<span class="sourceLineNo">6286</span>                        } else {<a name="line.6286"></a>
+<span class="sourceLineNo">6287</span>                                if (it.isOutputDouble()) {<a name="line.6287"></a>
+<span class="sourceLineNo">6288</span>                                        while (it.hasNext()) {<a name="line.6288"></a>
+<span class="sourceLineNo">6289</span>                                                double iax = it.aDouble;<a name="line.6289"></a>
+<span class="sourceLineNo">6290</span>                                                double ibx = it.bDouble;<a name="line.6290"></a>
+<span class="sourceLineNo">6291</span>                                                double ox;<a name="line.6291"></a>
+<span class="sourceLineNo">6292</span>                                                ox = (iax * ibx);<a name="line.6292"></a>
+<span class="sourceLineNo">6293</span>                                                oaf64data[it.oIndex] = ox;<a name="line.6293"></a>
+<span class="sourceLineNo">6294</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6294"></a>
+<span class="sourceLineNo">6295</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.6295"></a>
+<span class="sourceLineNo">6296</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.6296"></a>
+<span class="sourceLineNo">6297</span>                                                        ox = (iax * ibx);<a name="line.6297"></a>
+<span class="sourceLineNo">6298</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.6298"></a>
+<span class="sourceLineNo">6299</span>                                                }<a name="line.6299"></a>
+<span class="sourceLineNo">6300</span>                                        }<a name="line.6300"></a>
+<span class="sourceLineNo">6301</span>                                } else {<a name="line.6301"></a>
+<span class="sourceLineNo">6302</span>                                        while (it.hasNext()) {<a name="line.6302"></a>
+<span class="sourceLineNo">6303</span>                                                long iax = it.aLong;<a name="line.6303"></a>
+<span class="sourceLineNo">6304</span>                                                long ibx = it.bLong;<a name="line.6304"></a>
+<span class="sourceLineNo">6305</span>                                                double ox;<a name="line.6305"></a>
+<span class="sourceLineNo">6306</span>                                                ox = (iax * ibx);<a name="line.6306"></a>
+<span class="sourceLineNo">6307</span>                                                oaf64data[it.oIndex] = ox;<a name="line.6307"></a>
+<span class="sourceLineNo">6308</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6308"></a>
+<span class="sourceLineNo">6309</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.6309"></a>
+<span class="sourceLineNo">6310</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.6310"></a>
+<span class="sourceLineNo">6311</span>                                                        ox = (iax * ibx);<a name="line.6311"></a>
+<span class="sourceLineNo">6312</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.6312"></a>
+<span class="sourceLineNo">6313</span>                                                }<a name="line.6313"></a>
+<span class="sourceLineNo">6314</span>                                        }<a name="line.6314"></a>
+<span class="sourceLineNo">6315</span>                                }<a name="line.6315"></a>
+<span class="sourceLineNo">6316</span>                        }<a name="line.6316"></a>
+<span class="sourceLineNo">6317</span>                        break;<a name="line.6317"></a>
+<span class="sourceLineNo">6318</span>                case Dataset.COMPLEX64:<a name="line.6318"></a>
+<span class="sourceLineNo">6319</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.6319"></a>
+<span class="sourceLineNo">6320</span>                        if (!da.isComplex()) {<a name="line.6320"></a>
+<span class="sourceLineNo">6321</span>                                if (it.isOutputDouble()) {<a name="line.6321"></a>
+<span class="sourceLineNo">6322</span>                                        final double iay = 0;<a name="line.6322"></a>
+<span class="sourceLineNo">6323</span>                                        if (db.isComplex()) {<a name="line.6323"></a>
+<span class="sourceLineNo">6324</span>                                                while (it.hasNext()) {<a name="line.6324"></a>
+<span class="sourceLineNo">6325</span>                                                        final double iax = it.aDouble;<a name="line.6325"></a>
+<span class="sourceLineNo">6326</span>                                                        final double ibx = it.bDouble;<a name="line.6326"></a>
+<span class="sourceLineNo">6327</span>                                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.6327"></a>
+<span class="sourceLineNo">6328</span>                                                        float ox;<a name="line.6328"></a>
+<span class="sourceLineNo">6329</span>                                                        float oy;<a name="line.6329"></a>
+<span class="sourceLineNo">6330</span>                                                        ox = (float) (iax * ibx - iay * iby);<a name="line.6330"></a>
+<span class="sourceLineNo">6331</span>                                                        oy = (float) (iax * iby + iay * ibx);<a name="line.6331"></a>
+<span class="sourceLineNo">6332</span>                                                        oc64data[it.oIndex] = ox;<a name="line.6332"></a>
+<span class="sourceLineNo">6333</span>                                                        oc64data[it.oIndex + 1] = oy;<a name="line.6333"></a>
+<span class="sourceLineNo">6334</span>                                                }<a name="line.6334"></a>
+<span class="sourceLineNo">6335</span>                                        } else {<a name="line.6335"></a>
+<span class="sourceLineNo">6336</span>                                                while (it.hasNext()) {<a name="line.6336"></a>
+<span class="sourceLineNo">6337</span>                                                        final double iax = it.aDouble;<a name="line.6337"></a>
+<span class="sourceLineNo">6338</span>                                                        final double ibx = it.bDouble;<a name="line.6338"></a>
+<span class="sourceLineNo">6339</span>                                                        final double iby = 0;<a name="line.6339"></a>
+<span class="sourceLineNo">6340</span>                                                        float ox;<a name="line.6340"></a>
+<span class="sourceLineNo">6341</span>                                                        float oy;<a name="line.6341"></a>
+<span class="sourceLineNo">6342</span>                                                        ox = (float) (iax * ibx - iay * iby);<a name="line.6342"></a>
+<span class="sourceLineNo">6343</span>                                                        oy = (float) (iax * iby + iay * ibx);<a name="line.6343"></a>
+<span class="sourceLineNo">6344</span>                                                        oc64data[it.oIndex] = ox;<a name="line.6344"></a>
+<span class="sourceLineNo">6345</span>                                                        oc64data[it.oIndex + 1] = oy;<a name="line.6345"></a>
+<span class="sourceLineNo">6346</span>                                                }<a name="line.6346"></a>
+<span class="sourceLineNo">6347</span>                                        }<a name="line.6347"></a>
+<span class="sourceLineNo">6348</span>                                } else {<a name="line.6348"></a>
+<span class="sourceLineNo">6349</span>                                        final long iay = 0;<a name="line.6349"></a>
+<span class="sourceLineNo">6350</span>                                        while (it.hasNext()) {<a name="line.6350"></a>
+<span class="sourceLineNo">6351</span>                                                final long iax = it.aLong;<a name="line.6351"></a>
+<span class="sourceLineNo">6352</span>                                                final long ibx = it.bLong;<a name="line.6352"></a>
+<span class="sourceLineNo">6353</span>                                                final long iby = 0;<a name="line.6353"></a>
+<span class="sourceLineNo">6354</span>                                                float ox;<a name="line.6354"></a>
+<span class="sourceLineNo">6355</span>                                                float oy;<a name="line.6355"></a>
+<span class="sourceLineNo">6356</span>                                                ox = (float) (iax * ibx - iay * iby);<a name="line.6356"></a>
+<span class="sourceLineNo">6357</span>                                                oy = (float) (iax * iby + iay * ibx);<a name="line.6357"></a>
+<span class="sourceLineNo">6358</span>                                                oc64data[it.oIndex] = ox;<a name="line.6358"></a>
+<span class="sourceLineNo">6359</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.6359"></a>
+<span class="sourceLineNo">6360</span>                                        }<a name="line.6360"></a>
+<span class="sourceLineNo">6361</span>                                }<a name="line.6361"></a>
+<span class="sourceLineNo">6362</span>                        } else if (!db.isComplex()) {<a name="line.6362"></a>
+<span class="sourceLineNo">6363</span>                                final double iby = 0;<a name="line.6363"></a>
+<span class="sourceLineNo">6364</span>                                while (it.hasNext()) {<a name="line.6364"></a>
+<span class="sourceLineNo">6365</span>                                        final double iax = it.aDouble;<a name="line.6365"></a>
+<span class="sourceLineNo">6366</span>                                        final double ibx = it.bDouble;<a name="line.6366"></a>
+<span class="sourceLineNo">6367</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.6367"></a>
+<span class="sourceLineNo">6368</span>                                        float ox;<a name="line.6368"></a>
+<span class="sourceLineNo">6369</span>                                        float oy;<a name="line.6369"></a>
+<span class="sourceLineNo">6370</span>                                        ox = (float) (iax * ibx - iay * iby);<a name="line.6370"></a>
+<span class="sourceLineNo">6371</span>                                        oy = (float) (iax * iby + iay * ibx);<a name="line.6371"></a>
+<span class="sourceLineNo">6372</span>                                        oc64data[it.oIndex] = ox;<a name="line.6372"></a>
+<span class="sourceLineNo">6373</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.6373"></a>
+<span class="sourceLineNo">6374</span>                                }<a name="line.6374"></a>
+<span class="sourceLineNo">6375</span>                        } else {<a name="line.6375"></a>
+<span class="sourceLineNo">6376</span>                                while (it.hasNext()) {<a name="line.6376"></a>
+<span class="sourceLineNo">6377</span>                                        final double iax = it.aDouble;<a name="line.6377"></a>
+<span class="sourceLineNo">6378</span>                                        final double ibx = it.bDouble;<a name="line.6378"></a>
+<span class="sourceLineNo">6379</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.6379"></a>
+<span class="sourceLineNo">6380</span>                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.6380"></a>
+<span class="sourceLineNo">6381</span>                                        float ox;<a name="line.6381"></a>
+<span class="sourceLineNo">6382</span>                                        float oy;<a name="line.6382"></a>
+<span class="sourceLineNo">6383</span>                                        ox = (float) (iax * ibx - iay * iby);<a name="line.6383"></a>
+<span class="sourceLineNo">6384</span>                                        oy = (float) (iax * iby + iay * ibx);<a name="line.6384"></a>
+<span class="sourceLineNo">6385</span>                                        oc64data[it.oIndex] = ox;<a name="line.6385"></a>
+<span class="sourceLineNo">6386</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.6386"></a>
+<span class="sourceLineNo">6387</span>                                }<a name="line.6387"></a>
+<span class="sourceLineNo">6388</span>                        }<a name="line.6388"></a>
+<span class="sourceLineNo">6389</span>                        break;<a name="line.6389"></a>
+<span class="sourceLineNo">6390</span>                case Dataset.COMPLEX128:<a name="line.6390"></a>
+<span class="sourceLineNo">6391</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.6391"></a>
+<span class="sourceLineNo">6392</span>                        if (!da.isComplex()) {<a name="line.6392"></a>
+<span class="sourceLineNo">6393</span>                                if (it.isOutputDouble()) {<a name="line.6393"></a>
+<span class="sourceLineNo">6394</span>                                        final double iay = 0;<a name="line.6394"></a>
+<span class="sourceLineNo">6395</span>                                        if (db.isComplex()) {<a name="line.6395"></a>
+<span class="sourceLineNo">6396</span>                                                while (it.hasNext()) {<a name="line.6396"></a>
+<span class="sourceLineNo">6397</span>                                                        final double iax = it.aDouble;<a name="line.6397"></a>
+<span class="sourceLineNo">6398</span>                                                        final double ibx = it.bDouble;<a name="line.6398"></a>
+<span class="sourceLineNo">6399</span>                                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.6399"></a>
+<span class="sourceLineNo">6400</span>                                                        double ox;<a name="line.6400"></a>
+<span class="sourceLineNo">6401</span>                                                        double oy;<a name="line.6401"></a>
+<span class="sourceLineNo">6402</span>                                                        ox = (iax * ibx - iay * iby);<a name="line.6402"></a>
+<span class="sourceLineNo">6403</span>                                                        oy = (iax * iby + iay * ibx);<a name="line.6403"></a>
+<span class="sourceLineNo">6404</span>                                                        oc128data[it.oIndex] = ox;<a name="line.6404"></a>
+<span class="sourceLineNo">6405</span>                                                        oc128data[it.oIndex + 1] = oy;<a name="line.6405"></a>
+<span class="sourceLineNo">6406</span>                                                }<a name="line.6406"></a>
+<span class="sourceLineNo">6407</span>                                        } else {<a name="line.6407"></a>
+<span class="sourceLineNo">6408</span>                                                while (it.hasNext()) {<a name="line.6408"></a>
+<span class="sourceLineNo">6409</span>                                                        final double iax = it.aDouble;<a name="line.6409"></a>
+<span class="sourceLineNo">6410</span>                                                        final double ibx = it.bDouble;<a name="line.6410"></a>
+<span class="sourceLineNo">6411</span>                                                        final double iby = 0;<a name="line.6411"></a>
+<span class="sourceLineNo">6412</span>                                                        double ox;<a name="line.6412"></a>
+<span class="sourceLineNo">6413</span>                                                        double oy;<a name="line.6413"></a>
+<span class="sourceLineNo">6414</span>                                                        ox = (iax * ibx - iay * iby);<a name="line.6414"></a>
+<span class="sourceLineNo">6415</span>                                                        oy = (iax * iby + iay * ibx);<a name="line.6415"></a>
+<span class="sourceLineNo">6416</span>                                                        oc128data[it.oIndex] = ox;<a name="line.6416"></a>
+<span class="sourceLineNo">6417</span>                                                        oc128data[it.oIndex + 1] = oy;<a name="line.6417"></a>
+<span class="sourceLineNo">6418</span>                                                }<a name="line.6418"></a>
+<span class="sourceLineNo">6419</span>                                        }<a name="line.6419"></a>
+<span class="sourceLineNo">6420</span>                                } else {<a name="line.6420"></a>
+<span class="sourceLineNo">6421</span>                                        final long iay = 0;<a name="line.6421"></a>
+<span class="sourceLineNo">6422</span>                                        while (it.hasNext()) {<a name="line.6422"></a>
+<span class="sourceLineNo">6423</span>                                                final long iax = it.aLong;<a name="line.6423"></a>
+<span class="sourceLineNo">6424</span>                                                final long ibx = it.bLong;<a name="line.6424"></a>
+<span class="sourceLineNo">6425</span>                                                final long iby = 0;<a name="line.6425"></a>
+<span class="sourceLineNo">6426</span>                                                double ox;<a name="line.6426"></a>
+<span class="sourceLineNo">6427</span>                                                double oy;<a name="line.6427"></a>
+<span class="sourceLineNo">6428</span>                                                ox = (iax * ibx - iay * iby);<a name="line.6428"></a>
+<span class="sourceLineNo">6429</span>                                                oy = (iax * iby + iay * ibx);<a name="line.6429"></a>
+<span class="sourceLineNo">6430</span>                                                oc128data[it.oIndex] = ox;<a name="line.6430"></a>
+<span class="sourceLineNo">6431</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.6431"></a>
+<span class="sourceLineNo">6432</span>                                        }<a name="line.6432"></a>
+<span class="sourceLineNo">6433</span>                                }<a name="line.6433"></a>
+<span class="sourceLineNo">6434</span>                        } else if (!db.isComplex()) {<a name="line.6434"></a>
+<span class="sourceLineNo">6435</span>                                final double iby = 0;<a name="line.6435"></a>
+<span class="sourceLineNo">6436</span>                                while (it.hasNext()) {<a name="line.6436"></a>
+<span class="sourceLineNo">6437</span>                                        final double iax = it.aDouble;<a name="line.6437"></a>
+<span class="sourceLineNo">6438</span>                                        final double ibx = it.bDouble;<a name="line.6438"></a>
+<span class="sourceLineNo">6439</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.6439"></a>
+<span class="sourceLineNo">6440</span>                                        double ox;<a name="line.6440"></a>
+<span class="sourceLineNo">6441</span>                                        double oy;<a name="line.6441"></a>
+<span class="sourceLineNo">6442</span>                                        ox = (iax * ibx - iay * iby);<a name="line.6442"></a>
+<span class="sourceLineNo">6443</span>                                        oy = (iax * iby + iay * ibx);<a name="line.6443"></a>
+<span class="sourceLineNo">6444</span>                                        oc128data[it.oIndex] = ox;<a name="line.6444"></a>
+<span class="sourceLineNo">6445</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.6445"></a>
+<span class="sourceLineNo">6446</span>                                }<a name="line.6446"></a>
+<span class="sourceLineNo">6447</span>                        } else {<a name="line.6447"></a>
+<span class="sourceLineNo">6448</span>                                while (it.hasNext()) {<a name="line.6448"></a>
+<span class="sourceLineNo">6449</span>                                        final double iax = it.aDouble;<a name="line.6449"></a>
+<span class="sourceLineNo">6450</span>                                        final double ibx = it.bDouble;<a name="line.6450"></a>
+<span class="sourceLineNo">6451</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.6451"></a>
+<span class="sourceLineNo">6452</span>                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.6452"></a>
+<span class="sourceLineNo">6453</span>                                        double ox;<a name="line.6453"></a>
+<span class="sourceLineNo">6454</span>                                        double oy;<a name="line.6454"></a>
+<span class="sourceLineNo">6455</span>                                        ox = (iax * ibx - iay * iby);<a name="line.6455"></a>
+<span class="sourceLineNo">6456</span>                                        oy = (iax * iby + iay * ibx);<a name="line.6456"></a>
+<span class="sourceLineNo">6457</span>                                        oc128data[it.oIndex] = ox;<a name="line.6457"></a>
+<span class="sourceLineNo">6458</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.6458"></a>
+<span class="sourceLineNo">6459</span>                                }<a name="line.6459"></a>
+<span class="sourceLineNo">6460</span>                        }<a name="line.6460"></a>
+<span class="sourceLineNo">6461</span>                        break;<a name="line.6461"></a>
+<span class="sourceLineNo">6462</span>                default:<a name="line.6462"></a>
+<span class="sourceLineNo">6463</span>                        throw new IllegalArgumentException("multiply supports integer, compound integer, real, compound real, complex datasets only");<a name="line.6463"></a>
+<span class="sourceLineNo">6464</span>                }<a name="line.6464"></a>
+<span class="sourceLineNo">6465</span><a name="line.6465"></a>
+<span class="sourceLineNo">6466</span>                addBinaryOperatorName(da, db, result, "*");<a name="line.6466"></a>
+<span class="sourceLineNo">6467</span>                return result;<a name="line.6467"></a>
+<span class="sourceLineNo">6468</span>        }<a name="line.6468"></a>
+<span class="sourceLineNo">6469</span><a name="line.6469"></a>
+<span class="sourceLineNo">6470</span>        /**<a name="line.6470"></a>
+<span class="sourceLineNo">6471</span>         * divide operator<a name="line.6471"></a>
+<span class="sourceLineNo">6472</span>         * @param a<a name="line.6472"></a>
+<span class="sourceLineNo">6473</span>         * @param b<a name="line.6473"></a>
+<span class="sourceLineNo">6474</span>         * @return {@code a / b}, division of a by b<a name="line.6474"></a>
+<span class="sourceLineNo">6475</span>         */<a name="line.6475"></a>
+<span class="sourceLineNo">6476</span>        public static Dataset divide(final Object a, final Object b) {<a name="line.6476"></a>
+<span class="sourceLineNo">6477</span>                return divide(a, b, null);<a name="line.6477"></a>
+<span class="sourceLineNo">6478</span>        }<a name="line.6478"></a>
+<span class="sourceLineNo">6479</span><a name="line.6479"></a>
+<span class="sourceLineNo">6480</span>        /**<a name="line.6480"></a>
+<span class="sourceLineNo">6481</span>         * divide operator<a name="line.6481"></a>
+<span class="sourceLineNo">6482</span>         * @param a<a name="line.6482"></a>
+<span class="sourceLineNo">6483</span>         * @param b<a name="line.6483"></a>
+<span class="sourceLineNo">6484</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.6484"></a>
+<span class="sourceLineNo">6485</span>         * @return {@code a / b}, division of a by b<a name="line.6485"></a>
+<span class="sourceLineNo">6486</span>         */<a name="line.6486"></a>
+<span class="sourceLineNo">6487</span>        public static Dataset divide(final Object a, final Object b, final Dataset o) {<a name="line.6487"></a>
+<span class="sourceLineNo">6488</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.6488"></a>
+<span class="sourceLineNo">6489</span>                Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.6489"></a>
+<span class="sourceLineNo">6490</span>                BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.6490"></a>
+<span class="sourceLineNo">6491</span>                final Dataset result = it.getOutput();<a name="line.6491"></a>
+<span class="sourceLineNo">6492</span>                if (!result.isComplex()) {<a name="line.6492"></a>
+<span class="sourceLineNo">6493</span>                        boolean change = false;<a name="line.6493"></a>
+<span class="sourceLineNo">6494</span>                        if (da.isComplex()) {<a name="line.6494"></a>
+<span class="sourceLineNo">6495</span>                                da = da.getRealView();<a name="line.6495"></a>
+<span class="sourceLineNo">6496</span>                                change = true;<a name="line.6496"></a>
+<span class="sourceLineNo">6497</span>                        }<a name="line.6497"></a>
+<span class="sourceLineNo">6498</span>                        if (db.isComplex()) {<a name="line.6498"></a>
+<span class="sourceLineNo">6499</span>                                db = db.getRealView();<a name="line.6499"></a>
+<span class="sourceLineNo">6500</span>                                change = true;<a name="line.6500"></a>
+<span class="sourceLineNo">6501</span>                        }<a name="line.6501"></a>
+<span class="sourceLineNo">6502</span>                        if (change) {<a name="line.6502"></a>
+<span class="sourceLineNo">6503</span>                                it = BroadcastIterator.createIterator(da, db, result, true);<a name="line.6503"></a>
+<span class="sourceLineNo">6504</span>                        }<a name="line.6504"></a>
+<span class="sourceLineNo">6505</span>                }<a name="line.6505"></a>
+<span class="sourceLineNo">6506</span>                final int is = result.getElementsPerItem();<a name="line.6506"></a>
+<span class="sourceLineNo">6507</span>                final int as = da.getElementsPerItem();<a name="line.6507"></a>
+<span class="sourceLineNo">6508</span>                final int bs = db.getElementsPerItem();<a name="line.6508"></a>
+<span class="sourceLineNo">6509</span>                final int dt = result.getDType();<a name="line.6509"></a>
+<span class="sourceLineNo">6510</span><a name="line.6510"></a>
+<span class="sourceLineNo">6511</span>                switch(dt) {<a name="line.6511"></a>
+<span class="sourceLineNo">6512</span>                case Dataset.INT8:<a name="line.6512"></a>
+<span class="sourceLineNo">6513</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.6513"></a>
+<span class="sourceLineNo">6514</span>                        if (it.isOutputDouble()) {<a name="line.6514"></a>
+<span class="sourceLineNo">6515</span>                                while (it.hasNext()) {<a name="line.6515"></a>
+<span class="sourceLineNo">6516</span>                                        final double iax = it.aDouble;<a name="line.6516"></a>
+<span class="sourceLineNo">6517</span>                                        final double ibx = it.bDouble;<a name="line.6517"></a>
+<span class="sourceLineNo">6518</span>                                        byte ox;<a name="line.6518"></a>
+<span class="sourceLineNo">6519</span>                                        ox = (byte) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.6519"></a>
+<span class="sourceLineNo">6520</span>                                        oi8data[it.oIndex] = ox;<a name="line.6520"></a>
+<span class="sourceLineNo">6521</span>                                }<a name="line.6521"></a>
+<span class="sourceLineNo">6522</span>                        } else {<a name="line.6522"></a>
+<span class="sourceLineNo">6523</span>                                while (it.hasNext()) {<a name="line.6523"></a>
+<span class="sourceLineNo">6524</span>                                        final long iax = it.aLong;<a name="line.6524"></a>
+<span class="sourceLineNo">6525</span>                                        final long ibx = it.bLong;<a name="line.6525"></a>
+<span class="sourceLineNo">6526</span>                                        byte ox;<a name="line.6526"></a>
+<span class="sourceLineNo">6527</span>                                        ox = (byte) (ibx == 0 ? 0 : iax / ibx);<a name="line.6527"></a>
+<span class="sourceLineNo">6528</span>                                        oi8data[it.oIndex] = ox;<a name="line.6528"></a>
+<span class="sourceLineNo">6529</span>                                }<a name="line.6529"></a>
+<span class="sourceLineNo">6530</span>                        }<a name="line.6530"></a>
+<span class="sourceLineNo">6531</span>                        break;<a name="line.6531"></a>
+<span class="sourceLineNo">6532</span>                case Dataset.INT16:<a name="line.6532"></a>
+<span class="sourceLineNo">6533</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.6533"></a>
+<span class="sourceLineNo">6534</span>                        if (it.isOutputDouble()) {<a name="line.6534"></a>
+<span class="sourceLineNo">6535</span>                                while (it.hasNext()) {<a name="line.6535"></a>
+<span class="sourceLineNo">6536</span>                                        final double iax = it.aDouble;<a name="line.6536"></a>
+<span class="sourceLineNo">6537</span>                                        final double ibx = it.bDouble;<a name="line.6537"></a>
+<span class="sourceLineNo">6538</span>                                        short ox;<a name="line.6538"></a>
+<span class="sourceLineNo">6539</span>                                        ox = (short) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.6539"></a>
+<span class="sourceLineNo">6540</span>                                        oi16data[it.oIndex] = ox;<a name="line.6540"></a>
+<span class="sourceLineNo">6541</span>                                }<a name="line.6541"></a>
+<span class="sourceLineNo">6542</span>                        } else {<a name="line.6542"></a>
+<span class="sourceLineNo">6543</span>                                while (it.hasNext()) {<a name="line.6543"></a>
+<span class="sourceLineNo">6544</span>                                        final long iax = it.aLong;<a name="line.6544"></a>
+<span class="sourceLineNo">6545</span>                                        final long ibx = it.bLong;<a name="line.6545"></a>
+<span class="sourceLineNo">6546</span>                                        short ox;<a name="line.6546"></a>
+<span class="sourceLineNo">6547</span>                                        ox = (short) (ibx == 0 ? 0 : iax / ibx);<a name="line.6547"></a>
+<span class="sourceLineNo">6548</span>                                        oi16data[it.oIndex] = ox;<a name="line.6548"></a>
+<span class="sourceLineNo">6549</span>                                }<a name="line.6549"></a>
+<span class="sourceLineNo">6550</span>                        }<a name="line.6550"></a>
+<span class="sourceLineNo">6551</span>                        break;<a name="line.6551"></a>
+<span class="sourceLineNo">6552</span>                case Dataset.INT64:<a name="line.6552"></a>
+<span class="sourceLineNo">6553</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.6553"></a>
+<span class="sourceLineNo">6554</span>                        if (it.isOutputDouble()) {<a name="line.6554"></a>
+<span class="sourceLineNo">6555</span>                                while (it.hasNext()) {<a name="line.6555"></a>
+<span class="sourceLineNo">6556</span>                                        final double iax = it.aDouble;<a name="line.6556"></a>
+<span class="sourceLineNo">6557</span>                                        final double ibx = it.bDouble;<a name="line.6557"></a>
+<span class="sourceLineNo">6558</span>                                        long ox;<a name="line.6558"></a>
+<span class="sourceLineNo">6559</span>                                        ox = toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.6559"></a>
+<span class="sourceLineNo">6560</span>                                        oi64data[it.oIndex] = ox;<a name="line.6560"></a>
+<span class="sourceLineNo">6561</span>                                }<a name="line.6561"></a>
+<span class="sourceLineNo">6562</span>                        } else {<a name="line.6562"></a>
+<span class="sourceLineNo">6563</span>                                while (it.hasNext()) {<a name="line.6563"></a>
+<span class="sourceLineNo">6564</span>                                        final long iax = it.aLong;<a name="line.6564"></a>
+<span class="sourceLineNo">6565</span>                                        final long ibx = it.bLong;<a name="line.6565"></a>
+<span class="sourceLineNo">6566</span>                                        long ox;<a name="line.6566"></a>
+<span class="sourceLineNo">6567</span>                                        ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.6567"></a>
+<span class="sourceLineNo">6568</span>                                        oi64data[it.oIndex] = ox;<a name="line.6568"></a>
+<span class="sourceLineNo">6569</span>                                }<a name="line.6569"></a>
+<span class="sourceLineNo">6570</span>                        }<a name="line.6570"></a>
+<span class="sourceLineNo">6571</span>                        break;<a name="line.6571"></a>
+<span class="sourceLineNo">6572</span>                case Dataset.INT32:<a name="line.6572"></a>
+<span class="sourceLineNo">6573</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.6573"></a>
+<span class="sourceLineNo">6574</span>                        if (it.isOutputDouble()) {<a name="line.6574"></a>
+<span class="sourceLineNo">6575</span>                                while (it.hasNext()) {<a name="line.6575"></a>
+<span class="sourceLineNo">6576</span>                                        final double iax = it.aDouble;<a name="line.6576"></a>
+<span class="sourceLineNo">6577</span>                                        final double ibx = it.bDouble;<a name="line.6577"></a>
+<span class="sourceLineNo">6578</span>                                        int ox;<a name="line.6578"></a>
+<span class="sourceLineNo">6579</span>                                        ox = (int) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.6579"></a>
+<span class="sourceLineNo">6580</span>                                        oi32data[it.oIndex] = ox;<a name="line.6580"></a>
+<span class="sourceLineNo">6581</span>                                }<a name="line.6581"></a>
+<span class="sourceLineNo">6582</span>                        } else {<a name="line.6582"></a>
+<span class="sourceLineNo">6583</span>                                while (it.hasNext()) {<a name="line.6583"></a>
+<span class="sourceLineNo">6584</span>                                        final long iax = it.aLong;<a name="line.6584"></a>
+<span class="sourceLineNo">6585</span>                                        final long ibx = it.bLong;<a name="line.6585"></a>
+<span class="sourceLineNo">6586</span>                                        int ox;<a name="line.6586"></a>
+<span class="sourceLineNo">6587</span>                                        ox = (int) (ibx == 0 ? 0 : iax / ibx);<a name="line.6587"></a>
+<span class="sourceLineNo">6588</span>                                        oi32data[it.oIndex] = ox;<a name="line.6588"></a>
+<span class="sourceLineNo">6589</span>                                }<a name="line.6589"></a>
+<span class="sourceLineNo">6590</span>                        }<a name="line.6590"></a>
+<span class="sourceLineNo">6591</span>                        break;<a name="line.6591"></a>
+<span class="sourceLineNo">6592</span>                case Dataset.ARRAYINT8:<a name="line.6592"></a>
+<span class="sourceLineNo">6593</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.6593"></a>
+<span class="sourceLineNo">6594</span>                        if (is == 1) {<a name="line.6594"></a>
+<span class="sourceLineNo">6595</span>                                if (it.isOutputDouble()) {<a name="line.6595"></a>
+<span class="sourceLineNo">6596</span>                                        while (it.hasNext()) {<a name="line.6596"></a>
+<span class="sourceLineNo">6597</span>                                                final double iax = it.aDouble;<a name="line.6597"></a>
+<span class="sourceLineNo">6598</span>                                                final double ibx = it.bDouble;<a name="line.6598"></a>
+<span class="sourceLineNo">6599</span>                                                byte ox;<a name="line.6599"></a>
+<span class="sourceLineNo">6600</span>                                                ox = (byte) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.6600"></a>
+<span class="sourceLineNo">6601</span>                                                oai8data[it.oIndex] = ox;<a name="line.6601"></a>
+<span class="sourceLineNo">6602</span>                                        }<a name="line.6602"></a>
+<span class="sourceLineNo">6603</span>                                } else {<a name="line.6603"></a>
+<span class="sourceLineNo">6604</span>                                        while (it.hasNext()) {<a name="line.6604"></a>
+<span class="sourceLineNo">6605</span>                                                final long iax = it.aLong;<a name="line.6605"></a>
+<span class="sourceLineNo">6606</span>                                                final long ibx = it.bLong;<a name="line.6606"></a>
+<span class="sourceLineNo">6607</span>                                                byte ox;<a name="line.6607"></a>
+<span class="sourceLineNo">6608</span>                                                ox = (byte) (ibx == 0 ? 0 : iax / ibx);<a name="line.6608"></a>
+<span class="sourceLineNo">6609</span>                                                oai8data[it.oIndex] = ox;<a name="line.6609"></a>
+<span class="sourceLineNo">6610</span>                                        }<a name="line.6610"></a>
+<span class="sourceLineNo">6611</span>                                }<a name="line.6611"></a>
+<span class="sourceLineNo">6612</span>                        } else if (as &lt; bs) {<a name="line.6612"></a>
+<span class="sourceLineNo">6613</span>                                if (it.isOutputDouble()) {<a name="line.6613"></a>
+<span class="sourceLineNo">6614</span>                                        while (it.hasNext()) {<a name="line.6614"></a>
+<span class="sourceLineNo">6615</span>                                                final double iax = it.aDouble;<a name="line.6615"></a>
+<span class="sourceLineNo">6616</span>                                                double ibx = it.bDouble;<a name="line.6616"></a>
+<span class="sourceLineNo">6617</span>                                                byte ox;<a name="line.6617"></a>
+<span class="sourceLineNo">6618</span>                                                ox = (byte) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.6618"></a>
+<span class="sourceLineNo">6619</span>                                                oai8data[it.oIndex] = ox;<a name="line.6619"></a>
+<span class="sourceLineNo">6620</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6620"></a>
+<span class="sourceLineNo">6621</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.6621"></a>
+<span class="sourceLineNo">6622</span>                                                        ox = (byte) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.6622"></a>
+<span class="sourceLineNo">6623</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.6623"></a>
+<span class="sourceLineNo">6624</span>                                                }<a name="line.6624"></a>
+<span class="sourceLineNo">6625</span>                                        }<a name="line.6625"></a>
+<span class="sourceLineNo">6626</span>                                } else {<a name="line.6626"></a>
+<span class="sourceLineNo">6627</span>                                        while (it.hasNext()) {<a name="line.6627"></a>
+<span class="sourceLineNo">6628</span>                                                final long iax = it.aLong;<a name="line.6628"></a>
+<span class="sourceLineNo">6629</span>                                                long ibx = it.bLong;<a name="line.6629"></a>
+<span class="sourceLineNo">6630</span>                                                byte ox;<a name="line.6630"></a>
+<span class="sourceLineNo">6631</span>                                                ox = (byte) (ibx == 0 ? 0 : iax / ibx);<a name="line.6631"></a>
+<span class="sourceLineNo">6632</span>                                                oai8data[it.oIndex] = ox;<a name="line.6632"></a>
+<span class="sourceLineNo">6633</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6633"></a>
+<span class="sourceLineNo">6634</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.6634"></a>
+<span class="sourceLineNo">6635</span>                                                        ox = (byte) (ibx == 0 ? 0 : iax / ibx);<a name="line.6635"></a>
+<span class="sourceLineNo">6636</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.6636"></a>
+<span class="sourceLineNo">6637</span>                                                }<a name="line.6637"></a>
+<span class="sourceLineNo">6638</span>                                        }<a name="line.6638"></a>
+<span class="sourceLineNo">6639</span>                                }<a name="line.6639"></a>
+<span class="sourceLineNo">6640</span>                        } else if (as &gt; bs) {<a name="line.6640"></a>
+<span class="sourceLineNo">6641</span>                                if (it.isOutputDouble()) {<a name="line.6641"></a>
+<span class="sourceLineNo">6642</span>                                        while (it.hasNext()) {<a name="line.6642"></a>
+<span class="sourceLineNo">6643</span>                                                double iax = it.aDouble;<a name="line.6643"></a>
+<span class="sourceLineNo">6644</span>                                                final double ibx = it.bDouble;<a name="line.6644"></a>
+<span class="sourceLineNo">6645</span>                                                byte ox;<a name="line.6645"></a>
+<span class="sourceLineNo">6646</span>                                                ox = (byte) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.6646"></a>
+<span class="sourceLineNo">6647</span>                                                oai8data[it.oIndex] = ox;<a name="line.6647"></a>
+<span class="sourceLineNo">6648</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6648"></a>
+<span class="sourceLineNo">6649</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.6649"></a>
+<span class="sourceLineNo">6650</span>                                                        ox = (byte) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.6650"></a>
+<span class="sourceLineNo">6651</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.6651"></a>
+<span class="sourceLineNo">6652</span>                                                }<a name="line.6652"></a>
+<span class="sourceLineNo">6653</span>                                        }<a name="line.6653"></a>
+<span class="sourceLineNo">6654</span>                                } else {<a name="line.6654"></a>
+<span class="sourceLineNo">6655</span>                                        while (it.hasNext()) {<a name="line.6655"></a>
+<span class="sourceLineNo">6656</span>                                                long iax = it.aLong;<a name="line.6656"></a>
+<span class="sourceLineNo">6657</span>                                                final long ibx = it.bLong;<a name="line.6657"></a>
+<span class="sourceLineNo">6658</span>                                                byte ox;<a name="line.6658"></a>
+<span class="sourceLineNo">6659</span>                                                ox = (byte) (ibx == 0 ? 0 : iax / ibx);<a name="line.6659"></a>
+<span class="sourceLineNo">6660</span>                                                oai8data[it.oIndex] = ox;<a name="line.6660"></a>
+<span class="sourceLineNo">6661</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6661"></a>
+<span class="sourceLineNo">6662</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.6662"></a>
+<span class="sourceLineNo">6663</span>                                                        ox = (byte) (ibx == 0 ? 0 : iax / ibx);<a name="line.6663"></a>
+<span class="sourceLineNo">6664</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.6664"></a>
+<span class="sourceLineNo">6665</span>                                                }<a name="line.6665"></a>
+<span class="sourceLineNo">6666</span>                                        }<a name="line.6666"></a>
+<span class="sourceLineNo">6667</span>                                }<a name="line.6667"></a>
+<span class="sourceLineNo">6668</span>                        } else if (as == 1) {<a name="line.6668"></a>
+<span class="sourceLineNo">6669</span>                                if (it.isOutputDouble()) {<a name="line.6669"></a>
+<span class="sourceLineNo">6670</span>                                        while (it.hasNext()) {<a name="line.6670"></a>
+<span class="sourceLineNo">6671</span>                                                final double iax = it.aDouble;<a name="line.6671"></a>
+<span class="sourceLineNo">6672</span>                                                final double ibx = it.bDouble;<a name="line.6672"></a>
+<span class="sourceLineNo">6673</span>                                                byte ox;<a name="line.6673"></a>
+<span class="sourceLineNo">6674</span>                                                ox = (byte) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.6674"></a>
+<span class="sourceLineNo">6675</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.6675"></a>
+<span class="sourceLineNo">6676</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.6676"></a>
+<span class="sourceLineNo">6677</span>                                                }<a name="line.6677"></a>
+<span class="sourceLineNo">6678</span>                                        }<a name="line.6678"></a>
+<span class="sourceLineNo">6679</span>                                } else {<a name="line.6679"></a>
+<span class="sourceLineNo">6680</span>                                        while (it.hasNext()) {<a name="line.6680"></a>
+<span class="sourceLineNo">6681</span>                                                final long iax = it.aLong;<a name="line.6681"></a>
+<span class="sourceLineNo">6682</span>                                                final long ibx = it.bLong;<a name="line.6682"></a>
+<span class="sourceLineNo">6683</span>                                                byte ox;<a name="line.6683"></a>
+<span class="sourceLineNo">6684</span>                                                ox = (byte) (ibx == 0 ? 0 : iax / ibx);<a name="line.6684"></a>
+<span class="sourceLineNo">6685</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.6685"></a>
+<span class="sourceLineNo">6686</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.6686"></a>
+<span class="sourceLineNo">6687</span>                                                }<a name="line.6687"></a>
+<span class="sourceLineNo">6688</span>                                        }<a name="line.6688"></a>
+<span class="sourceLineNo">6689</span>                                }<a name="line.6689"></a>
+<span class="sourceLineNo">6690</span>                        } else {<a name="line.6690"></a>
+<span class="sourceLineNo">6691</span>                                if (it.isOutputDouble()) {<a name="line.6691"></a>
+<span class="sourceLineNo">6692</span>                                        while (it.hasNext()) {<a name="line.6692"></a>
+<span class="sourceLineNo">6693</span>                                                double iax = it.aDouble;<a name="line.6693"></a>
+<span class="sourceLineNo">6694</span>                                                double ibx = it.bDouble;<a name="line.6694"></a>
+<span class="sourceLineNo">6695</span>                                                byte ox;<a name="line.6695"></a>
+<span class="sourceLineNo">6696</span>                                                ox = (byte) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.6696"></a>
+<span class="sourceLineNo">6697</span>                                                oai8data[it.oIndex] = ox;<a name="line.6697"></a>
+<span class="sourceLineNo">6698</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6698"></a>
+<span class="sourceLineNo">6699</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.6699"></a>
+<span class="sourceLineNo">6700</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.6700"></a>
+<span class="sourceLineNo">6701</span>                                                        ox = (byte) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.6701"></a>
+<span class="sourceLineNo">6702</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.6702"></a>
+<span class="sourceLineNo">6703</span>                                                }<a name="line.6703"></a>
+<span class="sourceLineNo">6704</span>                                        }<a name="line.6704"></a>
+<span class="sourceLineNo">6705</span>                                } else {<a name="line.6705"></a>
+<span class="sourceLineNo">6706</span>                                        while (it.hasNext()) {<a name="line.6706"></a>
+<span class="sourceLineNo">6707</span>                                                long iax = it.aLong;<a name="line.6707"></a>
+<span class="sourceLineNo">6708</span>                                                long ibx = it.bLong;<a name="line.6708"></a>
+<span class="sourceLineNo">6709</span>                                                byte ox;<a name="line.6709"></a>
+<span class="sourceLineNo">6710</span>                                                ox = (byte) (ibx == 0 ? 0 : iax / ibx);<a name="line.6710"></a>
+<span class="sourceLineNo">6711</span>                                                oai8data[it.oIndex] = ox;<a name="line.6711"></a>
+<span class="sourceLineNo">6712</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6712"></a>
+<span class="sourceLineNo">6713</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.6713"></a>
+<span class="sourceLineNo">6714</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.6714"></a>
+<span class="sourceLineNo">6715</span>                                                        ox = (byte) (ibx == 0 ? 0 : iax / ibx);<a name="line.6715"></a>
+<span class="sourceLineNo">6716</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.6716"></a>
+<span class="sourceLineNo">6717</span>                                                }<a name="line.6717"></a>
+<span class="sourceLineNo">6718</span>                                        }<a name="line.6718"></a>
+<span class="sourceLineNo">6719</span>                                }<a name="line.6719"></a>
+<span class="sourceLineNo">6720</span>                        }<a name="line.6720"></a>
+<span class="sourceLineNo">6721</span>                        break;<a name="line.6721"></a>
+<span class="sourceLineNo">6722</span>                case Dataset.ARRAYINT16:<a name="line.6722"></a>
+<span class="sourceLineNo">6723</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.6723"></a>
+<span class="sourceLineNo">6724</span>                        if (is == 1) {<a name="line.6724"></a>
+<span class="sourceLineNo">6725</span>                                if (it.isOutputDouble()) {<a name="line.6725"></a>
+<span class="sourceLineNo">6726</span>                                        while (it.hasNext()) {<a name="line.6726"></a>
+<span class="sourceLineNo">6727</span>                                                final double iax = it.aDouble;<a name="line.6727"></a>
+<span class="sourceLineNo">6728</span>                                                final double ibx = it.bDouble;<a name="line.6728"></a>
+<span class="sourceLineNo">6729</span>                                                short ox;<a name="line.6729"></a>
+<span class="sourceLineNo">6730</span>                                                ox = (short) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.6730"></a>
+<span class="sourceLineNo">6731</span>                                                oai16data[it.oIndex] = ox;<a name="line.6731"></a>
+<span class="sourceLineNo">6732</span>                                        }<a name="line.6732"></a>
+<span class="sourceLineNo">6733</span>                                } else {<a name="line.6733"></a>
+<span class="sourceLineNo">6734</span>                                        while (it.hasNext()) {<a name="line.6734"></a>
+<span class="sourceLineNo">6735</span>                                                final long iax = it.aLong;<a name="line.6735"></a>
+<span class="sourceLineNo">6736</span>                                                final long ibx = it.bLong;<a name="line.6736"></a>
+<span class="sourceLineNo">6737</span>                                                short ox;<a name="line.6737"></a>
+<span class="sourceLineNo">6738</span>                                                ox = (short) (ibx == 0 ? 0 : iax / ibx);<a name="line.6738"></a>
+<span class="sourceLineNo">6739</span>                                                oai16data[it.oIndex] = ox;<a name="line.6739"></a>
+<span class="sourceLineNo">6740</span>                                        }<a name="line.6740"></a>
+<span class="sourceLineNo">6741</span>                                }<a name="line.6741"></a>
+<span class="sourceLineNo">6742</span>                        } else if (as &lt; bs) {<a name="line.6742"></a>
+<span class="sourceLineNo">6743</span>                                if (it.isOutputDouble()) {<a name="line.6743"></a>
+<span class="sourceLineNo">6744</span>                                        while (it.hasNext()) {<a name="line.6744"></a>
+<span class="sourceLineNo">6745</span>                                                final double iax = it.aDouble;<a name="line.6745"></a>
+<span class="sourceLineNo">6746</span>                                                double ibx = it.bDouble;<a name="line.6746"></a>
+<span class="sourceLineNo">6747</span>                                                short ox;<a name="line.6747"></a>
+<span class="sourceLineNo">6748</span>                                                ox = (short) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.6748"></a>
+<span class="sourceLineNo">6749</span>                                                oai16data[it.oIndex] = ox;<a name="line.6749"></a>
+<span class="sourceLineNo">6750</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6750"></a>
+<span class="sourceLineNo">6751</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.6751"></a>
+<span class="sourceLineNo">6752</span>                                                        ox = (short) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.6752"></a>
+<span class="sourceLineNo">6753</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.6753"></a>
+<span class="sourceLineNo">6754</span>                                                }<a name="line.6754"></a>
+<span class="sourceLineNo">6755</span>                                        }<a name="line.6755"></a>
+<span class="sourceLineNo">6756</span>                                } else {<a name="line.6756"></a>
+<span class="sourceLineNo">6757</span>                                        while (it.hasNext()) {<a name="line.6757"></a>
+<span class="sourceLineNo">6758</span>                                                final long iax = it.aLong;<a name="line.6758"></a>
+<span class="sourceLineNo">6759</span>                                                long ibx = it.bLong;<a name="line.6759"></a>
+<span class="sourceLineNo">6760</span>                                                short ox;<a name="line.6760"></a>
+<span class="sourceLineNo">6761</span>                                                ox = (short) (ibx == 0 ? 0 : iax / ibx);<a name="line.6761"></a>
+<span class="sourceLineNo">6762</span>                                                oai16data[it.oIndex] = ox;<a name="line.6762"></a>
+<span class="sourceLineNo">6763</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6763"></a>
+<span class="sourceLineNo">6764</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.6764"></a>
+<span class="sourceLineNo">6765</span>                                                        ox = (short) (ibx == 0 ? 0 : iax / ibx);<a name="line.6765"></a>
+<span class="sourceLineNo">6766</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.6766"></a>
+<span class="sourceLineNo">6767</span>                                                }<a name="line.6767"></a>
+<span class="sourceLineNo">6768</span>                                        }<a name="line.6768"></a>
+<span class="sourceLineNo">6769</span>                                }<a name="line.6769"></a>
+<span class="sourceLineNo">6770</span>                        } else if (as &gt; bs) {<a name="line.6770"></a>
+<span class="sourceLineNo">6771</span>                                if (it.isOutputDouble()) {<a name="line.6771"></a>
+<span class="sourceLineNo">6772</span>                                        while (it.hasNext()) {<a name="line.6772"></a>
+<span class="sourceLineNo">6773</span>                                                double iax = it.aDouble;<a name="line.6773"></a>
+<span class="sourceLineNo">6774</span>                                                final double ibx = it.bDouble;<a name="line.6774"></a>
+<span class="sourceLineNo">6775</span>                                                short ox;<a name="line.6775"></a>
+<span class="sourceLineNo">6776</span>                                                ox = (short) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.6776"></a>
+<span class="sourceLineNo">6777</span>                                                oai16data[it.oIndex] = ox;<a name="line.6777"></a>
+<span class="sourceLineNo">6778</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6778"></a>
+<span class="sourceLineNo">6779</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.6779"></a>
+<span class="sourceLineNo">6780</span>                                                        ox = (short) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.6780"></a>
+<span class="sourceLineNo">6781</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.6781"></a>
+<span class="sourceLineNo">6782</span>                                                }<a name="line.6782"></a>
+<span class="sourceLineNo">6783</span>                                        }<a name="line.6783"></a>
+<span class="sourceLineNo">6784</span>                                } else {<a name="line.6784"></a>
+<span class="sourceLineNo">6785</span>                                        while (it.hasNext()) {<a name="line.6785"></a>
+<span class="sourceLineNo">6786</span>                                                long iax = it.aLong;<a name="line.6786"></a>
+<span class="sourceLineNo">6787</span>                                                final long ibx = it.bLong;<a name="line.6787"></a>
+<span class="sourceLineNo">6788</span>                                                short ox;<a name="line.6788"></a>
+<span class="sourceLineNo">6789</span>                                                ox = (short) (ibx == 0 ? 0 : iax / ibx);<a name="line.6789"></a>
+<span class="sourceLineNo">6790</span>                                                oai16data[it.oIndex] = ox;<a name="line.6790"></a>
+<span class="sourceLineNo">6791</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6791"></a>
+<span class="sourceLineNo">6792</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.6792"></a>
+<span class="sourceLineNo">6793</span>                                                        ox = (short) (ibx == 0 ? 0 : iax / ibx);<a name="line.6793"></a>
+<span class="sourceLineNo">6794</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.6794"></a>
+<span class="sourceLineNo">6795</span>                                                }<a name="line.6795"></a>
+<span class="sourceLineNo">6796</span>                                        }<a name="line.6796"></a>
+<span class="sourceLineNo">6797</span>                                }<a name="line.6797"></a>
+<span class="sourceLineNo">6798</span>                        } else if (as == 1) {<a name="line.6798"></a>
+<span class="sourceLineNo">6799</span>                                if (it.isOutputDouble()) {<a name="line.6799"></a>
+<span class="sourceLineNo">6800</span>                                        while (it.hasNext()) {<a name="line.6800"></a>
+<span class="sourceLineNo">6801</span>                                                final double iax = it.aDouble;<a name="line.6801"></a>
+<span class="sourceLineNo">6802</span>                                                final double ibx = it.bDouble;<a name="line.6802"></a>
+<span class="sourceLineNo">6803</span>                                                short ox;<a name="line.6803"></a>
+<span class="sourceLineNo">6804</span>                                                ox = (short) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.6804"></a>
+<span class="sourceLineNo">6805</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.6805"></a>
+<span class="sourceLineNo">6806</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.6806"></a>
+<span class="sourceLineNo">6807</span>                                                }<a name="line.6807"></a>
+<span class="sourceLineNo">6808</span>                                        }<a name="line.6808"></a>
+<span class="sourceLineNo">6809</span>                                } else {<a name="line.6809"></a>
+<span class="sourceLineNo">6810</span>                                        while (it.hasNext()) {<a name="line.6810"></a>
+<span class="sourceLineNo">6811</span>                                                final long iax = it.aLong;<a name="line.6811"></a>
+<span class="sourceLineNo">6812</span>                                                final long ibx = it.bLong;<a name="line.6812"></a>
+<span class="sourceLineNo">6813</span>                                                short ox;<a name="line.6813"></a>
+<span class="sourceLineNo">6814</span>                                                ox = (short) (ibx == 0 ? 0 : iax / ibx);<a name="line.6814"></a>
+<span class="sourceLineNo">6815</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.6815"></a>
+<span class="sourceLineNo">6816</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.6816"></a>
+<span class="sourceLineNo">6817</span>                                                }<a name="line.6817"></a>
+<span class="sourceLineNo">6818</span>                                        }<a name="line.6818"></a>
+<span class="sourceLineNo">6819</span>                                }<a name="line.6819"></a>
+<span class="sourceLineNo">6820</span>                        } else {<a name="line.6820"></a>
+<span class="sourceLineNo">6821</span>                                if (it.isOutputDouble()) {<a name="line.6821"></a>
+<span class="sourceLineNo">6822</span>                                        while (it.hasNext()) {<a name="line.6822"></a>
+<span class="sourceLineNo">6823</span>                                                double iax = it.aDouble;<a name="line.6823"></a>
+<span class="sourceLineNo">6824</span>                                                double ibx = it.bDouble;<a name="line.6824"></a>
+<span class="sourceLineNo">6825</span>                                                short ox;<a name="line.6825"></a>
+<span class="sourceLineNo">6826</span>                                                ox = (short) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.6826"></a>
+<span class="sourceLineNo">6827</span>                                                oai16data[it.oIndex] = ox;<a name="line.6827"></a>
+<span class="sourceLineNo">6828</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6828"></a>
+<span class="sourceLineNo">6829</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.6829"></a>
+<span class="sourceLineNo">6830</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.6830"></a>
+<span class="sourceLineNo">6831</span>                                                        ox = (short) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.6831"></a>
+<span class="sourceLineNo">6832</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.6832"></a>
+<span class="sourceLineNo">6833</span>                                                }<a name="line.6833"></a>
+<span class="sourceLineNo">6834</span>                                        }<a name="line.6834"></a>
+<span class="sourceLineNo">6835</span>                                } else {<a name="line.6835"></a>
+<span class="sourceLineNo">6836</span>                                        while (it.hasNext()) {<a name="line.6836"></a>
+<span class="sourceLineNo">6837</span>                                                long iax = it.aLong;<a name="line.6837"></a>
+<span class="sourceLineNo">6838</span>                                                long ibx = it.bLong;<a name="line.6838"></a>
+<span class="sourceLineNo">6839</span>                                                short ox;<a name="line.6839"></a>
+<span class="sourceLineNo">6840</span>                                                ox = (short) (ibx == 0 ? 0 : iax / ibx);<a name="line.6840"></a>
+<span class="sourceLineNo">6841</span>                                                oai16data[it.oIndex] = ox;<a name="line.6841"></a>
+<span class="sourceLineNo">6842</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6842"></a>
+<span class="sourceLineNo">6843</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.6843"></a>
+<span class="sourceLineNo">6844</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.6844"></a>
+<span class="sourceLineNo">6845</span>                                                        ox = (short) (ibx == 0 ? 0 : iax / ibx);<a name="line.6845"></a>
+<span class="sourceLineNo">6846</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.6846"></a>
+<span class="sourceLineNo">6847</span>                                                }<a name="line.6847"></a>
+<span class="sourceLineNo">6848</span>                                        }<a name="line.6848"></a>
+<span class="sourceLineNo">6849</span>                                }<a name="line.6849"></a>
+<span class="sourceLineNo">6850</span>                        }<a name="line.6850"></a>
+<span class="sourceLineNo">6851</span>                        break;<a name="line.6851"></a>
+<span class="sourceLineNo">6852</span>                case Dataset.ARRAYINT64:<a name="line.6852"></a>
+<span class="sourceLineNo">6853</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.6853"></a>
+<span class="sourceLineNo">6854</span>                        if (is == 1) {<a name="line.6854"></a>
+<span class="sourceLineNo">6855</span>                                if (it.isOutputDouble()) {<a name="line.6855"></a>
+<span class="sourceLineNo">6856</span>                                        while (it.hasNext()) {<a name="line.6856"></a>
+<span class="sourceLineNo">6857</span>                                                final double iax = it.aDouble;<a name="line.6857"></a>
+<span class="sourceLineNo">6858</span>                                                final double ibx = it.bDouble;<a name="line.6858"></a>
+<span class="sourceLineNo">6859</span>                                                long ox;<a name="line.6859"></a>
+<span class="sourceLineNo">6860</span>                                                ox = toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.6860"></a>
+<span class="sourceLineNo">6861</span>                                                oai64data[it.oIndex] = ox;<a name="line.6861"></a>
+<span class="sourceLineNo">6862</span>                                        }<a name="line.6862"></a>
+<span class="sourceLineNo">6863</span>                                } else {<a name="line.6863"></a>
+<span class="sourceLineNo">6864</span>                                        while (it.hasNext()) {<a name="line.6864"></a>
+<span class="sourceLineNo">6865</span>                                                final long iax = it.aLong;<a name="line.6865"></a>
+<span class="sourceLineNo">6866</span>                                                final long ibx = it.bLong;<a name="line.6866"></a>
+<span class="sourceLineNo">6867</span>                                                long ox;<a name="line.6867"></a>
+<span class="sourceLineNo">6868</span>                                                ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.6868"></a>
+<span class="sourceLineNo">6869</span>                                                oai64data[it.oIndex] = ox;<a name="line.6869"></a>
+<span class="sourceLineNo">6870</span>                                        }<a name="line.6870"></a>
+<span class="sourceLineNo">6871</span>                                }<a name="line.6871"></a>
+<span class="sourceLineNo">6872</span>                        } else if (as &lt; bs) {<a name="line.6872"></a>
+<span class="sourceLineNo">6873</span>                                if (it.isOutputDouble()) {<a name="line.6873"></a>
+<span class="sourceLineNo">6874</span>                                        while (it.hasNext()) {<a name="line.6874"></a>
+<span class="sourceLineNo">6875</span>                                                final double iax = it.aDouble;<a name="line.6875"></a>
+<span class="sourceLineNo">6876</span>                                                double ibx = it.bDouble;<a name="line.6876"></a>
+<span class="sourceLineNo">6877</span>                                                long ox;<a name="line.6877"></a>
+<span class="sourceLineNo">6878</span>                                                ox = toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.6878"></a>
+<span class="sourceLineNo">6879</span>                                                oai64data[it.oIndex] = ox;<a name="line.6879"></a>
+<span class="sourceLineNo">6880</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6880"></a>
+<span class="sourceLineNo">6881</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.6881"></a>
+<span class="sourceLineNo">6882</span>                                                        ox = toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.6882"></a>
+<span class="sourceLineNo">6883</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.6883"></a>
+<span class="sourceLineNo">6884</span>                                                }<a name="line.6884"></a>
+<span class="sourceLineNo">6885</span>                                        }<a name="line.6885"></a>
+<span class="sourceLineNo">6886</span>                                } else {<a name="line.6886"></a>
+<span class="sourceLineNo">6887</span>                                        while (it.hasNext()) {<a name="line.6887"></a>
+<span class="sourceLineNo">6888</span>                                                final long iax = it.aLong;<a name="line.6888"></a>
+<span class="sourceLineNo">6889</span>                                                long ibx = it.bLong;<a name="line.6889"></a>
+<span class="sourceLineNo">6890</span>                                                long ox;<a name="line.6890"></a>
+<span class="sourceLineNo">6891</span>                                                ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.6891"></a>
+<span class="sourceLineNo">6892</span>                                                oai64data[it.oIndex] = ox;<a name="line.6892"></a>
+<span class="sourceLineNo">6893</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6893"></a>
+<span class="sourceLineNo">6894</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.6894"></a>
+<span class="sourceLineNo">6895</span>                                                        ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.6895"></a>
+<span class="sourceLineNo">6896</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.6896"></a>
+<span class="sourceLineNo">6897</span>                                                }<a name="line.6897"></a>
+<span class="sourceLineNo">6898</span>                                        }<a name="line.6898"></a>
+<span class="sourceLineNo">6899</span>                                }<a name="line.6899"></a>
+<span class="sourceLineNo">6900</span>                        } else if (as &gt; bs) {<a name="line.6900"></a>
+<span class="sourceLineNo">6901</span>                                if (it.isOutputDouble()) {<a name="line.6901"></a>
+<span class="sourceLineNo">6902</span>                                        while (it.hasNext()) {<a name="line.6902"></a>
+<span class="sourceLineNo">6903</span>                                                double iax = it.aDouble;<a name="line.6903"></a>
+<span class="sourceLineNo">6904</span>                                                final double ibx = it.bDouble;<a name="line.6904"></a>
+<span class="sourceLineNo">6905</span>                                                long ox;<a name="line.6905"></a>
+<span class="sourceLineNo">6906</span>                                                ox = toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.6906"></a>
+<span class="sourceLineNo">6907</span>                                                oai64data[it.oIndex] = ox;<a name="line.6907"></a>
+<span class="sourceLineNo">6908</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6908"></a>
+<span class="sourceLineNo">6909</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.6909"></a>
+<span class="sourceLineNo">6910</span>                                                        ox = toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.6910"></a>
+<span class="sourceLineNo">6911</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.6911"></a>
+<span class="sourceLineNo">6912</span>                                                }<a name="line.6912"></a>
+<span class="sourceLineNo">6913</span>                                        }<a name="line.6913"></a>
+<span class="sourceLineNo">6914</span>                                } else {<a name="line.6914"></a>
+<span class="sourceLineNo">6915</span>                                        while (it.hasNext()) {<a name="line.6915"></a>
+<span class="sourceLineNo">6916</span>                                                long iax = it.aLong;<a name="line.6916"></a>
+<span class="sourceLineNo">6917</span>                                                final long ibx = it.bLong;<a name="line.6917"></a>
+<span class="sourceLineNo">6918</span>                                                long ox;<a name="line.6918"></a>
+<span class="sourceLineNo">6919</span>                                                ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.6919"></a>
+<span class="sourceLineNo">6920</span>                                                oai64data[it.oIndex] = ox;<a name="line.6920"></a>
+<span class="sourceLineNo">6921</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6921"></a>
+<span class="sourceLineNo">6922</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.6922"></a>
+<span class="sourceLineNo">6923</span>                                                        ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.6923"></a>
+<span class="sourceLineNo">6924</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.6924"></a>
+<span class="sourceLineNo">6925</span>                                                }<a name="line.6925"></a>
+<span class="sourceLineNo">6926</span>                                        }<a name="line.6926"></a>
+<span class="sourceLineNo">6927</span>                                }<a name="line.6927"></a>
+<span class="sourceLineNo">6928</span>                        } else if (as == 1) {<a name="line.6928"></a>
+<span class="sourceLineNo">6929</span>                                if (it.isOutputDouble()) {<a name="line.6929"></a>
+<span class="sourceLineNo">6930</span>                                        while (it.hasNext()) {<a name="line.6930"></a>
+<span class="sourceLineNo">6931</span>                                                final double iax = it.aDouble;<a name="line.6931"></a>
+<span class="sourceLineNo">6932</span>                                                final double ibx = it.bDouble;<a name="line.6932"></a>
+<span class="sourceLineNo">6933</span>                                                long ox;<a name="line.6933"></a>
+<span class="sourceLineNo">6934</span>                                                ox = toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.6934"></a>
+<span class="sourceLineNo">6935</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.6935"></a>
+<span class="sourceLineNo">6936</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.6936"></a>
+<span class="sourceLineNo">6937</span>                                                }<a name="line.6937"></a>
+<span class="sourceLineNo">6938</span>                                        }<a name="line.6938"></a>
+<span class="sourceLineNo">6939</span>                                } else {<a name="line.6939"></a>
+<span class="sourceLineNo">6940</span>                                        while (it.hasNext()) {<a name="line.6940"></a>
+<span class="sourceLineNo">6941</span>                                                final long iax = it.aLong;<a name="line.6941"></a>
+<span class="sourceLineNo">6942</span>                                                final long ibx = it.bLong;<a name="line.6942"></a>
+<span class="sourceLineNo">6943</span>                                                long ox;<a name="line.6943"></a>
+<span class="sourceLineNo">6944</span>                                                ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.6944"></a>
+<span class="sourceLineNo">6945</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.6945"></a>
+<span class="sourceLineNo">6946</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.6946"></a>
+<span class="sourceLineNo">6947</span>                                                }<a name="line.6947"></a>
+<span class="sourceLineNo">6948</span>                                        }<a name="line.6948"></a>
+<span class="sourceLineNo">6949</span>                                }<a name="line.6949"></a>
+<span class="sourceLineNo">6950</span>                        } else {<a name="line.6950"></a>
+<span class="sourceLineNo">6951</span>                                if (it.isOutputDouble()) {<a name="line.6951"></a>
+<span class="sourceLineNo">6952</span>                                        while (it.hasNext()) {<a name="line.6952"></a>
+<span class="sourceLineNo">6953</span>                                                double iax = it.aDouble;<a name="line.6953"></a>
+<span class="sourceLineNo">6954</span>                                                double ibx = it.bDouble;<a name="line.6954"></a>
+<span class="sourceLineNo">6955</span>                                                long ox;<a name="line.6955"></a>
+<span class="sourceLineNo">6956</span>                                                ox = toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.6956"></a>
+<span class="sourceLineNo">6957</span>                                                oai64data[it.oIndex] = ox;<a name="line.6957"></a>
+<span class="sourceLineNo">6958</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6958"></a>
+<span class="sourceLineNo">6959</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.6959"></a>
+<span class="sourceLineNo">6960</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.6960"></a>
+<span class="sourceLineNo">6961</span>                                                        ox = toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.6961"></a>
+<span class="sourceLineNo">6962</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.6962"></a>
+<span class="sourceLineNo">6963</span>                                                }<a name="line.6963"></a>
+<span class="sourceLineNo">6964</span>                                        }<a name="line.6964"></a>
+<span class="sourceLineNo">6965</span>                                } else {<a name="line.6965"></a>
+<span class="sourceLineNo">6966</span>                                        while (it.hasNext()) {<a name="line.6966"></a>
+<span class="sourceLineNo">6967</span>                                                long iax = it.aLong;<a name="line.6967"></a>
+<span class="sourceLineNo">6968</span>                                                long ibx = it.bLong;<a name="line.6968"></a>
+<span class="sourceLineNo">6969</span>                                                long ox;<a name="line.6969"></a>
+<span class="sourceLineNo">6970</span>                                                ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.6970"></a>
+<span class="sourceLineNo">6971</span>                                                oai64data[it.oIndex] = ox;<a name="line.6971"></a>
+<span class="sourceLineNo">6972</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.6972"></a>
+<span class="sourceLineNo">6973</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.6973"></a>
+<span class="sourceLineNo">6974</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.6974"></a>
+<span class="sourceLineNo">6975</span>                                                        ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.6975"></a>
+<span class="sourceLineNo">6976</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.6976"></a>
+<span class="sourceLineNo">6977</span>                                                }<a name="line.6977"></a>
+<span class="sourceLineNo">6978</span>                                        }<a name="line.6978"></a>
+<span class="sourceLineNo">6979</span>                                }<a name="line.6979"></a>
+<span class="sourceLineNo">6980</span>                        }<a name="line.6980"></a>
+<span class="sourceLineNo">6981</span>                        break;<a name="line.6981"></a>
+<span class="sourceLineNo">6982</span>                case Dataset.ARRAYINT32:<a name="line.6982"></a>
+<span class="sourceLineNo">6983</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.6983"></a>
+<span class="sourceLineNo">6984</span>                        if (is == 1) {<a name="line.6984"></a>
+<span class="sourceLineNo">6985</span>                                if (it.isOutputDouble()) {<a name="line.6985"></a>
+<span class="sourceLineNo">6986</span>                                        while (it.hasNext()) {<a name="line.6986"></a>
+<span class="sourceLineNo">6987</span>                                                final double iax = it.aDouble;<a name="line.6987"></a>
+<span class="sourceLineNo">6988</span>                                                final double ibx = it.bDouble;<a name="line.6988"></a>
+<span class="sourceLineNo">6989</span>                                                int ox;<a name="line.6989"></a>
+<span class="sourceLineNo">6990</span>                                                ox = (int) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.6990"></a>
+<span class="sourceLineNo">6991</span>                                                oai32data[it.oIndex] = ox;<a name="line.6991"></a>
+<span class="sourceLineNo">6992</span>                                        }<a name="line.6992"></a>
+<span class="sourceLineNo">6993</span>                                } else {<a name="line.6993"></a>
+<span class="sourceLineNo">6994</span>                                        while (it.hasNext()) {<a name="line.6994"></a>
+<span class="sourceLineNo">6995</span>                                                final long iax = it.aLong;<a name="line.6995"></a>
+<span class="sourceLineNo">6996</span>                                                final long ibx = it.bLong;<a name="line.6996"></a>
+<span class="sourceLineNo">6997</span>                                                int ox;<a name="line.6997"></a>
+<span class="sourceLineNo">6998</span>                                                ox = (int) (ibx == 0 ? 0 : iax / ibx);<a name="line.6998"></a>
+<span class="sourceLineNo">6999</span>                                                oai32data[it.oIndex] = ox;<a name="line.6999"></a>
+<span class="sourceLineNo">7000</span>                                        }<a name="line.7000"></a>
+<span class="sourceLineNo">7001</span>                                }<a name="line.7001"></a>
+<span class="sourceLineNo">7002</span>                        } else if (as &lt; bs) {<a name="line.7002"></a>
+<span class="sourceLineNo">7003</span>                                if (it.isOutputDouble()) {<a name="line.7003"></a>
+<span class="sourceLineNo">7004</span>                                        while (it.hasNext()) {<a name="line.7004"></a>
+<span class="sourceLineNo">7005</span>                                                final double iax = it.aDouble;<a name="line.7005"></a>
+<span class="sourceLineNo">7006</span>                                                double ibx = it.bDouble;<a name="line.7006"></a>
+<span class="sourceLineNo">7007</span>                                                int ox;<a name="line.7007"></a>
+<span class="sourceLineNo">7008</span>                                                ox = (int) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.7008"></a>
+<span class="sourceLineNo">7009</span>                                                oai32data[it.oIndex] = ox;<a name="line.7009"></a>
+<span class="sourceLineNo">7010</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.7010"></a>
+<span class="sourceLineNo">7011</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.7011"></a>
+<span class="sourceLineNo">7012</span>                                                        ox = (int) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.7012"></a>
+<span class="sourceLineNo">7013</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.7013"></a>
+<span class="sourceLineNo">7014</span>                                                }<a name="line.7014"></a>
+<span class="sourceLineNo">7015</span>                                        }<a name="line.7015"></a>
+<span class="sourceLineNo">7016</span>                                } else {<a name="line.7016"></a>
+<span class="sourceLineNo">7017</span>                                        while (it.hasNext()) {<a name="line.7017"></a>
+<span class="sourceLineNo">7018</span>                                                final long iax = it.aLong;<a name="line.7018"></a>
+<span class="sourceLineNo">7019</span>                                                long ibx = it.bLong;<a name="line.7019"></a>
+<span class="sourceLineNo">7020</span>                                                int ox;<a name="line.7020"></a>
+<span class="sourceLineNo">7021</span>                                                ox = (int) (ibx == 0 ? 0 : iax / ibx);<a name="line.7021"></a>
+<span class="sourceLineNo">7022</span>                                                oai32data[it.oIndex] = ox;<a name="line.7022"></a>
+<span class="sourceLineNo">7023</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.7023"></a>
+<span class="sourceLineNo">7024</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.7024"></a>
+<span class="sourceLineNo">7025</span>                                                        ox = (int) (ibx == 0 ? 0 : iax / ibx);<a name="line.7025"></a>
+<span class="sourceLineNo">7026</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.7026"></a>
+<span class="sourceLineNo">7027</span>                                                }<a name="line.7027"></a>
+<span class="sourceLineNo">7028</span>                                        }<a name="line.7028"></a>
+<span class="sourceLineNo">7029</span>                                }<a name="line.7029"></a>
+<span class="sourceLineNo">7030</span>                        } else if (as &gt; bs) {<a name="line.7030"></a>
+<span class="sourceLineNo">7031</span>                                if (it.isOutputDouble()) {<a name="line.7031"></a>
+<span class="sourceLineNo">7032</span>                                        while (it.hasNext()) {<a name="line.7032"></a>
+<span class="sourceLineNo">7033</span>                                                double iax = it.aDouble;<a name="line.7033"></a>
+<span class="sourceLineNo">7034</span>                                                final double ibx = it.bDouble;<a name="line.7034"></a>
+<span class="sourceLineNo">7035</span>                                                int ox;<a name="line.7035"></a>
+<span class="sourceLineNo">7036</span>                                                ox = (int) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.7036"></a>
+<span class="sourceLineNo">7037</span>                                                oai32data[it.oIndex] = ox;<a name="line.7037"></a>
+<span class="sourceLineNo">7038</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.7038"></a>
+<span class="sourceLineNo">7039</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.7039"></a>
+<span class="sourceLineNo">7040</span>                                                        ox = (int) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.7040"></a>
+<span class="sourceLineNo">7041</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.7041"></a>
+<span class="sourceLineNo">7042</span>                                                }<a name="line.7042"></a>
+<span class="sourceLineNo">7043</span>                                        }<a name="line.7043"></a>
+<span class="sourceLineNo">7044</span>                                } else {<a name="line.7044"></a>
+<span class="sourceLineNo">7045</span>                                        while (it.hasNext()) {<a name="line.7045"></a>
+<span class="sourceLineNo">7046</span>                                                long iax = it.aLong;<a name="line.7046"></a>
+<span class="sourceLineNo">7047</span>                                                final long ibx = it.bLong;<a name="line.7047"></a>
+<span class="sourceLineNo">7048</span>                                                int ox;<a name="line.7048"></a>
+<span class="sourceLineNo">7049</span>                                                ox = (int) (ibx == 0 ? 0 : iax / ibx);<a name="line.7049"></a>
+<span class="sourceLineNo">7050</span>                                                oai32data[it.oIndex] = ox;<a name="line.7050"></a>
+<span class="sourceLineNo">7051</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.7051"></a>
+<span class="sourceLineNo">7052</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.7052"></a>
+<span class="sourceLineNo">7053</span>                                                        ox = (int) (ibx == 0 ? 0 : iax / ibx);<a name="line.7053"></a>
+<span class="sourceLineNo">7054</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.7054"></a>
+<span class="sourceLineNo">7055</span>                                                }<a name="line.7055"></a>
+<span class="sourceLineNo">7056</span>                                        }<a name="line.7056"></a>
+<span class="sourceLineNo">7057</span>                                }<a name="line.7057"></a>
+<span class="sourceLineNo">7058</span>                        } else if (as == 1) {<a name="line.7058"></a>
+<span class="sourceLineNo">7059</span>                                if (it.isOutputDouble()) {<a name="line.7059"></a>
+<span class="sourceLineNo">7060</span>                                        while (it.hasNext()) {<a name="line.7060"></a>
+<span class="sourceLineNo">7061</span>                                                final double iax = it.aDouble;<a name="line.7061"></a>
+<span class="sourceLineNo">7062</span>                                                final double ibx = it.bDouble;<a name="line.7062"></a>
+<span class="sourceLineNo">7063</span>                                                int ox;<a name="line.7063"></a>
+<span class="sourceLineNo">7064</span>                                                ox = (int) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.7064"></a>
+<span class="sourceLineNo">7065</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.7065"></a>
+<span class="sourceLineNo">7066</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.7066"></a>
+<span class="sourceLineNo">7067</span>                                                }<a name="line.7067"></a>
+<span class="sourceLineNo">7068</span>                                        }<a name="line.7068"></a>
+<span class="sourceLineNo">7069</span>                                } else {<a name="line.7069"></a>
+<span class="sourceLineNo">7070</span>                                        while (it.hasNext()) {<a name="line.7070"></a>
+<span class="sourceLineNo">7071</span>                                                final long iax = it.aLong;<a name="line.7071"></a>
+<span class="sourceLineNo">7072</span>                                                final long ibx = it.bLong;<a name="line.7072"></a>
+<span class="sourceLineNo">7073</span>                                                int ox;<a name="line.7073"></a>
+<span class="sourceLineNo">7074</span>                                                ox = (int) (ibx == 0 ? 0 : iax / ibx);<a name="line.7074"></a>
+<span class="sourceLineNo">7075</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.7075"></a>
+<span class="sourceLineNo">7076</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.7076"></a>
+<span class="sourceLineNo">7077</span>                                                }<a name="line.7077"></a>
+<span class="sourceLineNo">7078</span>                                        }<a name="line.7078"></a>
+<span class="sourceLineNo">7079</span>                                }<a name="line.7079"></a>
+<span class="sourceLineNo">7080</span>                        } else {<a name="line.7080"></a>
+<span class="sourceLineNo">7081</span>                                if (it.isOutputDouble()) {<a name="line.7081"></a>
+<span class="sourceLineNo">7082</span>                                        while (it.hasNext()) {<a name="line.7082"></a>
+<span class="sourceLineNo">7083</span>                                                double iax = it.aDouble;<a name="line.7083"></a>
+<span class="sourceLineNo">7084</span>                                                double ibx = it.bDouble;<a name="line.7084"></a>
+<span class="sourceLineNo">7085</span>                                                int ox;<a name="line.7085"></a>
+<span class="sourceLineNo">7086</span>                                                ox = (int) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.7086"></a>
+<span class="sourceLineNo">7087</span>                                                oai32data[it.oIndex] = ox;<a name="line.7087"></a>
+<span class="sourceLineNo">7088</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.7088"></a>
+<span class="sourceLineNo">7089</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.7089"></a>
+<span class="sourceLineNo">7090</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.7090"></a>
+<span class="sourceLineNo">7091</span>                                                        ox = (int) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.7091"></a>
+<span class="sourceLineNo">7092</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.7092"></a>
+<span class="sourceLineNo">7093</span>                                                }<a name="line.7093"></a>
+<span class="sourceLineNo">7094</span>                                        }<a name="line.7094"></a>
+<span class="sourceLineNo">7095</span>                                } else {<a name="line.7095"></a>
+<span class="sourceLineNo">7096</span>                                        while (it.hasNext()) {<a name="line.7096"></a>
+<span class="sourceLineNo">7097</span>                                                long iax = it.aLong;<a name="line.7097"></a>
+<span class="sourceLineNo">7098</span>                                                long ibx = it.bLong;<a name="line.7098"></a>
+<span class="sourceLineNo">7099</span>                                                int ox;<a name="line.7099"></a>
+<span class="sourceLineNo">7100</span>                                                ox = (int) (ibx == 0 ? 0 : iax / ibx);<a name="line.7100"></a>
+<span class="sourceLineNo">7101</span>                                                oai32data[it.oIndex] = ox;<a name="line.7101"></a>
+<span class="sourceLineNo">7102</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.7102"></a>
+<span class="sourceLineNo">7103</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.7103"></a>
+<span class="sourceLineNo">7104</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.7104"></a>
+<span class="sourceLineNo">7105</span>                                                        ox = (int) (ibx == 0 ? 0 : iax / ibx);<a name="line.7105"></a>
+<span class="sourceLineNo">7106</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.7106"></a>
+<span class="sourceLineNo">7107</span>                                                }<a name="line.7107"></a>
+<span class="sourceLineNo">7108</span>                                        }<a name="line.7108"></a>
+<span class="sourceLineNo">7109</span>                                }<a name="line.7109"></a>
+<span class="sourceLineNo">7110</span>                        }<a name="line.7110"></a>
+<span class="sourceLineNo">7111</span>                        break;<a name="line.7111"></a>
+<span class="sourceLineNo">7112</span>                case Dataset.FLOAT32:<a name="line.7112"></a>
+<span class="sourceLineNo">7113</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.7113"></a>
+<span class="sourceLineNo">7114</span>                        if (it.isOutputDouble()) {<a name="line.7114"></a>
+<span class="sourceLineNo">7115</span>                                while (it.hasNext()) {<a name="line.7115"></a>
+<span class="sourceLineNo">7116</span>                                        final double iax = it.aDouble;<a name="line.7116"></a>
+<span class="sourceLineNo">7117</span>                                        final double ibx = it.bDouble;<a name="line.7117"></a>
+<span class="sourceLineNo">7118</span>                                        float ox;<a name="line.7118"></a>
+<span class="sourceLineNo">7119</span>                                        ox = (float) (iax / ibx);<a name="line.7119"></a>
+<span class="sourceLineNo">7120</span>                                        of32data[it.oIndex] = ox;<a name="line.7120"></a>
+<span class="sourceLineNo">7121</span>                                }<a name="line.7121"></a>
+<span class="sourceLineNo">7122</span>                        } else {<a name="line.7122"></a>
+<span class="sourceLineNo">7123</span>                                while (it.hasNext()) {<a name="line.7123"></a>
+<span class="sourceLineNo">7124</span>                                        final long iax = it.aLong;<a name="line.7124"></a>
+<span class="sourceLineNo">7125</span>                                        final long ibx = it.bLong;<a name="line.7125"></a>
+<span class="sourceLineNo">7126</span>                                        float ox;<a name="line.7126"></a>
+<span class="sourceLineNo">7127</span>                                        ox = (iax / ibx);<a name="line.7127"></a>
+<span class="sourceLineNo">7128</span>                                        of32data[it.oIndex] = ox;<a name="line.7128"></a>
+<span class="sourceLineNo">7129</span>                                }<a name="line.7129"></a>
+<span class="sourceLineNo">7130</span>                        }<a name="line.7130"></a>
+<span class="sourceLineNo">7131</span>                        break;<a name="line.7131"></a>
+<span class="sourceLineNo">7132</span>                case Dataset.FLOAT64:<a name="line.7132"></a>
+<span class="sourceLineNo">7133</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.7133"></a>
+<span class="sourceLineNo">7134</span>                        if (it.isOutputDouble()) {<a name="line.7134"></a>
+<span class="sourceLineNo">7135</span>                                while (it.hasNext()) {<a name="line.7135"></a>
+<span class="sourceLineNo">7136</span>                                        final double iax = it.aDouble;<a name="line.7136"></a>
+<span class="sourceLineNo">7137</span>                                        final double ibx = it.bDouble;<a name="line.7137"></a>
+<span class="sourceLineNo">7138</span>                                        double ox;<a name="line.7138"></a>
+<span class="sourceLineNo">7139</span>                                        ox = (iax / ibx);<a name="line.7139"></a>
+<span class="sourceLineNo">7140</span>                                        of64data[it.oIndex] = ox;<a name="line.7140"></a>
+<span class="sourceLineNo">7141</span>                                }<a name="line.7141"></a>
+<span class="sourceLineNo">7142</span>                        } else {<a name="line.7142"></a>
+<span class="sourceLineNo">7143</span>                                while (it.hasNext()) {<a name="line.7143"></a>
+<span class="sourceLineNo">7144</span>                                        final long iax = it.aLong;<a name="line.7144"></a>
+<span class="sourceLineNo">7145</span>                                        final long ibx = it.bLong;<a name="line.7145"></a>
+<span class="sourceLineNo">7146</span>                                        double ox;<a name="line.7146"></a>
+<span class="sourceLineNo">7147</span>                                        ox = (iax / ibx);<a name="line.7147"></a>
+<span class="sourceLineNo">7148</span>                                        of64data[it.oIndex] = ox;<a name="line.7148"></a>
+<span class="sourceLineNo">7149</span>                                }<a name="line.7149"></a>
+<span class="sourceLineNo">7150</span>                        }<a name="line.7150"></a>
+<span class="sourceLineNo">7151</span>                        break;<a name="line.7151"></a>
+<span class="sourceLineNo">7152</span>                case Dataset.ARRAYFLOAT32:<a name="line.7152"></a>
+<span class="sourceLineNo">7153</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.7153"></a>
+<span class="sourceLineNo">7154</span>                        if (is == 1) {<a name="line.7154"></a>
+<span class="sourceLineNo">7155</span>                                if (it.isOutputDouble()) {<a name="line.7155"></a>
+<span class="sourceLineNo">7156</span>                                        while (it.hasNext()) {<a name="line.7156"></a>
+<span class="sourceLineNo">7157</span>                                                final double iax = it.aDouble;<a name="line.7157"></a>
+<span class="sourceLineNo">7158</span>                                                final double ibx = it.bDouble;<a name="line.7158"></a>
+<span class="sourceLineNo">7159</span>                                                float ox;<a name="line.7159"></a>
+<span class="sourceLineNo">7160</span>                                                ox = (float) (iax / ibx);<a name="line.7160"></a>
+<span class="sourceLineNo">7161</span>                                                oaf32data[it.oIndex] = ox;<a name="line.7161"></a>
+<span class="sourceLineNo">7162</span>                                        }<a name="line.7162"></a>
+<span class="sourceLineNo">7163</span>                                } else {<a name="line.7163"></a>
+<span class="sourceLineNo">7164</span>                                        while (it.hasNext()) {<a name="line.7164"></a>
+<span class="sourceLineNo">7165</span>                                                final long iax = it.aLong;<a name="line.7165"></a>
+<span class="sourceLineNo">7166</span>                                                final long ibx = it.bLong;<a name="line.7166"></a>
+<span class="sourceLineNo">7167</span>                                                float ox;<a name="line.7167"></a>
+<span class="sourceLineNo">7168</span>                                                ox = (iax / ibx);<a name="line.7168"></a>
+<span class="sourceLineNo">7169</span>                                                oaf32data[it.oIndex] = ox;<a name="line.7169"></a>
+<span class="sourceLineNo">7170</span>                                        }<a name="line.7170"></a>
+<span class="sourceLineNo">7171</span>                                }<a name="line.7171"></a>
+<span class="sourceLineNo">7172</span>                        } else if (as &lt; bs) {<a name="line.7172"></a>
+<span class="sourceLineNo">7173</span>                                if (it.isOutputDouble()) {<a name="line.7173"></a>
+<span class="sourceLineNo">7174</span>                                        while (it.hasNext()) {<a name="line.7174"></a>
+<span class="sourceLineNo">7175</span>                                                final double iax = it.aDouble;<a name="line.7175"></a>
+<span class="sourceLineNo">7176</span>                                                double ibx = it.bDouble;<a name="line.7176"></a>
+<span class="sourceLineNo">7177</span>                                                float ox;<a name="line.7177"></a>
+<span class="sourceLineNo">7178</span>                                                ox = (float) (iax / ibx);<a name="line.7178"></a>
+<span class="sourceLineNo">7179</span>                                                oaf32data[it.oIndex] = ox;<a name="line.7179"></a>
+<span class="sourceLineNo">7180</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.7180"></a>
+<span class="sourceLineNo">7181</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.7181"></a>
+<span class="sourceLineNo">7182</span>                                                        ox = (float) (iax / ibx);<a name="line.7182"></a>
+<span class="sourceLineNo">7183</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.7183"></a>
+<span class="sourceLineNo">7184</span>                                                }<a name="line.7184"></a>
+<span class="sourceLineNo">7185</span>                                        }<a name="line.7185"></a>
+<span class="sourceLineNo">7186</span>                                } else {<a name="line.7186"></a>
+<span class="sourceLineNo">7187</span>                                        while (it.hasNext()) {<a name="line.7187"></a>
+<span class="sourceLineNo">7188</span>                                                final long iax = it.aLong;<a name="line.7188"></a>
+<span class="sourceLineNo">7189</span>                                                long ibx = it.bLong;<a name="line.7189"></a>
+<span class="sourceLineNo">7190</span>                                                float ox;<a name="line.7190"></a>
+<span class="sourceLineNo">7191</span>                                                ox = (iax / ibx);<a name="line.7191"></a>
+<span class="sourceLineNo">7192</span>                                                oaf32data[it.oIndex] = ox;<a name="line.7192"></a>
+<span class="sourceLineNo">7193</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.7193"></a>
+<span class="sourceLineNo">7194</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.7194"></a>
+<span class="sourceLineNo">7195</span>                                                        ox = (iax / ibx);<a name="line.7195"></a>
+<span class="sourceLineNo">7196</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.7196"></a>
+<span class="sourceLineNo">7197</span>                                                }<a name="line.7197"></a>
+<span class="sourceLineNo">7198</span>                                        }<a name="line.7198"></a>
+<span class="sourceLineNo">7199</span>                                }<a name="line.7199"></a>
+<span class="sourceLineNo">7200</span>                        } else if (as &gt; bs) {<a name="line.7200"></a>
+<span class="sourceLineNo">7201</span>                                if (it.isOutputDouble()) {<a name="line.7201"></a>
+<span class="sourceLineNo">7202</span>                                        while (it.hasNext()) {<a name="line.7202"></a>
+<span class="sourceLineNo">7203</span>                                                double iax = it.aDouble;<a name="line.7203"></a>
+<span class="sourceLineNo">7204</span>                                                final double ibx = it.bDouble;<a name="line.7204"></a>
+<span class="sourceLineNo">7205</span>                                                float ox;<a name="line.7205"></a>
+<span class="sourceLineNo">7206</span>                                                ox = (float) (iax / ibx);<a name="line.7206"></a>
+<span class="sourceLineNo">7207</span>                                                oaf32data[it.oIndex] = ox;<a name="line.7207"></a>
+<span class="sourceLineNo">7208</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.7208"></a>
+<span class="sourceLineNo">7209</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.7209"></a>
+<span class="sourceLineNo">7210</span>                                                        ox = (float) (iax / ibx);<a name="line.7210"></a>
+<span class="sourceLineNo">7211</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.7211"></a>
+<span class="sourceLineNo">7212</span>                                                }<a name="line.7212"></a>
+<span class="sourceLineNo">7213</span>                                        }<a name="line.7213"></a>
+<span class="sourceLineNo">7214</span>                                } else {<a name="line.7214"></a>
+<span class="sourceLineNo">7215</span>                                        while (it.hasNext()) {<a name="line.7215"></a>
+<span class="sourceLineNo">7216</span>                                                long iax = it.aLong;<a name="line.7216"></a>
+<span class="sourceLineNo">7217</span>                                                final long ibx = it.bLong;<a name="line.7217"></a>
+<span class="sourceLineNo">7218</span>                                                float ox;<a name="line.7218"></a>
+<span class="sourceLineNo">7219</span>                                                ox = (iax / ibx);<a name="line.7219"></a>
+<span class="sourceLineNo">7220</span>                                                oaf32data[it.oIndex] = ox;<a name="line.7220"></a>
+<span class="sourceLineNo">7221</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.7221"></a>
+<span class="sourceLineNo">7222</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.7222"></a>
+<span class="sourceLineNo">7223</span>                                                        ox = (iax / ibx);<a name="line.7223"></a>
+<span class="sourceLineNo">7224</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.7224"></a>
+<span class="sourceLineNo">7225</span>                                                }<a name="line.7225"></a>
+<span class="sourceLineNo">7226</span>                                        }<a name="line.7226"></a>
+<span class="sourceLineNo">7227</span>                                }<a name="line.7227"></a>
+<span class="sourceLineNo">7228</span>                        } else if (as == 1) {<a name="line.7228"></a>
+<span class="sourceLineNo">7229</span>                                if (it.isOutputDouble()) {<a name="line.7229"></a>
+<span class="sourceLineNo">7230</span>                                        while (it.hasNext()) {<a name="line.7230"></a>
+<span class="sourceLineNo">7231</span>                                                final double iax = it.aDouble;<a name="line.7231"></a>
+<span class="sourceLineNo">7232</span>                                                final double ibx = it.bDouble;<a name="line.7232"></a>
+<span class="sourceLineNo">7233</span>                                                float ox;<a name="line.7233"></a>
+<span class="sourceLineNo">7234</span>                                                ox = (float) (iax / ibx);<a name="line.7234"></a>
+<span class="sourceLineNo">7235</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.7235"></a>
+<span class="sourceLineNo">7236</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.7236"></a>
+<span class="sourceLineNo">7237</span>                                                }<a name="line.7237"></a>
+<span class="sourceLineNo">7238</span>                                        }<a name="line.7238"></a>
+<span class="sourceLineNo">7239</span>                                } else {<a name="line.7239"></a>
+<span class="sourceLineNo">7240</span>                                        while (it.hasNext()) {<a name="line.7240"></a>
+<span class="sourceLineNo">7241</span>                                                final long iax = it.aLong;<a name="line.7241"></a>
+<span class="sourceLineNo">7242</span>                                                final long ibx = it.bLong;<a name="line.7242"></a>
+<span class="sourceLineNo">7243</span>                                                float ox;<a name="line.7243"></a>
+<span class="sourceLineNo">7244</span>                                                ox = (iax / ibx);<a name="line.7244"></a>
+<span class="sourceLineNo">7245</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.7245"></a>
+<span class="sourceLineNo">7246</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.7246"></a>
+<span class="sourceLineNo">7247</span>                                                }<a name="line.7247"></a>
+<span class="sourceLineNo">7248</span>                                        }<a name="line.7248"></a>
+<span class="sourceLineNo">7249</span>                                }<a name="line.7249"></a>
+<span class="sourceLineNo">7250</span>                        } else {<a name="line.7250"></a>
+<span class="sourceLineNo">7251</span>                                if (it.isOutputDouble()) {<a name="line.7251"></a>
+<span class="sourceLineNo">7252</span>                                        while (it.hasNext()) {<a name="line.7252"></a>
+<span class="sourceLineNo">7253</span>                                                double iax = it.aDouble;<a name="line.7253"></a>
+<span class="sourceLineNo">7254</span>                                                double ibx = it.bDouble;<a name="line.7254"></a>
+<span class="sourceLineNo">7255</span>                                                float ox;<a name="line.7255"></a>
+<span class="sourceLineNo">7256</span>                                                ox = (float) (iax / ibx);<a name="line.7256"></a>
+<span class="sourceLineNo">7257</span>                                                oaf32data[it.oIndex] = ox;<a name="line.7257"></a>
+<span class="sourceLineNo">7258</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.7258"></a>
+<span class="sourceLineNo">7259</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.7259"></a>
+<span class="sourceLineNo">7260</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.7260"></a>
+<span class="sourceLineNo">7261</span>                                                        ox = (float) (iax / ibx);<a name="line.7261"></a>
+<span class="sourceLineNo">7262</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.7262"></a>
+<span class="sourceLineNo">7263</span>                                                }<a name="line.7263"></a>
+<span class="sourceLineNo">7264</span>                                        }<a name="line.7264"></a>
+<span class="sourceLineNo">7265</span>                                } else {<a name="line.7265"></a>
+<span class="sourceLineNo">7266</span>                                        while (it.hasNext()) {<a name="line.7266"></a>
+<span class="sourceLineNo">7267</span>                                                long iax = it.aLong;<a name="line.7267"></a>
+<span class="sourceLineNo">7268</span>                                                long ibx = it.bLong;<a name="line.7268"></a>
+<span class="sourceLineNo">7269</span>                                                float ox;<a name="line.7269"></a>
+<span class="sourceLineNo">7270</span>                                                ox = (iax / ibx);<a name="line.7270"></a>
+<span class="sourceLineNo">7271</span>                                                oaf32data[it.oIndex] = ox;<a name="line.7271"></a>
+<span class="sourceLineNo">7272</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.7272"></a>
+<span class="sourceLineNo">7273</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.7273"></a>
+<span class="sourceLineNo">7274</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.7274"></a>
+<span class="sourceLineNo">7275</span>                                                        ox = (iax / ibx);<a name="line.7275"></a>
+<span class="sourceLineNo">7276</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.7276"></a>
+<span class="sourceLineNo">7277</span>                                                }<a name="line.7277"></a>
+<span class="sourceLineNo">7278</span>                                        }<a name="line.7278"></a>
+<span class="sourceLineNo">7279</span>                                }<a name="line.7279"></a>
+<span class="sourceLineNo">7280</span>                        }<a name="line.7280"></a>
+<span class="sourceLineNo">7281</span>                        break;<a name="line.7281"></a>
+<span class="sourceLineNo">7282</span>                case Dataset.ARRAYFLOAT64:<a name="line.7282"></a>
+<span class="sourceLineNo">7283</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.7283"></a>
+<span class="sourceLineNo">7284</span>                        if (is == 1) {<a name="line.7284"></a>
+<span class="sourceLineNo">7285</span>                                if (it.isOutputDouble()) {<a name="line.7285"></a>
+<span class="sourceLineNo">7286</span>                                        while (it.hasNext()) {<a name="line.7286"></a>
+<span class="sourceLineNo">7287</span>                                                final double iax = it.aDouble;<a name="line.7287"></a>
+<span class="sourceLineNo">7288</span>                                                final double ibx = it.bDouble;<a name="line.7288"></a>
+<span class="sourceLineNo">7289</span>                                                double ox;<a name="line.7289"></a>
+<span class="sourceLineNo">7290</span>                                                ox = (iax / ibx);<a name="line.7290"></a>
+<span class="sourceLineNo">7291</span>                                                oaf64data[it.oIndex] = ox;<a name="line.7291"></a>
+<span class="sourceLineNo">7292</span>                                        }<a name="line.7292"></a>
+<span class="sourceLineNo">7293</span>                                } else {<a name="line.7293"></a>
+<span class="sourceLineNo">7294</span>                                        while (it.hasNext()) {<a name="line.7294"></a>
+<span class="sourceLineNo">7295</span>                                                final long iax = it.aLong;<a name="line.7295"></a>
+<span class="sourceLineNo">7296</span>                                                final long ibx = it.bLong;<a name="line.7296"></a>
+<span class="sourceLineNo">7297</span>                                                double ox;<a name="line.7297"></a>
+<span class="sourceLineNo">7298</span>                                                ox = (iax / ibx);<a name="line.7298"></a>
+<span class="sourceLineNo">7299</span>                                                oaf64data[it.oIndex] = ox;<a name="line.7299"></a>
+<span class="sourceLineNo">7300</span>                                        }<a name="line.7300"></a>
+<span class="sourceLineNo">7301</span>                                }<a name="line.7301"></a>
+<span class="sourceLineNo">7302</span>                        } else if (as &lt; bs) {<a name="line.7302"></a>
+<span class="sourceLineNo">7303</span>                                if (it.isOutputDouble()) {<a name="line.7303"></a>
+<span class="sourceLineNo">7304</span>                                        while (it.hasNext()) {<a name="line.7304"></a>
+<span class="sourceLineNo">7305</span>                                                final double iax = it.aDouble;<a name="line.7305"></a>
+<span class="sourceLineNo">7306</span>                                                double ibx = it.bDouble;<a name="line.7306"></a>
+<span class="sourceLineNo">7307</span>                                                double ox;<a name="line.7307"></a>
+<span class="sourceLineNo">7308</span>                                                ox = (iax / ibx);<a name="line.7308"></a>
+<span class="sourceLineNo">7309</span>                                                oaf64data[it.oIndex] = ox;<a name="line.7309"></a>
+<span class="sourceLineNo">7310</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.7310"></a>
+<span class="sourceLineNo">7311</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.7311"></a>
+<span class="sourceLineNo">7312</span>                                                        ox = (iax / ibx);<a name="line.7312"></a>
+<span class="sourceLineNo">7313</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.7313"></a>
+<span class="sourceLineNo">7314</span>                                                }<a name="line.7314"></a>
+<span class="sourceLineNo">7315</span>                                        }<a name="line.7315"></a>
+<span class="sourceLineNo">7316</span>                                } else {<a name="line.7316"></a>
+<span class="sourceLineNo">7317</span>                                        while (it.hasNext()) {<a name="line.7317"></a>
+<span class="sourceLineNo">7318</span>                                                final long iax = it.aLong;<a name="line.7318"></a>
+<span class="sourceLineNo">7319</span>                                                long ibx = it.bLong;<a name="line.7319"></a>
+<span class="sourceLineNo">7320</span>                                                double ox;<a name="line.7320"></a>
+<span class="sourceLineNo">7321</span>                                                ox = (iax / ibx);<a name="line.7321"></a>
+<span class="sourceLineNo">7322</span>                                                oaf64data[it.oIndex] = ox;<a name="line.7322"></a>
+<span class="sourceLineNo">7323</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.7323"></a>
+<span class="sourceLineNo">7324</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.7324"></a>
+<span class="sourceLineNo">7325</span>                                                        ox = (iax / ibx);<a name="line.7325"></a>
+<span class="sourceLineNo">7326</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.7326"></a>
+<span class="sourceLineNo">7327</span>                                                }<a name="line.7327"></a>
+<span class="sourceLineNo">7328</span>                                        }<a name="line.7328"></a>
+<span class="sourceLineNo">7329</span>                                }<a name="line.7329"></a>
+<span class="sourceLineNo">7330</span>                        } else if (as &gt; bs) {<a name="line.7330"></a>
+<span class="sourceLineNo">7331</span>                                if (it.isOutputDouble()) {<a name="line.7331"></a>
+<span class="sourceLineNo">7332</span>                                        while (it.hasNext()) {<a name="line.7332"></a>
+<span class="sourceLineNo">7333</span>                                                double iax = it.aDouble;<a name="line.7333"></a>
+<span class="sourceLineNo">7334</span>                                                final double ibx = it.bDouble;<a name="line.7334"></a>
+<span class="sourceLineNo">7335</span>                                                double ox;<a name="line.7335"></a>
+<span class="sourceLineNo">7336</span>                                                ox = (iax / ibx);<a name="line.7336"></a>
+<span class="sourceLineNo">7337</span>                                                oaf64data[it.oIndex] = ox;<a name="line.7337"></a>
+<span class="sourceLineNo">7338</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.7338"></a>
+<span class="sourceLineNo">7339</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.7339"></a>
+<span class="sourceLineNo">7340</span>                                                        ox = (iax / ibx);<a name="line.7340"></a>
+<span class="sourceLineNo">7341</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.7341"></a>
+<span class="sourceLineNo">7342</span>                                                }<a name="line.7342"></a>
+<span class="sourceLineNo">7343</span>                                        }<a name="line.7343"></a>
+<span class="sourceLineNo">7344</span>                                } else {<a name="line.7344"></a>
+<span class="sourceLineNo">7345</span>                                        while (it.hasNext()) {<a name="line.7345"></a>
+<span class="sourceLineNo">7346</span>                                                long iax = it.aLong;<a name="line.7346"></a>
+<span class="sourceLineNo">7347</span>                                                final long ibx = it.bLong;<a name="line.7347"></a>
+<span class="sourceLineNo">7348</span>                                                double ox;<a name="line.7348"></a>
+<span class="sourceLineNo">7349</span>                                                ox = (iax / ibx);<a name="line.7349"></a>
+<span class="sourceLineNo">7350</span>                                                oaf64data[it.oIndex] = ox;<a name="line.7350"></a>
+<span class="sourceLineNo">7351</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.7351"></a>
+<span class="sourceLineNo">7352</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.7352"></a>
+<span class="sourceLineNo">7353</span>                                                        ox = (iax / ibx);<a name="line.7353"></a>
+<span class="sourceLineNo">7354</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.7354"></a>
+<span class="sourceLineNo">7355</span>                                                }<a name="line.7355"></a>
+<span class="sourceLineNo">7356</span>                                        }<a name="line.7356"></a>
+<span class="sourceLineNo">7357</span>                                }<a name="line.7357"></a>
+<span class="sourceLineNo">7358</span>                        } else if (as == 1) {<a name="line.7358"></a>
+<span class="sourceLineNo">7359</span>                                if (it.isOutputDouble()) {<a name="line.7359"></a>
+<span class="sourceLineNo">7360</span>                                        while (it.hasNext()) {<a name="line.7360"></a>
+<span class="sourceLineNo">7361</span>                                                final double iax = it.aDouble;<a name="line.7361"></a>
+<span class="sourceLineNo">7362</span>                                                final double ibx = it.bDouble;<a name="line.7362"></a>
+<span class="sourceLineNo">7363</span>                                                double ox;<a name="line.7363"></a>
+<span class="sourceLineNo">7364</span>                                                ox = (iax / ibx);<a name="line.7364"></a>
+<span class="sourceLineNo">7365</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.7365"></a>
+<span class="sourceLineNo">7366</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.7366"></a>
+<span class="sourceLineNo">7367</span>                                                }<a name="line.7367"></a>
+<span class="sourceLineNo">7368</span>                                        }<a name="line.7368"></a>
+<span class="sourceLineNo">7369</span>                                } else {<a name="line.7369"></a>
+<span class="sourceLineNo">7370</span>                                        while (it.hasNext()) {<a name="line.7370"></a>
+<span class="sourceLineNo">7371</span>                                                final long iax = it.aLong;<a name="line.7371"></a>
+<span class="sourceLineNo">7372</span>                                                final long ibx = it.bLong;<a name="line.7372"></a>
+<span class="sourceLineNo">7373</span>                                                double ox;<a name="line.7373"></a>
+<span class="sourceLineNo">7374</span>                                                ox = (iax / ibx);<a name="line.7374"></a>
+<span class="sourceLineNo">7375</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.7375"></a>
+<span class="sourceLineNo">7376</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.7376"></a>
+<span class="sourceLineNo">7377</span>                                                }<a name="line.7377"></a>
+<span class="sourceLineNo">7378</span>                                        }<a name="line.7378"></a>
+<span class="sourceLineNo">7379</span>                                }<a name="line.7379"></a>
+<span class="sourceLineNo">7380</span>                        } else {<a name="line.7380"></a>
+<span class="sourceLineNo">7381</span>                                if (it.isOutputDouble()) {<a name="line.7381"></a>
+<span class="sourceLineNo">7382</span>                                        while (it.hasNext()) {<a name="line.7382"></a>
+<span class="sourceLineNo">7383</span>                                                double iax = it.aDouble;<a name="line.7383"></a>
+<span class="sourceLineNo">7384</span>                                                double ibx = it.bDouble;<a name="line.7384"></a>
+<span class="sourceLineNo">7385</span>                                                double ox;<a name="line.7385"></a>
+<span class="sourceLineNo">7386</span>                                                ox = (iax / ibx);<a name="line.7386"></a>
+<span class="sourceLineNo">7387</span>                                                oaf64data[it.oIndex] = ox;<a name="line.7387"></a>
+<span class="sourceLineNo">7388</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.7388"></a>
+<span class="sourceLineNo">7389</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.7389"></a>
+<span class="sourceLineNo">7390</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.7390"></a>
+<span class="sourceLineNo">7391</span>                                                        ox = (iax / ibx);<a name="line.7391"></a>
+<span class="sourceLineNo">7392</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.7392"></a>
+<span class="sourceLineNo">7393</span>                                                }<a name="line.7393"></a>
+<span class="sourceLineNo">7394</span>                                        }<a name="line.7394"></a>
+<span class="sourceLineNo">7395</span>                                } else {<a name="line.7395"></a>
+<span class="sourceLineNo">7396</span>                                        while (it.hasNext()) {<a name="line.7396"></a>
+<span class="sourceLineNo">7397</span>                                                long iax = it.aLong;<a name="line.7397"></a>
+<span class="sourceLineNo">7398</span>                                                long ibx = it.bLong;<a name="line.7398"></a>
+<span class="sourceLineNo">7399</span>                                                double ox;<a name="line.7399"></a>
+<span class="sourceLineNo">7400</span>                                                ox = (iax / ibx);<a name="line.7400"></a>
+<span class="sourceLineNo">7401</span>                                                oaf64data[it.oIndex] = ox;<a name="line.7401"></a>
+<span class="sourceLineNo">7402</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.7402"></a>
+<span class="sourceLineNo">7403</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.7403"></a>
+<span class="sourceLineNo">7404</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.7404"></a>
+<span class="sourceLineNo">7405</span>                                                        ox = (iax / ibx);<a name="line.7405"></a>
+<span class="sourceLineNo">7406</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.7406"></a>
+<span class="sourceLineNo">7407</span>                                                }<a name="line.7407"></a>
+<span class="sourceLineNo">7408</span>                                        }<a name="line.7408"></a>
+<span class="sourceLineNo">7409</span>                                }<a name="line.7409"></a>
+<span class="sourceLineNo">7410</span>                        }<a name="line.7410"></a>
+<span class="sourceLineNo">7411</span>                        break;<a name="line.7411"></a>
+<span class="sourceLineNo">7412</span>                case Dataset.COMPLEX64:<a name="line.7412"></a>
+<span class="sourceLineNo">7413</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.7413"></a>
+<span class="sourceLineNo">7414</span>                        if (!da.isComplex()) {<a name="line.7414"></a>
+<span class="sourceLineNo">7415</span>                                if (it.isOutputDouble()) {<a name="line.7415"></a>
+<span class="sourceLineNo">7416</span>                                        final double iay = 0;<a name="line.7416"></a>
+<span class="sourceLineNo">7417</span>                                        if (db.isComplex()) {<a name="line.7417"></a>
+<span class="sourceLineNo">7418</span>                                                while (it.hasNext()) {<a name="line.7418"></a>
+<span class="sourceLineNo">7419</span>                                                        final double iax = it.aDouble;<a name="line.7419"></a>
+<span class="sourceLineNo">7420</span>                                                        final double ibx = it.bDouble;<a name="line.7420"></a>
+<span class="sourceLineNo">7421</span>                                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.7421"></a>
+<span class="sourceLineNo">7422</span>                                                        float ox;<a name="line.7422"></a>
+<span class="sourceLineNo">7423</span>                                                        float oy;<a name="line.7423"></a>
+<span class="sourceLineNo">7424</span>                                                        float q;<a name="line.7424"></a>
+<span class="sourceLineNo">7425</span>                                                        float den;<a name="line.7425"></a>
+<span class="sourceLineNo">7426</span>                                                        if (iby == 0) {<a name="line.7426"></a>
+<span class="sourceLineNo">7427</span>                                                                ox = (float) (iax / ibx);<a name="line.7427"></a>
+<span class="sourceLineNo">7428</span>                                                                oy = (float) (iay / ibx);<a name="line.7428"></a>
+<span class="sourceLineNo">7429</span>                                                        } else if (ibx == 0) {<a name="line.7429"></a>
+<span class="sourceLineNo">7430</span>                                                                ox = (float) (iay / iby);<a name="line.7430"></a>
+<span class="sourceLineNo">7431</span>                                                                oy = (float) (-iax / iby);<a name="line.7431"></a>
+<span class="sourceLineNo">7432</span>                                                        } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.7432"></a>
+<span class="sourceLineNo">7433</span>                                                                q = (float) (ibx / iby);<a name="line.7433"></a>
+<span class="sourceLineNo">7434</span>                                                                den = (float) (ibx * q + iby);<a name="line.7434"></a>
+<span class="sourceLineNo">7435</span>                                                                ox = (float) ((iax * q + iay) / den);<a name="line.7435"></a>
+<span class="sourceLineNo">7436</span>                                                                oy = (float) ((iay * q - ibx) / den);<a name="line.7436"></a>
+<span class="sourceLineNo">7437</span>                                                        } else {<a name="line.7437"></a>
+<span class="sourceLineNo">7438</span>                                                                q = (float) (iby / ibx);<a name="line.7438"></a>
+<span class="sourceLineNo">7439</span>                                                                den = (float) (iby * q + ibx);<a name="line.7439"></a>
+<span class="sourceLineNo">7440</span>                                                                ox = (float) ((iay * q + iax) / den);<a name="line.7440"></a>
+<span class="sourceLineNo">7441</span>                                                                oy = (float) ((iay - iax * q) / den);<a name="line.7441"></a>
+<span class="sourceLineNo">7442</span>                                                        }<a name="line.7442"></a>
+<span class="sourceLineNo">7443</span>                                                        oc64data[it.oIndex] = ox;<a name="line.7443"></a>
+<span class="sourceLineNo">7444</span>                                                        oc64data[it.oIndex + 1] = oy;<a name="line.7444"></a>
+<span class="sourceLineNo">7445</span>                                                }<a name="line.7445"></a>
+<span class="sourceLineNo">7446</span>                                        } else {<a name="line.7446"></a>
+<span class="sourceLineNo">7447</span>                                                while (it.hasNext()) {<a name="line.7447"></a>
+<span class="sourceLineNo">7448</span>                                                        final double iax = it.aDouble;<a name="line.7448"></a>
+<span class="sourceLineNo">7449</span>                                                        final double ibx = it.bDouble;<a name="line.7449"></a>
+<span class="sourceLineNo">7450</span>                                                        final double iby = 0;<a name="line.7450"></a>
+<span class="sourceLineNo">7451</span>                                                        float ox;<a name="line.7451"></a>
+<span class="sourceLineNo">7452</span>                                                        float oy;<a name="line.7452"></a>
+<span class="sourceLineNo">7453</span>                                                        float q;<a name="line.7453"></a>
+<span class="sourceLineNo">7454</span>                                                        float den;<a name="line.7454"></a>
+<span class="sourceLineNo">7455</span>                                                        if (iby == 0) {<a name="line.7455"></a>
+<span class="sourceLineNo">7456</span>                                                                ox = (float) (iax / ibx);<a name="line.7456"></a>
+<span class="sourceLineNo">7457</span>                                                                oy = (float) (iay / ibx);<a name="line.7457"></a>
+<span class="sourceLineNo">7458</span>                                                        } else if (ibx == 0) {<a name="line.7458"></a>
+<span class="sourceLineNo">7459</span>                                                                ox = (float) (iay / iby);<a name="line.7459"></a>
+<span class="sourceLineNo">7460</span>                                                                oy = (float) (-iax / iby);<a name="line.7460"></a>
+<span class="sourceLineNo">7461</span>                                                        } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.7461"></a>
+<span class="sourceLineNo">7462</span>                                                                q = (float) (ibx / iby);<a name="line.7462"></a>
+<span class="sourceLineNo">7463</span>                                                                den = (float) (ibx * q + iby);<a name="line.7463"></a>
+<span class="sourceLineNo">7464</span>                                                                ox = (float) ((iax * q + iay) / den);<a name="line.7464"></a>
+<span class="sourceLineNo">7465</span>                                                                oy = (float) ((iay * q - ibx) / den);<a name="line.7465"></a>
+<span class="sourceLineNo">7466</span>                                                        } else {<a name="line.7466"></a>
+<span class="sourceLineNo">7467</span>                                                                q = (float) (iby / ibx);<a name="line.7467"></a>
+<span class="sourceLineNo">7468</span>                                                                den = (float) (iby * q + ibx);<a name="line.7468"></a>
+<span class="sourceLineNo">7469</span>                                                                ox = (float) ((iay * q + iax) / den);<a name="line.7469"></a>
+<span class="sourceLineNo">7470</span>                                                                oy = (float) ((iay - iax * q) / den);<a name="line.7470"></a>
+<span class="sourceLineNo">7471</span>                                                        }<a name="line.7471"></a>
+<span class="sourceLineNo">7472</span>                                                        oc64data[it.oIndex] = ox;<a name="line.7472"></a>
+<span class="sourceLineNo">7473</span>                                                        oc64data[it.oIndex + 1] = oy;<a name="line.7473"></a>
+<span class="sourceLineNo">7474</span>                                                }<a name="line.7474"></a>
+<span class="sourceLineNo">7475</span>                                        }<a name="line.7475"></a>
+<span class="sourceLineNo">7476</span>                                } else {<a name="line.7476"></a>
+<span class="sourceLineNo">7477</span>                                        final long iay = 0;<a name="line.7477"></a>
+<span class="sourceLineNo">7478</span>                                        while (it.hasNext()) {<a name="line.7478"></a>
+<span class="sourceLineNo">7479</span>                                                final long iax = it.aLong;<a name="line.7479"></a>
+<span class="sourceLineNo">7480</span>                                                final long ibx = it.bLong;<a name="line.7480"></a>
+<span class="sourceLineNo">7481</span>                                                final long iby = 0;<a name="line.7481"></a>
+<span class="sourceLineNo">7482</span>                                                float ox;<a name="line.7482"></a>
+<span class="sourceLineNo">7483</span>                                                float oy;<a name="line.7483"></a>
+<span class="sourceLineNo">7484</span>                                                float q;<a name="line.7484"></a>
+<span class="sourceLineNo">7485</span>                                                float den;<a name="line.7485"></a>
+<span class="sourceLineNo">7486</span>                                                if (iby == 0) {<a name="line.7486"></a>
+<span class="sourceLineNo">7487</span>                                                        ox = (float) (iax / ibx);<a name="line.7487"></a>
+<span class="sourceLineNo">7488</span>                                                        oy = (float) (iay / ibx);<a name="line.7488"></a>
+<span class="sourceLineNo">7489</span>                                                } else if (ibx == 0) {<a name="line.7489"></a>
+<span class="sourceLineNo">7490</span>                                                        ox = (float) (iay / iby);<a name="line.7490"></a>
+<span class="sourceLineNo">7491</span>                                                        oy = (float) (-iax / iby);<a name="line.7491"></a>
+<span class="sourceLineNo">7492</span>                                                } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.7492"></a>
+<span class="sourceLineNo">7493</span>                                                        q = (float) (ibx / iby);<a name="line.7493"></a>
+<span class="sourceLineNo">7494</span>                                                        den = (float) (ibx * q + iby);<a name="line.7494"></a>
+<span class="sourceLineNo">7495</span>                                                        ox = (float) ((iax * q + iay) / den);<a name="line.7495"></a>
+<span class="sourceLineNo">7496</span>                                                        oy = (float) ((iay * q - ibx) / den);<a name="line.7496"></a>
+<span class="sourceLineNo">7497</span>                                                } else {<a name="line.7497"></a>
+<span class="sourceLineNo">7498</span>                                                        q = (float) (iby / ibx);<a name="line.7498"></a>
+<span class="sourceLineNo">7499</span>                                                        den = (float) (iby * q + ibx);<a name="line.7499"></a>
+<span class="sourceLineNo">7500</span>                                                        ox = (float) ((iay * q + iax) / den);<a name="line.7500"></a>
+<span class="sourceLineNo">7501</span>                                                        oy = (float) ((iay - iax * q) / den);<a name="line.7501"></a>
+<span class="sourceLineNo">7502</span>                                                }<a name="line.7502"></a>
+<span class="sourceLineNo">7503</span>                                                oc64data[it.oIndex] = ox;<a name="line.7503"></a>
+<span class="sourceLineNo">7504</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.7504"></a>
+<span class="sourceLineNo">7505</span>                                        }<a name="line.7505"></a>
+<span class="sourceLineNo">7506</span>                                }<a name="line.7506"></a>
+<span class="sourceLineNo">7507</span>                        } else if (!db.isComplex()) {<a name="line.7507"></a>
+<span class="sourceLineNo">7508</span>                                final double iby = 0;<a name="line.7508"></a>
+<span class="sourceLineNo">7509</span>                                while (it.hasNext()) {<a name="line.7509"></a>
+<span class="sourceLineNo">7510</span>                                        final double iax = it.aDouble;<a name="line.7510"></a>
+<span class="sourceLineNo">7511</span>                                        final double ibx = it.bDouble;<a name="line.7511"></a>
+<span class="sourceLineNo">7512</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.7512"></a>
+<span class="sourceLineNo">7513</span>                                        float ox;<a name="line.7513"></a>
+<span class="sourceLineNo">7514</span>                                        float oy;<a name="line.7514"></a>
+<span class="sourceLineNo">7515</span>                                        float q;<a name="line.7515"></a>
+<span class="sourceLineNo">7516</span>                                        float den;<a name="line.7516"></a>
+<span class="sourceLineNo">7517</span>                                        if (iby == 0) {<a name="line.7517"></a>
+<span class="sourceLineNo">7518</span>                                                ox = (float) (iax / ibx);<a name="line.7518"></a>
+<span class="sourceLineNo">7519</span>                                                oy = (float) (iay / ibx);<a name="line.7519"></a>
+<span class="sourceLineNo">7520</span>                                        } else if (ibx == 0) {<a name="line.7520"></a>
+<span class="sourceLineNo">7521</span>                                                ox = (float) (iay / iby);<a name="line.7521"></a>
+<span class="sourceLineNo">7522</span>                                                oy = (float) (-iax / iby);<a name="line.7522"></a>
+<span class="sourceLineNo">7523</span>                                        } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.7523"></a>
+<span class="sourceLineNo">7524</span>                                                q = (float) (ibx / iby);<a name="line.7524"></a>
+<span class="sourceLineNo">7525</span>                                                den = (float) (ibx * q + iby);<a name="line.7525"></a>
+<span class="sourceLineNo">7526</span>                                                ox = (float) ((iax * q + iay) / den);<a name="line.7526"></a>
+<span class="sourceLineNo">7527</span>                                                oy = (float) ((iay * q - ibx) / den);<a name="line.7527"></a>
+<span class="sourceLineNo">7528</span>                                        } else {<a name="line.7528"></a>
+<span class="sourceLineNo">7529</span>                                                q = (float) (iby / ibx);<a name="line.7529"></a>
+<span class="sourceLineNo">7530</span>                                                den = (float) (iby * q + ibx);<a name="line.7530"></a>
+<span class="sourceLineNo">7531</span>                                                ox = (float) ((iay * q + iax) / den);<a name="line.7531"></a>
+<span class="sourceLineNo">7532</span>                                                oy = (float) ((iay - iax * q) / den);<a name="line.7532"></a>
+<span class="sourceLineNo">7533</span>                                        }<a name="line.7533"></a>
+<span class="sourceLineNo">7534</span>                                        oc64data[it.oIndex] = ox;<a name="line.7534"></a>
+<span class="sourceLineNo">7535</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.7535"></a>
+<span class="sourceLineNo">7536</span>                                }<a name="line.7536"></a>
+<span class="sourceLineNo">7537</span>                        } else {<a name="line.7537"></a>
+<span class="sourceLineNo">7538</span>                                while (it.hasNext()) {<a name="line.7538"></a>
+<span class="sourceLineNo">7539</span>                                        final double iax = it.aDouble;<a name="line.7539"></a>
+<span class="sourceLineNo">7540</span>                                        final double ibx = it.bDouble;<a name="line.7540"></a>
+<span class="sourceLineNo">7541</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.7541"></a>
+<span class="sourceLineNo">7542</span>                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.7542"></a>
+<span class="sourceLineNo">7543</span>                                        float ox;<a name="line.7543"></a>
+<span class="sourceLineNo">7544</span>                                        float oy;<a name="line.7544"></a>
+<span class="sourceLineNo">7545</span>                                        float q;<a name="line.7545"></a>
+<span class="sourceLineNo">7546</span>                                        float den;<a name="line.7546"></a>
+<span class="sourceLineNo">7547</span>                                        if (iby == 0) {<a name="line.7547"></a>
+<span class="sourceLineNo">7548</span>                                                ox = (float) (iax / ibx);<a name="line.7548"></a>
+<span class="sourceLineNo">7549</span>                                                oy = (float) (iay / ibx);<a name="line.7549"></a>
+<span class="sourceLineNo">7550</span>                                        } else if (ibx == 0) {<a name="line.7550"></a>
+<span class="sourceLineNo">7551</span>                                                ox = (float) (iay / iby);<a name="line.7551"></a>
+<span class="sourceLineNo">7552</span>                                                oy = (float) (-iax / iby);<a name="line.7552"></a>
+<span class="sourceLineNo">7553</span>                                        } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.7553"></a>
+<span class="sourceLineNo">7554</span>                                                q = (float) (ibx / iby);<a name="line.7554"></a>
+<span class="sourceLineNo">7555</span>                                                den = (float) (ibx * q + iby);<a name="line.7555"></a>
+<span class="sourceLineNo">7556</span>                                                ox = (float) ((iax * q + iay) / den);<a name="line.7556"></a>
+<span class="sourceLineNo">7557</span>                                                oy = (float) ((iay * q - ibx) / den);<a name="line.7557"></a>
+<span class="sourceLineNo">7558</span>                                        } else {<a name="line.7558"></a>
+<span class="sourceLineNo">7559</span>                                                q = (float) (iby / ibx);<a name="line.7559"></a>
+<span class="sourceLineNo">7560</span>                                                den = (float) (iby * q + ibx);<a name="line.7560"></a>
+<span class="sourceLineNo">7561</span>                                                ox = (float) ((iay * q + iax) / den);<a name="line.7561"></a>
+<span class="sourceLineNo">7562</span>                                                oy = (float) ((iay - iax * q) / den);<a name="line.7562"></a>
+<span class="sourceLineNo">7563</span>                                        }<a name="line.7563"></a>
+<span class="sourceLineNo">7564</span>                                        oc64data[it.oIndex] = ox;<a name="line.7564"></a>
+<span class="sourceLineNo">7565</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.7565"></a>
+<span class="sourceLineNo">7566</span>                                }<a name="line.7566"></a>
+<span class="sourceLineNo">7567</span>                        }<a name="line.7567"></a>
+<span class="sourceLineNo">7568</span>                        break;<a name="line.7568"></a>
+<span class="sourceLineNo">7569</span>                case Dataset.COMPLEX128:<a name="line.7569"></a>
+<span class="sourceLineNo">7570</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.7570"></a>
+<span class="sourceLineNo">7571</span>                        if (!da.isComplex()) {<a name="line.7571"></a>
+<span class="sourceLineNo">7572</span>                                if (it.isOutputDouble()) {<a name="line.7572"></a>
+<span class="sourceLineNo">7573</span>                                        final double iay = 0;<a name="line.7573"></a>
+<span class="sourceLineNo">7574</span>                                        if (db.isComplex()) {<a name="line.7574"></a>
+<span class="sourceLineNo">7575</span>                                                while (it.hasNext()) {<a name="line.7575"></a>
+<span class="sourceLineNo">7576</span>                                                        final double iax = it.aDouble;<a name="line.7576"></a>
+<span class="sourceLineNo">7577</span>                                                        final double ibx = it.bDouble;<a name="line.7577"></a>
+<span class="sourceLineNo">7578</span>                                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.7578"></a>
+<span class="sourceLineNo">7579</span>                                                        double ox;<a name="line.7579"></a>
+<span class="sourceLineNo">7580</span>                                                        double oy;<a name="line.7580"></a>
+<span class="sourceLineNo">7581</span>                                                        double q;<a name="line.7581"></a>
+<span class="sourceLineNo">7582</span>                                                        double den;<a name="line.7582"></a>
+<span class="sourceLineNo">7583</span>                                                        if (iby == 0) {<a name="line.7583"></a>
+<span class="sourceLineNo">7584</span>                                                                ox = (iax / ibx);<a name="line.7584"></a>
+<span class="sourceLineNo">7585</span>                                                                oy = (iay / ibx);<a name="line.7585"></a>
+<span class="sourceLineNo">7586</span>                                                        } else if (ibx == 0) {<a name="line.7586"></a>
+<span class="sourceLineNo">7587</span>                                                                ox = (iay / iby);<a name="line.7587"></a>
+<span class="sourceLineNo">7588</span>                                                                oy = (-iax / iby);<a name="line.7588"></a>
+<span class="sourceLineNo">7589</span>                                                        } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.7589"></a>
+<span class="sourceLineNo">7590</span>                                                                q = (ibx / iby);<a name="line.7590"></a>
+<span class="sourceLineNo">7591</span>                                                                den = (ibx * q + iby);<a name="line.7591"></a>
+<span class="sourceLineNo">7592</span>                                                                ox = ((iax * q + iay) / den);<a name="line.7592"></a>
+<span class="sourceLineNo">7593</span>                                                                oy = ((iay * q - ibx) / den);<a name="line.7593"></a>
+<span class="sourceLineNo">7594</span>                                                        } else {<a name="line.7594"></a>
+<span class="sourceLineNo">7595</span>                                                                q = (iby / ibx);<a name="line.7595"></a>
+<span class="sourceLineNo">7596</span>                                                                den = (iby * q + ibx);<a name="line.7596"></a>
+<span class="sourceLineNo">7597</span>                                                                ox = ((iay * q + iax) / den);<a name="line.7597"></a>
+<span class="sourceLineNo">7598</span>                                                                oy = ((iay - iax * q) / den);<a name="line.7598"></a>
+<span class="sourceLineNo">7599</span>                                                        }<a name="line.7599"></a>
+<span class="sourceLineNo">7600</span>                                                        oc128data[it.oIndex] = ox;<a name="line.7600"></a>
+<span class="sourceLineNo">7601</span>                                                        oc128data[it.oIndex + 1] = oy;<a name="line.7601"></a>
+<span class="sourceLineNo">7602</span>                                                }<a name="line.7602"></a>
+<span class="sourceLineNo">7603</span>                                        } else {<a name="line.7603"></a>
+<span class="sourceLineNo">7604</span>                                                while (it.hasNext()) {<a name="line.7604"></a>
+<span class="sourceLineNo">7605</span>                                                        final double iax = it.aDouble;<a name="line.7605"></a>
+<span class="sourceLineNo">7606</span>                                                        final double ibx = it.bDouble;<a name="line.7606"></a>
+<span class="sourceLineNo">7607</span>                                                        final double iby = 0;<a name="line.7607"></a>
+<span class="sourceLineNo">7608</span>                                                        double ox;<a name="line.7608"></a>
+<span class="sourceLineNo">7609</span>                                                        double oy;<a name="line.7609"></a>
+<span class="sourceLineNo">7610</span>                                                        double q;<a name="line.7610"></a>
+<span class="sourceLineNo">7611</span>                                                        double den;<a name="line.7611"></a>
+<span class="sourceLineNo">7612</span>                                                        if (iby == 0) {<a name="line.7612"></a>
+<span class="sourceLineNo">7613</span>                                                                ox = (iax / ibx);<a name="line.7613"></a>
+<span class="sourceLineNo">7614</span>                                                                oy = (iay / ibx);<a name="line.7614"></a>
+<span class="sourceLineNo">7615</span>                                                        } else if (ibx == 0) {<a name="line.7615"></a>
+<span class="sourceLineNo">7616</span>                                                                ox = (iay / iby);<a name="line.7616"></a>
+<span class="sourceLineNo">7617</span>                                                                oy = (-iax / iby);<a name="line.7617"></a>
+<span class="sourceLineNo">7618</span>                                                        } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.7618"></a>
+<span class="sourceLineNo">7619</span>                                                                q = (ibx / iby);<a name="line.7619"></a>
+<span class="sourceLineNo">7620</span>                                                                den = (ibx * q + iby);<a name="line.7620"></a>
+<span class="sourceLineNo">7621</span>                                                                ox = ((iax * q + iay) / den);<a name="line.7621"></a>
+<span class="sourceLineNo">7622</span>                                                                oy = ((iay * q - ibx) / den);<a name="line.7622"></a>
+<span class="sourceLineNo">7623</span>                                                        } else {<a name="line.7623"></a>
+<span class="sourceLineNo">7624</span>                                                                q = (iby / ibx);<a name="line.7624"></a>
+<span class="sourceLineNo">7625</span>                                                                den = (iby * q + ibx);<a name="line.7625"></a>
+<span class="sourceLineNo">7626</span>                                                                ox = ((iay * q + iax) / den);<a name="line.7626"></a>
+<span class="sourceLineNo">7627</span>                                                                oy = ((iay - iax * q) / den);<a name="line.7627"></a>
+<span class="sourceLineNo">7628</span>                                                        }<a name="line.7628"></a>
+<span class="sourceLineNo">7629</span>                                                        oc128data[it.oIndex] = ox;<a name="line.7629"></a>
+<span class="sourceLineNo">7630</span>                                                        oc128data[it.oIndex + 1] = oy;<a name="line.7630"></a>
+<span class="sourceLineNo">7631</span>                                                }<a name="line.7631"></a>
+<span class="sourceLineNo">7632</span>                                        }<a name="line.7632"></a>
+<span class="sourceLineNo">7633</span>                                } else {<a name="line.7633"></a>
+<span class="sourceLineNo">7634</span>                                        final long iay = 0;<a name="line.7634"></a>
+<span class="sourceLineNo">7635</span>                                        while (it.hasNext()) {<a name="line.7635"></a>
+<span class="sourceLineNo">7636</span>                                                final long iax = it.aLong;<a name="line.7636"></a>
+<span class="sourceLineNo">7637</span>                                                final long ibx = it.bLong;<a name="line.7637"></a>
+<span class="sourceLineNo">7638</span>                                                final long iby = 0;<a name="line.7638"></a>
+<span class="sourceLineNo">7639</span>                                                double ox;<a name="line.7639"></a>
+<span class="sourceLineNo">7640</span>                                                double oy;<a name="line.7640"></a>
+<span class="sourceLineNo">7641</span>                                                double q;<a name="line.7641"></a>
+<span class="sourceLineNo">7642</span>                                                double den;<a name="line.7642"></a>
+<span class="sourceLineNo">7643</span>                                                if (iby == 0) {<a name="line.7643"></a>
+<span class="sourceLineNo">7644</span>                                                        ox = (iax / ibx);<a name="line.7644"></a>
+<span class="sourceLineNo">7645</span>                                                        oy = (iay / ibx);<a name="line.7645"></a>
+<span class="sourceLineNo">7646</span>                                                } else if (ibx == 0) {<a name="line.7646"></a>
+<span class="sourceLineNo">7647</span>                                                        ox = (iay / iby);<a name="line.7647"></a>
+<span class="sourceLineNo">7648</span>                                                        oy = (-iax / iby);<a name="line.7648"></a>
+<span class="sourceLineNo">7649</span>                                                } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.7649"></a>
+<span class="sourceLineNo">7650</span>                                                        q = (ibx / iby);<a name="line.7650"></a>
+<span class="sourceLineNo">7651</span>                                                        den = (ibx * q + iby);<a name="line.7651"></a>
+<span class="sourceLineNo">7652</span>                                                        ox = ((iax * q + iay) / den);<a name="line.7652"></a>
+<span class="sourceLineNo">7653</span>                                                        oy = ((iay * q - ibx) / den);<a name="line.7653"></a>
+<span class="sourceLineNo">7654</span>                                                } else {<a name="line.7654"></a>
+<span class="sourceLineNo">7655</span>                                                        q = (iby / ibx);<a name="line.7655"></a>
+<span class="sourceLineNo">7656</span>                                                        den = (iby * q + ibx);<a name="line.7656"></a>
+<span class="sourceLineNo">7657</span>                                                        ox = ((iay * q + iax) / den);<a name="line.7657"></a>
+<span class="sourceLineNo">7658</span>                                                        oy = ((iay - iax * q) / den);<a name="line.7658"></a>
+<span class="sourceLineNo">7659</span>                                                }<a name="line.7659"></a>
+<span class="sourceLineNo">7660</span>                                                oc128data[it.oIndex] = ox;<a name="line.7660"></a>
+<span class="sourceLineNo">7661</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.7661"></a>
+<span class="sourceLineNo">7662</span>                                        }<a name="line.7662"></a>
+<span class="sourceLineNo">7663</span>                                }<a name="line.7663"></a>
+<span class="sourceLineNo">7664</span>                        } else if (!db.isComplex()) {<a name="line.7664"></a>
+<span class="sourceLineNo">7665</span>                                final double iby = 0;<a name="line.7665"></a>
+<span class="sourceLineNo">7666</span>                                while (it.hasNext()) {<a name="line.7666"></a>
+<span class="sourceLineNo">7667</span>                                        final double iax = it.aDouble;<a name="line.7667"></a>
+<span class="sourceLineNo">7668</span>                                        final double ibx = it.bDouble;<a name="line.7668"></a>
+<span class="sourceLineNo">7669</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.7669"></a>
+<span class="sourceLineNo">7670</span>                                        double ox;<a name="line.7670"></a>
+<span class="sourceLineNo">7671</span>                                        double oy;<a name="line.7671"></a>
+<span class="sourceLineNo">7672</span>                                        double q;<a name="line.7672"></a>
+<span class="sourceLineNo">7673</span>                                        double den;<a name="line.7673"></a>
+<span class="sourceLineNo">7674</span>                                        if (iby == 0) {<a name="line.7674"></a>
+<span class="sourceLineNo">7675</span>                                                ox = (iax / ibx);<a name="line.7675"></a>
+<span class="sourceLineNo">7676</span>                                                oy = (iay / ibx);<a name="line.7676"></a>
+<span class="sourceLineNo">7677</span>                                        } else if (ibx == 0) {<a name="line.7677"></a>
+<span class="sourceLineNo">7678</span>                                                ox = (iay / iby);<a name="line.7678"></a>
+<span class="sourceLineNo">7679</span>                                                oy = (-iax / iby);<a name="line.7679"></a>
+<span class="sourceLineNo">7680</span>                                        } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.7680"></a>
+<span class="sourceLineNo">7681</span>                                                q = (ibx / iby);<a name="line.7681"></a>
+<span class="sourceLineNo">7682</span>                                                den = (ibx * q + iby);<a name="line.7682"></a>
+<span class="sourceLineNo">7683</span>                                                ox = ((iax * q + iay) / den);<a name="line.7683"></a>
+<span class="sourceLineNo">7684</span>                                                oy = ((iay * q - ibx) / den);<a name="line.7684"></a>
+<span class="sourceLineNo">7685</span>                                        } else {<a name="line.7685"></a>
+<span class="sourceLineNo">7686</span>                                                q = (iby / ibx);<a name="line.7686"></a>
+<span class="sourceLineNo">7687</span>                                                den = (iby * q + ibx);<a name="line.7687"></a>
+<span class="sourceLineNo">7688</span>                                                ox = ((iay * q + iax) / den);<a name="line.7688"></a>
+<span class="sourceLineNo">7689</span>                                                oy = ((iay - iax * q) / den);<a name="line.7689"></a>
+<span class="sourceLineNo">7690</span>                                        }<a name="line.7690"></a>
+<span class="sourceLineNo">7691</span>                                        oc128data[it.oIndex] = ox;<a name="line.7691"></a>
+<span class="sourceLineNo">7692</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.7692"></a>
+<span class="sourceLineNo">7693</span>                                }<a name="line.7693"></a>
+<span class="sourceLineNo">7694</span>                        } else {<a name="line.7694"></a>
+<span class="sourceLineNo">7695</span>                                while (it.hasNext()) {<a name="line.7695"></a>
+<span class="sourceLineNo">7696</span>                                        final double iax = it.aDouble;<a name="line.7696"></a>
+<span class="sourceLineNo">7697</span>                                        final double ibx = it.bDouble;<a name="line.7697"></a>
+<span class="sourceLineNo">7698</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.7698"></a>
+<span class="sourceLineNo">7699</span>                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.7699"></a>
+<span class="sourceLineNo">7700</span>                                        double ox;<a name="line.7700"></a>
+<span class="sourceLineNo">7701</span>                                        double oy;<a name="line.7701"></a>
+<span class="sourceLineNo">7702</span>                                        double q;<a name="line.7702"></a>
+<span class="sourceLineNo">7703</span>                                        double den;<a name="line.7703"></a>
+<span class="sourceLineNo">7704</span>                                        if (iby == 0) {<a name="line.7704"></a>
+<span class="sourceLineNo">7705</span>                                                ox = (iax / ibx);<a name="line.7705"></a>
+<span class="sourceLineNo">7706</span>                                                oy = (iay / ibx);<a name="line.7706"></a>
+<span class="sourceLineNo">7707</span>                                        } else if (ibx == 0) {<a name="line.7707"></a>
+<span class="sourceLineNo">7708</span>                                                ox = (iay / iby);<a name="line.7708"></a>
+<span class="sourceLineNo">7709</span>                                                oy = (-iax / iby);<a name="line.7709"></a>
+<span class="sourceLineNo">7710</span>                                        } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.7710"></a>
+<span class="sourceLineNo">7711</span>                                                q = (ibx / iby);<a name="line.7711"></a>
+<span class="sourceLineNo">7712</span>                                                den = (ibx * q + iby);<a name="line.7712"></a>
+<span class="sourceLineNo">7713</span>                                                ox = ((iax * q + iay) / den);<a name="line.7713"></a>
+<span class="sourceLineNo">7714</span>                                                oy = ((iay * q - ibx) / den);<a name="line.7714"></a>
+<span class="sourceLineNo">7715</span>                                        } else {<a name="line.7715"></a>
+<span class="sourceLineNo">7716</span>                                                q = (iby / ibx);<a name="line.7716"></a>
+<span class="sourceLineNo">7717</span>                                                den = (iby * q + ibx);<a name="line.7717"></a>
+<span class="sourceLineNo">7718</span>                                                ox = ((iay * q + iax) / den);<a name="line.7718"></a>
+<span class="sourceLineNo">7719</span>                                                oy = ((iay - iax * q) / den);<a name="line.7719"></a>
+<span class="sourceLineNo">7720</span>                                        }<a name="line.7720"></a>
+<span class="sourceLineNo">7721</span>                                        oc128data[it.oIndex] = ox;<a name="line.7721"></a>
+<span class="sourceLineNo">7722</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.7722"></a>
+<span class="sourceLineNo">7723</span>                                }<a name="line.7723"></a>
+<span class="sourceLineNo">7724</span>                        }<a name="line.7724"></a>
+<span class="sourceLineNo">7725</span>                        break;<a name="line.7725"></a>
+<span class="sourceLineNo">7726</span>                default:<a name="line.7726"></a>
+<span class="sourceLineNo">7727</span>                        throw new IllegalArgumentException("divide supports integer, compound integer, real, compound real, complex datasets only");<a name="line.7727"></a>
+<span class="sourceLineNo">7728</span>                }<a name="line.7728"></a>
+<span class="sourceLineNo">7729</span><a name="line.7729"></a>
+<span class="sourceLineNo">7730</span>                addBinaryOperatorName(da, db, result, "/");<a name="line.7730"></a>
+<span class="sourceLineNo">7731</span>                return result;<a name="line.7731"></a>
+<span class="sourceLineNo">7732</span>        }<a name="line.7732"></a>
+<span class="sourceLineNo">7733</span><a name="line.7733"></a>
+<span class="sourceLineNo">7734</span>        /**<a name="line.7734"></a>
+<span class="sourceLineNo">7735</span>         * dividez operator<a name="line.7735"></a>
+<span class="sourceLineNo">7736</span>         * @param a<a name="line.7736"></a>
+<span class="sourceLineNo">7737</span>         * @param b<a name="line.7737"></a>
+<span class="sourceLineNo">7738</span>         * @return {@code a / b}, division of a by b<a name="line.7738"></a>
+<span class="sourceLineNo">7739</span>         */<a name="line.7739"></a>
+<span class="sourceLineNo">7740</span>        public static Dataset dividez(final Object a, final Object b) {<a name="line.7740"></a>
+<span class="sourceLineNo">7741</span>                return dividez(a, b, null);<a name="line.7741"></a>
+<span class="sourceLineNo">7742</span>        }<a name="line.7742"></a>
+<span class="sourceLineNo">7743</span><a name="line.7743"></a>
+<span class="sourceLineNo">7744</span>        /**<a name="line.7744"></a>
+<span class="sourceLineNo">7745</span>         * dividez operator<a name="line.7745"></a>
+<span class="sourceLineNo">7746</span>         * @param a<a name="line.7746"></a>
+<span class="sourceLineNo">7747</span>         * @param b<a name="line.7747"></a>
+<span class="sourceLineNo">7748</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.7748"></a>
+<span class="sourceLineNo">7749</span>         * @return {@code a / b}, division of a by b<a name="line.7749"></a>
+<span class="sourceLineNo">7750</span>         */<a name="line.7750"></a>
+<span class="sourceLineNo">7751</span>        public static Dataset dividez(final Object a, final Object b, final Dataset o) {<a name="line.7751"></a>
+<span class="sourceLineNo">7752</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.7752"></a>
+<span class="sourceLineNo">7753</span>                Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.7753"></a>
+<span class="sourceLineNo">7754</span>                BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.7754"></a>
+<span class="sourceLineNo">7755</span>                final Dataset result = it.getOutput();<a name="line.7755"></a>
+<span class="sourceLineNo">7756</span>                if (!result.isComplex()) {<a name="line.7756"></a>
+<span class="sourceLineNo">7757</span>                        boolean change = false;<a name="line.7757"></a>
+<span class="sourceLineNo">7758</span>                        if (da.isComplex()) {<a name="line.7758"></a>
+<span class="sourceLineNo">7759</span>                                da = da.getRealView();<a name="line.7759"></a>
+<span class="sourceLineNo">7760</span>                                change = true;<a name="line.7760"></a>
+<span class="sourceLineNo">7761</span>                        }<a name="line.7761"></a>
+<span class="sourceLineNo">7762</span>                        if (db.isComplex()) {<a name="line.7762"></a>
+<span class="sourceLineNo">7763</span>                                db = db.getRealView();<a name="line.7763"></a>
+<span class="sourceLineNo">7764</span>                                change = true;<a name="line.7764"></a>
+<span class="sourceLineNo">7765</span>                        }<a name="line.7765"></a>
+<span class="sourceLineNo">7766</span>                        if (change) {<a name="line.7766"></a>
+<span class="sourceLineNo">7767</span>                                it = BroadcastIterator.createIterator(da, db, result, true);<a name="line.7767"></a>
+<span class="sourceLineNo">7768</span>                        }<a name="line.7768"></a>
+<span class="sourceLineNo">7769</span>                }<a name="line.7769"></a>
+<span class="sourceLineNo">7770</span>                final int is = result.getElementsPerItem();<a name="line.7770"></a>
+<span class="sourceLineNo">7771</span>                final int as = da.getElementsPerItem();<a name="line.7771"></a>
+<span class="sourceLineNo">7772</span>                final int bs = db.getElementsPerItem();<a name="line.7772"></a>
+<span class="sourceLineNo">7773</span>                final int dt = result.getDType();<a name="line.7773"></a>
+<span class="sourceLineNo">7774</span><a name="line.7774"></a>
+<span class="sourceLineNo">7775</span>                switch(dt) {<a name="line.7775"></a>
+<span class="sourceLineNo">7776</span>                case Dataset.INT8:<a name="line.7776"></a>
+<span class="sourceLineNo">7777</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.7777"></a>
+<span class="sourceLineNo">7778</span>                        if (it.isOutputDouble()) {<a name="line.7778"></a>
+<span class="sourceLineNo">7779</span>                                while (it.hasNext()) {<a name="line.7779"></a>
+<span class="sourceLineNo">7780</span>                                        final double iax = it.aDouble;<a name="line.7780"></a>
+<span class="sourceLineNo">7781</span>                                        final double ibx = it.bDouble;<a name="line.7781"></a>
+<span class="sourceLineNo">7782</span>                                        byte ox;<a name="line.7782"></a>
+<span class="sourceLineNo">7783</span>                                        ox = (byte) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.7783"></a>
+<span class="sourceLineNo">7784</span>                                        oi8data[it.oIndex] = ox;<a name="line.7784"></a>
+<span class="sourceLineNo">7785</span>                                }<a name="line.7785"></a>
+<span class="sourceLineNo">7786</span>                        } else {<a name="line.7786"></a>
+<span class="sourceLineNo">7787</span>                                while (it.hasNext()) {<a name="line.7787"></a>
+<span class="sourceLineNo">7788</span>                                        final long iax = it.aLong;<a name="line.7788"></a>
+<span class="sourceLineNo">7789</span>                                        final long ibx = it.bLong;<a name="line.7789"></a>
+<span class="sourceLineNo">7790</span>                                        byte ox;<a name="line.7790"></a>
+<span class="sourceLineNo">7791</span>                                        ox = (byte) (ibx == 0 ? 0 : iax / ibx);<a name="line.7791"></a>
+<span class="sourceLineNo">7792</span>                                        oi8data[it.oIndex] = ox;<a name="line.7792"></a>
+<span class="sourceLineNo">7793</span>                                }<a name="line.7793"></a>
+<span class="sourceLineNo">7794</span>                        }<a name="line.7794"></a>
+<span class="sourceLineNo">7795</span>                        break;<a name="line.7795"></a>
+<span class="sourceLineNo">7796</span>                case Dataset.INT16:<a name="line.7796"></a>
+<span class="sourceLineNo">7797</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.7797"></a>
+<span class="sourceLineNo">7798</span>                        if (it.isOutputDouble()) {<a name="line.7798"></a>
+<span class="sourceLineNo">7799</span>                                while (it.hasNext()) {<a name="line.7799"></a>
+<span class="sourceLineNo">7800</span>                                        final double iax = it.aDouble;<a name="line.7800"></a>
+<span class="sourceLineNo">7801</span>                                        final double ibx = it.bDouble;<a name="line.7801"></a>
+<span class="sourceLineNo">7802</span>                                        short ox;<a name="line.7802"></a>
+<span class="sourceLineNo">7803</span>                                        ox = (short) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.7803"></a>
+<span class="sourceLineNo">7804</span>                                        oi16data[it.oIndex] = ox;<a name="line.7804"></a>
+<span class="sourceLineNo">7805</span>                                }<a name="line.7805"></a>
+<span class="sourceLineNo">7806</span>                        } else {<a name="line.7806"></a>
+<span class="sourceLineNo">7807</span>                                while (it.hasNext()) {<a name="line.7807"></a>
+<span class="sourceLineNo">7808</span>                                        final long iax = it.aLong;<a name="line.7808"></a>
+<span class="sourceLineNo">7809</span>                                        final long ibx = it.bLong;<a name="line.7809"></a>
+<span class="sourceLineNo">7810</span>                                        short ox;<a name="line.7810"></a>
+<span class="sourceLineNo">7811</span>                                        ox = (short) (ibx == 0 ? 0 : iax / ibx);<a name="line.7811"></a>
+<span class="sourceLineNo">7812</span>                                        oi16data[it.oIndex] = ox;<a name="line.7812"></a>
+<span class="sourceLineNo">7813</span>                                }<a name="line.7813"></a>
+<span class="sourceLineNo">7814</span>                        }<a name="line.7814"></a>
+<span class="sourceLineNo">7815</span>                        break;<a name="line.7815"></a>
+<span class="sourceLineNo">7816</span>                case Dataset.INT64:<a name="line.7816"></a>
+<span class="sourceLineNo">7817</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.7817"></a>
+<span class="sourceLineNo">7818</span>                        if (it.isOutputDouble()) {<a name="line.7818"></a>
+<span class="sourceLineNo">7819</span>                                while (it.hasNext()) {<a name="line.7819"></a>
+<span class="sourceLineNo">7820</span>                                        final double iax = it.aDouble;<a name="line.7820"></a>
+<span class="sourceLineNo">7821</span>                                        final double ibx = it.bDouble;<a name="line.7821"></a>
+<span class="sourceLineNo">7822</span>                                        long ox;<a name="line.7822"></a>
+<span class="sourceLineNo">7823</span>                                        ox = toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.7823"></a>
+<span class="sourceLineNo">7824</span>                                        oi64data[it.oIndex] = ox;<a name="line.7824"></a>
+<span class="sourceLineNo">7825</span>                                }<a name="line.7825"></a>
+<span class="sourceLineNo">7826</span>                        } else {<a name="line.7826"></a>
+<span class="sourceLineNo">7827</span>                                while (it.hasNext()) {<a name="line.7827"></a>
+<span class="sourceLineNo">7828</span>                                        final long iax = it.aLong;<a name="line.7828"></a>
+<span class="sourceLineNo">7829</span>                                        final long ibx = it.bLong;<a name="line.7829"></a>
+<span class="sourceLineNo">7830</span>                                        long ox;<a name="line.7830"></a>
+<span class="sourceLineNo">7831</span>                                        ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.7831"></a>
+<span class="sourceLineNo">7832</span>                                        oi64data[it.oIndex] = ox;<a name="line.7832"></a>
+<span class="sourceLineNo">7833</span>                                }<a name="line.7833"></a>
+<span class="sourceLineNo">7834</span>                        }<a name="line.7834"></a>
+<span class="sourceLineNo">7835</span>                        break;<a name="line.7835"></a>
+<span class="sourceLineNo">7836</span>                case Dataset.INT32:<a name="line.7836"></a>
+<span class="sourceLineNo">7837</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.7837"></a>
+<span class="sourceLineNo">7838</span>                        if (it.isOutputDouble()) {<a name="line.7838"></a>
+<span class="sourceLineNo">7839</span>                                while (it.hasNext()) {<a name="line.7839"></a>
+<span class="sourceLineNo">7840</span>                                        final double iax = it.aDouble;<a name="line.7840"></a>
+<span class="sourceLineNo">7841</span>                                        final double ibx = it.bDouble;<a name="line.7841"></a>
+<span class="sourceLineNo">7842</span>                                        int ox;<a name="line.7842"></a>
+<span class="sourceLineNo">7843</span>                                        ox = (int) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.7843"></a>
+<span class="sourceLineNo">7844</span>                                        oi32data[it.oIndex] = ox;<a name="line.7844"></a>
+<span class="sourceLineNo">7845</span>                                }<a name="line.7845"></a>
+<span class="sourceLineNo">7846</span>                        } else {<a name="line.7846"></a>
+<span class="sourceLineNo">7847</span>                                while (it.hasNext()) {<a name="line.7847"></a>
+<span class="sourceLineNo">7848</span>                                        final long iax = it.aLong;<a name="line.7848"></a>
+<span class="sourceLineNo">7849</span>                                        final long ibx = it.bLong;<a name="line.7849"></a>
+<span class="sourceLineNo">7850</span>                                        int ox;<a name="line.7850"></a>
+<span class="sourceLineNo">7851</span>                                        ox = (int) (ibx == 0 ? 0 : iax / ibx);<a name="line.7851"></a>
+<span class="sourceLineNo">7852</span>                                        oi32data[it.oIndex] = ox;<a name="line.7852"></a>
+<span class="sourceLineNo">7853</span>                                }<a name="line.7853"></a>
+<span class="sourceLineNo">7854</span>                        }<a name="line.7854"></a>
+<span class="sourceLineNo">7855</span>                        break;<a name="line.7855"></a>
+<span class="sourceLineNo">7856</span>                case Dataset.ARRAYINT8:<a name="line.7856"></a>
+<span class="sourceLineNo">7857</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.7857"></a>
+<span class="sourceLineNo">7858</span>                        if (is == 1) {<a name="line.7858"></a>
+<span class="sourceLineNo">7859</span>                                if (it.isOutputDouble()) {<a name="line.7859"></a>
+<span class="sourceLineNo">7860</span>                                        while (it.hasNext()) {<a name="line.7860"></a>
+<span class="sourceLineNo">7861</span>                                                final double iax = it.aDouble;<a name="line.7861"></a>
+<span class="sourceLineNo">7862</span>                                                final double ibx = it.bDouble;<a name="line.7862"></a>
+<span class="sourceLineNo">7863</span>                                                byte ox;<a name="line.7863"></a>
+<span class="sourceLineNo">7864</span>                                                ox = (byte) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.7864"></a>
+<span class="sourceLineNo">7865</span>                                                oai8data[it.oIndex] = ox;<a name="line.7865"></a>
+<span class="sourceLineNo">7866</span>                                        }<a name="line.7866"></a>
+<span class="sourceLineNo">7867</span>                                } else {<a name="line.7867"></a>
+<span class="sourceLineNo">7868</span>                                        while (it.hasNext()) {<a name="line.7868"></a>
+<span class="sourceLineNo">7869</span>                                                final long iax = it.aLong;<a name="line.7869"></a>
+<span class="sourceLineNo">7870</span>                                                final long ibx = it.bLong;<a name="line.7870"></a>
+<span class="sourceLineNo">7871</span>                                                byte ox;<a name="line.7871"></a>
+<span class="sourceLineNo">7872</span>                                                ox = (byte) (ibx == 0 ? 0 : iax / ibx);<a name="line.7872"></a>
+<span class="sourceLineNo">7873</span>                                                oai8data[it.oIndex] = ox;<a name="line.7873"></a>
+<span class="sourceLineNo">7874</span>                                        }<a name="line.7874"></a>
+<span class="sourceLineNo">7875</span>                                }<a name="line.7875"></a>
+<span class="sourceLineNo">7876</span>                        } else if (as &lt; bs) {<a name="line.7876"></a>
+<span class="sourceLineNo">7877</span>                                if (it.isOutputDouble()) {<a name="line.7877"></a>
+<span class="sourceLineNo">7878</span>                                        while (it.hasNext()) {<a name="line.7878"></a>
+<span class="sourceLineNo">7879</span>                                                final double iax = it.aDouble;<a name="line.7879"></a>
+<span class="sourceLineNo">7880</span>                                                double ibx = it.bDouble;<a name="line.7880"></a>
+<span class="sourceLineNo">7881</span>                                                byte ox;<a name="line.7881"></a>
+<span class="sourceLineNo">7882</span>                                                ox = (byte) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.7882"></a>
+<span class="sourceLineNo">7883</span>                                                oai8data[it.oIndex] = ox;<a name="line.7883"></a>
+<span class="sourceLineNo">7884</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.7884"></a>
+<span class="sourceLineNo">7885</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.7885"></a>
+<span class="sourceLineNo">7886</span>                                                        ox = (byte) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.7886"></a>
+<span class="sourceLineNo">7887</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.7887"></a>
+<span class="sourceLineNo">7888</span>                                                }<a name="line.7888"></a>
+<span class="sourceLineNo">7889</span>                                        }<a name="line.7889"></a>
+<span class="sourceLineNo">7890</span>                                } else {<a name="line.7890"></a>
+<span class="sourceLineNo">7891</span>                                        while (it.hasNext()) {<a name="line.7891"></a>
+<span class="sourceLineNo">7892</span>                                                final long iax = it.aLong;<a name="line.7892"></a>
+<span class="sourceLineNo">7893</span>                                                long ibx = it.bLong;<a name="line.7893"></a>
+<span class="sourceLineNo">7894</span>                                                byte ox;<a name="line.7894"></a>
+<span class="sourceLineNo">7895</span>                                                ox = (byte) (ibx == 0 ? 0 : iax / ibx);<a name="line.7895"></a>
+<span class="sourceLineNo">7896</span>                                                oai8data[it.oIndex] = ox;<a name="line.7896"></a>
+<span class="sourceLineNo">7897</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.7897"></a>
+<span class="sourceLineNo">7898</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.7898"></a>
+<span class="sourceLineNo">7899</span>                                                        ox = (byte) (ibx == 0 ? 0 : iax / ibx);<a name="line.7899"></a>
+<span class="sourceLineNo">7900</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.7900"></a>
+<span class="sourceLineNo">7901</span>                                                }<a name="line.7901"></a>
+<span class="sourceLineNo">7902</span>                                        }<a name="line.7902"></a>
+<span class="sourceLineNo">7903</span>                                }<a name="line.7903"></a>
+<span class="sourceLineNo">7904</span>                        } else if (as &gt; bs) {<a name="line.7904"></a>
+<span class="sourceLineNo">7905</span>                                if (it.isOutputDouble()) {<a name="line.7905"></a>
+<span class="sourceLineNo">7906</span>                                        while (it.hasNext()) {<a name="line.7906"></a>
+<span class="sourceLineNo">7907</span>                                                double iax = it.aDouble;<a name="line.7907"></a>
+<span class="sourceLineNo">7908</span>                                                final double ibx = it.bDouble;<a name="line.7908"></a>
+<span class="sourceLineNo">7909</span>                                                byte ox;<a name="line.7909"></a>
+<span class="sourceLineNo">7910</span>                                                ox = (byte) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.7910"></a>
+<span class="sourceLineNo">7911</span>                                                oai8data[it.oIndex] = ox;<a name="line.7911"></a>
+<span class="sourceLineNo">7912</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.7912"></a>
+<span class="sourceLineNo">7913</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.7913"></a>
+<span class="sourceLineNo">7914</span>                                                        ox = (byte) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.7914"></a>
+<span class="sourceLineNo">7915</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.7915"></a>
+<span class="sourceLineNo">7916</span>                                                }<a name="line.7916"></a>
+<span class="sourceLineNo">7917</span>                                        }<a name="line.7917"></a>
+<span class="sourceLineNo">7918</span>                                } else {<a name="line.7918"></a>
+<span class="sourceLineNo">7919</span>                                        while (it.hasNext()) {<a name="line.7919"></a>
+<span class="sourceLineNo">7920</span>                                                long iax = it.aLong;<a name="line.7920"></a>
+<span class="sourceLineNo">7921</span>                                                final long ibx = it.bLong;<a name="line.7921"></a>
+<span class="sourceLineNo">7922</span>                                                byte ox;<a name="line.7922"></a>
+<span class="sourceLineNo">7923</span>                                                ox = (byte) (ibx == 0 ? 0 : iax / ibx);<a name="line.7923"></a>
+<span class="sourceLineNo">7924</span>                                                oai8data[it.oIndex] = ox;<a name="line.7924"></a>
+<span class="sourceLineNo">7925</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.7925"></a>
+<span class="sourceLineNo">7926</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.7926"></a>
+<span class="sourceLineNo">7927</span>                                                        ox = (byte) (ibx == 0 ? 0 : iax / ibx);<a name="line.7927"></a>
+<span class="sourceLineNo">7928</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.7928"></a>
+<span class="sourceLineNo">7929</span>                                                }<a name="line.7929"></a>
+<span class="sourceLineNo">7930</span>                                        }<a name="line.7930"></a>
+<span class="sourceLineNo">7931</span>                                }<a name="line.7931"></a>
+<span class="sourceLineNo">7932</span>                        } else if (as == 1) {<a name="line.7932"></a>
+<span class="sourceLineNo">7933</span>                                if (it.isOutputDouble()) {<a name="line.7933"></a>
+<span class="sourceLineNo">7934</span>                                        while (it.hasNext()) {<a name="line.7934"></a>
+<span class="sourceLineNo">7935</span>                                                final double iax = it.aDouble;<a name="line.7935"></a>
+<span class="sourceLineNo">7936</span>                                                final double ibx = it.bDouble;<a name="line.7936"></a>
+<span class="sourceLineNo">7937</span>                                                byte ox;<a name="line.7937"></a>
+<span class="sourceLineNo">7938</span>                                                ox = (byte) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.7938"></a>
+<span class="sourceLineNo">7939</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.7939"></a>
+<span class="sourceLineNo">7940</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.7940"></a>
+<span class="sourceLineNo">7941</span>                                                }<a name="line.7941"></a>
+<span class="sourceLineNo">7942</span>                                        }<a name="line.7942"></a>
+<span class="sourceLineNo">7943</span>                                } else {<a name="line.7943"></a>
+<span class="sourceLineNo">7944</span>                                        while (it.hasNext()) {<a name="line.7944"></a>
+<span class="sourceLineNo">7945</span>                                                final long iax = it.aLong;<a name="line.7945"></a>
+<span class="sourceLineNo">7946</span>                                                final long ibx = it.bLong;<a name="line.7946"></a>
+<span class="sourceLineNo">7947</span>                                                byte ox;<a name="line.7947"></a>
+<span class="sourceLineNo">7948</span>                                                ox = (byte) (ibx == 0 ? 0 : iax / ibx);<a name="line.7948"></a>
+<span class="sourceLineNo">7949</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.7949"></a>
+<span class="sourceLineNo">7950</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.7950"></a>
+<span class="sourceLineNo">7951</span>                                                }<a name="line.7951"></a>
+<span class="sourceLineNo">7952</span>                                        }<a name="line.7952"></a>
+<span class="sourceLineNo">7953</span>                                }<a name="line.7953"></a>
+<span class="sourceLineNo">7954</span>                        } else {<a name="line.7954"></a>
+<span class="sourceLineNo">7955</span>                                if (it.isOutputDouble()) {<a name="line.7955"></a>
+<span class="sourceLineNo">7956</span>                                        while (it.hasNext()) {<a name="line.7956"></a>
+<span class="sourceLineNo">7957</span>                                                double iax = it.aDouble;<a name="line.7957"></a>
+<span class="sourceLineNo">7958</span>                                                double ibx = it.bDouble;<a name="line.7958"></a>
+<span class="sourceLineNo">7959</span>                                                byte ox;<a name="line.7959"></a>
+<span class="sourceLineNo">7960</span>                                                ox = (byte) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.7960"></a>
+<span class="sourceLineNo">7961</span>                                                oai8data[it.oIndex] = ox;<a name="line.7961"></a>
+<span class="sourceLineNo">7962</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.7962"></a>
+<span class="sourceLineNo">7963</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.7963"></a>
+<span class="sourceLineNo">7964</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.7964"></a>
+<span class="sourceLineNo">7965</span>                                                        ox = (byte) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.7965"></a>
+<span class="sourceLineNo">7966</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.7966"></a>
+<span class="sourceLineNo">7967</span>                                                }<a name="line.7967"></a>
+<span class="sourceLineNo">7968</span>                                        }<a name="line.7968"></a>
+<span class="sourceLineNo">7969</span>                                } else {<a name="line.7969"></a>
+<span class="sourceLineNo">7970</span>                                        while (it.hasNext()) {<a name="line.7970"></a>
+<span class="sourceLineNo">7971</span>                                                long iax = it.aLong;<a name="line.7971"></a>
+<span class="sourceLineNo">7972</span>                                                long ibx = it.bLong;<a name="line.7972"></a>
+<span class="sourceLineNo">7973</span>                                                byte ox;<a name="line.7973"></a>
+<span class="sourceLineNo">7974</span>                                                ox = (byte) (ibx == 0 ? 0 : iax / ibx);<a name="line.7974"></a>
+<span class="sourceLineNo">7975</span>                                                oai8data[it.oIndex] = ox;<a name="line.7975"></a>
+<span class="sourceLineNo">7976</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.7976"></a>
+<span class="sourceLineNo">7977</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.7977"></a>
+<span class="sourceLineNo">7978</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.7978"></a>
+<span class="sourceLineNo">7979</span>                                                        ox = (byte) (ibx == 0 ? 0 : iax / ibx);<a name="line.7979"></a>
+<span class="sourceLineNo">7980</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.7980"></a>
+<span class="sourceLineNo">7981</span>                                                }<a name="line.7981"></a>
+<span class="sourceLineNo">7982</span>                                        }<a name="line.7982"></a>
+<span class="sourceLineNo">7983</span>                                }<a name="line.7983"></a>
+<span class="sourceLineNo">7984</span>                        }<a name="line.7984"></a>
+<span class="sourceLineNo">7985</span>                        break;<a name="line.7985"></a>
+<span class="sourceLineNo">7986</span>                case Dataset.ARRAYINT16:<a name="line.7986"></a>
+<span class="sourceLineNo">7987</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.7987"></a>
+<span class="sourceLineNo">7988</span>                        if (is == 1) {<a name="line.7988"></a>
+<span class="sourceLineNo">7989</span>                                if (it.isOutputDouble()) {<a name="line.7989"></a>
+<span class="sourceLineNo">7990</span>                                        while (it.hasNext()) {<a name="line.7990"></a>
+<span class="sourceLineNo">7991</span>                                                final double iax = it.aDouble;<a name="line.7991"></a>
+<span class="sourceLineNo">7992</span>                                                final double ibx = it.bDouble;<a name="line.7992"></a>
+<span class="sourceLineNo">7993</span>                                                short ox;<a name="line.7993"></a>
+<span class="sourceLineNo">7994</span>                                                ox = (short) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.7994"></a>
+<span class="sourceLineNo">7995</span>                                                oai16data[it.oIndex] = ox;<a name="line.7995"></a>
+<span class="sourceLineNo">7996</span>                                        }<a name="line.7996"></a>
+<span class="sourceLineNo">7997</span>                                } else {<a name="line.7997"></a>
+<span class="sourceLineNo">7998</span>                                        while (it.hasNext()) {<a name="line.7998"></a>
+<span class="sourceLineNo">7999</span>                                                final long iax = it.aLong;<a name="line.7999"></a>
+<span class="sourceLineNo">8000</span>                                                final long ibx = it.bLong;<a name="line.8000"></a>
+<span class="sourceLineNo">8001</span>                                                short ox;<a name="line.8001"></a>
+<span class="sourceLineNo">8002</span>                                                ox = (short) (ibx == 0 ? 0 : iax / ibx);<a name="line.8002"></a>
+<span class="sourceLineNo">8003</span>                                                oai16data[it.oIndex] = ox;<a name="line.8003"></a>
+<span class="sourceLineNo">8004</span>                                        }<a name="line.8004"></a>
+<span class="sourceLineNo">8005</span>                                }<a name="line.8005"></a>
+<span class="sourceLineNo">8006</span>                        } else if (as &lt; bs) {<a name="line.8006"></a>
+<span class="sourceLineNo">8007</span>                                if (it.isOutputDouble()) {<a name="line.8007"></a>
+<span class="sourceLineNo">8008</span>                                        while (it.hasNext()) {<a name="line.8008"></a>
+<span class="sourceLineNo">8009</span>                                                final double iax = it.aDouble;<a name="line.8009"></a>
+<span class="sourceLineNo">8010</span>                                                double ibx = it.bDouble;<a name="line.8010"></a>
+<span class="sourceLineNo">8011</span>                                                short ox;<a name="line.8011"></a>
+<span class="sourceLineNo">8012</span>                                                ox = (short) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.8012"></a>
+<span class="sourceLineNo">8013</span>                                                oai16data[it.oIndex] = ox;<a name="line.8013"></a>
+<span class="sourceLineNo">8014</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8014"></a>
+<span class="sourceLineNo">8015</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.8015"></a>
+<span class="sourceLineNo">8016</span>                                                        ox = (short) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.8016"></a>
+<span class="sourceLineNo">8017</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.8017"></a>
+<span class="sourceLineNo">8018</span>                                                }<a name="line.8018"></a>
+<span class="sourceLineNo">8019</span>                                        }<a name="line.8019"></a>
+<span class="sourceLineNo">8020</span>                                } else {<a name="line.8020"></a>
+<span class="sourceLineNo">8021</span>                                        while (it.hasNext()) {<a name="line.8021"></a>
+<span class="sourceLineNo">8022</span>                                                final long iax = it.aLong;<a name="line.8022"></a>
+<span class="sourceLineNo">8023</span>                                                long ibx = it.bLong;<a name="line.8023"></a>
+<span class="sourceLineNo">8024</span>                                                short ox;<a name="line.8024"></a>
+<span class="sourceLineNo">8025</span>                                                ox = (short) (ibx == 0 ? 0 : iax / ibx);<a name="line.8025"></a>
+<span class="sourceLineNo">8026</span>                                                oai16data[it.oIndex] = ox;<a name="line.8026"></a>
+<span class="sourceLineNo">8027</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8027"></a>
+<span class="sourceLineNo">8028</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.8028"></a>
+<span class="sourceLineNo">8029</span>                                                        ox = (short) (ibx == 0 ? 0 : iax / ibx);<a name="line.8029"></a>
+<span class="sourceLineNo">8030</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.8030"></a>
+<span class="sourceLineNo">8031</span>                                                }<a name="line.8031"></a>
+<span class="sourceLineNo">8032</span>                                        }<a name="line.8032"></a>
+<span class="sourceLineNo">8033</span>                                }<a name="line.8033"></a>
+<span class="sourceLineNo">8034</span>                        } else if (as &gt; bs) {<a name="line.8034"></a>
+<span class="sourceLineNo">8035</span>                                if (it.isOutputDouble()) {<a name="line.8035"></a>
+<span class="sourceLineNo">8036</span>                                        while (it.hasNext()) {<a name="line.8036"></a>
+<span class="sourceLineNo">8037</span>                                                double iax = it.aDouble;<a name="line.8037"></a>
+<span class="sourceLineNo">8038</span>                                                final double ibx = it.bDouble;<a name="line.8038"></a>
+<span class="sourceLineNo">8039</span>                                                short ox;<a name="line.8039"></a>
+<span class="sourceLineNo">8040</span>                                                ox = (short) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.8040"></a>
+<span class="sourceLineNo">8041</span>                                                oai16data[it.oIndex] = ox;<a name="line.8041"></a>
+<span class="sourceLineNo">8042</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8042"></a>
+<span class="sourceLineNo">8043</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.8043"></a>
+<span class="sourceLineNo">8044</span>                                                        ox = (short) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.8044"></a>
+<span class="sourceLineNo">8045</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.8045"></a>
+<span class="sourceLineNo">8046</span>                                                }<a name="line.8046"></a>
+<span class="sourceLineNo">8047</span>                                        }<a name="line.8047"></a>
+<span class="sourceLineNo">8048</span>                                } else {<a name="line.8048"></a>
+<span class="sourceLineNo">8049</span>                                        while (it.hasNext()) {<a name="line.8049"></a>
+<span class="sourceLineNo">8050</span>                                                long iax = it.aLong;<a name="line.8050"></a>
+<span class="sourceLineNo">8051</span>                                                final long ibx = it.bLong;<a name="line.8051"></a>
+<span class="sourceLineNo">8052</span>                                                short ox;<a name="line.8052"></a>
+<span class="sourceLineNo">8053</span>                                                ox = (short) (ibx == 0 ? 0 : iax / ibx);<a name="line.8053"></a>
+<span class="sourceLineNo">8054</span>                                                oai16data[it.oIndex] = ox;<a name="line.8054"></a>
+<span class="sourceLineNo">8055</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8055"></a>
+<span class="sourceLineNo">8056</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.8056"></a>
+<span class="sourceLineNo">8057</span>                                                        ox = (short) (ibx == 0 ? 0 : iax / ibx);<a name="line.8057"></a>
+<span class="sourceLineNo">8058</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.8058"></a>
+<span class="sourceLineNo">8059</span>                                                }<a name="line.8059"></a>
+<span class="sourceLineNo">8060</span>                                        }<a name="line.8060"></a>
+<span class="sourceLineNo">8061</span>                                }<a name="line.8061"></a>
+<span class="sourceLineNo">8062</span>                        } else if (as == 1) {<a name="line.8062"></a>
+<span class="sourceLineNo">8063</span>                                if (it.isOutputDouble()) {<a name="line.8063"></a>
+<span class="sourceLineNo">8064</span>                                        while (it.hasNext()) {<a name="line.8064"></a>
+<span class="sourceLineNo">8065</span>                                                final double iax = it.aDouble;<a name="line.8065"></a>
+<span class="sourceLineNo">8066</span>                                                final double ibx = it.bDouble;<a name="line.8066"></a>
+<span class="sourceLineNo">8067</span>                                                short ox;<a name="line.8067"></a>
+<span class="sourceLineNo">8068</span>                                                ox = (short) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.8068"></a>
+<span class="sourceLineNo">8069</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.8069"></a>
+<span class="sourceLineNo">8070</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.8070"></a>
+<span class="sourceLineNo">8071</span>                                                }<a name="line.8071"></a>
+<span class="sourceLineNo">8072</span>                                        }<a name="line.8072"></a>
+<span class="sourceLineNo">8073</span>                                } else {<a name="line.8073"></a>
+<span class="sourceLineNo">8074</span>                                        while (it.hasNext()) {<a name="line.8074"></a>
+<span class="sourceLineNo">8075</span>                                                final long iax = it.aLong;<a name="line.8075"></a>
+<span class="sourceLineNo">8076</span>                                                final long ibx = it.bLong;<a name="line.8076"></a>
+<span class="sourceLineNo">8077</span>                                                short ox;<a name="line.8077"></a>
+<span class="sourceLineNo">8078</span>                                                ox = (short) (ibx == 0 ? 0 : iax / ibx);<a name="line.8078"></a>
+<span class="sourceLineNo">8079</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.8079"></a>
+<span class="sourceLineNo">8080</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.8080"></a>
+<span class="sourceLineNo">8081</span>                                                }<a name="line.8081"></a>
+<span class="sourceLineNo">8082</span>                                        }<a name="line.8082"></a>
+<span class="sourceLineNo">8083</span>                                }<a name="line.8083"></a>
+<span class="sourceLineNo">8084</span>                        } else {<a name="line.8084"></a>
+<span class="sourceLineNo">8085</span>                                if (it.isOutputDouble()) {<a name="line.8085"></a>
+<span class="sourceLineNo">8086</span>                                        while (it.hasNext()) {<a name="line.8086"></a>
+<span class="sourceLineNo">8087</span>                                                double iax = it.aDouble;<a name="line.8087"></a>
+<span class="sourceLineNo">8088</span>                                                double ibx = it.bDouble;<a name="line.8088"></a>
+<span class="sourceLineNo">8089</span>                                                short ox;<a name="line.8089"></a>
+<span class="sourceLineNo">8090</span>                                                ox = (short) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.8090"></a>
+<span class="sourceLineNo">8091</span>                                                oai16data[it.oIndex] = ox;<a name="line.8091"></a>
+<span class="sourceLineNo">8092</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8092"></a>
+<span class="sourceLineNo">8093</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.8093"></a>
+<span class="sourceLineNo">8094</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.8094"></a>
+<span class="sourceLineNo">8095</span>                                                        ox = (short) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.8095"></a>
+<span class="sourceLineNo">8096</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.8096"></a>
+<span class="sourceLineNo">8097</span>                                                }<a name="line.8097"></a>
+<span class="sourceLineNo">8098</span>                                        }<a name="line.8098"></a>
+<span class="sourceLineNo">8099</span>                                } else {<a name="line.8099"></a>
+<span class="sourceLineNo">8100</span>                                        while (it.hasNext()) {<a name="line.8100"></a>
+<span class="sourceLineNo">8101</span>                                                long iax = it.aLong;<a name="line.8101"></a>
+<span class="sourceLineNo">8102</span>                                                long ibx = it.bLong;<a name="line.8102"></a>
+<span class="sourceLineNo">8103</span>                                                short ox;<a name="line.8103"></a>
+<span class="sourceLineNo">8104</span>                                                ox = (short) (ibx == 0 ? 0 : iax / ibx);<a name="line.8104"></a>
+<span class="sourceLineNo">8105</span>                                                oai16data[it.oIndex] = ox;<a name="line.8105"></a>
+<span class="sourceLineNo">8106</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8106"></a>
+<span class="sourceLineNo">8107</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.8107"></a>
+<span class="sourceLineNo">8108</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.8108"></a>
+<span class="sourceLineNo">8109</span>                                                        ox = (short) (ibx == 0 ? 0 : iax / ibx);<a name="line.8109"></a>
+<span class="sourceLineNo">8110</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.8110"></a>
+<span class="sourceLineNo">8111</span>                                                }<a name="line.8111"></a>
+<span class="sourceLineNo">8112</span>                                        }<a name="line.8112"></a>
+<span class="sourceLineNo">8113</span>                                }<a name="line.8113"></a>
+<span class="sourceLineNo">8114</span>                        }<a name="line.8114"></a>
+<span class="sourceLineNo">8115</span>                        break;<a name="line.8115"></a>
+<span class="sourceLineNo">8116</span>                case Dataset.ARRAYINT64:<a name="line.8116"></a>
+<span class="sourceLineNo">8117</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.8117"></a>
+<span class="sourceLineNo">8118</span>                        if (is == 1) {<a name="line.8118"></a>
+<span class="sourceLineNo">8119</span>                                if (it.isOutputDouble()) {<a name="line.8119"></a>
+<span class="sourceLineNo">8120</span>                                        while (it.hasNext()) {<a name="line.8120"></a>
+<span class="sourceLineNo">8121</span>                                                final double iax = it.aDouble;<a name="line.8121"></a>
+<span class="sourceLineNo">8122</span>                                                final double ibx = it.bDouble;<a name="line.8122"></a>
+<span class="sourceLineNo">8123</span>                                                long ox;<a name="line.8123"></a>
+<span class="sourceLineNo">8124</span>                                                ox = toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.8124"></a>
+<span class="sourceLineNo">8125</span>                                                oai64data[it.oIndex] = ox;<a name="line.8125"></a>
+<span class="sourceLineNo">8126</span>                                        }<a name="line.8126"></a>
+<span class="sourceLineNo">8127</span>                                } else {<a name="line.8127"></a>
+<span class="sourceLineNo">8128</span>                                        while (it.hasNext()) {<a name="line.8128"></a>
+<span class="sourceLineNo">8129</span>                                                final long iax = it.aLong;<a name="line.8129"></a>
+<span class="sourceLineNo">8130</span>                                                final long ibx = it.bLong;<a name="line.8130"></a>
+<span class="sourceLineNo">8131</span>                                                long ox;<a name="line.8131"></a>
+<span class="sourceLineNo">8132</span>                                                ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8132"></a>
+<span class="sourceLineNo">8133</span>                                                oai64data[it.oIndex] = ox;<a name="line.8133"></a>
+<span class="sourceLineNo">8134</span>                                        }<a name="line.8134"></a>
+<span class="sourceLineNo">8135</span>                                }<a name="line.8135"></a>
+<span class="sourceLineNo">8136</span>                        } else if (as &lt; bs) {<a name="line.8136"></a>
+<span class="sourceLineNo">8137</span>                                if (it.isOutputDouble()) {<a name="line.8137"></a>
+<span class="sourceLineNo">8138</span>                                        while (it.hasNext()) {<a name="line.8138"></a>
+<span class="sourceLineNo">8139</span>                                                final double iax = it.aDouble;<a name="line.8139"></a>
+<span class="sourceLineNo">8140</span>                                                double ibx = it.bDouble;<a name="line.8140"></a>
+<span class="sourceLineNo">8141</span>                                                long ox;<a name="line.8141"></a>
+<span class="sourceLineNo">8142</span>                                                ox = toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.8142"></a>
+<span class="sourceLineNo">8143</span>                                                oai64data[it.oIndex] = ox;<a name="line.8143"></a>
+<span class="sourceLineNo">8144</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8144"></a>
+<span class="sourceLineNo">8145</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.8145"></a>
+<span class="sourceLineNo">8146</span>                                                        ox = toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.8146"></a>
+<span class="sourceLineNo">8147</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.8147"></a>
+<span class="sourceLineNo">8148</span>                                                }<a name="line.8148"></a>
+<span class="sourceLineNo">8149</span>                                        }<a name="line.8149"></a>
+<span class="sourceLineNo">8150</span>                                } else {<a name="line.8150"></a>
+<span class="sourceLineNo">8151</span>                                        while (it.hasNext()) {<a name="line.8151"></a>
+<span class="sourceLineNo">8152</span>                                                final long iax = it.aLong;<a name="line.8152"></a>
+<span class="sourceLineNo">8153</span>                                                long ibx = it.bLong;<a name="line.8153"></a>
+<span class="sourceLineNo">8154</span>                                                long ox;<a name="line.8154"></a>
+<span class="sourceLineNo">8155</span>                                                ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8155"></a>
+<span class="sourceLineNo">8156</span>                                                oai64data[it.oIndex] = ox;<a name="line.8156"></a>
+<span class="sourceLineNo">8157</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8157"></a>
+<span class="sourceLineNo">8158</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.8158"></a>
+<span class="sourceLineNo">8159</span>                                                        ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8159"></a>
+<span class="sourceLineNo">8160</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.8160"></a>
+<span class="sourceLineNo">8161</span>                                                }<a name="line.8161"></a>
+<span class="sourceLineNo">8162</span>                                        }<a name="line.8162"></a>
+<span class="sourceLineNo">8163</span>                                }<a name="line.8163"></a>
+<span class="sourceLineNo">8164</span>                        } else if (as &gt; bs) {<a name="line.8164"></a>
+<span class="sourceLineNo">8165</span>                                if (it.isOutputDouble()) {<a name="line.8165"></a>
+<span class="sourceLineNo">8166</span>                                        while (it.hasNext()) {<a name="line.8166"></a>
+<span class="sourceLineNo">8167</span>                                                double iax = it.aDouble;<a name="line.8167"></a>
+<span class="sourceLineNo">8168</span>                                                final double ibx = it.bDouble;<a name="line.8168"></a>
+<span class="sourceLineNo">8169</span>                                                long ox;<a name="line.8169"></a>
+<span class="sourceLineNo">8170</span>                                                ox = toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.8170"></a>
+<span class="sourceLineNo">8171</span>                                                oai64data[it.oIndex] = ox;<a name="line.8171"></a>
+<span class="sourceLineNo">8172</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8172"></a>
+<span class="sourceLineNo">8173</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.8173"></a>
+<span class="sourceLineNo">8174</span>                                                        ox = toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.8174"></a>
+<span class="sourceLineNo">8175</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.8175"></a>
+<span class="sourceLineNo">8176</span>                                                }<a name="line.8176"></a>
+<span class="sourceLineNo">8177</span>                                        }<a name="line.8177"></a>
+<span class="sourceLineNo">8178</span>                                } else {<a name="line.8178"></a>
+<span class="sourceLineNo">8179</span>                                        while (it.hasNext()) {<a name="line.8179"></a>
+<span class="sourceLineNo">8180</span>                                                long iax = it.aLong;<a name="line.8180"></a>
+<span class="sourceLineNo">8181</span>                                                final long ibx = it.bLong;<a name="line.8181"></a>
+<span class="sourceLineNo">8182</span>                                                long ox;<a name="line.8182"></a>
+<span class="sourceLineNo">8183</span>                                                ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8183"></a>
+<span class="sourceLineNo">8184</span>                                                oai64data[it.oIndex] = ox;<a name="line.8184"></a>
+<span class="sourceLineNo">8185</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8185"></a>
+<span class="sourceLineNo">8186</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.8186"></a>
+<span class="sourceLineNo">8187</span>                                                        ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8187"></a>
+<span class="sourceLineNo">8188</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.8188"></a>
+<span class="sourceLineNo">8189</span>                                                }<a name="line.8189"></a>
+<span class="sourceLineNo">8190</span>                                        }<a name="line.8190"></a>
+<span class="sourceLineNo">8191</span>                                }<a name="line.8191"></a>
+<span class="sourceLineNo">8192</span>                        } else if (as == 1) {<a name="line.8192"></a>
+<span class="sourceLineNo">8193</span>                                if (it.isOutputDouble()) {<a name="line.8193"></a>
+<span class="sourceLineNo">8194</span>                                        while (it.hasNext()) {<a name="line.8194"></a>
+<span class="sourceLineNo">8195</span>                                                final double iax = it.aDouble;<a name="line.8195"></a>
+<span class="sourceLineNo">8196</span>                                                final double ibx = it.bDouble;<a name="line.8196"></a>
+<span class="sourceLineNo">8197</span>                                                long ox;<a name="line.8197"></a>
+<span class="sourceLineNo">8198</span>                                                ox = toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.8198"></a>
+<span class="sourceLineNo">8199</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.8199"></a>
+<span class="sourceLineNo">8200</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.8200"></a>
+<span class="sourceLineNo">8201</span>                                                }<a name="line.8201"></a>
+<span class="sourceLineNo">8202</span>                                        }<a name="line.8202"></a>
+<span class="sourceLineNo">8203</span>                                } else {<a name="line.8203"></a>
+<span class="sourceLineNo">8204</span>                                        while (it.hasNext()) {<a name="line.8204"></a>
+<span class="sourceLineNo">8205</span>                                                final long iax = it.aLong;<a name="line.8205"></a>
+<span class="sourceLineNo">8206</span>                                                final long ibx = it.bLong;<a name="line.8206"></a>
+<span class="sourceLineNo">8207</span>                                                long ox;<a name="line.8207"></a>
+<span class="sourceLineNo">8208</span>                                                ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8208"></a>
+<span class="sourceLineNo">8209</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.8209"></a>
+<span class="sourceLineNo">8210</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.8210"></a>
+<span class="sourceLineNo">8211</span>                                                }<a name="line.8211"></a>
+<span class="sourceLineNo">8212</span>                                        }<a name="line.8212"></a>
+<span class="sourceLineNo">8213</span>                                }<a name="line.8213"></a>
+<span class="sourceLineNo">8214</span>                        } else {<a name="line.8214"></a>
+<span class="sourceLineNo">8215</span>                                if (it.isOutputDouble()) {<a name="line.8215"></a>
+<span class="sourceLineNo">8216</span>                                        while (it.hasNext()) {<a name="line.8216"></a>
+<span class="sourceLineNo">8217</span>                                                double iax = it.aDouble;<a name="line.8217"></a>
+<span class="sourceLineNo">8218</span>                                                double ibx = it.bDouble;<a name="line.8218"></a>
+<span class="sourceLineNo">8219</span>                                                long ox;<a name="line.8219"></a>
+<span class="sourceLineNo">8220</span>                                                ox = toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.8220"></a>
+<span class="sourceLineNo">8221</span>                                                oai64data[it.oIndex] = ox;<a name="line.8221"></a>
+<span class="sourceLineNo">8222</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8222"></a>
+<span class="sourceLineNo">8223</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.8223"></a>
+<span class="sourceLineNo">8224</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.8224"></a>
+<span class="sourceLineNo">8225</span>                                                        ox = toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.8225"></a>
+<span class="sourceLineNo">8226</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.8226"></a>
+<span class="sourceLineNo">8227</span>                                                }<a name="line.8227"></a>
+<span class="sourceLineNo">8228</span>                                        }<a name="line.8228"></a>
+<span class="sourceLineNo">8229</span>                                } else {<a name="line.8229"></a>
+<span class="sourceLineNo">8230</span>                                        while (it.hasNext()) {<a name="line.8230"></a>
+<span class="sourceLineNo">8231</span>                                                long iax = it.aLong;<a name="line.8231"></a>
+<span class="sourceLineNo">8232</span>                                                long ibx = it.bLong;<a name="line.8232"></a>
+<span class="sourceLineNo">8233</span>                                                long ox;<a name="line.8233"></a>
+<span class="sourceLineNo">8234</span>                                                ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8234"></a>
+<span class="sourceLineNo">8235</span>                                                oai64data[it.oIndex] = ox;<a name="line.8235"></a>
+<span class="sourceLineNo">8236</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8236"></a>
+<span class="sourceLineNo">8237</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.8237"></a>
+<span class="sourceLineNo">8238</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.8238"></a>
+<span class="sourceLineNo">8239</span>                                                        ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8239"></a>
+<span class="sourceLineNo">8240</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.8240"></a>
+<span class="sourceLineNo">8241</span>                                                }<a name="line.8241"></a>
+<span class="sourceLineNo">8242</span>                                        }<a name="line.8242"></a>
+<span class="sourceLineNo">8243</span>                                }<a name="line.8243"></a>
+<span class="sourceLineNo">8244</span>                        }<a name="line.8244"></a>
+<span class="sourceLineNo">8245</span>                        break;<a name="line.8245"></a>
+<span class="sourceLineNo">8246</span>                case Dataset.ARRAYINT32:<a name="line.8246"></a>
+<span class="sourceLineNo">8247</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.8247"></a>
+<span class="sourceLineNo">8248</span>                        if (is == 1) {<a name="line.8248"></a>
+<span class="sourceLineNo">8249</span>                                if (it.isOutputDouble()) {<a name="line.8249"></a>
+<span class="sourceLineNo">8250</span>                                        while (it.hasNext()) {<a name="line.8250"></a>
+<span class="sourceLineNo">8251</span>                                                final double iax = it.aDouble;<a name="line.8251"></a>
+<span class="sourceLineNo">8252</span>                                                final double ibx = it.bDouble;<a name="line.8252"></a>
+<span class="sourceLineNo">8253</span>                                                int ox;<a name="line.8253"></a>
+<span class="sourceLineNo">8254</span>                                                ox = (int) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.8254"></a>
+<span class="sourceLineNo">8255</span>                                                oai32data[it.oIndex] = ox;<a name="line.8255"></a>
+<span class="sourceLineNo">8256</span>                                        }<a name="line.8256"></a>
+<span class="sourceLineNo">8257</span>                                } else {<a name="line.8257"></a>
+<span class="sourceLineNo">8258</span>                                        while (it.hasNext()) {<a name="line.8258"></a>
+<span class="sourceLineNo">8259</span>                                                final long iax = it.aLong;<a name="line.8259"></a>
+<span class="sourceLineNo">8260</span>                                                final long ibx = it.bLong;<a name="line.8260"></a>
+<span class="sourceLineNo">8261</span>                                                int ox;<a name="line.8261"></a>
+<span class="sourceLineNo">8262</span>                                                ox = (int) (ibx == 0 ? 0 : iax / ibx);<a name="line.8262"></a>
+<span class="sourceLineNo">8263</span>                                                oai32data[it.oIndex] = ox;<a name="line.8263"></a>
+<span class="sourceLineNo">8264</span>                                        }<a name="line.8264"></a>
+<span class="sourceLineNo">8265</span>                                }<a name="line.8265"></a>
+<span class="sourceLineNo">8266</span>                        } else if (as &lt; bs) {<a name="line.8266"></a>
+<span class="sourceLineNo">8267</span>                                if (it.isOutputDouble()) {<a name="line.8267"></a>
+<span class="sourceLineNo">8268</span>                                        while (it.hasNext()) {<a name="line.8268"></a>
+<span class="sourceLineNo">8269</span>                                                final double iax = it.aDouble;<a name="line.8269"></a>
+<span class="sourceLineNo">8270</span>                                                double ibx = it.bDouble;<a name="line.8270"></a>
+<span class="sourceLineNo">8271</span>                                                int ox;<a name="line.8271"></a>
+<span class="sourceLineNo">8272</span>                                                ox = (int) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.8272"></a>
+<span class="sourceLineNo">8273</span>                                                oai32data[it.oIndex] = ox;<a name="line.8273"></a>
+<span class="sourceLineNo">8274</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8274"></a>
+<span class="sourceLineNo">8275</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.8275"></a>
+<span class="sourceLineNo">8276</span>                                                        ox = (int) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.8276"></a>
+<span class="sourceLineNo">8277</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.8277"></a>
+<span class="sourceLineNo">8278</span>                                                }<a name="line.8278"></a>
+<span class="sourceLineNo">8279</span>                                        }<a name="line.8279"></a>
+<span class="sourceLineNo">8280</span>                                } else {<a name="line.8280"></a>
+<span class="sourceLineNo">8281</span>                                        while (it.hasNext()) {<a name="line.8281"></a>
+<span class="sourceLineNo">8282</span>                                                final long iax = it.aLong;<a name="line.8282"></a>
+<span class="sourceLineNo">8283</span>                                                long ibx = it.bLong;<a name="line.8283"></a>
+<span class="sourceLineNo">8284</span>                                                int ox;<a name="line.8284"></a>
+<span class="sourceLineNo">8285</span>                                                ox = (int) (ibx == 0 ? 0 : iax / ibx);<a name="line.8285"></a>
+<span class="sourceLineNo">8286</span>                                                oai32data[it.oIndex] = ox;<a name="line.8286"></a>
+<span class="sourceLineNo">8287</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8287"></a>
+<span class="sourceLineNo">8288</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.8288"></a>
+<span class="sourceLineNo">8289</span>                                                        ox = (int) (ibx == 0 ? 0 : iax / ibx);<a name="line.8289"></a>
+<span class="sourceLineNo">8290</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.8290"></a>
+<span class="sourceLineNo">8291</span>                                                }<a name="line.8291"></a>
+<span class="sourceLineNo">8292</span>                                        }<a name="line.8292"></a>
+<span class="sourceLineNo">8293</span>                                }<a name="line.8293"></a>
+<span class="sourceLineNo">8294</span>                        } else if (as &gt; bs) {<a name="line.8294"></a>
+<span class="sourceLineNo">8295</span>                                if (it.isOutputDouble()) {<a name="line.8295"></a>
+<span class="sourceLineNo">8296</span>                                        while (it.hasNext()) {<a name="line.8296"></a>
+<span class="sourceLineNo">8297</span>                                                double iax = it.aDouble;<a name="line.8297"></a>
+<span class="sourceLineNo">8298</span>                                                final double ibx = it.bDouble;<a name="line.8298"></a>
+<span class="sourceLineNo">8299</span>                                                int ox;<a name="line.8299"></a>
+<span class="sourceLineNo">8300</span>                                                ox = (int) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.8300"></a>
+<span class="sourceLineNo">8301</span>                                                oai32data[it.oIndex] = ox;<a name="line.8301"></a>
+<span class="sourceLineNo">8302</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8302"></a>
+<span class="sourceLineNo">8303</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.8303"></a>
+<span class="sourceLineNo">8304</span>                                                        ox = (int) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.8304"></a>
+<span class="sourceLineNo">8305</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.8305"></a>
+<span class="sourceLineNo">8306</span>                                                }<a name="line.8306"></a>
+<span class="sourceLineNo">8307</span>                                        }<a name="line.8307"></a>
+<span class="sourceLineNo">8308</span>                                } else {<a name="line.8308"></a>
+<span class="sourceLineNo">8309</span>                                        while (it.hasNext()) {<a name="line.8309"></a>
+<span class="sourceLineNo">8310</span>                                                long iax = it.aLong;<a name="line.8310"></a>
+<span class="sourceLineNo">8311</span>                                                final long ibx = it.bLong;<a name="line.8311"></a>
+<span class="sourceLineNo">8312</span>                                                int ox;<a name="line.8312"></a>
+<span class="sourceLineNo">8313</span>                                                ox = (int) (ibx == 0 ? 0 : iax / ibx);<a name="line.8313"></a>
+<span class="sourceLineNo">8314</span>                                                oai32data[it.oIndex] = ox;<a name="line.8314"></a>
+<span class="sourceLineNo">8315</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8315"></a>
+<span class="sourceLineNo">8316</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.8316"></a>
+<span class="sourceLineNo">8317</span>                                                        ox = (int) (ibx == 0 ? 0 : iax / ibx);<a name="line.8317"></a>
+<span class="sourceLineNo">8318</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.8318"></a>
+<span class="sourceLineNo">8319</span>                                                }<a name="line.8319"></a>
+<span class="sourceLineNo">8320</span>                                        }<a name="line.8320"></a>
+<span class="sourceLineNo">8321</span>                                }<a name="line.8321"></a>
+<span class="sourceLineNo">8322</span>                        } else if (as == 1) {<a name="line.8322"></a>
+<span class="sourceLineNo">8323</span>                                if (it.isOutputDouble()) {<a name="line.8323"></a>
+<span class="sourceLineNo">8324</span>                                        while (it.hasNext()) {<a name="line.8324"></a>
+<span class="sourceLineNo">8325</span>                                                final double iax = it.aDouble;<a name="line.8325"></a>
+<span class="sourceLineNo">8326</span>                                                final double ibx = it.bDouble;<a name="line.8326"></a>
+<span class="sourceLineNo">8327</span>                                                int ox;<a name="line.8327"></a>
+<span class="sourceLineNo">8328</span>                                                ox = (int) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.8328"></a>
+<span class="sourceLineNo">8329</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.8329"></a>
+<span class="sourceLineNo">8330</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.8330"></a>
+<span class="sourceLineNo">8331</span>                                                }<a name="line.8331"></a>
+<span class="sourceLineNo">8332</span>                                        }<a name="line.8332"></a>
+<span class="sourceLineNo">8333</span>                                } else {<a name="line.8333"></a>
+<span class="sourceLineNo">8334</span>                                        while (it.hasNext()) {<a name="line.8334"></a>
+<span class="sourceLineNo">8335</span>                                                final long iax = it.aLong;<a name="line.8335"></a>
+<span class="sourceLineNo">8336</span>                                                final long ibx = it.bLong;<a name="line.8336"></a>
+<span class="sourceLineNo">8337</span>                                                int ox;<a name="line.8337"></a>
+<span class="sourceLineNo">8338</span>                                                ox = (int) (ibx == 0 ? 0 : iax / ibx);<a name="line.8338"></a>
+<span class="sourceLineNo">8339</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.8339"></a>
+<span class="sourceLineNo">8340</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.8340"></a>
+<span class="sourceLineNo">8341</span>                                                }<a name="line.8341"></a>
+<span class="sourceLineNo">8342</span>                                        }<a name="line.8342"></a>
+<span class="sourceLineNo">8343</span>                                }<a name="line.8343"></a>
+<span class="sourceLineNo">8344</span>                        } else {<a name="line.8344"></a>
+<span class="sourceLineNo">8345</span>                                if (it.isOutputDouble()) {<a name="line.8345"></a>
+<span class="sourceLineNo">8346</span>                                        while (it.hasNext()) {<a name="line.8346"></a>
+<span class="sourceLineNo">8347</span>                                                double iax = it.aDouble;<a name="line.8347"></a>
+<span class="sourceLineNo">8348</span>                                                double ibx = it.bDouble;<a name="line.8348"></a>
+<span class="sourceLineNo">8349</span>                                                int ox;<a name="line.8349"></a>
+<span class="sourceLineNo">8350</span>                                                ox = (int) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.8350"></a>
+<span class="sourceLineNo">8351</span>                                                oai32data[it.oIndex] = ox;<a name="line.8351"></a>
+<span class="sourceLineNo">8352</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8352"></a>
+<span class="sourceLineNo">8353</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.8353"></a>
+<span class="sourceLineNo">8354</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.8354"></a>
+<span class="sourceLineNo">8355</span>                                                        ox = (int) toLong(ibx == 0 ? 0 : iax / ibx);<a name="line.8355"></a>
+<span class="sourceLineNo">8356</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.8356"></a>
+<span class="sourceLineNo">8357</span>                                                }<a name="line.8357"></a>
+<span class="sourceLineNo">8358</span>                                        }<a name="line.8358"></a>
+<span class="sourceLineNo">8359</span>                                } else {<a name="line.8359"></a>
+<span class="sourceLineNo">8360</span>                                        while (it.hasNext()) {<a name="line.8360"></a>
+<span class="sourceLineNo">8361</span>                                                long iax = it.aLong;<a name="line.8361"></a>
+<span class="sourceLineNo">8362</span>                                                long ibx = it.bLong;<a name="line.8362"></a>
+<span class="sourceLineNo">8363</span>                                                int ox;<a name="line.8363"></a>
+<span class="sourceLineNo">8364</span>                                                ox = (int) (ibx == 0 ? 0 : iax / ibx);<a name="line.8364"></a>
+<span class="sourceLineNo">8365</span>                                                oai32data[it.oIndex] = ox;<a name="line.8365"></a>
+<span class="sourceLineNo">8366</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8366"></a>
+<span class="sourceLineNo">8367</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.8367"></a>
+<span class="sourceLineNo">8368</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.8368"></a>
+<span class="sourceLineNo">8369</span>                                                        ox = (int) (ibx == 0 ? 0 : iax / ibx);<a name="line.8369"></a>
+<span class="sourceLineNo">8370</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.8370"></a>
+<span class="sourceLineNo">8371</span>                                                }<a name="line.8371"></a>
+<span class="sourceLineNo">8372</span>                                        }<a name="line.8372"></a>
+<span class="sourceLineNo">8373</span>                                }<a name="line.8373"></a>
+<span class="sourceLineNo">8374</span>                        }<a name="line.8374"></a>
+<span class="sourceLineNo">8375</span>                        break;<a name="line.8375"></a>
+<span class="sourceLineNo">8376</span>                case Dataset.FLOAT32:<a name="line.8376"></a>
+<span class="sourceLineNo">8377</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.8377"></a>
+<span class="sourceLineNo">8378</span>                        if (it.isOutputDouble()) {<a name="line.8378"></a>
+<span class="sourceLineNo">8379</span>                                while (it.hasNext()) {<a name="line.8379"></a>
+<span class="sourceLineNo">8380</span>                                        final double iax = it.aDouble;<a name="line.8380"></a>
+<span class="sourceLineNo">8381</span>                                        final double ibx = it.bDouble;<a name="line.8381"></a>
+<span class="sourceLineNo">8382</span>                                        float ox;<a name="line.8382"></a>
+<span class="sourceLineNo">8383</span>                                        ox = (float) (ibx == 0 ? 0 : iax / ibx);<a name="line.8383"></a>
+<span class="sourceLineNo">8384</span>                                        of32data[it.oIndex] = ox;<a name="line.8384"></a>
+<span class="sourceLineNo">8385</span>                                }<a name="line.8385"></a>
+<span class="sourceLineNo">8386</span>                        } else {<a name="line.8386"></a>
+<span class="sourceLineNo">8387</span>                                while (it.hasNext()) {<a name="line.8387"></a>
+<span class="sourceLineNo">8388</span>                                        final long iax = it.aLong;<a name="line.8388"></a>
+<span class="sourceLineNo">8389</span>                                        final long ibx = it.bLong;<a name="line.8389"></a>
+<span class="sourceLineNo">8390</span>                                        float ox;<a name="line.8390"></a>
+<span class="sourceLineNo">8391</span>                                        ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8391"></a>
+<span class="sourceLineNo">8392</span>                                        of32data[it.oIndex] = ox;<a name="line.8392"></a>
+<span class="sourceLineNo">8393</span>                                }<a name="line.8393"></a>
+<span class="sourceLineNo">8394</span>                        }<a name="line.8394"></a>
+<span class="sourceLineNo">8395</span>                        break;<a name="line.8395"></a>
+<span class="sourceLineNo">8396</span>                case Dataset.FLOAT64:<a name="line.8396"></a>
+<span class="sourceLineNo">8397</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.8397"></a>
+<span class="sourceLineNo">8398</span>                        if (it.isOutputDouble()) {<a name="line.8398"></a>
+<span class="sourceLineNo">8399</span>                                while (it.hasNext()) {<a name="line.8399"></a>
+<span class="sourceLineNo">8400</span>                                        final double iax = it.aDouble;<a name="line.8400"></a>
+<span class="sourceLineNo">8401</span>                                        final double ibx = it.bDouble;<a name="line.8401"></a>
+<span class="sourceLineNo">8402</span>                                        double ox;<a name="line.8402"></a>
+<span class="sourceLineNo">8403</span>                                        ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8403"></a>
+<span class="sourceLineNo">8404</span>                                        of64data[it.oIndex] = ox;<a name="line.8404"></a>
+<span class="sourceLineNo">8405</span>                                }<a name="line.8405"></a>
+<span class="sourceLineNo">8406</span>                        } else {<a name="line.8406"></a>
+<span class="sourceLineNo">8407</span>                                while (it.hasNext()) {<a name="line.8407"></a>
+<span class="sourceLineNo">8408</span>                                        final long iax = it.aLong;<a name="line.8408"></a>
+<span class="sourceLineNo">8409</span>                                        final long ibx = it.bLong;<a name="line.8409"></a>
+<span class="sourceLineNo">8410</span>                                        double ox;<a name="line.8410"></a>
+<span class="sourceLineNo">8411</span>                                        ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8411"></a>
+<span class="sourceLineNo">8412</span>                                        of64data[it.oIndex] = ox;<a name="line.8412"></a>
+<span class="sourceLineNo">8413</span>                                }<a name="line.8413"></a>
+<span class="sourceLineNo">8414</span>                        }<a name="line.8414"></a>
+<span class="sourceLineNo">8415</span>                        break;<a name="line.8415"></a>
+<span class="sourceLineNo">8416</span>                case Dataset.ARRAYFLOAT32:<a name="line.8416"></a>
+<span class="sourceLineNo">8417</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.8417"></a>
+<span class="sourceLineNo">8418</span>                        if (is == 1) {<a name="line.8418"></a>
+<span class="sourceLineNo">8419</span>                                if (it.isOutputDouble()) {<a name="line.8419"></a>
+<span class="sourceLineNo">8420</span>                                        while (it.hasNext()) {<a name="line.8420"></a>
+<span class="sourceLineNo">8421</span>                                                final double iax = it.aDouble;<a name="line.8421"></a>
+<span class="sourceLineNo">8422</span>                                                final double ibx = it.bDouble;<a name="line.8422"></a>
+<span class="sourceLineNo">8423</span>                                                float ox;<a name="line.8423"></a>
+<span class="sourceLineNo">8424</span>                                                ox = (float) (ibx == 0 ? 0 : iax / ibx);<a name="line.8424"></a>
+<span class="sourceLineNo">8425</span>                                                oaf32data[it.oIndex] = ox;<a name="line.8425"></a>
+<span class="sourceLineNo">8426</span>                                        }<a name="line.8426"></a>
+<span class="sourceLineNo">8427</span>                                } else {<a name="line.8427"></a>
+<span class="sourceLineNo">8428</span>                                        while (it.hasNext()) {<a name="line.8428"></a>
+<span class="sourceLineNo">8429</span>                                                final long iax = it.aLong;<a name="line.8429"></a>
+<span class="sourceLineNo">8430</span>                                                final long ibx = it.bLong;<a name="line.8430"></a>
+<span class="sourceLineNo">8431</span>                                                float ox;<a name="line.8431"></a>
+<span class="sourceLineNo">8432</span>                                                ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8432"></a>
+<span class="sourceLineNo">8433</span>                                                oaf32data[it.oIndex] = ox;<a name="line.8433"></a>
+<span class="sourceLineNo">8434</span>                                        }<a name="line.8434"></a>
+<span class="sourceLineNo">8435</span>                                }<a name="line.8435"></a>
+<span class="sourceLineNo">8436</span>                        } else if (as &lt; bs) {<a name="line.8436"></a>
+<span class="sourceLineNo">8437</span>                                if (it.isOutputDouble()) {<a name="line.8437"></a>
+<span class="sourceLineNo">8438</span>                                        while (it.hasNext()) {<a name="line.8438"></a>
+<span class="sourceLineNo">8439</span>                                                final double iax = it.aDouble;<a name="line.8439"></a>
+<span class="sourceLineNo">8440</span>                                                double ibx = it.bDouble;<a name="line.8440"></a>
+<span class="sourceLineNo">8441</span>                                                float ox;<a name="line.8441"></a>
+<span class="sourceLineNo">8442</span>                                                ox = (float) (ibx == 0 ? 0 : iax / ibx);<a name="line.8442"></a>
+<span class="sourceLineNo">8443</span>                                                oaf32data[it.oIndex] = ox;<a name="line.8443"></a>
+<span class="sourceLineNo">8444</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8444"></a>
+<span class="sourceLineNo">8445</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.8445"></a>
+<span class="sourceLineNo">8446</span>                                                        ox = (float) (ibx == 0 ? 0 : iax / ibx);<a name="line.8446"></a>
+<span class="sourceLineNo">8447</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.8447"></a>
+<span class="sourceLineNo">8448</span>                                                }<a name="line.8448"></a>
+<span class="sourceLineNo">8449</span>                                        }<a name="line.8449"></a>
+<span class="sourceLineNo">8450</span>                                } else {<a name="line.8450"></a>
+<span class="sourceLineNo">8451</span>                                        while (it.hasNext()) {<a name="line.8451"></a>
+<span class="sourceLineNo">8452</span>                                                final long iax = it.aLong;<a name="line.8452"></a>
+<span class="sourceLineNo">8453</span>                                                long ibx = it.bLong;<a name="line.8453"></a>
+<span class="sourceLineNo">8454</span>                                                float ox;<a name="line.8454"></a>
+<span class="sourceLineNo">8455</span>                                                ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8455"></a>
+<span class="sourceLineNo">8456</span>                                                oaf32data[it.oIndex] = ox;<a name="line.8456"></a>
+<span class="sourceLineNo">8457</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8457"></a>
+<span class="sourceLineNo">8458</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.8458"></a>
+<span class="sourceLineNo">8459</span>                                                        ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8459"></a>
+<span class="sourceLineNo">8460</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.8460"></a>
+<span class="sourceLineNo">8461</span>                                                }<a name="line.8461"></a>
+<span class="sourceLineNo">8462</span>                                        }<a name="line.8462"></a>
+<span class="sourceLineNo">8463</span>                                }<a name="line.8463"></a>
+<span class="sourceLineNo">8464</span>                        } else if (as &gt; bs) {<a name="line.8464"></a>
+<span class="sourceLineNo">8465</span>                                if (it.isOutputDouble()) {<a name="line.8465"></a>
+<span class="sourceLineNo">8466</span>                                        while (it.hasNext()) {<a name="line.8466"></a>
+<span class="sourceLineNo">8467</span>                                                double iax = it.aDouble;<a name="line.8467"></a>
+<span class="sourceLineNo">8468</span>                                                final double ibx = it.bDouble;<a name="line.8468"></a>
+<span class="sourceLineNo">8469</span>                                                float ox;<a name="line.8469"></a>
+<span class="sourceLineNo">8470</span>                                                ox = (float) (ibx == 0 ? 0 : iax / ibx);<a name="line.8470"></a>
+<span class="sourceLineNo">8471</span>                                                oaf32data[it.oIndex] = ox;<a name="line.8471"></a>
+<span class="sourceLineNo">8472</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8472"></a>
+<span class="sourceLineNo">8473</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.8473"></a>
+<span class="sourceLineNo">8474</span>                                                        ox = (float) (ibx == 0 ? 0 : iax / ibx);<a name="line.8474"></a>
+<span class="sourceLineNo">8475</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.8475"></a>
+<span class="sourceLineNo">8476</span>                                                }<a name="line.8476"></a>
+<span class="sourceLineNo">8477</span>                                        }<a name="line.8477"></a>
+<span class="sourceLineNo">8478</span>                                } else {<a name="line.8478"></a>
+<span class="sourceLineNo">8479</span>                                        while (it.hasNext()) {<a name="line.8479"></a>
+<span class="sourceLineNo">8480</span>                                                long iax = it.aLong;<a name="line.8480"></a>
+<span class="sourceLineNo">8481</span>                                                final long ibx = it.bLong;<a name="line.8481"></a>
+<span class="sourceLineNo">8482</span>                                                float ox;<a name="line.8482"></a>
+<span class="sourceLineNo">8483</span>                                                ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8483"></a>
+<span class="sourceLineNo">8484</span>                                                oaf32data[it.oIndex] = ox;<a name="line.8484"></a>
+<span class="sourceLineNo">8485</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8485"></a>
+<span class="sourceLineNo">8486</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.8486"></a>
+<span class="sourceLineNo">8487</span>                                                        ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8487"></a>
+<span class="sourceLineNo">8488</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.8488"></a>
+<span class="sourceLineNo">8489</span>                                                }<a name="line.8489"></a>
+<span class="sourceLineNo">8490</span>                                        }<a name="line.8490"></a>
+<span class="sourceLineNo">8491</span>                                }<a name="line.8491"></a>
+<span class="sourceLineNo">8492</span>                        } else if (as == 1) {<a name="line.8492"></a>
+<span class="sourceLineNo">8493</span>                                if (it.isOutputDouble()) {<a name="line.8493"></a>
+<span class="sourceLineNo">8494</span>                                        while (it.hasNext()) {<a name="line.8494"></a>
+<span class="sourceLineNo">8495</span>                                                final double iax = it.aDouble;<a name="line.8495"></a>
+<span class="sourceLineNo">8496</span>                                                final double ibx = it.bDouble;<a name="line.8496"></a>
+<span class="sourceLineNo">8497</span>                                                float ox;<a name="line.8497"></a>
+<span class="sourceLineNo">8498</span>                                                ox = (float) (ibx == 0 ? 0 : iax / ibx);<a name="line.8498"></a>
+<span class="sourceLineNo">8499</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.8499"></a>
+<span class="sourceLineNo">8500</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.8500"></a>
+<span class="sourceLineNo">8501</span>                                                }<a name="line.8501"></a>
+<span class="sourceLineNo">8502</span>                                        }<a name="line.8502"></a>
+<span class="sourceLineNo">8503</span>                                } else {<a name="line.8503"></a>
+<span class="sourceLineNo">8504</span>                                        while (it.hasNext()) {<a name="line.8504"></a>
+<span class="sourceLineNo">8505</span>                                                final long iax = it.aLong;<a name="line.8505"></a>
+<span class="sourceLineNo">8506</span>                                                final long ibx = it.bLong;<a name="line.8506"></a>
+<span class="sourceLineNo">8507</span>                                                float ox;<a name="line.8507"></a>
+<span class="sourceLineNo">8508</span>                                                ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8508"></a>
+<span class="sourceLineNo">8509</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.8509"></a>
+<span class="sourceLineNo">8510</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.8510"></a>
+<span class="sourceLineNo">8511</span>                                                }<a name="line.8511"></a>
+<span class="sourceLineNo">8512</span>                                        }<a name="line.8512"></a>
+<span class="sourceLineNo">8513</span>                                }<a name="line.8513"></a>
+<span class="sourceLineNo">8514</span>                        } else {<a name="line.8514"></a>
+<span class="sourceLineNo">8515</span>                                if (it.isOutputDouble()) {<a name="line.8515"></a>
+<span class="sourceLineNo">8516</span>                                        while (it.hasNext()) {<a name="line.8516"></a>
+<span class="sourceLineNo">8517</span>                                                double iax = it.aDouble;<a name="line.8517"></a>
+<span class="sourceLineNo">8518</span>                                                double ibx = it.bDouble;<a name="line.8518"></a>
+<span class="sourceLineNo">8519</span>                                                float ox;<a name="line.8519"></a>
+<span class="sourceLineNo">8520</span>                                                ox = (float) (ibx == 0 ? 0 : iax / ibx);<a name="line.8520"></a>
+<span class="sourceLineNo">8521</span>                                                oaf32data[it.oIndex] = ox;<a name="line.8521"></a>
+<span class="sourceLineNo">8522</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8522"></a>
+<span class="sourceLineNo">8523</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.8523"></a>
+<span class="sourceLineNo">8524</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.8524"></a>
+<span class="sourceLineNo">8525</span>                                                        ox = (float) (ibx == 0 ? 0 : iax / ibx);<a name="line.8525"></a>
+<span class="sourceLineNo">8526</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.8526"></a>
+<span class="sourceLineNo">8527</span>                                                }<a name="line.8527"></a>
+<span class="sourceLineNo">8528</span>                                        }<a name="line.8528"></a>
+<span class="sourceLineNo">8529</span>                                } else {<a name="line.8529"></a>
+<span class="sourceLineNo">8530</span>                                        while (it.hasNext()) {<a name="line.8530"></a>
+<span class="sourceLineNo">8531</span>                                                long iax = it.aLong;<a name="line.8531"></a>
+<span class="sourceLineNo">8532</span>                                                long ibx = it.bLong;<a name="line.8532"></a>
+<span class="sourceLineNo">8533</span>                                                float ox;<a name="line.8533"></a>
+<span class="sourceLineNo">8534</span>                                                ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8534"></a>
+<span class="sourceLineNo">8535</span>                                                oaf32data[it.oIndex] = ox;<a name="line.8535"></a>
+<span class="sourceLineNo">8536</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8536"></a>
+<span class="sourceLineNo">8537</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.8537"></a>
+<span class="sourceLineNo">8538</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.8538"></a>
+<span class="sourceLineNo">8539</span>                                                        ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8539"></a>
+<span class="sourceLineNo">8540</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.8540"></a>
+<span class="sourceLineNo">8541</span>                                                }<a name="line.8541"></a>
+<span class="sourceLineNo">8542</span>                                        }<a name="line.8542"></a>
+<span class="sourceLineNo">8543</span>                                }<a name="line.8543"></a>
+<span class="sourceLineNo">8544</span>                        }<a name="line.8544"></a>
+<span class="sourceLineNo">8545</span>                        break;<a name="line.8545"></a>
+<span class="sourceLineNo">8546</span>                case Dataset.ARRAYFLOAT64:<a name="line.8546"></a>
+<span class="sourceLineNo">8547</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.8547"></a>
+<span class="sourceLineNo">8548</span>                        if (is == 1) {<a name="line.8548"></a>
+<span class="sourceLineNo">8549</span>                                if (it.isOutputDouble()) {<a name="line.8549"></a>
+<span class="sourceLineNo">8550</span>                                        while (it.hasNext()) {<a name="line.8550"></a>
+<span class="sourceLineNo">8551</span>                                                final double iax = it.aDouble;<a name="line.8551"></a>
+<span class="sourceLineNo">8552</span>                                                final double ibx = it.bDouble;<a name="line.8552"></a>
+<span class="sourceLineNo">8553</span>                                                double ox;<a name="line.8553"></a>
+<span class="sourceLineNo">8554</span>                                                ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8554"></a>
+<span class="sourceLineNo">8555</span>                                                oaf64data[it.oIndex] = ox;<a name="line.8555"></a>
+<span class="sourceLineNo">8556</span>                                        }<a name="line.8556"></a>
+<span class="sourceLineNo">8557</span>                                } else {<a name="line.8557"></a>
+<span class="sourceLineNo">8558</span>                                        while (it.hasNext()) {<a name="line.8558"></a>
+<span class="sourceLineNo">8559</span>                                                final long iax = it.aLong;<a name="line.8559"></a>
+<span class="sourceLineNo">8560</span>                                                final long ibx = it.bLong;<a name="line.8560"></a>
+<span class="sourceLineNo">8561</span>                                                double ox;<a name="line.8561"></a>
+<span class="sourceLineNo">8562</span>                                                ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8562"></a>
+<span class="sourceLineNo">8563</span>                                                oaf64data[it.oIndex] = ox;<a name="line.8563"></a>
+<span class="sourceLineNo">8564</span>                                        }<a name="line.8564"></a>
+<span class="sourceLineNo">8565</span>                                }<a name="line.8565"></a>
+<span class="sourceLineNo">8566</span>                        } else if (as &lt; bs) {<a name="line.8566"></a>
+<span class="sourceLineNo">8567</span>                                if (it.isOutputDouble()) {<a name="line.8567"></a>
+<span class="sourceLineNo">8568</span>                                        while (it.hasNext()) {<a name="line.8568"></a>
+<span class="sourceLineNo">8569</span>                                                final double iax = it.aDouble;<a name="line.8569"></a>
+<span class="sourceLineNo">8570</span>                                                double ibx = it.bDouble;<a name="line.8570"></a>
+<span class="sourceLineNo">8571</span>                                                double ox;<a name="line.8571"></a>
+<span class="sourceLineNo">8572</span>                                                ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8572"></a>
+<span class="sourceLineNo">8573</span>                                                oaf64data[it.oIndex] = ox;<a name="line.8573"></a>
+<span class="sourceLineNo">8574</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8574"></a>
+<span class="sourceLineNo">8575</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.8575"></a>
+<span class="sourceLineNo">8576</span>                                                        ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8576"></a>
+<span class="sourceLineNo">8577</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.8577"></a>
+<span class="sourceLineNo">8578</span>                                                }<a name="line.8578"></a>
+<span class="sourceLineNo">8579</span>                                        }<a name="line.8579"></a>
+<span class="sourceLineNo">8580</span>                                } else {<a name="line.8580"></a>
+<span class="sourceLineNo">8581</span>                                        while (it.hasNext()) {<a name="line.8581"></a>
+<span class="sourceLineNo">8582</span>                                                final long iax = it.aLong;<a name="line.8582"></a>
+<span class="sourceLineNo">8583</span>                                                long ibx = it.bLong;<a name="line.8583"></a>
+<span class="sourceLineNo">8584</span>                                                double ox;<a name="line.8584"></a>
+<span class="sourceLineNo">8585</span>                                                ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8585"></a>
+<span class="sourceLineNo">8586</span>                                                oaf64data[it.oIndex] = ox;<a name="line.8586"></a>
+<span class="sourceLineNo">8587</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8587"></a>
+<span class="sourceLineNo">8588</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.8588"></a>
+<span class="sourceLineNo">8589</span>                                                        ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8589"></a>
+<span class="sourceLineNo">8590</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.8590"></a>
+<span class="sourceLineNo">8591</span>                                                }<a name="line.8591"></a>
+<span class="sourceLineNo">8592</span>                                        }<a name="line.8592"></a>
+<span class="sourceLineNo">8593</span>                                }<a name="line.8593"></a>
+<span class="sourceLineNo">8594</span>                        } else if (as &gt; bs) {<a name="line.8594"></a>
+<span class="sourceLineNo">8595</span>                                if (it.isOutputDouble()) {<a name="line.8595"></a>
+<span class="sourceLineNo">8596</span>                                        while (it.hasNext()) {<a name="line.8596"></a>
+<span class="sourceLineNo">8597</span>                                                double iax = it.aDouble;<a name="line.8597"></a>
+<span class="sourceLineNo">8598</span>                                                final double ibx = it.bDouble;<a name="line.8598"></a>
+<span class="sourceLineNo">8599</span>                                                double ox;<a name="line.8599"></a>
+<span class="sourceLineNo">8600</span>                                                ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8600"></a>
+<span class="sourceLineNo">8601</span>                                                oaf64data[it.oIndex] = ox;<a name="line.8601"></a>
+<span class="sourceLineNo">8602</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8602"></a>
+<span class="sourceLineNo">8603</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.8603"></a>
+<span class="sourceLineNo">8604</span>                                                        ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8604"></a>
+<span class="sourceLineNo">8605</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.8605"></a>
+<span class="sourceLineNo">8606</span>                                                }<a name="line.8606"></a>
+<span class="sourceLineNo">8607</span>                                        }<a name="line.8607"></a>
+<span class="sourceLineNo">8608</span>                                } else {<a name="line.8608"></a>
+<span class="sourceLineNo">8609</span>                                        while (it.hasNext()) {<a name="line.8609"></a>
+<span class="sourceLineNo">8610</span>                                                long iax = it.aLong;<a name="line.8610"></a>
+<span class="sourceLineNo">8611</span>                                                final long ibx = it.bLong;<a name="line.8611"></a>
+<span class="sourceLineNo">8612</span>                                                double ox;<a name="line.8612"></a>
+<span class="sourceLineNo">8613</span>                                                ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8613"></a>
+<span class="sourceLineNo">8614</span>                                                oaf64data[it.oIndex] = ox;<a name="line.8614"></a>
+<span class="sourceLineNo">8615</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8615"></a>
+<span class="sourceLineNo">8616</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.8616"></a>
+<span class="sourceLineNo">8617</span>                                                        ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8617"></a>
+<span class="sourceLineNo">8618</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.8618"></a>
+<span class="sourceLineNo">8619</span>                                                }<a name="line.8619"></a>
+<span class="sourceLineNo">8620</span>                                        }<a name="line.8620"></a>
+<span class="sourceLineNo">8621</span>                                }<a name="line.8621"></a>
+<span class="sourceLineNo">8622</span>                        } else if (as == 1) {<a name="line.8622"></a>
+<span class="sourceLineNo">8623</span>                                if (it.isOutputDouble()) {<a name="line.8623"></a>
+<span class="sourceLineNo">8624</span>                                        while (it.hasNext()) {<a name="line.8624"></a>
+<span class="sourceLineNo">8625</span>                                                final double iax = it.aDouble;<a name="line.8625"></a>
+<span class="sourceLineNo">8626</span>                                                final double ibx = it.bDouble;<a name="line.8626"></a>
+<span class="sourceLineNo">8627</span>                                                double ox;<a name="line.8627"></a>
+<span class="sourceLineNo">8628</span>                                                ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8628"></a>
+<span class="sourceLineNo">8629</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.8629"></a>
+<span class="sourceLineNo">8630</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.8630"></a>
+<span class="sourceLineNo">8631</span>                                                }<a name="line.8631"></a>
+<span class="sourceLineNo">8632</span>                                        }<a name="line.8632"></a>
+<span class="sourceLineNo">8633</span>                                } else {<a name="line.8633"></a>
+<span class="sourceLineNo">8634</span>                                        while (it.hasNext()) {<a name="line.8634"></a>
+<span class="sourceLineNo">8635</span>                                                final long iax = it.aLong;<a name="line.8635"></a>
+<span class="sourceLineNo">8636</span>                                                final long ibx = it.bLong;<a name="line.8636"></a>
+<span class="sourceLineNo">8637</span>                                                double ox;<a name="line.8637"></a>
+<span class="sourceLineNo">8638</span>                                                ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8638"></a>
+<span class="sourceLineNo">8639</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.8639"></a>
+<span class="sourceLineNo">8640</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.8640"></a>
+<span class="sourceLineNo">8641</span>                                                }<a name="line.8641"></a>
+<span class="sourceLineNo">8642</span>                                        }<a name="line.8642"></a>
+<span class="sourceLineNo">8643</span>                                }<a name="line.8643"></a>
+<span class="sourceLineNo">8644</span>                        } else {<a name="line.8644"></a>
+<span class="sourceLineNo">8645</span>                                if (it.isOutputDouble()) {<a name="line.8645"></a>
+<span class="sourceLineNo">8646</span>                                        while (it.hasNext()) {<a name="line.8646"></a>
+<span class="sourceLineNo">8647</span>                                                double iax = it.aDouble;<a name="line.8647"></a>
+<span class="sourceLineNo">8648</span>                                                double ibx = it.bDouble;<a name="line.8648"></a>
+<span class="sourceLineNo">8649</span>                                                double ox;<a name="line.8649"></a>
+<span class="sourceLineNo">8650</span>                                                ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8650"></a>
+<span class="sourceLineNo">8651</span>                                                oaf64data[it.oIndex] = ox;<a name="line.8651"></a>
+<span class="sourceLineNo">8652</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8652"></a>
+<span class="sourceLineNo">8653</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.8653"></a>
+<span class="sourceLineNo">8654</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.8654"></a>
+<span class="sourceLineNo">8655</span>                                                        ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8655"></a>
+<span class="sourceLineNo">8656</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.8656"></a>
+<span class="sourceLineNo">8657</span>                                                }<a name="line.8657"></a>
+<span class="sourceLineNo">8658</span>                                        }<a name="line.8658"></a>
+<span class="sourceLineNo">8659</span>                                } else {<a name="line.8659"></a>
+<span class="sourceLineNo">8660</span>                                        while (it.hasNext()) {<a name="line.8660"></a>
+<span class="sourceLineNo">8661</span>                                                long iax = it.aLong;<a name="line.8661"></a>
+<span class="sourceLineNo">8662</span>                                                long ibx = it.bLong;<a name="line.8662"></a>
+<span class="sourceLineNo">8663</span>                                                double ox;<a name="line.8663"></a>
+<span class="sourceLineNo">8664</span>                                                ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8664"></a>
+<span class="sourceLineNo">8665</span>                                                oaf64data[it.oIndex] = ox;<a name="line.8665"></a>
+<span class="sourceLineNo">8666</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.8666"></a>
+<span class="sourceLineNo">8667</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.8667"></a>
+<span class="sourceLineNo">8668</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.8668"></a>
+<span class="sourceLineNo">8669</span>                                                        ox = (ibx == 0 ? 0 : iax / ibx);<a name="line.8669"></a>
+<span class="sourceLineNo">8670</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.8670"></a>
+<span class="sourceLineNo">8671</span>                                                }<a name="line.8671"></a>
+<span class="sourceLineNo">8672</span>                                        }<a name="line.8672"></a>
+<span class="sourceLineNo">8673</span>                                }<a name="line.8673"></a>
+<span class="sourceLineNo">8674</span>                        }<a name="line.8674"></a>
+<span class="sourceLineNo">8675</span>                        break;<a name="line.8675"></a>
+<span class="sourceLineNo">8676</span>                case Dataset.COMPLEX64:<a name="line.8676"></a>
+<span class="sourceLineNo">8677</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.8677"></a>
+<span class="sourceLineNo">8678</span>                        if (!da.isComplex()) {<a name="line.8678"></a>
+<span class="sourceLineNo">8679</span>                                if (it.isOutputDouble()) {<a name="line.8679"></a>
+<span class="sourceLineNo">8680</span>                                        final double iay = 0;<a name="line.8680"></a>
+<span class="sourceLineNo">8681</span>                                        if (db.isComplex()) {<a name="line.8681"></a>
+<span class="sourceLineNo">8682</span>                                                while (it.hasNext()) {<a name="line.8682"></a>
+<span class="sourceLineNo">8683</span>                                                        final double iax = it.aDouble;<a name="line.8683"></a>
+<span class="sourceLineNo">8684</span>                                                        final double ibx = it.bDouble;<a name="line.8684"></a>
+<span class="sourceLineNo">8685</span>                                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.8685"></a>
+<span class="sourceLineNo">8686</span>                                                        float ox;<a name="line.8686"></a>
+<span class="sourceLineNo">8687</span>                                                        float oy;<a name="line.8687"></a>
+<span class="sourceLineNo">8688</span>                                                        float q;<a name="line.8688"></a>
+<span class="sourceLineNo">8689</span>                                                        float den;<a name="line.8689"></a>
+<span class="sourceLineNo">8690</span>                                                        if (ibx == 0 &amp;&amp; iby == 0) {<a name="line.8690"></a>
+<span class="sourceLineNo">8691</span>                                                                ox = 0;<a name="line.8691"></a>
+<span class="sourceLineNo">8692</span>                                                                oy = 0;<a name="line.8692"></a>
+<span class="sourceLineNo">8693</span>                                                        } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.8693"></a>
+<span class="sourceLineNo">8694</span>                                                                q = (float) (ibx / iby);<a name="line.8694"></a>
+<span class="sourceLineNo">8695</span>                                                                den = (float) (ibx * q + iby);<a name="line.8695"></a>
+<span class="sourceLineNo">8696</span>                                                                ox = (float) ((iax * q + iay) / den);<a name="line.8696"></a>
+<span class="sourceLineNo">8697</span>                                                                oy = (float) ((iay * q - ibx) / den);<a name="line.8697"></a>
+<span class="sourceLineNo">8698</span>                                                        } else {<a name="line.8698"></a>
+<span class="sourceLineNo">8699</span>                                                                q = (float) (iby / ibx);<a name="line.8699"></a>
+<span class="sourceLineNo">8700</span>                                                                den = (float) (iby * q + ibx);<a name="line.8700"></a>
+<span class="sourceLineNo">8701</span>                                                                ox = (float) ((iay * q + iax) / den);<a name="line.8701"></a>
+<span class="sourceLineNo">8702</span>                                                                oy = (float) ((iay - iax * q) / den);<a name="line.8702"></a>
+<span class="sourceLineNo">8703</span>                                                        }<a name="line.8703"></a>
+<span class="sourceLineNo">8704</span>                                                        oc64data[it.oIndex] = ox;<a name="line.8704"></a>
+<span class="sourceLineNo">8705</span>                                                        oc64data[it.oIndex + 1] = oy;<a name="line.8705"></a>
+<span class="sourceLineNo">8706</span>                                                }<a name="line.8706"></a>
+<span class="sourceLineNo">8707</span>                                        } else {<a name="line.8707"></a>
+<span class="sourceLineNo">8708</span>                                                while (it.hasNext()) {<a name="line.8708"></a>
+<span class="sourceLineNo">8709</span>                                                        final double iax = it.aDouble;<a name="line.8709"></a>
+<span class="sourceLineNo">8710</span>                                                        final double ibx = it.bDouble;<a name="line.8710"></a>
+<span class="sourceLineNo">8711</span>                                                        final double iby = 0;<a name="line.8711"></a>
+<span class="sourceLineNo">8712</span>                                                        float ox;<a name="line.8712"></a>
+<span class="sourceLineNo">8713</span>                                                        float oy;<a name="line.8713"></a>
+<span class="sourceLineNo">8714</span>                                                        float q;<a name="line.8714"></a>
+<span class="sourceLineNo">8715</span>                                                        float den;<a name="line.8715"></a>
+<span class="sourceLineNo">8716</span>                                                        if (ibx == 0 &amp;&amp; iby == 0) {<a name="line.8716"></a>
+<span class="sourceLineNo">8717</span>                                                                ox = 0;<a name="line.8717"></a>
+<span class="sourceLineNo">8718</span>                                                                oy = 0;<a name="line.8718"></a>
+<span class="sourceLineNo">8719</span>                                                        } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.8719"></a>
+<span class="sourceLineNo">8720</span>                                                                q = (float) (ibx / iby);<a name="line.8720"></a>
+<span class="sourceLineNo">8721</span>                                                                den = (float) (ibx * q + iby);<a name="line.8721"></a>
+<span class="sourceLineNo">8722</span>                                                                ox = (float) ((iax * q + iay) / den);<a name="line.8722"></a>
+<span class="sourceLineNo">8723</span>                                                                oy = (float) ((iay * q - ibx) / den);<a name="line.8723"></a>
+<span class="sourceLineNo">8724</span>                                                        } else {<a name="line.8724"></a>
+<span class="sourceLineNo">8725</span>                                                                q = (float) (iby / ibx);<a name="line.8725"></a>
+<span class="sourceLineNo">8726</span>                                                                den = (float) (iby * q + ibx);<a name="line.8726"></a>
+<span class="sourceLineNo">8727</span>                                                                ox = (float) ((iay * q + iax) / den);<a name="line.8727"></a>
+<span class="sourceLineNo">8728</span>                                                                oy = (float) ((iay - iax * q) / den);<a name="line.8728"></a>
+<span class="sourceLineNo">8729</span>                                                        }<a name="line.8729"></a>
+<span class="sourceLineNo">8730</span>                                                        oc64data[it.oIndex] = ox;<a name="line.8730"></a>
+<span class="sourceLineNo">8731</span>                                                        oc64data[it.oIndex + 1] = oy;<a name="line.8731"></a>
+<span class="sourceLineNo">8732</span>                                                }<a name="line.8732"></a>
+<span class="sourceLineNo">8733</span>                                        }<a name="line.8733"></a>
+<span class="sourceLineNo">8734</span>                                } else {<a name="line.8734"></a>
+<span class="sourceLineNo">8735</span>                                        final long iay = 0;<a name="line.8735"></a>
+<span class="sourceLineNo">8736</span>                                        while (it.hasNext()) {<a name="line.8736"></a>
+<span class="sourceLineNo">8737</span>                                                final long iax = it.aLong;<a name="line.8737"></a>
+<span class="sourceLineNo">8738</span>                                                final long ibx = it.bLong;<a name="line.8738"></a>
+<span class="sourceLineNo">8739</span>                                                final long iby = 0;<a name="line.8739"></a>
+<span class="sourceLineNo">8740</span>                                                float ox;<a name="line.8740"></a>
+<span class="sourceLineNo">8741</span>                                                float oy;<a name="line.8741"></a>
+<span class="sourceLineNo">8742</span>                                                float q;<a name="line.8742"></a>
+<span class="sourceLineNo">8743</span>                                                float den;<a name="line.8743"></a>
+<span class="sourceLineNo">8744</span>                                                if (ibx == 0 &amp;&amp; iby == 0) {<a name="line.8744"></a>
+<span class="sourceLineNo">8745</span>                                                        ox = 0;<a name="line.8745"></a>
+<span class="sourceLineNo">8746</span>                                                        oy = 0;<a name="line.8746"></a>
+<span class="sourceLineNo">8747</span>                                                } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.8747"></a>
+<span class="sourceLineNo">8748</span>                                                        q = (float) (ibx / iby);<a name="line.8748"></a>
+<span class="sourceLineNo">8749</span>                                                        den = (float) (ibx * q + iby);<a name="line.8749"></a>
+<span class="sourceLineNo">8750</span>                                                        ox = (float) ((iax * q + iay) / den);<a name="line.8750"></a>
+<span class="sourceLineNo">8751</span>                                                        oy = (float) ((iay * q - ibx) / den);<a name="line.8751"></a>
+<span class="sourceLineNo">8752</span>                                                } else {<a name="line.8752"></a>
+<span class="sourceLineNo">8753</span>                                                        q = (float) (iby / ibx);<a name="line.8753"></a>
+<span class="sourceLineNo">8754</span>                                                        den = (float) (iby * q + ibx);<a name="line.8754"></a>
+<span class="sourceLineNo">8755</span>                                                        ox = (float) ((iay * q + iax) / den);<a name="line.8755"></a>
+<span class="sourceLineNo">8756</span>                                                        oy = (float) ((iay - iax * q) / den);<a name="line.8756"></a>
+<span class="sourceLineNo">8757</span>                                                }<a name="line.8757"></a>
+<span class="sourceLineNo">8758</span>                                                oc64data[it.oIndex] = ox;<a name="line.8758"></a>
+<span class="sourceLineNo">8759</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.8759"></a>
+<span class="sourceLineNo">8760</span>                                        }<a name="line.8760"></a>
+<span class="sourceLineNo">8761</span>                                }<a name="line.8761"></a>
+<span class="sourceLineNo">8762</span>                        } else if (!db.isComplex()) {<a name="line.8762"></a>
+<span class="sourceLineNo">8763</span>                                final double iby = 0;<a name="line.8763"></a>
+<span class="sourceLineNo">8764</span>                                while (it.hasNext()) {<a name="line.8764"></a>
+<span class="sourceLineNo">8765</span>                                        final double iax = it.aDouble;<a name="line.8765"></a>
+<span class="sourceLineNo">8766</span>                                        final double ibx = it.bDouble;<a name="line.8766"></a>
+<span class="sourceLineNo">8767</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.8767"></a>
+<span class="sourceLineNo">8768</span>                                        float ox;<a name="line.8768"></a>
+<span class="sourceLineNo">8769</span>                                        float oy;<a name="line.8769"></a>
+<span class="sourceLineNo">8770</span>                                        float q;<a name="line.8770"></a>
+<span class="sourceLineNo">8771</span>                                        float den;<a name="line.8771"></a>
+<span class="sourceLineNo">8772</span>                                        if (ibx == 0 &amp;&amp; iby == 0) {<a name="line.8772"></a>
+<span class="sourceLineNo">8773</span>                                                ox = 0;<a name="line.8773"></a>
+<span class="sourceLineNo">8774</span>                                                oy = 0;<a name="line.8774"></a>
+<span class="sourceLineNo">8775</span>                                        } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.8775"></a>
+<span class="sourceLineNo">8776</span>                                                q = (float) (ibx / iby);<a name="line.8776"></a>
+<span class="sourceLineNo">8777</span>                                                den = (float) (ibx * q + iby);<a name="line.8777"></a>
+<span class="sourceLineNo">8778</span>                                                ox = (float) ((iax * q + iay) / den);<a name="line.8778"></a>
+<span class="sourceLineNo">8779</span>                                                oy = (float) ((iay * q - ibx) / den);<a name="line.8779"></a>
+<span class="sourceLineNo">8780</span>                                        } else {<a name="line.8780"></a>
+<span class="sourceLineNo">8781</span>                                                q = (float) (iby / ibx);<a name="line.8781"></a>
+<span class="sourceLineNo">8782</span>                                                den = (float) (iby * q + ibx);<a name="line.8782"></a>
+<span class="sourceLineNo">8783</span>                                                ox = (float) ((iay * q + iax) / den);<a name="line.8783"></a>
+<span class="sourceLineNo">8784</span>                                                oy = (float) ((iay - iax * q) / den);<a name="line.8784"></a>
+<span class="sourceLineNo">8785</span>                                        }<a name="line.8785"></a>
+<span class="sourceLineNo">8786</span>                                        oc64data[it.oIndex] = ox;<a name="line.8786"></a>
+<span class="sourceLineNo">8787</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.8787"></a>
+<span class="sourceLineNo">8788</span>                                }<a name="line.8788"></a>
+<span class="sourceLineNo">8789</span>                        } else {<a name="line.8789"></a>
+<span class="sourceLineNo">8790</span>                                while (it.hasNext()) {<a name="line.8790"></a>
+<span class="sourceLineNo">8791</span>                                        final double iax = it.aDouble;<a name="line.8791"></a>
+<span class="sourceLineNo">8792</span>                                        final double ibx = it.bDouble;<a name="line.8792"></a>
+<span class="sourceLineNo">8793</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.8793"></a>
+<span class="sourceLineNo">8794</span>                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.8794"></a>
+<span class="sourceLineNo">8795</span>                                        float ox;<a name="line.8795"></a>
+<span class="sourceLineNo">8796</span>                                        float oy;<a name="line.8796"></a>
+<span class="sourceLineNo">8797</span>                                        float q;<a name="line.8797"></a>
+<span class="sourceLineNo">8798</span>                                        float den;<a name="line.8798"></a>
+<span class="sourceLineNo">8799</span>                                        if (ibx == 0 &amp;&amp; iby == 0) {<a name="line.8799"></a>
+<span class="sourceLineNo">8800</span>                                                ox = 0;<a name="line.8800"></a>
+<span class="sourceLineNo">8801</span>                                                oy = 0;<a name="line.8801"></a>
+<span class="sourceLineNo">8802</span>                                        } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.8802"></a>
+<span class="sourceLineNo">8803</span>                                                q = (float) (ibx / iby);<a name="line.8803"></a>
+<span class="sourceLineNo">8804</span>                                                den = (float) (ibx * q + iby);<a name="line.8804"></a>
+<span class="sourceLineNo">8805</span>                                                ox = (float) ((iax * q + iay) / den);<a name="line.8805"></a>
+<span class="sourceLineNo">8806</span>                                                oy = (float) ((iay * q - ibx) / den);<a name="line.8806"></a>
+<span class="sourceLineNo">8807</span>                                        } else {<a name="line.8807"></a>
+<span class="sourceLineNo">8808</span>                                                q = (float) (iby / ibx);<a name="line.8808"></a>
+<span class="sourceLineNo">8809</span>                                                den = (float) (iby * q + ibx);<a name="line.8809"></a>
+<span class="sourceLineNo">8810</span>                                                ox = (float) ((iay * q + iax) / den);<a name="line.8810"></a>
+<span class="sourceLineNo">8811</span>                                                oy = (float) ((iay - iax * q) / den);<a name="line.8811"></a>
+<span class="sourceLineNo">8812</span>                                        }<a name="line.8812"></a>
+<span class="sourceLineNo">8813</span>                                        oc64data[it.oIndex] = ox;<a name="line.8813"></a>
+<span class="sourceLineNo">8814</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.8814"></a>
+<span class="sourceLineNo">8815</span>                                }<a name="line.8815"></a>
+<span class="sourceLineNo">8816</span>                        }<a name="line.8816"></a>
+<span class="sourceLineNo">8817</span>                        break;<a name="line.8817"></a>
+<span class="sourceLineNo">8818</span>                case Dataset.COMPLEX128:<a name="line.8818"></a>
+<span class="sourceLineNo">8819</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.8819"></a>
+<span class="sourceLineNo">8820</span>                        if (!da.isComplex()) {<a name="line.8820"></a>
+<span class="sourceLineNo">8821</span>                                if (it.isOutputDouble()) {<a name="line.8821"></a>
+<span class="sourceLineNo">8822</span>                                        final double iay = 0;<a name="line.8822"></a>
+<span class="sourceLineNo">8823</span>                                        if (db.isComplex()) {<a name="line.8823"></a>
+<span class="sourceLineNo">8824</span>                                                while (it.hasNext()) {<a name="line.8824"></a>
+<span class="sourceLineNo">8825</span>                                                        final double iax = it.aDouble;<a name="line.8825"></a>
+<span class="sourceLineNo">8826</span>                                                        final double ibx = it.bDouble;<a name="line.8826"></a>
+<span class="sourceLineNo">8827</span>                                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.8827"></a>
+<span class="sourceLineNo">8828</span>                                                        double ox;<a name="line.8828"></a>
+<span class="sourceLineNo">8829</span>                                                        double oy;<a name="line.8829"></a>
+<span class="sourceLineNo">8830</span>                                                        double q;<a name="line.8830"></a>
+<span class="sourceLineNo">8831</span>                                                        double den;<a name="line.8831"></a>
+<span class="sourceLineNo">8832</span>                                                        if (ibx == 0 &amp;&amp; iby == 0) {<a name="line.8832"></a>
+<span class="sourceLineNo">8833</span>                                                                ox = 0;<a name="line.8833"></a>
+<span class="sourceLineNo">8834</span>                                                                oy = 0;<a name="line.8834"></a>
+<span class="sourceLineNo">8835</span>                                                        } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.8835"></a>
+<span class="sourceLineNo">8836</span>                                                                q = (ibx / iby);<a name="line.8836"></a>
+<span class="sourceLineNo">8837</span>                                                                den = (ibx * q + iby);<a name="line.8837"></a>
+<span class="sourceLineNo">8838</span>                                                                ox = ((iax * q + iay) / den);<a name="line.8838"></a>
+<span class="sourceLineNo">8839</span>                                                                oy = ((iay * q - ibx) / den);<a name="line.8839"></a>
+<span class="sourceLineNo">8840</span>                                                        } else {<a name="line.8840"></a>
+<span class="sourceLineNo">8841</span>                                                                q = (iby / ibx);<a name="line.8841"></a>
+<span class="sourceLineNo">8842</span>                                                                den = (iby * q + ibx);<a name="line.8842"></a>
+<span class="sourceLineNo">8843</span>                                                                ox = ((iay * q + iax) / den);<a name="line.8843"></a>
+<span class="sourceLineNo">8844</span>                                                                oy = ((iay - iax * q) / den);<a name="line.8844"></a>
+<span class="sourceLineNo">8845</span>                                                        }<a name="line.8845"></a>
+<span class="sourceLineNo">8846</span>                                                        oc128data[it.oIndex] = ox;<a name="line.8846"></a>
+<span class="sourceLineNo">8847</span>                                                        oc128data[it.oIndex + 1] = oy;<a name="line.8847"></a>
+<span class="sourceLineNo">8848</span>                                                }<a name="line.8848"></a>
+<span class="sourceLineNo">8849</span>                                        } else {<a name="line.8849"></a>
+<span class="sourceLineNo">8850</span>                                                while (it.hasNext()) {<a name="line.8850"></a>
+<span class="sourceLineNo">8851</span>                                                        final double iax = it.aDouble;<a name="line.8851"></a>
+<span class="sourceLineNo">8852</span>                                                        final double ibx = it.bDouble;<a name="line.8852"></a>
+<span class="sourceLineNo">8853</span>                                                        final double iby = 0;<a name="line.8853"></a>
+<span class="sourceLineNo">8854</span>                                                        double ox;<a name="line.8854"></a>
+<span class="sourceLineNo">8855</span>                                                        double oy;<a name="line.8855"></a>
+<span class="sourceLineNo">8856</span>                                                        double q;<a name="line.8856"></a>
+<span class="sourceLineNo">8857</span>                                                        double den;<a name="line.8857"></a>
+<span class="sourceLineNo">8858</span>                                                        if (ibx == 0 &amp;&amp; iby == 0) {<a name="line.8858"></a>
+<span class="sourceLineNo">8859</span>                                                                ox = 0;<a name="line.8859"></a>
+<span class="sourceLineNo">8860</span>                                                                oy = 0;<a name="line.8860"></a>
+<span class="sourceLineNo">8861</span>                                                        } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.8861"></a>
+<span class="sourceLineNo">8862</span>                                                                q = (ibx / iby);<a name="line.8862"></a>
+<span class="sourceLineNo">8863</span>                                                                den = (ibx * q + iby);<a name="line.8863"></a>
+<span class="sourceLineNo">8864</span>                                                                ox = ((iax * q + iay) / den);<a name="line.8864"></a>
+<span class="sourceLineNo">8865</span>                                                                oy = ((iay * q - ibx) / den);<a name="line.8865"></a>
+<span class="sourceLineNo">8866</span>                                                        } else {<a name="line.8866"></a>
+<span class="sourceLineNo">8867</span>                                                                q = (iby / ibx);<a name="line.8867"></a>
+<span class="sourceLineNo">8868</span>                                                                den = (iby * q + ibx);<a name="line.8868"></a>
+<span class="sourceLineNo">8869</span>                                                                ox = ((iay * q + iax) / den);<a name="line.8869"></a>
+<span class="sourceLineNo">8870</span>                                                                oy = ((iay - iax * q) / den);<a name="line.8870"></a>
+<span class="sourceLineNo">8871</span>                                                        }<a name="line.8871"></a>
+<span class="sourceLineNo">8872</span>                                                        oc128data[it.oIndex] = ox;<a name="line.8872"></a>
+<span class="sourceLineNo">8873</span>                                                        oc128data[it.oIndex + 1] = oy;<a name="line.8873"></a>
+<span class="sourceLineNo">8874</span>                                                }<a name="line.8874"></a>
+<span class="sourceLineNo">8875</span>                                        }<a name="line.8875"></a>
+<span class="sourceLineNo">8876</span>                                } else {<a name="line.8876"></a>
+<span class="sourceLineNo">8877</span>                                        final long iay = 0;<a name="line.8877"></a>
+<span class="sourceLineNo">8878</span>                                        while (it.hasNext()) {<a name="line.8878"></a>
+<span class="sourceLineNo">8879</span>                                                final long iax = it.aLong;<a name="line.8879"></a>
+<span class="sourceLineNo">8880</span>                                                final long ibx = it.bLong;<a name="line.8880"></a>
+<span class="sourceLineNo">8881</span>                                                final long iby = 0;<a name="line.8881"></a>
+<span class="sourceLineNo">8882</span>                                                double ox;<a name="line.8882"></a>
+<span class="sourceLineNo">8883</span>                                                double oy;<a name="line.8883"></a>
+<span class="sourceLineNo">8884</span>                                                double q;<a name="line.8884"></a>
+<span class="sourceLineNo">8885</span>                                                double den;<a name="line.8885"></a>
+<span class="sourceLineNo">8886</span>                                                if (ibx == 0 &amp;&amp; iby == 0) {<a name="line.8886"></a>
+<span class="sourceLineNo">8887</span>                                                        ox = 0;<a name="line.8887"></a>
+<span class="sourceLineNo">8888</span>                                                        oy = 0;<a name="line.8888"></a>
+<span class="sourceLineNo">8889</span>                                                } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.8889"></a>
+<span class="sourceLineNo">8890</span>                                                        q = (ibx / iby);<a name="line.8890"></a>
+<span class="sourceLineNo">8891</span>                                                        den = (ibx * q + iby);<a name="line.8891"></a>
+<span class="sourceLineNo">8892</span>                                                        ox = ((iax * q + iay) / den);<a name="line.8892"></a>
+<span class="sourceLineNo">8893</span>                                                        oy = ((iay * q - ibx) / den);<a name="line.8893"></a>
+<span class="sourceLineNo">8894</span>                                                } else {<a name="line.8894"></a>
+<span class="sourceLineNo">8895</span>                                                        q = (iby / ibx);<a name="line.8895"></a>
+<span class="sourceLineNo">8896</span>                                                        den = (iby * q + ibx);<a name="line.8896"></a>
+<span class="sourceLineNo">8897</span>                                                        ox = ((iay * q + iax) / den);<a name="line.8897"></a>
+<span class="sourceLineNo">8898</span>                                                        oy = ((iay - iax * q) / den);<a name="line.8898"></a>
+<span class="sourceLineNo">8899</span>                                                }<a name="line.8899"></a>
+<span class="sourceLineNo">8900</span>                                                oc128data[it.oIndex] = ox;<a name="line.8900"></a>
+<span class="sourceLineNo">8901</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.8901"></a>
+<span class="sourceLineNo">8902</span>                                        }<a name="line.8902"></a>
+<span class="sourceLineNo">8903</span>                                }<a name="line.8903"></a>
+<span class="sourceLineNo">8904</span>                        } else if (!db.isComplex()) {<a name="line.8904"></a>
+<span class="sourceLineNo">8905</span>                                final double iby = 0;<a name="line.8905"></a>
+<span class="sourceLineNo">8906</span>                                while (it.hasNext()) {<a name="line.8906"></a>
+<span class="sourceLineNo">8907</span>                                        final double iax = it.aDouble;<a name="line.8907"></a>
+<span class="sourceLineNo">8908</span>                                        final double ibx = it.bDouble;<a name="line.8908"></a>
+<span class="sourceLineNo">8909</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.8909"></a>
+<span class="sourceLineNo">8910</span>                                        double ox;<a name="line.8910"></a>
+<span class="sourceLineNo">8911</span>                                        double oy;<a name="line.8911"></a>
+<span class="sourceLineNo">8912</span>                                        double q;<a name="line.8912"></a>
+<span class="sourceLineNo">8913</span>                                        double den;<a name="line.8913"></a>
+<span class="sourceLineNo">8914</span>                                        if (ibx == 0 &amp;&amp; iby == 0) {<a name="line.8914"></a>
+<span class="sourceLineNo">8915</span>                                                ox = 0;<a name="line.8915"></a>
+<span class="sourceLineNo">8916</span>                                                oy = 0;<a name="line.8916"></a>
+<span class="sourceLineNo">8917</span>                                        } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.8917"></a>
+<span class="sourceLineNo">8918</span>                                                q = (ibx / iby);<a name="line.8918"></a>
+<span class="sourceLineNo">8919</span>                                                den = (ibx * q + iby);<a name="line.8919"></a>
+<span class="sourceLineNo">8920</span>                                                ox = ((iax * q + iay) / den);<a name="line.8920"></a>
+<span class="sourceLineNo">8921</span>                                                oy = ((iay * q - ibx) / den);<a name="line.8921"></a>
+<span class="sourceLineNo">8922</span>                                        } else {<a name="line.8922"></a>
+<span class="sourceLineNo">8923</span>                                                q = (iby / ibx);<a name="line.8923"></a>
+<span class="sourceLineNo">8924</span>                                                den = (iby * q + ibx);<a name="line.8924"></a>
+<span class="sourceLineNo">8925</span>                                                ox = ((iay * q + iax) / den);<a name="line.8925"></a>
+<span class="sourceLineNo">8926</span>                                                oy = ((iay - iax * q) / den);<a name="line.8926"></a>
+<span class="sourceLineNo">8927</span>                                        }<a name="line.8927"></a>
+<span class="sourceLineNo">8928</span>                                        oc128data[it.oIndex] = ox;<a name="line.8928"></a>
+<span class="sourceLineNo">8929</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.8929"></a>
+<span class="sourceLineNo">8930</span>                                }<a name="line.8930"></a>
+<span class="sourceLineNo">8931</span>                        } else {<a name="line.8931"></a>
+<span class="sourceLineNo">8932</span>                                while (it.hasNext()) {<a name="line.8932"></a>
+<span class="sourceLineNo">8933</span>                                        final double iax = it.aDouble;<a name="line.8933"></a>
+<span class="sourceLineNo">8934</span>                                        final double ibx = it.bDouble;<a name="line.8934"></a>
+<span class="sourceLineNo">8935</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.8935"></a>
+<span class="sourceLineNo">8936</span>                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.8936"></a>
+<span class="sourceLineNo">8937</span>                                        double ox;<a name="line.8937"></a>
+<span class="sourceLineNo">8938</span>                                        double oy;<a name="line.8938"></a>
+<span class="sourceLineNo">8939</span>                                        double q;<a name="line.8939"></a>
+<span class="sourceLineNo">8940</span>                                        double den;<a name="line.8940"></a>
+<span class="sourceLineNo">8941</span>                                        if (ibx == 0 &amp;&amp; iby == 0) {<a name="line.8941"></a>
+<span class="sourceLineNo">8942</span>                                                ox = 0;<a name="line.8942"></a>
+<span class="sourceLineNo">8943</span>                                                oy = 0;<a name="line.8943"></a>
+<span class="sourceLineNo">8944</span>                                        } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.8944"></a>
+<span class="sourceLineNo">8945</span>                                                q = (ibx / iby);<a name="line.8945"></a>
+<span class="sourceLineNo">8946</span>                                                den = (ibx * q + iby);<a name="line.8946"></a>
+<span class="sourceLineNo">8947</span>                                                ox = ((iax * q + iay) / den);<a name="line.8947"></a>
+<span class="sourceLineNo">8948</span>                                                oy = ((iay * q - ibx) / den);<a name="line.8948"></a>
+<span class="sourceLineNo">8949</span>                                        } else {<a name="line.8949"></a>
+<span class="sourceLineNo">8950</span>                                                q = (iby / ibx);<a name="line.8950"></a>
+<span class="sourceLineNo">8951</span>                                                den = (iby * q + ibx);<a name="line.8951"></a>
+<span class="sourceLineNo">8952</span>                                                ox = ((iay * q + iax) / den);<a name="line.8952"></a>
+<span class="sourceLineNo">8953</span>                                                oy = ((iay - iax * q) / den);<a name="line.8953"></a>
+<span class="sourceLineNo">8954</span>                                        }<a name="line.8954"></a>
+<span class="sourceLineNo">8955</span>                                        oc128data[it.oIndex] = ox;<a name="line.8955"></a>
+<span class="sourceLineNo">8956</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.8956"></a>
+<span class="sourceLineNo">8957</span>                                }<a name="line.8957"></a>
+<span class="sourceLineNo">8958</span>                        }<a name="line.8958"></a>
+<span class="sourceLineNo">8959</span>                        break;<a name="line.8959"></a>
+<span class="sourceLineNo">8960</span>                default:<a name="line.8960"></a>
+<span class="sourceLineNo">8961</span>                        throw new IllegalArgumentException("dividez supports integer, compound integer, real, compound real, complex datasets only");<a name="line.8961"></a>
+<span class="sourceLineNo">8962</span>                }<a name="line.8962"></a>
+<span class="sourceLineNo">8963</span><a name="line.8963"></a>
+<span class="sourceLineNo">8964</span>                addBinaryOperatorName(da, db, result, "/");<a name="line.8964"></a>
+<span class="sourceLineNo">8965</span>                return result;<a name="line.8965"></a>
+<span class="sourceLineNo">8966</span>        }<a name="line.8966"></a>
+<span class="sourceLineNo">8967</span><a name="line.8967"></a>
+<span class="sourceLineNo">8968</span>        /**<a name="line.8968"></a>
+<span class="sourceLineNo">8969</span>         * divideTowardsFloor operator<a name="line.8969"></a>
+<span class="sourceLineNo">8970</span>         * @param a<a name="line.8970"></a>
+<span class="sourceLineNo">8971</span>         * @param b<a name="line.8971"></a>
+<span class="sourceLineNo">8972</span>         * @return {@code a / b}, division of a by b but rounded towards negative infinity<a name="line.8972"></a>
+<span class="sourceLineNo">8973</span>         */<a name="line.8973"></a>
+<span class="sourceLineNo">8974</span>        public static Dataset divideTowardsFloor(final Object a, final Object b) {<a name="line.8974"></a>
+<span class="sourceLineNo">8975</span>                return divideTowardsFloor(a, b, null);<a name="line.8975"></a>
+<span class="sourceLineNo">8976</span>        }<a name="line.8976"></a>
+<span class="sourceLineNo">8977</span><a name="line.8977"></a>
+<span class="sourceLineNo">8978</span>        /**<a name="line.8978"></a>
+<span class="sourceLineNo">8979</span>         * divideTowardsFloor operator<a name="line.8979"></a>
+<span class="sourceLineNo">8980</span>         * @param a<a name="line.8980"></a>
+<span class="sourceLineNo">8981</span>         * @param b<a name="line.8981"></a>
+<span class="sourceLineNo">8982</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.8982"></a>
+<span class="sourceLineNo">8983</span>         * @return {@code a / b}, division of a by b but rounded towards negative infinity<a name="line.8983"></a>
+<span class="sourceLineNo">8984</span>         */<a name="line.8984"></a>
+<span class="sourceLineNo">8985</span>        public static Dataset divideTowardsFloor(final Object a, final Object b, final Dataset o) {<a name="line.8985"></a>
+<span class="sourceLineNo">8986</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.8986"></a>
+<span class="sourceLineNo">8987</span>                Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.8987"></a>
+<span class="sourceLineNo">8988</span>                BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.8988"></a>
+<span class="sourceLineNo">8989</span>                final Dataset result = it.getOutput();<a name="line.8989"></a>
+<span class="sourceLineNo">8990</span>                if (!result.isComplex()) {<a name="line.8990"></a>
+<span class="sourceLineNo">8991</span>                        boolean change = false;<a name="line.8991"></a>
+<span class="sourceLineNo">8992</span>                        if (da.isComplex()) {<a name="line.8992"></a>
+<span class="sourceLineNo">8993</span>                                da = da.getRealView();<a name="line.8993"></a>
+<span class="sourceLineNo">8994</span>                                change = true;<a name="line.8994"></a>
+<span class="sourceLineNo">8995</span>                        }<a name="line.8995"></a>
+<span class="sourceLineNo">8996</span>                        if (db.isComplex()) {<a name="line.8996"></a>
+<span class="sourceLineNo">8997</span>                                db = db.getRealView();<a name="line.8997"></a>
+<span class="sourceLineNo">8998</span>                                change = true;<a name="line.8998"></a>
+<span class="sourceLineNo">8999</span>                        }<a name="line.8999"></a>
+<span class="sourceLineNo">9000</span>                        if (change) {<a name="line.9000"></a>
+<span class="sourceLineNo">9001</span>                                it = BroadcastIterator.createIterator(da, db, result, true);<a name="line.9001"></a>
+<span class="sourceLineNo">9002</span>                        }<a name="line.9002"></a>
+<span class="sourceLineNo">9003</span>                }<a name="line.9003"></a>
+<span class="sourceLineNo">9004</span>                final int is = result.getElementsPerItem();<a name="line.9004"></a>
+<span class="sourceLineNo">9005</span>                final int as = da.getElementsPerItem();<a name="line.9005"></a>
+<span class="sourceLineNo">9006</span>                final int bs = db.getElementsPerItem();<a name="line.9006"></a>
+<span class="sourceLineNo">9007</span>                final int dt = result.getDType();<a name="line.9007"></a>
+<span class="sourceLineNo">9008</span><a name="line.9008"></a>
+<span class="sourceLineNo">9009</span>                switch(dt) {<a name="line.9009"></a>
+<span class="sourceLineNo">9010</span>                case Dataset.INT8:<a name="line.9010"></a>
+<span class="sourceLineNo">9011</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.9011"></a>
+<span class="sourceLineNo">9012</span>                        if (it.isOutputDouble()) {<a name="line.9012"></a>
+<span class="sourceLineNo">9013</span>                                while (it.hasNext()) {<a name="line.9013"></a>
+<span class="sourceLineNo">9014</span>                                        final double iax = it.aDouble;<a name="line.9014"></a>
+<span class="sourceLineNo">9015</span>                                        final double ibx = it.bDouble;<a name="line.9015"></a>
+<span class="sourceLineNo">9016</span>                                        byte ox;<a name="line.9016"></a>
+<span class="sourceLineNo">9017</span>                                        if (ibx == 0) {<a name="line.9017"></a>
+<span class="sourceLineNo">9018</span>                                                ox = 0;<a name="line.9018"></a>
+<span class="sourceLineNo">9019</span>                                        } else {<a name="line.9019"></a>
+<span class="sourceLineNo">9020</span>                                                ox = (byte) toLong(iax / ibx);<a name="line.9020"></a>
+<span class="sourceLineNo">9021</span>                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9021"></a>
+<span class="sourceLineNo">9022</span>                                                        ox--;<a name="line.9022"></a>
+<span class="sourceLineNo">9023</span>                                                }<a name="line.9023"></a>
+<span class="sourceLineNo">9024</span>                                        }<a name="line.9024"></a>
+<span class="sourceLineNo">9025</span>                                        oi8data[it.oIndex] = ox;<a name="line.9025"></a>
+<span class="sourceLineNo">9026</span>                                }<a name="line.9026"></a>
+<span class="sourceLineNo">9027</span>                        } else {<a name="line.9027"></a>
+<span class="sourceLineNo">9028</span>                                while (it.hasNext()) {<a name="line.9028"></a>
+<span class="sourceLineNo">9029</span>                                        final long iax = it.aLong;<a name="line.9029"></a>
+<span class="sourceLineNo">9030</span>                                        final long ibx = it.bLong;<a name="line.9030"></a>
+<span class="sourceLineNo">9031</span>                                        byte ox;<a name="line.9031"></a>
+<span class="sourceLineNo">9032</span>                                        if (ibx == 0) {<a name="line.9032"></a>
+<span class="sourceLineNo">9033</span>                                                ox = 0;<a name="line.9033"></a>
+<span class="sourceLineNo">9034</span>                                        } else {<a name="line.9034"></a>
+<span class="sourceLineNo">9035</span>                                                ox = (byte) (iax / ibx);<a name="line.9035"></a>
+<span class="sourceLineNo">9036</span>                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9036"></a>
+<span class="sourceLineNo">9037</span>                                                        ox--;<a name="line.9037"></a>
+<span class="sourceLineNo">9038</span>                                                }<a name="line.9038"></a>
+<span class="sourceLineNo">9039</span>                                        }<a name="line.9039"></a>
+<span class="sourceLineNo">9040</span>                                        oi8data[it.oIndex] = ox;<a name="line.9040"></a>
+<span class="sourceLineNo">9041</span>                                }<a name="line.9041"></a>
+<span class="sourceLineNo">9042</span>                        }<a name="line.9042"></a>
+<span class="sourceLineNo">9043</span>                        break;<a name="line.9043"></a>
+<span class="sourceLineNo">9044</span>                case Dataset.INT16:<a name="line.9044"></a>
+<span class="sourceLineNo">9045</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.9045"></a>
+<span class="sourceLineNo">9046</span>                        if (it.isOutputDouble()) {<a name="line.9046"></a>
+<span class="sourceLineNo">9047</span>                                while (it.hasNext()) {<a name="line.9047"></a>
+<span class="sourceLineNo">9048</span>                                        final double iax = it.aDouble;<a name="line.9048"></a>
+<span class="sourceLineNo">9049</span>                                        final double ibx = it.bDouble;<a name="line.9049"></a>
+<span class="sourceLineNo">9050</span>                                        short ox;<a name="line.9050"></a>
+<span class="sourceLineNo">9051</span>                                        if (ibx == 0) {<a name="line.9051"></a>
+<span class="sourceLineNo">9052</span>                                                ox = 0;<a name="line.9052"></a>
+<span class="sourceLineNo">9053</span>                                        } else {<a name="line.9053"></a>
+<span class="sourceLineNo">9054</span>                                                ox = (short) toLong(iax / ibx);<a name="line.9054"></a>
+<span class="sourceLineNo">9055</span>                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9055"></a>
+<span class="sourceLineNo">9056</span>                                                        ox--;<a name="line.9056"></a>
+<span class="sourceLineNo">9057</span>                                                }<a name="line.9057"></a>
+<span class="sourceLineNo">9058</span>                                        }<a name="line.9058"></a>
+<span class="sourceLineNo">9059</span>                                        oi16data[it.oIndex] = ox;<a name="line.9059"></a>
+<span class="sourceLineNo">9060</span>                                }<a name="line.9060"></a>
+<span class="sourceLineNo">9061</span>                        } else {<a name="line.9061"></a>
+<span class="sourceLineNo">9062</span>                                while (it.hasNext()) {<a name="line.9062"></a>
+<span class="sourceLineNo">9063</span>                                        final long iax = it.aLong;<a name="line.9063"></a>
+<span class="sourceLineNo">9064</span>                                        final long ibx = it.bLong;<a name="line.9064"></a>
+<span class="sourceLineNo">9065</span>                                        short ox;<a name="line.9065"></a>
+<span class="sourceLineNo">9066</span>                                        if (ibx == 0) {<a name="line.9066"></a>
+<span class="sourceLineNo">9067</span>                                                ox = 0;<a name="line.9067"></a>
+<span class="sourceLineNo">9068</span>                                        } else {<a name="line.9068"></a>
+<span class="sourceLineNo">9069</span>                                                ox = (short) (iax / ibx);<a name="line.9069"></a>
+<span class="sourceLineNo">9070</span>                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9070"></a>
+<span class="sourceLineNo">9071</span>                                                        ox--;<a name="line.9071"></a>
+<span class="sourceLineNo">9072</span>                                                }<a name="line.9072"></a>
+<span class="sourceLineNo">9073</span>                                        }<a name="line.9073"></a>
+<span class="sourceLineNo">9074</span>                                        oi16data[it.oIndex] = ox;<a name="line.9074"></a>
+<span class="sourceLineNo">9075</span>                                }<a name="line.9075"></a>
+<span class="sourceLineNo">9076</span>                        }<a name="line.9076"></a>
+<span class="sourceLineNo">9077</span>                        break;<a name="line.9077"></a>
+<span class="sourceLineNo">9078</span>                case Dataset.INT64:<a name="line.9078"></a>
+<span class="sourceLineNo">9079</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.9079"></a>
+<span class="sourceLineNo">9080</span>                        if (it.isOutputDouble()) {<a name="line.9080"></a>
+<span class="sourceLineNo">9081</span>                                while (it.hasNext()) {<a name="line.9081"></a>
+<span class="sourceLineNo">9082</span>                                        final double iax = it.aDouble;<a name="line.9082"></a>
+<span class="sourceLineNo">9083</span>                                        final double ibx = it.bDouble;<a name="line.9083"></a>
+<span class="sourceLineNo">9084</span>                                        long ox;<a name="line.9084"></a>
+<span class="sourceLineNo">9085</span>                                        if (ibx == 0) {<a name="line.9085"></a>
+<span class="sourceLineNo">9086</span>                                                ox = 0;<a name="line.9086"></a>
+<span class="sourceLineNo">9087</span>                                        } else {<a name="line.9087"></a>
+<span class="sourceLineNo">9088</span>                                                ox = toLong(iax / ibx);<a name="line.9088"></a>
+<span class="sourceLineNo">9089</span>                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9089"></a>
+<span class="sourceLineNo">9090</span>                                                        ox--;<a name="line.9090"></a>
+<span class="sourceLineNo">9091</span>                                                }<a name="line.9091"></a>
+<span class="sourceLineNo">9092</span>                                        }<a name="line.9092"></a>
+<span class="sourceLineNo">9093</span>                                        oi64data[it.oIndex] = ox;<a name="line.9093"></a>
+<span class="sourceLineNo">9094</span>                                }<a name="line.9094"></a>
+<span class="sourceLineNo">9095</span>                        } else {<a name="line.9095"></a>
+<span class="sourceLineNo">9096</span>                                while (it.hasNext()) {<a name="line.9096"></a>
+<span class="sourceLineNo">9097</span>                                        final long iax = it.aLong;<a name="line.9097"></a>
+<span class="sourceLineNo">9098</span>                                        final long ibx = it.bLong;<a name="line.9098"></a>
+<span class="sourceLineNo">9099</span>                                        long ox;<a name="line.9099"></a>
+<span class="sourceLineNo">9100</span>                                        if (ibx == 0) {<a name="line.9100"></a>
+<span class="sourceLineNo">9101</span>                                                ox = 0;<a name="line.9101"></a>
+<span class="sourceLineNo">9102</span>                                        } else {<a name="line.9102"></a>
+<span class="sourceLineNo">9103</span>                                                ox = (iax / ibx);<a name="line.9103"></a>
+<span class="sourceLineNo">9104</span>                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9104"></a>
+<span class="sourceLineNo">9105</span>                                                        ox--;<a name="line.9105"></a>
+<span class="sourceLineNo">9106</span>                                                }<a name="line.9106"></a>
+<span class="sourceLineNo">9107</span>                                        }<a name="line.9107"></a>
+<span class="sourceLineNo">9108</span>                                        oi64data[it.oIndex] = ox;<a name="line.9108"></a>
+<span class="sourceLineNo">9109</span>                                }<a name="line.9109"></a>
+<span class="sourceLineNo">9110</span>                        }<a name="line.9110"></a>
+<span class="sourceLineNo">9111</span>                        break;<a name="line.9111"></a>
+<span class="sourceLineNo">9112</span>                case Dataset.INT32:<a name="line.9112"></a>
+<span class="sourceLineNo">9113</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.9113"></a>
+<span class="sourceLineNo">9114</span>                        if (it.isOutputDouble()) {<a name="line.9114"></a>
+<span class="sourceLineNo">9115</span>                                while (it.hasNext()) {<a name="line.9115"></a>
+<span class="sourceLineNo">9116</span>                                        final double iax = it.aDouble;<a name="line.9116"></a>
+<span class="sourceLineNo">9117</span>                                        final double ibx = it.bDouble;<a name="line.9117"></a>
+<span class="sourceLineNo">9118</span>                                        int ox;<a name="line.9118"></a>
+<span class="sourceLineNo">9119</span>                                        if (ibx == 0) {<a name="line.9119"></a>
+<span class="sourceLineNo">9120</span>                                                ox = 0;<a name="line.9120"></a>
+<span class="sourceLineNo">9121</span>                                        } else {<a name="line.9121"></a>
+<span class="sourceLineNo">9122</span>                                                ox = (int) toLong(iax / ibx);<a name="line.9122"></a>
+<span class="sourceLineNo">9123</span>                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9123"></a>
+<span class="sourceLineNo">9124</span>                                                        ox--;<a name="line.9124"></a>
+<span class="sourceLineNo">9125</span>                                                }<a name="line.9125"></a>
+<span class="sourceLineNo">9126</span>                                        }<a name="line.9126"></a>
+<span class="sourceLineNo">9127</span>                                        oi32data[it.oIndex] = ox;<a name="line.9127"></a>
+<span class="sourceLineNo">9128</span>                                }<a name="line.9128"></a>
+<span class="sourceLineNo">9129</span>                        } else {<a name="line.9129"></a>
+<span class="sourceLineNo">9130</span>                                while (it.hasNext()) {<a name="line.9130"></a>
+<span class="sourceLineNo">9131</span>                                        final long iax = it.aLong;<a name="line.9131"></a>
+<span class="sourceLineNo">9132</span>                                        final long ibx = it.bLong;<a name="line.9132"></a>
+<span class="sourceLineNo">9133</span>                                        int ox;<a name="line.9133"></a>
+<span class="sourceLineNo">9134</span>                                        if (ibx == 0) {<a name="line.9134"></a>
+<span class="sourceLineNo">9135</span>                                                ox = 0;<a name="line.9135"></a>
+<span class="sourceLineNo">9136</span>                                        } else {<a name="line.9136"></a>
+<span class="sourceLineNo">9137</span>                                                ox = (int) (iax / ibx);<a name="line.9137"></a>
+<span class="sourceLineNo">9138</span>                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9138"></a>
+<span class="sourceLineNo">9139</span>                                                        ox--;<a name="line.9139"></a>
+<span class="sourceLineNo">9140</span>                                                }<a name="line.9140"></a>
+<span class="sourceLineNo">9141</span>                                        }<a name="line.9141"></a>
+<span class="sourceLineNo">9142</span>                                        oi32data[it.oIndex] = ox;<a name="line.9142"></a>
+<span class="sourceLineNo">9143</span>                                }<a name="line.9143"></a>
+<span class="sourceLineNo">9144</span>                        }<a name="line.9144"></a>
+<span class="sourceLineNo">9145</span>                        break;<a name="line.9145"></a>
+<span class="sourceLineNo">9146</span>                case Dataset.ARRAYINT8:<a name="line.9146"></a>
+<span class="sourceLineNo">9147</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.9147"></a>
+<span class="sourceLineNo">9148</span>                        if (is == 1) {<a name="line.9148"></a>
+<span class="sourceLineNo">9149</span>                                if (it.isOutputDouble()) {<a name="line.9149"></a>
+<span class="sourceLineNo">9150</span>                                        while (it.hasNext()) {<a name="line.9150"></a>
+<span class="sourceLineNo">9151</span>                                                final double iax = it.aDouble;<a name="line.9151"></a>
+<span class="sourceLineNo">9152</span>                                                final double ibx = it.bDouble;<a name="line.9152"></a>
+<span class="sourceLineNo">9153</span>                                                byte ox;<a name="line.9153"></a>
+<span class="sourceLineNo">9154</span>                                                if (ibx == 0) {<a name="line.9154"></a>
+<span class="sourceLineNo">9155</span>                                                        ox = 0;<a name="line.9155"></a>
+<span class="sourceLineNo">9156</span>                                                } else {<a name="line.9156"></a>
+<span class="sourceLineNo">9157</span>                                                        ox = (byte) toLong(iax / ibx);<a name="line.9157"></a>
+<span class="sourceLineNo">9158</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9158"></a>
+<span class="sourceLineNo">9159</span>                                                                ox--;<a name="line.9159"></a>
+<span class="sourceLineNo">9160</span>                                                        }<a name="line.9160"></a>
+<span class="sourceLineNo">9161</span>                                                }<a name="line.9161"></a>
+<span class="sourceLineNo">9162</span>                                                oai8data[it.oIndex] = ox;<a name="line.9162"></a>
+<span class="sourceLineNo">9163</span>                                        }<a name="line.9163"></a>
+<span class="sourceLineNo">9164</span>                                } else {<a name="line.9164"></a>
+<span class="sourceLineNo">9165</span>                                        while (it.hasNext()) {<a name="line.9165"></a>
+<span class="sourceLineNo">9166</span>                                                final long iax = it.aLong;<a name="line.9166"></a>
+<span class="sourceLineNo">9167</span>                                                final long ibx = it.bLong;<a name="line.9167"></a>
+<span class="sourceLineNo">9168</span>                                                byte ox;<a name="line.9168"></a>
+<span class="sourceLineNo">9169</span>                                                if (ibx == 0) {<a name="line.9169"></a>
+<span class="sourceLineNo">9170</span>                                                        ox = 0;<a name="line.9170"></a>
+<span class="sourceLineNo">9171</span>                                                } else {<a name="line.9171"></a>
+<span class="sourceLineNo">9172</span>                                                        ox = (byte) (iax / ibx);<a name="line.9172"></a>
+<span class="sourceLineNo">9173</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9173"></a>
+<span class="sourceLineNo">9174</span>                                                                ox--;<a name="line.9174"></a>
+<span class="sourceLineNo">9175</span>                                                        }<a name="line.9175"></a>
+<span class="sourceLineNo">9176</span>                                                }<a name="line.9176"></a>
+<span class="sourceLineNo">9177</span>                                                oai8data[it.oIndex] = ox;<a name="line.9177"></a>
+<span class="sourceLineNo">9178</span>                                        }<a name="line.9178"></a>
+<span class="sourceLineNo">9179</span>                                }<a name="line.9179"></a>
+<span class="sourceLineNo">9180</span>                        } else if (as &lt; bs) {<a name="line.9180"></a>
+<span class="sourceLineNo">9181</span>                                if (it.isOutputDouble()) {<a name="line.9181"></a>
+<span class="sourceLineNo">9182</span>                                        while (it.hasNext()) {<a name="line.9182"></a>
+<span class="sourceLineNo">9183</span>                                                final double iax = it.aDouble;<a name="line.9183"></a>
+<span class="sourceLineNo">9184</span>                                                double ibx = it.bDouble;<a name="line.9184"></a>
+<span class="sourceLineNo">9185</span>                                                byte ox;<a name="line.9185"></a>
+<span class="sourceLineNo">9186</span>                                                if (ibx == 0) {<a name="line.9186"></a>
+<span class="sourceLineNo">9187</span>                                                        ox = 0;<a name="line.9187"></a>
+<span class="sourceLineNo">9188</span>                                                } else {<a name="line.9188"></a>
+<span class="sourceLineNo">9189</span>                                                        ox = (byte) toLong(iax / ibx);<a name="line.9189"></a>
+<span class="sourceLineNo">9190</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9190"></a>
+<span class="sourceLineNo">9191</span>                                                                ox--;<a name="line.9191"></a>
+<span class="sourceLineNo">9192</span>                                                        }<a name="line.9192"></a>
+<span class="sourceLineNo">9193</span>                                                }<a name="line.9193"></a>
+<span class="sourceLineNo">9194</span>                                                oai8data[it.oIndex] = ox;<a name="line.9194"></a>
+<span class="sourceLineNo">9195</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.9195"></a>
+<span class="sourceLineNo">9196</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.9196"></a>
+<span class="sourceLineNo">9197</span>                                                        if (ibx == 0) {<a name="line.9197"></a>
+<span class="sourceLineNo">9198</span>                                                                ox = 0;<a name="line.9198"></a>
+<span class="sourceLineNo">9199</span>                                                        } else {<a name="line.9199"></a>
+<span class="sourceLineNo">9200</span>                                                                ox = (byte) toLong(iax / ibx);<a name="line.9200"></a>
+<span class="sourceLineNo">9201</span>                                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9201"></a>
+<span class="sourceLineNo">9202</span>                                                                        ox--;<a name="line.9202"></a>
+<span class="sourceLineNo">9203</span>                                                                }<a name="line.9203"></a>
+<span class="sourceLineNo">9204</span>                                                        }<a name="line.9204"></a>
+<span class="sourceLineNo">9205</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.9205"></a>
+<span class="sourceLineNo">9206</span>                                                }<a name="line.9206"></a>
+<span class="sourceLineNo">9207</span>                                        }<a name="line.9207"></a>
+<span class="sourceLineNo">9208</span>                                } else {<a name="line.9208"></a>
+<span class="sourceLineNo">9209</span>                                        while (it.hasNext()) {<a name="line.9209"></a>
+<span class="sourceLineNo">9210</span>                                                final long iax = it.aLong;<a name="line.9210"></a>
+<span class="sourceLineNo">9211</span>                                                long ibx = it.bLong;<a name="line.9211"></a>
+<span class="sourceLineNo">9212</span>                                                byte ox;<a name="line.9212"></a>
+<span class="sourceLineNo">9213</span>                                                if (ibx == 0) {<a name="line.9213"></a>
+<span class="sourceLineNo">9214</span>                                                        ox = 0;<a name="line.9214"></a>
+<span class="sourceLineNo">9215</span>                                                } else {<a name="line.9215"></a>
+<span class="sourceLineNo">9216</span>                                                        ox = (byte) (iax / ibx);<a name="line.9216"></a>
+<span class="sourceLineNo">9217</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9217"></a>
+<span class="sourceLineNo">9218</span>                                                                ox--;<a name="line.9218"></a>
+<span class="sourceLineNo">9219</span>                                                        }<a name="line.9219"></a>
+<span class="sourceLineNo">9220</span>                                                }<a name="line.9220"></a>
+<span class="sourceLineNo">9221</span>                                                oai8data[it.oIndex] = ox;<a name="line.9221"></a>
+<span class="sourceLineNo">9222</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.9222"></a>
+<span class="sourceLineNo">9223</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.9223"></a>
+<span class="sourceLineNo">9224</span>                                                        if (ibx == 0) {<a name="line.9224"></a>
+<span class="sourceLineNo">9225</span>                                                                ox = 0;<a name="line.9225"></a>
+<span class="sourceLineNo">9226</span>                                                        } else {<a name="line.9226"></a>
+<span class="sourceLineNo">9227</span>                                                                ox = (byte) (iax / ibx);<a name="line.9227"></a>
+<span class="sourceLineNo">9228</span>                                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9228"></a>
+<span class="sourceLineNo">9229</span>                                                                        ox--;<a name="line.9229"></a>
+<span class="sourceLineNo">9230</span>                                                                }<a name="line.9230"></a>
+<span class="sourceLineNo">9231</span>                                                        }<a name="line.9231"></a>
+<span class="sourceLineNo">9232</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.9232"></a>
+<span class="sourceLineNo">9233</span>                                                }<a name="line.9233"></a>
+<span class="sourceLineNo">9234</span>                                        }<a name="line.9234"></a>
+<span class="sourceLineNo">9235</span>                                }<a name="line.9235"></a>
+<span class="sourceLineNo">9236</span>                        } else if (as &gt; bs) {<a name="line.9236"></a>
+<span class="sourceLineNo">9237</span>                                if (it.isOutputDouble()) {<a name="line.9237"></a>
+<span class="sourceLineNo">9238</span>                                        while (it.hasNext()) {<a name="line.9238"></a>
+<span class="sourceLineNo">9239</span>                                                double iax = it.aDouble;<a name="line.9239"></a>
+<span class="sourceLineNo">9240</span>                                                final double ibx = it.bDouble;<a name="line.9240"></a>
+<span class="sourceLineNo">9241</span>                                                byte ox;<a name="line.9241"></a>
+<span class="sourceLineNo">9242</span>                                                if (ibx == 0) {<a name="line.9242"></a>
+<span class="sourceLineNo">9243</span>                                                        ox = 0;<a name="line.9243"></a>
+<span class="sourceLineNo">9244</span>                                                } else {<a name="line.9244"></a>
+<span class="sourceLineNo">9245</span>                                                        ox = (byte) toLong(iax / ibx);<a name="line.9245"></a>
+<span class="sourceLineNo">9246</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9246"></a>
+<span class="sourceLineNo">9247</span>                                                                ox--;<a name="line.9247"></a>
+<span class="sourceLineNo">9248</span>                                                        }<a name="line.9248"></a>
+<span class="sourceLineNo">9249</span>                                                }<a name="line.9249"></a>
+<span class="sourceLineNo">9250</span>                                                oai8data[it.oIndex] = ox;<a name="line.9250"></a>
+<span class="sourceLineNo">9251</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.9251"></a>
+<span class="sourceLineNo">9252</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.9252"></a>
+<span class="sourceLineNo">9253</span>                                                        if (ibx == 0) {<a name="line.9253"></a>
+<span class="sourceLineNo">9254</span>                                                                ox = 0;<a name="line.9254"></a>
+<span class="sourceLineNo">9255</span>                                                        } else {<a name="line.9255"></a>
+<span class="sourceLineNo">9256</span>                                                                ox = (byte) toLong(iax / ibx);<a name="line.9256"></a>
+<span class="sourceLineNo">9257</span>                                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9257"></a>
+<span class="sourceLineNo">9258</span>                                                                        ox--;<a name="line.9258"></a>
+<span class="sourceLineNo">9259</span>                                                                }<a name="line.9259"></a>
+<span class="sourceLineNo">9260</span>                                                        }<a name="line.9260"></a>
+<span class="sourceLineNo">9261</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.9261"></a>
+<span class="sourceLineNo">9262</span>                                                }<a name="line.9262"></a>
+<span class="sourceLineNo">9263</span>                                        }<a name="line.9263"></a>
+<span class="sourceLineNo">9264</span>                                } else {<a name="line.9264"></a>
+<span class="sourceLineNo">9265</span>                                        while (it.hasNext()) {<a name="line.9265"></a>
+<span class="sourceLineNo">9266</span>                                                long iax = it.aLong;<a name="line.9266"></a>
+<span class="sourceLineNo">9267</span>                                                final long ibx = it.bLong;<a name="line.9267"></a>
+<span class="sourceLineNo">9268</span>                                                byte ox;<a name="line.9268"></a>
+<span class="sourceLineNo">9269</span>                                                if (ibx == 0) {<a name="line.9269"></a>
+<span class="sourceLineNo">9270</span>                                                        ox = 0;<a name="line.9270"></a>
+<span class="sourceLineNo">9271</span>                                                } else {<a name="line.9271"></a>
+<span class="sourceLineNo">9272</span>                                                        ox = (byte) (iax / ibx);<a name="line.9272"></a>
+<span class="sourceLineNo">9273</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9273"></a>
+<span class="sourceLineNo">9274</span>                                                                ox--;<a name="line.9274"></a>
+<span class="sourceLineNo">9275</span>                                                        }<a name="line.9275"></a>
+<span class="sourceLineNo">9276</span>                                                }<a name="line.9276"></a>
+<span class="sourceLineNo">9277</span>                                                oai8data[it.oIndex] = ox;<a name="line.9277"></a>
+<span class="sourceLineNo">9278</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.9278"></a>
+<span class="sourceLineNo">9279</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.9279"></a>
+<span class="sourceLineNo">9280</span>                                                        if (ibx == 0) {<a name="line.9280"></a>
+<span class="sourceLineNo">9281</span>                                                                ox = 0;<a name="line.9281"></a>
+<span class="sourceLineNo">9282</span>                                                        } else {<a name="line.9282"></a>
+<span class="sourceLineNo">9283</span>                                                                ox = (byte) (iax / ibx);<a name="line.9283"></a>
+<span class="sourceLineNo">9284</span>                                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9284"></a>
+<span class="sourceLineNo">9285</span>                                                                        ox--;<a name="line.9285"></a>
+<span class="sourceLineNo">9286</span>                                                                }<a name="line.9286"></a>
+<span class="sourceLineNo">9287</span>                                                        }<a name="line.9287"></a>
+<span class="sourceLineNo">9288</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.9288"></a>
+<span class="sourceLineNo">9289</span>                                                }<a name="line.9289"></a>
+<span class="sourceLineNo">9290</span>                                        }<a name="line.9290"></a>
+<span class="sourceLineNo">9291</span>                                }<a name="line.9291"></a>
+<span class="sourceLineNo">9292</span>                        } else if (as == 1) {<a name="line.9292"></a>
+<span class="sourceLineNo">9293</span>                                if (it.isOutputDouble()) {<a name="line.9293"></a>
+<span class="sourceLineNo">9294</span>                                        while (it.hasNext()) {<a name="line.9294"></a>
+<span class="sourceLineNo">9295</span>                                                final double iax = it.aDouble;<a name="line.9295"></a>
+<span class="sourceLineNo">9296</span>                                                final double ibx = it.bDouble;<a name="line.9296"></a>
+<span class="sourceLineNo">9297</span>                                                byte ox;<a name="line.9297"></a>
+<span class="sourceLineNo">9298</span>                                                if (ibx == 0) {<a name="line.9298"></a>
+<span class="sourceLineNo">9299</span>                                                        ox = 0;<a name="line.9299"></a>
+<span class="sourceLineNo">9300</span>                                                } else {<a name="line.9300"></a>
+<span class="sourceLineNo">9301</span>                                                        ox = (byte) toLong(iax / ibx);<a name="line.9301"></a>
+<span class="sourceLineNo">9302</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9302"></a>
+<span class="sourceLineNo">9303</span>                                                                ox--;<a name="line.9303"></a>
+<span class="sourceLineNo">9304</span>                                                        }<a name="line.9304"></a>
+<span class="sourceLineNo">9305</span>                                                }<a name="line.9305"></a>
+<span class="sourceLineNo">9306</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.9306"></a>
+<span class="sourceLineNo">9307</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.9307"></a>
+<span class="sourceLineNo">9308</span>                                                }<a name="line.9308"></a>
+<span class="sourceLineNo">9309</span>                                        }<a name="line.9309"></a>
+<span class="sourceLineNo">9310</span>                                } else {<a name="line.9310"></a>
+<span class="sourceLineNo">9311</span>                                        while (it.hasNext()) {<a name="line.9311"></a>
+<span class="sourceLineNo">9312</span>                                                final long iax = it.aLong;<a name="line.9312"></a>
+<span class="sourceLineNo">9313</span>                                                final long ibx = it.bLong;<a name="line.9313"></a>
+<span class="sourceLineNo">9314</span>                                                byte ox;<a name="line.9314"></a>
+<span class="sourceLineNo">9315</span>                                                if (ibx == 0) {<a name="line.9315"></a>
+<span class="sourceLineNo">9316</span>                                                        ox = 0;<a name="line.9316"></a>
+<span class="sourceLineNo">9317</span>                                                } else {<a name="line.9317"></a>
+<span class="sourceLineNo">9318</span>                                                        ox = (byte) (iax / ibx);<a name="line.9318"></a>
+<span class="sourceLineNo">9319</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9319"></a>
+<span class="sourceLineNo">9320</span>                                                                ox--;<a name="line.9320"></a>
+<span class="sourceLineNo">9321</span>                                                        }<a name="line.9321"></a>
+<span class="sourceLineNo">9322</span>                                                }<a name="line.9322"></a>
+<span class="sourceLineNo">9323</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.9323"></a>
+<span class="sourceLineNo">9324</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.9324"></a>
+<span class="sourceLineNo">9325</span>                                                }<a name="line.9325"></a>
+<span class="sourceLineNo">9326</span>                                        }<a name="line.9326"></a>
+<span class="sourceLineNo">9327</span>                                }<a name="line.9327"></a>
+<span class="sourceLineNo">9328</span>                        } else {<a name="line.9328"></a>
+<span class="sourceLineNo">9329</span>                                if (it.isOutputDouble()) {<a name="line.9329"></a>
+<span class="sourceLineNo">9330</span>                                        while (it.hasNext()) {<a name="line.9330"></a>
+<span class="sourceLineNo">9331</span>                                                double iax = it.aDouble;<a name="line.9331"></a>
+<span class="sourceLineNo">9332</span>                                                double ibx = it.bDouble;<a name="line.9332"></a>
+<span class="sourceLineNo">9333</span>                                                byte ox;<a name="line.9333"></a>
+<span class="sourceLineNo">9334</span>                                                if (ibx == 0) {<a name="line.9334"></a>
+<span class="sourceLineNo">9335</span>                                                        ox = 0;<a name="line.9335"></a>
+<span class="sourceLineNo">9336</span>                                                } else {<a name="line.9336"></a>
+<span class="sourceLineNo">9337</span>                                                        ox = (byte) toLong(iax / ibx);<a name="line.9337"></a>
+<span class="sourceLineNo">9338</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9338"></a>
+<span class="sourceLineNo">9339</span>                                                                ox--;<a name="line.9339"></a>
+<span class="sourceLineNo">9340</span>                                                        }<a name="line.9340"></a>
+<span class="sourceLineNo">9341</span>                                                }<a name="line.9341"></a>
+<span class="sourceLineNo">9342</span>                                                oai8data[it.oIndex] = ox;<a name="line.9342"></a>
+<span class="sourceLineNo">9343</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.9343"></a>
+<span class="sourceLineNo">9344</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.9344"></a>
+<span class="sourceLineNo">9345</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.9345"></a>
+<span class="sourceLineNo">9346</span>                                                        if (ibx == 0) {<a name="line.9346"></a>
+<span class="sourceLineNo">9347</span>                                                                ox = 0;<a name="line.9347"></a>
+<span class="sourceLineNo">9348</span>                                                        } else {<a name="line.9348"></a>
+<span class="sourceLineNo">9349</span>                                                                ox = (byte) toLong(iax / ibx);<a name="line.9349"></a>
+<span class="sourceLineNo">9350</span>                                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9350"></a>
+<span class="sourceLineNo">9351</span>                                                                        ox--;<a name="line.9351"></a>
+<span class="sourceLineNo">9352</span>                                                                }<a name="line.9352"></a>
+<span class="sourceLineNo">9353</span>                                                        }<a name="line.9353"></a>
+<span class="sourceLineNo">9354</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.9354"></a>
+<span class="sourceLineNo">9355</span>                                                }<a name="line.9355"></a>
+<span class="sourceLineNo">9356</span>                                        }<a name="line.9356"></a>
+<span class="sourceLineNo">9357</span>                                } else {<a name="line.9357"></a>
+<span class="sourceLineNo">9358</span>                                        while (it.hasNext()) {<a name="line.9358"></a>
+<span class="sourceLineNo">9359</span>                                                long iax = it.aLong;<a name="line.9359"></a>
+<span class="sourceLineNo">9360</span>                                                long ibx = it.bLong;<a name="line.9360"></a>
+<span class="sourceLineNo">9361</span>                                                byte ox;<a name="line.9361"></a>
+<span class="sourceLineNo">9362</span>                                                if (ibx == 0) {<a name="line.9362"></a>
+<span class="sourceLineNo">9363</span>                                                        ox = 0;<a name="line.9363"></a>
+<span class="sourceLineNo">9364</span>                                                } else {<a name="line.9364"></a>
+<span class="sourceLineNo">9365</span>                                                        ox = (byte) (iax / ibx);<a name="line.9365"></a>
+<span class="sourceLineNo">9366</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9366"></a>
+<span class="sourceLineNo">9367</span>                                                                ox--;<a name="line.9367"></a>
+<span class="sourceLineNo">9368</span>                                                        }<a name="line.9368"></a>
+<span class="sourceLineNo">9369</span>                                                }<a name="line.9369"></a>
+<span class="sourceLineNo">9370</span>                                                oai8data[it.oIndex] = ox;<a name="line.9370"></a>
+<span class="sourceLineNo">9371</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.9371"></a>
+<span class="sourceLineNo">9372</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.9372"></a>
+<span class="sourceLineNo">9373</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.9373"></a>
+<span class="sourceLineNo">9374</span>                                                        if (ibx == 0) {<a name="line.9374"></a>
+<span class="sourceLineNo">9375</span>                                                                ox = 0;<a name="line.9375"></a>
+<span class="sourceLineNo">9376</span>                                                        } else {<a name="line.9376"></a>
+<span class="sourceLineNo">9377</span>                                                                ox = (byte) (iax / ibx);<a name="line.9377"></a>
+<span class="sourceLineNo">9378</span>                                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9378"></a>
+<span class="sourceLineNo">9379</span>                                                                        ox--;<a name="line.9379"></a>
+<span class="sourceLineNo">9380</span>                                                                }<a name="line.9380"></a>
+<span class="sourceLineNo">9381</span>                                                        }<a name="line.9381"></a>
+<span class="sourceLineNo">9382</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.9382"></a>
+<span class="sourceLineNo">9383</span>                                                }<a name="line.9383"></a>
+<span class="sourceLineNo">9384</span>                                        }<a name="line.9384"></a>
+<span class="sourceLineNo">9385</span>                                }<a name="line.9385"></a>
+<span class="sourceLineNo">9386</span>                        }<a name="line.9386"></a>
+<span class="sourceLineNo">9387</span>                        break;<a name="line.9387"></a>
+<span class="sourceLineNo">9388</span>                case Dataset.ARRAYINT16:<a name="line.9388"></a>
+<span class="sourceLineNo">9389</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.9389"></a>
+<span class="sourceLineNo">9390</span>                        if (is == 1) {<a name="line.9390"></a>
+<span class="sourceLineNo">9391</span>                                if (it.isOutputDouble()) {<a name="line.9391"></a>
+<span class="sourceLineNo">9392</span>                                        while (it.hasNext()) {<a name="line.9392"></a>
+<span class="sourceLineNo">9393</span>                                                final double iax = it.aDouble;<a name="line.9393"></a>
+<span class="sourceLineNo">9394</span>                                                final double ibx = it.bDouble;<a name="line.9394"></a>
+<span class="sourceLineNo">9395</span>                                                short ox;<a name="line.9395"></a>
+<span class="sourceLineNo">9396</span>                                                if (ibx == 0) {<a name="line.9396"></a>
+<span class="sourceLineNo">9397</span>                                                        ox = 0;<a name="line.9397"></a>
+<span class="sourceLineNo">9398</span>                                                } else {<a name="line.9398"></a>
+<span class="sourceLineNo">9399</span>                                                        ox = (short) toLong(iax / ibx);<a name="line.9399"></a>
+<span class="sourceLineNo">9400</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9400"></a>
+<span class="sourceLineNo">9401</span>                                                                ox--;<a name="line.9401"></a>
+<span class="sourceLineNo">9402</span>                                                        }<a name="line.9402"></a>
+<span class="sourceLineNo">9403</span>                                                }<a name="line.9403"></a>
+<span class="sourceLineNo">9404</span>                                                oai16data[it.oIndex] = ox;<a name="line.9404"></a>
+<span class="sourceLineNo">9405</span>                                        }<a name="line.9405"></a>
+<span class="sourceLineNo">9406</span>                                } else {<a name="line.9406"></a>
+<span class="sourceLineNo">9407</span>                                        while (it.hasNext()) {<a name="line.9407"></a>
+<span class="sourceLineNo">9408</span>                                                final long iax = it.aLong;<a name="line.9408"></a>
+<span class="sourceLineNo">9409</span>                                                final long ibx = it.bLong;<a name="line.9409"></a>
+<span class="sourceLineNo">9410</span>                                                short ox;<a name="line.9410"></a>
+<span class="sourceLineNo">9411</span>                                                if (ibx == 0) {<a name="line.9411"></a>
+<span class="sourceLineNo">9412</span>                                                        ox = 0;<a name="line.9412"></a>
+<span class="sourceLineNo">9413</span>                                                } else {<a name="line.9413"></a>
+<span class="sourceLineNo">9414</span>                                                        ox = (short) (iax / ibx);<a name="line.9414"></a>
+<span class="sourceLineNo">9415</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9415"></a>
+<span class="sourceLineNo">9416</span>                                                                ox--;<a name="line.9416"></a>
+<span class="sourceLineNo">9417</span>                                                        }<a name="line.9417"></a>
+<span class="sourceLineNo">9418</span>                                                }<a name="line.9418"></a>
+<span class="sourceLineNo">9419</span>                                                oai16data[it.oIndex] = ox;<a name="line.9419"></a>
+<span class="sourceLineNo">9420</span>                                        }<a name="line.9420"></a>
+<span class="sourceLineNo">9421</span>                                }<a name="line.9421"></a>
+<span class="sourceLineNo">9422</span>                        } else if (as &lt; bs) {<a name="line.9422"></a>
+<span class="sourceLineNo">9423</span>                                if (it.isOutputDouble()) {<a name="line.9423"></a>
+<span class="sourceLineNo">9424</span>                                        while (it.hasNext()) {<a name="line.9424"></a>
+<span class="sourceLineNo">9425</span>                                                final double iax = it.aDouble;<a name="line.9425"></a>
+<span class="sourceLineNo">9426</span>                                                double ibx = it.bDouble;<a name="line.9426"></a>
+<span class="sourceLineNo">9427</span>                                                short ox;<a name="line.9427"></a>
+<span class="sourceLineNo">9428</span>                                                if (ibx == 0) {<a name="line.9428"></a>
+<span class="sourceLineNo">9429</span>                                                        ox = 0;<a name="line.9429"></a>
+<span class="sourceLineNo">9430</span>                                                } else {<a name="line.9430"></a>
+<span class="sourceLineNo">9431</span>                                                        ox = (short) toLong(iax / ibx);<a name="line.9431"></a>
+<span class="sourceLineNo">9432</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9432"></a>
+<span class="sourceLineNo">9433</span>                                                                ox--;<a name="line.9433"></a>
+<span class="sourceLineNo">9434</span>                                                        }<a name="line.9434"></a>
+<span class="sourceLineNo">9435</span>                                                }<a name="line.9435"></a>
+<span class="sourceLineNo">9436</span>                                                oai16data[it.oIndex] = ox;<a name="line.9436"></a>
+<span class="sourceLineNo">9437</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.9437"></a>
+<span class="sourceLineNo">9438</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.9438"></a>
+<span class="sourceLineNo">9439</span>                                                        if (ibx == 0) {<a name="line.9439"></a>
+<span class="sourceLineNo">9440</span>                                                                ox = 0;<a name="line.9440"></a>
+<span class="sourceLineNo">9441</span>                                                        } else {<a name="line.9441"></a>
+<span class="sourceLineNo">9442</span>                                                                ox = (short) toLong(iax / ibx);<a name="line.9442"></a>
+<span class="sourceLineNo">9443</span>                                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9443"></a>
+<span class="sourceLineNo">9444</span>                                                                        ox--;<a name="line.9444"></a>
+<span class="sourceLineNo">9445</span>                                                                }<a name="line.9445"></a>
+<span class="sourceLineNo">9446</span>                                                        }<a name="line.9446"></a>
+<span class="sourceLineNo">9447</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.9447"></a>
+<span class="sourceLineNo">9448</span>                                                }<a name="line.9448"></a>
+<span class="sourceLineNo">9449</span>                                        }<a name="line.9449"></a>
+<span class="sourceLineNo">9450</span>                                } else {<a name="line.9450"></a>
+<span class="sourceLineNo">9451</span>                                        while (it.hasNext()) {<a name="line.9451"></a>
+<span class="sourceLineNo">9452</span>                                                final long iax = it.aLong;<a name="line.9452"></a>
+<span class="sourceLineNo">9453</span>                                                long ibx = it.bLong;<a name="line.9453"></a>
+<span class="sourceLineNo">9454</span>                                                short ox;<a name="line.9454"></a>
+<span class="sourceLineNo">9455</span>                                                if (ibx == 0) {<a name="line.9455"></a>
+<span class="sourceLineNo">9456</span>                                                        ox = 0;<a name="line.9456"></a>
+<span class="sourceLineNo">9457</span>                                                } else {<a name="line.9457"></a>
+<span class="sourceLineNo">9458</span>                                                        ox = (short) (iax / ibx);<a name="line.9458"></a>
+<span class="sourceLineNo">9459</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9459"></a>
+<span class="sourceLineNo">9460</span>                                                                ox--;<a name="line.9460"></a>
+<span class="sourceLineNo">9461</span>                                                        }<a name="line.9461"></a>
+<span class="sourceLineNo">9462</span>                                                }<a name="line.9462"></a>
+<span class="sourceLineNo">9463</span>                                                oai16data[it.oIndex] = ox;<a name="line.9463"></a>
+<span class="sourceLineNo">9464</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.9464"></a>
+<span class="sourceLineNo">9465</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.9465"></a>
+<span class="sourceLineNo">9466</span>                                                        if (ibx == 0) {<a name="line.9466"></a>
+<span class="sourceLineNo">9467</span>                                                                ox = 0;<a name="line.9467"></a>
+<span class="sourceLineNo">9468</span>                                                        } else {<a name="line.9468"></a>
+<span class="sourceLineNo">9469</span>                                                                ox = (short) (iax / ibx);<a name="line.9469"></a>
+<span class="sourceLineNo">9470</span>                                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9470"></a>
+<span class="sourceLineNo">9471</span>                                                                        ox--;<a name="line.9471"></a>
+<span class="sourceLineNo">9472</span>                                                                }<a name="line.9472"></a>
+<span class="sourceLineNo">9473</span>                                                        }<a name="line.9473"></a>
+<span class="sourceLineNo">9474</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.9474"></a>
+<span class="sourceLineNo">9475</span>                                                }<a name="line.9475"></a>
+<span class="sourceLineNo">9476</span>                                        }<a name="line.9476"></a>
+<span class="sourceLineNo">9477</span>                                }<a name="line.9477"></a>
+<span class="sourceLineNo">9478</span>                        } else if (as &gt; bs) {<a name="line.9478"></a>
+<span class="sourceLineNo">9479</span>                                if (it.isOutputDouble()) {<a name="line.9479"></a>
+<span class="sourceLineNo">9480</span>                                        while (it.hasNext()) {<a name="line.9480"></a>
+<span class="sourceLineNo">9481</span>                                                double iax = it.aDouble;<a name="line.9481"></a>
+<span class="sourceLineNo">9482</span>                                                final double ibx = it.bDouble;<a name="line.9482"></a>
+<span class="sourceLineNo">9483</span>                                                short ox;<a name="line.9483"></a>
+<span class="sourceLineNo">9484</span>                                                if (ibx == 0) {<a name="line.9484"></a>
+<span class="sourceLineNo">9485</span>                                                        ox = 0;<a name="line.9485"></a>
+<span class="sourceLineNo">9486</span>                                                } else {<a name="line.9486"></a>
+<span class="sourceLineNo">9487</span>                                                        ox = (short) toLong(iax / ibx);<a name="line.9487"></a>
+<span class="sourceLineNo">9488</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9488"></a>
+<span class="sourceLineNo">9489</span>                                                                ox--;<a name="line.9489"></a>
+<span class="sourceLineNo">9490</span>                                                        }<a name="line.9490"></a>
+<span class="sourceLineNo">9491</span>                                                }<a name="line.9491"></a>
+<span class="sourceLineNo">9492</span>                                                oai16data[it.oIndex] = ox;<a name="line.9492"></a>
+<span class="sourceLineNo">9493</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.9493"></a>
+<span class="sourceLineNo">9494</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.9494"></a>
+<span class="sourceLineNo">9495</span>                                                        if (ibx == 0) {<a name="line.9495"></a>
+<span class="sourceLineNo">9496</span>                                                                ox = 0;<a name="line.9496"></a>
+<span class="sourceLineNo">9497</span>                                                        } else {<a name="line.9497"></a>
+<span class="sourceLineNo">9498</span>                                                                ox = (short) toLong(iax / ibx);<a name="line.9498"></a>
+<span class="sourceLineNo">9499</span>                                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9499"></a>
+<span class="sourceLineNo">9500</span>                                                                        ox--;<a name="line.9500"></a>
+<span class="sourceLineNo">9501</span>                                                                }<a name="line.9501"></a>
+<span class="sourceLineNo">9502</span>                                                        }<a name="line.9502"></a>
+<span class="sourceLineNo">9503</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.9503"></a>
+<span class="sourceLineNo">9504</span>                                                }<a name="line.9504"></a>
+<span class="sourceLineNo">9505</span>                                        }<a name="line.9505"></a>
+<span class="sourceLineNo">9506</span>                                } else {<a name="line.9506"></a>
+<span class="sourceLineNo">9507</span>                                        while (it.hasNext()) {<a name="line.9507"></a>
+<span class="sourceLineNo">9508</span>                                                long iax = it.aLong;<a name="line.9508"></a>
+<span class="sourceLineNo">9509</span>                                                final long ibx = it.bLong;<a name="line.9509"></a>
+<span class="sourceLineNo">9510</span>                                                short ox;<a name="line.9510"></a>
+<span class="sourceLineNo">9511</span>                                                if (ibx == 0) {<a name="line.9511"></a>
+<span class="sourceLineNo">9512</span>                                                        ox = 0;<a name="line.9512"></a>
+<span class="sourceLineNo">9513</span>                                                } else {<a name="line.9513"></a>
+<span class="sourceLineNo">9514</span>                                                        ox = (short) (iax / ibx);<a name="line.9514"></a>
+<span class="sourceLineNo">9515</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9515"></a>
+<span class="sourceLineNo">9516</span>                                                                ox--;<a name="line.9516"></a>
+<span class="sourceLineNo">9517</span>                                                        }<a name="line.9517"></a>
+<span class="sourceLineNo">9518</span>                                                }<a name="line.9518"></a>
+<span class="sourceLineNo">9519</span>                                                oai16data[it.oIndex] = ox;<a name="line.9519"></a>
+<span class="sourceLineNo">9520</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.9520"></a>
+<span class="sourceLineNo">9521</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.9521"></a>
+<span class="sourceLineNo">9522</span>                                                        if (ibx == 0) {<a name="line.9522"></a>
+<span class="sourceLineNo">9523</span>                                                                ox = 0;<a name="line.9523"></a>
+<span class="sourceLineNo">9524</span>                                                        } else {<a name="line.9524"></a>
+<span class="sourceLineNo">9525</span>                                                                ox = (short) (iax / ibx);<a name="line.9525"></a>
+<span class="sourceLineNo">9526</span>                                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9526"></a>
+<span class="sourceLineNo">9527</span>                                                                        ox--;<a name="line.9527"></a>
+<span class="sourceLineNo">9528</span>                                                                }<a name="line.9528"></a>
+<span class="sourceLineNo">9529</span>                                                        }<a name="line.9529"></a>
+<span class="sourceLineNo">9530</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.9530"></a>
+<span class="sourceLineNo">9531</span>                                                }<a name="line.9531"></a>
+<span class="sourceLineNo">9532</span>                                        }<a name="line.9532"></a>
+<span class="sourceLineNo">9533</span>                                }<a name="line.9533"></a>
+<span class="sourceLineNo">9534</span>                        } else if (as == 1) {<a name="line.9534"></a>
+<span class="sourceLineNo">9535</span>                                if (it.isOutputDouble()) {<a name="line.9535"></a>
+<span class="sourceLineNo">9536</span>                                        while (it.hasNext()) {<a name="line.9536"></a>
+<span class="sourceLineNo">9537</span>                                                final double iax = it.aDouble;<a name="line.9537"></a>
+<span class="sourceLineNo">9538</span>                                                final double ibx = it.bDouble;<a name="line.9538"></a>
+<span class="sourceLineNo">9539</span>                                                short ox;<a name="line.9539"></a>
+<span class="sourceLineNo">9540</span>                                                if (ibx == 0) {<a name="line.9540"></a>
+<span class="sourceLineNo">9541</span>                                                        ox = 0;<a name="line.9541"></a>
+<span class="sourceLineNo">9542</span>                                                } else {<a name="line.9542"></a>
+<span class="sourceLineNo">9543</span>                                                        ox = (short) toLong(iax / ibx);<a name="line.9543"></a>
+<span class="sourceLineNo">9544</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9544"></a>
+<span class="sourceLineNo">9545</span>                                                                ox--;<a name="line.9545"></a>
+<span class="sourceLineNo">9546</span>                                                        }<a name="line.9546"></a>
+<span class="sourceLineNo">9547</span>                                                }<a name="line.9547"></a>
+<span class="sourceLineNo">9548</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.9548"></a>
+<span class="sourceLineNo">9549</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.9549"></a>
+<span class="sourceLineNo">9550</span>                                                }<a name="line.9550"></a>
+<span class="sourceLineNo">9551</span>                                        }<a name="line.9551"></a>
+<span class="sourceLineNo">9552</span>                                } else {<a name="line.9552"></a>
+<span class="sourceLineNo">9553</span>                                        while (it.hasNext()) {<a name="line.9553"></a>
+<span class="sourceLineNo">9554</span>                                                final long iax = it.aLong;<a name="line.9554"></a>
+<span class="sourceLineNo">9555</span>                                                final long ibx = it.bLong;<a name="line.9555"></a>
+<span class="sourceLineNo">9556</span>                                                short ox;<a name="line.9556"></a>
+<span class="sourceLineNo">9557</span>                                                if (ibx == 0) {<a name="line.9557"></a>
+<span class="sourceLineNo">9558</span>                                                        ox = 0;<a name="line.9558"></a>
+<span class="sourceLineNo">9559</span>                                                } else {<a name="line.9559"></a>
+<span class="sourceLineNo">9560</span>                                                        ox = (short) (iax / ibx);<a name="line.9560"></a>
+<span class="sourceLineNo">9561</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9561"></a>
+<span class="sourceLineNo">9562</span>                                                                ox--;<a name="line.9562"></a>
+<span class="sourceLineNo">9563</span>                                                        }<a name="line.9563"></a>
+<span class="sourceLineNo">9564</span>                                                }<a name="line.9564"></a>
+<span class="sourceLineNo">9565</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.9565"></a>
+<span class="sourceLineNo">9566</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.9566"></a>
+<span class="sourceLineNo">9567</span>                                                }<a name="line.9567"></a>
+<span class="sourceLineNo">9568</span>                                        }<a name="line.9568"></a>
+<span class="sourceLineNo">9569</span>                                }<a name="line.9569"></a>
+<span class="sourceLineNo">9570</span>                        } else {<a name="line.9570"></a>
+<span class="sourceLineNo">9571</span>                                if (it.isOutputDouble()) {<a name="line.9571"></a>
+<span class="sourceLineNo">9572</span>                                        while (it.hasNext()) {<a name="line.9572"></a>
+<span class="sourceLineNo">9573</span>                                                double iax = it.aDouble;<a name="line.9573"></a>
+<span class="sourceLineNo">9574</span>                                                double ibx = it.bDouble;<a name="line.9574"></a>
+<span class="sourceLineNo">9575</span>                                                short ox;<a name="line.9575"></a>
+<span class="sourceLineNo">9576</span>                                                if (ibx == 0) {<a name="line.9576"></a>
+<span class="sourceLineNo">9577</span>                                                        ox = 0;<a name="line.9577"></a>
+<span class="sourceLineNo">9578</span>                                                } else {<a name="line.9578"></a>
+<span class="sourceLineNo">9579</span>                                                        ox = (short) toLong(iax / ibx);<a name="line.9579"></a>
+<span class="sourceLineNo">9580</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9580"></a>
+<span class="sourceLineNo">9581</span>                                                                ox--;<a name="line.9581"></a>
+<span class="sourceLineNo">9582</span>                                                        }<a name="line.9582"></a>
+<span class="sourceLineNo">9583</span>                                                }<a name="line.9583"></a>
+<span class="sourceLineNo">9584</span>                                                oai16data[it.oIndex] = ox;<a name="line.9584"></a>
+<span class="sourceLineNo">9585</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.9585"></a>
+<span class="sourceLineNo">9586</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.9586"></a>
+<span class="sourceLineNo">9587</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.9587"></a>
+<span class="sourceLineNo">9588</span>                                                        if (ibx == 0) {<a name="line.9588"></a>
+<span class="sourceLineNo">9589</span>                                                                ox = 0;<a name="line.9589"></a>
+<span class="sourceLineNo">9590</span>                                                        } else {<a name="line.9590"></a>
+<span class="sourceLineNo">9591</span>                                                                ox = (short) toLong(iax / ibx);<a name="line.9591"></a>
+<span class="sourceLineNo">9592</span>                                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9592"></a>
+<span class="sourceLineNo">9593</span>                                                                        ox--;<a name="line.9593"></a>
+<span class="sourceLineNo">9594</span>                                                                }<a name="line.9594"></a>
+<span class="sourceLineNo">9595</span>                                                        }<a name="line.9595"></a>
+<span class="sourceLineNo">9596</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.9596"></a>
+<span class="sourceLineNo">9597</span>                                                }<a name="line.9597"></a>
+<span class="sourceLineNo">9598</span>                                        }<a name="line.9598"></a>
+<span class="sourceLineNo">9599</span>                                } else {<a name="line.9599"></a>
+<span class="sourceLineNo">9600</span>                                        while (it.hasNext()) {<a name="line.9600"></a>
+<span class="sourceLineNo">9601</span>                                                long iax = it.aLong;<a name="line.9601"></a>
+<span class="sourceLineNo">9602</span>                                                long ibx = it.bLong;<a name="line.9602"></a>
+<span class="sourceLineNo">9603</span>                                                short ox;<a name="line.9603"></a>
+<span class="sourceLineNo">9604</span>                                                if (ibx == 0) {<a name="line.9604"></a>
+<span class="sourceLineNo">9605</span>                                                        ox = 0;<a name="line.9605"></a>
+<span class="sourceLineNo">9606</span>                                                } else {<a name="line.9606"></a>
+<span class="sourceLineNo">9607</span>                                                        ox = (short) (iax / ibx);<a name="line.9607"></a>
+<span class="sourceLineNo">9608</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9608"></a>
+<span class="sourceLineNo">9609</span>                                                                ox--;<a name="line.9609"></a>
+<span class="sourceLineNo">9610</span>                                                        }<a name="line.9610"></a>
+<span class="sourceLineNo">9611</span>                                                }<a name="line.9611"></a>
+<span class="sourceLineNo">9612</span>                                                oai16data[it.oIndex] = ox;<a name="line.9612"></a>
+<span class="sourceLineNo">9613</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.9613"></a>
+<span class="sourceLineNo">9614</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.9614"></a>
+<span class="sourceLineNo">9615</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.9615"></a>
+<span class="sourceLineNo">9616</span>                                                        if (ibx == 0) {<a name="line.9616"></a>
+<span class="sourceLineNo">9617</span>                                                                ox = 0;<a name="line.9617"></a>
+<span class="sourceLineNo">9618</span>                                                        } else {<a name="line.9618"></a>
+<span class="sourceLineNo">9619</span>                                                                ox = (short) (iax / ibx);<a name="line.9619"></a>
+<span class="sourceLineNo">9620</span>                                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9620"></a>
+<span class="sourceLineNo">9621</span>                                                                        ox--;<a name="line.9621"></a>
+<span class="sourceLineNo">9622</span>                                                                }<a name="line.9622"></a>
+<span class="sourceLineNo">9623</span>                                                        }<a name="line.9623"></a>
+<span class="sourceLineNo">9624</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.9624"></a>
+<span class="sourceLineNo">9625</span>                                                }<a name="line.9625"></a>
+<span class="sourceLineNo">9626</span>                                        }<a name="line.9626"></a>
+<span class="sourceLineNo">9627</span>                                }<a name="line.9627"></a>
+<span class="sourceLineNo">9628</span>                        }<a name="line.9628"></a>
+<span class="sourceLineNo">9629</span>                        break;<a name="line.9629"></a>
+<span class="sourceLineNo">9630</span>                case Dataset.ARRAYINT64:<a name="line.9630"></a>
+<span class="sourceLineNo">9631</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.9631"></a>
+<span class="sourceLineNo">9632</span>                        if (is == 1) {<a name="line.9632"></a>
+<span class="sourceLineNo">9633</span>                                if (it.isOutputDouble()) {<a name="line.9633"></a>
+<span class="sourceLineNo">9634</span>                                        while (it.hasNext()) {<a name="line.9634"></a>
+<span class="sourceLineNo">9635</span>                                                final double iax = it.aDouble;<a name="line.9635"></a>
+<span class="sourceLineNo">9636</span>                                                final double ibx = it.bDouble;<a name="line.9636"></a>
+<span class="sourceLineNo">9637</span>                                                long ox;<a name="line.9637"></a>
+<span class="sourceLineNo">9638</span>                                                if (ibx == 0) {<a name="line.9638"></a>
+<span class="sourceLineNo">9639</span>                                                        ox = 0;<a name="line.9639"></a>
+<span class="sourceLineNo">9640</span>                                                } else {<a name="line.9640"></a>
+<span class="sourceLineNo">9641</span>                                                        ox = toLong(iax / ibx);<a name="line.9641"></a>
+<span class="sourceLineNo">9642</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9642"></a>
+<span class="sourceLineNo">9643</span>                                                                ox--;<a name="line.9643"></a>
+<span class="sourceLineNo">9644</span>                                                        }<a name="line.9644"></a>
+<span class="sourceLineNo">9645</span>                                                }<a name="line.9645"></a>
+<span class="sourceLineNo">9646</span>                                                oai64data[it.oIndex] = ox;<a name="line.9646"></a>
+<span class="sourceLineNo">9647</span>                                        }<a name="line.9647"></a>
+<span class="sourceLineNo">9648</span>                                } else {<a name="line.9648"></a>
+<span class="sourceLineNo">9649</span>                                        while (it.hasNext()) {<a name="line.9649"></a>
+<span class="sourceLineNo">9650</span>                                                final long iax = it.aLong;<a name="line.9650"></a>
+<span class="sourceLineNo">9651</span>                                                final long ibx = it.bLong;<a name="line.9651"></a>
+<span class="sourceLineNo">9652</span>                                                long ox;<a name="line.9652"></a>
+<span class="sourceLineNo">9653</span>                                                if (ibx == 0) {<a name="line.9653"></a>
+<span class="sourceLineNo">9654</span>                                                        ox = 0;<a name="line.9654"></a>
+<span class="sourceLineNo">9655</span>                                                } else {<a name="line.9655"></a>
+<span class="sourceLineNo">9656</span>                                                        ox = (iax / ibx);<a name="line.9656"></a>
+<span class="sourceLineNo">9657</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9657"></a>
+<span class="sourceLineNo">9658</span>                                                                ox--;<a name="line.9658"></a>
+<span class="sourceLineNo">9659</span>                                                        }<a name="line.9659"></a>
+<span class="sourceLineNo">9660</span>                                                }<a name="line.9660"></a>
+<span class="sourceLineNo">9661</span>                                                oai64data[it.oIndex] = ox;<a name="line.9661"></a>
+<span class="sourceLineNo">9662</span>                                        }<a name="line.9662"></a>
+<span class="sourceLineNo">9663</span>                                }<a name="line.9663"></a>
+<span class="sourceLineNo">9664</span>                        } else if (as &lt; bs) {<a name="line.9664"></a>
+<span class="sourceLineNo">9665</span>                                if (it.isOutputDouble()) {<a name="line.9665"></a>
+<span class="sourceLineNo">9666</span>                                        while (it.hasNext()) {<a name="line.9666"></a>
+<span class="sourceLineNo">9667</span>                                                final double iax = it.aDouble;<a name="line.9667"></a>
+<span class="sourceLineNo">9668</span>                                                double ibx = it.bDouble;<a name="line.9668"></a>
+<span class="sourceLineNo">9669</span>                                                long ox;<a name="line.9669"></a>
+<span class="sourceLineNo">9670</span>                                                if (ibx == 0) {<a name="line.9670"></a>
+<span class="sourceLineNo">9671</span>                                                        ox = 0;<a name="line.9671"></a>
+<span class="sourceLineNo">9672</span>                                                } else {<a name="line.9672"></a>
+<span class="sourceLineNo">9673</span>                                                        ox = toLong(iax / ibx);<a name="line.9673"></a>
+<span class="sourceLineNo">9674</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9674"></a>
+<span class="sourceLineNo">9675</span>                                                                ox--;<a name="line.9675"></a>
+<span class="sourceLineNo">9676</span>                                                        }<a name="line.9676"></a>
+<span class="sourceLineNo">9677</span>                                                }<a name="line.9677"></a>
+<span class="sourceLineNo">9678</span>                                                oai64data[it.oIndex] = ox;<a name="line.9678"></a>
+<span class="sourceLineNo">9679</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.9679"></a>
+<span class="sourceLineNo">9680</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.9680"></a>
+<span class="sourceLineNo">9681</span>                                                        if (ibx == 0) {<a name="line.9681"></a>
+<span class="sourceLineNo">9682</span>                                                                ox = 0;<a name="line.9682"></a>
+<span class="sourceLineNo">9683</span>                                                        } else {<a name="line.9683"></a>
+<span class="sourceLineNo">9684</span>                                                                ox = toLong(iax / ibx);<a name="line.9684"></a>
+<span class="sourceLineNo">9685</span>                                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9685"></a>
+<span class="sourceLineNo">9686</span>                                                                        ox--;<a name="line.9686"></a>
+<span class="sourceLineNo">9687</span>                                                                }<a name="line.9687"></a>
+<span class="sourceLineNo">9688</span>                                                        }<a name="line.9688"></a>
+<span class="sourceLineNo">9689</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.9689"></a>
+<span class="sourceLineNo">9690</span>                                                }<a name="line.9690"></a>
+<span class="sourceLineNo">9691</span>                                        }<a name="line.9691"></a>
+<span class="sourceLineNo">9692</span>                                } else {<a name="line.9692"></a>
+<span class="sourceLineNo">9693</span>                                        while (it.hasNext()) {<a name="line.9693"></a>
+<span class="sourceLineNo">9694</span>                                                final long iax = it.aLong;<a name="line.9694"></a>
+<span class="sourceLineNo">9695</span>                                                long ibx = it.bLong;<a name="line.9695"></a>
+<span class="sourceLineNo">9696</span>                                                long ox;<a name="line.9696"></a>
+<span class="sourceLineNo">9697</span>                                                if (ibx == 0) {<a name="line.9697"></a>
+<span class="sourceLineNo">9698</span>                                                        ox = 0;<a name="line.9698"></a>
+<span class="sourceLineNo">9699</span>                                                } else {<a name="line.9699"></a>
+<span class="sourceLineNo">9700</span>                                                        ox = (iax / ibx);<a name="line.9700"></a>
+<span class="sourceLineNo">9701</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9701"></a>
+<span class="sourceLineNo">9702</span>                                                                ox--;<a name="line.9702"></a>
+<span class="sourceLineNo">9703</span>                                                        }<a name="line.9703"></a>
+<span class="sourceLineNo">9704</span>                                                }<a name="line.9704"></a>
+<span class="sourceLineNo">9705</span>                                                oai64data[it.oIndex] = ox;<a name="line.9705"></a>
+<span class="sourceLineNo">9706</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.9706"></a>
+<span class="sourceLineNo">9707</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.9707"></a>
+<span class="sourceLineNo">9708</span>                                                        if (ibx == 0) {<a name="line.9708"></a>
+<span class="sourceLineNo">9709</span>                                                                ox = 0;<a name="line.9709"></a>
+<span class="sourceLineNo">9710</span>                                                        } else {<a name="line.9710"></a>
+<span class="sourceLineNo">9711</span>                                                                ox = (iax / ibx);<a name="line.9711"></a>
+<span class="sourceLineNo">9712</span>                                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9712"></a>
+<span class="sourceLineNo">9713</span>                                                                        ox--;<a name="line.9713"></a>
+<span class="sourceLineNo">9714</span>                                                                }<a name="line.9714"></a>
+<span class="sourceLineNo">9715</span>                                                        }<a name="line.9715"></a>
+<span class="sourceLineNo">9716</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.9716"></a>
+<span class="sourceLineNo">9717</span>                                                }<a name="line.9717"></a>
+<span class="sourceLineNo">9718</span>                                        }<a name="line.9718"></a>
+<span class="sourceLineNo">9719</span>                                }<a name="line.9719"></a>
+<span class="sourceLineNo">9720</span>                        } else if (as &gt; bs) {<a name="line.9720"></a>
+<span class="sourceLineNo">9721</span>                                if (it.isOutputDouble()) {<a name="line.9721"></a>
+<span class="sourceLineNo">9722</span>                                        while (it.hasNext()) {<a name="line.9722"></a>
+<span class="sourceLineNo">9723</span>                                                double iax = it.aDouble;<a name="line.9723"></a>
+<span class="sourceLineNo">9724</span>                                                final double ibx = it.bDouble;<a name="line.9724"></a>
+<span class="sourceLineNo">9725</span>                                                long ox;<a name="line.9725"></a>
+<span class="sourceLineNo">9726</span>                                                if (ibx == 0) {<a name="line.9726"></a>
+<span class="sourceLineNo">9727</span>                                                        ox = 0;<a name="line.9727"></a>
+<span class="sourceLineNo">9728</span>                                                } else {<a name="line.9728"></a>
+<span class="sourceLineNo">9729</span>                                                        ox = toLong(iax / ibx);<a name="line.9729"></a>
+<span class="sourceLineNo">9730</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9730"></a>
+<span class="sourceLineNo">9731</span>                                                                ox--;<a name="line.9731"></a>
+<span class="sourceLineNo">9732</span>                                                        }<a name="line.9732"></a>
+<span class="sourceLineNo">9733</span>                                                }<a name="line.9733"></a>
+<span class="sourceLineNo">9734</span>                                                oai64data[it.oIndex] = ox;<a name="line.9734"></a>
+<span class="sourceLineNo">9735</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.9735"></a>
+<span class="sourceLineNo">9736</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.9736"></a>
+<span class="sourceLineNo">9737</span>                                                        if (ibx == 0) {<a name="line.9737"></a>
+<span class="sourceLineNo">9738</span>                                                                ox = 0;<a name="line.9738"></a>
+<span class="sourceLineNo">9739</span>                                                        } else {<a name="line.9739"></a>
+<span class="sourceLineNo">9740</span>                                                                ox = toLong(iax / ibx);<a name="line.9740"></a>
+<span class="sourceLineNo">9741</span>                                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9741"></a>
+<span class="sourceLineNo">9742</span>                                                                        ox--;<a name="line.9742"></a>
+<span class="sourceLineNo">9743</span>                                                                }<a name="line.9743"></a>
+<span class="sourceLineNo">9744</span>                                                        }<a name="line.9744"></a>
+<span class="sourceLineNo">9745</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.9745"></a>
+<span class="sourceLineNo">9746</span>                                                }<a name="line.9746"></a>
+<span class="sourceLineNo">9747</span>                                        }<a name="line.9747"></a>
+<span class="sourceLineNo">9748</span>                                } else {<a name="line.9748"></a>
+<span class="sourceLineNo">9749</span>                                        while (it.hasNext()) {<a name="line.9749"></a>
+<span class="sourceLineNo">9750</span>                                                long iax = it.aLong;<a name="line.9750"></a>
+<span class="sourceLineNo">9751</span>                                                final long ibx = it.bLong;<a name="line.9751"></a>
+<span class="sourceLineNo">9752</span>                                                long ox;<a name="line.9752"></a>
+<span class="sourceLineNo">9753</span>                                                if (ibx == 0) {<a name="line.9753"></a>
+<span class="sourceLineNo">9754</span>                                                        ox = 0;<a name="line.9754"></a>
+<span class="sourceLineNo">9755</span>                                                } else {<a name="line.9755"></a>
+<span class="sourceLineNo">9756</span>                                                        ox = (iax / ibx);<a name="line.9756"></a>
+<span class="sourceLineNo">9757</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9757"></a>
+<span class="sourceLineNo">9758</span>                                                                ox--;<a name="line.9758"></a>
+<span class="sourceLineNo">9759</span>                                                        }<a name="line.9759"></a>
+<span class="sourceLineNo">9760</span>                                                }<a name="line.9760"></a>
+<span class="sourceLineNo">9761</span>                                                oai64data[it.oIndex] = ox;<a name="line.9761"></a>
+<span class="sourceLineNo">9762</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.9762"></a>
+<span class="sourceLineNo">9763</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.9763"></a>
+<span class="sourceLineNo">9764</span>                                                        if (ibx == 0) {<a name="line.9764"></a>
+<span class="sourceLineNo">9765</span>                                                                ox = 0;<a name="line.9765"></a>
+<span class="sourceLineNo">9766</span>                                                        } else {<a name="line.9766"></a>
+<span class="sourceLineNo">9767</span>                                                                ox = (iax / ibx);<a name="line.9767"></a>
+<span class="sourceLineNo">9768</span>                                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9768"></a>
+<span class="sourceLineNo">9769</span>                                                                        ox--;<a name="line.9769"></a>
+<span class="sourceLineNo">9770</span>                                                                }<a name="line.9770"></a>
+<span class="sourceLineNo">9771</span>                                                        }<a name="line.9771"></a>
+<span class="sourceLineNo">9772</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.9772"></a>
+<span class="sourceLineNo">9773</span>                                                }<a name="line.9773"></a>
+<span class="sourceLineNo">9774</span>                                        }<a name="line.9774"></a>
+<span class="sourceLineNo">9775</span>                                }<a name="line.9775"></a>
+<span class="sourceLineNo">9776</span>                        } else if (as == 1) {<a name="line.9776"></a>
+<span class="sourceLineNo">9777</span>                                if (it.isOutputDouble()) {<a name="line.9777"></a>
+<span class="sourceLineNo">9778</span>                                        while (it.hasNext()) {<a name="line.9778"></a>
+<span class="sourceLineNo">9779</span>                                                final double iax = it.aDouble;<a name="line.9779"></a>
+<span class="sourceLineNo">9780</span>                                                final double ibx = it.bDouble;<a name="line.9780"></a>
+<span class="sourceLineNo">9781</span>                                                long ox;<a name="line.9781"></a>
+<span class="sourceLineNo">9782</span>                                                if (ibx == 0) {<a name="line.9782"></a>
+<span class="sourceLineNo">9783</span>                                                        ox = 0;<a name="line.9783"></a>
+<span class="sourceLineNo">9784</span>                                                } else {<a name="line.9784"></a>
+<span class="sourceLineNo">9785</span>                                                        ox = toLong(iax / ibx);<a name="line.9785"></a>
+<span class="sourceLineNo">9786</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9786"></a>
+<span class="sourceLineNo">9787</span>                                                                ox--;<a name="line.9787"></a>
+<span class="sourceLineNo">9788</span>                                                        }<a name="line.9788"></a>
+<span class="sourceLineNo">9789</span>                                                }<a name="line.9789"></a>
+<span class="sourceLineNo">9790</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.9790"></a>
+<span class="sourceLineNo">9791</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.9791"></a>
+<span class="sourceLineNo">9792</span>                                                }<a name="line.9792"></a>
+<span class="sourceLineNo">9793</span>                                        }<a name="line.9793"></a>
+<span class="sourceLineNo">9794</span>                                } else {<a name="line.9794"></a>
+<span class="sourceLineNo">9795</span>                                        while (it.hasNext()) {<a name="line.9795"></a>
+<span class="sourceLineNo">9796</span>                                                final long iax = it.aLong;<a name="line.9796"></a>
+<span class="sourceLineNo">9797</span>                                                final long ibx = it.bLong;<a name="line.9797"></a>
+<span class="sourceLineNo">9798</span>                                                long ox;<a name="line.9798"></a>
+<span class="sourceLineNo">9799</span>                                                if (ibx == 0) {<a name="line.9799"></a>
+<span class="sourceLineNo">9800</span>                                                        ox = 0;<a name="line.9800"></a>
+<span class="sourceLineNo">9801</span>                                                } else {<a name="line.9801"></a>
+<span class="sourceLineNo">9802</span>                                                        ox = (iax / ibx);<a name="line.9802"></a>
+<span class="sourceLineNo">9803</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9803"></a>
+<span class="sourceLineNo">9804</span>                                                                ox--;<a name="line.9804"></a>
+<span class="sourceLineNo">9805</span>                                                        }<a name="line.9805"></a>
+<span class="sourceLineNo">9806</span>                                                }<a name="line.9806"></a>
+<span class="sourceLineNo">9807</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.9807"></a>
+<span class="sourceLineNo">9808</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.9808"></a>
+<span class="sourceLineNo">9809</span>                                                }<a name="line.9809"></a>
+<span class="sourceLineNo">9810</span>                                        }<a name="line.9810"></a>
+<span class="sourceLineNo">9811</span>                                }<a name="line.9811"></a>
+<span class="sourceLineNo">9812</span>                        } else {<a name="line.9812"></a>
+<span class="sourceLineNo">9813</span>                                if (it.isOutputDouble()) {<a name="line.9813"></a>
+<span class="sourceLineNo">9814</span>                                        while (it.hasNext()) {<a name="line.9814"></a>
+<span class="sourceLineNo">9815</span>                                                double iax = it.aDouble;<a name="line.9815"></a>
+<span class="sourceLineNo">9816</span>                                                double ibx = it.bDouble;<a name="line.9816"></a>
+<span class="sourceLineNo">9817</span>                                                long ox;<a name="line.9817"></a>
+<span class="sourceLineNo">9818</span>                                                if (ibx == 0) {<a name="line.9818"></a>
+<span class="sourceLineNo">9819</span>                                                        ox = 0;<a name="line.9819"></a>
+<span class="sourceLineNo">9820</span>                                                } else {<a name="line.9820"></a>
+<span class="sourceLineNo">9821</span>                                                        ox = toLong(iax / ibx);<a name="line.9821"></a>
+<span class="sourceLineNo">9822</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9822"></a>
+<span class="sourceLineNo">9823</span>                                                                ox--;<a name="line.9823"></a>
+<span class="sourceLineNo">9824</span>                                                        }<a name="line.9824"></a>
+<span class="sourceLineNo">9825</span>                                                }<a name="line.9825"></a>
+<span class="sourceLineNo">9826</span>                                                oai64data[it.oIndex] = ox;<a name="line.9826"></a>
+<span class="sourceLineNo">9827</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.9827"></a>
+<span class="sourceLineNo">9828</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.9828"></a>
+<span class="sourceLineNo">9829</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.9829"></a>
+<span class="sourceLineNo">9830</span>                                                        if (ibx == 0) {<a name="line.9830"></a>
+<span class="sourceLineNo">9831</span>                                                                ox = 0;<a name="line.9831"></a>
+<span class="sourceLineNo">9832</span>                                                        } else {<a name="line.9832"></a>
+<span class="sourceLineNo">9833</span>                                                                ox = toLong(iax / ibx);<a name="line.9833"></a>
+<span class="sourceLineNo">9834</span>                                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9834"></a>
+<span class="sourceLineNo">9835</span>                                                                        ox--;<a name="line.9835"></a>
+<span class="sourceLineNo">9836</span>                                                                }<a name="line.9836"></a>
+<span class="sourceLineNo">9837</span>                                                        }<a name="line.9837"></a>
+<span class="sourceLineNo">9838</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.9838"></a>
+<span class="sourceLineNo">9839</span>                                                }<a name="line.9839"></a>
+<span class="sourceLineNo">9840</span>                                        }<a name="line.9840"></a>
+<span class="sourceLineNo">9841</span>                                } else {<a name="line.9841"></a>
+<span class="sourceLineNo">9842</span>                                        while (it.hasNext()) {<a name="line.9842"></a>
+<span class="sourceLineNo">9843</span>                                                long iax = it.aLong;<a name="line.9843"></a>
+<span class="sourceLineNo">9844</span>                                                long ibx = it.bLong;<a name="line.9844"></a>
+<span class="sourceLineNo">9845</span>                                                long ox;<a name="line.9845"></a>
+<span class="sourceLineNo">9846</span>                                                if (ibx == 0) {<a name="line.9846"></a>
+<span class="sourceLineNo">9847</span>                                                        ox = 0;<a name="line.9847"></a>
+<span class="sourceLineNo">9848</span>                                                } else {<a name="line.9848"></a>
+<span class="sourceLineNo">9849</span>                                                        ox = (iax / ibx);<a name="line.9849"></a>
+<span class="sourceLineNo">9850</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9850"></a>
+<span class="sourceLineNo">9851</span>                                                                ox--;<a name="line.9851"></a>
+<span class="sourceLineNo">9852</span>                                                        }<a name="line.9852"></a>
+<span class="sourceLineNo">9853</span>                                                }<a name="line.9853"></a>
+<span class="sourceLineNo">9854</span>                                                oai64data[it.oIndex] = ox;<a name="line.9854"></a>
+<span class="sourceLineNo">9855</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.9855"></a>
+<span class="sourceLineNo">9856</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.9856"></a>
+<span class="sourceLineNo">9857</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.9857"></a>
+<span class="sourceLineNo">9858</span>                                                        if (ibx == 0) {<a name="line.9858"></a>
+<span class="sourceLineNo">9859</span>                                                                ox = 0;<a name="line.9859"></a>
+<span class="sourceLineNo">9860</span>                                                        } else {<a name="line.9860"></a>
+<span class="sourceLineNo">9861</span>                                                                ox = (iax / ibx);<a name="line.9861"></a>
+<span class="sourceLineNo">9862</span>                                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9862"></a>
+<span class="sourceLineNo">9863</span>                                                                        ox--;<a name="line.9863"></a>
+<span class="sourceLineNo">9864</span>                                                                }<a name="line.9864"></a>
+<span class="sourceLineNo">9865</span>                                                        }<a name="line.9865"></a>
+<span class="sourceLineNo">9866</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.9866"></a>
+<span class="sourceLineNo">9867</span>                                                }<a name="line.9867"></a>
+<span class="sourceLineNo">9868</span>                                        }<a name="line.9868"></a>
+<span class="sourceLineNo">9869</span>                                }<a name="line.9869"></a>
+<span class="sourceLineNo">9870</span>                        }<a name="line.9870"></a>
+<span class="sourceLineNo">9871</span>                        break;<a name="line.9871"></a>
+<span class="sourceLineNo">9872</span>                case Dataset.ARRAYINT32:<a name="line.9872"></a>
+<span class="sourceLineNo">9873</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.9873"></a>
+<span class="sourceLineNo">9874</span>                        if (is == 1) {<a name="line.9874"></a>
+<span class="sourceLineNo">9875</span>                                if (it.isOutputDouble()) {<a name="line.9875"></a>
+<span class="sourceLineNo">9876</span>                                        while (it.hasNext()) {<a name="line.9876"></a>
+<span class="sourceLineNo">9877</span>                                                final double iax = it.aDouble;<a name="line.9877"></a>
+<span class="sourceLineNo">9878</span>                                                final double ibx = it.bDouble;<a name="line.9878"></a>
+<span class="sourceLineNo">9879</span>                                                int ox;<a name="line.9879"></a>
+<span class="sourceLineNo">9880</span>                                                if (ibx == 0) {<a name="line.9880"></a>
+<span class="sourceLineNo">9881</span>                                                        ox = 0;<a name="line.9881"></a>
+<span class="sourceLineNo">9882</span>                                                } else {<a name="line.9882"></a>
+<span class="sourceLineNo">9883</span>                                                        ox = (int) toLong(iax / ibx);<a name="line.9883"></a>
+<span class="sourceLineNo">9884</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9884"></a>
+<span class="sourceLineNo">9885</span>                                                                ox--;<a name="line.9885"></a>
+<span class="sourceLineNo">9886</span>                                                        }<a name="line.9886"></a>
+<span class="sourceLineNo">9887</span>                                                }<a name="line.9887"></a>
+<span class="sourceLineNo">9888</span>                                                oai32data[it.oIndex] = ox;<a name="line.9888"></a>
+<span class="sourceLineNo">9889</span>                                        }<a name="line.9889"></a>
+<span class="sourceLineNo">9890</span>                                } else {<a name="line.9890"></a>
+<span class="sourceLineNo">9891</span>                                        while (it.hasNext()) {<a name="line.9891"></a>
+<span class="sourceLineNo">9892</span>                                                final long iax = it.aLong;<a name="line.9892"></a>
+<span class="sourceLineNo">9893</span>                                                final long ibx = it.bLong;<a name="line.9893"></a>
+<span class="sourceLineNo">9894</span>                                                int ox;<a name="line.9894"></a>
+<span class="sourceLineNo">9895</span>                                                if (ibx == 0) {<a name="line.9895"></a>
+<span class="sourceLineNo">9896</span>                                                        ox = 0;<a name="line.9896"></a>
+<span class="sourceLineNo">9897</span>                                                } else {<a name="line.9897"></a>
+<span class="sourceLineNo">9898</span>                                                        ox = (int) (iax / ibx);<a name="line.9898"></a>
+<span class="sourceLineNo">9899</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9899"></a>
+<span class="sourceLineNo">9900</span>                                                                ox--;<a name="line.9900"></a>
+<span class="sourceLineNo">9901</span>                                                        }<a name="line.9901"></a>
+<span class="sourceLineNo">9902</span>                                                }<a name="line.9902"></a>
+<span class="sourceLineNo">9903</span>                                                oai32data[it.oIndex] = ox;<a name="line.9903"></a>
+<span class="sourceLineNo">9904</span>                                        }<a name="line.9904"></a>
+<span class="sourceLineNo">9905</span>                                }<a name="line.9905"></a>
+<span class="sourceLineNo">9906</span>                        } else if (as &lt; bs) {<a name="line.9906"></a>
+<span class="sourceLineNo">9907</span>                                if (it.isOutputDouble()) {<a name="line.9907"></a>
+<span class="sourceLineNo">9908</span>                                        while (it.hasNext()) {<a name="line.9908"></a>
+<span class="sourceLineNo">9909</span>                                                final double iax = it.aDouble;<a name="line.9909"></a>
+<span class="sourceLineNo">9910</span>                                                double ibx = it.bDouble;<a name="line.9910"></a>
+<span class="sourceLineNo">9911</span>                                                int ox;<a name="line.9911"></a>
+<span class="sourceLineNo">9912</span>                                                if (ibx == 0) {<a name="line.9912"></a>
+<span class="sourceLineNo">9913</span>                                                        ox = 0;<a name="line.9913"></a>
+<span class="sourceLineNo">9914</span>                                                } else {<a name="line.9914"></a>
+<span class="sourceLineNo">9915</span>                                                        ox = (int) toLong(iax / ibx);<a name="line.9915"></a>
+<span class="sourceLineNo">9916</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9916"></a>
+<span class="sourceLineNo">9917</span>                                                                ox--;<a name="line.9917"></a>
+<span class="sourceLineNo">9918</span>                                                        }<a name="line.9918"></a>
+<span class="sourceLineNo">9919</span>                                                }<a name="line.9919"></a>
+<span class="sourceLineNo">9920</span>                                                oai32data[it.oIndex] = ox;<a name="line.9920"></a>
+<span class="sourceLineNo">9921</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.9921"></a>
+<span class="sourceLineNo">9922</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.9922"></a>
+<span class="sourceLineNo">9923</span>                                                        if (ibx == 0) {<a name="line.9923"></a>
+<span class="sourceLineNo">9924</span>                                                                ox = 0;<a name="line.9924"></a>
+<span class="sourceLineNo">9925</span>                                                        } else {<a name="line.9925"></a>
+<span class="sourceLineNo">9926</span>                                                                ox = (int) toLong(iax / ibx);<a name="line.9926"></a>
+<span class="sourceLineNo">9927</span>                                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9927"></a>
+<span class="sourceLineNo">9928</span>                                                                        ox--;<a name="line.9928"></a>
+<span class="sourceLineNo">9929</span>                                                                }<a name="line.9929"></a>
+<span class="sourceLineNo">9930</span>                                                        }<a name="line.9930"></a>
+<span class="sourceLineNo">9931</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.9931"></a>
+<span class="sourceLineNo">9932</span>                                                }<a name="line.9932"></a>
+<span class="sourceLineNo">9933</span>                                        }<a name="line.9933"></a>
+<span class="sourceLineNo">9934</span>                                } else {<a name="line.9934"></a>
+<span class="sourceLineNo">9935</span>                                        while (it.hasNext()) {<a name="line.9935"></a>
+<span class="sourceLineNo">9936</span>                                                final long iax = it.aLong;<a name="line.9936"></a>
+<span class="sourceLineNo">9937</span>                                                long ibx = it.bLong;<a name="line.9937"></a>
+<span class="sourceLineNo">9938</span>                                                int ox;<a name="line.9938"></a>
+<span class="sourceLineNo">9939</span>                                                if (ibx == 0) {<a name="line.9939"></a>
+<span class="sourceLineNo">9940</span>                                                        ox = 0;<a name="line.9940"></a>
+<span class="sourceLineNo">9941</span>                                                } else {<a name="line.9941"></a>
+<span class="sourceLineNo">9942</span>                                                        ox = (int) (iax / ibx);<a name="line.9942"></a>
+<span class="sourceLineNo">9943</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9943"></a>
+<span class="sourceLineNo">9944</span>                                                                ox--;<a name="line.9944"></a>
+<span class="sourceLineNo">9945</span>                                                        }<a name="line.9945"></a>
+<span class="sourceLineNo">9946</span>                                                }<a name="line.9946"></a>
+<span class="sourceLineNo">9947</span>                                                oai32data[it.oIndex] = ox;<a name="line.9947"></a>
+<span class="sourceLineNo">9948</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.9948"></a>
+<span class="sourceLineNo">9949</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.9949"></a>
+<span class="sourceLineNo">9950</span>                                                        if (ibx == 0) {<a name="line.9950"></a>
+<span class="sourceLineNo">9951</span>                                                                ox = 0;<a name="line.9951"></a>
+<span class="sourceLineNo">9952</span>                                                        } else {<a name="line.9952"></a>
+<span class="sourceLineNo">9953</span>                                                                ox = (int) (iax / ibx);<a name="line.9953"></a>
+<span class="sourceLineNo">9954</span>                                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9954"></a>
+<span class="sourceLineNo">9955</span>                                                                        ox--;<a name="line.9955"></a>
+<span class="sourceLineNo">9956</span>                                                                }<a name="line.9956"></a>
+<span class="sourceLineNo">9957</span>                                                        }<a name="line.9957"></a>
+<span class="sourceLineNo">9958</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.9958"></a>
+<span class="sourceLineNo">9959</span>                                                }<a name="line.9959"></a>
+<span class="sourceLineNo">9960</span>                                        }<a name="line.9960"></a>
+<span class="sourceLineNo">9961</span>                                }<a name="line.9961"></a>
+<span class="sourceLineNo">9962</span>                        } else if (as &gt; bs) {<a name="line.9962"></a>
+<span class="sourceLineNo">9963</span>                                if (it.isOutputDouble()) {<a name="line.9963"></a>
+<span class="sourceLineNo">9964</span>                                        while (it.hasNext()) {<a name="line.9964"></a>
+<span class="sourceLineNo">9965</span>                                                double iax = it.aDouble;<a name="line.9965"></a>
+<span class="sourceLineNo">9966</span>                                                final double ibx = it.bDouble;<a name="line.9966"></a>
+<span class="sourceLineNo">9967</span>                                                int ox;<a name="line.9967"></a>
+<span class="sourceLineNo">9968</span>                                                if (ibx == 0) {<a name="line.9968"></a>
+<span class="sourceLineNo">9969</span>                                                        ox = 0;<a name="line.9969"></a>
+<span class="sourceLineNo">9970</span>                                                } else {<a name="line.9970"></a>
+<span class="sourceLineNo">9971</span>                                                        ox = (int) toLong(iax / ibx);<a name="line.9971"></a>
+<span class="sourceLineNo">9972</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9972"></a>
+<span class="sourceLineNo">9973</span>                                                                ox--;<a name="line.9973"></a>
+<span class="sourceLineNo">9974</span>                                                        }<a name="line.9974"></a>
+<span class="sourceLineNo">9975</span>                                                }<a name="line.9975"></a>
+<span class="sourceLineNo">9976</span>                                                oai32data[it.oIndex] = ox;<a name="line.9976"></a>
+<span class="sourceLineNo">9977</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.9977"></a>
+<span class="sourceLineNo">9978</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.9978"></a>
+<span class="sourceLineNo">9979</span>                                                        if (ibx == 0) {<a name="line.9979"></a>
+<span class="sourceLineNo">9980</span>                                                                ox = 0;<a name="line.9980"></a>
+<span class="sourceLineNo">9981</span>                                                        } else {<a name="line.9981"></a>
+<span class="sourceLineNo">9982</span>                                                                ox = (int) toLong(iax / ibx);<a name="line.9982"></a>
+<span class="sourceLineNo">9983</span>                                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9983"></a>
+<span class="sourceLineNo">9984</span>                                                                        ox--;<a name="line.9984"></a>
+<span class="sourceLineNo">9985</span>                                                                }<a name="line.9985"></a>
+<span class="sourceLineNo">9986</span>                                                        }<a name="line.9986"></a>
+<span class="sourceLineNo">9987</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.9987"></a>
+<span class="sourceLineNo">9988</span>                                                }<a name="line.9988"></a>
+<span class="sourceLineNo">9989</span>                                        }<a name="line.9989"></a>
+<span class="sourceLineNo">9990</span>                                } else {<a name="line.9990"></a>
+<span class="sourceLineNo">9991</span>                                        while (it.hasNext()) {<a name="line.9991"></a>
+<span class="sourceLineNo">9992</span>                                                long iax = it.aLong;<a name="line.9992"></a>
+<span class="sourceLineNo">9993</span>                                                final long ibx = it.bLong;<a name="line.9993"></a>
+<span class="sourceLineNo">9994</span>                                                int ox;<a name="line.9994"></a>
+<span class="sourceLineNo">9995</span>                                                if (ibx == 0) {<a name="line.9995"></a>
+<span class="sourceLineNo">9996</span>                                                        ox = 0;<a name="line.9996"></a>
+<span class="sourceLineNo">9997</span>                                                } else {<a name="line.9997"></a>
+<span class="sourceLineNo">9998</span>                                                        ox = (int) (iax / ibx);<a name="line.9998"></a>
+<span class="sourceLineNo">9999</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.9999"></a>
+<span class="sourceLineNo">10000</span>                                                                ox--;<a name="line.10000"></a>
+<span class="sourceLineNo">10001</span>                                                        }<a name="line.10001"></a>
+<span class="sourceLineNo">10002</span>                                                }<a name="line.10002"></a>
+<span class="sourceLineNo">10003</span>                                                oai32data[it.oIndex] = ox;<a name="line.10003"></a>
+<span class="sourceLineNo">10004</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.10004"></a>
+<span class="sourceLineNo">10005</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.10005"></a>
+<span class="sourceLineNo">10006</span>                                                        if (ibx == 0) {<a name="line.10006"></a>
+<span class="sourceLineNo">10007</span>                                                                ox = 0;<a name="line.10007"></a>
+<span class="sourceLineNo">10008</span>                                                        } else {<a name="line.10008"></a>
+<span class="sourceLineNo">10009</span>                                                                ox = (int) (iax / ibx);<a name="line.10009"></a>
+<span class="sourceLineNo">10010</span>                                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.10010"></a>
+<span class="sourceLineNo">10011</span>                                                                        ox--;<a name="line.10011"></a>
+<span class="sourceLineNo">10012</span>                                                                }<a name="line.10012"></a>
+<span class="sourceLineNo">10013</span>                                                        }<a name="line.10013"></a>
+<span class="sourceLineNo">10014</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.10014"></a>
+<span class="sourceLineNo">10015</span>                                                }<a name="line.10015"></a>
+<span class="sourceLineNo">10016</span>                                        }<a name="line.10016"></a>
+<span class="sourceLineNo">10017</span>                                }<a name="line.10017"></a>
+<span class="sourceLineNo">10018</span>                        } else if (as == 1) {<a name="line.10018"></a>
+<span class="sourceLineNo">10019</span>                                if (it.isOutputDouble()) {<a name="line.10019"></a>
+<span class="sourceLineNo">10020</span>                                        while (it.hasNext()) {<a name="line.10020"></a>
+<span class="sourceLineNo">10021</span>                                                final double iax = it.aDouble;<a name="line.10021"></a>
+<span class="sourceLineNo">10022</span>                                                final double ibx = it.bDouble;<a name="line.10022"></a>
+<span class="sourceLineNo">10023</span>                                                int ox;<a name="line.10023"></a>
+<span class="sourceLineNo">10024</span>                                                if (ibx == 0) {<a name="line.10024"></a>
+<span class="sourceLineNo">10025</span>                                                        ox = 0;<a name="line.10025"></a>
+<span class="sourceLineNo">10026</span>                                                } else {<a name="line.10026"></a>
+<span class="sourceLineNo">10027</span>                                                        ox = (int) toLong(iax / ibx);<a name="line.10027"></a>
+<span class="sourceLineNo">10028</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.10028"></a>
+<span class="sourceLineNo">10029</span>                                                                ox--;<a name="line.10029"></a>
+<span class="sourceLineNo">10030</span>                                                        }<a name="line.10030"></a>
+<span class="sourceLineNo">10031</span>                                                }<a name="line.10031"></a>
+<span class="sourceLineNo">10032</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.10032"></a>
+<span class="sourceLineNo">10033</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.10033"></a>
+<span class="sourceLineNo">10034</span>                                                }<a name="line.10034"></a>
+<span class="sourceLineNo">10035</span>                                        }<a name="line.10035"></a>
+<span class="sourceLineNo">10036</span>                                } else {<a name="line.10036"></a>
+<span class="sourceLineNo">10037</span>                                        while (it.hasNext()) {<a name="line.10037"></a>
+<span class="sourceLineNo">10038</span>                                                final long iax = it.aLong;<a name="line.10038"></a>
+<span class="sourceLineNo">10039</span>                                                final long ibx = it.bLong;<a name="line.10039"></a>
+<span class="sourceLineNo">10040</span>                                                int ox;<a name="line.10040"></a>
+<span class="sourceLineNo">10041</span>                                                if (ibx == 0) {<a name="line.10041"></a>
+<span class="sourceLineNo">10042</span>                                                        ox = 0;<a name="line.10042"></a>
+<span class="sourceLineNo">10043</span>                                                } else {<a name="line.10043"></a>
+<span class="sourceLineNo">10044</span>                                                        ox = (int) (iax / ibx);<a name="line.10044"></a>
+<span class="sourceLineNo">10045</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.10045"></a>
+<span class="sourceLineNo">10046</span>                                                                ox--;<a name="line.10046"></a>
+<span class="sourceLineNo">10047</span>                                                        }<a name="line.10047"></a>
+<span class="sourceLineNo">10048</span>                                                }<a name="line.10048"></a>
+<span class="sourceLineNo">10049</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.10049"></a>
+<span class="sourceLineNo">10050</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.10050"></a>
+<span class="sourceLineNo">10051</span>                                                }<a name="line.10051"></a>
+<span class="sourceLineNo">10052</span>                                        }<a name="line.10052"></a>
+<span class="sourceLineNo">10053</span>                                }<a name="line.10053"></a>
+<span class="sourceLineNo">10054</span>                        } else {<a name="line.10054"></a>
+<span class="sourceLineNo">10055</span>                                if (it.isOutputDouble()) {<a name="line.10055"></a>
+<span class="sourceLineNo">10056</span>                                        while (it.hasNext()) {<a name="line.10056"></a>
+<span class="sourceLineNo">10057</span>                                                double iax = it.aDouble;<a name="line.10057"></a>
+<span class="sourceLineNo">10058</span>                                                double ibx = it.bDouble;<a name="line.10058"></a>
+<span class="sourceLineNo">10059</span>                                                int ox;<a name="line.10059"></a>
+<span class="sourceLineNo">10060</span>                                                if (ibx == 0) {<a name="line.10060"></a>
+<span class="sourceLineNo">10061</span>                                                        ox = 0;<a name="line.10061"></a>
+<span class="sourceLineNo">10062</span>                                                } else {<a name="line.10062"></a>
+<span class="sourceLineNo">10063</span>                                                        ox = (int) toLong(iax / ibx);<a name="line.10063"></a>
+<span class="sourceLineNo">10064</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.10064"></a>
+<span class="sourceLineNo">10065</span>                                                                ox--;<a name="line.10065"></a>
+<span class="sourceLineNo">10066</span>                                                        }<a name="line.10066"></a>
+<span class="sourceLineNo">10067</span>                                                }<a name="line.10067"></a>
+<span class="sourceLineNo">10068</span>                                                oai32data[it.oIndex] = ox;<a name="line.10068"></a>
+<span class="sourceLineNo">10069</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.10069"></a>
+<span class="sourceLineNo">10070</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.10070"></a>
+<span class="sourceLineNo">10071</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.10071"></a>
+<span class="sourceLineNo">10072</span>                                                        if (ibx == 0) {<a name="line.10072"></a>
+<span class="sourceLineNo">10073</span>                                                                ox = 0;<a name="line.10073"></a>
+<span class="sourceLineNo">10074</span>                                                        } else {<a name="line.10074"></a>
+<span class="sourceLineNo">10075</span>                                                                ox = (int) toLong(iax / ibx);<a name="line.10075"></a>
+<span class="sourceLineNo">10076</span>                                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.10076"></a>
+<span class="sourceLineNo">10077</span>                                                                        ox--;<a name="line.10077"></a>
+<span class="sourceLineNo">10078</span>                                                                }<a name="line.10078"></a>
+<span class="sourceLineNo">10079</span>                                                        }<a name="line.10079"></a>
+<span class="sourceLineNo">10080</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.10080"></a>
+<span class="sourceLineNo">10081</span>                                                }<a name="line.10081"></a>
+<span class="sourceLineNo">10082</span>                                        }<a name="line.10082"></a>
+<span class="sourceLineNo">10083</span>                                } else {<a name="line.10083"></a>
+<span class="sourceLineNo">10084</span>                                        while (it.hasNext()) {<a name="line.10084"></a>
+<span class="sourceLineNo">10085</span>                                                long iax = it.aLong;<a name="line.10085"></a>
+<span class="sourceLineNo">10086</span>                                                long ibx = it.bLong;<a name="line.10086"></a>
+<span class="sourceLineNo">10087</span>                                                int ox;<a name="line.10087"></a>
+<span class="sourceLineNo">10088</span>                                                if (ibx == 0) {<a name="line.10088"></a>
+<span class="sourceLineNo">10089</span>                                                        ox = 0;<a name="line.10089"></a>
+<span class="sourceLineNo">10090</span>                                                } else {<a name="line.10090"></a>
+<span class="sourceLineNo">10091</span>                                                        ox = (int) (iax / ibx);<a name="line.10091"></a>
+<span class="sourceLineNo">10092</span>                                                        if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.10092"></a>
+<span class="sourceLineNo">10093</span>                                                                ox--;<a name="line.10093"></a>
+<span class="sourceLineNo">10094</span>                                                        }<a name="line.10094"></a>
+<span class="sourceLineNo">10095</span>                                                }<a name="line.10095"></a>
+<span class="sourceLineNo">10096</span>                                                oai32data[it.oIndex] = ox;<a name="line.10096"></a>
+<span class="sourceLineNo">10097</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.10097"></a>
+<span class="sourceLineNo">10098</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.10098"></a>
+<span class="sourceLineNo">10099</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.10099"></a>
+<span class="sourceLineNo">10100</span>                                                        if (ibx == 0) {<a name="line.10100"></a>
+<span class="sourceLineNo">10101</span>                                                                ox = 0;<a name="line.10101"></a>
+<span class="sourceLineNo">10102</span>                                                        } else {<a name="line.10102"></a>
+<span class="sourceLineNo">10103</span>                                                                ox = (int) (iax / ibx);<a name="line.10103"></a>
+<span class="sourceLineNo">10104</span>                                                                if (iax != ox * ibx &amp;&amp; ((iax &lt; 0) ^ (ibx &lt; 0))) {<a name="line.10104"></a>
+<span class="sourceLineNo">10105</span>                                                                        ox--;<a name="line.10105"></a>
+<span class="sourceLineNo">10106</span>                                                                }<a name="line.10106"></a>
+<span class="sourceLineNo">10107</span>                                                        }<a name="line.10107"></a>
+<span class="sourceLineNo">10108</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.10108"></a>
+<span class="sourceLineNo">10109</span>                                                }<a name="line.10109"></a>
+<span class="sourceLineNo">10110</span>                                        }<a name="line.10110"></a>
+<span class="sourceLineNo">10111</span>                                }<a name="line.10111"></a>
+<span class="sourceLineNo">10112</span>                        }<a name="line.10112"></a>
+<span class="sourceLineNo">10113</span>                        break;<a name="line.10113"></a>
+<span class="sourceLineNo">10114</span>                case Dataset.FLOAT32:<a name="line.10114"></a>
+<span class="sourceLineNo">10115</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.10115"></a>
+<span class="sourceLineNo">10116</span>                        if (it.isOutputDouble()) {<a name="line.10116"></a>
+<span class="sourceLineNo">10117</span>                                while (it.hasNext()) {<a name="line.10117"></a>
+<span class="sourceLineNo">10118</span>                                        final double iax = it.aDouble;<a name="line.10118"></a>
+<span class="sourceLineNo">10119</span>                                        final double ibx = it.bDouble;<a name="line.10119"></a>
+<span class="sourceLineNo">10120</span>                                        float ox;<a name="line.10120"></a>
+<span class="sourceLineNo">10121</span>                                        ox = (float) (iax / ibx);<a name="line.10121"></a>
+<span class="sourceLineNo">10122</span>                                        of32data[it.oIndex] = ox;<a name="line.10122"></a>
+<span class="sourceLineNo">10123</span>                                }<a name="line.10123"></a>
+<span class="sourceLineNo">10124</span>                        } else {<a name="line.10124"></a>
+<span class="sourceLineNo">10125</span>                                while (it.hasNext()) {<a name="line.10125"></a>
+<span class="sourceLineNo">10126</span>                                        final long iax = it.aLong;<a name="line.10126"></a>
+<span class="sourceLineNo">10127</span>                                        final long ibx = it.bLong;<a name="line.10127"></a>
+<span class="sourceLineNo">10128</span>                                        float ox;<a name="line.10128"></a>
+<span class="sourceLineNo">10129</span>                                        ox = (iax / ibx);<a name="line.10129"></a>
+<span class="sourceLineNo">10130</span>                                        of32data[it.oIndex] = ox;<a name="line.10130"></a>
+<span class="sourceLineNo">10131</span>                                }<a name="line.10131"></a>
+<span class="sourceLineNo">10132</span>                        }<a name="line.10132"></a>
+<span class="sourceLineNo">10133</span>                        break;<a name="line.10133"></a>
+<span class="sourceLineNo">10134</span>                case Dataset.FLOAT64:<a name="line.10134"></a>
+<span class="sourceLineNo">10135</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.10135"></a>
+<span class="sourceLineNo">10136</span>                        if (it.isOutputDouble()) {<a name="line.10136"></a>
+<span class="sourceLineNo">10137</span>                                while (it.hasNext()) {<a name="line.10137"></a>
+<span class="sourceLineNo">10138</span>                                        final double iax = it.aDouble;<a name="line.10138"></a>
+<span class="sourceLineNo">10139</span>                                        final double ibx = it.bDouble;<a name="line.10139"></a>
+<span class="sourceLineNo">10140</span>                                        double ox;<a name="line.10140"></a>
+<span class="sourceLineNo">10141</span>                                        ox = (iax / ibx);<a name="line.10141"></a>
+<span class="sourceLineNo">10142</span>                                        of64data[it.oIndex] = ox;<a name="line.10142"></a>
+<span class="sourceLineNo">10143</span>                                }<a name="line.10143"></a>
+<span class="sourceLineNo">10144</span>                        } else {<a name="line.10144"></a>
+<span class="sourceLineNo">10145</span>                                while (it.hasNext()) {<a name="line.10145"></a>
+<span class="sourceLineNo">10146</span>                                        final long iax = it.aLong;<a name="line.10146"></a>
+<span class="sourceLineNo">10147</span>                                        final long ibx = it.bLong;<a name="line.10147"></a>
+<span class="sourceLineNo">10148</span>                                        double ox;<a name="line.10148"></a>
+<span class="sourceLineNo">10149</span>                                        ox = (iax / ibx);<a name="line.10149"></a>
+<span class="sourceLineNo">10150</span>                                        of64data[it.oIndex] = ox;<a name="line.10150"></a>
+<span class="sourceLineNo">10151</span>                                }<a name="line.10151"></a>
+<span class="sourceLineNo">10152</span>                        }<a name="line.10152"></a>
+<span class="sourceLineNo">10153</span>                        break;<a name="line.10153"></a>
+<span class="sourceLineNo">10154</span>                case Dataset.ARRAYFLOAT32:<a name="line.10154"></a>
+<span class="sourceLineNo">10155</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.10155"></a>
+<span class="sourceLineNo">10156</span>                        if (is == 1) {<a name="line.10156"></a>
+<span class="sourceLineNo">10157</span>                                if (it.isOutputDouble()) {<a name="line.10157"></a>
+<span class="sourceLineNo">10158</span>                                        while (it.hasNext()) {<a name="line.10158"></a>
+<span class="sourceLineNo">10159</span>                                                final double iax = it.aDouble;<a name="line.10159"></a>
+<span class="sourceLineNo">10160</span>                                                final double ibx = it.bDouble;<a name="line.10160"></a>
+<span class="sourceLineNo">10161</span>                                                float ox;<a name="line.10161"></a>
+<span class="sourceLineNo">10162</span>                                                ox = (float) (iax / ibx);<a name="line.10162"></a>
+<span class="sourceLineNo">10163</span>                                                oaf32data[it.oIndex] = ox;<a name="line.10163"></a>
+<span class="sourceLineNo">10164</span>                                        }<a name="line.10164"></a>
+<span class="sourceLineNo">10165</span>                                } else {<a name="line.10165"></a>
+<span class="sourceLineNo">10166</span>                                        while (it.hasNext()) {<a name="line.10166"></a>
+<span class="sourceLineNo">10167</span>                                                final long iax = it.aLong;<a name="line.10167"></a>
+<span class="sourceLineNo">10168</span>                                                final long ibx = it.bLong;<a name="line.10168"></a>
+<span class="sourceLineNo">10169</span>                                                float ox;<a name="line.10169"></a>
+<span class="sourceLineNo">10170</span>                                                ox = (iax / ibx);<a name="line.10170"></a>
+<span class="sourceLineNo">10171</span>                                                oaf32data[it.oIndex] = ox;<a name="line.10171"></a>
+<span class="sourceLineNo">10172</span>                                        }<a name="line.10172"></a>
+<span class="sourceLineNo">10173</span>                                }<a name="line.10173"></a>
+<span class="sourceLineNo">10174</span>                        } else if (as &lt; bs) {<a name="line.10174"></a>
+<span class="sourceLineNo">10175</span>                                if (it.isOutputDouble()) {<a name="line.10175"></a>
+<span class="sourceLineNo">10176</span>                                        while (it.hasNext()) {<a name="line.10176"></a>
+<span class="sourceLineNo">10177</span>                                                final double iax = it.aDouble;<a name="line.10177"></a>
+<span class="sourceLineNo">10178</span>                                                double ibx = it.bDouble;<a name="line.10178"></a>
+<span class="sourceLineNo">10179</span>                                                float ox;<a name="line.10179"></a>
+<span class="sourceLineNo">10180</span>                                                ox = (float) (iax / ibx);<a name="line.10180"></a>
+<span class="sourceLineNo">10181</span>                                                oaf32data[it.oIndex] = ox;<a name="line.10181"></a>
+<span class="sourceLineNo">10182</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.10182"></a>
+<span class="sourceLineNo">10183</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.10183"></a>
+<span class="sourceLineNo">10184</span>                                                        ox = (float) (iax / ibx);<a name="line.10184"></a>
+<span class="sourceLineNo">10185</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.10185"></a>
+<span class="sourceLineNo">10186</span>                                                }<a name="line.10186"></a>
+<span class="sourceLineNo">10187</span>                                        }<a name="line.10187"></a>
+<span class="sourceLineNo">10188</span>                                } else {<a name="line.10188"></a>
+<span class="sourceLineNo">10189</span>                                        while (it.hasNext()) {<a name="line.10189"></a>
+<span class="sourceLineNo">10190</span>                                                final long iax = it.aLong;<a name="line.10190"></a>
+<span class="sourceLineNo">10191</span>                                                long ibx = it.bLong;<a name="line.10191"></a>
+<span class="sourceLineNo">10192</span>                                                float ox;<a name="line.10192"></a>
+<span class="sourceLineNo">10193</span>                                                ox = (iax / ibx);<a name="line.10193"></a>
+<span class="sourceLineNo">10194</span>                                                oaf32data[it.oIndex] = ox;<a name="line.10194"></a>
+<span class="sourceLineNo">10195</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.10195"></a>
+<span class="sourceLineNo">10196</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.10196"></a>
+<span class="sourceLineNo">10197</span>                                                        ox = (iax / ibx);<a name="line.10197"></a>
+<span class="sourceLineNo">10198</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.10198"></a>
+<span class="sourceLineNo">10199</span>                                                }<a name="line.10199"></a>
+<span class="sourceLineNo">10200</span>                                        }<a name="line.10200"></a>
+<span class="sourceLineNo">10201</span>                                }<a name="line.10201"></a>
+<span class="sourceLineNo">10202</span>                        } else if (as &gt; bs) {<a name="line.10202"></a>
+<span class="sourceLineNo">10203</span>                                if (it.isOutputDouble()) {<a name="line.10203"></a>
+<span class="sourceLineNo">10204</span>                                        while (it.hasNext()) {<a name="line.10204"></a>
+<span class="sourceLineNo">10205</span>                                                double iax = it.aDouble;<a name="line.10205"></a>
+<span class="sourceLineNo">10206</span>                                                final double ibx = it.bDouble;<a name="line.10206"></a>
+<span class="sourceLineNo">10207</span>                                                float ox;<a name="line.10207"></a>
+<span class="sourceLineNo">10208</span>                                                ox = (float) (iax / ibx);<a name="line.10208"></a>
+<span class="sourceLineNo">10209</span>                                                oaf32data[it.oIndex] = ox;<a name="line.10209"></a>
+<span class="sourceLineNo">10210</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.10210"></a>
+<span class="sourceLineNo">10211</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.10211"></a>
+<span class="sourceLineNo">10212</span>                                                        ox = (float) (iax / ibx);<a name="line.10212"></a>
+<span class="sourceLineNo">10213</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.10213"></a>
+<span class="sourceLineNo">10214</span>                                                }<a name="line.10214"></a>
+<span class="sourceLineNo">10215</span>                                        }<a name="line.10215"></a>
+<span class="sourceLineNo">10216</span>                                } else {<a name="line.10216"></a>
+<span class="sourceLineNo">10217</span>                                        while (it.hasNext()) {<a name="line.10217"></a>
+<span class="sourceLineNo">10218</span>                                                long iax = it.aLong;<a name="line.10218"></a>
+<span class="sourceLineNo">10219</span>                                                final long ibx = it.bLong;<a name="line.10219"></a>
+<span class="sourceLineNo">10220</span>                                                float ox;<a name="line.10220"></a>
+<span class="sourceLineNo">10221</span>                                                ox = (iax / ibx);<a name="line.10221"></a>
+<span class="sourceLineNo">10222</span>                                                oaf32data[it.oIndex] = ox;<a name="line.10222"></a>
+<span class="sourceLineNo">10223</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.10223"></a>
+<span class="sourceLineNo">10224</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.10224"></a>
+<span class="sourceLineNo">10225</span>                                                        ox = (iax / ibx);<a name="line.10225"></a>
+<span class="sourceLineNo">10226</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.10226"></a>
+<span class="sourceLineNo">10227</span>                                                }<a name="line.10227"></a>
+<span class="sourceLineNo">10228</span>                                        }<a name="line.10228"></a>
+<span class="sourceLineNo">10229</span>                                }<a name="line.10229"></a>
+<span class="sourceLineNo">10230</span>                        } else if (as == 1) {<a name="line.10230"></a>
+<span class="sourceLineNo">10231</span>                                if (it.isOutputDouble()) {<a name="line.10231"></a>
+<span class="sourceLineNo">10232</span>                                        while (it.hasNext()) {<a name="line.10232"></a>
+<span class="sourceLineNo">10233</span>                                                final double iax = it.aDouble;<a name="line.10233"></a>
+<span class="sourceLineNo">10234</span>                                                final double ibx = it.bDouble;<a name="line.10234"></a>
+<span class="sourceLineNo">10235</span>                                                float ox;<a name="line.10235"></a>
+<span class="sourceLineNo">10236</span>                                                ox = (float) (iax / ibx);<a name="line.10236"></a>
+<span class="sourceLineNo">10237</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.10237"></a>
+<span class="sourceLineNo">10238</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.10238"></a>
+<span class="sourceLineNo">10239</span>                                                }<a name="line.10239"></a>
+<span class="sourceLineNo">10240</span>                                        }<a name="line.10240"></a>
+<span class="sourceLineNo">10241</span>                                } else {<a name="line.10241"></a>
+<span class="sourceLineNo">10242</span>                                        while (it.hasNext()) {<a name="line.10242"></a>
+<span class="sourceLineNo">10243</span>                                                final long iax = it.aLong;<a name="line.10243"></a>
+<span class="sourceLineNo">10244</span>                                                final long ibx = it.bLong;<a name="line.10244"></a>
+<span class="sourceLineNo">10245</span>                                                float ox;<a name="line.10245"></a>
+<span class="sourceLineNo">10246</span>                                                ox = (iax / ibx);<a name="line.10246"></a>
+<span class="sourceLineNo">10247</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.10247"></a>
+<span class="sourceLineNo">10248</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.10248"></a>
+<span class="sourceLineNo">10249</span>                                                }<a name="line.10249"></a>
+<span class="sourceLineNo">10250</span>                                        }<a name="line.10250"></a>
+<span class="sourceLineNo">10251</span>                                }<a name="line.10251"></a>
+<span class="sourceLineNo">10252</span>                        } else {<a name="line.10252"></a>
+<span class="sourceLineNo">10253</span>                                if (it.isOutputDouble()) {<a name="line.10253"></a>
+<span class="sourceLineNo">10254</span>                                        while (it.hasNext()) {<a name="line.10254"></a>
+<span class="sourceLineNo">10255</span>                                                double iax = it.aDouble;<a name="line.10255"></a>
+<span class="sourceLineNo">10256</span>                                                double ibx = it.bDouble;<a name="line.10256"></a>
+<span class="sourceLineNo">10257</span>                                                float ox;<a name="line.10257"></a>
+<span class="sourceLineNo">10258</span>                                                ox = (float) (iax / ibx);<a name="line.10258"></a>
+<span class="sourceLineNo">10259</span>                                                oaf32data[it.oIndex] = ox;<a name="line.10259"></a>
+<span class="sourceLineNo">10260</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.10260"></a>
+<span class="sourceLineNo">10261</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.10261"></a>
+<span class="sourceLineNo">10262</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.10262"></a>
+<span class="sourceLineNo">10263</span>                                                        ox = (float) (iax / ibx);<a name="line.10263"></a>
+<span class="sourceLineNo">10264</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.10264"></a>
+<span class="sourceLineNo">10265</span>                                                }<a name="line.10265"></a>
+<span class="sourceLineNo">10266</span>                                        }<a name="line.10266"></a>
+<span class="sourceLineNo">10267</span>                                } else {<a name="line.10267"></a>
+<span class="sourceLineNo">10268</span>                                        while (it.hasNext()) {<a name="line.10268"></a>
+<span class="sourceLineNo">10269</span>                                                long iax = it.aLong;<a name="line.10269"></a>
+<span class="sourceLineNo">10270</span>                                                long ibx = it.bLong;<a name="line.10270"></a>
+<span class="sourceLineNo">10271</span>                                                float ox;<a name="line.10271"></a>
+<span class="sourceLineNo">10272</span>                                                ox = (iax / ibx);<a name="line.10272"></a>
+<span class="sourceLineNo">10273</span>                                                oaf32data[it.oIndex] = ox;<a name="line.10273"></a>
+<span class="sourceLineNo">10274</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.10274"></a>
+<span class="sourceLineNo">10275</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.10275"></a>
+<span class="sourceLineNo">10276</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.10276"></a>
+<span class="sourceLineNo">10277</span>                                                        ox = (iax / ibx);<a name="line.10277"></a>
+<span class="sourceLineNo">10278</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.10278"></a>
+<span class="sourceLineNo">10279</span>                                                }<a name="line.10279"></a>
+<span class="sourceLineNo">10280</span>                                        }<a name="line.10280"></a>
+<span class="sourceLineNo">10281</span>                                }<a name="line.10281"></a>
+<span class="sourceLineNo">10282</span>                        }<a name="line.10282"></a>
+<span class="sourceLineNo">10283</span>                        break;<a name="line.10283"></a>
+<span class="sourceLineNo">10284</span>                case Dataset.ARRAYFLOAT64:<a name="line.10284"></a>
+<span class="sourceLineNo">10285</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.10285"></a>
+<span class="sourceLineNo">10286</span>                        if (is == 1) {<a name="line.10286"></a>
+<span class="sourceLineNo">10287</span>                                if (it.isOutputDouble()) {<a name="line.10287"></a>
+<span class="sourceLineNo">10288</span>                                        while (it.hasNext()) {<a name="line.10288"></a>
+<span class="sourceLineNo">10289</span>                                                final double iax = it.aDouble;<a name="line.10289"></a>
+<span class="sourceLineNo">10290</span>                                                final double ibx = it.bDouble;<a name="line.10290"></a>
+<span class="sourceLineNo">10291</span>                                                double ox;<a name="line.10291"></a>
+<span class="sourceLineNo">10292</span>                                                ox = (iax / ibx);<a name="line.10292"></a>
+<span class="sourceLineNo">10293</span>                                                oaf64data[it.oIndex] = ox;<a name="line.10293"></a>
+<span class="sourceLineNo">10294</span>                                        }<a name="line.10294"></a>
+<span class="sourceLineNo">10295</span>                                } else {<a name="line.10295"></a>
+<span class="sourceLineNo">10296</span>                                        while (it.hasNext()) {<a name="line.10296"></a>
+<span class="sourceLineNo">10297</span>                                                final long iax = it.aLong;<a name="line.10297"></a>
+<span class="sourceLineNo">10298</span>                                                final long ibx = it.bLong;<a name="line.10298"></a>
+<span class="sourceLineNo">10299</span>                                                double ox;<a name="line.10299"></a>
+<span class="sourceLineNo">10300</span>                                                ox = (iax / ibx);<a name="line.10300"></a>
+<span class="sourceLineNo">10301</span>                                                oaf64data[it.oIndex] = ox;<a name="line.10301"></a>
+<span class="sourceLineNo">10302</span>                                        }<a name="line.10302"></a>
+<span class="sourceLineNo">10303</span>                                }<a name="line.10303"></a>
+<span class="sourceLineNo">10304</span>                        } else if (as &lt; bs) {<a name="line.10304"></a>
+<span class="sourceLineNo">10305</span>                                if (it.isOutputDouble()) {<a name="line.10305"></a>
+<span class="sourceLineNo">10306</span>                                        while (it.hasNext()) {<a name="line.10306"></a>
+<span class="sourceLineNo">10307</span>                                                final double iax = it.aDouble;<a name="line.10307"></a>
+<span class="sourceLineNo">10308</span>                                                double ibx = it.bDouble;<a name="line.10308"></a>
+<span class="sourceLineNo">10309</span>                                                double ox;<a name="line.10309"></a>
+<span class="sourceLineNo">10310</span>                                                ox = (iax / ibx);<a name="line.10310"></a>
+<span class="sourceLineNo">10311</span>                                                oaf64data[it.oIndex] = ox;<a name="line.10311"></a>
+<span class="sourceLineNo">10312</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.10312"></a>
+<span class="sourceLineNo">10313</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.10313"></a>
+<span class="sourceLineNo">10314</span>                                                        ox = (iax / ibx);<a name="line.10314"></a>
+<span class="sourceLineNo">10315</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.10315"></a>
+<span class="sourceLineNo">10316</span>                                                }<a name="line.10316"></a>
+<span class="sourceLineNo">10317</span>                                        }<a name="line.10317"></a>
+<span class="sourceLineNo">10318</span>                                } else {<a name="line.10318"></a>
+<span class="sourceLineNo">10319</span>                                        while (it.hasNext()) {<a name="line.10319"></a>
+<span class="sourceLineNo">10320</span>                                                final long iax = it.aLong;<a name="line.10320"></a>
+<span class="sourceLineNo">10321</span>                                                long ibx = it.bLong;<a name="line.10321"></a>
+<span class="sourceLineNo">10322</span>                                                double ox;<a name="line.10322"></a>
+<span class="sourceLineNo">10323</span>                                                ox = (iax / ibx);<a name="line.10323"></a>
+<span class="sourceLineNo">10324</span>                                                oaf64data[it.oIndex] = ox;<a name="line.10324"></a>
+<span class="sourceLineNo">10325</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.10325"></a>
+<span class="sourceLineNo">10326</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.10326"></a>
+<span class="sourceLineNo">10327</span>                                                        ox = (iax / ibx);<a name="line.10327"></a>
+<span class="sourceLineNo">10328</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.10328"></a>
+<span class="sourceLineNo">10329</span>                                                }<a name="line.10329"></a>
+<span class="sourceLineNo">10330</span>                                        }<a name="line.10330"></a>
+<span class="sourceLineNo">10331</span>                                }<a name="line.10331"></a>
+<span class="sourceLineNo">10332</span>                        } else if (as &gt; bs) {<a name="line.10332"></a>
+<span class="sourceLineNo">10333</span>                                if (it.isOutputDouble()) {<a name="line.10333"></a>
+<span class="sourceLineNo">10334</span>                                        while (it.hasNext()) {<a name="line.10334"></a>
+<span class="sourceLineNo">10335</span>                                                double iax = it.aDouble;<a name="line.10335"></a>
+<span class="sourceLineNo">10336</span>                                                final double ibx = it.bDouble;<a name="line.10336"></a>
+<span class="sourceLineNo">10337</span>                                                double ox;<a name="line.10337"></a>
+<span class="sourceLineNo">10338</span>                                                ox = (iax / ibx);<a name="line.10338"></a>
+<span class="sourceLineNo">10339</span>                                                oaf64data[it.oIndex] = ox;<a name="line.10339"></a>
+<span class="sourceLineNo">10340</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.10340"></a>
+<span class="sourceLineNo">10341</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.10341"></a>
+<span class="sourceLineNo">10342</span>                                                        ox = (iax / ibx);<a name="line.10342"></a>
+<span class="sourceLineNo">10343</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.10343"></a>
+<span class="sourceLineNo">10344</span>                                                }<a name="line.10344"></a>
+<span class="sourceLineNo">10345</span>                                        }<a name="line.10345"></a>
+<span class="sourceLineNo">10346</span>                                } else {<a name="line.10346"></a>
+<span class="sourceLineNo">10347</span>                                        while (it.hasNext()) {<a name="line.10347"></a>
+<span class="sourceLineNo">10348</span>                                                long iax = it.aLong;<a name="line.10348"></a>
+<span class="sourceLineNo">10349</span>                                                final long ibx = it.bLong;<a name="line.10349"></a>
+<span class="sourceLineNo">10350</span>                                                double ox;<a name="line.10350"></a>
+<span class="sourceLineNo">10351</span>                                                ox = (iax / ibx);<a name="line.10351"></a>
+<span class="sourceLineNo">10352</span>                                                oaf64data[it.oIndex] = ox;<a name="line.10352"></a>
+<span class="sourceLineNo">10353</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.10353"></a>
+<span class="sourceLineNo">10354</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.10354"></a>
+<span class="sourceLineNo">10355</span>                                                        ox = (iax / ibx);<a name="line.10355"></a>
+<span class="sourceLineNo">10356</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.10356"></a>
+<span class="sourceLineNo">10357</span>                                                }<a name="line.10357"></a>
+<span class="sourceLineNo">10358</span>                                        }<a name="line.10358"></a>
+<span class="sourceLineNo">10359</span>                                }<a name="line.10359"></a>
+<span class="sourceLineNo">10360</span>                        } else if (as == 1) {<a name="line.10360"></a>
+<span class="sourceLineNo">10361</span>                                if (it.isOutputDouble()) {<a name="line.10361"></a>
+<span class="sourceLineNo">10362</span>                                        while (it.hasNext()) {<a name="line.10362"></a>
+<span class="sourceLineNo">10363</span>                                                final double iax = it.aDouble;<a name="line.10363"></a>
+<span class="sourceLineNo">10364</span>                                                final double ibx = it.bDouble;<a name="line.10364"></a>
+<span class="sourceLineNo">10365</span>                                                double ox;<a name="line.10365"></a>
+<span class="sourceLineNo">10366</span>                                                ox = (iax / ibx);<a name="line.10366"></a>
+<span class="sourceLineNo">10367</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.10367"></a>
+<span class="sourceLineNo">10368</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.10368"></a>
+<span class="sourceLineNo">10369</span>                                                }<a name="line.10369"></a>
+<span class="sourceLineNo">10370</span>                                        }<a name="line.10370"></a>
+<span class="sourceLineNo">10371</span>                                } else {<a name="line.10371"></a>
+<span class="sourceLineNo">10372</span>                                        while (it.hasNext()) {<a name="line.10372"></a>
+<span class="sourceLineNo">10373</span>                                                final long iax = it.aLong;<a name="line.10373"></a>
+<span class="sourceLineNo">10374</span>                                                final long ibx = it.bLong;<a name="line.10374"></a>
+<span class="sourceLineNo">10375</span>                                                double ox;<a name="line.10375"></a>
+<span class="sourceLineNo">10376</span>                                                ox = (iax / ibx);<a name="line.10376"></a>
+<span class="sourceLineNo">10377</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.10377"></a>
+<span class="sourceLineNo">10378</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.10378"></a>
+<span class="sourceLineNo">10379</span>                                                }<a name="line.10379"></a>
+<span class="sourceLineNo">10380</span>                                        }<a name="line.10380"></a>
+<span class="sourceLineNo">10381</span>                                }<a name="line.10381"></a>
+<span class="sourceLineNo">10382</span>                        } else {<a name="line.10382"></a>
+<span class="sourceLineNo">10383</span>                                if (it.isOutputDouble()) {<a name="line.10383"></a>
+<span class="sourceLineNo">10384</span>                                        while (it.hasNext()) {<a name="line.10384"></a>
+<span class="sourceLineNo">10385</span>                                                double iax = it.aDouble;<a name="line.10385"></a>
+<span class="sourceLineNo">10386</span>                                                double ibx = it.bDouble;<a name="line.10386"></a>
+<span class="sourceLineNo">10387</span>                                                double ox;<a name="line.10387"></a>
+<span class="sourceLineNo">10388</span>                                                ox = (iax / ibx);<a name="line.10388"></a>
+<span class="sourceLineNo">10389</span>                                                oaf64data[it.oIndex] = ox;<a name="line.10389"></a>
+<span class="sourceLineNo">10390</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.10390"></a>
+<span class="sourceLineNo">10391</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.10391"></a>
+<span class="sourceLineNo">10392</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.10392"></a>
+<span class="sourceLineNo">10393</span>                                                        ox = (iax / ibx);<a name="line.10393"></a>
+<span class="sourceLineNo">10394</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.10394"></a>
+<span class="sourceLineNo">10395</span>                                                }<a name="line.10395"></a>
+<span class="sourceLineNo">10396</span>                                        }<a name="line.10396"></a>
+<span class="sourceLineNo">10397</span>                                } else {<a name="line.10397"></a>
+<span class="sourceLineNo">10398</span>                                        while (it.hasNext()) {<a name="line.10398"></a>
+<span class="sourceLineNo">10399</span>                                                long iax = it.aLong;<a name="line.10399"></a>
+<span class="sourceLineNo">10400</span>                                                long ibx = it.bLong;<a name="line.10400"></a>
+<span class="sourceLineNo">10401</span>                                                double ox;<a name="line.10401"></a>
+<span class="sourceLineNo">10402</span>                                                ox = (iax / ibx);<a name="line.10402"></a>
+<span class="sourceLineNo">10403</span>                                                oaf64data[it.oIndex] = ox;<a name="line.10403"></a>
+<span class="sourceLineNo">10404</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.10404"></a>
+<span class="sourceLineNo">10405</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.10405"></a>
+<span class="sourceLineNo">10406</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.10406"></a>
+<span class="sourceLineNo">10407</span>                                                        ox = (iax / ibx);<a name="line.10407"></a>
+<span class="sourceLineNo">10408</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.10408"></a>
+<span class="sourceLineNo">10409</span>                                                }<a name="line.10409"></a>
+<span class="sourceLineNo">10410</span>                                        }<a name="line.10410"></a>
+<span class="sourceLineNo">10411</span>                                }<a name="line.10411"></a>
+<span class="sourceLineNo">10412</span>                        }<a name="line.10412"></a>
+<span class="sourceLineNo">10413</span>                        break;<a name="line.10413"></a>
+<span class="sourceLineNo">10414</span>                case Dataset.COMPLEX64:<a name="line.10414"></a>
+<span class="sourceLineNo">10415</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.10415"></a>
+<span class="sourceLineNo">10416</span>                        if (!da.isComplex()) {<a name="line.10416"></a>
+<span class="sourceLineNo">10417</span>                                if (it.isOutputDouble()) {<a name="line.10417"></a>
+<span class="sourceLineNo">10418</span>                                        final double iay = 0;<a name="line.10418"></a>
+<span class="sourceLineNo">10419</span>                                        if (db.isComplex()) {<a name="line.10419"></a>
+<span class="sourceLineNo">10420</span>                                                while (it.hasNext()) {<a name="line.10420"></a>
+<span class="sourceLineNo">10421</span>                                                        final double iax = it.aDouble;<a name="line.10421"></a>
+<span class="sourceLineNo">10422</span>                                                        final double ibx = it.bDouble;<a name="line.10422"></a>
+<span class="sourceLineNo">10423</span>                                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.10423"></a>
+<span class="sourceLineNo">10424</span>                                                        float ox;<a name="line.10424"></a>
+<span class="sourceLineNo">10425</span>                                                        float oy;<a name="line.10425"></a>
+<span class="sourceLineNo">10426</span>                                                        float q;<a name="line.10426"></a>
+<span class="sourceLineNo">10427</span>                                                        float den;<a name="line.10427"></a>
+<span class="sourceLineNo">10428</span>                                                        if (iby == 0) {<a name="line.10428"></a>
+<span class="sourceLineNo">10429</span>                                                                ox = (float) (iax / ibx);<a name="line.10429"></a>
+<span class="sourceLineNo">10430</span>                                                                oy = (float) (iay / ibx);<a name="line.10430"></a>
+<span class="sourceLineNo">10431</span>                                                        } else if (ibx == 0) {<a name="line.10431"></a>
+<span class="sourceLineNo">10432</span>                                                                ox = (float) (iay / iby);<a name="line.10432"></a>
+<span class="sourceLineNo">10433</span>                                                                oy = (float) (-iax / iby);<a name="line.10433"></a>
+<span class="sourceLineNo">10434</span>                                                        } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.10434"></a>
+<span class="sourceLineNo">10435</span>                                                                q = (float) (ibx / iby);<a name="line.10435"></a>
+<span class="sourceLineNo">10436</span>                                                                den = (float) (ibx * q + iby);<a name="line.10436"></a>
+<span class="sourceLineNo">10437</span>                                                                ox = (float) ((iax * q + iay) / den);<a name="line.10437"></a>
+<span class="sourceLineNo">10438</span>                                                                oy = (float) ((iay * q - ibx) / den);<a name="line.10438"></a>
+<span class="sourceLineNo">10439</span>                                                        } else {<a name="line.10439"></a>
+<span class="sourceLineNo">10440</span>                                                                q = (float) (iby / ibx);<a name="line.10440"></a>
+<span class="sourceLineNo">10441</span>                                                                den = (float) (iby * q + ibx);<a name="line.10441"></a>
+<span class="sourceLineNo">10442</span>                                                                ox = (float) ((iay * q + iax) / den);<a name="line.10442"></a>
+<span class="sourceLineNo">10443</span>                                                                oy = (float) ((iay - iax * q) / den);<a name="line.10443"></a>
+<span class="sourceLineNo">10444</span>                                                        }<a name="line.10444"></a>
+<span class="sourceLineNo">10445</span>                                                        oc64data[it.oIndex] = ox;<a name="line.10445"></a>
+<span class="sourceLineNo">10446</span>                                                        oc64data[it.oIndex + 1] = oy;<a name="line.10446"></a>
+<span class="sourceLineNo">10447</span>                                                }<a name="line.10447"></a>
+<span class="sourceLineNo">10448</span>                                        } else {<a name="line.10448"></a>
+<span class="sourceLineNo">10449</span>                                                while (it.hasNext()) {<a name="line.10449"></a>
+<span class="sourceLineNo">10450</span>                                                        final double iax = it.aDouble;<a name="line.10450"></a>
+<span class="sourceLineNo">10451</span>                                                        final double ibx = it.bDouble;<a name="line.10451"></a>
+<span class="sourceLineNo">10452</span>                                                        final double iby = 0;<a name="line.10452"></a>
+<span class="sourceLineNo">10453</span>                                                        float ox;<a name="line.10453"></a>
+<span class="sourceLineNo">10454</span>                                                        float oy;<a name="line.10454"></a>
+<span class="sourceLineNo">10455</span>                                                        float q;<a name="line.10455"></a>
+<span class="sourceLineNo">10456</span>                                                        float den;<a name="line.10456"></a>
+<span class="sourceLineNo">10457</span>                                                        if (iby == 0) {<a name="line.10457"></a>
+<span class="sourceLineNo">10458</span>                                                                ox = (float) (iax / ibx);<a name="line.10458"></a>
+<span class="sourceLineNo">10459</span>                                                                oy = (float) (iay / ibx);<a name="line.10459"></a>
+<span class="sourceLineNo">10460</span>                                                        } else if (ibx == 0) {<a name="line.10460"></a>
+<span class="sourceLineNo">10461</span>                                                                ox = (float) (iay / iby);<a name="line.10461"></a>
+<span class="sourceLineNo">10462</span>                                                                oy = (float) (-iax / iby);<a name="line.10462"></a>
+<span class="sourceLineNo">10463</span>                                                        } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.10463"></a>
+<span class="sourceLineNo">10464</span>                                                                q = (float) (ibx / iby);<a name="line.10464"></a>
+<span class="sourceLineNo">10465</span>                                                                den = (float) (ibx * q + iby);<a name="line.10465"></a>
+<span class="sourceLineNo">10466</span>                                                                ox = (float) ((iax * q + iay) / den);<a name="line.10466"></a>
+<span class="sourceLineNo">10467</span>                                                                oy = (float) ((iay * q - ibx) / den);<a name="line.10467"></a>
+<span class="sourceLineNo">10468</span>                                                        } else {<a name="line.10468"></a>
+<span class="sourceLineNo">10469</span>                                                                q = (float) (iby / ibx);<a name="line.10469"></a>
+<span class="sourceLineNo">10470</span>                                                                den = (float) (iby * q + ibx);<a name="line.10470"></a>
+<span class="sourceLineNo">10471</span>                                                                ox = (float) ((iay * q + iax) / den);<a name="line.10471"></a>
+<span class="sourceLineNo">10472</span>                                                                oy = (float) ((iay - iax * q) / den);<a name="line.10472"></a>
+<span class="sourceLineNo">10473</span>                                                        }<a name="line.10473"></a>
+<span class="sourceLineNo">10474</span>                                                        oc64data[it.oIndex] = ox;<a name="line.10474"></a>
+<span class="sourceLineNo">10475</span>                                                        oc64data[it.oIndex + 1] = oy;<a name="line.10475"></a>
+<span class="sourceLineNo">10476</span>                                                }<a name="line.10476"></a>
+<span class="sourceLineNo">10477</span>                                        }<a name="line.10477"></a>
+<span class="sourceLineNo">10478</span>                                } else {<a name="line.10478"></a>
+<span class="sourceLineNo">10479</span>                                        final long iay = 0;<a name="line.10479"></a>
+<span class="sourceLineNo">10480</span>                                        while (it.hasNext()) {<a name="line.10480"></a>
+<span class="sourceLineNo">10481</span>                                                final long iax = it.aLong;<a name="line.10481"></a>
+<span class="sourceLineNo">10482</span>                                                final long ibx = it.bLong;<a name="line.10482"></a>
+<span class="sourceLineNo">10483</span>                                                final long iby = 0;<a name="line.10483"></a>
+<span class="sourceLineNo">10484</span>                                                float ox;<a name="line.10484"></a>
+<span class="sourceLineNo">10485</span>                                                float oy;<a name="line.10485"></a>
+<span class="sourceLineNo">10486</span>                                                float q;<a name="line.10486"></a>
+<span class="sourceLineNo">10487</span>                                                float den;<a name="line.10487"></a>
+<span class="sourceLineNo">10488</span>                                                if (iby == 0) {<a name="line.10488"></a>
+<span class="sourceLineNo">10489</span>                                                        ox = (float) (iax / ibx);<a name="line.10489"></a>
+<span class="sourceLineNo">10490</span>                                                        oy = (float) (iay / ibx);<a name="line.10490"></a>
+<span class="sourceLineNo">10491</span>                                                } else if (ibx == 0) {<a name="line.10491"></a>
+<span class="sourceLineNo">10492</span>                                                        ox = (float) (iay / iby);<a name="line.10492"></a>
+<span class="sourceLineNo">10493</span>                                                        oy = (float) (-iax / iby);<a name="line.10493"></a>
+<span class="sourceLineNo">10494</span>                                                } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.10494"></a>
+<span class="sourceLineNo">10495</span>                                                        q = (float) (ibx / iby);<a name="line.10495"></a>
+<span class="sourceLineNo">10496</span>                                                        den = (float) (ibx * q + iby);<a name="line.10496"></a>
+<span class="sourceLineNo">10497</span>                                                        ox = (float) ((iax * q + iay) / den);<a name="line.10497"></a>
+<span class="sourceLineNo">10498</span>                                                        oy = (float) ((iay * q - ibx) / den);<a name="line.10498"></a>
+<span class="sourceLineNo">10499</span>                                                } else {<a name="line.10499"></a>
+<span class="sourceLineNo">10500</span>                                                        q = (float) (iby / ibx);<a name="line.10500"></a>
+<span class="sourceLineNo">10501</span>                                                        den = (float) (iby * q + ibx);<a name="line.10501"></a>
+<span class="sourceLineNo">10502</span>                                                        ox = (float) ((iay * q + iax) / den);<a name="line.10502"></a>
+<span class="sourceLineNo">10503</span>                                                        oy = (float) ((iay - iax * q) / den);<a name="line.10503"></a>
+<span class="sourceLineNo">10504</span>                                                }<a name="line.10504"></a>
+<span class="sourceLineNo">10505</span>                                                oc64data[it.oIndex] = ox;<a name="line.10505"></a>
+<span class="sourceLineNo">10506</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.10506"></a>
+<span class="sourceLineNo">10507</span>                                        }<a name="line.10507"></a>
+<span class="sourceLineNo">10508</span>                                }<a name="line.10508"></a>
+<span class="sourceLineNo">10509</span>                        } else if (!db.isComplex()) {<a name="line.10509"></a>
+<span class="sourceLineNo">10510</span>                                final double iby = 0;<a name="line.10510"></a>
+<span class="sourceLineNo">10511</span>                                while (it.hasNext()) {<a name="line.10511"></a>
+<span class="sourceLineNo">10512</span>                                        final double iax = it.aDouble;<a name="line.10512"></a>
+<span class="sourceLineNo">10513</span>                                        final double ibx = it.bDouble;<a name="line.10513"></a>
+<span class="sourceLineNo">10514</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.10514"></a>
+<span class="sourceLineNo">10515</span>                                        float ox;<a name="line.10515"></a>
+<span class="sourceLineNo">10516</span>                                        float oy;<a name="line.10516"></a>
+<span class="sourceLineNo">10517</span>                                        float q;<a name="line.10517"></a>
+<span class="sourceLineNo">10518</span>                                        float den;<a name="line.10518"></a>
+<span class="sourceLineNo">10519</span>                                        if (iby == 0) {<a name="line.10519"></a>
+<span class="sourceLineNo">10520</span>                                                ox = (float) (iax / ibx);<a name="line.10520"></a>
+<span class="sourceLineNo">10521</span>                                                oy = (float) (iay / ibx);<a name="line.10521"></a>
+<span class="sourceLineNo">10522</span>                                        } else if (ibx == 0) {<a name="line.10522"></a>
+<span class="sourceLineNo">10523</span>                                                ox = (float) (iay / iby);<a name="line.10523"></a>
+<span class="sourceLineNo">10524</span>                                                oy = (float) (-iax / iby);<a name="line.10524"></a>
+<span class="sourceLineNo">10525</span>                                        } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.10525"></a>
+<span class="sourceLineNo">10526</span>                                                q = (float) (ibx / iby);<a name="line.10526"></a>
+<span class="sourceLineNo">10527</span>                                                den = (float) (ibx * q + iby);<a name="line.10527"></a>
+<span class="sourceLineNo">10528</span>                                                ox = (float) ((iax * q + iay) / den);<a name="line.10528"></a>
+<span class="sourceLineNo">10529</span>                                                oy = (float) ((iay * q - ibx) / den);<a name="line.10529"></a>
+<span class="sourceLineNo">10530</span>                                        } else {<a name="line.10530"></a>
+<span class="sourceLineNo">10531</span>                                                q = (float) (iby / ibx);<a name="line.10531"></a>
+<span class="sourceLineNo">10532</span>                                                den = (float) (iby * q + ibx);<a name="line.10532"></a>
+<span class="sourceLineNo">10533</span>                                                ox = (float) ((iay * q + iax) / den);<a name="line.10533"></a>
+<span class="sourceLineNo">10534</span>                                                oy = (float) ((iay - iax * q) / den);<a name="line.10534"></a>
+<span class="sourceLineNo">10535</span>                                        }<a name="line.10535"></a>
+<span class="sourceLineNo">10536</span>                                        oc64data[it.oIndex] = ox;<a name="line.10536"></a>
+<span class="sourceLineNo">10537</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.10537"></a>
+<span class="sourceLineNo">10538</span>                                }<a name="line.10538"></a>
+<span class="sourceLineNo">10539</span>                        } else {<a name="line.10539"></a>
+<span class="sourceLineNo">10540</span>                                while (it.hasNext()) {<a name="line.10540"></a>
+<span class="sourceLineNo">10541</span>                                        final double iax = it.aDouble;<a name="line.10541"></a>
+<span class="sourceLineNo">10542</span>                                        final double ibx = it.bDouble;<a name="line.10542"></a>
+<span class="sourceLineNo">10543</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.10543"></a>
+<span class="sourceLineNo">10544</span>                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.10544"></a>
+<span class="sourceLineNo">10545</span>                                        float ox;<a name="line.10545"></a>
+<span class="sourceLineNo">10546</span>                                        float oy;<a name="line.10546"></a>
+<span class="sourceLineNo">10547</span>                                        float q;<a name="line.10547"></a>
+<span class="sourceLineNo">10548</span>                                        float den;<a name="line.10548"></a>
+<span class="sourceLineNo">10549</span>                                        if (iby == 0) {<a name="line.10549"></a>
+<span class="sourceLineNo">10550</span>                                                ox = (float) (iax / ibx);<a name="line.10550"></a>
+<span class="sourceLineNo">10551</span>                                                oy = (float) (iay / ibx);<a name="line.10551"></a>
+<span class="sourceLineNo">10552</span>                                        } else if (ibx == 0) {<a name="line.10552"></a>
+<span class="sourceLineNo">10553</span>                                                ox = (float) (iay / iby);<a name="line.10553"></a>
+<span class="sourceLineNo">10554</span>                                                oy = (float) (-iax / iby);<a name="line.10554"></a>
+<span class="sourceLineNo">10555</span>                                        } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.10555"></a>
+<span class="sourceLineNo">10556</span>                                                q = (float) (ibx / iby);<a name="line.10556"></a>
+<span class="sourceLineNo">10557</span>                                                den = (float) (ibx * q + iby);<a name="line.10557"></a>
+<span class="sourceLineNo">10558</span>                                                ox = (float) ((iax * q + iay) / den);<a name="line.10558"></a>
+<span class="sourceLineNo">10559</span>                                                oy = (float) ((iay * q - ibx) / den);<a name="line.10559"></a>
+<span class="sourceLineNo">10560</span>                                        } else {<a name="line.10560"></a>
+<span class="sourceLineNo">10561</span>                                                q = (float) (iby / ibx);<a name="line.10561"></a>
+<span class="sourceLineNo">10562</span>                                                den = (float) (iby * q + ibx);<a name="line.10562"></a>
+<span class="sourceLineNo">10563</span>                                                ox = (float) ((iay * q + iax) / den);<a name="line.10563"></a>
+<span class="sourceLineNo">10564</span>                                                oy = (float) ((iay - iax * q) / den);<a name="line.10564"></a>
+<span class="sourceLineNo">10565</span>                                        }<a name="line.10565"></a>
+<span class="sourceLineNo">10566</span>                                        oc64data[it.oIndex] = ox;<a name="line.10566"></a>
+<span class="sourceLineNo">10567</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.10567"></a>
+<span class="sourceLineNo">10568</span>                                }<a name="line.10568"></a>
+<span class="sourceLineNo">10569</span>                        }<a name="line.10569"></a>
+<span class="sourceLineNo">10570</span>                        break;<a name="line.10570"></a>
+<span class="sourceLineNo">10571</span>                case Dataset.COMPLEX128:<a name="line.10571"></a>
+<span class="sourceLineNo">10572</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.10572"></a>
+<span class="sourceLineNo">10573</span>                        if (!da.isComplex()) {<a name="line.10573"></a>
+<span class="sourceLineNo">10574</span>                                if (it.isOutputDouble()) {<a name="line.10574"></a>
+<span class="sourceLineNo">10575</span>                                        final double iay = 0;<a name="line.10575"></a>
+<span class="sourceLineNo">10576</span>                                        if (db.isComplex()) {<a name="line.10576"></a>
+<span class="sourceLineNo">10577</span>                                                while (it.hasNext()) {<a name="line.10577"></a>
+<span class="sourceLineNo">10578</span>                                                        final double iax = it.aDouble;<a name="line.10578"></a>
+<span class="sourceLineNo">10579</span>                                                        final double ibx = it.bDouble;<a name="line.10579"></a>
+<span class="sourceLineNo">10580</span>                                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.10580"></a>
+<span class="sourceLineNo">10581</span>                                                        double ox;<a name="line.10581"></a>
+<span class="sourceLineNo">10582</span>                                                        double oy;<a name="line.10582"></a>
+<span class="sourceLineNo">10583</span>                                                        double q;<a name="line.10583"></a>
+<span class="sourceLineNo">10584</span>                                                        double den;<a name="line.10584"></a>
+<span class="sourceLineNo">10585</span>                                                        if (iby == 0) {<a name="line.10585"></a>
+<span class="sourceLineNo">10586</span>                                                                ox = (iax / ibx);<a name="line.10586"></a>
+<span class="sourceLineNo">10587</span>                                                                oy = (iay / ibx);<a name="line.10587"></a>
+<span class="sourceLineNo">10588</span>                                                        } else if (ibx == 0) {<a name="line.10588"></a>
+<span class="sourceLineNo">10589</span>                                                                ox = (iay / iby);<a name="line.10589"></a>
+<span class="sourceLineNo">10590</span>                                                                oy = (-iax / iby);<a name="line.10590"></a>
+<span class="sourceLineNo">10591</span>                                                        } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.10591"></a>
+<span class="sourceLineNo">10592</span>                                                                q = (ibx / iby);<a name="line.10592"></a>
+<span class="sourceLineNo">10593</span>                                                                den = (ibx * q + iby);<a name="line.10593"></a>
+<span class="sourceLineNo">10594</span>                                                                ox = ((iax * q + iay) / den);<a name="line.10594"></a>
+<span class="sourceLineNo">10595</span>                                                                oy = ((iay * q - ibx) / den);<a name="line.10595"></a>
+<span class="sourceLineNo">10596</span>                                                        } else {<a name="line.10596"></a>
+<span class="sourceLineNo">10597</span>                                                                q = (iby / ibx);<a name="line.10597"></a>
+<span class="sourceLineNo">10598</span>                                                                den = (iby * q + ibx);<a name="line.10598"></a>
+<span class="sourceLineNo">10599</span>                                                                ox = ((iay * q + iax) / den);<a name="line.10599"></a>
+<span class="sourceLineNo">10600</span>                                                                oy = ((iay - iax * q) / den);<a name="line.10600"></a>
+<span class="sourceLineNo">10601</span>                                                        }<a name="line.10601"></a>
+<span class="sourceLineNo">10602</span>                                                        oc128data[it.oIndex] = ox;<a name="line.10602"></a>
+<span class="sourceLineNo">10603</span>                                                        oc128data[it.oIndex + 1] = oy;<a name="line.10603"></a>
+<span class="sourceLineNo">10604</span>                                                }<a name="line.10604"></a>
+<span class="sourceLineNo">10605</span>                                        } else {<a name="line.10605"></a>
+<span class="sourceLineNo">10606</span>                                                while (it.hasNext()) {<a name="line.10606"></a>
+<span class="sourceLineNo">10607</span>                                                        final double iax = it.aDouble;<a name="line.10607"></a>
+<span class="sourceLineNo">10608</span>                                                        final double ibx = it.bDouble;<a name="line.10608"></a>
+<span class="sourceLineNo">10609</span>                                                        final double iby = 0;<a name="line.10609"></a>
+<span class="sourceLineNo">10610</span>                                                        double ox;<a name="line.10610"></a>
+<span class="sourceLineNo">10611</span>                                                        double oy;<a name="line.10611"></a>
+<span class="sourceLineNo">10612</span>                                                        double q;<a name="line.10612"></a>
+<span class="sourceLineNo">10613</span>                                                        double den;<a name="line.10613"></a>
+<span class="sourceLineNo">10614</span>                                                        if (iby == 0) {<a name="line.10614"></a>
+<span class="sourceLineNo">10615</span>                                                                ox = (iax / ibx);<a name="line.10615"></a>
+<span class="sourceLineNo">10616</span>                                                                oy = (iay / ibx);<a name="line.10616"></a>
+<span class="sourceLineNo">10617</span>                                                        } else if (ibx == 0) {<a name="line.10617"></a>
+<span class="sourceLineNo">10618</span>                                                                ox = (iay / iby);<a name="line.10618"></a>
+<span class="sourceLineNo">10619</span>                                                                oy = (-iax / iby);<a name="line.10619"></a>
+<span class="sourceLineNo">10620</span>                                                        } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.10620"></a>
+<span class="sourceLineNo">10621</span>                                                                q = (ibx / iby);<a name="line.10621"></a>
+<span class="sourceLineNo">10622</span>                                                                den = (ibx * q + iby);<a name="line.10622"></a>
+<span class="sourceLineNo">10623</span>                                                                ox = ((iax * q + iay) / den);<a name="line.10623"></a>
+<span class="sourceLineNo">10624</span>                                                                oy = ((iay * q - ibx) / den);<a name="line.10624"></a>
+<span class="sourceLineNo">10625</span>                                                        } else {<a name="line.10625"></a>
+<span class="sourceLineNo">10626</span>                                                                q = (iby / ibx);<a name="line.10626"></a>
+<span class="sourceLineNo">10627</span>                                                                den = (iby * q + ibx);<a name="line.10627"></a>
+<span class="sourceLineNo">10628</span>                                                                ox = ((iay * q + iax) / den);<a name="line.10628"></a>
+<span class="sourceLineNo">10629</span>                                                                oy = ((iay - iax * q) / den);<a name="line.10629"></a>
+<span class="sourceLineNo">10630</span>                                                        }<a name="line.10630"></a>
+<span class="sourceLineNo">10631</span>                                                        oc128data[it.oIndex] = ox;<a name="line.10631"></a>
+<span class="sourceLineNo">10632</span>                                                        oc128data[it.oIndex + 1] = oy;<a name="line.10632"></a>
+<span class="sourceLineNo">10633</span>                                                }<a name="line.10633"></a>
+<span class="sourceLineNo">10634</span>                                        }<a name="line.10634"></a>
+<span class="sourceLineNo">10635</span>                                } else {<a name="line.10635"></a>
+<span class="sourceLineNo">10636</span>                                        final long iay = 0;<a name="line.10636"></a>
+<span class="sourceLineNo">10637</span>                                        while (it.hasNext()) {<a name="line.10637"></a>
+<span class="sourceLineNo">10638</span>                                                final long iax = it.aLong;<a name="line.10638"></a>
+<span class="sourceLineNo">10639</span>                                                final long ibx = it.bLong;<a name="line.10639"></a>
+<span class="sourceLineNo">10640</span>                                                final long iby = 0;<a name="line.10640"></a>
+<span class="sourceLineNo">10641</span>                                                double ox;<a name="line.10641"></a>
+<span class="sourceLineNo">10642</span>                                                double oy;<a name="line.10642"></a>
+<span class="sourceLineNo">10643</span>                                                double q;<a name="line.10643"></a>
+<span class="sourceLineNo">10644</span>                                                double den;<a name="line.10644"></a>
+<span class="sourceLineNo">10645</span>                                                if (iby == 0) {<a name="line.10645"></a>
+<span class="sourceLineNo">10646</span>                                                        ox = (iax / ibx);<a name="line.10646"></a>
+<span class="sourceLineNo">10647</span>                                                        oy = (iay / ibx);<a name="line.10647"></a>
+<span class="sourceLineNo">10648</span>                                                } else if (ibx == 0) {<a name="line.10648"></a>
+<span class="sourceLineNo">10649</span>                                                        ox = (iay / iby);<a name="line.10649"></a>
+<span class="sourceLineNo">10650</span>                                                        oy = (-iax / iby);<a name="line.10650"></a>
+<span class="sourceLineNo">10651</span>                                                } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.10651"></a>
+<span class="sourceLineNo">10652</span>                                                        q = (ibx / iby);<a name="line.10652"></a>
+<span class="sourceLineNo">10653</span>                                                        den = (ibx * q + iby);<a name="line.10653"></a>
+<span class="sourceLineNo">10654</span>                                                        ox = ((iax * q + iay) / den);<a name="line.10654"></a>
+<span class="sourceLineNo">10655</span>                                                        oy = ((iay * q - ibx) / den);<a name="line.10655"></a>
+<span class="sourceLineNo">10656</span>                                                } else {<a name="line.10656"></a>
+<span class="sourceLineNo">10657</span>                                                        q = (iby / ibx);<a name="line.10657"></a>
+<span class="sourceLineNo">10658</span>                                                        den = (iby * q + ibx);<a name="line.10658"></a>
+<span class="sourceLineNo">10659</span>                                                        ox = ((iay * q + iax) / den);<a name="line.10659"></a>
+<span class="sourceLineNo">10660</span>                                                        oy = ((iay - iax * q) / den);<a name="line.10660"></a>
+<span class="sourceLineNo">10661</span>                                                }<a name="line.10661"></a>
+<span class="sourceLineNo">10662</span>                                                oc128data[it.oIndex] = ox;<a name="line.10662"></a>
+<span class="sourceLineNo">10663</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.10663"></a>
+<span class="sourceLineNo">10664</span>                                        }<a name="line.10664"></a>
+<span class="sourceLineNo">10665</span>                                }<a name="line.10665"></a>
+<span class="sourceLineNo">10666</span>                        } else if (!db.isComplex()) {<a name="line.10666"></a>
+<span class="sourceLineNo">10667</span>                                final double iby = 0;<a name="line.10667"></a>
+<span class="sourceLineNo">10668</span>                                while (it.hasNext()) {<a name="line.10668"></a>
+<span class="sourceLineNo">10669</span>                                        final double iax = it.aDouble;<a name="line.10669"></a>
+<span class="sourceLineNo">10670</span>                                        final double ibx = it.bDouble;<a name="line.10670"></a>
+<span class="sourceLineNo">10671</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.10671"></a>
+<span class="sourceLineNo">10672</span>                                        double ox;<a name="line.10672"></a>
+<span class="sourceLineNo">10673</span>                                        double oy;<a name="line.10673"></a>
+<span class="sourceLineNo">10674</span>                                        double q;<a name="line.10674"></a>
+<span class="sourceLineNo">10675</span>                                        double den;<a name="line.10675"></a>
+<span class="sourceLineNo">10676</span>                                        if (iby == 0) {<a name="line.10676"></a>
+<span class="sourceLineNo">10677</span>                                                ox = (iax / ibx);<a name="line.10677"></a>
+<span class="sourceLineNo">10678</span>                                                oy = (iay / ibx);<a name="line.10678"></a>
+<span class="sourceLineNo">10679</span>                                        } else if (ibx == 0) {<a name="line.10679"></a>
+<span class="sourceLineNo">10680</span>                                                ox = (iay / iby);<a name="line.10680"></a>
+<span class="sourceLineNo">10681</span>                                                oy = (-iax / iby);<a name="line.10681"></a>
+<span class="sourceLineNo">10682</span>                                        } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.10682"></a>
+<span class="sourceLineNo">10683</span>                                                q = (ibx / iby);<a name="line.10683"></a>
+<span class="sourceLineNo">10684</span>                                                den = (ibx * q + iby);<a name="line.10684"></a>
+<span class="sourceLineNo">10685</span>                                                ox = ((iax * q + iay) / den);<a name="line.10685"></a>
+<span class="sourceLineNo">10686</span>                                                oy = ((iay * q - ibx) / den);<a name="line.10686"></a>
+<span class="sourceLineNo">10687</span>                                        } else {<a name="line.10687"></a>
+<span class="sourceLineNo">10688</span>                                                q = (iby / ibx);<a name="line.10688"></a>
+<span class="sourceLineNo">10689</span>                                                den = (iby * q + ibx);<a name="line.10689"></a>
+<span class="sourceLineNo">10690</span>                                                ox = ((iay * q + iax) / den);<a name="line.10690"></a>
+<span class="sourceLineNo">10691</span>                                                oy = ((iay - iax * q) / den);<a name="line.10691"></a>
+<span class="sourceLineNo">10692</span>                                        }<a name="line.10692"></a>
+<span class="sourceLineNo">10693</span>                                        oc128data[it.oIndex] = ox;<a name="line.10693"></a>
+<span class="sourceLineNo">10694</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.10694"></a>
+<span class="sourceLineNo">10695</span>                                }<a name="line.10695"></a>
+<span class="sourceLineNo">10696</span>                        } else {<a name="line.10696"></a>
+<span class="sourceLineNo">10697</span>                                while (it.hasNext()) {<a name="line.10697"></a>
+<span class="sourceLineNo">10698</span>                                        final double iax = it.aDouble;<a name="line.10698"></a>
+<span class="sourceLineNo">10699</span>                                        final double ibx = it.bDouble;<a name="line.10699"></a>
+<span class="sourceLineNo">10700</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.10700"></a>
+<span class="sourceLineNo">10701</span>                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.10701"></a>
+<span class="sourceLineNo">10702</span>                                        double ox;<a name="line.10702"></a>
+<span class="sourceLineNo">10703</span>                                        double oy;<a name="line.10703"></a>
+<span class="sourceLineNo">10704</span>                                        double q;<a name="line.10704"></a>
+<span class="sourceLineNo">10705</span>                                        double den;<a name="line.10705"></a>
+<span class="sourceLineNo">10706</span>                                        if (iby == 0) {<a name="line.10706"></a>
+<span class="sourceLineNo">10707</span>                                                ox = (iax / ibx);<a name="line.10707"></a>
+<span class="sourceLineNo">10708</span>                                                oy = (iay / ibx);<a name="line.10708"></a>
+<span class="sourceLineNo">10709</span>                                        } else if (ibx == 0) {<a name="line.10709"></a>
+<span class="sourceLineNo">10710</span>                                                ox = (iay / iby);<a name="line.10710"></a>
+<span class="sourceLineNo">10711</span>                                                oy = (-iax / iby);<a name="line.10711"></a>
+<span class="sourceLineNo">10712</span>                                        } else if (Math.abs(ibx) &lt; Math.abs(iby)) {<a name="line.10712"></a>
+<span class="sourceLineNo">10713</span>                                                q = (ibx / iby);<a name="line.10713"></a>
+<span class="sourceLineNo">10714</span>                                                den = (ibx * q + iby);<a name="line.10714"></a>
+<span class="sourceLineNo">10715</span>                                                ox = ((iax * q + iay) / den);<a name="line.10715"></a>
+<span class="sourceLineNo">10716</span>                                                oy = ((iay * q - ibx) / den);<a name="line.10716"></a>
+<span class="sourceLineNo">10717</span>                                        } else {<a name="line.10717"></a>
+<span class="sourceLineNo">10718</span>                                                q = (iby / ibx);<a name="line.10718"></a>
+<span class="sourceLineNo">10719</span>                                                den = (iby * q + ibx);<a name="line.10719"></a>
+<span class="sourceLineNo">10720</span>                                                ox = ((iay * q + iax) / den);<a name="line.10720"></a>
+<span class="sourceLineNo">10721</span>                                                oy = ((iay - iax * q) / den);<a name="line.10721"></a>
+<span class="sourceLineNo">10722</span>                                        }<a name="line.10722"></a>
+<span class="sourceLineNo">10723</span>                                        oc128data[it.oIndex] = ox;<a name="line.10723"></a>
+<span class="sourceLineNo">10724</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.10724"></a>
+<span class="sourceLineNo">10725</span>                                }<a name="line.10725"></a>
+<span class="sourceLineNo">10726</span>                        }<a name="line.10726"></a>
+<span class="sourceLineNo">10727</span>                        break;<a name="line.10727"></a>
+<span class="sourceLineNo">10728</span>                default:<a name="line.10728"></a>
+<span class="sourceLineNo">10729</span>                        throw new IllegalArgumentException("divideTowardsFloor supports integer, compound integer, real, compound real, complex datasets only");<a name="line.10729"></a>
+<span class="sourceLineNo">10730</span>                }<a name="line.10730"></a>
+<span class="sourceLineNo">10731</span><a name="line.10731"></a>
+<span class="sourceLineNo">10732</span>                addBinaryOperatorName(da, db, result, "/");<a name="line.10732"></a>
+<span class="sourceLineNo">10733</span>                return result;<a name="line.10733"></a>
+<span class="sourceLineNo">10734</span>        }<a name="line.10734"></a>
+<span class="sourceLineNo">10735</span><a name="line.10735"></a>
+<span class="sourceLineNo">10736</span>        /**<a name="line.10736"></a>
+<span class="sourceLineNo">10737</span>         * power operator<a name="line.10737"></a>
+<span class="sourceLineNo">10738</span>         * @param a<a name="line.10738"></a>
+<span class="sourceLineNo">10739</span>         * @param b<a name="line.10739"></a>
+<span class="sourceLineNo">10740</span>         * @return {@code a ** b}, raise a to power of b<a name="line.10740"></a>
+<span class="sourceLineNo">10741</span>         */<a name="line.10741"></a>
+<span class="sourceLineNo">10742</span>        public static Dataset power(final Object a, final Object b) {<a name="line.10742"></a>
+<span class="sourceLineNo">10743</span>                return power(a, b, null);<a name="line.10743"></a>
+<span class="sourceLineNo">10744</span>        }<a name="line.10744"></a>
+<span class="sourceLineNo">10745</span><a name="line.10745"></a>
+<span class="sourceLineNo">10746</span>        /**<a name="line.10746"></a>
+<span class="sourceLineNo">10747</span>         * power operator<a name="line.10747"></a>
+<span class="sourceLineNo">10748</span>         * @param a<a name="line.10748"></a>
+<span class="sourceLineNo">10749</span>         * @param b<a name="line.10749"></a>
+<span class="sourceLineNo">10750</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.10750"></a>
+<span class="sourceLineNo">10751</span>         * @return {@code a ** b}, raise a to power of b<a name="line.10751"></a>
+<span class="sourceLineNo">10752</span>         */<a name="line.10752"></a>
+<span class="sourceLineNo">10753</span>        public static Dataset power(final Object a, final Object b, final Dataset o) {<a name="line.10753"></a>
+<span class="sourceLineNo">10754</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.10754"></a>
+<span class="sourceLineNo">10755</span>                Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.10755"></a>
+<span class="sourceLineNo">10756</span>                BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.10756"></a>
+<span class="sourceLineNo">10757</span>                final Dataset result = it.getOutput();<a name="line.10757"></a>
+<span class="sourceLineNo">10758</span>                if (!result.isComplex()) {<a name="line.10758"></a>
+<span class="sourceLineNo">10759</span>                        boolean change = false;<a name="line.10759"></a>
+<span class="sourceLineNo">10760</span>                        if (da.isComplex()) {<a name="line.10760"></a>
+<span class="sourceLineNo">10761</span>                                da = da.getRealView();<a name="line.10761"></a>
+<span class="sourceLineNo">10762</span>                                change = true;<a name="line.10762"></a>
+<span class="sourceLineNo">10763</span>                        }<a name="line.10763"></a>
+<span class="sourceLineNo">10764</span>                        if (db.isComplex()) {<a name="line.10764"></a>
+<span class="sourceLineNo">10765</span>                                db = db.getRealView();<a name="line.10765"></a>
+<span class="sourceLineNo">10766</span>                                change = true;<a name="line.10766"></a>
+<span class="sourceLineNo">10767</span>                        }<a name="line.10767"></a>
+<span class="sourceLineNo">10768</span>                        if (change) {<a name="line.10768"></a>
+<span class="sourceLineNo">10769</span>                                it = BroadcastIterator.createIterator(da, db, result, true);<a name="line.10769"></a>
+<span class="sourceLineNo">10770</span>                        }<a name="line.10770"></a>
+<span class="sourceLineNo">10771</span>                }<a name="line.10771"></a>
+<span class="sourceLineNo">10772</span>                final int is = result.getElementsPerItem();<a name="line.10772"></a>
+<span class="sourceLineNo">10773</span>                final int as = da.getElementsPerItem();<a name="line.10773"></a>
+<span class="sourceLineNo">10774</span>                final int bs = db.getElementsPerItem();<a name="line.10774"></a>
+<span class="sourceLineNo">10775</span>                final int dt = result.getDType();<a name="line.10775"></a>
+<span class="sourceLineNo">10776</span><a name="line.10776"></a>
+<span class="sourceLineNo">10777</span>                switch(dt) {<a name="line.10777"></a>
+<span class="sourceLineNo">10778</span>                case Dataset.INT8:<a name="line.10778"></a>
+<span class="sourceLineNo">10779</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.10779"></a>
+<span class="sourceLineNo">10780</span>                        if (it.isOutputDouble()) {<a name="line.10780"></a>
+<span class="sourceLineNo">10781</span>                                while (it.hasNext()) {<a name="line.10781"></a>
+<span class="sourceLineNo">10782</span>                                        final double iax = it.aDouble;<a name="line.10782"></a>
+<span class="sourceLineNo">10783</span>                                        final double ibx = it.bDouble;<a name="line.10783"></a>
+<span class="sourceLineNo">10784</span>                                        byte ox;<a name="line.10784"></a>
+<span class="sourceLineNo">10785</span>                                        ox = (byte) toLong(Math.pow(iax, ibx));<a name="line.10785"></a>
+<span class="sourceLineNo">10786</span>                                        oi8data[it.oIndex] = ox;<a name="line.10786"></a>
+<span class="sourceLineNo">10787</span>                                }<a name="line.10787"></a>
+<span class="sourceLineNo">10788</span>                        } else {<a name="line.10788"></a>
+<span class="sourceLineNo">10789</span>                                while (it.hasNext()) {<a name="line.10789"></a>
+<span class="sourceLineNo">10790</span>                                        final long iax = it.aLong;<a name="line.10790"></a>
+<span class="sourceLineNo">10791</span>                                        final long ibx = it.bLong;<a name="line.10791"></a>
+<span class="sourceLineNo">10792</span>                                        byte ox;<a name="line.10792"></a>
+<span class="sourceLineNo">10793</span>                                        ox = (byte) toLong(Math.pow(iax, ibx));<a name="line.10793"></a>
+<span class="sourceLineNo">10794</span>                                        oi8data[it.oIndex] = ox;<a name="line.10794"></a>
+<span class="sourceLineNo">10795</span>                                }<a name="line.10795"></a>
+<span class="sourceLineNo">10796</span>                        }<a name="line.10796"></a>
+<span class="sourceLineNo">10797</span>                        break;<a name="line.10797"></a>
+<span class="sourceLineNo">10798</span>                case Dataset.INT16:<a name="line.10798"></a>
+<span class="sourceLineNo">10799</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.10799"></a>
+<span class="sourceLineNo">10800</span>                        if (it.isOutputDouble()) {<a name="line.10800"></a>
+<span class="sourceLineNo">10801</span>                                while (it.hasNext()) {<a name="line.10801"></a>
+<span class="sourceLineNo">10802</span>                                        final double iax = it.aDouble;<a name="line.10802"></a>
+<span class="sourceLineNo">10803</span>                                        final double ibx = it.bDouble;<a name="line.10803"></a>
+<span class="sourceLineNo">10804</span>                                        short ox;<a name="line.10804"></a>
+<span class="sourceLineNo">10805</span>                                        ox = (short) toLong(Math.pow(iax, ibx));<a name="line.10805"></a>
+<span class="sourceLineNo">10806</span>                                        oi16data[it.oIndex] = ox;<a name="line.10806"></a>
+<span class="sourceLineNo">10807</span>                                }<a name="line.10807"></a>
+<span class="sourceLineNo">10808</span>                        } else {<a name="line.10808"></a>
+<span class="sourceLineNo">10809</span>                                while (it.hasNext()) {<a name="line.10809"></a>
+<span class="sourceLineNo">10810</span>                                        final long iax = it.aLong;<a name="line.10810"></a>
+<span class="sourceLineNo">10811</span>                                        final long ibx = it.bLong;<a name="line.10811"></a>
+<span class="sourceLineNo">10812</span>                                        short ox;<a name="line.10812"></a>
+<span class="sourceLineNo">10813</span>                                        ox = (short) toLong(Math.pow(iax, ibx));<a name="line.10813"></a>
+<span class="sourceLineNo">10814</span>                                        oi16data[it.oIndex] = ox;<a name="line.10814"></a>
+<span class="sourceLineNo">10815</span>                                }<a name="line.10815"></a>
+<span class="sourceLineNo">10816</span>                        }<a name="line.10816"></a>
+<span class="sourceLineNo">10817</span>                        break;<a name="line.10817"></a>
+<span class="sourceLineNo">10818</span>                case Dataset.INT64:<a name="line.10818"></a>
+<span class="sourceLineNo">10819</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.10819"></a>
+<span class="sourceLineNo">10820</span>                        if (it.isOutputDouble()) {<a name="line.10820"></a>
+<span class="sourceLineNo">10821</span>                                while (it.hasNext()) {<a name="line.10821"></a>
+<span class="sourceLineNo">10822</span>                                        final double iax = it.aDouble;<a name="line.10822"></a>
+<span class="sourceLineNo">10823</span>                                        final double ibx = it.bDouble;<a name="line.10823"></a>
+<span class="sourceLineNo">10824</span>                                        long ox;<a name="line.10824"></a>
+<span class="sourceLineNo">10825</span>                                        ox = toLong(Math.pow(iax, ibx));<a name="line.10825"></a>
+<span class="sourceLineNo">10826</span>                                        oi64data[it.oIndex] = ox;<a name="line.10826"></a>
+<span class="sourceLineNo">10827</span>                                }<a name="line.10827"></a>
+<span class="sourceLineNo">10828</span>                        } else {<a name="line.10828"></a>
+<span class="sourceLineNo">10829</span>                                while (it.hasNext()) {<a name="line.10829"></a>
+<span class="sourceLineNo">10830</span>                                        final long iax = it.aLong;<a name="line.10830"></a>
+<span class="sourceLineNo">10831</span>                                        final long ibx = it.bLong;<a name="line.10831"></a>
+<span class="sourceLineNo">10832</span>                                        long ox;<a name="line.10832"></a>
+<span class="sourceLineNo">10833</span>                                        ox = toLong(Math.pow(iax, ibx));<a name="line.10833"></a>
+<span class="sourceLineNo">10834</span>                                        oi64data[it.oIndex] = ox;<a name="line.10834"></a>
+<span class="sourceLineNo">10835</span>                                }<a name="line.10835"></a>
+<span class="sourceLineNo">10836</span>                        }<a name="line.10836"></a>
+<span class="sourceLineNo">10837</span>                        break;<a name="line.10837"></a>
+<span class="sourceLineNo">10838</span>                case Dataset.INT32:<a name="line.10838"></a>
+<span class="sourceLineNo">10839</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.10839"></a>
+<span class="sourceLineNo">10840</span>                        if (it.isOutputDouble()) {<a name="line.10840"></a>
+<span class="sourceLineNo">10841</span>                                while (it.hasNext()) {<a name="line.10841"></a>
+<span class="sourceLineNo">10842</span>                                        final double iax = it.aDouble;<a name="line.10842"></a>
+<span class="sourceLineNo">10843</span>                                        final double ibx = it.bDouble;<a name="line.10843"></a>
+<span class="sourceLineNo">10844</span>                                        int ox;<a name="line.10844"></a>
+<span class="sourceLineNo">10845</span>                                        ox = (int) toLong(Math.pow(iax, ibx));<a name="line.10845"></a>
+<span class="sourceLineNo">10846</span>                                        oi32data[it.oIndex] = ox;<a name="line.10846"></a>
+<span class="sourceLineNo">10847</span>                                }<a name="line.10847"></a>
+<span class="sourceLineNo">10848</span>                        } else {<a name="line.10848"></a>
+<span class="sourceLineNo">10849</span>                                while (it.hasNext()) {<a name="line.10849"></a>
+<span class="sourceLineNo">10850</span>                                        final long iax = it.aLong;<a name="line.10850"></a>
+<span class="sourceLineNo">10851</span>                                        final long ibx = it.bLong;<a name="line.10851"></a>
+<span class="sourceLineNo">10852</span>                                        int ox;<a name="line.10852"></a>
+<span class="sourceLineNo">10853</span>                                        ox = (int) toLong(Math.pow(iax, ibx));<a name="line.10853"></a>
+<span class="sourceLineNo">10854</span>                                        oi32data[it.oIndex] = ox;<a name="line.10854"></a>
+<span class="sourceLineNo">10855</span>                                }<a name="line.10855"></a>
+<span class="sourceLineNo">10856</span>                        }<a name="line.10856"></a>
+<span class="sourceLineNo">10857</span>                        break;<a name="line.10857"></a>
+<span class="sourceLineNo">10858</span>                case Dataset.ARRAYINT8:<a name="line.10858"></a>
+<span class="sourceLineNo">10859</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.10859"></a>
+<span class="sourceLineNo">10860</span>                        if (is == 1) {<a name="line.10860"></a>
+<span class="sourceLineNo">10861</span>                                if (it.isOutputDouble()) {<a name="line.10861"></a>
+<span class="sourceLineNo">10862</span>                                        while (it.hasNext()) {<a name="line.10862"></a>
+<span class="sourceLineNo">10863</span>                                                final double iax = it.aDouble;<a name="line.10863"></a>
+<span class="sourceLineNo">10864</span>                                                final double ibx = it.bDouble;<a name="line.10864"></a>
+<span class="sourceLineNo">10865</span>                                                byte ox;<a name="line.10865"></a>
+<span class="sourceLineNo">10866</span>                                                ox = (byte) toLong(Math.pow(iax, ibx));<a name="line.10866"></a>
+<span class="sourceLineNo">10867</span>                                                oai8data[it.oIndex] = ox;<a name="line.10867"></a>
+<span class="sourceLineNo">10868</span>                                        }<a name="line.10868"></a>
+<span class="sourceLineNo">10869</span>                                } else {<a name="line.10869"></a>
+<span class="sourceLineNo">10870</span>                                        while (it.hasNext()) {<a name="line.10870"></a>
+<span class="sourceLineNo">10871</span>                                                final long iax = it.aLong;<a name="line.10871"></a>
+<span class="sourceLineNo">10872</span>                                                final long ibx = it.bLong;<a name="line.10872"></a>
+<span class="sourceLineNo">10873</span>                                                byte ox;<a name="line.10873"></a>
+<span class="sourceLineNo">10874</span>                                                ox = (byte) toLong(Math.pow(iax, ibx));<a name="line.10874"></a>
+<span class="sourceLineNo">10875</span>                                                oai8data[it.oIndex] = ox;<a name="line.10875"></a>
+<span class="sourceLineNo">10876</span>                                        }<a name="line.10876"></a>
+<span class="sourceLineNo">10877</span>                                }<a name="line.10877"></a>
+<span class="sourceLineNo">10878</span>                        } else if (as &lt; bs) {<a name="line.10878"></a>
+<span class="sourceLineNo">10879</span>                                if (it.isOutputDouble()) {<a name="line.10879"></a>
+<span class="sourceLineNo">10880</span>                                        while (it.hasNext()) {<a name="line.10880"></a>
+<span class="sourceLineNo">10881</span>                                                final double iax = it.aDouble;<a name="line.10881"></a>
+<span class="sourceLineNo">10882</span>                                                double ibx = it.bDouble;<a name="line.10882"></a>
+<span class="sourceLineNo">10883</span>                                                byte ox;<a name="line.10883"></a>
+<span class="sourceLineNo">10884</span>                                                ox = (byte) toLong(Math.pow(iax, ibx));<a name="line.10884"></a>
+<span class="sourceLineNo">10885</span>                                                oai8data[it.oIndex] = ox;<a name="line.10885"></a>
+<span class="sourceLineNo">10886</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.10886"></a>
+<span class="sourceLineNo">10887</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.10887"></a>
+<span class="sourceLineNo">10888</span>                                                        ox = (byte) toLong(Math.pow(iax, ibx));<a name="line.10888"></a>
+<span class="sourceLineNo">10889</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.10889"></a>
+<span class="sourceLineNo">10890</span>                                                }<a name="line.10890"></a>
+<span class="sourceLineNo">10891</span>                                        }<a name="line.10891"></a>
+<span class="sourceLineNo">10892</span>                                } else {<a name="line.10892"></a>
+<span class="sourceLineNo">10893</span>                                        while (it.hasNext()) {<a name="line.10893"></a>
+<span class="sourceLineNo">10894</span>                                                final long iax = it.aLong;<a name="line.10894"></a>
+<span class="sourceLineNo">10895</span>                                                long ibx = it.bLong;<a name="line.10895"></a>
+<span class="sourceLineNo">10896</span>                                                byte ox;<a name="line.10896"></a>
+<span class="sourceLineNo">10897</span>                                                ox = (byte) toLong(Math.pow(iax, ibx));<a name="line.10897"></a>
+<span class="sourceLineNo">10898</span>                                                oai8data[it.oIndex] = ox;<a name="line.10898"></a>
+<span class="sourceLineNo">10899</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.10899"></a>
+<span class="sourceLineNo">10900</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.10900"></a>
+<span class="sourceLineNo">10901</span>                                                        ox = (byte) toLong(Math.pow(iax, ibx));<a name="line.10901"></a>
+<span class="sourceLineNo">10902</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.10902"></a>
+<span class="sourceLineNo">10903</span>                                                }<a name="line.10903"></a>
+<span class="sourceLineNo">10904</span>                                        }<a name="line.10904"></a>
+<span class="sourceLineNo">10905</span>                                }<a name="line.10905"></a>
+<span class="sourceLineNo">10906</span>                        } else if (as &gt; bs) {<a name="line.10906"></a>
+<span class="sourceLineNo">10907</span>                                if (it.isOutputDouble()) {<a name="line.10907"></a>
+<span class="sourceLineNo">10908</span>                                        while (it.hasNext()) {<a name="line.10908"></a>
+<span class="sourceLineNo">10909</span>                                                double iax = it.aDouble;<a name="line.10909"></a>
+<span class="sourceLineNo">10910</span>                                                final double ibx = it.bDouble;<a name="line.10910"></a>
+<span class="sourceLineNo">10911</span>                                                byte ox;<a name="line.10911"></a>
+<span class="sourceLineNo">10912</span>                                                ox = (byte) toLong(Math.pow(iax, ibx));<a name="line.10912"></a>
+<span class="sourceLineNo">10913</span>                                                oai8data[it.oIndex] = ox;<a name="line.10913"></a>
+<span class="sourceLineNo">10914</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.10914"></a>
+<span class="sourceLineNo">10915</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.10915"></a>
+<span class="sourceLineNo">10916</span>                                                        ox = (byte) toLong(Math.pow(iax, ibx));<a name="line.10916"></a>
+<span class="sourceLineNo">10917</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.10917"></a>
+<span class="sourceLineNo">10918</span>                                                }<a name="line.10918"></a>
+<span class="sourceLineNo">10919</span>                                        }<a name="line.10919"></a>
+<span class="sourceLineNo">10920</span>                                } else {<a name="line.10920"></a>
+<span class="sourceLineNo">10921</span>                                        while (it.hasNext()) {<a name="line.10921"></a>
+<span class="sourceLineNo">10922</span>                                                long iax = it.aLong;<a name="line.10922"></a>
+<span class="sourceLineNo">10923</span>                                                final long ibx = it.bLong;<a name="line.10923"></a>
+<span class="sourceLineNo">10924</span>                                                byte ox;<a name="line.10924"></a>
+<span class="sourceLineNo">10925</span>                                                ox = (byte) toLong(Math.pow(iax, ibx));<a name="line.10925"></a>
+<span class="sourceLineNo">10926</span>                                                oai8data[it.oIndex] = ox;<a name="line.10926"></a>
+<span class="sourceLineNo">10927</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.10927"></a>
+<span class="sourceLineNo">10928</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.10928"></a>
+<span class="sourceLineNo">10929</span>                                                        ox = (byte) toLong(Math.pow(iax, ibx));<a name="line.10929"></a>
+<span class="sourceLineNo">10930</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.10930"></a>
+<span class="sourceLineNo">10931</span>                                                }<a name="line.10931"></a>
+<span class="sourceLineNo">10932</span>                                        }<a name="line.10932"></a>
+<span class="sourceLineNo">10933</span>                                }<a name="line.10933"></a>
+<span class="sourceLineNo">10934</span>                        } else if (as == 1) {<a name="line.10934"></a>
+<span class="sourceLineNo">10935</span>                                if (it.isOutputDouble()) {<a name="line.10935"></a>
+<span class="sourceLineNo">10936</span>                                        while (it.hasNext()) {<a name="line.10936"></a>
+<span class="sourceLineNo">10937</span>                                                final double iax = it.aDouble;<a name="line.10937"></a>
+<span class="sourceLineNo">10938</span>                                                final double ibx = it.bDouble;<a name="line.10938"></a>
+<span class="sourceLineNo">10939</span>                                                byte ox;<a name="line.10939"></a>
+<span class="sourceLineNo">10940</span>                                                ox = (byte) toLong(Math.pow(iax, ibx));<a name="line.10940"></a>
+<span class="sourceLineNo">10941</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.10941"></a>
+<span class="sourceLineNo">10942</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.10942"></a>
+<span class="sourceLineNo">10943</span>                                                }<a name="line.10943"></a>
+<span class="sourceLineNo">10944</span>                                        }<a name="line.10944"></a>
+<span class="sourceLineNo">10945</span>                                } else {<a name="line.10945"></a>
+<span class="sourceLineNo">10946</span>                                        while (it.hasNext()) {<a name="line.10946"></a>
+<span class="sourceLineNo">10947</span>                                                final long iax = it.aLong;<a name="line.10947"></a>
+<span class="sourceLineNo">10948</span>                                                final long ibx = it.bLong;<a name="line.10948"></a>
+<span class="sourceLineNo">10949</span>                                                byte ox;<a name="line.10949"></a>
+<span class="sourceLineNo">10950</span>                                                ox = (byte) toLong(Math.pow(iax, ibx));<a name="line.10950"></a>
+<span class="sourceLineNo">10951</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.10951"></a>
+<span class="sourceLineNo">10952</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.10952"></a>
+<span class="sourceLineNo">10953</span>                                                }<a name="line.10953"></a>
+<span class="sourceLineNo">10954</span>                                        }<a name="line.10954"></a>
+<span class="sourceLineNo">10955</span>                                }<a name="line.10955"></a>
+<span class="sourceLineNo">10956</span>                        } else {<a name="line.10956"></a>
+<span class="sourceLineNo">10957</span>                                if (it.isOutputDouble()) {<a name="line.10957"></a>
+<span class="sourceLineNo">10958</span>                                        while (it.hasNext()) {<a name="line.10958"></a>
+<span class="sourceLineNo">10959</span>                                                double iax = it.aDouble;<a name="line.10959"></a>
+<span class="sourceLineNo">10960</span>                                                double ibx = it.bDouble;<a name="line.10960"></a>
+<span class="sourceLineNo">10961</span>                                                byte ox;<a name="line.10961"></a>
+<span class="sourceLineNo">10962</span>                                                ox = (byte) toLong(Math.pow(iax, ibx));<a name="line.10962"></a>
+<span class="sourceLineNo">10963</span>                                                oai8data[it.oIndex] = ox;<a name="line.10963"></a>
+<span class="sourceLineNo">10964</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.10964"></a>
+<span class="sourceLineNo">10965</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.10965"></a>
+<span class="sourceLineNo">10966</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.10966"></a>
+<span class="sourceLineNo">10967</span>                                                        ox = (byte) toLong(Math.pow(iax, ibx));<a name="line.10967"></a>
+<span class="sourceLineNo">10968</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.10968"></a>
+<span class="sourceLineNo">10969</span>                                                }<a name="line.10969"></a>
+<span class="sourceLineNo">10970</span>                                        }<a name="line.10970"></a>
+<span class="sourceLineNo">10971</span>                                } else {<a name="line.10971"></a>
+<span class="sourceLineNo">10972</span>                                        while (it.hasNext()) {<a name="line.10972"></a>
+<span class="sourceLineNo">10973</span>                                                long iax = it.aLong;<a name="line.10973"></a>
+<span class="sourceLineNo">10974</span>                                                long ibx = it.bLong;<a name="line.10974"></a>
+<span class="sourceLineNo">10975</span>                                                byte ox;<a name="line.10975"></a>
+<span class="sourceLineNo">10976</span>                                                ox = (byte) toLong(Math.pow(iax, ibx));<a name="line.10976"></a>
+<span class="sourceLineNo">10977</span>                                                oai8data[it.oIndex] = ox;<a name="line.10977"></a>
+<span class="sourceLineNo">10978</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.10978"></a>
+<span class="sourceLineNo">10979</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.10979"></a>
+<span class="sourceLineNo">10980</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.10980"></a>
+<span class="sourceLineNo">10981</span>                                                        ox = (byte) toLong(Math.pow(iax, ibx));<a name="line.10981"></a>
+<span class="sourceLineNo">10982</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.10982"></a>
+<span class="sourceLineNo">10983</span>                                                }<a name="line.10983"></a>
+<span class="sourceLineNo">10984</span>                                        }<a name="line.10984"></a>
+<span class="sourceLineNo">10985</span>                                }<a name="line.10985"></a>
+<span class="sourceLineNo">10986</span>                        }<a name="line.10986"></a>
+<span class="sourceLineNo">10987</span>                        break;<a name="line.10987"></a>
+<span class="sourceLineNo">10988</span>                case Dataset.ARRAYINT16:<a name="line.10988"></a>
+<span class="sourceLineNo">10989</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.10989"></a>
+<span class="sourceLineNo">10990</span>                        if (is == 1) {<a name="line.10990"></a>
+<span class="sourceLineNo">10991</span>                                if (it.isOutputDouble()) {<a name="line.10991"></a>
+<span class="sourceLineNo">10992</span>                                        while (it.hasNext()) {<a name="line.10992"></a>
+<span class="sourceLineNo">10993</span>                                                final double iax = it.aDouble;<a name="line.10993"></a>
+<span class="sourceLineNo">10994</span>                                                final double ibx = it.bDouble;<a name="line.10994"></a>
+<span class="sourceLineNo">10995</span>                                                short ox;<a name="line.10995"></a>
+<span class="sourceLineNo">10996</span>                                                ox = (short) toLong(Math.pow(iax, ibx));<a name="line.10996"></a>
+<span class="sourceLineNo">10997</span>                                                oai16data[it.oIndex] = ox;<a name="line.10997"></a>
+<span class="sourceLineNo">10998</span>                                        }<a name="line.10998"></a>
+<span class="sourceLineNo">10999</span>                                } else {<a name="line.10999"></a>
+<span class="sourceLineNo">11000</span>                                        while (it.hasNext()) {<a name="line.11000"></a>
+<span class="sourceLineNo">11001</span>                                                final long iax = it.aLong;<a name="line.11001"></a>
+<span class="sourceLineNo">11002</span>                                                final long ibx = it.bLong;<a name="line.11002"></a>
+<span class="sourceLineNo">11003</span>                                                short ox;<a name="line.11003"></a>
+<span class="sourceLineNo">11004</span>                                                ox = (short) toLong(Math.pow(iax, ibx));<a name="line.11004"></a>
+<span class="sourceLineNo">11005</span>                                                oai16data[it.oIndex] = ox;<a name="line.11005"></a>
+<span class="sourceLineNo">11006</span>                                        }<a name="line.11006"></a>
+<span class="sourceLineNo">11007</span>                                }<a name="line.11007"></a>
+<span class="sourceLineNo">11008</span>                        } else if (as &lt; bs) {<a name="line.11008"></a>
+<span class="sourceLineNo">11009</span>                                if (it.isOutputDouble()) {<a name="line.11009"></a>
+<span class="sourceLineNo">11010</span>                                        while (it.hasNext()) {<a name="line.11010"></a>
+<span class="sourceLineNo">11011</span>                                                final double iax = it.aDouble;<a name="line.11011"></a>
+<span class="sourceLineNo">11012</span>                                                double ibx = it.bDouble;<a name="line.11012"></a>
+<span class="sourceLineNo">11013</span>                                                short ox;<a name="line.11013"></a>
+<span class="sourceLineNo">11014</span>                                                ox = (short) toLong(Math.pow(iax, ibx));<a name="line.11014"></a>
+<span class="sourceLineNo">11015</span>                                                oai16data[it.oIndex] = ox;<a name="line.11015"></a>
+<span class="sourceLineNo">11016</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11016"></a>
+<span class="sourceLineNo">11017</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.11017"></a>
+<span class="sourceLineNo">11018</span>                                                        ox = (short) toLong(Math.pow(iax, ibx));<a name="line.11018"></a>
+<span class="sourceLineNo">11019</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.11019"></a>
+<span class="sourceLineNo">11020</span>                                                }<a name="line.11020"></a>
+<span class="sourceLineNo">11021</span>                                        }<a name="line.11021"></a>
+<span class="sourceLineNo">11022</span>                                } else {<a name="line.11022"></a>
+<span class="sourceLineNo">11023</span>                                        while (it.hasNext()) {<a name="line.11023"></a>
+<span class="sourceLineNo">11024</span>                                                final long iax = it.aLong;<a name="line.11024"></a>
+<span class="sourceLineNo">11025</span>                                                long ibx = it.bLong;<a name="line.11025"></a>
+<span class="sourceLineNo">11026</span>                                                short ox;<a name="line.11026"></a>
+<span class="sourceLineNo">11027</span>                                                ox = (short) toLong(Math.pow(iax, ibx));<a name="line.11027"></a>
+<span class="sourceLineNo">11028</span>                                                oai16data[it.oIndex] = ox;<a name="line.11028"></a>
+<span class="sourceLineNo">11029</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11029"></a>
+<span class="sourceLineNo">11030</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.11030"></a>
+<span class="sourceLineNo">11031</span>                                                        ox = (short) toLong(Math.pow(iax, ibx));<a name="line.11031"></a>
+<span class="sourceLineNo">11032</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.11032"></a>
+<span class="sourceLineNo">11033</span>                                                }<a name="line.11033"></a>
+<span class="sourceLineNo">11034</span>                                        }<a name="line.11034"></a>
+<span class="sourceLineNo">11035</span>                                }<a name="line.11035"></a>
+<span class="sourceLineNo">11036</span>                        } else if (as &gt; bs) {<a name="line.11036"></a>
+<span class="sourceLineNo">11037</span>                                if (it.isOutputDouble()) {<a name="line.11037"></a>
+<span class="sourceLineNo">11038</span>                                        while (it.hasNext()) {<a name="line.11038"></a>
+<span class="sourceLineNo">11039</span>                                                double iax = it.aDouble;<a name="line.11039"></a>
+<span class="sourceLineNo">11040</span>                                                final double ibx = it.bDouble;<a name="line.11040"></a>
+<span class="sourceLineNo">11041</span>                                                short ox;<a name="line.11041"></a>
+<span class="sourceLineNo">11042</span>                                                ox = (short) toLong(Math.pow(iax, ibx));<a name="line.11042"></a>
+<span class="sourceLineNo">11043</span>                                                oai16data[it.oIndex] = ox;<a name="line.11043"></a>
+<span class="sourceLineNo">11044</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11044"></a>
+<span class="sourceLineNo">11045</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.11045"></a>
+<span class="sourceLineNo">11046</span>                                                        ox = (short) toLong(Math.pow(iax, ibx));<a name="line.11046"></a>
+<span class="sourceLineNo">11047</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.11047"></a>
+<span class="sourceLineNo">11048</span>                                                }<a name="line.11048"></a>
+<span class="sourceLineNo">11049</span>                                        }<a name="line.11049"></a>
+<span class="sourceLineNo">11050</span>                                } else {<a name="line.11050"></a>
+<span class="sourceLineNo">11051</span>                                        while (it.hasNext()) {<a name="line.11051"></a>
+<span class="sourceLineNo">11052</span>                                                long iax = it.aLong;<a name="line.11052"></a>
+<span class="sourceLineNo">11053</span>                                                final long ibx = it.bLong;<a name="line.11053"></a>
+<span class="sourceLineNo">11054</span>                                                short ox;<a name="line.11054"></a>
+<span class="sourceLineNo">11055</span>                                                ox = (short) toLong(Math.pow(iax, ibx));<a name="line.11055"></a>
+<span class="sourceLineNo">11056</span>                                                oai16data[it.oIndex] = ox;<a name="line.11056"></a>
+<span class="sourceLineNo">11057</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11057"></a>
+<span class="sourceLineNo">11058</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.11058"></a>
+<span class="sourceLineNo">11059</span>                                                        ox = (short) toLong(Math.pow(iax, ibx));<a name="line.11059"></a>
+<span class="sourceLineNo">11060</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.11060"></a>
+<span class="sourceLineNo">11061</span>                                                }<a name="line.11061"></a>
+<span class="sourceLineNo">11062</span>                                        }<a name="line.11062"></a>
+<span class="sourceLineNo">11063</span>                                }<a name="line.11063"></a>
+<span class="sourceLineNo">11064</span>                        } else if (as == 1) {<a name="line.11064"></a>
+<span class="sourceLineNo">11065</span>                                if (it.isOutputDouble()) {<a name="line.11065"></a>
+<span class="sourceLineNo">11066</span>                                        while (it.hasNext()) {<a name="line.11066"></a>
+<span class="sourceLineNo">11067</span>                                                final double iax = it.aDouble;<a name="line.11067"></a>
+<span class="sourceLineNo">11068</span>                                                final double ibx = it.bDouble;<a name="line.11068"></a>
+<span class="sourceLineNo">11069</span>                                                short ox;<a name="line.11069"></a>
+<span class="sourceLineNo">11070</span>                                                ox = (short) toLong(Math.pow(iax, ibx));<a name="line.11070"></a>
+<span class="sourceLineNo">11071</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.11071"></a>
+<span class="sourceLineNo">11072</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.11072"></a>
+<span class="sourceLineNo">11073</span>                                                }<a name="line.11073"></a>
+<span class="sourceLineNo">11074</span>                                        }<a name="line.11074"></a>
+<span class="sourceLineNo">11075</span>                                } else {<a name="line.11075"></a>
+<span class="sourceLineNo">11076</span>                                        while (it.hasNext()) {<a name="line.11076"></a>
+<span class="sourceLineNo">11077</span>                                                final long iax = it.aLong;<a name="line.11077"></a>
+<span class="sourceLineNo">11078</span>                                                final long ibx = it.bLong;<a name="line.11078"></a>
+<span class="sourceLineNo">11079</span>                                                short ox;<a name="line.11079"></a>
+<span class="sourceLineNo">11080</span>                                                ox = (short) toLong(Math.pow(iax, ibx));<a name="line.11080"></a>
+<span class="sourceLineNo">11081</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.11081"></a>
+<span class="sourceLineNo">11082</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.11082"></a>
+<span class="sourceLineNo">11083</span>                                                }<a name="line.11083"></a>
+<span class="sourceLineNo">11084</span>                                        }<a name="line.11084"></a>
+<span class="sourceLineNo">11085</span>                                }<a name="line.11085"></a>
+<span class="sourceLineNo">11086</span>                        } else {<a name="line.11086"></a>
+<span class="sourceLineNo">11087</span>                                if (it.isOutputDouble()) {<a name="line.11087"></a>
+<span class="sourceLineNo">11088</span>                                        while (it.hasNext()) {<a name="line.11088"></a>
+<span class="sourceLineNo">11089</span>                                                double iax = it.aDouble;<a name="line.11089"></a>
+<span class="sourceLineNo">11090</span>                                                double ibx = it.bDouble;<a name="line.11090"></a>
+<span class="sourceLineNo">11091</span>                                                short ox;<a name="line.11091"></a>
+<span class="sourceLineNo">11092</span>                                                ox = (short) toLong(Math.pow(iax, ibx));<a name="line.11092"></a>
+<span class="sourceLineNo">11093</span>                                                oai16data[it.oIndex] = ox;<a name="line.11093"></a>
+<span class="sourceLineNo">11094</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11094"></a>
+<span class="sourceLineNo">11095</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.11095"></a>
+<span class="sourceLineNo">11096</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.11096"></a>
+<span class="sourceLineNo">11097</span>                                                        ox = (short) toLong(Math.pow(iax, ibx));<a name="line.11097"></a>
+<span class="sourceLineNo">11098</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.11098"></a>
+<span class="sourceLineNo">11099</span>                                                }<a name="line.11099"></a>
+<span class="sourceLineNo">11100</span>                                        }<a name="line.11100"></a>
+<span class="sourceLineNo">11101</span>                                } else {<a name="line.11101"></a>
+<span class="sourceLineNo">11102</span>                                        while (it.hasNext()) {<a name="line.11102"></a>
+<span class="sourceLineNo">11103</span>                                                long iax = it.aLong;<a name="line.11103"></a>
+<span class="sourceLineNo">11104</span>                                                long ibx = it.bLong;<a name="line.11104"></a>
+<span class="sourceLineNo">11105</span>                                                short ox;<a name="line.11105"></a>
+<span class="sourceLineNo">11106</span>                                                ox = (short) toLong(Math.pow(iax, ibx));<a name="line.11106"></a>
+<span class="sourceLineNo">11107</span>                                                oai16data[it.oIndex] = ox;<a name="line.11107"></a>
+<span class="sourceLineNo">11108</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11108"></a>
+<span class="sourceLineNo">11109</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.11109"></a>
+<span class="sourceLineNo">11110</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.11110"></a>
+<span class="sourceLineNo">11111</span>                                                        ox = (short) toLong(Math.pow(iax, ibx));<a name="line.11111"></a>
+<span class="sourceLineNo">11112</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.11112"></a>
+<span class="sourceLineNo">11113</span>                                                }<a name="line.11113"></a>
+<span class="sourceLineNo">11114</span>                                        }<a name="line.11114"></a>
+<span class="sourceLineNo">11115</span>                                }<a name="line.11115"></a>
+<span class="sourceLineNo">11116</span>                        }<a name="line.11116"></a>
+<span class="sourceLineNo">11117</span>                        break;<a name="line.11117"></a>
+<span class="sourceLineNo">11118</span>                case Dataset.ARRAYINT64:<a name="line.11118"></a>
+<span class="sourceLineNo">11119</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.11119"></a>
+<span class="sourceLineNo">11120</span>                        if (is == 1) {<a name="line.11120"></a>
+<span class="sourceLineNo">11121</span>                                if (it.isOutputDouble()) {<a name="line.11121"></a>
+<span class="sourceLineNo">11122</span>                                        while (it.hasNext()) {<a name="line.11122"></a>
+<span class="sourceLineNo">11123</span>                                                final double iax = it.aDouble;<a name="line.11123"></a>
+<span class="sourceLineNo">11124</span>                                                final double ibx = it.bDouble;<a name="line.11124"></a>
+<span class="sourceLineNo">11125</span>                                                long ox;<a name="line.11125"></a>
+<span class="sourceLineNo">11126</span>                                                ox = toLong(Math.pow(iax, ibx));<a name="line.11126"></a>
+<span class="sourceLineNo">11127</span>                                                oai64data[it.oIndex] = ox;<a name="line.11127"></a>
+<span class="sourceLineNo">11128</span>                                        }<a name="line.11128"></a>
+<span class="sourceLineNo">11129</span>                                } else {<a name="line.11129"></a>
+<span class="sourceLineNo">11130</span>                                        while (it.hasNext()) {<a name="line.11130"></a>
+<span class="sourceLineNo">11131</span>                                                final long iax = it.aLong;<a name="line.11131"></a>
+<span class="sourceLineNo">11132</span>                                                final long ibx = it.bLong;<a name="line.11132"></a>
+<span class="sourceLineNo">11133</span>                                                long ox;<a name="line.11133"></a>
+<span class="sourceLineNo">11134</span>                                                ox = toLong(Math.pow(iax, ibx));<a name="line.11134"></a>
+<span class="sourceLineNo">11135</span>                                                oai64data[it.oIndex] = ox;<a name="line.11135"></a>
+<span class="sourceLineNo">11136</span>                                        }<a name="line.11136"></a>
+<span class="sourceLineNo">11137</span>                                }<a name="line.11137"></a>
+<span class="sourceLineNo">11138</span>                        } else if (as &lt; bs) {<a name="line.11138"></a>
+<span class="sourceLineNo">11139</span>                                if (it.isOutputDouble()) {<a name="line.11139"></a>
+<span class="sourceLineNo">11140</span>                                        while (it.hasNext()) {<a name="line.11140"></a>
+<span class="sourceLineNo">11141</span>                                                final double iax = it.aDouble;<a name="line.11141"></a>
+<span class="sourceLineNo">11142</span>                                                double ibx = it.bDouble;<a name="line.11142"></a>
+<span class="sourceLineNo">11143</span>                                                long ox;<a name="line.11143"></a>
+<span class="sourceLineNo">11144</span>                                                ox = toLong(Math.pow(iax, ibx));<a name="line.11144"></a>
+<span class="sourceLineNo">11145</span>                                                oai64data[it.oIndex] = ox;<a name="line.11145"></a>
+<span class="sourceLineNo">11146</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11146"></a>
+<span class="sourceLineNo">11147</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.11147"></a>
+<span class="sourceLineNo">11148</span>                                                        ox = toLong(Math.pow(iax, ibx));<a name="line.11148"></a>
+<span class="sourceLineNo">11149</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.11149"></a>
+<span class="sourceLineNo">11150</span>                                                }<a name="line.11150"></a>
+<span class="sourceLineNo">11151</span>                                        }<a name="line.11151"></a>
+<span class="sourceLineNo">11152</span>                                } else {<a name="line.11152"></a>
+<span class="sourceLineNo">11153</span>                                        while (it.hasNext()) {<a name="line.11153"></a>
+<span class="sourceLineNo">11154</span>                                                final long iax = it.aLong;<a name="line.11154"></a>
+<span class="sourceLineNo">11155</span>                                                long ibx = it.bLong;<a name="line.11155"></a>
+<span class="sourceLineNo">11156</span>                                                long ox;<a name="line.11156"></a>
+<span class="sourceLineNo">11157</span>                                                ox = toLong(Math.pow(iax, ibx));<a name="line.11157"></a>
+<span class="sourceLineNo">11158</span>                                                oai64data[it.oIndex] = ox;<a name="line.11158"></a>
+<span class="sourceLineNo">11159</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11159"></a>
+<span class="sourceLineNo">11160</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.11160"></a>
+<span class="sourceLineNo">11161</span>                                                        ox = toLong(Math.pow(iax, ibx));<a name="line.11161"></a>
+<span class="sourceLineNo">11162</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.11162"></a>
+<span class="sourceLineNo">11163</span>                                                }<a name="line.11163"></a>
+<span class="sourceLineNo">11164</span>                                        }<a name="line.11164"></a>
+<span class="sourceLineNo">11165</span>                                }<a name="line.11165"></a>
+<span class="sourceLineNo">11166</span>                        } else if (as &gt; bs) {<a name="line.11166"></a>
+<span class="sourceLineNo">11167</span>                                if (it.isOutputDouble()) {<a name="line.11167"></a>
+<span class="sourceLineNo">11168</span>                                        while (it.hasNext()) {<a name="line.11168"></a>
+<span class="sourceLineNo">11169</span>                                                double iax = it.aDouble;<a name="line.11169"></a>
+<span class="sourceLineNo">11170</span>                                                final double ibx = it.bDouble;<a name="line.11170"></a>
+<span class="sourceLineNo">11171</span>                                                long ox;<a name="line.11171"></a>
+<span class="sourceLineNo">11172</span>                                                ox = toLong(Math.pow(iax, ibx));<a name="line.11172"></a>
+<span class="sourceLineNo">11173</span>                                                oai64data[it.oIndex] = ox;<a name="line.11173"></a>
+<span class="sourceLineNo">11174</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11174"></a>
+<span class="sourceLineNo">11175</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.11175"></a>
+<span class="sourceLineNo">11176</span>                                                        ox = toLong(Math.pow(iax, ibx));<a name="line.11176"></a>
+<span class="sourceLineNo">11177</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.11177"></a>
+<span class="sourceLineNo">11178</span>                                                }<a name="line.11178"></a>
+<span class="sourceLineNo">11179</span>                                        }<a name="line.11179"></a>
+<span class="sourceLineNo">11180</span>                                } else {<a name="line.11180"></a>
+<span class="sourceLineNo">11181</span>                                        while (it.hasNext()) {<a name="line.11181"></a>
+<span class="sourceLineNo">11182</span>                                                long iax = it.aLong;<a name="line.11182"></a>
+<span class="sourceLineNo">11183</span>                                                final long ibx = it.bLong;<a name="line.11183"></a>
+<span class="sourceLineNo">11184</span>                                                long ox;<a name="line.11184"></a>
+<span class="sourceLineNo">11185</span>                                                ox = toLong(Math.pow(iax, ibx));<a name="line.11185"></a>
+<span class="sourceLineNo">11186</span>                                                oai64data[it.oIndex] = ox;<a name="line.11186"></a>
+<span class="sourceLineNo">11187</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11187"></a>
+<span class="sourceLineNo">11188</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.11188"></a>
+<span class="sourceLineNo">11189</span>                                                        ox = toLong(Math.pow(iax, ibx));<a name="line.11189"></a>
+<span class="sourceLineNo">11190</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.11190"></a>
+<span class="sourceLineNo">11191</span>                                                }<a name="line.11191"></a>
+<span class="sourceLineNo">11192</span>                                        }<a name="line.11192"></a>
+<span class="sourceLineNo">11193</span>                                }<a name="line.11193"></a>
+<span class="sourceLineNo">11194</span>                        } else if (as == 1) {<a name="line.11194"></a>
+<span class="sourceLineNo">11195</span>                                if (it.isOutputDouble()) {<a name="line.11195"></a>
+<span class="sourceLineNo">11196</span>                                        while (it.hasNext()) {<a name="line.11196"></a>
+<span class="sourceLineNo">11197</span>                                                final double iax = it.aDouble;<a name="line.11197"></a>
+<span class="sourceLineNo">11198</span>                                                final double ibx = it.bDouble;<a name="line.11198"></a>
+<span class="sourceLineNo">11199</span>                                                long ox;<a name="line.11199"></a>
+<span class="sourceLineNo">11200</span>                                                ox = toLong(Math.pow(iax, ibx));<a name="line.11200"></a>
+<span class="sourceLineNo">11201</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.11201"></a>
+<span class="sourceLineNo">11202</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.11202"></a>
+<span class="sourceLineNo">11203</span>                                                }<a name="line.11203"></a>
+<span class="sourceLineNo">11204</span>                                        }<a name="line.11204"></a>
+<span class="sourceLineNo">11205</span>                                } else {<a name="line.11205"></a>
+<span class="sourceLineNo">11206</span>                                        while (it.hasNext()) {<a name="line.11206"></a>
+<span class="sourceLineNo">11207</span>                                                final long iax = it.aLong;<a name="line.11207"></a>
+<span class="sourceLineNo">11208</span>                                                final long ibx = it.bLong;<a name="line.11208"></a>
+<span class="sourceLineNo">11209</span>                                                long ox;<a name="line.11209"></a>
+<span class="sourceLineNo">11210</span>                                                ox = toLong(Math.pow(iax, ibx));<a name="line.11210"></a>
+<span class="sourceLineNo">11211</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.11211"></a>
+<span class="sourceLineNo">11212</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.11212"></a>
+<span class="sourceLineNo">11213</span>                                                }<a name="line.11213"></a>
+<span class="sourceLineNo">11214</span>                                        }<a name="line.11214"></a>
+<span class="sourceLineNo">11215</span>                                }<a name="line.11215"></a>
+<span class="sourceLineNo">11216</span>                        } else {<a name="line.11216"></a>
+<span class="sourceLineNo">11217</span>                                if (it.isOutputDouble()) {<a name="line.11217"></a>
+<span class="sourceLineNo">11218</span>                                        while (it.hasNext()) {<a name="line.11218"></a>
+<span class="sourceLineNo">11219</span>                                                double iax = it.aDouble;<a name="line.11219"></a>
+<span class="sourceLineNo">11220</span>                                                double ibx = it.bDouble;<a name="line.11220"></a>
+<span class="sourceLineNo">11221</span>                                                long ox;<a name="line.11221"></a>
+<span class="sourceLineNo">11222</span>                                                ox = toLong(Math.pow(iax, ibx));<a name="line.11222"></a>
+<span class="sourceLineNo">11223</span>                                                oai64data[it.oIndex] = ox;<a name="line.11223"></a>
+<span class="sourceLineNo">11224</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11224"></a>
+<span class="sourceLineNo">11225</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.11225"></a>
+<span class="sourceLineNo">11226</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.11226"></a>
+<span class="sourceLineNo">11227</span>                                                        ox = toLong(Math.pow(iax, ibx));<a name="line.11227"></a>
+<span class="sourceLineNo">11228</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.11228"></a>
+<span class="sourceLineNo">11229</span>                                                }<a name="line.11229"></a>
+<span class="sourceLineNo">11230</span>                                        }<a name="line.11230"></a>
+<span class="sourceLineNo">11231</span>                                } else {<a name="line.11231"></a>
+<span class="sourceLineNo">11232</span>                                        while (it.hasNext()) {<a name="line.11232"></a>
+<span class="sourceLineNo">11233</span>                                                long iax = it.aLong;<a name="line.11233"></a>
+<span class="sourceLineNo">11234</span>                                                long ibx = it.bLong;<a name="line.11234"></a>
+<span class="sourceLineNo">11235</span>                                                long ox;<a name="line.11235"></a>
+<span class="sourceLineNo">11236</span>                                                ox = toLong(Math.pow(iax, ibx));<a name="line.11236"></a>
+<span class="sourceLineNo">11237</span>                                                oai64data[it.oIndex] = ox;<a name="line.11237"></a>
+<span class="sourceLineNo">11238</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11238"></a>
+<span class="sourceLineNo">11239</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.11239"></a>
+<span class="sourceLineNo">11240</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.11240"></a>
+<span class="sourceLineNo">11241</span>                                                        ox = toLong(Math.pow(iax, ibx));<a name="line.11241"></a>
+<span class="sourceLineNo">11242</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.11242"></a>
+<span class="sourceLineNo">11243</span>                                                }<a name="line.11243"></a>
+<span class="sourceLineNo">11244</span>                                        }<a name="line.11244"></a>
+<span class="sourceLineNo">11245</span>                                }<a name="line.11245"></a>
+<span class="sourceLineNo">11246</span>                        }<a name="line.11246"></a>
+<span class="sourceLineNo">11247</span>                        break;<a name="line.11247"></a>
+<span class="sourceLineNo">11248</span>                case Dataset.ARRAYINT32:<a name="line.11248"></a>
+<span class="sourceLineNo">11249</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.11249"></a>
+<span class="sourceLineNo">11250</span>                        if (is == 1) {<a name="line.11250"></a>
+<span class="sourceLineNo">11251</span>                                if (it.isOutputDouble()) {<a name="line.11251"></a>
+<span class="sourceLineNo">11252</span>                                        while (it.hasNext()) {<a name="line.11252"></a>
+<span class="sourceLineNo">11253</span>                                                final double iax = it.aDouble;<a name="line.11253"></a>
+<span class="sourceLineNo">11254</span>                                                final double ibx = it.bDouble;<a name="line.11254"></a>
+<span class="sourceLineNo">11255</span>                                                int ox;<a name="line.11255"></a>
+<span class="sourceLineNo">11256</span>                                                ox = (int) toLong(Math.pow(iax, ibx));<a name="line.11256"></a>
+<span class="sourceLineNo">11257</span>                                                oai32data[it.oIndex] = ox;<a name="line.11257"></a>
+<span class="sourceLineNo">11258</span>                                        }<a name="line.11258"></a>
+<span class="sourceLineNo">11259</span>                                } else {<a name="line.11259"></a>
+<span class="sourceLineNo">11260</span>                                        while (it.hasNext()) {<a name="line.11260"></a>
+<span class="sourceLineNo">11261</span>                                                final long iax = it.aLong;<a name="line.11261"></a>
+<span class="sourceLineNo">11262</span>                                                final long ibx = it.bLong;<a name="line.11262"></a>
+<span class="sourceLineNo">11263</span>                                                int ox;<a name="line.11263"></a>
+<span class="sourceLineNo">11264</span>                                                ox = (int) toLong(Math.pow(iax, ibx));<a name="line.11264"></a>
+<span class="sourceLineNo">11265</span>                                                oai32data[it.oIndex] = ox;<a name="line.11265"></a>
+<span class="sourceLineNo">11266</span>                                        }<a name="line.11266"></a>
+<span class="sourceLineNo">11267</span>                                }<a name="line.11267"></a>
+<span class="sourceLineNo">11268</span>                        } else if (as &lt; bs) {<a name="line.11268"></a>
+<span class="sourceLineNo">11269</span>                                if (it.isOutputDouble()) {<a name="line.11269"></a>
+<span class="sourceLineNo">11270</span>                                        while (it.hasNext()) {<a name="line.11270"></a>
+<span class="sourceLineNo">11271</span>                                                final double iax = it.aDouble;<a name="line.11271"></a>
+<span class="sourceLineNo">11272</span>                                                double ibx = it.bDouble;<a name="line.11272"></a>
+<span class="sourceLineNo">11273</span>                                                int ox;<a name="line.11273"></a>
+<span class="sourceLineNo">11274</span>                                                ox = (int) toLong(Math.pow(iax, ibx));<a name="line.11274"></a>
+<span class="sourceLineNo">11275</span>                                                oai32data[it.oIndex] = ox;<a name="line.11275"></a>
+<span class="sourceLineNo">11276</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11276"></a>
+<span class="sourceLineNo">11277</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.11277"></a>
+<span class="sourceLineNo">11278</span>                                                        ox = (int) toLong(Math.pow(iax, ibx));<a name="line.11278"></a>
+<span class="sourceLineNo">11279</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.11279"></a>
+<span class="sourceLineNo">11280</span>                                                }<a name="line.11280"></a>
+<span class="sourceLineNo">11281</span>                                        }<a name="line.11281"></a>
+<span class="sourceLineNo">11282</span>                                } else {<a name="line.11282"></a>
+<span class="sourceLineNo">11283</span>                                        while (it.hasNext()) {<a name="line.11283"></a>
+<span class="sourceLineNo">11284</span>                                                final long iax = it.aLong;<a name="line.11284"></a>
+<span class="sourceLineNo">11285</span>                                                long ibx = it.bLong;<a name="line.11285"></a>
+<span class="sourceLineNo">11286</span>                                                int ox;<a name="line.11286"></a>
+<span class="sourceLineNo">11287</span>                                                ox = (int) toLong(Math.pow(iax, ibx));<a name="line.11287"></a>
+<span class="sourceLineNo">11288</span>                                                oai32data[it.oIndex] = ox;<a name="line.11288"></a>
+<span class="sourceLineNo">11289</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11289"></a>
+<span class="sourceLineNo">11290</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.11290"></a>
+<span class="sourceLineNo">11291</span>                                                        ox = (int) toLong(Math.pow(iax, ibx));<a name="line.11291"></a>
+<span class="sourceLineNo">11292</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.11292"></a>
+<span class="sourceLineNo">11293</span>                                                }<a name="line.11293"></a>
+<span class="sourceLineNo">11294</span>                                        }<a name="line.11294"></a>
+<span class="sourceLineNo">11295</span>                                }<a name="line.11295"></a>
+<span class="sourceLineNo">11296</span>                        } else if (as &gt; bs) {<a name="line.11296"></a>
+<span class="sourceLineNo">11297</span>                                if (it.isOutputDouble()) {<a name="line.11297"></a>
+<span class="sourceLineNo">11298</span>                                        while (it.hasNext()) {<a name="line.11298"></a>
+<span class="sourceLineNo">11299</span>                                                double iax = it.aDouble;<a name="line.11299"></a>
+<span class="sourceLineNo">11300</span>                                                final double ibx = it.bDouble;<a name="line.11300"></a>
+<span class="sourceLineNo">11301</span>                                                int ox;<a name="line.11301"></a>
+<span class="sourceLineNo">11302</span>                                                ox = (int) toLong(Math.pow(iax, ibx));<a name="line.11302"></a>
+<span class="sourceLineNo">11303</span>                                                oai32data[it.oIndex] = ox;<a name="line.11303"></a>
+<span class="sourceLineNo">11304</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11304"></a>
+<span class="sourceLineNo">11305</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.11305"></a>
+<span class="sourceLineNo">11306</span>                                                        ox = (int) toLong(Math.pow(iax, ibx));<a name="line.11306"></a>
+<span class="sourceLineNo">11307</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.11307"></a>
+<span class="sourceLineNo">11308</span>                                                }<a name="line.11308"></a>
+<span class="sourceLineNo">11309</span>                                        }<a name="line.11309"></a>
+<span class="sourceLineNo">11310</span>                                } else {<a name="line.11310"></a>
+<span class="sourceLineNo">11311</span>                                        while (it.hasNext()) {<a name="line.11311"></a>
+<span class="sourceLineNo">11312</span>                                                long iax = it.aLong;<a name="line.11312"></a>
+<span class="sourceLineNo">11313</span>                                                final long ibx = it.bLong;<a name="line.11313"></a>
+<span class="sourceLineNo">11314</span>                                                int ox;<a name="line.11314"></a>
+<span class="sourceLineNo">11315</span>                                                ox = (int) toLong(Math.pow(iax, ibx));<a name="line.11315"></a>
+<span class="sourceLineNo">11316</span>                                                oai32data[it.oIndex] = ox;<a name="line.11316"></a>
+<span class="sourceLineNo">11317</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11317"></a>
+<span class="sourceLineNo">11318</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.11318"></a>
+<span class="sourceLineNo">11319</span>                                                        ox = (int) toLong(Math.pow(iax, ibx));<a name="line.11319"></a>
+<span class="sourceLineNo">11320</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.11320"></a>
+<span class="sourceLineNo">11321</span>                                                }<a name="line.11321"></a>
+<span class="sourceLineNo">11322</span>                                        }<a name="line.11322"></a>
+<span class="sourceLineNo">11323</span>                                }<a name="line.11323"></a>
+<span class="sourceLineNo">11324</span>                        } else if (as == 1) {<a name="line.11324"></a>
+<span class="sourceLineNo">11325</span>                                if (it.isOutputDouble()) {<a name="line.11325"></a>
+<span class="sourceLineNo">11326</span>                                        while (it.hasNext()) {<a name="line.11326"></a>
+<span class="sourceLineNo">11327</span>                                                final double iax = it.aDouble;<a name="line.11327"></a>
+<span class="sourceLineNo">11328</span>                                                final double ibx = it.bDouble;<a name="line.11328"></a>
+<span class="sourceLineNo">11329</span>                                                int ox;<a name="line.11329"></a>
+<span class="sourceLineNo">11330</span>                                                ox = (int) toLong(Math.pow(iax, ibx));<a name="line.11330"></a>
+<span class="sourceLineNo">11331</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.11331"></a>
+<span class="sourceLineNo">11332</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.11332"></a>
+<span class="sourceLineNo">11333</span>                                                }<a name="line.11333"></a>
+<span class="sourceLineNo">11334</span>                                        }<a name="line.11334"></a>
+<span class="sourceLineNo">11335</span>                                } else {<a name="line.11335"></a>
+<span class="sourceLineNo">11336</span>                                        while (it.hasNext()) {<a name="line.11336"></a>
+<span class="sourceLineNo">11337</span>                                                final long iax = it.aLong;<a name="line.11337"></a>
+<span class="sourceLineNo">11338</span>                                                final long ibx = it.bLong;<a name="line.11338"></a>
+<span class="sourceLineNo">11339</span>                                                int ox;<a name="line.11339"></a>
+<span class="sourceLineNo">11340</span>                                                ox = (int) toLong(Math.pow(iax, ibx));<a name="line.11340"></a>
+<span class="sourceLineNo">11341</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.11341"></a>
+<span class="sourceLineNo">11342</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.11342"></a>
+<span class="sourceLineNo">11343</span>                                                }<a name="line.11343"></a>
+<span class="sourceLineNo">11344</span>                                        }<a name="line.11344"></a>
+<span class="sourceLineNo">11345</span>                                }<a name="line.11345"></a>
+<span class="sourceLineNo">11346</span>                        } else {<a name="line.11346"></a>
+<span class="sourceLineNo">11347</span>                                if (it.isOutputDouble()) {<a name="line.11347"></a>
+<span class="sourceLineNo">11348</span>                                        while (it.hasNext()) {<a name="line.11348"></a>
+<span class="sourceLineNo">11349</span>                                                double iax = it.aDouble;<a name="line.11349"></a>
+<span class="sourceLineNo">11350</span>                                                double ibx = it.bDouble;<a name="line.11350"></a>
+<span class="sourceLineNo">11351</span>                                                int ox;<a name="line.11351"></a>
+<span class="sourceLineNo">11352</span>                                                ox = (int) toLong(Math.pow(iax, ibx));<a name="line.11352"></a>
+<span class="sourceLineNo">11353</span>                                                oai32data[it.oIndex] = ox;<a name="line.11353"></a>
+<span class="sourceLineNo">11354</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11354"></a>
+<span class="sourceLineNo">11355</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.11355"></a>
+<span class="sourceLineNo">11356</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.11356"></a>
+<span class="sourceLineNo">11357</span>                                                        ox = (int) toLong(Math.pow(iax, ibx));<a name="line.11357"></a>
+<span class="sourceLineNo">11358</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.11358"></a>
+<span class="sourceLineNo">11359</span>                                                }<a name="line.11359"></a>
+<span class="sourceLineNo">11360</span>                                        }<a name="line.11360"></a>
+<span class="sourceLineNo">11361</span>                                } else {<a name="line.11361"></a>
+<span class="sourceLineNo">11362</span>                                        while (it.hasNext()) {<a name="line.11362"></a>
+<span class="sourceLineNo">11363</span>                                                long iax = it.aLong;<a name="line.11363"></a>
+<span class="sourceLineNo">11364</span>                                                long ibx = it.bLong;<a name="line.11364"></a>
+<span class="sourceLineNo">11365</span>                                                int ox;<a name="line.11365"></a>
+<span class="sourceLineNo">11366</span>                                                ox = (int) toLong(Math.pow(iax, ibx));<a name="line.11366"></a>
+<span class="sourceLineNo">11367</span>                                                oai32data[it.oIndex] = ox;<a name="line.11367"></a>
+<span class="sourceLineNo">11368</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11368"></a>
+<span class="sourceLineNo">11369</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.11369"></a>
+<span class="sourceLineNo">11370</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.11370"></a>
+<span class="sourceLineNo">11371</span>                                                        ox = (int) toLong(Math.pow(iax, ibx));<a name="line.11371"></a>
+<span class="sourceLineNo">11372</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.11372"></a>
+<span class="sourceLineNo">11373</span>                                                }<a name="line.11373"></a>
+<span class="sourceLineNo">11374</span>                                        }<a name="line.11374"></a>
+<span class="sourceLineNo">11375</span>                                }<a name="line.11375"></a>
+<span class="sourceLineNo">11376</span>                        }<a name="line.11376"></a>
+<span class="sourceLineNo">11377</span>                        break;<a name="line.11377"></a>
+<span class="sourceLineNo">11378</span>                case Dataset.FLOAT32:<a name="line.11378"></a>
+<span class="sourceLineNo">11379</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.11379"></a>
+<span class="sourceLineNo">11380</span>                        if (it.isOutputDouble()) {<a name="line.11380"></a>
+<span class="sourceLineNo">11381</span>                                while (it.hasNext()) {<a name="line.11381"></a>
+<span class="sourceLineNo">11382</span>                                        final double iax = it.aDouble;<a name="line.11382"></a>
+<span class="sourceLineNo">11383</span>                                        final double ibx = it.bDouble;<a name="line.11383"></a>
+<span class="sourceLineNo">11384</span>                                        float ox;<a name="line.11384"></a>
+<span class="sourceLineNo">11385</span>                                        ox = (float) (Math.pow(iax, ibx));<a name="line.11385"></a>
+<span class="sourceLineNo">11386</span>                                        of32data[it.oIndex] = ox;<a name="line.11386"></a>
+<span class="sourceLineNo">11387</span>                                }<a name="line.11387"></a>
+<span class="sourceLineNo">11388</span>                        } else {<a name="line.11388"></a>
+<span class="sourceLineNo">11389</span>                                while (it.hasNext()) {<a name="line.11389"></a>
+<span class="sourceLineNo">11390</span>                                        final long iax = it.aLong;<a name="line.11390"></a>
+<span class="sourceLineNo">11391</span>                                        final long ibx = it.bLong;<a name="line.11391"></a>
+<span class="sourceLineNo">11392</span>                                        float ox;<a name="line.11392"></a>
+<span class="sourceLineNo">11393</span>                                        ox = (float) (Math.pow(iax, ibx));<a name="line.11393"></a>
+<span class="sourceLineNo">11394</span>                                        of32data[it.oIndex] = ox;<a name="line.11394"></a>
+<span class="sourceLineNo">11395</span>                                }<a name="line.11395"></a>
+<span class="sourceLineNo">11396</span>                        }<a name="line.11396"></a>
+<span class="sourceLineNo">11397</span>                        break;<a name="line.11397"></a>
+<span class="sourceLineNo">11398</span>                case Dataset.FLOAT64:<a name="line.11398"></a>
+<span class="sourceLineNo">11399</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.11399"></a>
+<span class="sourceLineNo">11400</span>                        if (it.isOutputDouble()) {<a name="line.11400"></a>
+<span class="sourceLineNo">11401</span>                                while (it.hasNext()) {<a name="line.11401"></a>
+<span class="sourceLineNo">11402</span>                                        final double iax = it.aDouble;<a name="line.11402"></a>
+<span class="sourceLineNo">11403</span>                                        final double ibx = it.bDouble;<a name="line.11403"></a>
+<span class="sourceLineNo">11404</span>                                        double ox;<a name="line.11404"></a>
+<span class="sourceLineNo">11405</span>                                        ox = (Math.pow(iax, ibx));<a name="line.11405"></a>
+<span class="sourceLineNo">11406</span>                                        of64data[it.oIndex] = ox;<a name="line.11406"></a>
+<span class="sourceLineNo">11407</span>                                }<a name="line.11407"></a>
+<span class="sourceLineNo">11408</span>                        } else {<a name="line.11408"></a>
+<span class="sourceLineNo">11409</span>                                while (it.hasNext()) {<a name="line.11409"></a>
+<span class="sourceLineNo">11410</span>                                        final long iax = it.aLong;<a name="line.11410"></a>
+<span class="sourceLineNo">11411</span>                                        final long ibx = it.bLong;<a name="line.11411"></a>
+<span class="sourceLineNo">11412</span>                                        double ox;<a name="line.11412"></a>
+<span class="sourceLineNo">11413</span>                                        ox = (Math.pow(iax, ibx));<a name="line.11413"></a>
+<span class="sourceLineNo">11414</span>                                        of64data[it.oIndex] = ox;<a name="line.11414"></a>
+<span class="sourceLineNo">11415</span>                                }<a name="line.11415"></a>
+<span class="sourceLineNo">11416</span>                        }<a name="line.11416"></a>
+<span class="sourceLineNo">11417</span>                        break;<a name="line.11417"></a>
+<span class="sourceLineNo">11418</span>                case Dataset.ARRAYFLOAT32:<a name="line.11418"></a>
+<span class="sourceLineNo">11419</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.11419"></a>
+<span class="sourceLineNo">11420</span>                        if (is == 1) {<a name="line.11420"></a>
+<span class="sourceLineNo">11421</span>                                if (it.isOutputDouble()) {<a name="line.11421"></a>
+<span class="sourceLineNo">11422</span>                                        while (it.hasNext()) {<a name="line.11422"></a>
+<span class="sourceLineNo">11423</span>                                                final double iax = it.aDouble;<a name="line.11423"></a>
+<span class="sourceLineNo">11424</span>                                                final double ibx = it.bDouble;<a name="line.11424"></a>
+<span class="sourceLineNo">11425</span>                                                float ox;<a name="line.11425"></a>
+<span class="sourceLineNo">11426</span>                                                ox = (float) (Math.pow(iax, ibx));<a name="line.11426"></a>
+<span class="sourceLineNo">11427</span>                                                oaf32data[it.oIndex] = ox;<a name="line.11427"></a>
+<span class="sourceLineNo">11428</span>                                        }<a name="line.11428"></a>
+<span class="sourceLineNo">11429</span>                                } else {<a name="line.11429"></a>
+<span class="sourceLineNo">11430</span>                                        while (it.hasNext()) {<a name="line.11430"></a>
+<span class="sourceLineNo">11431</span>                                                final long iax = it.aLong;<a name="line.11431"></a>
+<span class="sourceLineNo">11432</span>                                                final long ibx = it.bLong;<a name="line.11432"></a>
+<span class="sourceLineNo">11433</span>                                                float ox;<a name="line.11433"></a>
+<span class="sourceLineNo">11434</span>                                                ox = (float) (Math.pow(iax, ibx));<a name="line.11434"></a>
+<span class="sourceLineNo">11435</span>                                                oaf32data[it.oIndex] = ox;<a name="line.11435"></a>
+<span class="sourceLineNo">11436</span>                                        }<a name="line.11436"></a>
+<span class="sourceLineNo">11437</span>                                }<a name="line.11437"></a>
+<span class="sourceLineNo">11438</span>                        } else if (as &lt; bs) {<a name="line.11438"></a>
+<span class="sourceLineNo">11439</span>                                if (it.isOutputDouble()) {<a name="line.11439"></a>
+<span class="sourceLineNo">11440</span>                                        while (it.hasNext()) {<a name="line.11440"></a>
+<span class="sourceLineNo">11441</span>                                                final double iax = it.aDouble;<a name="line.11441"></a>
+<span class="sourceLineNo">11442</span>                                                double ibx = it.bDouble;<a name="line.11442"></a>
+<span class="sourceLineNo">11443</span>                                                float ox;<a name="line.11443"></a>
+<span class="sourceLineNo">11444</span>                                                ox = (float) (Math.pow(iax, ibx));<a name="line.11444"></a>
+<span class="sourceLineNo">11445</span>                                                oaf32data[it.oIndex] = ox;<a name="line.11445"></a>
+<span class="sourceLineNo">11446</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11446"></a>
+<span class="sourceLineNo">11447</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.11447"></a>
+<span class="sourceLineNo">11448</span>                                                        ox = (float) (Math.pow(iax, ibx));<a name="line.11448"></a>
+<span class="sourceLineNo">11449</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.11449"></a>
+<span class="sourceLineNo">11450</span>                                                }<a name="line.11450"></a>
+<span class="sourceLineNo">11451</span>                                        }<a name="line.11451"></a>
+<span class="sourceLineNo">11452</span>                                } else {<a name="line.11452"></a>
+<span class="sourceLineNo">11453</span>                                        while (it.hasNext()) {<a name="line.11453"></a>
+<span class="sourceLineNo">11454</span>                                                final long iax = it.aLong;<a name="line.11454"></a>
+<span class="sourceLineNo">11455</span>                                                long ibx = it.bLong;<a name="line.11455"></a>
+<span class="sourceLineNo">11456</span>                                                float ox;<a name="line.11456"></a>
+<span class="sourceLineNo">11457</span>                                                ox = (float) (Math.pow(iax, ibx));<a name="line.11457"></a>
+<span class="sourceLineNo">11458</span>                                                oaf32data[it.oIndex] = ox;<a name="line.11458"></a>
+<span class="sourceLineNo">11459</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11459"></a>
+<span class="sourceLineNo">11460</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.11460"></a>
+<span class="sourceLineNo">11461</span>                                                        ox = (float) (Math.pow(iax, ibx));<a name="line.11461"></a>
+<span class="sourceLineNo">11462</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.11462"></a>
+<span class="sourceLineNo">11463</span>                                                }<a name="line.11463"></a>
+<span class="sourceLineNo">11464</span>                                        }<a name="line.11464"></a>
+<span class="sourceLineNo">11465</span>                                }<a name="line.11465"></a>
+<span class="sourceLineNo">11466</span>                        } else if (as &gt; bs) {<a name="line.11466"></a>
+<span class="sourceLineNo">11467</span>                                if (it.isOutputDouble()) {<a name="line.11467"></a>
+<span class="sourceLineNo">11468</span>                                        while (it.hasNext()) {<a name="line.11468"></a>
+<span class="sourceLineNo">11469</span>                                                double iax = it.aDouble;<a name="line.11469"></a>
+<span class="sourceLineNo">11470</span>                                                final double ibx = it.bDouble;<a name="line.11470"></a>
+<span class="sourceLineNo">11471</span>                                                float ox;<a name="line.11471"></a>
+<span class="sourceLineNo">11472</span>                                                ox = (float) (Math.pow(iax, ibx));<a name="line.11472"></a>
+<span class="sourceLineNo">11473</span>                                                oaf32data[it.oIndex] = ox;<a name="line.11473"></a>
+<span class="sourceLineNo">11474</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11474"></a>
+<span class="sourceLineNo">11475</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.11475"></a>
+<span class="sourceLineNo">11476</span>                                                        ox = (float) (Math.pow(iax, ibx));<a name="line.11476"></a>
+<span class="sourceLineNo">11477</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.11477"></a>
+<span class="sourceLineNo">11478</span>                                                }<a name="line.11478"></a>
+<span class="sourceLineNo">11479</span>                                        }<a name="line.11479"></a>
+<span class="sourceLineNo">11480</span>                                } else {<a name="line.11480"></a>
+<span class="sourceLineNo">11481</span>                                        while (it.hasNext()) {<a name="line.11481"></a>
+<span class="sourceLineNo">11482</span>                                                long iax = it.aLong;<a name="line.11482"></a>
+<span class="sourceLineNo">11483</span>                                                final long ibx = it.bLong;<a name="line.11483"></a>
+<span class="sourceLineNo">11484</span>                                                float ox;<a name="line.11484"></a>
+<span class="sourceLineNo">11485</span>                                                ox = (float) (Math.pow(iax, ibx));<a name="line.11485"></a>
+<span class="sourceLineNo">11486</span>                                                oaf32data[it.oIndex] = ox;<a name="line.11486"></a>
+<span class="sourceLineNo">11487</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11487"></a>
+<span class="sourceLineNo">11488</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.11488"></a>
+<span class="sourceLineNo">11489</span>                                                        ox = (float) (Math.pow(iax, ibx));<a name="line.11489"></a>
+<span class="sourceLineNo">11490</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.11490"></a>
+<span class="sourceLineNo">11491</span>                                                }<a name="line.11491"></a>
+<span class="sourceLineNo">11492</span>                                        }<a name="line.11492"></a>
+<span class="sourceLineNo">11493</span>                                }<a name="line.11493"></a>
+<span class="sourceLineNo">11494</span>                        } else if (as == 1) {<a name="line.11494"></a>
+<span class="sourceLineNo">11495</span>                                if (it.isOutputDouble()) {<a name="line.11495"></a>
+<span class="sourceLineNo">11496</span>                                        while (it.hasNext()) {<a name="line.11496"></a>
+<span class="sourceLineNo">11497</span>                                                final double iax = it.aDouble;<a name="line.11497"></a>
+<span class="sourceLineNo">11498</span>                                                final double ibx = it.bDouble;<a name="line.11498"></a>
+<span class="sourceLineNo">11499</span>                                                float ox;<a name="line.11499"></a>
+<span class="sourceLineNo">11500</span>                                                ox = (float) (Math.pow(iax, ibx));<a name="line.11500"></a>
+<span class="sourceLineNo">11501</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.11501"></a>
+<span class="sourceLineNo">11502</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.11502"></a>
+<span class="sourceLineNo">11503</span>                                                }<a name="line.11503"></a>
+<span class="sourceLineNo">11504</span>                                        }<a name="line.11504"></a>
+<span class="sourceLineNo">11505</span>                                } else {<a name="line.11505"></a>
+<span class="sourceLineNo">11506</span>                                        while (it.hasNext()) {<a name="line.11506"></a>
+<span class="sourceLineNo">11507</span>                                                final long iax = it.aLong;<a name="line.11507"></a>
+<span class="sourceLineNo">11508</span>                                                final long ibx = it.bLong;<a name="line.11508"></a>
+<span class="sourceLineNo">11509</span>                                                float ox;<a name="line.11509"></a>
+<span class="sourceLineNo">11510</span>                                                ox = (float) (Math.pow(iax, ibx));<a name="line.11510"></a>
+<span class="sourceLineNo">11511</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.11511"></a>
+<span class="sourceLineNo">11512</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.11512"></a>
+<span class="sourceLineNo">11513</span>                                                }<a name="line.11513"></a>
+<span class="sourceLineNo">11514</span>                                        }<a name="line.11514"></a>
+<span class="sourceLineNo">11515</span>                                }<a name="line.11515"></a>
+<span class="sourceLineNo">11516</span>                        } else {<a name="line.11516"></a>
+<span class="sourceLineNo">11517</span>                                if (it.isOutputDouble()) {<a name="line.11517"></a>
+<span class="sourceLineNo">11518</span>                                        while (it.hasNext()) {<a name="line.11518"></a>
+<span class="sourceLineNo">11519</span>                                                double iax = it.aDouble;<a name="line.11519"></a>
+<span class="sourceLineNo">11520</span>                                                double ibx = it.bDouble;<a name="line.11520"></a>
+<span class="sourceLineNo">11521</span>                                                float ox;<a name="line.11521"></a>
+<span class="sourceLineNo">11522</span>                                                ox = (float) (Math.pow(iax, ibx));<a name="line.11522"></a>
+<span class="sourceLineNo">11523</span>                                                oaf32data[it.oIndex] = ox;<a name="line.11523"></a>
+<span class="sourceLineNo">11524</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11524"></a>
+<span class="sourceLineNo">11525</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.11525"></a>
+<span class="sourceLineNo">11526</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.11526"></a>
+<span class="sourceLineNo">11527</span>                                                        ox = (float) (Math.pow(iax, ibx));<a name="line.11527"></a>
+<span class="sourceLineNo">11528</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.11528"></a>
+<span class="sourceLineNo">11529</span>                                                }<a name="line.11529"></a>
+<span class="sourceLineNo">11530</span>                                        }<a name="line.11530"></a>
+<span class="sourceLineNo">11531</span>                                } else {<a name="line.11531"></a>
+<span class="sourceLineNo">11532</span>                                        while (it.hasNext()) {<a name="line.11532"></a>
+<span class="sourceLineNo">11533</span>                                                long iax = it.aLong;<a name="line.11533"></a>
+<span class="sourceLineNo">11534</span>                                                long ibx = it.bLong;<a name="line.11534"></a>
+<span class="sourceLineNo">11535</span>                                                float ox;<a name="line.11535"></a>
+<span class="sourceLineNo">11536</span>                                                ox = (float) (Math.pow(iax, ibx));<a name="line.11536"></a>
+<span class="sourceLineNo">11537</span>                                                oaf32data[it.oIndex] = ox;<a name="line.11537"></a>
+<span class="sourceLineNo">11538</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11538"></a>
+<span class="sourceLineNo">11539</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.11539"></a>
+<span class="sourceLineNo">11540</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.11540"></a>
+<span class="sourceLineNo">11541</span>                                                        ox = (float) (Math.pow(iax, ibx));<a name="line.11541"></a>
+<span class="sourceLineNo">11542</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.11542"></a>
+<span class="sourceLineNo">11543</span>                                                }<a name="line.11543"></a>
+<span class="sourceLineNo">11544</span>                                        }<a name="line.11544"></a>
+<span class="sourceLineNo">11545</span>                                }<a name="line.11545"></a>
+<span class="sourceLineNo">11546</span>                        }<a name="line.11546"></a>
+<span class="sourceLineNo">11547</span>                        break;<a name="line.11547"></a>
+<span class="sourceLineNo">11548</span>                case Dataset.ARRAYFLOAT64:<a name="line.11548"></a>
+<span class="sourceLineNo">11549</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.11549"></a>
+<span class="sourceLineNo">11550</span>                        if (is == 1) {<a name="line.11550"></a>
+<span class="sourceLineNo">11551</span>                                if (it.isOutputDouble()) {<a name="line.11551"></a>
+<span class="sourceLineNo">11552</span>                                        while (it.hasNext()) {<a name="line.11552"></a>
+<span class="sourceLineNo">11553</span>                                                final double iax = it.aDouble;<a name="line.11553"></a>
+<span class="sourceLineNo">11554</span>                                                final double ibx = it.bDouble;<a name="line.11554"></a>
+<span class="sourceLineNo">11555</span>                                                double ox;<a name="line.11555"></a>
+<span class="sourceLineNo">11556</span>                                                ox = (Math.pow(iax, ibx));<a name="line.11556"></a>
+<span class="sourceLineNo">11557</span>                                                oaf64data[it.oIndex] = ox;<a name="line.11557"></a>
+<span class="sourceLineNo">11558</span>                                        }<a name="line.11558"></a>
+<span class="sourceLineNo">11559</span>                                } else {<a name="line.11559"></a>
+<span class="sourceLineNo">11560</span>                                        while (it.hasNext()) {<a name="line.11560"></a>
+<span class="sourceLineNo">11561</span>                                                final long iax = it.aLong;<a name="line.11561"></a>
+<span class="sourceLineNo">11562</span>                                                final long ibx = it.bLong;<a name="line.11562"></a>
+<span class="sourceLineNo">11563</span>                                                double ox;<a name="line.11563"></a>
+<span class="sourceLineNo">11564</span>                                                ox = (Math.pow(iax, ibx));<a name="line.11564"></a>
+<span class="sourceLineNo">11565</span>                                                oaf64data[it.oIndex] = ox;<a name="line.11565"></a>
+<span class="sourceLineNo">11566</span>                                        }<a name="line.11566"></a>
+<span class="sourceLineNo">11567</span>                                }<a name="line.11567"></a>
+<span class="sourceLineNo">11568</span>                        } else if (as &lt; bs) {<a name="line.11568"></a>
+<span class="sourceLineNo">11569</span>                                if (it.isOutputDouble()) {<a name="line.11569"></a>
+<span class="sourceLineNo">11570</span>                                        while (it.hasNext()) {<a name="line.11570"></a>
+<span class="sourceLineNo">11571</span>                                                final double iax = it.aDouble;<a name="line.11571"></a>
+<span class="sourceLineNo">11572</span>                                                double ibx = it.bDouble;<a name="line.11572"></a>
+<span class="sourceLineNo">11573</span>                                                double ox;<a name="line.11573"></a>
+<span class="sourceLineNo">11574</span>                                                ox = (Math.pow(iax, ibx));<a name="line.11574"></a>
+<span class="sourceLineNo">11575</span>                                                oaf64data[it.oIndex] = ox;<a name="line.11575"></a>
+<span class="sourceLineNo">11576</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11576"></a>
+<span class="sourceLineNo">11577</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.11577"></a>
+<span class="sourceLineNo">11578</span>                                                        ox = (Math.pow(iax, ibx));<a name="line.11578"></a>
+<span class="sourceLineNo">11579</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.11579"></a>
+<span class="sourceLineNo">11580</span>                                                }<a name="line.11580"></a>
+<span class="sourceLineNo">11581</span>                                        }<a name="line.11581"></a>
+<span class="sourceLineNo">11582</span>                                } else {<a name="line.11582"></a>
+<span class="sourceLineNo">11583</span>                                        while (it.hasNext()) {<a name="line.11583"></a>
+<span class="sourceLineNo">11584</span>                                                final long iax = it.aLong;<a name="line.11584"></a>
+<span class="sourceLineNo">11585</span>                                                long ibx = it.bLong;<a name="line.11585"></a>
+<span class="sourceLineNo">11586</span>                                                double ox;<a name="line.11586"></a>
+<span class="sourceLineNo">11587</span>                                                ox = (Math.pow(iax, ibx));<a name="line.11587"></a>
+<span class="sourceLineNo">11588</span>                                                oaf64data[it.oIndex] = ox;<a name="line.11588"></a>
+<span class="sourceLineNo">11589</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11589"></a>
+<span class="sourceLineNo">11590</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.11590"></a>
+<span class="sourceLineNo">11591</span>                                                        ox = (Math.pow(iax, ibx));<a name="line.11591"></a>
+<span class="sourceLineNo">11592</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.11592"></a>
+<span class="sourceLineNo">11593</span>                                                }<a name="line.11593"></a>
+<span class="sourceLineNo">11594</span>                                        }<a name="line.11594"></a>
+<span class="sourceLineNo">11595</span>                                }<a name="line.11595"></a>
+<span class="sourceLineNo">11596</span>                        } else if (as &gt; bs) {<a name="line.11596"></a>
+<span class="sourceLineNo">11597</span>                                if (it.isOutputDouble()) {<a name="line.11597"></a>
+<span class="sourceLineNo">11598</span>                                        while (it.hasNext()) {<a name="line.11598"></a>
+<span class="sourceLineNo">11599</span>                                                double iax = it.aDouble;<a name="line.11599"></a>
+<span class="sourceLineNo">11600</span>                                                final double ibx = it.bDouble;<a name="line.11600"></a>
+<span class="sourceLineNo">11601</span>                                                double ox;<a name="line.11601"></a>
+<span class="sourceLineNo">11602</span>                                                ox = (Math.pow(iax, ibx));<a name="line.11602"></a>
+<span class="sourceLineNo">11603</span>                                                oaf64data[it.oIndex] = ox;<a name="line.11603"></a>
+<span class="sourceLineNo">11604</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11604"></a>
+<span class="sourceLineNo">11605</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.11605"></a>
+<span class="sourceLineNo">11606</span>                                                        ox = (Math.pow(iax, ibx));<a name="line.11606"></a>
+<span class="sourceLineNo">11607</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.11607"></a>
+<span class="sourceLineNo">11608</span>                                                }<a name="line.11608"></a>
+<span class="sourceLineNo">11609</span>                                        }<a name="line.11609"></a>
+<span class="sourceLineNo">11610</span>                                } else {<a name="line.11610"></a>
+<span class="sourceLineNo">11611</span>                                        while (it.hasNext()) {<a name="line.11611"></a>
+<span class="sourceLineNo">11612</span>                                                long iax = it.aLong;<a name="line.11612"></a>
+<span class="sourceLineNo">11613</span>                                                final long ibx = it.bLong;<a name="line.11613"></a>
+<span class="sourceLineNo">11614</span>                                                double ox;<a name="line.11614"></a>
+<span class="sourceLineNo">11615</span>                                                ox = (Math.pow(iax, ibx));<a name="line.11615"></a>
+<span class="sourceLineNo">11616</span>                                                oaf64data[it.oIndex] = ox;<a name="line.11616"></a>
+<span class="sourceLineNo">11617</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11617"></a>
+<span class="sourceLineNo">11618</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.11618"></a>
+<span class="sourceLineNo">11619</span>                                                        ox = (Math.pow(iax, ibx));<a name="line.11619"></a>
+<span class="sourceLineNo">11620</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.11620"></a>
+<span class="sourceLineNo">11621</span>                                                }<a name="line.11621"></a>
+<span class="sourceLineNo">11622</span>                                        }<a name="line.11622"></a>
+<span class="sourceLineNo">11623</span>                                }<a name="line.11623"></a>
+<span class="sourceLineNo">11624</span>                        } else if (as == 1) {<a name="line.11624"></a>
+<span class="sourceLineNo">11625</span>                                if (it.isOutputDouble()) {<a name="line.11625"></a>
+<span class="sourceLineNo">11626</span>                                        while (it.hasNext()) {<a name="line.11626"></a>
+<span class="sourceLineNo">11627</span>                                                final double iax = it.aDouble;<a name="line.11627"></a>
+<span class="sourceLineNo">11628</span>                                                final double ibx = it.bDouble;<a name="line.11628"></a>
+<span class="sourceLineNo">11629</span>                                                double ox;<a name="line.11629"></a>
+<span class="sourceLineNo">11630</span>                                                ox = (Math.pow(iax, ibx));<a name="line.11630"></a>
+<span class="sourceLineNo">11631</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.11631"></a>
+<span class="sourceLineNo">11632</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.11632"></a>
+<span class="sourceLineNo">11633</span>                                                }<a name="line.11633"></a>
+<span class="sourceLineNo">11634</span>                                        }<a name="line.11634"></a>
+<span class="sourceLineNo">11635</span>                                } else {<a name="line.11635"></a>
+<span class="sourceLineNo">11636</span>                                        while (it.hasNext()) {<a name="line.11636"></a>
+<span class="sourceLineNo">11637</span>                                                final long iax = it.aLong;<a name="line.11637"></a>
+<span class="sourceLineNo">11638</span>                                                final long ibx = it.bLong;<a name="line.11638"></a>
+<span class="sourceLineNo">11639</span>                                                double ox;<a name="line.11639"></a>
+<span class="sourceLineNo">11640</span>                                                ox = (Math.pow(iax, ibx));<a name="line.11640"></a>
+<span class="sourceLineNo">11641</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.11641"></a>
+<span class="sourceLineNo">11642</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.11642"></a>
+<span class="sourceLineNo">11643</span>                                                }<a name="line.11643"></a>
+<span class="sourceLineNo">11644</span>                                        }<a name="line.11644"></a>
+<span class="sourceLineNo">11645</span>                                }<a name="line.11645"></a>
+<span class="sourceLineNo">11646</span>                        } else {<a name="line.11646"></a>
+<span class="sourceLineNo">11647</span>                                if (it.isOutputDouble()) {<a name="line.11647"></a>
+<span class="sourceLineNo">11648</span>                                        while (it.hasNext()) {<a name="line.11648"></a>
+<span class="sourceLineNo">11649</span>                                                double iax = it.aDouble;<a name="line.11649"></a>
+<span class="sourceLineNo">11650</span>                                                double ibx = it.bDouble;<a name="line.11650"></a>
+<span class="sourceLineNo">11651</span>                                                double ox;<a name="line.11651"></a>
+<span class="sourceLineNo">11652</span>                                                ox = (Math.pow(iax, ibx));<a name="line.11652"></a>
+<span class="sourceLineNo">11653</span>                                                oaf64data[it.oIndex] = ox;<a name="line.11653"></a>
+<span class="sourceLineNo">11654</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11654"></a>
+<span class="sourceLineNo">11655</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.11655"></a>
+<span class="sourceLineNo">11656</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.11656"></a>
+<span class="sourceLineNo">11657</span>                                                        ox = (Math.pow(iax, ibx));<a name="line.11657"></a>
+<span class="sourceLineNo">11658</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.11658"></a>
+<span class="sourceLineNo">11659</span>                                                }<a name="line.11659"></a>
+<span class="sourceLineNo">11660</span>                                        }<a name="line.11660"></a>
+<span class="sourceLineNo">11661</span>                                } else {<a name="line.11661"></a>
+<span class="sourceLineNo">11662</span>                                        while (it.hasNext()) {<a name="line.11662"></a>
+<span class="sourceLineNo">11663</span>                                                long iax = it.aLong;<a name="line.11663"></a>
+<span class="sourceLineNo">11664</span>                                                long ibx = it.bLong;<a name="line.11664"></a>
+<span class="sourceLineNo">11665</span>                                                double ox;<a name="line.11665"></a>
+<span class="sourceLineNo">11666</span>                                                ox = (Math.pow(iax, ibx));<a name="line.11666"></a>
+<span class="sourceLineNo">11667</span>                                                oaf64data[it.oIndex] = ox;<a name="line.11667"></a>
+<span class="sourceLineNo">11668</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.11668"></a>
+<span class="sourceLineNo">11669</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.11669"></a>
+<span class="sourceLineNo">11670</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.11670"></a>
+<span class="sourceLineNo">11671</span>                                                        ox = (Math.pow(iax, ibx));<a name="line.11671"></a>
+<span class="sourceLineNo">11672</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.11672"></a>
+<span class="sourceLineNo">11673</span>                                                }<a name="line.11673"></a>
+<span class="sourceLineNo">11674</span>                                        }<a name="line.11674"></a>
+<span class="sourceLineNo">11675</span>                                }<a name="line.11675"></a>
+<span class="sourceLineNo">11676</span>                        }<a name="line.11676"></a>
+<span class="sourceLineNo">11677</span>                        break;<a name="line.11677"></a>
+<span class="sourceLineNo">11678</span>                case Dataset.COMPLEX64:<a name="line.11678"></a>
+<span class="sourceLineNo">11679</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.11679"></a>
+<span class="sourceLineNo">11680</span>                        if (!da.isComplex()) {<a name="line.11680"></a>
+<span class="sourceLineNo">11681</span>                                if (it.isOutputDouble()) {<a name="line.11681"></a>
+<span class="sourceLineNo">11682</span>                                        final double iay = 0;<a name="line.11682"></a>
+<span class="sourceLineNo">11683</span>                                        if (db.isComplex()) {<a name="line.11683"></a>
+<span class="sourceLineNo">11684</span>                                                while (it.hasNext()) {<a name="line.11684"></a>
+<span class="sourceLineNo">11685</span>                                                        final double iax = it.aDouble;<a name="line.11685"></a>
+<span class="sourceLineNo">11686</span>                                                        final double ibx = it.bDouble;<a name="line.11686"></a>
+<span class="sourceLineNo">11687</span>                                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.11687"></a>
+<span class="sourceLineNo">11688</span>                                                        Complex tz;<a name="line.11688"></a>
+<span class="sourceLineNo">11689</span>                                                        float ox;<a name="line.11689"></a>
+<span class="sourceLineNo">11690</span>                                                        float oy;<a name="line.11690"></a>
+<span class="sourceLineNo">11691</span>                                                        tz = new Complex(iax, iay).pow(new Complex(ibx, iby));<a name="line.11691"></a>
+<span class="sourceLineNo">11692</span>                                                        ox = (float) (tz.getReal());<a name="line.11692"></a>
+<span class="sourceLineNo">11693</span>                                                        oy = (float) (tz.getImaginary());<a name="line.11693"></a>
+<span class="sourceLineNo">11694</span>                                                        oc64data[it.oIndex] = ox;<a name="line.11694"></a>
+<span class="sourceLineNo">11695</span>                                                        oc64data[it.oIndex + 1] = oy;<a name="line.11695"></a>
+<span class="sourceLineNo">11696</span>                                                }<a name="line.11696"></a>
+<span class="sourceLineNo">11697</span>                                        } else {<a name="line.11697"></a>
+<span class="sourceLineNo">11698</span>                                                while (it.hasNext()) {<a name="line.11698"></a>
+<span class="sourceLineNo">11699</span>                                                        final double iax = it.aDouble;<a name="line.11699"></a>
+<span class="sourceLineNo">11700</span>                                                        final double ibx = it.bDouble;<a name="line.11700"></a>
+<span class="sourceLineNo">11701</span>                                                        final double iby = 0;<a name="line.11701"></a>
+<span class="sourceLineNo">11702</span>                                                        Complex tz;<a name="line.11702"></a>
+<span class="sourceLineNo">11703</span>                                                        float ox;<a name="line.11703"></a>
+<span class="sourceLineNo">11704</span>                                                        float oy;<a name="line.11704"></a>
+<span class="sourceLineNo">11705</span>                                                        tz = new Complex(iax, iay).pow(new Complex(ibx, iby));<a name="line.11705"></a>
+<span class="sourceLineNo">11706</span>                                                        ox = (float) (tz.getReal());<a name="line.11706"></a>
+<span class="sourceLineNo">11707</span>                                                        oy = (float) (tz.getImaginary());<a name="line.11707"></a>
+<span class="sourceLineNo">11708</span>                                                        oc64data[it.oIndex] = ox;<a name="line.11708"></a>
+<span class="sourceLineNo">11709</span>                                                        oc64data[it.oIndex + 1] = oy;<a name="line.11709"></a>
+<span class="sourceLineNo">11710</span>                                                }<a name="line.11710"></a>
+<span class="sourceLineNo">11711</span>                                        }<a name="line.11711"></a>
+<span class="sourceLineNo">11712</span>                                } else {<a name="line.11712"></a>
+<span class="sourceLineNo">11713</span>                                        final long iay = 0;<a name="line.11713"></a>
+<span class="sourceLineNo">11714</span>                                        while (it.hasNext()) {<a name="line.11714"></a>
+<span class="sourceLineNo">11715</span>                                                final long iax = it.aLong;<a name="line.11715"></a>
+<span class="sourceLineNo">11716</span>                                                final long ibx = it.bLong;<a name="line.11716"></a>
+<span class="sourceLineNo">11717</span>                                                final long iby = 0;<a name="line.11717"></a>
+<span class="sourceLineNo">11718</span>                                                Complex tz;<a name="line.11718"></a>
+<span class="sourceLineNo">11719</span>                                                float ox;<a name="line.11719"></a>
+<span class="sourceLineNo">11720</span>                                                float oy;<a name="line.11720"></a>
+<span class="sourceLineNo">11721</span>                                                tz = new Complex(iax, iay).pow(new Complex(ibx, iby));<a name="line.11721"></a>
+<span class="sourceLineNo">11722</span>                                                ox = (float) (tz.getReal());<a name="line.11722"></a>
+<span class="sourceLineNo">11723</span>                                                oy = (float) (tz.getImaginary());<a name="line.11723"></a>
+<span class="sourceLineNo">11724</span>                                                oc64data[it.oIndex] = ox;<a name="line.11724"></a>
+<span class="sourceLineNo">11725</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.11725"></a>
+<span class="sourceLineNo">11726</span>                                        }<a name="line.11726"></a>
+<span class="sourceLineNo">11727</span>                                }<a name="line.11727"></a>
+<span class="sourceLineNo">11728</span>                        } else if (!db.isComplex()) {<a name="line.11728"></a>
+<span class="sourceLineNo">11729</span>                                final double iby = 0;<a name="line.11729"></a>
+<span class="sourceLineNo">11730</span>                                while (it.hasNext()) {<a name="line.11730"></a>
+<span class="sourceLineNo">11731</span>                                        final double iax = it.aDouble;<a name="line.11731"></a>
+<span class="sourceLineNo">11732</span>                                        final double ibx = it.bDouble;<a name="line.11732"></a>
+<span class="sourceLineNo">11733</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.11733"></a>
+<span class="sourceLineNo">11734</span>                                        Complex tz;<a name="line.11734"></a>
+<span class="sourceLineNo">11735</span>                                        float ox;<a name="line.11735"></a>
+<span class="sourceLineNo">11736</span>                                        float oy;<a name="line.11736"></a>
+<span class="sourceLineNo">11737</span>                                        tz = new Complex(iax, iay).pow(new Complex(ibx, iby));<a name="line.11737"></a>
+<span class="sourceLineNo">11738</span>                                        ox = (float) (tz.getReal());<a name="line.11738"></a>
+<span class="sourceLineNo">11739</span>                                        oy = (float) (tz.getImaginary());<a name="line.11739"></a>
+<span class="sourceLineNo">11740</span>                                        oc64data[it.oIndex] = ox;<a name="line.11740"></a>
+<span class="sourceLineNo">11741</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.11741"></a>
+<span class="sourceLineNo">11742</span>                                }<a name="line.11742"></a>
+<span class="sourceLineNo">11743</span>                        } else {<a name="line.11743"></a>
+<span class="sourceLineNo">11744</span>                                while (it.hasNext()) {<a name="line.11744"></a>
+<span class="sourceLineNo">11745</span>                                        final double iax = it.aDouble;<a name="line.11745"></a>
+<span class="sourceLineNo">11746</span>                                        final double ibx = it.bDouble;<a name="line.11746"></a>
+<span class="sourceLineNo">11747</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.11747"></a>
+<span class="sourceLineNo">11748</span>                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.11748"></a>
+<span class="sourceLineNo">11749</span>                                        Complex tz;<a name="line.11749"></a>
+<span class="sourceLineNo">11750</span>                                        float ox;<a name="line.11750"></a>
+<span class="sourceLineNo">11751</span>                                        float oy;<a name="line.11751"></a>
+<span class="sourceLineNo">11752</span>                                        tz = new Complex(iax, iay).pow(new Complex(ibx, iby));<a name="line.11752"></a>
+<span class="sourceLineNo">11753</span>                                        ox = (float) (tz.getReal());<a name="line.11753"></a>
+<span class="sourceLineNo">11754</span>                                        oy = (float) (tz.getImaginary());<a name="line.11754"></a>
+<span class="sourceLineNo">11755</span>                                        oc64data[it.oIndex] = ox;<a name="line.11755"></a>
+<span class="sourceLineNo">11756</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.11756"></a>
+<span class="sourceLineNo">11757</span>                                }<a name="line.11757"></a>
+<span class="sourceLineNo">11758</span>                        }<a name="line.11758"></a>
+<span class="sourceLineNo">11759</span>                        break;<a name="line.11759"></a>
+<span class="sourceLineNo">11760</span>                case Dataset.COMPLEX128:<a name="line.11760"></a>
+<span class="sourceLineNo">11761</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.11761"></a>
+<span class="sourceLineNo">11762</span>                        if (!da.isComplex()) {<a name="line.11762"></a>
+<span class="sourceLineNo">11763</span>                                if (it.isOutputDouble()) {<a name="line.11763"></a>
+<span class="sourceLineNo">11764</span>                                        final double iay = 0;<a name="line.11764"></a>
+<span class="sourceLineNo">11765</span>                                        if (db.isComplex()) {<a name="line.11765"></a>
+<span class="sourceLineNo">11766</span>                                                while (it.hasNext()) {<a name="line.11766"></a>
+<span class="sourceLineNo">11767</span>                                                        final double iax = it.aDouble;<a name="line.11767"></a>
+<span class="sourceLineNo">11768</span>                                                        final double ibx = it.bDouble;<a name="line.11768"></a>
+<span class="sourceLineNo">11769</span>                                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.11769"></a>
+<span class="sourceLineNo">11770</span>                                                        Complex tz;<a name="line.11770"></a>
+<span class="sourceLineNo">11771</span>                                                        double ox;<a name="line.11771"></a>
+<span class="sourceLineNo">11772</span>                                                        double oy;<a name="line.11772"></a>
+<span class="sourceLineNo">11773</span>                                                        tz = new Complex(iax, iay).pow(new Complex(ibx, iby));<a name="line.11773"></a>
+<span class="sourceLineNo">11774</span>                                                        ox = (tz.getReal());<a name="line.11774"></a>
+<span class="sourceLineNo">11775</span>                                                        oy = (tz.getImaginary());<a name="line.11775"></a>
+<span class="sourceLineNo">11776</span>                                                        oc128data[it.oIndex] = ox;<a name="line.11776"></a>
+<span class="sourceLineNo">11777</span>                                                        oc128data[it.oIndex + 1] = oy;<a name="line.11777"></a>
+<span class="sourceLineNo">11778</span>                                                }<a name="line.11778"></a>
+<span class="sourceLineNo">11779</span>                                        } else {<a name="line.11779"></a>
+<span class="sourceLineNo">11780</span>                                                while (it.hasNext()) {<a name="line.11780"></a>
+<span class="sourceLineNo">11781</span>                                                        final double iax = it.aDouble;<a name="line.11781"></a>
+<span class="sourceLineNo">11782</span>                                                        final double ibx = it.bDouble;<a name="line.11782"></a>
+<span class="sourceLineNo">11783</span>                                                        final double iby = 0;<a name="line.11783"></a>
+<span class="sourceLineNo">11784</span>                                                        Complex tz;<a name="line.11784"></a>
+<span class="sourceLineNo">11785</span>                                                        double ox;<a name="line.11785"></a>
+<span class="sourceLineNo">11786</span>                                                        double oy;<a name="line.11786"></a>
+<span class="sourceLineNo">11787</span>                                                        tz = new Complex(iax, iay).pow(new Complex(ibx, iby));<a name="line.11787"></a>
+<span class="sourceLineNo">11788</span>                                                        ox = (tz.getReal());<a name="line.11788"></a>
+<span class="sourceLineNo">11789</span>                                                        oy = (tz.getImaginary());<a name="line.11789"></a>
+<span class="sourceLineNo">11790</span>                                                        oc128data[it.oIndex] = ox;<a name="line.11790"></a>
+<span class="sourceLineNo">11791</span>                                                        oc128data[it.oIndex + 1] = oy;<a name="line.11791"></a>
+<span class="sourceLineNo">11792</span>                                                }<a name="line.11792"></a>
+<span class="sourceLineNo">11793</span>                                        }<a name="line.11793"></a>
+<span class="sourceLineNo">11794</span>                                } else {<a name="line.11794"></a>
+<span class="sourceLineNo">11795</span>                                        final long iay = 0;<a name="line.11795"></a>
+<span class="sourceLineNo">11796</span>                                        while (it.hasNext()) {<a name="line.11796"></a>
+<span class="sourceLineNo">11797</span>                                                final long iax = it.aLong;<a name="line.11797"></a>
+<span class="sourceLineNo">11798</span>                                                final long ibx = it.bLong;<a name="line.11798"></a>
+<span class="sourceLineNo">11799</span>                                                final long iby = 0;<a name="line.11799"></a>
+<span class="sourceLineNo">11800</span>                                                Complex tz;<a name="line.11800"></a>
+<span class="sourceLineNo">11801</span>                                                double ox;<a name="line.11801"></a>
+<span class="sourceLineNo">11802</span>                                                double oy;<a name="line.11802"></a>
+<span class="sourceLineNo">11803</span>                                                tz = new Complex(iax, iay).pow(new Complex(ibx, iby));<a name="line.11803"></a>
+<span class="sourceLineNo">11804</span>                                                ox = (tz.getReal());<a name="line.11804"></a>
+<span class="sourceLineNo">11805</span>                                                oy = (tz.getImaginary());<a name="line.11805"></a>
+<span class="sourceLineNo">11806</span>                                                oc128data[it.oIndex] = ox;<a name="line.11806"></a>
+<span class="sourceLineNo">11807</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.11807"></a>
+<span class="sourceLineNo">11808</span>                                        }<a name="line.11808"></a>
+<span class="sourceLineNo">11809</span>                                }<a name="line.11809"></a>
+<span class="sourceLineNo">11810</span>                        } else if (!db.isComplex()) {<a name="line.11810"></a>
+<span class="sourceLineNo">11811</span>                                final double iby = 0;<a name="line.11811"></a>
+<span class="sourceLineNo">11812</span>                                while (it.hasNext()) {<a name="line.11812"></a>
+<span class="sourceLineNo">11813</span>                                        final double iax = it.aDouble;<a name="line.11813"></a>
+<span class="sourceLineNo">11814</span>                                        final double ibx = it.bDouble;<a name="line.11814"></a>
+<span class="sourceLineNo">11815</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.11815"></a>
+<span class="sourceLineNo">11816</span>                                        Complex tz;<a name="line.11816"></a>
+<span class="sourceLineNo">11817</span>                                        double ox;<a name="line.11817"></a>
+<span class="sourceLineNo">11818</span>                                        double oy;<a name="line.11818"></a>
+<span class="sourceLineNo">11819</span>                                        tz = new Complex(iax, iay).pow(new Complex(ibx, iby));<a name="line.11819"></a>
+<span class="sourceLineNo">11820</span>                                        ox = (tz.getReal());<a name="line.11820"></a>
+<span class="sourceLineNo">11821</span>                                        oy = (tz.getImaginary());<a name="line.11821"></a>
+<span class="sourceLineNo">11822</span>                                        oc128data[it.oIndex] = ox;<a name="line.11822"></a>
+<span class="sourceLineNo">11823</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.11823"></a>
+<span class="sourceLineNo">11824</span>                                }<a name="line.11824"></a>
+<span class="sourceLineNo">11825</span>                        } else {<a name="line.11825"></a>
+<span class="sourceLineNo">11826</span>                                while (it.hasNext()) {<a name="line.11826"></a>
+<span class="sourceLineNo">11827</span>                                        final double iax = it.aDouble;<a name="line.11827"></a>
+<span class="sourceLineNo">11828</span>                                        final double ibx = it.bDouble;<a name="line.11828"></a>
+<span class="sourceLineNo">11829</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.11829"></a>
+<span class="sourceLineNo">11830</span>                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.11830"></a>
+<span class="sourceLineNo">11831</span>                                        Complex tz;<a name="line.11831"></a>
+<span class="sourceLineNo">11832</span>                                        double ox;<a name="line.11832"></a>
+<span class="sourceLineNo">11833</span>                                        double oy;<a name="line.11833"></a>
+<span class="sourceLineNo">11834</span>                                        tz = new Complex(iax, iay).pow(new Complex(ibx, iby));<a name="line.11834"></a>
+<span class="sourceLineNo">11835</span>                                        ox = (tz.getReal());<a name="line.11835"></a>
+<span class="sourceLineNo">11836</span>                                        oy = (tz.getImaginary());<a name="line.11836"></a>
+<span class="sourceLineNo">11837</span>                                        oc128data[it.oIndex] = ox;<a name="line.11837"></a>
+<span class="sourceLineNo">11838</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.11838"></a>
+<span class="sourceLineNo">11839</span>                                }<a name="line.11839"></a>
+<span class="sourceLineNo">11840</span>                        }<a name="line.11840"></a>
+<span class="sourceLineNo">11841</span>                        break;<a name="line.11841"></a>
+<span class="sourceLineNo">11842</span>                default:<a name="line.11842"></a>
+<span class="sourceLineNo">11843</span>                        throw new IllegalArgumentException("power supports integer, compound integer, real, compound real, complex datasets only");<a name="line.11843"></a>
+<span class="sourceLineNo">11844</span>                }<a name="line.11844"></a>
+<span class="sourceLineNo">11845</span><a name="line.11845"></a>
+<span class="sourceLineNo">11846</span>                addBinaryOperatorName(da, db, result, "**");<a name="line.11846"></a>
+<span class="sourceLineNo">11847</span>                return result;<a name="line.11847"></a>
+<span class="sourceLineNo">11848</span>        }<a name="line.11848"></a>
+<span class="sourceLineNo">11849</span><a name="line.11849"></a>
+<span class="sourceLineNo">11850</span>        /**<a name="line.11850"></a>
+<span class="sourceLineNo">11851</span>         * remainder operator<a name="line.11851"></a>
+<span class="sourceLineNo">11852</span>         * @param a<a name="line.11852"></a>
+<span class="sourceLineNo">11853</span>         * @param b<a name="line.11853"></a>
+<span class="sourceLineNo">11854</span>         * @return {@code a % b}, remainder of division of a by b<a name="line.11854"></a>
+<span class="sourceLineNo">11855</span>         */<a name="line.11855"></a>
+<span class="sourceLineNo">11856</span>        public static Dataset remainder(final Object a, final Object b) {<a name="line.11856"></a>
+<span class="sourceLineNo">11857</span>                return remainder(a, b, null);<a name="line.11857"></a>
+<span class="sourceLineNo">11858</span>        }<a name="line.11858"></a>
+<span class="sourceLineNo">11859</span><a name="line.11859"></a>
+<span class="sourceLineNo">11860</span>        /**<a name="line.11860"></a>
+<span class="sourceLineNo">11861</span>         * remainder operator<a name="line.11861"></a>
+<span class="sourceLineNo">11862</span>         * @param a<a name="line.11862"></a>
+<span class="sourceLineNo">11863</span>         * @param b<a name="line.11863"></a>
+<span class="sourceLineNo">11864</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.11864"></a>
+<span class="sourceLineNo">11865</span>         * @return {@code a % b}, remainder of division of a by b<a name="line.11865"></a>
+<span class="sourceLineNo">11866</span>         */<a name="line.11866"></a>
+<span class="sourceLineNo">11867</span>        public static Dataset remainder(final Object a, final Object b, final Dataset o) {<a name="line.11867"></a>
+<span class="sourceLineNo">11868</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.11868"></a>
+<span class="sourceLineNo">11869</span>                Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.11869"></a>
+<span class="sourceLineNo">11870</span>                BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.11870"></a>
+<span class="sourceLineNo">11871</span>                final Dataset result = it.getOutput();<a name="line.11871"></a>
+<span class="sourceLineNo">11872</span>                if (!result.isComplex()) {<a name="line.11872"></a>
+<span class="sourceLineNo">11873</span>                        boolean change = false;<a name="line.11873"></a>
+<span class="sourceLineNo">11874</span>                        if (da.isComplex()) {<a name="line.11874"></a>
+<span class="sourceLineNo">11875</span>                                da = da.getRealView();<a name="line.11875"></a>
+<span class="sourceLineNo">11876</span>                                change = true;<a name="line.11876"></a>
+<span class="sourceLineNo">11877</span>                        }<a name="line.11877"></a>
+<span class="sourceLineNo">11878</span>                        if (db.isComplex()) {<a name="line.11878"></a>
+<span class="sourceLineNo">11879</span>                                db = db.getRealView();<a name="line.11879"></a>
+<span class="sourceLineNo">11880</span>                                change = true;<a name="line.11880"></a>
+<span class="sourceLineNo">11881</span>                        }<a name="line.11881"></a>
+<span class="sourceLineNo">11882</span>                        if (change) {<a name="line.11882"></a>
+<span class="sourceLineNo">11883</span>                                it = BroadcastIterator.createIterator(da, db, result, true);<a name="line.11883"></a>
+<span class="sourceLineNo">11884</span>                        }<a name="line.11884"></a>
+<span class="sourceLineNo">11885</span>                }<a name="line.11885"></a>
+<span class="sourceLineNo">11886</span>                final int is = result.getElementsPerItem();<a name="line.11886"></a>
+<span class="sourceLineNo">11887</span>                final int as = da.getElementsPerItem();<a name="line.11887"></a>
+<span class="sourceLineNo">11888</span>                final int bs = db.getElementsPerItem();<a name="line.11888"></a>
+<span class="sourceLineNo">11889</span>                final int dt = result.getDType();<a name="line.11889"></a>
+<span class="sourceLineNo">11890</span><a name="line.11890"></a>
+<span class="sourceLineNo">11891</span>                switch(dt) {<a name="line.11891"></a>
+<span class="sourceLineNo">11892</span>                case Dataset.INT8:<a name="line.11892"></a>
+<span class="sourceLineNo">11893</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.11893"></a>
+<span class="sourceLineNo">11894</span>                        if (it.isOutputDouble()) {<a name="line.11894"></a>
+<span class="sourceLineNo">11895</span>                                while (it.hasNext()) {<a name="line.11895"></a>
+<span class="sourceLineNo">11896</span>                                        final double iax = it.aDouble;<a name="line.11896"></a>
+<span class="sourceLineNo">11897</span>                                        final double ibx = it.bDouble;<a name="line.11897"></a>
+<span class="sourceLineNo">11898</span>                                        byte ox;<a name="line.11898"></a>
+<span class="sourceLineNo">11899</span>                                        ox = (byte) toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.11899"></a>
+<span class="sourceLineNo">11900</span>                                        oi8data[it.oIndex] = ox;<a name="line.11900"></a>
+<span class="sourceLineNo">11901</span>                                }<a name="line.11901"></a>
+<span class="sourceLineNo">11902</span>                        } else {<a name="line.11902"></a>
+<span class="sourceLineNo">11903</span>                                while (it.hasNext()) {<a name="line.11903"></a>
+<span class="sourceLineNo">11904</span>                                        final long iax = it.aLong;<a name="line.11904"></a>
+<span class="sourceLineNo">11905</span>                                        final long ibx = it.bLong;<a name="line.11905"></a>
+<span class="sourceLineNo">11906</span>                                        byte ox;<a name="line.11906"></a>
+<span class="sourceLineNo">11907</span>                                        ox = (byte) (ibx == 0 ? 0 : iax % ibx);<a name="line.11907"></a>
+<span class="sourceLineNo">11908</span>                                        oi8data[it.oIndex] = ox;<a name="line.11908"></a>
+<span class="sourceLineNo">11909</span>                                }<a name="line.11909"></a>
+<span class="sourceLineNo">11910</span>                        }<a name="line.11910"></a>
+<span class="sourceLineNo">11911</span>                        break;<a name="line.11911"></a>
+<span class="sourceLineNo">11912</span>                case Dataset.INT16:<a name="line.11912"></a>
+<span class="sourceLineNo">11913</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.11913"></a>
+<span class="sourceLineNo">11914</span>                        if (it.isOutputDouble()) {<a name="line.11914"></a>
+<span class="sourceLineNo">11915</span>                                while (it.hasNext()) {<a name="line.11915"></a>
+<span class="sourceLineNo">11916</span>                                        final double iax = it.aDouble;<a name="line.11916"></a>
+<span class="sourceLineNo">11917</span>                                        final double ibx = it.bDouble;<a name="line.11917"></a>
+<span class="sourceLineNo">11918</span>                                        short ox;<a name="line.11918"></a>
+<span class="sourceLineNo">11919</span>                                        ox = (short) toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.11919"></a>
+<span class="sourceLineNo">11920</span>                                        oi16data[it.oIndex] = ox;<a name="line.11920"></a>
+<span class="sourceLineNo">11921</span>                                }<a name="line.11921"></a>
+<span class="sourceLineNo">11922</span>                        } else {<a name="line.11922"></a>
+<span class="sourceLineNo">11923</span>                                while (it.hasNext()) {<a name="line.11923"></a>
+<span class="sourceLineNo">11924</span>                                        final long iax = it.aLong;<a name="line.11924"></a>
+<span class="sourceLineNo">11925</span>                                        final long ibx = it.bLong;<a name="line.11925"></a>
+<span class="sourceLineNo">11926</span>                                        short ox;<a name="line.11926"></a>
+<span class="sourceLineNo">11927</span>                                        ox = (short) (ibx == 0 ? 0 : iax % ibx);<a name="line.11927"></a>
+<span class="sourceLineNo">11928</span>                                        oi16data[it.oIndex] = ox;<a name="line.11928"></a>
+<span class="sourceLineNo">11929</span>                                }<a name="line.11929"></a>
+<span class="sourceLineNo">11930</span>                        }<a name="line.11930"></a>
+<span class="sourceLineNo">11931</span>                        break;<a name="line.11931"></a>
+<span class="sourceLineNo">11932</span>                case Dataset.INT64:<a name="line.11932"></a>
+<span class="sourceLineNo">11933</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.11933"></a>
+<span class="sourceLineNo">11934</span>                        if (it.isOutputDouble()) {<a name="line.11934"></a>
+<span class="sourceLineNo">11935</span>                                while (it.hasNext()) {<a name="line.11935"></a>
+<span class="sourceLineNo">11936</span>                                        final double iax = it.aDouble;<a name="line.11936"></a>
+<span class="sourceLineNo">11937</span>                                        final double ibx = it.bDouble;<a name="line.11937"></a>
+<span class="sourceLineNo">11938</span>                                        long ox;<a name="line.11938"></a>
+<span class="sourceLineNo">11939</span>                                        ox = toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.11939"></a>
+<span class="sourceLineNo">11940</span>                                        oi64data[it.oIndex] = ox;<a name="line.11940"></a>
+<span class="sourceLineNo">11941</span>                                }<a name="line.11941"></a>
+<span class="sourceLineNo">11942</span>                        } else {<a name="line.11942"></a>
+<span class="sourceLineNo">11943</span>                                while (it.hasNext()) {<a name="line.11943"></a>
+<span class="sourceLineNo">11944</span>                                        final long iax = it.aLong;<a name="line.11944"></a>
+<span class="sourceLineNo">11945</span>                                        final long ibx = it.bLong;<a name="line.11945"></a>
+<span class="sourceLineNo">11946</span>                                        long ox;<a name="line.11946"></a>
+<span class="sourceLineNo">11947</span>                                        ox = (ibx == 0 ? 0 : iax % ibx);<a name="line.11947"></a>
+<span class="sourceLineNo">11948</span>                                        oi64data[it.oIndex] = ox;<a name="line.11948"></a>
+<span class="sourceLineNo">11949</span>                                }<a name="line.11949"></a>
+<span class="sourceLineNo">11950</span>                        }<a name="line.11950"></a>
+<span class="sourceLineNo">11951</span>                        break;<a name="line.11951"></a>
+<span class="sourceLineNo">11952</span>                case Dataset.INT32:<a name="line.11952"></a>
+<span class="sourceLineNo">11953</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.11953"></a>
+<span class="sourceLineNo">11954</span>                        if (it.isOutputDouble()) {<a name="line.11954"></a>
+<span class="sourceLineNo">11955</span>                                while (it.hasNext()) {<a name="line.11955"></a>
+<span class="sourceLineNo">11956</span>                                        final double iax = it.aDouble;<a name="line.11956"></a>
+<span class="sourceLineNo">11957</span>                                        final double ibx = it.bDouble;<a name="line.11957"></a>
+<span class="sourceLineNo">11958</span>                                        int ox;<a name="line.11958"></a>
+<span class="sourceLineNo">11959</span>                                        ox = (int) toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.11959"></a>
+<span class="sourceLineNo">11960</span>                                        oi32data[it.oIndex] = ox;<a name="line.11960"></a>
+<span class="sourceLineNo">11961</span>                                }<a name="line.11961"></a>
+<span class="sourceLineNo">11962</span>                        } else {<a name="line.11962"></a>
+<span class="sourceLineNo">11963</span>                                while (it.hasNext()) {<a name="line.11963"></a>
+<span class="sourceLineNo">11964</span>                                        final long iax = it.aLong;<a name="line.11964"></a>
+<span class="sourceLineNo">11965</span>                                        final long ibx = it.bLong;<a name="line.11965"></a>
+<span class="sourceLineNo">11966</span>                                        int ox;<a name="line.11966"></a>
+<span class="sourceLineNo">11967</span>                                        ox = (int) (ibx == 0 ? 0 : iax % ibx);<a name="line.11967"></a>
+<span class="sourceLineNo">11968</span>                                        oi32data[it.oIndex] = ox;<a name="line.11968"></a>
+<span class="sourceLineNo">11969</span>                                }<a name="line.11969"></a>
+<span class="sourceLineNo">11970</span>                        }<a name="line.11970"></a>
+<span class="sourceLineNo">11971</span>                        break;<a name="line.11971"></a>
+<span class="sourceLineNo">11972</span>                case Dataset.ARRAYINT8:<a name="line.11972"></a>
+<span class="sourceLineNo">11973</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.11973"></a>
+<span class="sourceLineNo">11974</span>                        if (is == 1) {<a name="line.11974"></a>
+<span class="sourceLineNo">11975</span>                                if (it.isOutputDouble()) {<a name="line.11975"></a>
+<span class="sourceLineNo">11976</span>                                        while (it.hasNext()) {<a name="line.11976"></a>
+<span class="sourceLineNo">11977</span>                                                final double iax = it.aDouble;<a name="line.11977"></a>
+<span class="sourceLineNo">11978</span>                                                final double ibx = it.bDouble;<a name="line.11978"></a>
+<span class="sourceLineNo">11979</span>                                                byte ox;<a name="line.11979"></a>
+<span class="sourceLineNo">11980</span>                                                ox = (byte) toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.11980"></a>
+<span class="sourceLineNo">11981</span>                                                oai8data[it.oIndex] = ox;<a name="line.11981"></a>
+<span class="sourceLineNo">11982</span>                                        }<a name="line.11982"></a>
+<span class="sourceLineNo">11983</span>                                } else {<a name="line.11983"></a>
+<span class="sourceLineNo">11984</span>                                        while (it.hasNext()) {<a name="line.11984"></a>
+<span class="sourceLineNo">11985</span>                                                final long iax = it.aLong;<a name="line.11985"></a>
+<span class="sourceLineNo">11986</span>                                                final long ibx = it.bLong;<a name="line.11986"></a>
+<span class="sourceLineNo">11987</span>                                                byte ox;<a name="line.11987"></a>
+<span class="sourceLineNo">11988</span>                                                ox = (byte) (ibx == 0 ? 0 : iax % ibx);<a name="line.11988"></a>
+<span class="sourceLineNo">11989</span>                                                oai8data[it.oIndex] = ox;<a name="line.11989"></a>
+<span class="sourceLineNo">11990</span>                                        }<a name="line.11990"></a>
+<span class="sourceLineNo">11991</span>                                }<a name="line.11991"></a>
+<span class="sourceLineNo">11992</span>                        } else if (as &lt; bs) {<a name="line.11992"></a>
+<span class="sourceLineNo">11993</span>                                if (it.isOutputDouble()) {<a name="line.11993"></a>
+<span class="sourceLineNo">11994</span>                                        while (it.hasNext()) {<a name="line.11994"></a>
+<span class="sourceLineNo">11995</span>                                                final double iax = it.aDouble;<a name="line.11995"></a>
+<span class="sourceLineNo">11996</span>                                                double ibx = it.bDouble;<a name="line.11996"></a>
+<span class="sourceLineNo">11997</span>                                                byte ox;<a name="line.11997"></a>
+<span class="sourceLineNo">11998</span>                                                ox = (byte) toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.11998"></a>
+<span class="sourceLineNo">11999</span>                                                oai8data[it.oIndex] = ox;<a name="line.11999"></a>
+<span class="sourceLineNo">12000</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12000"></a>
+<span class="sourceLineNo">12001</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.12001"></a>
+<span class="sourceLineNo">12002</span>                                                        ox = (byte) toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12002"></a>
+<span class="sourceLineNo">12003</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.12003"></a>
+<span class="sourceLineNo">12004</span>                                                }<a name="line.12004"></a>
+<span class="sourceLineNo">12005</span>                                        }<a name="line.12005"></a>
+<span class="sourceLineNo">12006</span>                                } else {<a name="line.12006"></a>
+<span class="sourceLineNo">12007</span>                                        while (it.hasNext()) {<a name="line.12007"></a>
+<span class="sourceLineNo">12008</span>                                                final long iax = it.aLong;<a name="line.12008"></a>
+<span class="sourceLineNo">12009</span>                                                long ibx = it.bLong;<a name="line.12009"></a>
+<span class="sourceLineNo">12010</span>                                                byte ox;<a name="line.12010"></a>
+<span class="sourceLineNo">12011</span>                                                ox = (byte) (ibx == 0 ? 0 : iax % ibx);<a name="line.12011"></a>
+<span class="sourceLineNo">12012</span>                                                oai8data[it.oIndex] = ox;<a name="line.12012"></a>
+<span class="sourceLineNo">12013</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12013"></a>
+<span class="sourceLineNo">12014</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.12014"></a>
+<span class="sourceLineNo">12015</span>                                                        ox = (byte) (ibx == 0 ? 0 : iax % ibx);<a name="line.12015"></a>
+<span class="sourceLineNo">12016</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.12016"></a>
+<span class="sourceLineNo">12017</span>                                                }<a name="line.12017"></a>
+<span class="sourceLineNo">12018</span>                                        }<a name="line.12018"></a>
+<span class="sourceLineNo">12019</span>                                }<a name="line.12019"></a>
+<span class="sourceLineNo">12020</span>                        } else if (as &gt; bs) {<a name="line.12020"></a>
+<span class="sourceLineNo">12021</span>                                if (it.isOutputDouble()) {<a name="line.12021"></a>
+<span class="sourceLineNo">12022</span>                                        while (it.hasNext()) {<a name="line.12022"></a>
+<span class="sourceLineNo">12023</span>                                                double iax = it.aDouble;<a name="line.12023"></a>
+<span class="sourceLineNo">12024</span>                                                final double ibx = it.bDouble;<a name="line.12024"></a>
+<span class="sourceLineNo">12025</span>                                                byte ox;<a name="line.12025"></a>
+<span class="sourceLineNo">12026</span>                                                ox = (byte) toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12026"></a>
+<span class="sourceLineNo">12027</span>                                                oai8data[it.oIndex] = ox;<a name="line.12027"></a>
+<span class="sourceLineNo">12028</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12028"></a>
+<span class="sourceLineNo">12029</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.12029"></a>
+<span class="sourceLineNo">12030</span>                                                        ox = (byte) toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12030"></a>
+<span class="sourceLineNo">12031</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.12031"></a>
+<span class="sourceLineNo">12032</span>                                                }<a name="line.12032"></a>
+<span class="sourceLineNo">12033</span>                                        }<a name="line.12033"></a>
+<span class="sourceLineNo">12034</span>                                } else {<a name="line.12034"></a>
+<span class="sourceLineNo">12035</span>                                        while (it.hasNext()) {<a name="line.12035"></a>
+<span class="sourceLineNo">12036</span>                                                long iax = it.aLong;<a name="line.12036"></a>
+<span class="sourceLineNo">12037</span>                                                final long ibx = it.bLong;<a name="line.12037"></a>
+<span class="sourceLineNo">12038</span>                                                byte ox;<a name="line.12038"></a>
+<span class="sourceLineNo">12039</span>                                                ox = (byte) (ibx == 0 ? 0 : iax % ibx);<a name="line.12039"></a>
+<span class="sourceLineNo">12040</span>                                                oai8data[it.oIndex] = ox;<a name="line.12040"></a>
+<span class="sourceLineNo">12041</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12041"></a>
+<span class="sourceLineNo">12042</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.12042"></a>
+<span class="sourceLineNo">12043</span>                                                        ox = (byte) (ibx == 0 ? 0 : iax % ibx);<a name="line.12043"></a>
+<span class="sourceLineNo">12044</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.12044"></a>
+<span class="sourceLineNo">12045</span>                                                }<a name="line.12045"></a>
+<span class="sourceLineNo">12046</span>                                        }<a name="line.12046"></a>
+<span class="sourceLineNo">12047</span>                                }<a name="line.12047"></a>
+<span class="sourceLineNo">12048</span>                        } else if (as == 1) {<a name="line.12048"></a>
+<span class="sourceLineNo">12049</span>                                if (it.isOutputDouble()) {<a name="line.12049"></a>
+<span class="sourceLineNo">12050</span>                                        while (it.hasNext()) {<a name="line.12050"></a>
+<span class="sourceLineNo">12051</span>                                                final double iax = it.aDouble;<a name="line.12051"></a>
+<span class="sourceLineNo">12052</span>                                                final double ibx = it.bDouble;<a name="line.12052"></a>
+<span class="sourceLineNo">12053</span>                                                byte ox;<a name="line.12053"></a>
+<span class="sourceLineNo">12054</span>                                                ox = (byte) toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12054"></a>
+<span class="sourceLineNo">12055</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.12055"></a>
+<span class="sourceLineNo">12056</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.12056"></a>
+<span class="sourceLineNo">12057</span>                                                }<a name="line.12057"></a>
+<span class="sourceLineNo">12058</span>                                        }<a name="line.12058"></a>
+<span class="sourceLineNo">12059</span>                                } else {<a name="line.12059"></a>
+<span class="sourceLineNo">12060</span>                                        while (it.hasNext()) {<a name="line.12060"></a>
+<span class="sourceLineNo">12061</span>                                                final long iax = it.aLong;<a name="line.12061"></a>
+<span class="sourceLineNo">12062</span>                                                final long ibx = it.bLong;<a name="line.12062"></a>
+<span class="sourceLineNo">12063</span>                                                byte ox;<a name="line.12063"></a>
+<span class="sourceLineNo">12064</span>                                                ox = (byte) (ibx == 0 ? 0 : iax % ibx);<a name="line.12064"></a>
+<span class="sourceLineNo">12065</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.12065"></a>
+<span class="sourceLineNo">12066</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.12066"></a>
+<span class="sourceLineNo">12067</span>                                                }<a name="line.12067"></a>
+<span class="sourceLineNo">12068</span>                                        }<a name="line.12068"></a>
+<span class="sourceLineNo">12069</span>                                }<a name="line.12069"></a>
+<span class="sourceLineNo">12070</span>                        } else {<a name="line.12070"></a>
+<span class="sourceLineNo">12071</span>                                if (it.isOutputDouble()) {<a name="line.12071"></a>
+<span class="sourceLineNo">12072</span>                                        while (it.hasNext()) {<a name="line.12072"></a>
+<span class="sourceLineNo">12073</span>                                                double iax = it.aDouble;<a name="line.12073"></a>
+<span class="sourceLineNo">12074</span>                                                double ibx = it.bDouble;<a name="line.12074"></a>
+<span class="sourceLineNo">12075</span>                                                byte ox;<a name="line.12075"></a>
+<span class="sourceLineNo">12076</span>                                                ox = (byte) toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12076"></a>
+<span class="sourceLineNo">12077</span>                                                oai8data[it.oIndex] = ox;<a name="line.12077"></a>
+<span class="sourceLineNo">12078</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12078"></a>
+<span class="sourceLineNo">12079</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.12079"></a>
+<span class="sourceLineNo">12080</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.12080"></a>
+<span class="sourceLineNo">12081</span>                                                        ox = (byte) toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12081"></a>
+<span class="sourceLineNo">12082</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.12082"></a>
+<span class="sourceLineNo">12083</span>                                                }<a name="line.12083"></a>
+<span class="sourceLineNo">12084</span>                                        }<a name="line.12084"></a>
+<span class="sourceLineNo">12085</span>                                } else {<a name="line.12085"></a>
+<span class="sourceLineNo">12086</span>                                        while (it.hasNext()) {<a name="line.12086"></a>
+<span class="sourceLineNo">12087</span>                                                long iax = it.aLong;<a name="line.12087"></a>
+<span class="sourceLineNo">12088</span>                                                long ibx = it.bLong;<a name="line.12088"></a>
+<span class="sourceLineNo">12089</span>                                                byte ox;<a name="line.12089"></a>
+<span class="sourceLineNo">12090</span>                                                ox = (byte) (ibx == 0 ? 0 : iax % ibx);<a name="line.12090"></a>
+<span class="sourceLineNo">12091</span>                                                oai8data[it.oIndex] = ox;<a name="line.12091"></a>
+<span class="sourceLineNo">12092</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12092"></a>
+<span class="sourceLineNo">12093</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.12093"></a>
+<span class="sourceLineNo">12094</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.12094"></a>
+<span class="sourceLineNo">12095</span>                                                        ox = (byte) (ibx == 0 ? 0 : iax % ibx);<a name="line.12095"></a>
+<span class="sourceLineNo">12096</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.12096"></a>
+<span class="sourceLineNo">12097</span>                                                }<a name="line.12097"></a>
+<span class="sourceLineNo">12098</span>                                        }<a name="line.12098"></a>
+<span class="sourceLineNo">12099</span>                                }<a name="line.12099"></a>
+<span class="sourceLineNo">12100</span>                        }<a name="line.12100"></a>
+<span class="sourceLineNo">12101</span>                        break;<a name="line.12101"></a>
+<span class="sourceLineNo">12102</span>                case Dataset.ARRAYINT16:<a name="line.12102"></a>
+<span class="sourceLineNo">12103</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.12103"></a>
+<span class="sourceLineNo">12104</span>                        if (is == 1) {<a name="line.12104"></a>
+<span class="sourceLineNo">12105</span>                                if (it.isOutputDouble()) {<a name="line.12105"></a>
+<span class="sourceLineNo">12106</span>                                        while (it.hasNext()) {<a name="line.12106"></a>
+<span class="sourceLineNo">12107</span>                                                final double iax = it.aDouble;<a name="line.12107"></a>
+<span class="sourceLineNo">12108</span>                                                final double ibx = it.bDouble;<a name="line.12108"></a>
+<span class="sourceLineNo">12109</span>                                                short ox;<a name="line.12109"></a>
+<span class="sourceLineNo">12110</span>                                                ox = (short) toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12110"></a>
+<span class="sourceLineNo">12111</span>                                                oai16data[it.oIndex] = ox;<a name="line.12111"></a>
+<span class="sourceLineNo">12112</span>                                        }<a name="line.12112"></a>
+<span class="sourceLineNo">12113</span>                                } else {<a name="line.12113"></a>
+<span class="sourceLineNo">12114</span>                                        while (it.hasNext()) {<a name="line.12114"></a>
+<span class="sourceLineNo">12115</span>                                                final long iax = it.aLong;<a name="line.12115"></a>
+<span class="sourceLineNo">12116</span>                                                final long ibx = it.bLong;<a name="line.12116"></a>
+<span class="sourceLineNo">12117</span>                                                short ox;<a name="line.12117"></a>
+<span class="sourceLineNo">12118</span>                                                ox = (short) (ibx == 0 ? 0 : iax % ibx);<a name="line.12118"></a>
+<span class="sourceLineNo">12119</span>                                                oai16data[it.oIndex] = ox;<a name="line.12119"></a>
+<span class="sourceLineNo">12120</span>                                        }<a name="line.12120"></a>
+<span class="sourceLineNo">12121</span>                                }<a name="line.12121"></a>
+<span class="sourceLineNo">12122</span>                        } else if (as &lt; bs) {<a name="line.12122"></a>
+<span class="sourceLineNo">12123</span>                                if (it.isOutputDouble()) {<a name="line.12123"></a>
+<span class="sourceLineNo">12124</span>                                        while (it.hasNext()) {<a name="line.12124"></a>
+<span class="sourceLineNo">12125</span>                                                final double iax = it.aDouble;<a name="line.12125"></a>
+<span class="sourceLineNo">12126</span>                                                double ibx = it.bDouble;<a name="line.12126"></a>
+<span class="sourceLineNo">12127</span>                                                short ox;<a name="line.12127"></a>
+<span class="sourceLineNo">12128</span>                                                ox = (short) toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12128"></a>
+<span class="sourceLineNo">12129</span>                                                oai16data[it.oIndex] = ox;<a name="line.12129"></a>
+<span class="sourceLineNo">12130</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12130"></a>
+<span class="sourceLineNo">12131</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.12131"></a>
+<span class="sourceLineNo">12132</span>                                                        ox = (short) toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12132"></a>
+<span class="sourceLineNo">12133</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.12133"></a>
+<span class="sourceLineNo">12134</span>                                                }<a name="line.12134"></a>
+<span class="sourceLineNo">12135</span>                                        }<a name="line.12135"></a>
+<span class="sourceLineNo">12136</span>                                } else {<a name="line.12136"></a>
+<span class="sourceLineNo">12137</span>                                        while (it.hasNext()) {<a name="line.12137"></a>
+<span class="sourceLineNo">12138</span>                                                final long iax = it.aLong;<a name="line.12138"></a>
+<span class="sourceLineNo">12139</span>                                                long ibx = it.bLong;<a name="line.12139"></a>
+<span class="sourceLineNo">12140</span>                                                short ox;<a name="line.12140"></a>
+<span class="sourceLineNo">12141</span>                                                ox = (short) (ibx == 0 ? 0 : iax % ibx);<a name="line.12141"></a>
+<span class="sourceLineNo">12142</span>                                                oai16data[it.oIndex] = ox;<a name="line.12142"></a>
+<span class="sourceLineNo">12143</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12143"></a>
+<span class="sourceLineNo">12144</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.12144"></a>
+<span class="sourceLineNo">12145</span>                                                        ox = (short) (ibx == 0 ? 0 : iax % ibx);<a name="line.12145"></a>
+<span class="sourceLineNo">12146</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.12146"></a>
+<span class="sourceLineNo">12147</span>                                                }<a name="line.12147"></a>
+<span class="sourceLineNo">12148</span>                                        }<a name="line.12148"></a>
+<span class="sourceLineNo">12149</span>                                }<a name="line.12149"></a>
+<span class="sourceLineNo">12150</span>                        } else if (as &gt; bs) {<a name="line.12150"></a>
+<span class="sourceLineNo">12151</span>                                if (it.isOutputDouble()) {<a name="line.12151"></a>
+<span class="sourceLineNo">12152</span>                                        while (it.hasNext()) {<a name="line.12152"></a>
+<span class="sourceLineNo">12153</span>                                                double iax = it.aDouble;<a name="line.12153"></a>
+<span class="sourceLineNo">12154</span>                                                final double ibx = it.bDouble;<a name="line.12154"></a>
+<span class="sourceLineNo">12155</span>                                                short ox;<a name="line.12155"></a>
+<span class="sourceLineNo">12156</span>                                                ox = (short) toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12156"></a>
+<span class="sourceLineNo">12157</span>                                                oai16data[it.oIndex] = ox;<a name="line.12157"></a>
+<span class="sourceLineNo">12158</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12158"></a>
+<span class="sourceLineNo">12159</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.12159"></a>
+<span class="sourceLineNo">12160</span>                                                        ox = (short) toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12160"></a>
+<span class="sourceLineNo">12161</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.12161"></a>
+<span class="sourceLineNo">12162</span>                                                }<a name="line.12162"></a>
+<span class="sourceLineNo">12163</span>                                        }<a name="line.12163"></a>
+<span class="sourceLineNo">12164</span>                                } else {<a name="line.12164"></a>
+<span class="sourceLineNo">12165</span>                                        while (it.hasNext()) {<a name="line.12165"></a>
+<span class="sourceLineNo">12166</span>                                                long iax = it.aLong;<a name="line.12166"></a>
+<span class="sourceLineNo">12167</span>                                                final long ibx = it.bLong;<a name="line.12167"></a>
+<span class="sourceLineNo">12168</span>                                                short ox;<a name="line.12168"></a>
+<span class="sourceLineNo">12169</span>                                                ox = (short) (ibx == 0 ? 0 : iax % ibx);<a name="line.12169"></a>
+<span class="sourceLineNo">12170</span>                                                oai16data[it.oIndex] = ox;<a name="line.12170"></a>
+<span class="sourceLineNo">12171</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12171"></a>
+<span class="sourceLineNo">12172</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.12172"></a>
+<span class="sourceLineNo">12173</span>                                                        ox = (short) (ibx == 0 ? 0 : iax % ibx);<a name="line.12173"></a>
+<span class="sourceLineNo">12174</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.12174"></a>
+<span class="sourceLineNo">12175</span>                                                }<a name="line.12175"></a>
+<span class="sourceLineNo">12176</span>                                        }<a name="line.12176"></a>
+<span class="sourceLineNo">12177</span>                                }<a name="line.12177"></a>
+<span class="sourceLineNo">12178</span>                        } else if (as == 1) {<a name="line.12178"></a>
+<span class="sourceLineNo">12179</span>                                if (it.isOutputDouble()) {<a name="line.12179"></a>
+<span class="sourceLineNo">12180</span>                                        while (it.hasNext()) {<a name="line.12180"></a>
+<span class="sourceLineNo">12181</span>                                                final double iax = it.aDouble;<a name="line.12181"></a>
+<span class="sourceLineNo">12182</span>                                                final double ibx = it.bDouble;<a name="line.12182"></a>
+<span class="sourceLineNo">12183</span>                                                short ox;<a name="line.12183"></a>
+<span class="sourceLineNo">12184</span>                                                ox = (short) toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12184"></a>
+<span class="sourceLineNo">12185</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.12185"></a>
+<span class="sourceLineNo">12186</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.12186"></a>
+<span class="sourceLineNo">12187</span>                                                }<a name="line.12187"></a>
+<span class="sourceLineNo">12188</span>                                        }<a name="line.12188"></a>
+<span class="sourceLineNo">12189</span>                                } else {<a name="line.12189"></a>
+<span class="sourceLineNo">12190</span>                                        while (it.hasNext()) {<a name="line.12190"></a>
+<span class="sourceLineNo">12191</span>                                                final long iax = it.aLong;<a name="line.12191"></a>
+<span class="sourceLineNo">12192</span>                                                final long ibx = it.bLong;<a name="line.12192"></a>
+<span class="sourceLineNo">12193</span>                                                short ox;<a name="line.12193"></a>
+<span class="sourceLineNo">12194</span>                                                ox = (short) (ibx == 0 ? 0 : iax % ibx);<a name="line.12194"></a>
+<span class="sourceLineNo">12195</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.12195"></a>
+<span class="sourceLineNo">12196</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.12196"></a>
+<span class="sourceLineNo">12197</span>                                                }<a name="line.12197"></a>
+<span class="sourceLineNo">12198</span>                                        }<a name="line.12198"></a>
+<span class="sourceLineNo">12199</span>                                }<a name="line.12199"></a>
+<span class="sourceLineNo">12200</span>                        } else {<a name="line.12200"></a>
+<span class="sourceLineNo">12201</span>                                if (it.isOutputDouble()) {<a name="line.12201"></a>
+<span class="sourceLineNo">12202</span>                                        while (it.hasNext()) {<a name="line.12202"></a>
+<span class="sourceLineNo">12203</span>                                                double iax = it.aDouble;<a name="line.12203"></a>
+<span class="sourceLineNo">12204</span>                                                double ibx = it.bDouble;<a name="line.12204"></a>
+<span class="sourceLineNo">12205</span>                                                short ox;<a name="line.12205"></a>
+<span class="sourceLineNo">12206</span>                                                ox = (short) toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12206"></a>
+<span class="sourceLineNo">12207</span>                                                oai16data[it.oIndex] = ox;<a name="line.12207"></a>
+<span class="sourceLineNo">12208</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12208"></a>
+<span class="sourceLineNo">12209</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.12209"></a>
+<span class="sourceLineNo">12210</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.12210"></a>
+<span class="sourceLineNo">12211</span>                                                        ox = (short) toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12211"></a>
+<span class="sourceLineNo">12212</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.12212"></a>
+<span class="sourceLineNo">12213</span>                                                }<a name="line.12213"></a>
+<span class="sourceLineNo">12214</span>                                        }<a name="line.12214"></a>
+<span class="sourceLineNo">12215</span>                                } else {<a name="line.12215"></a>
+<span class="sourceLineNo">12216</span>                                        while (it.hasNext()) {<a name="line.12216"></a>
+<span class="sourceLineNo">12217</span>                                                long iax = it.aLong;<a name="line.12217"></a>
+<span class="sourceLineNo">12218</span>                                                long ibx = it.bLong;<a name="line.12218"></a>
+<span class="sourceLineNo">12219</span>                                                short ox;<a name="line.12219"></a>
+<span class="sourceLineNo">12220</span>                                                ox = (short) (ibx == 0 ? 0 : iax % ibx);<a name="line.12220"></a>
+<span class="sourceLineNo">12221</span>                                                oai16data[it.oIndex] = ox;<a name="line.12221"></a>
+<span class="sourceLineNo">12222</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12222"></a>
+<span class="sourceLineNo">12223</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.12223"></a>
+<span class="sourceLineNo">12224</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.12224"></a>
+<span class="sourceLineNo">12225</span>                                                        ox = (short) (ibx == 0 ? 0 : iax % ibx);<a name="line.12225"></a>
+<span class="sourceLineNo">12226</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.12226"></a>
+<span class="sourceLineNo">12227</span>                                                }<a name="line.12227"></a>
+<span class="sourceLineNo">12228</span>                                        }<a name="line.12228"></a>
+<span class="sourceLineNo">12229</span>                                }<a name="line.12229"></a>
+<span class="sourceLineNo">12230</span>                        }<a name="line.12230"></a>
+<span class="sourceLineNo">12231</span>                        break;<a name="line.12231"></a>
+<span class="sourceLineNo">12232</span>                case Dataset.ARRAYINT64:<a name="line.12232"></a>
+<span class="sourceLineNo">12233</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.12233"></a>
+<span class="sourceLineNo">12234</span>                        if (is == 1) {<a name="line.12234"></a>
+<span class="sourceLineNo">12235</span>                                if (it.isOutputDouble()) {<a name="line.12235"></a>
+<span class="sourceLineNo">12236</span>                                        while (it.hasNext()) {<a name="line.12236"></a>
+<span class="sourceLineNo">12237</span>                                                final double iax = it.aDouble;<a name="line.12237"></a>
+<span class="sourceLineNo">12238</span>                                                final double ibx = it.bDouble;<a name="line.12238"></a>
+<span class="sourceLineNo">12239</span>                                                long ox;<a name="line.12239"></a>
+<span class="sourceLineNo">12240</span>                                                ox = toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12240"></a>
+<span class="sourceLineNo">12241</span>                                                oai64data[it.oIndex] = ox;<a name="line.12241"></a>
+<span class="sourceLineNo">12242</span>                                        }<a name="line.12242"></a>
+<span class="sourceLineNo">12243</span>                                } else {<a name="line.12243"></a>
+<span class="sourceLineNo">12244</span>                                        while (it.hasNext()) {<a name="line.12244"></a>
+<span class="sourceLineNo">12245</span>                                                final long iax = it.aLong;<a name="line.12245"></a>
+<span class="sourceLineNo">12246</span>                                                final long ibx = it.bLong;<a name="line.12246"></a>
+<span class="sourceLineNo">12247</span>                                                long ox;<a name="line.12247"></a>
+<span class="sourceLineNo">12248</span>                                                ox = (ibx == 0 ? 0 : iax % ibx);<a name="line.12248"></a>
+<span class="sourceLineNo">12249</span>                                                oai64data[it.oIndex] = ox;<a name="line.12249"></a>
+<span class="sourceLineNo">12250</span>                                        }<a name="line.12250"></a>
+<span class="sourceLineNo">12251</span>                                }<a name="line.12251"></a>
+<span class="sourceLineNo">12252</span>                        } else if (as &lt; bs) {<a name="line.12252"></a>
+<span class="sourceLineNo">12253</span>                                if (it.isOutputDouble()) {<a name="line.12253"></a>
+<span class="sourceLineNo">12254</span>                                        while (it.hasNext()) {<a name="line.12254"></a>
+<span class="sourceLineNo">12255</span>                                                final double iax = it.aDouble;<a name="line.12255"></a>
+<span class="sourceLineNo">12256</span>                                                double ibx = it.bDouble;<a name="line.12256"></a>
+<span class="sourceLineNo">12257</span>                                                long ox;<a name="line.12257"></a>
+<span class="sourceLineNo">12258</span>                                                ox = toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12258"></a>
+<span class="sourceLineNo">12259</span>                                                oai64data[it.oIndex] = ox;<a name="line.12259"></a>
+<span class="sourceLineNo">12260</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12260"></a>
+<span class="sourceLineNo">12261</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.12261"></a>
+<span class="sourceLineNo">12262</span>                                                        ox = toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12262"></a>
+<span class="sourceLineNo">12263</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.12263"></a>
+<span class="sourceLineNo">12264</span>                                                }<a name="line.12264"></a>
+<span class="sourceLineNo">12265</span>                                        }<a name="line.12265"></a>
+<span class="sourceLineNo">12266</span>                                } else {<a name="line.12266"></a>
+<span class="sourceLineNo">12267</span>                                        while (it.hasNext()) {<a name="line.12267"></a>
+<span class="sourceLineNo">12268</span>                                                final long iax = it.aLong;<a name="line.12268"></a>
+<span class="sourceLineNo">12269</span>                                                long ibx = it.bLong;<a name="line.12269"></a>
+<span class="sourceLineNo">12270</span>                                                long ox;<a name="line.12270"></a>
+<span class="sourceLineNo">12271</span>                                                ox = (ibx == 0 ? 0 : iax % ibx);<a name="line.12271"></a>
+<span class="sourceLineNo">12272</span>                                                oai64data[it.oIndex] = ox;<a name="line.12272"></a>
+<span class="sourceLineNo">12273</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12273"></a>
+<span class="sourceLineNo">12274</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.12274"></a>
+<span class="sourceLineNo">12275</span>                                                        ox = (ibx == 0 ? 0 : iax % ibx);<a name="line.12275"></a>
+<span class="sourceLineNo">12276</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.12276"></a>
+<span class="sourceLineNo">12277</span>                                                }<a name="line.12277"></a>
+<span class="sourceLineNo">12278</span>                                        }<a name="line.12278"></a>
+<span class="sourceLineNo">12279</span>                                }<a name="line.12279"></a>
+<span class="sourceLineNo">12280</span>                        } else if (as &gt; bs) {<a name="line.12280"></a>
+<span class="sourceLineNo">12281</span>                                if (it.isOutputDouble()) {<a name="line.12281"></a>
+<span class="sourceLineNo">12282</span>                                        while (it.hasNext()) {<a name="line.12282"></a>
+<span class="sourceLineNo">12283</span>                                                double iax = it.aDouble;<a name="line.12283"></a>
+<span class="sourceLineNo">12284</span>                                                final double ibx = it.bDouble;<a name="line.12284"></a>
+<span class="sourceLineNo">12285</span>                                                long ox;<a name="line.12285"></a>
+<span class="sourceLineNo">12286</span>                                                ox = toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12286"></a>
+<span class="sourceLineNo">12287</span>                                                oai64data[it.oIndex] = ox;<a name="line.12287"></a>
+<span class="sourceLineNo">12288</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12288"></a>
+<span class="sourceLineNo">12289</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.12289"></a>
+<span class="sourceLineNo">12290</span>                                                        ox = toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12290"></a>
+<span class="sourceLineNo">12291</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.12291"></a>
+<span class="sourceLineNo">12292</span>                                                }<a name="line.12292"></a>
+<span class="sourceLineNo">12293</span>                                        }<a name="line.12293"></a>
+<span class="sourceLineNo">12294</span>                                } else {<a name="line.12294"></a>
+<span class="sourceLineNo">12295</span>                                        while (it.hasNext()) {<a name="line.12295"></a>
+<span class="sourceLineNo">12296</span>                                                long iax = it.aLong;<a name="line.12296"></a>
+<span class="sourceLineNo">12297</span>                                                final long ibx = it.bLong;<a name="line.12297"></a>
+<span class="sourceLineNo">12298</span>                                                long ox;<a name="line.12298"></a>
+<span class="sourceLineNo">12299</span>                                                ox = (ibx == 0 ? 0 : iax % ibx);<a name="line.12299"></a>
+<span class="sourceLineNo">12300</span>                                                oai64data[it.oIndex] = ox;<a name="line.12300"></a>
+<span class="sourceLineNo">12301</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12301"></a>
+<span class="sourceLineNo">12302</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.12302"></a>
+<span class="sourceLineNo">12303</span>                                                        ox = (ibx == 0 ? 0 : iax % ibx);<a name="line.12303"></a>
+<span class="sourceLineNo">12304</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.12304"></a>
+<span class="sourceLineNo">12305</span>                                                }<a name="line.12305"></a>
+<span class="sourceLineNo">12306</span>                                        }<a name="line.12306"></a>
+<span class="sourceLineNo">12307</span>                                }<a name="line.12307"></a>
+<span class="sourceLineNo">12308</span>                        } else if (as == 1) {<a name="line.12308"></a>
+<span class="sourceLineNo">12309</span>                                if (it.isOutputDouble()) {<a name="line.12309"></a>
+<span class="sourceLineNo">12310</span>                                        while (it.hasNext()) {<a name="line.12310"></a>
+<span class="sourceLineNo">12311</span>                                                final double iax = it.aDouble;<a name="line.12311"></a>
+<span class="sourceLineNo">12312</span>                                                final double ibx = it.bDouble;<a name="line.12312"></a>
+<span class="sourceLineNo">12313</span>                                                long ox;<a name="line.12313"></a>
+<span class="sourceLineNo">12314</span>                                                ox = toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12314"></a>
+<span class="sourceLineNo">12315</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.12315"></a>
+<span class="sourceLineNo">12316</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.12316"></a>
+<span class="sourceLineNo">12317</span>                                                }<a name="line.12317"></a>
+<span class="sourceLineNo">12318</span>                                        }<a name="line.12318"></a>
+<span class="sourceLineNo">12319</span>                                } else {<a name="line.12319"></a>
+<span class="sourceLineNo">12320</span>                                        while (it.hasNext()) {<a name="line.12320"></a>
+<span class="sourceLineNo">12321</span>                                                final long iax = it.aLong;<a name="line.12321"></a>
+<span class="sourceLineNo">12322</span>                                                final long ibx = it.bLong;<a name="line.12322"></a>
+<span class="sourceLineNo">12323</span>                                                long ox;<a name="line.12323"></a>
+<span class="sourceLineNo">12324</span>                                                ox = (ibx == 0 ? 0 : iax % ibx);<a name="line.12324"></a>
+<span class="sourceLineNo">12325</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.12325"></a>
+<span class="sourceLineNo">12326</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.12326"></a>
+<span class="sourceLineNo">12327</span>                                                }<a name="line.12327"></a>
+<span class="sourceLineNo">12328</span>                                        }<a name="line.12328"></a>
+<span class="sourceLineNo">12329</span>                                }<a name="line.12329"></a>
+<span class="sourceLineNo">12330</span>                        } else {<a name="line.12330"></a>
+<span class="sourceLineNo">12331</span>                                if (it.isOutputDouble()) {<a name="line.12331"></a>
+<span class="sourceLineNo">12332</span>                                        while (it.hasNext()) {<a name="line.12332"></a>
+<span class="sourceLineNo">12333</span>                                                double iax = it.aDouble;<a name="line.12333"></a>
+<span class="sourceLineNo">12334</span>                                                double ibx = it.bDouble;<a name="line.12334"></a>
+<span class="sourceLineNo">12335</span>                                                long ox;<a name="line.12335"></a>
+<span class="sourceLineNo">12336</span>                                                ox = toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12336"></a>
+<span class="sourceLineNo">12337</span>                                                oai64data[it.oIndex] = ox;<a name="line.12337"></a>
+<span class="sourceLineNo">12338</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12338"></a>
+<span class="sourceLineNo">12339</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.12339"></a>
+<span class="sourceLineNo">12340</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.12340"></a>
+<span class="sourceLineNo">12341</span>                                                        ox = toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12341"></a>
+<span class="sourceLineNo">12342</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.12342"></a>
+<span class="sourceLineNo">12343</span>                                                }<a name="line.12343"></a>
+<span class="sourceLineNo">12344</span>                                        }<a name="line.12344"></a>
+<span class="sourceLineNo">12345</span>                                } else {<a name="line.12345"></a>
+<span class="sourceLineNo">12346</span>                                        while (it.hasNext()) {<a name="line.12346"></a>
+<span class="sourceLineNo">12347</span>                                                long iax = it.aLong;<a name="line.12347"></a>
+<span class="sourceLineNo">12348</span>                                                long ibx = it.bLong;<a name="line.12348"></a>
+<span class="sourceLineNo">12349</span>                                                long ox;<a name="line.12349"></a>
+<span class="sourceLineNo">12350</span>                                                ox = (ibx == 0 ? 0 : iax % ibx);<a name="line.12350"></a>
+<span class="sourceLineNo">12351</span>                                                oai64data[it.oIndex] = ox;<a name="line.12351"></a>
+<span class="sourceLineNo">12352</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12352"></a>
+<span class="sourceLineNo">12353</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.12353"></a>
+<span class="sourceLineNo">12354</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.12354"></a>
+<span class="sourceLineNo">12355</span>                                                        ox = (ibx == 0 ? 0 : iax % ibx);<a name="line.12355"></a>
+<span class="sourceLineNo">12356</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.12356"></a>
+<span class="sourceLineNo">12357</span>                                                }<a name="line.12357"></a>
+<span class="sourceLineNo">12358</span>                                        }<a name="line.12358"></a>
+<span class="sourceLineNo">12359</span>                                }<a name="line.12359"></a>
+<span class="sourceLineNo">12360</span>                        }<a name="line.12360"></a>
+<span class="sourceLineNo">12361</span>                        break;<a name="line.12361"></a>
+<span class="sourceLineNo">12362</span>                case Dataset.ARRAYINT32:<a name="line.12362"></a>
+<span class="sourceLineNo">12363</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.12363"></a>
+<span class="sourceLineNo">12364</span>                        if (is == 1) {<a name="line.12364"></a>
+<span class="sourceLineNo">12365</span>                                if (it.isOutputDouble()) {<a name="line.12365"></a>
+<span class="sourceLineNo">12366</span>                                        while (it.hasNext()) {<a name="line.12366"></a>
+<span class="sourceLineNo">12367</span>                                                final double iax = it.aDouble;<a name="line.12367"></a>
+<span class="sourceLineNo">12368</span>                                                final double ibx = it.bDouble;<a name="line.12368"></a>
+<span class="sourceLineNo">12369</span>                                                int ox;<a name="line.12369"></a>
+<span class="sourceLineNo">12370</span>                                                ox = (int) toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12370"></a>
+<span class="sourceLineNo">12371</span>                                                oai32data[it.oIndex] = ox;<a name="line.12371"></a>
+<span class="sourceLineNo">12372</span>                                        }<a name="line.12372"></a>
+<span class="sourceLineNo">12373</span>                                } else {<a name="line.12373"></a>
+<span class="sourceLineNo">12374</span>                                        while (it.hasNext()) {<a name="line.12374"></a>
+<span class="sourceLineNo">12375</span>                                                final long iax = it.aLong;<a name="line.12375"></a>
+<span class="sourceLineNo">12376</span>                                                final long ibx = it.bLong;<a name="line.12376"></a>
+<span class="sourceLineNo">12377</span>                                                int ox;<a name="line.12377"></a>
+<span class="sourceLineNo">12378</span>                                                ox = (int) (ibx == 0 ? 0 : iax % ibx);<a name="line.12378"></a>
+<span class="sourceLineNo">12379</span>                                                oai32data[it.oIndex] = ox;<a name="line.12379"></a>
+<span class="sourceLineNo">12380</span>                                        }<a name="line.12380"></a>
+<span class="sourceLineNo">12381</span>                                }<a name="line.12381"></a>
+<span class="sourceLineNo">12382</span>                        } else if (as &lt; bs) {<a name="line.12382"></a>
+<span class="sourceLineNo">12383</span>                                if (it.isOutputDouble()) {<a name="line.12383"></a>
+<span class="sourceLineNo">12384</span>                                        while (it.hasNext()) {<a name="line.12384"></a>
+<span class="sourceLineNo">12385</span>                                                final double iax = it.aDouble;<a name="line.12385"></a>
+<span class="sourceLineNo">12386</span>                                                double ibx = it.bDouble;<a name="line.12386"></a>
+<span class="sourceLineNo">12387</span>                                                int ox;<a name="line.12387"></a>
+<span class="sourceLineNo">12388</span>                                                ox = (int) toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12388"></a>
+<span class="sourceLineNo">12389</span>                                                oai32data[it.oIndex] = ox;<a name="line.12389"></a>
+<span class="sourceLineNo">12390</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12390"></a>
+<span class="sourceLineNo">12391</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.12391"></a>
+<span class="sourceLineNo">12392</span>                                                        ox = (int) toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12392"></a>
+<span class="sourceLineNo">12393</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.12393"></a>
+<span class="sourceLineNo">12394</span>                                                }<a name="line.12394"></a>
+<span class="sourceLineNo">12395</span>                                        }<a name="line.12395"></a>
+<span class="sourceLineNo">12396</span>                                } else {<a name="line.12396"></a>
+<span class="sourceLineNo">12397</span>                                        while (it.hasNext()) {<a name="line.12397"></a>
+<span class="sourceLineNo">12398</span>                                                final long iax = it.aLong;<a name="line.12398"></a>
+<span class="sourceLineNo">12399</span>                                                long ibx = it.bLong;<a name="line.12399"></a>
+<span class="sourceLineNo">12400</span>                                                int ox;<a name="line.12400"></a>
+<span class="sourceLineNo">12401</span>                                                ox = (int) (ibx == 0 ? 0 : iax % ibx);<a name="line.12401"></a>
+<span class="sourceLineNo">12402</span>                                                oai32data[it.oIndex] = ox;<a name="line.12402"></a>
+<span class="sourceLineNo">12403</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12403"></a>
+<span class="sourceLineNo">12404</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.12404"></a>
+<span class="sourceLineNo">12405</span>                                                        ox = (int) (ibx == 0 ? 0 : iax % ibx);<a name="line.12405"></a>
+<span class="sourceLineNo">12406</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.12406"></a>
+<span class="sourceLineNo">12407</span>                                                }<a name="line.12407"></a>
+<span class="sourceLineNo">12408</span>                                        }<a name="line.12408"></a>
+<span class="sourceLineNo">12409</span>                                }<a name="line.12409"></a>
+<span class="sourceLineNo">12410</span>                        } else if (as &gt; bs) {<a name="line.12410"></a>
+<span class="sourceLineNo">12411</span>                                if (it.isOutputDouble()) {<a name="line.12411"></a>
+<span class="sourceLineNo">12412</span>                                        while (it.hasNext()) {<a name="line.12412"></a>
+<span class="sourceLineNo">12413</span>                                                double iax = it.aDouble;<a name="line.12413"></a>
+<span class="sourceLineNo">12414</span>                                                final double ibx = it.bDouble;<a name="line.12414"></a>
+<span class="sourceLineNo">12415</span>                                                int ox;<a name="line.12415"></a>
+<span class="sourceLineNo">12416</span>                                                ox = (int) toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12416"></a>
+<span class="sourceLineNo">12417</span>                                                oai32data[it.oIndex] = ox;<a name="line.12417"></a>
+<span class="sourceLineNo">12418</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12418"></a>
+<span class="sourceLineNo">12419</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.12419"></a>
+<span class="sourceLineNo">12420</span>                                                        ox = (int) toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12420"></a>
+<span class="sourceLineNo">12421</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.12421"></a>
+<span class="sourceLineNo">12422</span>                                                }<a name="line.12422"></a>
+<span class="sourceLineNo">12423</span>                                        }<a name="line.12423"></a>
+<span class="sourceLineNo">12424</span>                                } else {<a name="line.12424"></a>
+<span class="sourceLineNo">12425</span>                                        while (it.hasNext()) {<a name="line.12425"></a>
+<span class="sourceLineNo">12426</span>                                                long iax = it.aLong;<a name="line.12426"></a>
+<span class="sourceLineNo">12427</span>                                                final long ibx = it.bLong;<a name="line.12427"></a>
+<span class="sourceLineNo">12428</span>                                                int ox;<a name="line.12428"></a>
+<span class="sourceLineNo">12429</span>                                                ox = (int) (ibx == 0 ? 0 : iax % ibx);<a name="line.12429"></a>
+<span class="sourceLineNo">12430</span>                                                oai32data[it.oIndex] = ox;<a name="line.12430"></a>
+<span class="sourceLineNo">12431</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12431"></a>
+<span class="sourceLineNo">12432</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.12432"></a>
+<span class="sourceLineNo">12433</span>                                                        ox = (int) (ibx == 0 ? 0 : iax % ibx);<a name="line.12433"></a>
+<span class="sourceLineNo">12434</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.12434"></a>
+<span class="sourceLineNo">12435</span>                                                }<a name="line.12435"></a>
+<span class="sourceLineNo">12436</span>                                        }<a name="line.12436"></a>
+<span class="sourceLineNo">12437</span>                                }<a name="line.12437"></a>
+<span class="sourceLineNo">12438</span>                        } else if (as == 1) {<a name="line.12438"></a>
+<span class="sourceLineNo">12439</span>                                if (it.isOutputDouble()) {<a name="line.12439"></a>
+<span class="sourceLineNo">12440</span>                                        while (it.hasNext()) {<a name="line.12440"></a>
+<span class="sourceLineNo">12441</span>                                                final double iax = it.aDouble;<a name="line.12441"></a>
+<span class="sourceLineNo">12442</span>                                                final double ibx = it.bDouble;<a name="line.12442"></a>
+<span class="sourceLineNo">12443</span>                                                int ox;<a name="line.12443"></a>
+<span class="sourceLineNo">12444</span>                                                ox = (int) toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12444"></a>
+<span class="sourceLineNo">12445</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.12445"></a>
+<span class="sourceLineNo">12446</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.12446"></a>
+<span class="sourceLineNo">12447</span>                                                }<a name="line.12447"></a>
+<span class="sourceLineNo">12448</span>                                        }<a name="line.12448"></a>
+<span class="sourceLineNo">12449</span>                                } else {<a name="line.12449"></a>
+<span class="sourceLineNo">12450</span>                                        while (it.hasNext()) {<a name="line.12450"></a>
+<span class="sourceLineNo">12451</span>                                                final long iax = it.aLong;<a name="line.12451"></a>
+<span class="sourceLineNo">12452</span>                                                final long ibx = it.bLong;<a name="line.12452"></a>
+<span class="sourceLineNo">12453</span>                                                int ox;<a name="line.12453"></a>
+<span class="sourceLineNo">12454</span>                                                ox = (int) (ibx == 0 ? 0 : iax % ibx);<a name="line.12454"></a>
+<span class="sourceLineNo">12455</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.12455"></a>
+<span class="sourceLineNo">12456</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.12456"></a>
+<span class="sourceLineNo">12457</span>                                                }<a name="line.12457"></a>
+<span class="sourceLineNo">12458</span>                                        }<a name="line.12458"></a>
+<span class="sourceLineNo">12459</span>                                }<a name="line.12459"></a>
+<span class="sourceLineNo">12460</span>                        } else {<a name="line.12460"></a>
+<span class="sourceLineNo">12461</span>                                if (it.isOutputDouble()) {<a name="line.12461"></a>
+<span class="sourceLineNo">12462</span>                                        while (it.hasNext()) {<a name="line.12462"></a>
+<span class="sourceLineNo">12463</span>                                                double iax = it.aDouble;<a name="line.12463"></a>
+<span class="sourceLineNo">12464</span>                                                double ibx = it.bDouble;<a name="line.12464"></a>
+<span class="sourceLineNo">12465</span>                                                int ox;<a name="line.12465"></a>
+<span class="sourceLineNo">12466</span>                                                ox = (int) toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12466"></a>
+<span class="sourceLineNo">12467</span>                                                oai32data[it.oIndex] = ox;<a name="line.12467"></a>
+<span class="sourceLineNo">12468</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12468"></a>
+<span class="sourceLineNo">12469</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.12469"></a>
+<span class="sourceLineNo">12470</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.12470"></a>
+<span class="sourceLineNo">12471</span>                                                        ox = (int) toLong(ibx == 0 ? 0 : iax % ibx);<a name="line.12471"></a>
+<span class="sourceLineNo">12472</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.12472"></a>
+<span class="sourceLineNo">12473</span>                                                }<a name="line.12473"></a>
+<span class="sourceLineNo">12474</span>                                        }<a name="line.12474"></a>
+<span class="sourceLineNo">12475</span>                                } else {<a name="line.12475"></a>
+<span class="sourceLineNo">12476</span>                                        while (it.hasNext()) {<a name="line.12476"></a>
+<span class="sourceLineNo">12477</span>                                                long iax = it.aLong;<a name="line.12477"></a>
+<span class="sourceLineNo">12478</span>                                                long ibx = it.bLong;<a name="line.12478"></a>
+<span class="sourceLineNo">12479</span>                                                int ox;<a name="line.12479"></a>
+<span class="sourceLineNo">12480</span>                                                ox = (int) (ibx == 0 ? 0 : iax % ibx);<a name="line.12480"></a>
+<span class="sourceLineNo">12481</span>                                                oai32data[it.oIndex] = ox;<a name="line.12481"></a>
+<span class="sourceLineNo">12482</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12482"></a>
+<span class="sourceLineNo">12483</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.12483"></a>
+<span class="sourceLineNo">12484</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.12484"></a>
+<span class="sourceLineNo">12485</span>                                                        ox = (int) (ibx == 0 ? 0 : iax % ibx);<a name="line.12485"></a>
+<span class="sourceLineNo">12486</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.12486"></a>
+<span class="sourceLineNo">12487</span>                                                }<a name="line.12487"></a>
+<span class="sourceLineNo">12488</span>                                        }<a name="line.12488"></a>
+<span class="sourceLineNo">12489</span>                                }<a name="line.12489"></a>
+<span class="sourceLineNo">12490</span>                        }<a name="line.12490"></a>
+<span class="sourceLineNo">12491</span>                        break;<a name="line.12491"></a>
+<span class="sourceLineNo">12492</span>                case Dataset.FLOAT32:<a name="line.12492"></a>
+<span class="sourceLineNo">12493</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.12493"></a>
+<span class="sourceLineNo">12494</span>                        if (it.isOutputDouble()) {<a name="line.12494"></a>
+<span class="sourceLineNo">12495</span>                                while (it.hasNext()) {<a name="line.12495"></a>
+<span class="sourceLineNo">12496</span>                                        final double iax = it.aDouble;<a name="line.12496"></a>
+<span class="sourceLineNo">12497</span>                                        final double ibx = it.bDouble;<a name="line.12497"></a>
+<span class="sourceLineNo">12498</span>                                        float ox;<a name="line.12498"></a>
+<span class="sourceLineNo">12499</span>                                        ox = (float) (iax % ibx);<a name="line.12499"></a>
+<span class="sourceLineNo">12500</span>                                        of32data[it.oIndex] = ox;<a name="line.12500"></a>
+<span class="sourceLineNo">12501</span>                                }<a name="line.12501"></a>
+<span class="sourceLineNo">12502</span>                        } else {<a name="line.12502"></a>
+<span class="sourceLineNo">12503</span>                                while (it.hasNext()) {<a name="line.12503"></a>
+<span class="sourceLineNo">12504</span>                                        final long iax = it.aLong;<a name="line.12504"></a>
+<span class="sourceLineNo">12505</span>                                        final long ibx = it.bLong;<a name="line.12505"></a>
+<span class="sourceLineNo">12506</span>                                        float ox;<a name="line.12506"></a>
+<span class="sourceLineNo">12507</span>                                        ox = (iax % ibx);<a name="line.12507"></a>
+<span class="sourceLineNo">12508</span>                                        of32data[it.oIndex] = ox;<a name="line.12508"></a>
+<span class="sourceLineNo">12509</span>                                }<a name="line.12509"></a>
+<span class="sourceLineNo">12510</span>                        }<a name="line.12510"></a>
+<span class="sourceLineNo">12511</span>                        break;<a name="line.12511"></a>
+<span class="sourceLineNo">12512</span>                case Dataset.FLOAT64:<a name="line.12512"></a>
+<span class="sourceLineNo">12513</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.12513"></a>
+<span class="sourceLineNo">12514</span>                        if (it.isOutputDouble()) {<a name="line.12514"></a>
+<span class="sourceLineNo">12515</span>                                while (it.hasNext()) {<a name="line.12515"></a>
+<span class="sourceLineNo">12516</span>                                        final double iax = it.aDouble;<a name="line.12516"></a>
+<span class="sourceLineNo">12517</span>                                        final double ibx = it.bDouble;<a name="line.12517"></a>
+<span class="sourceLineNo">12518</span>                                        double ox;<a name="line.12518"></a>
+<span class="sourceLineNo">12519</span>                                        ox = (iax % ibx);<a name="line.12519"></a>
+<span class="sourceLineNo">12520</span>                                        of64data[it.oIndex] = ox;<a name="line.12520"></a>
+<span class="sourceLineNo">12521</span>                                }<a name="line.12521"></a>
+<span class="sourceLineNo">12522</span>                        } else {<a name="line.12522"></a>
+<span class="sourceLineNo">12523</span>                                while (it.hasNext()) {<a name="line.12523"></a>
+<span class="sourceLineNo">12524</span>                                        final long iax = it.aLong;<a name="line.12524"></a>
+<span class="sourceLineNo">12525</span>                                        final long ibx = it.bLong;<a name="line.12525"></a>
+<span class="sourceLineNo">12526</span>                                        double ox;<a name="line.12526"></a>
+<span class="sourceLineNo">12527</span>                                        ox = (iax % ibx);<a name="line.12527"></a>
+<span class="sourceLineNo">12528</span>                                        of64data[it.oIndex] = ox;<a name="line.12528"></a>
+<span class="sourceLineNo">12529</span>                                }<a name="line.12529"></a>
+<span class="sourceLineNo">12530</span>                        }<a name="line.12530"></a>
+<span class="sourceLineNo">12531</span>                        break;<a name="line.12531"></a>
+<span class="sourceLineNo">12532</span>                case Dataset.ARRAYFLOAT32:<a name="line.12532"></a>
+<span class="sourceLineNo">12533</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.12533"></a>
+<span class="sourceLineNo">12534</span>                        if (is == 1) {<a name="line.12534"></a>
+<span class="sourceLineNo">12535</span>                                if (it.isOutputDouble()) {<a name="line.12535"></a>
+<span class="sourceLineNo">12536</span>                                        while (it.hasNext()) {<a name="line.12536"></a>
+<span class="sourceLineNo">12537</span>                                                final double iax = it.aDouble;<a name="line.12537"></a>
+<span class="sourceLineNo">12538</span>                                                final double ibx = it.bDouble;<a name="line.12538"></a>
+<span class="sourceLineNo">12539</span>                                                float ox;<a name="line.12539"></a>
+<span class="sourceLineNo">12540</span>                                                ox = (float) (iax % ibx);<a name="line.12540"></a>
+<span class="sourceLineNo">12541</span>                                                oaf32data[it.oIndex] = ox;<a name="line.12541"></a>
+<span class="sourceLineNo">12542</span>                                        }<a name="line.12542"></a>
+<span class="sourceLineNo">12543</span>                                } else {<a name="line.12543"></a>
+<span class="sourceLineNo">12544</span>                                        while (it.hasNext()) {<a name="line.12544"></a>
+<span class="sourceLineNo">12545</span>                                                final long iax = it.aLong;<a name="line.12545"></a>
+<span class="sourceLineNo">12546</span>                                                final long ibx = it.bLong;<a name="line.12546"></a>
+<span class="sourceLineNo">12547</span>                                                float ox;<a name="line.12547"></a>
+<span class="sourceLineNo">12548</span>                                                ox = (iax % ibx);<a name="line.12548"></a>
+<span class="sourceLineNo">12549</span>                                                oaf32data[it.oIndex] = ox;<a name="line.12549"></a>
+<span class="sourceLineNo">12550</span>                                        }<a name="line.12550"></a>
+<span class="sourceLineNo">12551</span>                                }<a name="line.12551"></a>
+<span class="sourceLineNo">12552</span>                        } else if (as &lt; bs) {<a name="line.12552"></a>
+<span class="sourceLineNo">12553</span>                                if (it.isOutputDouble()) {<a name="line.12553"></a>
+<span class="sourceLineNo">12554</span>                                        while (it.hasNext()) {<a name="line.12554"></a>
+<span class="sourceLineNo">12555</span>                                                final double iax = it.aDouble;<a name="line.12555"></a>
+<span class="sourceLineNo">12556</span>                                                double ibx = it.bDouble;<a name="line.12556"></a>
+<span class="sourceLineNo">12557</span>                                                float ox;<a name="line.12557"></a>
+<span class="sourceLineNo">12558</span>                                                ox = (float) (iax % ibx);<a name="line.12558"></a>
+<span class="sourceLineNo">12559</span>                                                oaf32data[it.oIndex] = ox;<a name="line.12559"></a>
+<span class="sourceLineNo">12560</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12560"></a>
+<span class="sourceLineNo">12561</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.12561"></a>
+<span class="sourceLineNo">12562</span>                                                        ox = (float) (iax % ibx);<a name="line.12562"></a>
+<span class="sourceLineNo">12563</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.12563"></a>
+<span class="sourceLineNo">12564</span>                                                }<a name="line.12564"></a>
+<span class="sourceLineNo">12565</span>                                        }<a name="line.12565"></a>
+<span class="sourceLineNo">12566</span>                                } else {<a name="line.12566"></a>
+<span class="sourceLineNo">12567</span>                                        while (it.hasNext()) {<a name="line.12567"></a>
+<span class="sourceLineNo">12568</span>                                                final long iax = it.aLong;<a name="line.12568"></a>
+<span class="sourceLineNo">12569</span>                                                long ibx = it.bLong;<a name="line.12569"></a>
+<span class="sourceLineNo">12570</span>                                                float ox;<a name="line.12570"></a>
+<span class="sourceLineNo">12571</span>                                                ox = (iax % ibx);<a name="line.12571"></a>
+<span class="sourceLineNo">12572</span>                                                oaf32data[it.oIndex] = ox;<a name="line.12572"></a>
+<span class="sourceLineNo">12573</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12573"></a>
+<span class="sourceLineNo">12574</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.12574"></a>
+<span class="sourceLineNo">12575</span>                                                        ox = (iax % ibx);<a name="line.12575"></a>
+<span class="sourceLineNo">12576</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.12576"></a>
+<span class="sourceLineNo">12577</span>                                                }<a name="line.12577"></a>
+<span class="sourceLineNo">12578</span>                                        }<a name="line.12578"></a>
+<span class="sourceLineNo">12579</span>                                }<a name="line.12579"></a>
+<span class="sourceLineNo">12580</span>                        } else if (as &gt; bs) {<a name="line.12580"></a>
+<span class="sourceLineNo">12581</span>                                if (it.isOutputDouble()) {<a name="line.12581"></a>
+<span class="sourceLineNo">12582</span>                                        while (it.hasNext()) {<a name="line.12582"></a>
+<span class="sourceLineNo">12583</span>                                                double iax = it.aDouble;<a name="line.12583"></a>
+<span class="sourceLineNo">12584</span>                                                final double ibx = it.bDouble;<a name="line.12584"></a>
+<span class="sourceLineNo">12585</span>                                                float ox;<a name="line.12585"></a>
+<span class="sourceLineNo">12586</span>                                                ox = (float) (iax % ibx);<a name="line.12586"></a>
+<span class="sourceLineNo">12587</span>                                                oaf32data[it.oIndex] = ox;<a name="line.12587"></a>
+<span class="sourceLineNo">12588</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12588"></a>
+<span class="sourceLineNo">12589</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.12589"></a>
+<span class="sourceLineNo">12590</span>                                                        ox = (float) (iax % ibx);<a name="line.12590"></a>
+<span class="sourceLineNo">12591</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.12591"></a>
+<span class="sourceLineNo">12592</span>                                                }<a name="line.12592"></a>
+<span class="sourceLineNo">12593</span>                                        }<a name="line.12593"></a>
+<span class="sourceLineNo">12594</span>                                } else {<a name="line.12594"></a>
+<span class="sourceLineNo">12595</span>                                        while (it.hasNext()) {<a name="line.12595"></a>
+<span class="sourceLineNo">12596</span>                                                long iax = it.aLong;<a name="line.12596"></a>
+<span class="sourceLineNo">12597</span>                                                final long ibx = it.bLong;<a name="line.12597"></a>
+<span class="sourceLineNo">12598</span>                                                float ox;<a name="line.12598"></a>
+<span class="sourceLineNo">12599</span>                                                ox = (iax % ibx);<a name="line.12599"></a>
+<span class="sourceLineNo">12600</span>                                                oaf32data[it.oIndex] = ox;<a name="line.12600"></a>
+<span class="sourceLineNo">12601</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12601"></a>
+<span class="sourceLineNo">12602</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.12602"></a>
+<span class="sourceLineNo">12603</span>                                                        ox = (iax % ibx);<a name="line.12603"></a>
+<span class="sourceLineNo">12604</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.12604"></a>
+<span class="sourceLineNo">12605</span>                                                }<a name="line.12605"></a>
+<span class="sourceLineNo">12606</span>                                        }<a name="line.12606"></a>
+<span class="sourceLineNo">12607</span>                                }<a name="line.12607"></a>
+<span class="sourceLineNo">12608</span>                        } else if (as == 1) {<a name="line.12608"></a>
+<span class="sourceLineNo">12609</span>                                if (it.isOutputDouble()) {<a name="line.12609"></a>
+<span class="sourceLineNo">12610</span>                                        while (it.hasNext()) {<a name="line.12610"></a>
+<span class="sourceLineNo">12611</span>                                                final double iax = it.aDouble;<a name="line.12611"></a>
+<span class="sourceLineNo">12612</span>                                                final double ibx = it.bDouble;<a name="line.12612"></a>
+<span class="sourceLineNo">12613</span>                                                float ox;<a name="line.12613"></a>
+<span class="sourceLineNo">12614</span>                                                ox = (float) (iax % ibx);<a name="line.12614"></a>
+<span class="sourceLineNo">12615</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.12615"></a>
+<span class="sourceLineNo">12616</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.12616"></a>
+<span class="sourceLineNo">12617</span>                                                }<a name="line.12617"></a>
+<span class="sourceLineNo">12618</span>                                        }<a name="line.12618"></a>
+<span class="sourceLineNo">12619</span>                                } else {<a name="line.12619"></a>
+<span class="sourceLineNo">12620</span>                                        while (it.hasNext()) {<a name="line.12620"></a>
+<span class="sourceLineNo">12621</span>                                                final long iax = it.aLong;<a name="line.12621"></a>
+<span class="sourceLineNo">12622</span>                                                final long ibx = it.bLong;<a name="line.12622"></a>
+<span class="sourceLineNo">12623</span>                                                float ox;<a name="line.12623"></a>
+<span class="sourceLineNo">12624</span>                                                ox = (iax % ibx);<a name="line.12624"></a>
+<span class="sourceLineNo">12625</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.12625"></a>
+<span class="sourceLineNo">12626</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.12626"></a>
+<span class="sourceLineNo">12627</span>                                                }<a name="line.12627"></a>
+<span class="sourceLineNo">12628</span>                                        }<a name="line.12628"></a>
+<span class="sourceLineNo">12629</span>                                }<a name="line.12629"></a>
+<span class="sourceLineNo">12630</span>                        } else {<a name="line.12630"></a>
+<span class="sourceLineNo">12631</span>                                if (it.isOutputDouble()) {<a name="line.12631"></a>
+<span class="sourceLineNo">12632</span>                                        while (it.hasNext()) {<a name="line.12632"></a>
+<span class="sourceLineNo">12633</span>                                                double iax = it.aDouble;<a name="line.12633"></a>
+<span class="sourceLineNo">12634</span>                                                double ibx = it.bDouble;<a name="line.12634"></a>
+<span class="sourceLineNo">12635</span>                                                float ox;<a name="line.12635"></a>
+<span class="sourceLineNo">12636</span>                                                ox = (float) (iax % ibx);<a name="line.12636"></a>
+<span class="sourceLineNo">12637</span>                                                oaf32data[it.oIndex] = ox;<a name="line.12637"></a>
+<span class="sourceLineNo">12638</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12638"></a>
+<span class="sourceLineNo">12639</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.12639"></a>
+<span class="sourceLineNo">12640</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.12640"></a>
+<span class="sourceLineNo">12641</span>                                                        ox = (float) (iax % ibx);<a name="line.12641"></a>
+<span class="sourceLineNo">12642</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.12642"></a>
+<span class="sourceLineNo">12643</span>                                                }<a name="line.12643"></a>
+<span class="sourceLineNo">12644</span>                                        }<a name="line.12644"></a>
+<span class="sourceLineNo">12645</span>                                } else {<a name="line.12645"></a>
+<span class="sourceLineNo">12646</span>                                        while (it.hasNext()) {<a name="line.12646"></a>
+<span class="sourceLineNo">12647</span>                                                long iax = it.aLong;<a name="line.12647"></a>
+<span class="sourceLineNo">12648</span>                                                long ibx = it.bLong;<a name="line.12648"></a>
+<span class="sourceLineNo">12649</span>                                                float ox;<a name="line.12649"></a>
+<span class="sourceLineNo">12650</span>                                                ox = (iax % ibx);<a name="line.12650"></a>
+<span class="sourceLineNo">12651</span>                                                oaf32data[it.oIndex] = ox;<a name="line.12651"></a>
+<span class="sourceLineNo">12652</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12652"></a>
+<span class="sourceLineNo">12653</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.12653"></a>
+<span class="sourceLineNo">12654</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.12654"></a>
+<span class="sourceLineNo">12655</span>                                                        ox = (iax % ibx);<a name="line.12655"></a>
+<span class="sourceLineNo">12656</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.12656"></a>
+<span class="sourceLineNo">12657</span>                                                }<a name="line.12657"></a>
+<span class="sourceLineNo">12658</span>                                        }<a name="line.12658"></a>
+<span class="sourceLineNo">12659</span>                                }<a name="line.12659"></a>
+<span class="sourceLineNo">12660</span>                        }<a name="line.12660"></a>
+<span class="sourceLineNo">12661</span>                        break;<a name="line.12661"></a>
+<span class="sourceLineNo">12662</span>                case Dataset.ARRAYFLOAT64:<a name="line.12662"></a>
+<span class="sourceLineNo">12663</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.12663"></a>
+<span class="sourceLineNo">12664</span>                        if (is == 1) {<a name="line.12664"></a>
+<span class="sourceLineNo">12665</span>                                if (it.isOutputDouble()) {<a name="line.12665"></a>
+<span class="sourceLineNo">12666</span>                                        while (it.hasNext()) {<a name="line.12666"></a>
+<span class="sourceLineNo">12667</span>                                                final double iax = it.aDouble;<a name="line.12667"></a>
+<span class="sourceLineNo">12668</span>                                                final double ibx = it.bDouble;<a name="line.12668"></a>
+<span class="sourceLineNo">12669</span>                                                double ox;<a name="line.12669"></a>
+<span class="sourceLineNo">12670</span>                                                ox = (iax % ibx);<a name="line.12670"></a>
+<span class="sourceLineNo">12671</span>                                                oaf64data[it.oIndex] = ox;<a name="line.12671"></a>
+<span class="sourceLineNo">12672</span>                                        }<a name="line.12672"></a>
+<span class="sourceLineNo">12673</span>                                } else {<a name="line.12673"></a>
+<span class="sourceLineNo">12674</span>                                        while (it.hasNext()) {<a name="line.12674"></a>
+<span class="sourceLineNo">12675</span>                                                final long iax = it.aLong;<a name="line.12675"></a>
+<span class="sourceLineNo">12676</span>                                                final long ibx = it.bLong;<a name="line.12676"></a>
+<span class="sourceLineNo">12677</span>                                                double ox;<a name="line.12677"></a>
+<span class="sourceLineNo">12678</span>                                                ox = (iax % ibx);<a name="line.12678"></a>
+<span class="sourceLineNo">12679</span>                                                oaf64data[it.oIndex] = ox;<a name="line.12679"></a>
+<span class="sourceLineNo">12680</span>                                        }<a name="line.12680"></a>
+<span class="sourceLineNo">12681</span>                                }<a name="line.12681"></a>
+<span class="sourceLineNo">12682</span>                        } else if (as &lt; bs) {<a name="line.12682"></a>
+<span class="sourceLineNo">12683</span>                                if (it.isOutputDouble()) {<a name="line.12683"></a>
+<span class="sourceLineNo">12684</span>                                        while (it.hasNext()) {<a name="line.12684"></a>
+<span class="sourceLineNo">12685</span>                                                final double iax = it.aDouble;<a name="line.12685"></a>
+<span class="sourceLineNo">12686</span>                                                double ibx = it.bDouble;<a name="line.12686"></a>
+<span class="sourceLineNo">12687</span>                                                double ox;<a name="line.12687"></a>
+<span class="sourceLineNo">12688</span>                                                ox = (iax % ibx);<a name="line.12688"></a>
+<span class="sourceLineNo">12689</span>                                                oaf64data[it.oIndex] = ox;<a name="line.12689"></a>
+<span class="sourceLineNo">12690</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12690"></a>
+<span class="sourceLineNo">12691</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.12691"></a>
+<span class="sourceLineNo">12692</span>                                                        ox = (iax % ibx);<a name="line.12692"></a>
+<span class="sourceLineNo">12693</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.12693"></a>
+<span class="sourceLineNo">12694</span>                                                }<a name="line.12694"></a>
+<span class="sourceLineNo">12695</span>                                        }<a name="line.12695"></a>
+<span class="sourceLineNo">12696</span>                                } else {<a name="line.12696"></a>
+<span class="sourceLineNo">12697</span>                                        while (it.hasNext()) {<a name="line.12697"></a>
+<span class="sourceLineNo">12698</span>                                                final long iax = it.aLong;<a name="line.12698"></a>
+<span class="sourceLineNo">12699</span>                                                long ibx = it.bLong;<a name="line.12699"></a>
+<span class="sourceLineNo">12700</span>                                                double ox;<a name="line.12700"></a>
+<span class="sourceLineNo">12701</span>                                                ox = (iax % ibx);<a name="line.12701"></a>
+<span class="sourceLineNo">12702</span>                                                oaf64data[it.oIndex] = ox;<a name="line.12702"></a>
+<span class="sourceLineNo">12703</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12703"></a>
+<span class="sourceLineNo">12704</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.12704"></a>
+<span class="sourceLineNo">12705</span>                                                        ox = (iax % ibx);<a name="line.12705"></a>
+<span class="sourceLineNo">12706</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.12706"></a>
+<span class="sourceLineNo">12707</span>                                                }<a name="line.12707"></a>
+<span class="sourceLineNo">12708</span>                                        }<a name="line.12708"></a>
+<span class="sourceLineNo">12709</span>                                }<a name="line.12709"></a>
+<span class="sourceLineNo">12710</span>                        } else if (as &gt; bs) {<a name="line.12710"></a>
+<span class="sourceLineNo">12711</span>                                if (it.isOutputDouble()) {<a name="line.12711"></a>
+<span class="sourceLineNo">12712</span>                                        while (it.hasNext()) {<a name="line.12712"></a>
+<span class="sourceLineNo">12713</span>                                                double iax = it.aDouble;<a name="line.12713"></a>
+<span class="sourceLineNo">12714</span>                                                final double ibx = it.bDouble;<a name="line.12714"></a>
+<span class="sourceLineNo">12715</span>                                                double ox;<a name="line.12715"></a>
+<span class="sourceLineNo">12716</span>                                                ox = (iax % ibx);<a name="line.12716"></a>
+<span class="sourceLineNo">12717</span>                                                oaf64data[it.oIndex] = ox;<a name="line.12717"></a>
+<span class="sourceLineNo">12718</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12718"></a>
+<span class="sourceLineNo">12719</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.12719"></a>
+<span class="sourceLineNo">12720</span>                                                        ox = (iax % ibx);<a name="line.12720"></a>
+<span class="sourceLineNo">12721</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.12721"></a>
+<span class="sourceLineNo">12722</span>                                                }<a name="line.12722"></a>
+<span class="sourceLineNo">12723</span>                                        }<a name="line.12723"></a>
+<span class="sourceLineNo">12724</span>                                } else {<a name="line.12724"></a>
+<span class="sourceLineNo">12725</span>                                        while (it.hasNext()) {<a name="line.12725"></a>
+<span class="sourceLineNo">12726</span>                                                long iax = it.aLong;<a name="line.12726"></a>
+<span class="sourceLineNo">12727</span>                                                final long ibx = it.bLong;<a name="line.12727"></a>
+<span class="sourceLineNo">12728</span>                                                double ox;<a name="line.12728"></a>
+<span class="sourceLineNo">12729</span>                                                ox = (iax % ibx);<a name="line.12729"></a>
+<span class="sourceLineNo">12730</span>                                                oaf64data[it.oIndex] = ox;<a name="line.12730"></a>
+<span class="sourceLineNo">12731</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12731"></a>
+<span class="sourceLineNo">12732</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.12732"></a>
+<span class="sourceLineNo">12733</span>                                                        ox = (iax % ibx);<a name="line.12733"></a>
+<span class="sourceLineNo">12734</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.12734"></a>
+<span class="sourceLineNo">12735</span>                                                }<a name="line.12735"></a>
+<span class="sourceLineNo">12736</span>                                        }<a name="line.12736"></a>
+<span class="sourceLineNo">12737</span>                                }<a name="line.12737"></a>
+<span class="sourceLineNo">12738</span>                        } else if (as == 1) {<a name="line.12738"></a>
+<span class="sourceLineNo">12739</span>                                if (it.isOutputDouble()) {<a name="line.12739"></a>
+<span class="sourceLineNo">12740</span>                                        while (it.hasNext()) {<a name="line.12740"></a>
+<span class="sourceLineNo">12741</span>                                                final double iax = it.aDouble;<a name="line.12741"></a>
+<span class="sourceLineNo">12742</span>                                                final double ibx = it.bDouble;<a name="line.12742"></a>
+<span class="sourceLineNo">12743</span>                                                double ox;<a name="line.12743"></a>
+<span class="sourceLineNo">12744</span>                                                ox = (iax % ibx);<a name="line.12744"></a>
+<span class="sourceLineNo">12745</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.12745"></a>
+<span class="sourceLineNo">12746</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.12746"></a>
+<span class="sourceLineNo">12747</span>                                                }<a name="line.12747"></a>
+<span class="sourceLineNo">12748</span>                                        }<a name="line.12748"></a>
+<span class="sourceLineNo">12749</span>                                } else {<a name="line.12749"></a>
+<span class="sourceLineNo">12750</span>                                        while (it.hasNext()) {<a name="line.12750"></a>
+<span class="sourceLineNo">12751</span>                                                final long iax = it.aLong;<a name="line.12751"></a>
+<span class="sourceLineNo">12752</span>                                                final long ibx = it.bLong;<a name="line.12752"></a>
+<span class="sourceLineNo">12753</span>                                                double ox;<a name="line.12753"></a>
+<span class="sourceLineNo">12754</span>                                                ox = (iax % ibx);<a name="line.12754"></a>
+<span class="sourceLineNo">12755</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.12755"></a>
+<span class="sourceLineNo">12756</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.12756"></a>
+<span class="sourceLineNo">12757</span>                                                }<a name="line.12757"></a>
+<span class="sourceLineNo">12758</span>                                        }<a name="line.12758"></a>
+<span class="sourceLineNo">12759</span>                                }<a name="line.12759"></a>
+<span class="sourceLineNo">12760</span>                        } else {<a name="line.12760"></a>
+<span class="sourceLineNo">12761</span>                                if (it.isOutputDouble()) {<a name="line.12761"></a>
+<span class="sourceLineNo">12762</span>                                        while (it.hasNext()) {<a name="line.12762"></a>
+<span class="sourceLineNo">12763</span>                                                double iax = it.aDouble;<a name="line.12763"></a>
+<span class="sourceLineNo">12764</span>                                                double ibx = it.bDouble;<a name="line.12764"></a>
+<span class="sourceLineNo">12765</span>                                                double ox;<a name="line.12765"></a>
+<span class="sourceLineNo">12766</span>                                                ox = (iax % ibx);<a name="line.12766"></a>
+<span class="sourceLineNo">12767</span>                                                oaf64data[it.oIndex] = ox;<a name="line.12767"></a>
+<span class="sourceLineNo">12768</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12768"></a>
+<span class="sourceLineNo">12769</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.12769"></a>
+<span class="sourceLineNo">12770</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.12770"></a>
+<span class="sourceLineNo">12771</span>                                                        ox = (iax % ibx);<a name="line.12771"></a>
+<span class="sourceLineNo">12772</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.12772"></a>
+<span class="sourceLineNo">12773</span>                                                }<a name="line.12773"></a>
+<span class="sourceLineNo">12774</span>                                        }<a name="line.12774"></a>
+<span class="sourceLineNo">12775</span>                                } else {<a name="line.12775"></a>
+<span class="sourceLineNo">12776</span>                                        while (it.hasNext()) {<a name="line.12776"></a>
+<span class="sourceLineNo">12777</span>                                                long iax = it.aLong;<a name="line.12777"></a>
+<span class="sourceLineNo">12778</span>                                                long ibx = it.bLong;<a name="line.12778"></a>
+<span class="sourceLineNo">12779</span>                                                double ox;<a name="line.12779"></a>
+<span class="sourceLineNo">12780</span>                                                ox = (iax % ibx);<a name="line.12780"></a>
+<span class="sourceLineNo">12781</span>                                                oaf64data[it.oIndex] = ox;<a name="line.12781"></a>
+<span class="sourceLineNo">12782</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12782"></a>
+<span class="sourceLineNo">12783</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.12783"></a>
+<span class="sourceLineNo">12784</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.12784"></a>
+<span class="sourceLineNo">12785</span>                                                        ox = (iax % ibx);<a name="line.12785"></a>
+<span class="sourceLineNo">12786</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.12786"></a>
+<span class="sourceLineNo">12787</span>                                                }<a name="line.12787"></a>
+<span class="sourceLineNo">12788</span>                                        }<a name="line.12788"></a>
+<span class="sourceLineNo">12789</span>                                }<a name="line.12789"></a>
+<span class="sourceLineNo">12790</span>                        }<a name="line.12790"></a>
+<span class="sourceLineNo">12791</span>                        break;<a name="line.12791"></a>
+<span class="sourceLineNo">12792</span>                default:<a name="line.12792"></a>
+<span class="sourceLineNo">12793</span>                        throw new IllegalArgumentException("remainder supports integer, compound integer, real, compound real datasets only");<a name="line.12793"></a>
+<span class="sourceLineNo">12794</span>                }<a name="line.12794"></a>
+<span class="sourceLineNo">12795</span><a name="line.12795"></a>
+<span class="sourceLineNo">12796</span>                addBinaryOperatorName(da, db, result, "%");<a name="line.12796"></a>
+<span class="sourceLineNo">12797</span>                return result;<a name="line.12797"></a>
+<span class="sourceLineNo">12798</span>        }<a name="line.12798"></a>
+<span class="sourceLineNo">12799</span><a name="line.12799"></a>
+<span class="sourceLineNo">12800</span>        /**<a name="line.12800"></a>
+<span class="sourceLineNo">12801</span>         * maximum operator<a name="line.12801"></a>
+<span class="sourceLineNo">12802</span>         * @param a<a name="line.12802"></a>
+<span class="sourceLineNo">12803</span>         * @param b<a name="line.12803"></a>
+<span class="sourceLineNo">12804</span>         * @return return maximum of a and b<a name="line.12804"></a>
+<span class="sourceLineNo">12805</span>         */<a name="line.12805"></a>
+<span class="sourceLineNo">12806</span>        public static Dataset maximum(final Object a, final Object b) {<a name="line.12806"></a>
+<span class="sourceLineNo">12807</span>                return maximum(a, b, null);<a name="line.12807"></a>
+<span class="sourceLineNo">12808</span>        }<a name="line.12808"></a>
+<span class="sourceLineNo">12809</span><a name="line.12809"></a>
+<span class="sourceLineNo">12810</span>        /**<a name="line.12810"></a>
+<span class="sourceLineNo">12811</span>         * maximum operator<a name="line.12811"></a>
+<span class="sourceLineNo">12812</span>         * @param a<a name="line.12812"></a>
+<span class="sourceLineNo">12813</span>         * @param b<a name="line.12813"></a>
+<span class="sourceLineNo">12814</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.12814"></a>
+<span class="sourceLineNo">12815</span>         * @return return maximum of a and b<a name="line.12815"></a>
+<span class="sourceLineNo">12816</span>         */<a name="line.12816"></a>
+<span class="sourceLineNo">12817</span>        public static Dataset maximum(final Object a, final Object b, final Dataset o) {<a name="line.12817"></a>
+<span class="sourceLineNo">12818</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.12818"></a>
+<span class="sourceLineNo">12819</span>                Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.12819"></a>
+<span class="sourceLineNo">12820</span>                BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.12820"></a>
+<span class="sourceLineNo">12821</span>                final Dataset result = it.getOutput();<a name="line.12821"></a>
+<span class="sourceLineNo">12822</span>                if (!result.isComplex()) {<a name="line.12822"></a>
+<span class="sourceLineNo">12823</span>                        boolean change = false;<a name="line.12823"></a>
+<span class="sourceLineNo">12824</span>                        if (da.isComplex()) {<a name="line.12824"></a>
+<span class="sourceLineNo">12825</span>                                da = da.getRealView();<a name="line.12825"></a>
+<span class="sourceLineNo">12826</span>                                change = true;<a name="line.12826"></a>
+<span class="sourceLineNo">12827</span>                        }<a name="line.12827"></a>
+<span class="sourceLineNo">12828</span>                        if (db.isComplex()) {<a name="line.12828"></a>
+<span class="sourceLineNo">12829</span>                                db = db.getRealView();<a name="line.12829"></a>
+<span class="sourceLineNo">12830</span>                                change = true;<a name="line.12830"></a>
+<span class="sourceLineNo">12831</span>                        }<a name="line.12831"></a>
+<span class="sourceLineNo">12832</span>                        if (change) {<a name="line.12832"></a>
+<span class="sourceLineNo">12833</span>                                it = BroadcastIterator.createIterator(da, db, result, true);<a name="line.12833"></a>
+<span class="sourceLineNo">12834</span>                        }<a name="line.12834"></a>
+<span class="sourceLineNo">12835</span>                }<a name="line.12835"></a>
+<span class="sourceLineNo">12836</span>                final int is = result.getElementsPerItem();<a name="line.12836"></a>
+<span class="sourceLineNo">12837</span>                final int as = da.getElementsPerItem();<a name="line.12837"></a>
+<span class="sourceLineNo">12838</span>                final int bs = db.getElementsPerItem();<a name="line.12838"></a>
+<span class="sourceLineNo">12839</span>                final int dt = result.getDType();<a name="line.12839"></a>
+<span class="sourceLineNo">12840</span><a name="line.12840"></a>
+<span class="sourceLineNo">12841</span>                switch(dt) {<a name="line.12841"></a>
+<span class="sourceLineNo">12842</span>                case Dataset.INT8:<a name="line.12842"></a>
+<span class="sourceLineNo">12843</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.12843"></a>
+<span class="sourceLineNo">12844</span>                        if (it.isOutputDouble()) {<a name="line.12844"></a>
+<span class="sourceLineNo">12845</span>                                while (it.hasNext()) {<a name="line.12845"></a>
+<span class="sourceLineNo">12846</span>                                        final double iax = it.aDouble;<a name="line.12846"></a>
+<span class="sourceLineNo">12847</span>                                        final double ibx = it.bDouble;<a name="line.12847"></a>
+<span class="sourceLineNo">12848</span>                                        byte ox;<a name="line.12848"></a>
+<span class="sourceLineNo">12849</span>                                        ox = (byte) toLong(Math.max(iax, ibx));<a name="line.12849"></a>
+<span class="sourceLineNo">12850</span>                                        oi8data[it.oIndex] = ox;<a name="line.12850"></a>
+<span class="sourceLineNo">12851</span>                                }<a name="line.12851"></a>
+<span class="sourceLineNo">12852</span>                        } else {<a name="line.12852"></a>
+<span class="sourceLineNo">12853</span>                                while (it.hasNext()) {<a name="line.12853"></a>
+<span class="sourceLineNo">12854</span>                                        final long iax = it.aLong;<a name="line.12854"></a>
+<span class="sourceLineNo">12855</span>                                        final long ibx = it.bLong;<a name="line.12855"></a>
+<span class="sourceLineNo">12856</span>                                        byte ox;<a name="line.12856"></a>
+<span class="sourceLineNo">12857</span>                                        ox = (byte) toLong(Math.max(iax, ibx));<a name="line.12857"></a>
+<span class="sourceLineNo">12858</span>                                        oi8data[it.oIndex] = ox;<a name="line.12858"></a>
+<span class="sourceLineNo">12859</span>                                }<a name="line.12859"></a>
+<span class="sourceLineNo">12860</span>                        }<a name="line.12860"></a>
+<span class="sourceLineNo">12861</span>                        break;<a name="line.12861"></a>
+<span class="sourceLineNo">12862</span>                case Dataset.INT16:<a name="line.12862"></a>
+<span class="sourceLineNo">12863</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.12863"></a>
+<span class="sourceLineNo">12864</span>                        if (it.isOutputDouble()) {<a name="line.12864"></a>
+<span class="sourceLineNo">12865</span>                                while (it.hasNext()) {<a name="line.12865"></a>
+<span class="sourceLineNo">12866</span>                                        final double iax = it.aDouble;<a name="line.12866"></a>
+<span class="sourceLineNo">12867</span>                                        final double ibx = it.bDouble;<a name="line.12867"></a>
+<span class="sourceLineNo">12868</span>                                        short ox;<a name="line.12868"></a>
+<span class="sourceLineNo">12869</span>                                        ox = (short) toLong(Math.max(iax, ibx));<a name="line.12869"></a>
+<span class="sourceLineNo">12870</span>                                        oi16data[it.oIndex] = ox;<a name="line.12870"></a>
+<span class="sourceLineNo">12871</span>                                }<a name="line.12871"></a>
+<span class="sourceLineNo">12872</span>                        } else {<a name="line.12872"></a>
+<span class="sourceLineNo">12873</span>                                while (it.hasNext()) {<a name="line.12873"></a>
+<span class="sourceLineNo">12874</span>                                        final long iax = it.aLong;<a name="line.12874"></a>
+<span class="sourceLineNo">12875</span>                                        final long ibx = it.bLong;<a name="line.12875"></a>
+<span class="sourceLineNo">12876</span>                                        short ox;<a name="line.12876"></a>
+<span class="sourceLineNo">12877</span>                                        ox = (short) toLong(Math.max(iax, ibx));<a name="line.12877"></a>
+<span class="sourceLineNo">12878</span>                                        oi16data[it.oIndex] = ox;<a name="line.12878"></a>
+<span class="sourceLineNo">12879</span>                                }<a name="line.12879"></a>
+<span class="sourceLineNo">12880</span>                        }<a name="line.12880"></a>
+<span class="sourceLineNo">12881</span>                        break;<a name="line.12881"></a>
+<span class="sourceLineNo">12882</span>                case Dataset.INT64:<a name="line.12882"></a>
+<span class="sourceLineNo">12883</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.12883"></a>
+<span class="sourceLineNo">12884</span>                        if (it.isOutputDouble()) {<a name="line.12884"></a>
+<span class="sourceLineNo">12885</span>                                while (it.hasNext()) {<a name="line.12885"></a>
+<span class="sourceLineNo">12886</span>                                        final double iax = it.aDouble;<a name="line.12886"></a>
+<span class="sourceLineNo">12887</span>                                        final double ibx = it.bDouble;<a name="line.12887"></a>
+<span class="sourceLineNo">12888</span>                                        long ox;<a name="line.12888"></a>
+<span class="sourceLineNo">12889</span>                                        ox = toLong(Math.max(iax, ibx));<a name="line.12889"></a>
+<span class="sourceLineNo">12890</span>                                        oi64data[it.oIndex] = ox;<a name="line.12890"></a>
+<span class="sourceLineNo">12891</span>                                }<a name="line.12891"></a>
+<span class="sourceLineNo">12892</span>                        } else {<a name="line.12892"></a>
+<span class="sourceLineNo">12893</span>                                while (it.hasNext()) {<a name="line.12893"></a>
+<span class="sourceLineNo">12894</span>                                        final long iax = it.aLong;<a name="line.12894"></a>
+<span class="sourceLineNo">12895</span>                                        final long ibx = it.bLong;<a name="line.12895"></a>
+<span class="sourceLineNo">12896</span>                                        long ox;<a name="line.12896"></a>
+<span class="sourceLineNo">12897</span>                                        ox = toLong(Math.max(iax, ibx));<a name="line.12897"></a>
+<span class="sourceLineNo">12898</span>                                        oi64data[it.oIndex] = ox;<a name="line.12898"></a>
+<span class="sourceLineNo">12899</span>                                }<a name="line.12899"></a>
+<span class="sourceLineNo">12900</span>                        }<a name="line.12900"></a>
+<span class="sourceLineNo">12901</span>                        break;<a name="line.12901"></a>
+<span class="sourceLineNo">12902</span>                case Dataset.INT32:<a name="line.12902"></a>
+<span class="sourceLineNo">12903</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.12903"></a>
+<span class="sourceLineNo">12904</span>                        if (it.isOutputDouble()) {<a name="line.12904"></a>
+<span class="sourceLineNo">12905</span>                                while (it.hasNext()) {<a name="line.12905"></a>
+<span class="sourceLineNo">12906</span>                                        final double iax = it.aDouble;<a name="line.12906"></a>
+<span class="sourceLineNo">12907</span>                                        final double ibx = it.bDouble;<a name="line.12907"></a>
+<span class="sourceLineNo">12908</span>                                        int ox;<a name="line.12908"></a>
+<span class="sourceLineNo">12909</span>                                        ox = (int) toLong(Math.max(iax, ibx));<a name="line.12909"></a>
+<span class="sourceLineNo">12910</span>                                        oi32data[it.oIndex] = ox;<a name="line.12910"></a>
+<span class="sourceLineNo">12911</span>                                }<a name="line.12911"></a>
+<span class="sourceLineNo">12912</span>                        } else {<a name="line.12912"></a>
+<span class="sourceLineNo">12913</span>                                while (it.hasNext()) {<a name="line.12913"></a>
+<span class="sourceLineNo">12914</span>                                        final long iax = it.aLong;<a name="line.12914"></a>
+<span class="sourceLineNo">12915</span>                                        final long ibx = it.bLong;<a name="line.12915"></a>
+<span class="sourceLineNo">12916</span>                                        int ox;<a name="line.12916"></a>
+<span class="sourceLineNo">12917</span>                                        ox = (int) toLong(Math.max(iax, ibx));<a name="line.12917"></a>
+<span class="sourceLineNo">12918</span>                                        oi32data[it.oIndex] = ox;<a name="line.12918"></a>
+<span class="sourceLineNo">12919</span>                                }<a name="line.12919"></a>
+<span class="sourceLineNo">12920</span>                        }<a name="line.12920"></a>
+<span class="sourceLineNo">12921</span>                        break;<a name="line.12921"></a>
+<span class="sourceLineNo">12922</span>                case Dataset.ARRAYINT8:<a name="line.12922"></a>
+<span class="sourceLineNo">12923</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.12923"></a>
+<span class="sourceLineNo">12924</span>                        if (is == 1) {<a name="line.12924"></a>
+<span class="sourceLineNo">12925</span>                                if (it.isOutputDouble()) {<a name="line.12925"></a>
+<span class="sourceLineNo">12926</span>                                        while (it.hasNext()) {<a name="line.12926"></a>
+<span class="sourceLineNo">12927</span>                                                final double iax = it.aDouble;<a name="line.12927"></a>
+<span class="sourceLineNo">12928</span>                                                final double ibx = it.bDouble;<a name="line.12928"></a>
+<span class="sourceLineNo">12929</span>                                                byte ox;<a name="line.12929"></a>
+<span class="sourceLineNo">12930</span>                                                ox = (byte) toLong(Math.max(iax, ibx));<a name="line.12930"></a>
+<span class="sourceLineNo">12931</span>                                                oai8data[it.oIndex] = ox;<a name="line.12931"></a>
+<span class="sourceLineNo">12932</span>                                        }<a name="line.12932"></a>
+<span class="sourceLineNo">12933</span>                                } else {<a name="line.12933"></a>
+<span class="sourceLineNo">12934</span>                                        while (it.hasNext()) {<a name="line.12934"></a>
+<span class="sourceLineNo">12935</span>                                                final long iax = it.aLong;<a name="line.12935"></a>
+<span class="sourceLineNo">12936</span>                                                final long ibx = it.bLong;<a name="line.12936"></a>
+<span class="sourceLineNo">12937</span>                                                byte ox;<a name="line.12937"></a>
+<span class="sourceLineNo">12938</span>                                                ox = (byte) toLong(Math.max(iax, ibx));<a name="line.12938"></a>
+<span class="sourceLineNo">12939</span>                                                oai8data[it.oIndex] = ox;<a name="line.12939"></a>
+<span class="sourceLineNo">12940</span>                                        }<a name="line.12940"></a>
+<span class="sourceLineNo">12941</span>                                }<a name="line.12941"></a>
+<span class="sourceLineNo">12942</span>                        } else if (as &lt; bs) {<a name="line.12942"></a>
+<span class="sourceLineNo">12943</span>                                if (it.isOutputDouble()) {<a name="line.12943"></a>
+<span class="sourceLineNo">12944</span>                                        while (it.hasNext()) {<a name="line.12944"></a>
+<span class="sourceLineNo">12945</span>                                                final double iax = it.aDouble;<a name="line.12945"></a>
+<span class="sourceLineNo">12946</span>                                                double ibx = it.bDouble;<a name="line.12946"></a>
+<span class="sourceLineNo">12947</span>                                                byte ox;<a name="line.12947"></a>
+<span class="sourceLineNo">12948</span>                                                ox = (byte) toLong(Math.max(iax, ibx));<a name="line.12948"></a>
+<span class="sourceLineNo">12949</span>                                                oai8data[it.oIndex] = ox;<a name="line.12949"></a>
+<span class="sourceLineNo">12950</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12950"></a>
+<span class="sourceLineNo">12951</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.12951"></a>
+<span class="sourceLineNo">12952</span>                                                        ox = (byte) toLong(Math.max(iax, ibx));<a name="line.12952"></a>
+<span class="sourceLineNo">12953</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.12953"></a>
+<span class="sourceLineNo">12954</span>                                                }<a name="line.12954"></a>
+<span class="sourceLineNo">12955</span>                                        }<a name="line.12955"></a>
+<span class="sourceLineNo">12956</span>                                } else {<a name="line.12956"></a>
+<span class="sourceLineNo">12957</span>                                        while (it.hasNext()) {<a name="line.12957"></a>
+<span class="sourceLineNo">12958</span>                                                final long iax = it.aLong;<a name="line.12958"></a>
+<span class="sourceLineNo">12959</span>                                                long ibx = it.bLong;<a name="line.12959"></a>
+<span class="sourceLineNo">12960</span>                                                byte ox;<a name="line.12960"></a>
+<span class="sourceLineNo">12961</span>                                                ox = (byte) toLong(Math.max(iax, ibx));<a name="line.12961"></a>
+<span class="sourceLineNo">12962</span>                                                oai8data[it.oIndex] = ox;<a name="line.12962"></a>
+<span class="sourceLineNo">12963</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12963"></a>
+<span class="sourceLineNo">12964</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.12964"></a>
+<span class="sourceLineNo">12965</span>                                                        ox = (byte) toLong(Math.max(iax, ibx));<a name="line.12965"></a>
+<span class="sourceLineNo">12966</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.12966"></a>
+<span class="sourceLineNo">12967</span>                                                }<a name="line.12967"></a>
+<span class="sourceLineNo">12968</span>                                        }<a name="line.12968"></a>
+<span class="sourceLineNo">12969</span>                                }<a name="line.12969"></a>
+<span class="sourceLineNo">12970</span>                        } else if (as &gt; bs) {<a name="line.12970"></a>
+<span class="sourceLineNo">12971</span>                                if (it.isOutputDouble()) {<a name="line.12971"></a>
+<span class="sourceLineNo">12972</span>                                        while (it.hasNext()) {<a name="line.12972"></a>
+<span class="sourceLineNo">12973</span>                                                double iax = it.aDouble;<a name="line.12973"></a>
+<span class="sourceLineNo">12974</span>                                                final double ibx = it.bDouble;<a name="line.12974"></a>
+<span class="sourceLineNo">12975</span>                                                byte ox;<a name="line.12975"></a>
+<span class="sourceLineNo">12976</span>                                                ox = (byte) toLong(Math.max(iax, ibx));<a name="line.12976"></a>
+<span class="sourceLineNo">12977</span>                                                oai8data[it.oIndex] = ox;<a name="line.12977"></a>
+<span class="sourceLineNo">12978</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12978"></a>
+<span class="sourceLineNo">12979</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.12979"></a>
+<span class="sourceLineNo">12980</span>                                                        ox = (byte) toLong(Math.max(iax, ibx));<a name="line.12980"></a>
+<span class="sourceLineNo">12981</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.12981"></a>
+<span class="sourceLineNo">12982</span>                                                }<a name="line.12982"></a>
+<span class="sourceLineNo">12983</span>                                        }<a name="line.12983"></a>
+<span class="sourceLineNo">12984</span>                                } else {<a name="line.12984"></a>
+<span class="sourceLineNo">12985</span>                                        while (it.hasNext()) {<a name="line.12985"></a>
+<span class="sourceLineNo">12986</span>                                                long iax = it.aLong;<a name="line.12986"></a>
+<span class="sourceLineNo">12987</span>                                                final long ibx = it.bLong;<a name="line.12987"></a>
+<span class="sourceLineNo">12988</span>                                                byte ox;<a name="line.12988"></a>
+<span class="sourceLineNo">12989</span>                                                ox = (byte) toLong(Math.max(iax, ibx));<a name="line.12989"></a>
+<span class="sourceLineNo">12990</span>                                                oai8data[it.oIndex] = ox;<a name="line.12990"></a>
+<span class="sourceLineNo">12991</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.12991"></a>
+<span class="sourceLineNo">12992</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.12992"></a>
+<span class="sourceLineNo">12993</span>                                                        ox = (byte) toLong(Math.max(iax, ibx));<a name="line.12993"></a>
+<span class="sourceLineNo">12994</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.12994"></a>
+<span class="sourceLineNo">12995</span>                                                }<a name="line.12995"></a>
+<span class="sourceLineNo">12996</span>                                        }<a name="line.12996"></a>
+<span class="sourceLineNo">12997</span>                                }<a name="line.12997"></a>
+<span class="sourceLineNo">12998</span>                        } else if (as == 1) {<a name="line.12998"></a>
+<span class="sourceLineNo">12999</span>                                if (it.isOutputDouble()) {<a name="line.12999"></a>
+<span class="sourceLineNo">13000</span>                                        while (it.hasNext()) {<a name="line.13000"></a>
+<span class="sourceLineNo">13001</span>                                                final double iax = it.aDouble;<a name="line.13001"></a>
+<span class="sourceLineNo">13002</span>                                                final double ibx = it.bDouble;<a name="line.13002"></a>
+<span class="sourceLineNo">13003</span>                                                byte ox;<a name="line.13003"></a>
+<span class="sourceLineNo">13004</span>                                                ox = (byte) toLong(Math.max(iax, ibx));<a name="line.13004"></a>
+<span class="sourceLineNo">13005</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.13005"></a>
+<span class="sourceLineNo">13006</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.13006"></a>
+<span class="sourceLineNo">13007</span>                                                }<a name="line.13007"></a>
+<span class="sourceLineNo">13008</span>                                        }<a name="line.13008"></a>
+<span class="sourceLineNo">13009</span>                                } else {<a name="line.13009"></a>
+<span class="sourceLineNo">13010</span>                                        while (it.hasNext()) {<a name="line.13010"></a>
+<span class="sourceLineNo">13011</span>                                                final long iax = it.aLong;<a name="line.13011"></a>
+<span class="sourceLineNo">13012</span>                                                final long ibx = it.bLong;<a name="line.13012"></a>
+<span class="sourceLineNo">13013</span>                                                byte ox;<a name="line.13013"></a>
+<span class="sourceLineNo">13014</span>                                                ox = (byte) toLong(Math.max(iax, ibx));<a name="line.13014"></a>
+<span class="sourceLineNo">13015</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.13015"></a>
+<span class="sourceLineNo">13016</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.13016"></a>
+<span class="sourceLineNo">13017</span>                                                }<a name="line.13017"></a>
+<span class="sourceLineNo">13018</span>                                        }<a name="line.13018"></a>
+<span class="sourceLineNo">13019</span>                                }<a name="line.13019"></a>
+<span class="sourceLineNo">13020</span>                        } else {<a name="line.13020"></a>
+<span class="sourceLineNo">13021</span>                                if (it.isOutputDouble()) {<a name="line.13021"></a>
+<span class="sourceLineNo">13022</span>                                        while (it.hasNext()) {<a name="line.13022"></a>
+<span class="sourceLineNo">13023</span>                                                double iax = it.aDouble;<a name="line.13023"></a>
+<span class="sourceLineNo">13024</span>                                                double ibx = it.bDouble;<a name="line.13024"></a>
+<span class="sourceLineNo">13025</span>                                                byte ox;<a name="line.13025"></a>
+<span class="sourceLineNo">13026</span>                                                ox = (byte) toLong(Math.max(iax, ibx));<a name="line.13026"></a>
+<span class="sourceLineNo">13027</span>                                                oai8data[it.oIndex] = ox;<a name="line.13027"></a>
+<span class="sourceLineNo">13028</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13028"></a>
+<span class="sourceLineNo">13029</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.13029"></a>
+<span class="sourceLineNo">13030</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.13030"></a>
+<span class="sourceLineNo">13031</span>                                                        ox = (byte) toLong(Math.max(iax, ibx));<a name="line.13031"></a>
+<span class="sourceLineNo">13032</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.13032"></a>
+<span class="sourceLineNo">13033</span>                                                }<a name="line.13033"></a>
+<span class="sourceLineNo">13034</span>                                        }<a name="line.13034"></a>
+<span class="sourceLineNo">13035</span>                                } else {<a name="line.13035"></a>
+<span class="sourceLineNo">13036</span>                                        while (it.hasNext()) {<a name="line.13036"></a>
+<span class="sourceLineNo">13037</span>                                                long iax = it.aLong;<a name="line.13037"></a>
+<span class="sourceLineNo">13038</span>                                                long ibx = it.bLong;<a name="line.13038"></a>
+<span class="sourceLineNo">13039</span>                                                byte ox;<a name="line.13039"></a>
+<span class="sourceLineNo">13040</span>                                                ox = (byte) toLong(Math.max(iax, ibx));<a name="line.13040"></a>
+<span class="sourceLineNo">13041</span>                                                oai8data[it.oIndex] = ox;<a name="line.13041"></a>
+<span class="sourceLineNo">13042</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13042"></a>
+<span class="sourceLineNo">13043</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.13043"></a>
+<span class="sourceLineNo">13044</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.13044"></a>
+<span class="sourceLineNo">13045</span>                                                        ox = (byte) toLong(Math.max(iax, ibx));<a name="line.13045"></a>
+<span class="sourceLineNo">13046</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.13046"></a>
+<span class="sourceLineNo">13047</span>                                                }<a name="line.13047"></a>
+<span class="sourceLineNo">13048</span>                                        }<a name="line.13048"></a>
+<span class="sourceLineNo">13049</span>                                }<a name="line.13049"></a>
+<span class="sourceLineNo">13050</span>                        }<a name="line.13050"></a>
+<span class="sourceLineNo">13051</span>                        break;<a name="line.13051"></a>
+<span class="sourceLineNo">13052</span>                case Dataset.ARRAYINT16:<a name="line.13052"></a>
+<span class="sourceLineNo">13053</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.13053"></a>
+<span class="sourceLineNo">13054</span>                        if (is == 1) {<a name="line.13054"></a>
+<span class="sourceLineNo">13055</span>                                if (it.isOutputDouble()) {<a name="line.13055"></a>
+<span class="sourceLineNo">13056</span>                                        while (it.hasNext()) {<a name="line.13056"></a>
+<span class="sourceLineNo">13057</span>                                                final double iax = it.aDouble;<a name="line.13057"></a>
+<span class="sourceLineNo">13058</span>                                                final double ibx = it.bDouble;<a name="line.13058"></a>
+<span class="sourceLineNo">13059</span>                                                short ox;<a name="line.13059"></a>
+<span class="sourceLineNo">13060</span>                                                ox = (short) toLong(Math.max(iax, ibx));<a name="line.13060"></a>
+<span class="sourceLineNo">13061</span>                                                oai16data[it.oIndex] = ox;<a name="line.13061"></a>
+<span class="sourceLineNo">13062</span>                                        }<a name="line.13062"></a>
+<span class="sourceLineNo">13063</span>                                } else {<a name="line.13063"></a>
+<span class="sourceLineNo">13064</span>                                        while (it.hasNext()) {<a name="line.13064"></a>
+<span class="sourceLineNo">13065</span>                                                final long iax = it.aLong;<a name="line.13065"></a>
+<span class="sourceLineNo">13066</span>                                                final long ibx = it.bLong;<a name="line.13066"></a>
+<span class="sourceLineNo">13067</span>                                                short ox;<a name="line.13067"></a>
+<span class="sourceLineNo">13068</span>                                                ox = (short) toLong(Math.max(iax, ibx));<a name="line.13068"></a>
+<span class="sourceLineNo">13069</span>                                                oai16data[it.oIndex] = ox;<a name="line.13069"></a>
+<span class="sourceLineNo">13070</span>                                        }<a name="line.13070"></a>
+<span class="sourceLineNo">13071</span>                                }<a name="line.13071"></a>
+<span class="sourceLineNo">13072</span>                        } else if (as &lt; bs) {<a name="line.13072"></a>
+<span class="sourceLineNo">13073</span>                                if (it.isOutputDouble()) {<a name="line.13073"></a>
+<span class="sourceLineNo">13074</span>                                        while (it.hasNext()) {<a name="line.13074"></a>
+<span class="sourceLineNo">13075</span>                                                final double iax = it.aDouble;<a name="line.13075"></a>
+<span class="sourceLineNo">13076</span>                                                double ibx = it.bDouble;<a name="line.13076"></a>
+<span class="sourceLineNo">13077</span>                                                short ox;<a name="line.13077"></a>
+<span class="sourceLineNo">13078</span>                                                ox = (short) toLong(Math.max(iax, ibx));<a name="line.13078"></a>
+<span class="sourceLineNo">13079</span>                                                oai16data[it.oIndex] = ox;<a name="line.13079"></a>
+<span class="sourceLineNo">13080</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13080"></a>
+<span class="sourceLineNo">13081</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.13081"></a>
+<span class="sourceLineNo">13082</span>                                                        ox = (short) toLong(Math.max(iax, ibx));<a name="line.13082"></a>
+<span class="sourceLineNo">13083</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.13083"></a>
+<span class="sourceLineNo">13084</span>                                                }<a name="line.13084"></a>
+<span class="sourceLineNo">13085</span>                                        }<a name="line.13085"></a>
+<span class="sourceLineNo">13086</span>                                } else {<a name="line.13086"></a>
+<span class="sourceLineNo">13087</span>                                        while (it.hasNext()) {<a name="line.13087"></a>
+<span class="sourceLineNo">13088</span>                                                final long iax = it.aLong;<a name="line.13088"></a>
+<span class="sourceLineNo">13089</span>                                                long ibx = it.bLong;<a name="line.13089"></a>
+<span class="sourceLineNo">13090</span>                                                short ox;<a name="line.13090"></a>
+<span class="sourceLineNo">13091</span>                                                ox = (short) toLong(Math.max(iax, ibx));<a name="line.13091"></a>
+<span class="sourceLineNo">13092</span>                                                oai16data[it.oIndex] = ox;<a name="line.13092"></a>
+<span class="sourceLineNo">13093</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13093"></a>
+<span class="sourceLineNo">13094</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.13094"></a>
+<span class="sourceLineNo">13095</span>                                                        ox = (short) toLong(Math.max(iax, ibx));<a name="line.13095"></a>
+<span class="sourceLineNo">13096</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.13096"></a>
+<span class="sourceLineNo">13097</span>                                                }<a name="line.13097"></a>
+<span class="sourceLineNo">13098</span>                                        }<a name="line.13098"></a>
+<span class="sourceLineNo">13099</span>                                }<a name="line.13099"></a>
+<span class="sourceLineNo">13100</span>                        } else if (as &gt; bs) {<a name="line.13100"></a>
+<span class="sourceLineNo">13101</span>                                if (it.isOutputDouble()) {<a name="line.13101"></a>
+<span class="sourceLineNo">13102</span>                                        while (it.hasNext()) {<a name="line.13102"></a>
+<span class="sourceLineNo">13103</span>                                                double iax = it.aDouble;<a name="line.13103"></a>
+<span class="sourceLineNo">13104</span>                                                final double ibx = it.bDouble;<a name="line.13104"></a>
+<span class="sourceLineNo">13105</span>                                                short ox;<a name="line.13105"></a>
+<span class="sourceLineNo">13106</span>                                                ox = (short) toLong(Math.max(iax, ibx));<a name="line.13106"></a>
+<span class="sourceLineNo">13107</span>                                                oai16data[it.oIndex] = ox;<a name="line.13107"></a>
+<span class="sourceLineNo">13108</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13108"></a>
+<span class="sourceLineNo">13109</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.13109"></a>
+<span class="sourceLineNo">13110</span>                                                        ox = (short) toLong(Math.max(iax, ibx));<a name="line.13110"></a>
+<span class="sourceLineNo">13111</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.13111"></a>
+<span class="sourceLineNo">13112</span>                                                }<a name="line.13112"></a>
+<span class="sourceLineNo">13113</span>                                        }<a name="line.13113"></a>
+<span class="sourceLineNo">13114</span>                                } else {<a name="line.13114"></a>
+<span class="sourceLineNo">13115</span>                                        while (it.hasNext()) {<a name="line.13115"></a>
+<span class="sourceLineNo">13116</span>                                                long iax = it.aLong;<a name="line.13116"></a>
+<span class="sourceLineNo">13117</span>                                                final long ibx = it.bLong;<a name="line.13117"></a>
+<span class="sourceLineNo">13118</span>                                                short ox;<a name="line.13118"></a>
+<span class="sourceLineNo">13119</span>                                                ox = (short) toLong(Math.max(iax, ibx));<a name="line.13119"></a>
+<span class="sourceLineNo">13120</span>                                                oai16data[it.oIndex] = ox;<a name="line.13120"></a>
+<span class="sourceLineNo">13121</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13121"></a>
+<span class="sourceLineNo">13122</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.13122"></a>
+<span class="sourceLineNo">13123</span>                                                        ox = (short) toLong(Math.max(iax, ibx));<a name="line.13123"></a>
+<span class="sourceLineNo">13124</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.13124"></a>
+<span class="sourceLineNo">13125</span>                                                }<a name="line.13125"></a>
+<span class="sourceLineNo">13126</span>                                        }<a name="line.13126"></a>
+<span class="sourceLineNo">13127</span>                                }<a name="line.13127"></a>
+<span class="sourceLineNo">13128</span>                        } else if (as == 1) {<a name="line.13128"></a>
+<span class="sourceLineNo">13129</span>                                if (it.isOutputDouble()) {<a name="line.13129"></a>
+<span class="sourceLineNo">13130</span>                                        while (it.hasNext()) {<a name="line.13130"></a>
+<span class="sourceLineNo">13131</span>                                                final double iax = it.aDouble;<a name="line.13131"></a>
+<span class="sourceLineNo">13132</span>                                                final double ibx = it.bDouble;<a name="line.13132"></a>
+<span class="sourceLineNo">13133</span>                                                short ox;<a name="line.13133"></a>
+<span class="sourceLineNo">13134</span>                                                ox = (short) toLong(Math.max(iax, ibx));<a name="line.13134"></a>
+<span class="sourceLineNo">13135</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.13135"></a>
+<span class="sourceLineNo">13136</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.13136"></a>
+<span class="sourceLineNo">13137</span>                                                }<a name="line.13137"></a>
+<span class="sourceLineNo">13138</span>                                        }<a name="line.13138"></a>
+<span class="sourceLineNo">13139</span>                                } else {<a name="line.13139"></a>
+<span class="sourceLineNo">13140</span>                                        while (it.hasNext()) {<a name="line.13140"></a>
+<span class="sourceLineNo">13141</span>                                                final long iax = it.aLong;<a name="line.13141"></a>
+<span class="sourceLineNo">13142</span>                                                final long ibx = it.bLong;<a name="line.13142"></a>
+<span class="sourceLineNo">13143</span>                                                short ox;<a name="line.13143"></a>
+<span class="sourceLineNo">13144</span>                                                ox = (short) toLong(Math.max(iax, ibx));<a name="line.13144"></a>
+<span class="sourceLineNo">13145</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.13145"></a>
+<span class="sourceLineNo">13146</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.13146"></a>
+<span class="sourceLineNo">13147</span>                                                }<a name="line.13147"></a>
+<span class="sourceLineNo">13148</span>                                        }<a name="line.13148"></a>
+<span class="sourceLineNo">13149</span>                                }<a name="line.13149"></a>
+<span class="sourceLineNo">13150</span>                        } else {<a name="line.13150"></a>
+<span class="sourceLineNo">13151</span>                                if (it.isOutputDouble()) {<a name="line.13151"></a>
+<span class="sourceLineNo">13152</span>                                        while (it.hasNext()) {<a name="line.13152"></a>
+<span class="sourceLineNo">13153</span>                                                double iax = it.aDouble;<a name="line.13153"></a>
+<span class="sourceLineNo">13154</span>                                                double ibx = it.bDouble;<a name="line.13154"></a>
+<span class="sourceLineNo">13155</span>                                                short ox;<a name="line.13155"></a>
+<span class="sourceLineNo">13156</span>                                                ox = (short) toLong(Math.max(iax, ibx));<a name="line.13156"></a>
+<span class="sourceLineNo">13157</span>                                                oai16data[it.oIndex] = ox;<a name="line.13157"></a>
+<span class="sourceLineNo">13158</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13158"></a>
+<span class="sourceLineNo">13159</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.13159"></a>
+<span class="sourceLineNo">13160</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.13160"></a>
+<span class="sourceLineNo">13161</span>                                                        ox = (short) toLong(Math.max(iax, ibx));<a name="line.13161"></a>
+<span class="sourceLineNo">13162</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.13162"></a>
+<span class="sourceLineNo">13163</span>                                                }<a name="line.13163"></a>
+<span class="sourceLineNo">13164</span>                                        }<a name="line.13164"></a>
+<span class="sourceLineNo">13165</span>                                } else {<a name="line.13165"></a>
+<span class="sourceLineNo">13166</span>                                        while (it.hasNext()) {<a name="line.13166"></a>
+<span class="sourceLineNo">13167</span>                                                long iax = it.aLong;<a name="line.13167"></a>
+<span class="sourceLineNo">13168</span>                                                long ibx = it.bLong;<a name="line.13168"></a>
+<span class="sourceLineNo">13169</span>                                                short ox;<a name="line.13169"></a>
+<span class="sourceLineNo">13170</span>                                                ox = (short) toLong(Math.max(iax, ibx));<a name="line.13170"></a>
+<span class="sourceLineNo">13171</span>                                                oai16data[it.oIndex] = ox;<a name="line.13171"></a>
+<span class="sourceLineNo">13172</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13172"></a>
+<span class="sourceLineNo">13173</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.13173"></a>
+<span class="sourceLineNo">13174</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.13174"></a>
+<span class="sourceLineNo">13175</span>                                                        ox = (short) toLong(Math.max(iax, ibx));<a name="line.13175"></a>
+<span class="sourceLineNo">13176</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.13176"></a>
+<span class="sourceLineNo">13177</span>                                                }<a name="line.13177"></a>
+<span class="sourceLineNo">13178</span>                                        }<a name="line.13178"></a>
+<span class="sourceLineNo">13179</span>                                }<a name="line.13179"></a>
+<span class="sourceLineNo">13180</span>                        }<a name="line.13180"></a>
+<span class="sourceLineNo">13181</span>                        break;<a name="line.13181"></a>
+<span class="sourceLineNo">13182</span>                case Dataset.ARRAYINT64:<a name="line.13182"></a>
+<span class="sourceLineNo">13183</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.13183"></a>
+<span class="sourceLineNo">13184</span>                        if (is == 1) {<a name="line.13184"></a>
+<span class="sourceLineNo">13185</span>                                if (it.isOutputDouble()) {<a name="line.13185"></a>
+<span class="sourceLineNo">13186</span>                                        while (it.hasNext()) {<a name="line.13186"></a>
+<span class="sourceLineNo">13187</span>                                                final double iax = it.aDouble;<a name="line.13187"></a>
+<span class="sourceLineNo">13188</span>                                                final double ibx = it.bDouble;<a name="line.13188"></a>
+<span class="sourceLineNo">13189</span>                                                long ox;<a name="line.13189"></a>
+<span class="sourceLineNo">13190</span>                                                ox = toLong(Math.max(iax, ibx));<a name="line.13190"></a>
+<span class="sourceLineNo">13191</span>                                                oai64data[it.oIndex] = ox;<a name="line.13191"></a>
+<span class="sourceLineNo">13192</span>                                        }<a name="line.13192"></a>
+<span class="sourceLineNo">13193</span>                                } else {<a name="line.13193"></a>
+<span class="sourceLineNo">13194</span>                                        while (it.hasNext()) {<a name="line.13194"></a>
+<span class="sourceLineNo">13195</span>                                                final long iax = it.aLong;<a name="line.13195"></a>
+<span class="sourceLineNo">13196</span>                                                final long ibx = it.bLong;<a name="line.13196"></a>
+<span class="sourceLineNo">13197</span>                                                long ox;<a name="line.13197"></a>
+<span class="sourceLineNo">13198</span>                                                ox = toLong(Math.max(iax, ibx));<a name="line.13198"></a>
+<span class="sourceLineNo">13199</span>                                                oai64data[it.oIndex] = ox;<a name="line.13199"></a>
+<span class="sourceLineNo">13200</span>                                        }<a name="line.13200"></a>
+<span class="sourceLineNo">13201</span>                                }<a name="line.13201"></a>
+<span class="sourceLineNo">13202</span>                        } else if (as &lt; bs) {<a name="line.13202"></a>
+<span class="sourceLineNo">13203</span>                                if (it.isOutputDouble()) {<a name="line.13203"></a>
+<span class="sourceLineNo">13204</span>                                        while (it.hasNext()) {<a name="line.13204"></a>
+<span class="sourceLineNo">13205</span>                                                final double iax = it.aDouble;<a name="line.13205"></a>
+<span class="sourceLineNo">13206</span>                                                double ibx = it.bDouble;<a name="line.13206"></a>
+<span class="sourceLineNo">13207</span>                                                long ox;<a name="line.13207"></a>
+<span class="sourceLineNo">13208</span>                                                ox = toLong(Math.max(iax, ibx));<a name="line.13208"></a>
+<span class="sourceLineNo">13209</span>                                                oai64data[it.oIndex] = ox;<a name="line.13209"></a>
+<span class="sourceLineNo">13210</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13210"></a>
+<span class="sourceLineNo">13211</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.13211"></a>
+<span class="sourceLineNo">13212</span>                                                        ox = toLong(Math.max(iax, ibx));<a name="line.13212"></a>
+<span class="sourceLineNo">13213</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.13213"></a>
+<span class="sourceLineNo">13214</span>                                                }<a name="line.13214"></a>
+<span class="sourceLineNo">13215</span>                                        }<a name="line.13215"></a>
+<span class="sourceLineNo">13216</span>                                } else {<a name="line.13216"></a>
+<span class="sourceLineNo">13217</span>                                        while (it.hasNext()) {<a name="line.13217"></a>
+<span class="sourceLineNo">13218</span>                                                final long iax = it.aLong;<a name="line.13218"></a>
+<span class="sourceLineNo">13219</span>                                                long ibx = it.bLong;<a name="line.13219"></a>
+<span class="sourceLineNo">13220</span>                                                long ox;<a name="line.13220"></a>
+<span class="sourceLineNo">13221</span>                                                ox = toLong(Math.max(iax, ibx));<a name="line.13221"></a>
+<span class="sourceLineNo">13222</span>                                                oai64data[it.oIndex] = ox;<a name="line.13222"></a>
+<span class="sourceLineNo">13223</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13223"></a>
+<span class="sourceLineNo">13224</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.13224"></a>
+<span class="sourceLineNo">13225</span>                                                        ox = toLong(Math.max(iax, ibx));<a name="line.13225"></a>
+<span class="sourceLineNo">13226</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.13226"></a>
+<span class="sourceLineNo">13227</span>                                                }<a name="line.13227"></a>
+<span class="sourceLineNo">13228</span>                                        }<a name="line.13228"></a>
+<span class="sourceLineNo">13229</span>                                }<a name="line.13229"></a>
+<span class="sourceLineNo">13230</span>                        } else if (as &gt; bs) {<a name="line.13230"></a>
+<span class="sourceLineNo">13231</span>                                if (it.isOutputDouble()) {<a name="line.13231"></a>
+<span class="sourceLineNo">13232</span>                                        while (it.hasNext()) {<a name="line.13232"></a>
+<span class="sourceLineNo">13233</span>                                                double iax = it.aDouble;<a name="line.13233"></a>
+<span class="sourceLineNo">13234</span>                                                final double ibx = it.bDouble;<a name="line.13234"></a>
+<span class="sourceLineNo">13235</span>                                                long ox;<a name="line.13235"></a>
+<span class="sourceLineNo">13236</span>                                                ox = toLong(Math.max(iax, ibx));<a name="line.13236"></a>
+<span class="sourceLineNo">13237</span>                                                oai64data[it.oIndex] = ox;<a name="line.13237"></a>
+<span class="sourceLineNo">13238</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13238"></a>
+<span class="sourceLineNo">13239</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.13239"></a>
+<span class="sourceLineNo">13240</span>                                                        ox = toLong(Math.max(iax, ibx));<a name="line.13240"></a>
+<span class="sourceLineNo">13241</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.13241"></a>
+<span class="sourceLineNo">13242</span>                                                }<a name="line.13242"></a>
+<span class="sourceLineNo">13243</span>                                        }<a name="line.13243"></a>
+<span class="sourceLineNo">13244</span>                                } else {<a name="line.13244"></a>
+<span class="sourceLineNo">13245</span>                                        while (it.hasNext()) {<a name="line.13245"></a>
+<span class="sourceLineNo">13246</span>                                                long iax = it.aLong;<a name="line.13246"></a>
+<span class="sourceLineNo">13247</span>                                                final long ibx = it.bLong;<a name="line.13247"></a>
+<span class="sourceLineNo">13248</span>                                                long ox;<a name="line.13248"></a>
+<span class="sourceLineNo">13249</span>                                                ox = toLong(Math.max(iax, ibx));<a name="line.13249"></a>
+<span class="sourceLineNo">13250</span>                                                oai64data[it.oIndex] = ox;<a name="line.13250"></a>
+<span class="sourceLineNo">13251</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13251"></a>
+<span class="sourceLineNo">13252</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.13252"></a>
+<span class="sourceLineNo">13253</span>                                                        ox = toLong(Math.max(iax, ibx));<a name="line.13253"></a>
+<span class="sourceLineNo">13254</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.13254"></a>
+<span class="sourceLineNo">13255</span>                                                }<a name="line.13255"></a>
+<span class="sourceLineNo">13256</span>                                        }<a name="line.13256"></a>
+<span class="sourceLineNo">13257</span>                                }<a name="line.13257"></a>
+<span class="sourceLineNo">13258</span>                        } else if (as == 1) {<a name="line.13258"></a>
+<span class="sourceLineNo">13259</span>                                if (it.isOutputDouble()) {<a name="line.13259"></a>
+<span class="sourceLineNo">13260</span>                                        while (it.hasNext()) {<a name="line.13260"></a>
+<span class="sourceLineNo">13261</span>                                                final double iax = it.aDouble;<a name="line.13261"></a>
+<span class="sourceLineNo">13262</span>                                                final double ibx = it.bDouble;<a name="line.13262"></a>
+<span class="sourceLineNo">13263</span>                                                long ox;<a name="line.13263"></a>
+<span class="sourceLineNo">13264</span>                                                ox = toLong(Math.max(iax, ibx));<a name="line.13264"></a>
+<span class="sourceLineNo">13265</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.13265"></a>
+<span class="sourceLineNo">13266</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.13266"></a>
+<span class="sourceLineNo">13267</span>                                                }<a name="line.13267"></a>
+<span class="sourceLineNo">13268</span>                                        }<a name="line.13268"></a>
+<span class="sourceLineNo">13269</span>                                } else {<a name="line.13269"></a>
+<span class="sourceLineNo">13270</span>                                        while (it.hasNext()) {<a name="line.13270"></a>
+<span class="sourceLineNo">13271</span>                                                final long iax = it.aLong;<a name="line.13271"></a>
+<span class="sourceLineNo">13272</span>                                                final long ibx = it.bLong;<a name="line.13272"></a>
+<span class="sourceLineNo">13273</span>                                                long ox;<a name="line.13273"></a>
+<span class="sourceLineNo">13274</span>                                                ox = toLong(Math.max(iax, ibx));<a name="line.13274"></a>
+<span class="sourceLineNo">13275</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.13275"></a>
+<span class="sourceLineNo">13276</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.13276"></a>
+<span class="sourceLineNo">13277</span>                                                }<a name="line.13277"></a>
+<span class="sourceLineNo">13278</span>                                        }<a name="line.13278"></a>
+<span class="sourceLineNo">13279</span>                                }<a name="line.13279"></a>
+<span class="sourceLineNo">13280</span>                        } else {<a name="line.13280"></a>
+<span class="sourceLineNo">13281</span>                                if (it.isOutputDouble()) {<a name="line.13281"></a>
+<span class="sourceLineNo">13282</span>                                        while (it.hasNext()) {<a name="line.13282"></a>
+<span class="sourceLineNo">13283</span>                                                double iax = it.aDouble;<a name="line.13283"></a>
+<span class="sourceLineNo">13284</span>                                                double ibx = it.bDouble;<a name="line.13284"></a>
+<span class="sourceLineNo">13285</span>                                                long ox;<a name="line.13285"></a>
+<span class="sourceLineNo">13286</span>                                                ox = toLong(Math.max(iax, ibx));<a name="line.13286"></a>
+<span class="sourceLineNo">13287</span>                                                oai64data[it.oIndex] = ox;<a name="line.13287"></a>
+<span class="sourceLineNo">13288</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13288"></a>
+<span class="sourceLineNo">13289</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.13289"></a>
+<span class="sourceLineNo">13290</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.13290"></a>
+<span class="sourceLineNo">13291</span>                                                        ox = toLong(Math.max(iax, ibx));<a name="line.13291"></a>
+<span class="sourceLineNo">13292</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.13292"></a>
+<span class="sourceLineNo">13293</span>                                                }<a name="line.13293"></a>
+<span class="sourceLineNo">13294</span>                                        }<a name="line.13294"></a>
+<span class="sourceLineNo">13295</span>                                } else {<a name="line.13295"></a>
+<span class="sourceLineNo">13296</span>                                        while (it.hasNext()) {<a name="line.13296"></a>
+<span class="sourceLineNo">13297</span>                                                long iax = it.aLong;<a name="line.13297"></a>
+<span class="sourceLineNo">13298</span>                                                long ibx = it.bLong;<a name="line.13298"></a>
+<span class="sourceLineNo">13299</span>                                                long ox;<a name="line.13299"></a>
+<span class="sourceLineNo">13300</span>                                                ox = toLong(Math.max(iax, ibx));<a name="line.13300"></a>
+<span class="sourceLineNo">13301</span>                                                oai64data[it.oIndex] = ox;<a name="line.13301"></a>
+<span class="sourceLineNo">13302</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13302"></a>
+<span class="sourceLineNo">13303</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.13303"></a>
+<span class="sourceLineNo">13304</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.13304"></a>
+<span class="sourceLineNo">13305</span>                                                        ox = toLong(Math.max(iax, ibx));<a name="line.13305"></a>
+<span class="sourceLineNo">13306</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.13306"></a>
+<span class="sourceLineNo">13307</span>                                                }<a name="line.13307"></a>
+<span class="sourceLineNo">13308</span>                                        }<a name="line.13308"></a>
+<span class="sourceLineNo">13309</span>                                }<a name="line.13309"></a>
+<span class="sourceLineNo">13310</span>                        }<a name="line.13310"></a>
+<span class="sourceLineNo">13311</span>                        break;<a name="line.13311"></a>
+<span class="sourceLineNo">13312</span>                case Dataset.ARRAYINT32:<a name="line.13312"></a>
+<span class="sourceLineNo">13313</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.13313"></a>
+<span class="sourceLineNo">13314</span>                        if (is == 1) {<a name="line.13314"></a>
+<span class="sourceLineNo">13315</span>                                if (it.isOutputDouble()) {<a name="line.13315"></a>
+<span class="sourceLineNo">13316</span>                                        while (it.hasNext()) {<a name="line.13316"></a>
+<span class="sourceLineNo">13317</span>                                                final double iax = it.aDouble;<a name="line.13317"></a>
+<span class="sourceLineNo">13318</span>                                                final double ibx = it.bDouble;<a name="line.13318"></a>
+<span class="sourceLineNo">13319</span>                                                int ox;<a name="line.13319"></a>
+<span class="sourceLineNo">13320</span>                                                ox = (int) toLong(Math.max(iax, ibx));<a name="line.13320"></a>
+<span class="sourceLineNo">13321</span>                                                oai32data[it.oIndex] = ox;<a name="line.13321"></a>
+<span class="sourceLineNo">13322</span>                                        }<a name="line.13322"></a>
+<span class="sourceLineNo">13323</span>                                } else {<a name="line.13323"></a>
+<span class="sourceLineNo">13324</span>                                        while (it.hasNext()) {<a name="line.13324"></a>
+<span class="sourceLineNo">13325</span>                                                final long iax = it.aLong;<a name="line.13325"></a>
+<span class="sourceLineNo">13326</span>                                                final long ibx = it.bLong;<a name="line.13326"></a>
+<span class="sourceLineNo">13327</span>                                                int ox;<a name="line.13327"></a>
+<span class="sourceLineNo">13328</span>                                                ox = (int) toLong(Math.max(iax, ibx));<a name="line.13328"></a>
+<span class="sourceLineNo">13329</span>                                                oai32data[it.oIndex] = ox;<a name="line.13329"></a>
+<span class="sourceLineNo">13330</span>                                        }<a name="line.13330"></a>
+<span class="sourceLineNo">13331</span>                                }<a name="line.13331"></a>
+<span class="sourceLineNo">13332</span>                        } else if (as &lt; bs) {<a name="line.13332"></a>
+<span class="sourceLineNo">13333</span>                                if (it.isOutputDouble()) {<a name="line.13333"></a>
+<span class="sourceLineNo">13334</span>                                        while (it.hasNext()) {<a name="line.13334"></a>
+<span class="sourceLineNo">13335</span>                                                final double iax = it.aDouble;<a name="line.13335"></a>
+<span class="sourceLineNo">13336</span>                                                double ibx = it.bDouble;<a name="line.13336"></a>
+<span class="sourceLineNo">13337</span>                                                int ox;<a name="line.13337"></a>
+<span class="sourceLineNo">13338</span>                                                ox = (int) toLong(Math.max(iax, ibx));<a name="line.13338"></a>
+<span class="sourceLineNo">13339</span>                                                oai32data[it.oIndex] = ox;<a name="line.13339"></a>
+<span class="sourceLineNo">13340</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13340"></a>
+<span class="sourceLineNo">13341</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.13341"></a>
+<span class="sourceLineNo">13342</span>                                                        ox = (int) toLong(Math.max(iax, ibx));<a name="line.13342"></a>
+<span class="sourceLineNo">13343</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.13343"></a>
+<span class="sourceLineNo">13344</span>                                                }<a name="line.13344"></a>
+<span class="sourceLineNo">13345</span>                                        }<a name="line.13345"></a>
+<span class="sourceLineNo">13346</span>                                } else {<a name="line.13346"></a>
+<span class="sourceLineNo">13347</span>                                        while (it.hasNext()) {<a name="line.13347"></a>
+<span class="sourceLineNo">13348</span>                                                final long iax = it.aLong;<a name="line.13348"></a>
+<span class="sourceLineNo">13349</span>                                                long ibx = it.bLong;<a name="line.13349"></a>
+<span class="sourceLineNo">13350</span>                                                int ox;<a name="line.13350"></a>
+<span class="sourceLineNo">13351</span>                                                ox = (int) toLong(Math.max(iax, ibx));<a name="line.13351"></a>
+<span class="sourceLineNo">13352</span>                                                oai32data[it.oIndex] = ox;<a name="line.13352"></a>
+<span class="sourceLineNo">13353</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13353"></a>
+<span class="sourceLineNo">13354</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.13354"></a>
+<span class="sourceLineNo">13355</span>                                                        ox = (int) toLong(Math.max(iax, ibx));<a name="line.13355"></a>
+<span class="sourceLineNo">13356</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.13356"></a>
+<span class="sourceLineNo">13357</span>                                                }<a name="line.13357"></a>
+<span class="sourceLineNo">13358</span>                                        }<a name="line.13358"></a>
+<span class="sourceLineNo">13359</span>                                }<a name="line.13359"></a>
+<span class="sourceLineNo">13360</span>                        } else if (as &gt; bs) {<a name="line.13360"></a>
+<span class="sourceLineNo">13361</span>                                if (it.isOutputDouble()) {<a name="line.13361"></a>
+<span class="sourceLineNo">13362</span>                                        while (it.hasNext()) {<a name="line.13362"></a>
+<span class="sourceLineNo">13363</span>                                                double iax = it.aDouble;<a name="line.13363"></a>
+<span class="sourceLineNo">13364</span>                                                final double ibx = it.bDouble;<a name="line.13364"></a>
+<span class="sourceLineNo">13365</span>                                                int ox;<a name="line.13365"></a>
+<span class="sourceLineNo">13366</span>                                                ox = (int) toLong(Math.max(iax, ibx));<a name="line.13366"></a>
+<span class="sourceLineNo">13367</span>                                                oai32data[it.oIndex] = ox;<a name="line.13367"></a>
+<span class="sourceLineNo">13368</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13368"></a>
+<span class="sourceLineNo">13369</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.13369"></a>
+<span class="sourceLineNo">13370</span>                                                        ox = (int) toLong(Math.max(iax, ibx));<a name="line.13370"></a>
+<span class="sourceLineNo">13371</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.13371"></a>
+<span class="sourceLineNo">13372</span>                                                }<a name="line.13372"></a>
+<span class="sourceLineNo">13373</span>                                        }<a name="line.13373"></a>
+<span class="sourceLineNo">13374</span>                                } else {<a name="line.13374"></a>
+<span class="sourceLineNo">13375</span>                                        while (it.hasNext()) {<a name="line.13375"></a>
+<span class="sourceLineNo">13376</span>                                                long iax = it.aLong;<a name="line.13376"></a>
+<span class="sourceLineNo">13377</span>                                                final long ibx = it.bLong;<a name="line.13377"></a>
+<span class="sourceLineNo">13378</span>                                                int ox;<a name="line.13378"></a>
+<span class="sourceLineNo">13379</span>                                                ox = (int) toLong(Math.max(iax, ibx));<a name="line.13379"></a>
+<span class="sourceLineNo">13380</span>                                                oai32data[it.oIndex] = ox;<a name="line.13380"></a>
+<span class="sourceLineNo">13381</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13381"></a>
+<span class="sourceLineNo">13382</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.13382"></a>
+<span class="sourceLineNo">13383</span>                                                        ox = (int) toLong(Math.max(iax, ibx));<a name="line.13383"></a>
+<span class="sourceLineNo">13384</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.13384"></a>
+<span class="sourceLineNo">13385</span>                                                }<a name="line.13385"></a>
+<span class="sourceLineNo">13386</span>                                        }<a name="line.13386"></a>
+<span class="sourceLineNo">13387</span>                                }<a name="line.13387"></a>
+<span class="sourceLineNo">13388</span>                        } else if (as == 1) {<a name="line.13388"></a>
+<span class="sourceLineNo">13389</span>                                if (it.isOutputDouble()) {<a name="line.13389"></a>
+<span class="sourceLineNo">13390</span>                                        while (it.hasNext()) {<a name="line.13390"></a>
+<span class="sourceLineNo">13391</span>                                                final double iax = it.aDouble;<a name="line.13391"></a>
+<span class="sourceLineNo">13392</span>                                                final double ibx = it.bDouble;<a name="line.13392"></a>
+<span class="sourceLineNo">13393</span>                                                int ox;<a name="line.13393"></a>
+<span class="sourceLineNo">13394</span>                                                ox = (int) toLong(Math.max(iax, ibx));<a name="line.13394"></a>
+<span class="sourceLineNo">13395</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.13395"></a>
+<span class="sourceLineNo">13396</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.13396"></a>
+<span class="sourceLineNo">13397</span>                                                }<a name="line.13397"></a>
+<span class="sourceLineNo">13398</span>                                        }<a name="line.13398"></a>
+<span class="sourceLineNo">13399</span>                                } else {<a name="line.13399"></a>
+<span class="sourceLineNo">13400</span>                                        while (it.hasNext()) {<a name="line.13400"></a>
+<span class="sourceLineNo">13401</span>                                                final long iax = it.aLong;<a name="line.13401"></a>
+<span class="sourceLineNo">13402</span>                                                final long ibx = it.bLong;<a name="line.13402"></a>
+<span class="sourceLineNo">13403</span>                                                int ox;<a name="line.13403"></a>
+<span class="sourceLineNo">13404</span>                                                ox = (int) toLong(Math.max(iax, ibx));<a name="line.13404"></a>
+<span class="sourceLineNo">13405</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.13405"></a>
+<span class="sourceLineNo">13406</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.13406"></a>
+<span class="sourceLineNo">13407</span>                                                }<a name="line.13407"></a>
+<span class="sourceLineNo">13408</span>                                        }<a name="line.13408"></a>
+<span class="sourceLineNo">13409</span>                                }<a name="line.13409"></a>
+<span class="sourceLineNo">13410</span>                        } else {<a name="line.13410"></a>
+<span class="sourceLineNo">13411</span>                                if (it.isOutputDouble()) {<a name="line.13411"></a>
+<span class="sourceLineNo">13412</span>                                        while (it.hasNext()) {<a name="line.13412"></a>
+<span class="sourceLineNo">13413</span>                                                double iax = it.aDouble;<a name="line.13413"></a>
+<span class="sourceLineNo">13414</span>                                                double ibx = it.bDouble;<a name="line.13414"></a>
+<span class="sourceLineNo">13415</span>                                                int ox;<a name="line.13415"></a>
+<span class="sourceLineNo">13416</span>                                                ox = (int) toLong(Math.max(iax, ibx));<a name="line.13416"></a>
+<span class="sourceLineNo">13417</span>                                                oai32data[it.oIndex] = ox;<a name="line.13417"></a>
+<span class="sourceLineNo">13418</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13418"></a>
+<span class="sourceLineNo">13419</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.13419"></a>
+<span class="sourceLineNo">13420</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.13420"></a>
+<span class="sourceLineNo">13421</span>                                                        ox = (int) toLong(Math.max(iax, ibx));<a name="line.13421"></a>
+<span class="sourceLineNo">13422</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.13422"></a>
+<span class="sourceLineNo">13423</span>                                                }<a name="line.13423"></a>
+<span class="sourceLineNo">13424</span>                                        }<a name="line.13424"></a>
+<span class="sourceLineNo">13425</span>                                } else {<a name="line.13425"></a>
+<span class="sourceLineNo">13426</span>                                        while (it.hasNext()) {<a name="line.13426"></a>
+<span class="sourceLineNo">13427</span>                                                long iax = it.aLong;<a name="line.13427"></a>
+<span class="sourceLineNo">13428</span>                                                long ibx = it.bLong;<a name="line.13428"></a>
+<span class="sourceLineNo">13429</span>                                                int ox;<a name="line.13429"></a>
+<span class="sourceLineNo">13430</span>                                                ox = (int) toLong(Math.max(iax, ibx));<a name="line.13430"></a>
+<span class="sourceLineNo">13431</span>                                                oai32data[it.oIndex] = ox;<a name="line.13431"></a>
+<span class="sourceLineNo">13432</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13432"></a>
+<span class="sourceLineNo">13433</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.13433"></a>
+<span class="sourceLineNo">13434</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.13434"></a>
+<span class="sourceLineNo">13435</span>                                                        ox = (int) toLong(Math.max(iax, ibx));<a name="line.13435"></a>
+<span class="sourceLineNo">13436</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.13436"></a>
+<span class="sourceLineNo">13437</span>                                                }<a name="line.13437"></a>
+<span class="sourceLineNo">13438</span>                                        }<a name="line.13438"></a>
+<span class="sourceLineNo">13439</span>                                }<a name="line.13439"></a>
+<span class="sourceLineNo">13440</span>                        }<a name="line.13440"></a>
+<span class="sourceLineNo">13441</span>                        break;<a name="line.13441"></a>
+<span class="sourceLineNo">13442</span>                case Dataset.FLOAT32:<a name="line.13442"></a>
+<span class="sourceLineNo">13443</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.13443"></a>
+<span class="sourceLineNo">13444</span>                        if (it.isOutputDouble()) {<a name="line.13444"></a>
+<span class="sourceLineNo">13445</span>                                while (it.hasNext()) {<a name="line.13445"></a>
+<span class="sourceLineNo">13446</span>                                        final double iax = it.aDouble;<a name="line.13446"></a>
+<span class="sourceLineNo">13447</span>                                        final double ibx = it.bDouble;<a name="line.13447"></a>
+<span class="sourceLineNo">13448</span>                                        float ox;<a name="line.13448"></a>
+<span class="sourceLineNo">13449</span>                                        ox = (float) (Math.max(iax, ibx));<a name="line.13449"></a>
+<span class="sourceLineNo">13450</span>                                        of32data[it.oIndex] = ox;<a name="line.13450"></a>
+<span class="sourceLineNo">13451</span>                                }<a name="line.13451"></a>
+<span class="sourceLineNo">13452</span>                        } else {<a name="line.13452"></a>
+<span class="sourceLineNo">13453</span>                                while (it.hasNext()) {<a name="line.13453"></a>
+<span class="sourceLineNo">13454</span>                                        final long iax = it.aLong;<a name="line.13454"></a>
+<span class="sourceLineNo">13455</span>                                        final long ibx = it.bLong;<a name="line.13455"></a>
+<span class="sourceLineNo">13456</span>                                        float ox;<a name="line.13456"></a>
+<span class="sourceLineNo">13457</span>                                        ox = (float) (Math.max(iax, ibx));<a name="line.13457"></a>
+<span class="sourceLineNo">13458</span>                                        of32data[it.oIndex] = ox;<a name="line.13458"></a>
+<span class="sourceLineNo">13459</span>                                }<a name="line.13459"></a>
+<span class="sourceLineNo">13460</span>                        }<a name="line.13460"></a>
+<span class="sourceLineNo">13461</span>                        break;<a name="line.13461"></a>
+<span class="sourceLineNo">13462</span>                case Dataset.FLOAT64:<a name="line.13462"></a>
+<span class="sourceLineNo">13463</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.13463"></a>
+<span class="sourceLineNo">13464</span>                        if (it.isOutputDouble()) {<a name="line.13464"></a>
+<span class="sourceLineNo">13465</span>                                while (it.hasNext()) {<a name="line.13465"></a>
+<span class="sourceLineNo">13466</span>                                        final double iax = it.aDouble;<a name="line.13466"></a>
+<span class="sourceLineNo">13467</span>                                        final double ibx = it.bDouble;<a name="line.13467"></a>
+<span class="sourceLineNo">13468</span>                                        double ox;<a name="line.13468"></a>
+<span class="sourceLineNo">13469</span>                                        ox = (Math.max(iax, ibx));<a name="line.13469"></a>
+<span class="sourceLineNo">13470</span>                                        of64data[it.oIndex] = ox;<a name="line.13470"></a>
+<span class="sourceLineNo">13471</span>                                }<a name="line.13471"></a>
+<span class="sourceLineNo">13472</span>                        } else {<a name="line.13472"></a>
+<span class="sourceLineNo">13473</span>                                while (it.hasNext()) {<a name="line.13473"></a>
+<span class="sourceLineNo">13474</span>                                        final long iax = it.aLong;<a name="line.13474"></a>
+<span class="sourceLineNo">13475</span>                                        final long ibx = it.bLong;<a name="line.13475"></a>
+<span class="sourceLineNo">13476</span>                                        double ox;<a name="line.13476"></a>
+<span class="sourceLineNo">13477</span>                                        ox = (Math.max(iax, ibx));<a name="line.13477"></a>
+<span class="sourceLineNo">13478</span>                                        of64data[it.oIndex] = ox;<a name="line.13478"></a>
+<span class="sourceLineNo">13479</span>                                }<a name="line.13479"></a>
+<span class="sourceLineNo">13480</span>                        }<a name="line.13480"></a>
+<span class="sourceLineNo">13481</span>                        break;<a name="line.13481"></a>
+<span class="sourceLineNo">13482</span>                case Dataset.ARRAYFLOAT32:<a name="line.13482"></a>
+<span class="sourceLineNo">13483</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.13483"></a>
+<span class="sourceLineNo">13484</span>                        if (is == 1) {<a name="line.13484"></a>
+<span class="sourceLineNo">13485</span>                                if (it.isOutputDouble()) {<a name="line.13485"></a>
+<span class="sourceLineNo">13486</span>                                        while (it.hasNext()) {<a name="line.13486"></a>
+<span class="sourceLineNo">13487</span>                                                final double iax = it.aDouble;<a name="line.13487"></a>
+<span class="sourceLineNo">13488</span>                                                final double ibx = it.bDouble;<a name="line.13488"></a>
+<span class="sourceLineNo">13489</span>                                                float ox;<a name="line.13489"></a>
+<span class="sourceLineNo">13490</span>                                                ox = (float) (Math.max(iax, ibx));<a name="line.13490"></a>
+<span class="sourceLineNo">13491</span>                                                oaf32data[it.oIndex] = ox;<a name="line.13491"></a>
+<span class="sourceLineNo">13492</span>                                        }<a name="line.13492"></a>
+<span class="sourceLineNo">13493</span>                                } else {<a name="line.13493"></a>
+<span class="sourceLineNo">13494</span>                                        while (it.hasNext()) {<a name="line.13494"></a>
+<span class="sourceLineNo">13495</span>                                                final long iax = it.aLong;<a name="line.13495"></a>
+<span class="sourceLineNo">13496</span>                                                final long ibx = it.bLong;<a name="line.13496"></a>
+<span class="sourceLineNo">13497</span>                                                float ox;<a name="line.13497"></a>
+<span class="sourceLineNo">13498</span>                                                ox = (float) (Math.max(iax, ibx));<a name="line.13498"></a>
+<span class="sourceLineNo">13499</span>                                                oaf32data[it.oIndex] = ox;<a name="line.13499"></a>
+<span class="sourceLineNo">13500</span>                                        }<a name="line.13500"></a>
+<span class="sourceLineNo">13501</span>                                }<a name="line.13501"></a>
+<span class="sourceLineNo">13502</span>                        } else if (as &lt; bs) {<a name="line.13502"></a>
+<span class="sourceLineNo">13503</span>                                if (it.isOutputDouble()) {<a name="line.13503"></a>
+<span class="sourceLineNo">13504</span>                                        while (it.hasNext()) {<a name="line.13504"></a>
+<span class="sourceLineNo">13505</span>                                                final double iax = it.aDouble;<a name="line.13505"></a>
+<span class="sourceLineNo">13506</span>                                                double ibx = it.bDouble;<a name="line.13506"></a>
+<span class="sourceLineNo">13507</span>                                                float ox;<a name="line.13507"></a>
+<span class="sourceLineNo">13508</span>                                                ox = (float) (Math.max(iax, ibx));<a name="line.13508"></a>
+<span class="sourceLineNo">13509</span>                                                oaf32data[it.oIndex] = ox;<a name="line.13509"></a>
+<span class="sourceLineNo">13510</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13510"></a>
+<span class="sourceLineNo">13511</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.13511"></a>
+<span class="sourceLineNo">13512</span>                                                        ox = (float) (Math.max(iax, ibx));<a name="line.13512"></a>
+<span class="sourceLineNo">13513</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.13513"></a>
+<span class="sourceLineNo">13514</span>                                                }<a name="line.13514"></a>
+<span class="sourceLineNo">13515</span>                                        }<a name="line.13515"></a>
+<span class="sourceLineNo">13516</span>                                } else {<a name="line.13516"></a>
+<span class="sourceLineNo">13517</span>                                        while (it.hasNext()) {<a name="line.13517"></a>
+<span class="sourceLineNo">13518</span>                                                final long iax = it.aLong;<a name="line.13518"></a>
+<span class="sourceLineNo">13519</span>                                                long ibx = it.bLong;<a name="line.13519"></a>
+<span class="sourceLineNo">13520</span>                                                float ox;<a name="line.13520"></a>
+<span class="sourceLineNo">13521</span>                                                ox = (float) (Math.max(iax, ibx));<a name="line.13521"></a>
+<span class="sourceLineNo">13522</span>                                                oaf32data[it.oIndex] = ox;<a name="line.13522"></a>
+<span class="sourceLineNo">13523</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13523"></a>
+<span class="sourceLineNo">13524</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.13524"></a>
+<span class="sourceLineNo">13525</span>                                                        ox = (float) (Math.max(iax, ibx));<a name="line.13525"></a>
+<span class="sourceLineNo">13526</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.13526"></a>
+<span class="sourceLineNo">13527</span>                                                }<a name="line.13527"></a>
+<span class="sourceLineNo">13528</span>                                        }<a name="line.13528"></a>
+<span class="sourceLineNo">13529</span>                                }<a name="line.13529"></a>
+<span class="sourceLineNo">13530</span>                        } else if (as &gt; bs) {<a name="line.13530"></a>
+<span class="sourceLineNo">13531</span>                                if (it.isOutputDouble()) {<a name="line.13531"></a>
+<span class="sourceLineNo">13532</span>                                        while (it.hasNext()) {<a name="line.13532"></a>
+<span class="sourceLineNo">13533</span>                                                double iax = it.aDouble;<a name="line.13533"></a>
+<span class="sourceLineNo">13534</span>                                                final double ibx = it.bDouble;<a name="line.13534"></a>
+<span class="sourceLineNo">13535</span>                                                float ox;<a name="line.13535"></a>
+<span class="sourceLineNo">13536</span>                                                ox = (float) (Math.max(iax, ibx));<a name="line.13536"></a>
+<span class="sourceLineNo">13537</span>                                                oaf32data[it.oIndex] = ox;<a name="line.13537"></a>
+<span class="sourceLineNo">13538</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13538"></a>
+<span class="sourceLineNo">13539</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.13539"></a>
+<span class="sourceLineNo">13540</span>                                                        ox = (float) (Math.max(iax, ibx));<a name="line.13540"></a>
+<span class="sourceLineNo">13541</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.13541"></a>
+<span class="sourceLineNo">13542</span>                                                }<a name="line.13542"></a>
+<span class="sourceLineNo">13543</span>                                        }<a name="line.13543"></a>
+<span class="sourceLineNo">13544</span>                                } else {<a name="line.13544"></a>
+<span class="sourceLineNo">13545</span>                                        while (it.hasNext()) {<a name="line.13545"></a>
+<span class="sourceLineNo">13546</span>                                                long iax = it.aLong;<a name="line.13546"></a>
+<span class="sourceLineNo">13547</span>                                                final long ibx = it.bLong;<a name="line.13547"></a>
+<span class="sourceLineNo">13548</span>                                                float ox;<a name="line.13548"></a>
+<span class="sourceLineNo">13549</span>                                                ox = (float) (Math.max(iax, ibx));<a name="line.13549"></a>
+<span class="sourceLineNo">13550</span>                                                oaf32data[it.oIndex] = ox;<a name="line.13550"></a>
+<span class="sourceLineNo">13551</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13551"></a>
+<span class="sourceLineNo">13552</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.13552"></a>
+<span class="sourceLineNo">13553</span>                                                        ox = (float) (Math.max(iax, ibx));<a name="line.13553"></a>
+<span class="sourceLineNo">13554</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.13554"></a>
+<span class="sourceLineNo">13555</span>                                                }<a name="line.13555"></a>
+<span class="sourceLineNo">13556</span>                                        }<a name="line.13556"></a>
+<span class="sourceLineNo">13557</span>                                }<a name="line.13557"></a>
+<span class="sourceLineNo">13558</span>                        } else if (as == 1) {<a name="line.13558"></a>
+<span class="sourceLineNo">13559</span>                                if (it.isOutputDouble()) {<a name="line.13559"></a>
+<span class="sourceLineNo">13560</span>                                        while (it.hasNext()) {<a name="line.13560"></a>
+<span class="sourceLineNo">13561</span>                                                final double iax = it.aDouble;<a name="line.13561"></a>
+<span class="sourceLineNo">13562</span>                                                final double ibx = it.bDouble;<a name="line.13562"></a>
+<span class="sourceLineNo">13563</span>                                                float ox;<a name="line.13563"></a>
+<span class="sourceLineNo">13564</span>                                                ox = (float) (Math.max(iax, ibx));<a name="line.13564"></a>
+<span class="sourceLineNo">13565</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.13565"></a>
+<span class="sourceLineNo">13566</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.13566"></a>
+<span class="sourceLineNo">13567</span>                                                }<a name="line.13567"></a>
+<span class="sourceLineNo">13568</span>                                        }<a name="line.13568"></a>
+<span class="sourceLineNo">13569</span>                                } else {<a name="line.13569"></a>
+<span class="sourceLineNo">13570</span>                                        while (it.hasNext()) {<a name="line.13570"></a>
+<span class="sourceLineNo">13571</span>                                                final long iax = it.aLong;<a name="line.13571"></a>
+<span class="sourceLineNo">13572</span>                                                final long ibx = it.bLong;<a name="line.13572"></a>
+<span class="sourceLineNo">13573</span>                                                float ox;<a name="line.13573"></a>
+<span class="sourceLineNo">13574</span>                                                ox = (float) (Math.max(iax, ibx));<a name="line.13574"></a>
+<span class="sourceLineNo">13575</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.13575"></a>
+<span class="sourceLineNo">13576</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.13576"></a>
+<span class="sourceLineNo">13577</span>                                                }<a name="line.13577"></a>
+<span class="sourceLineNo">13578</span>                                        }<a name="line.13578"></a>
+<span class="sourceLineNo">13579</span>                                }<a name="line.13579"></a>
+<span class="sourceLineNo">13580</span>                        } else {<a name="line.13580"></a>
+<span class="sourceLineNo">13581</span>                                if (it.isOutputDouble()) {<a name="line.13581"></a>
+<span class="sourceLineNo">13582</span>                                        while (it.hasNext()) {<a name="line.13582"></a>
+<span class="sourceLineNo">13583</span>                                                double iax = it.aDouble;<a name="line.13583"></a>
+<span class="sourceLineNo">13584</span>                                                double ibx = it.bDouble;<a name="line.13584"></a>
+<span class="sourceLineNo">13585</span>                                                float ox;<a name="line.13585"></a>
+<span class="sourceLineNo">13586</span>                                                ox = (float) (Math.max(iax, ibx));<a name="line.13586"></a>
+<span class="sourceLineNo">13587</span>                                                oaf32data[it.oIndex] = ox;<a name="line.13587"></a>
+<span class="sourceLineNo">13588</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13588"></a>
+<span class="sourceLineNo">13589</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.13589"></a>
+<span class="sourceLineNo">13590</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.13590"></a>
+<span class="sourceLineNo">13591</span>                                                        ox = (float) (Math.max(iax, ibx));<a name="line.13591"></a>
+<span class="sourceLineNo">13592</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.13592"></a>
+<span class="sourceLineNo">13593</span>                                                }<a name="line.13593"></a>
+<span class="sourceLineNo">13594</span>                                        }<a name="line.13594"></a>
+<span class="sourceLineNo">13595</span>                                } else {<a name="line.13595"></a>
+<span class="sourceLineNo">13596</span>                                        while (it.hasNext()) {<a name="line.13596"></a>
+<span class="sourceLineNo">13597</span>                                                long iax = it.aLong;<a name="line.13597"></a>
+<span class="sourceLineNo">13598</span>                                                long ibx = it.bLong;<a name="line.13598"></a>
+<span class="sourceLineNo">13599</span>                                                float ox;<a name="line.13599"></a>
+<span class="sourceLineNo">13600</span>                                                ox = (float) (Math.max(iax, ibx));<a name="line.13600"></a>
+<span class="sourceLineNo">13601</span>                                                oaf32data[it.oIndex] = ox;<a name="line.13601"></a>
+<span class="sourceLineNo">13602</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13602"></a>
+<span class="sourceLineNo">13603</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.13603"></a>
+<span class="sourceLineNo">13604</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.13604"></a>
+<span class="sourceLineNo">13605</span>                                                        ox = (float) (Math.max(iax, ibx));<a name="line.13605"></a>
+<span class="sourceLineNo">13606</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.13606"></a>
+<span class="sourceLineNo">13607</span>                                                }<a name="line.13607"></a>
+<span class="sourceLineNo">13608</span>                                        }<a name="line.13608"></a>
+<span class="sourceLineNo">13609</span>                                }<a name="line.13609"></a>
+<span class="sourceLineNo">13610</span>                        }<a name="line.13610"></a>
+<span class="sourceLineNo">13611</span>                        break;<a name="line.13611"></a>
+<span class="sourceLineNo">13612</span>                case Dataset.ARRAYFLOAT64:<a name="line.13612"></a>
+<span class="sourceLineNo">13613</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.13613"></a>
+<span class="sourceLineNo">13614</span>                        if (is == 1) {<a name="line.13614"></a>
+<span class="sourceLineNo">13615</span>                                if (it.isOutputDouble()) {<a name="line.13615"></a>
+<span class="sourceLineNo">13616</span>                                        while (it.hasNext()) {<a name="line.13616"></a>
+<span class="sourceLineNo">13617</span>                                                final double iax = it.aDouble;<a name="line.13617"></a>
+<span class="sourceLineNo">13618</span>                                                final double ibx = it.bDouble;<a name="line.13618"></a>
+<span class="sourceLineNo">13619</span>                                                double ox;<a name="line.13619"></a>
+<span class="sourceLineNo">13620</span>                                                ox = (Math.max(iax, ibx));<a name="line.13620"></a>
+<span class="sourceLineNo">13621</span>                                                oaf64data[it.oIndex] = ox;<a name="line.13621"></a>
+<span class="sourceLineNo">13622</span>                                        }<a name="line.13622"></a>
+<span class="sourceLineNo">13623</span>                                } else {<a name="line.13623"></a>
+<span class="sourceLineNo">13624</span>                                        while (it.hasNext()) {<a name="line.13624"></a>
+<span class="sourceLineNo">13625</span>                                                final long iax = it.aLong;<a name="line.13625"></a>
+<span class="sourceLineNo">13626</span>                                                final long ibx = it.bLong;<a name="line.13626"></a>
+<span class="sourceLineNo">13627</span>                                                double ox;<a name="line.13627"></a>
+<span class="sourceLineNo">13628</span>                                                ox = (Math.max(iax, ibx));<a name="line.13628"></a>
+<span class="sourceLineNo">13629</span>                                                oaf64data[it.oIndex] = ox;<a name="line.13629"></a>
+<span class="sourceLineNo">13630</span>                                        }<a name="line.13630"></a>
+<span class="sourceLineNo">13631</span>                                }<a name="line.13631"></a>
+<span class="sourceLineNo">13632</span>                        } else if (as &lt; bs) {<a name="line.13632"></a>
+<span class="sourceLineNo">13633</span>                                if (it.isOutputDouble()) {<a name="line.13633"></a>
+<span class="sourceLineNo">13634</span>                                        while (it.hasNext()) {<a name="line.13634"></a>
+<span class="sourceLineNo">13635</span>                                                final double iax = it.aDouble;<a name="line.13635"></a>
+<span class="sourceLineNo">13636</span>                                                double ibx = it.bDouble;<a name="line.13636"></a>
+<span class="sourceLineNo">13637</span>                                                double ox;<a name="line.13637"></a>
+<span class="sourceLineNo">13638</span>                                                ox = (Math.max(iax, ibx));<a name="line.13638"></a>
+<span class="sourceLineNo">13639</span>                                                oaf64data[it.oIndex] = ox;<a name="line.13639"></a>
+<span class="sourceLineNo">13640</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13640"></a>
+<span class="sourceLineNo">13641</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.13641"></a>
+<span class="sourceLineNo">13642</span>                                                        ox = (Math.max(iax, ibx));<a name="line.13642"></a>
+<span class="sourceLineNo">13643</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.13643"></a>
+<span class="sourceLineNo">13644</span>                                                }<a name="line.13644"></a>
+<span class="sourceLineNo">13645</span>                                        }<a name="line.13645"></a>
+<span class="sourceLineNo">13646</span>                                } else {<a name="line.13646"></a>
+<span class="sourceLineNo">13647</span>                                        while (it.hasNext()) {<a name="line.13647"></a>
+<span class="sourceLineNo">13648</span>                                                final long iax = it.aLong;<a name="line.13648"></a>
+<span class="sourceLineNo">13649</span>                                                long ibx = it.bLong;<a name="line.13649"></a>
+<span class="sourceLineNo">13650</span>                                                double ox;<a name="line.13650"></a>
+<span class="sourceLineNo">13651</span>                                                ox = (Math.max(iax, ibx));<a name="line.13651"></a>
+<span class="sourceLineNo">13652</span>                                                oaf64data[it.oIndex] = ox;<a name="line.13652"></a>
+<span class="sourceLineNo">13653</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13653"></a>
+<span class="sourceLineNo">13654</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.13654"></a>
+<span class="sourceLineNo">13655</span>                                                        ox = (Math.max(iax, ibx));<a name="line.13655"></a>
+<span class="sourceLineNo">13656</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.13656"></a>
+<span class="sourceLineNo">13657</span>                                                }<a name="line.13657"></a>
+<span class="sourceLineNo">13658</span>                                        }<a name="line.13658"></a>
+<span class="sourceLineNo">13659</span>                                }<a name="line.13659"></a>
+<span class="sourceLineNo">13660</span>                        } else if (as &gt; bs) {<a name="line.13660"></a>
+<span class="sourceLineNo">13661</span>                                if (it.isOutputDouble()) {<a name="line.13661"></a>
+<span class="sourceLineNo">13662</span>                                        while (it.hasNext()) {<a name="line.13662"></a>
+<span class="sourceLineNo">13663</span>                                                double iax = it.aDouble;<a name="line.13663"></a>
+<span class="sourceLineNo">13664</span>                                                final double ibx = it.bDouble;<a name="line.13664"></a>
+<span class="sourceLineNo">13665</span>                                                double ox;<a name="line.13665"></a>
+<span class="sourceLineNo">13666</span>                                                ox = (Math.max(iax, ibx));<a name="line.13666"></a>
+<span class="sourceLineNo">13667</span>                                                oaf64data[it.oIndex] = ox;<a name="line.13667"></a>
+<span class="sourceLineNo">13668</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13668"></a>
+<span class="sourceLineNo">13669</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.13669"></a>
+<span class="sourceLineNo">13670</span>                                                        ox = (Math.max(iax, ibx));<a name="line.13670"></a>
+<span class="sourceLineNo">13671</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.13671"></a>
+<span class="sourceLineNo">13672</span>                                                }<a name="line.13672"></a>
+<span class="sourceLineNo">13673</span>                                        }<a name="line.13673"></a>
+<span class="sourceLineNo">13674</span>                                } else {<a name="line.13674"></a>
+<span class="sourceLineNo">13675</span>                                        while (it.hasNext()) {<a name="line.13675"></a>
+<span class="sourceLineNo">13676</span>                                                long iax = it.aLong;<a name="line.13676"></a>
+<span class="sourceLineNo">13677</span>                                                final long ibx = it.bLong;<a name="line.13677"></a>
+<span class="sourceLineNo">13678</span>                                                double ox;<a name="line.13678"></a>
+<span class="sourceLineNo">13679</span>                                                ox = (Math.max(iax, ibx));<a name="line.13679"></a>
+<span class="sourceLineNo">13680</span>                                                oaf64data[it.oIndex] = ox;<a name="line.13680"></a>
+<span class="sourceLineNo">13681</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13681"></a>
+<span class="sourceLineNo">13682</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.13682"></a>
+<span class="sourceLineNo">13683</span>                                                        ox = (Math.max(iax, ibx));<a name="line.13683"></a>
+<span class="sourceLineNo">13684</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.13684"></a>
+<span class="sourceLineNo">13685</span>                                                }<a name="line.13685"></a>
+<span class="sourceLineNo">13686</span>                                        }<a name="line.13686"></a>
+<span class="sourceLineNo">13687</span>                                }<a name="line.13687"></a>
+<span class="sourceLineNo">13688</span>                        } else if (as == 1) {<a name="line.13688"></a>
+<span class="sourceLineNo">13689</span>                                if (it.isOutputDouble()) {<a name="line.13689"></a>
+<span class="sourceLineNo">13690</span>                                        while (it.hasNext()) {<a name="line.13690"></a>
+<span class="sourceLineNo">13691</span>                                                final double iax = it.aDouble;<a name="line.13691"></a>
+<span class="sourceLineNo">13692</span>                                                final double ibx = it.bDouble;<a name="line.13692"></a>
+<span class="sourceLineNo">13693</span>                                                double ox;<a name="line.13693"></a>
+<span class="sourceLineNo">13694</span>                                                ox = (Math.max(iax, ibx));<a name="line.13694"></a>
+<span class="sourceLineNo">13695</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.13695"></a>
+<span class="sourceLineNo">13696</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.13696"></a>
+<span class="sourceLineNo">13697</span>                                                }<a name="line.13697"></a>
+<span class="sourceLineNo">13698</span>                                        }<a name="line.13698"></a>
+<span class="sourceLineNo">13699</span>                                } else {<a name="line.13699"></a>
+<span class="sourceLineNo">13700</span>                                        while (it.hasNext()) {<a name="line.13700"></a>
+<span class="sourceLineNo">13701</span>                                                final long iax = it.aLong;<a name="line.13701"></a>
+<span class="sourceLineNo">13702</span>                                                final long ibx = it.bLong;<a name="line.13702"></a>
+<span class="sourceLineNo">13703</span>                                                double ox;<a name="line.13703"></a>
+<span class="sourceLineNo">13704</span>                                                ox = (Math.max(iax, ibx));<a name="line.13704"></a>
+<span class="sourceLineNo">13705</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.13705"></a>
+<span class="sourceLineNo">13706</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.13706"></a>
+<span class="sourceLineNo">13707</span>                                                }<a name="line.13707"></a>
+<span class="sourceLineNo">13708</span>                                        }<a name="line.13708"></a>
+<span class="sourceLineNo">13709</span>                                }<a name="line.13709"></a>
+<span class="sourceLineNo">13710</span>                        } else {<a name="line.13710"></a>
+<span class="sourceLineNo">13711</span>                                if (it.isOutputDouble()) {<a name="line.13711"></a>
+<span class="sourceLineNo">13712</span>                                        while (it.hasNext()) {<a name="line.13712"></a>
+<span class="sourceLineNo">13713</span>                                                double iax = it.aDouble;<a name="line.13713"></a>
+<span class="sourceLineNo">13714</span>                                                double ibx = it.bDouble;<a name="line.13714"></a>
+<span class="sourceLineNo">13715</span>                                                double ox;<a name="line.13715"></a>
+<span class="sourceLineNo">13716</span>                                                ox = (Math.max(iax, ibx));<a name="line.13716"></a>
+<span class="sourceLineNo">13717</span>                                                oaf64data[it.oIndex] = ox;<a name="line.13717"></a>
+<span class="sourceLineNo">13718</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13718"></a>
+<span class="sourceLineNo">13719</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.13719"></a>
+<span class="sourceLineNo">13720</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.13720"></a>
+<span class="sourceLineNo">13721</span>                                                        ox = (Math.max(iax, ibx));<a name="line.13721"></a>
+<span class="sourceLineNo">13722</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.13722"></a>
+<span class="sourceLineNo">13723</span>                                                }<a name="line.13723"></a>
+<span class="sourceLineNo">13724</span>                                        }<a name="line.13724"></a>
+<span class="sourceLineNo">13725</span>                                } else {<a name="line.13725"></a>
+<span class="sourceLineNo">13726</span>                                        while (it.hasNext()) {<a name="line.13726"></a>
+<span class="sourceLineNo">13727</span>                                                long iax = it.aLong;<a name="line.13727"></a>
+<span class="sourceLineNo">13728</span>                                                long ibx = it.bLong;<a name="line.13728"></a>
+<span class="sourceLineNo">13729</span>                                                double ox;<a name="line.13729"></a>
+<span class="sourceLineNo">13730</span>                                                ox = (Math.max(iax, ibx));<a name="line.13730"></a>
+<span class="sourceLineNo">13731</span>                                                oaf64data[it.oIndex] = ox;<a name="line.13731"></a>
+<span class="sourceLineNo">13732</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.13732"></a>
+<span class="sourceLineNo">13733</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.13733"></a>
+<span class="sourceLineNo">13734</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.13734"></a>
+<span class="sourceLineNo">13735</span>                                                        ox = (Math.max(iax, ibx));<a name="line.13735"></a>
+<span class="sourceLineNo">13736</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.13736"></a>
+<span class="sourceLineNo">13737</span>                                                }<a name="line.13737"></a>
+<span class="sourceLineNo">13738</span>                                        }<a name="line.13738"></a>
+<span class="sourceLineNo">13739</span>                                }<a name="line.13739"></a>
+<span class="sourceLineNo">13740</span>                        }<a name="line.13740"></a>
+<span class="sourceLineNo">13741</span>                        break;<a name="line.13741"></a>
+<span class="sourceLineNo">13742</span>                case Dataset.COMPLEX64:<a name="line.13742"></a>
+<span class="sourceLineNo">13743</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.13743"></a>
+<span class="sourceLineNo">13744</span>                        if (!da.isComplex()) {<a name="line.13744"></a>
+<span class="sourceLineNo">13745</span>                                if (it.isOutputDouble()) {<a name="line.13745"></a>
+<span class="sourceLineNo">13746</span>                                        final double iay = 0;<a name="line.13746"></a>
+<span class="sourceLineNo">13747</span>                                        if (db.isComplex()) {<a name="line.13747"></a>
+<span class="sourceLineNo">13748</span>                                                while (it.hasNext()) {<a name="line.13748"></a>
+<span class="sourceLineNo">13749</span>                                                        final double iax = it.aDouble;<a name="line.13749"></a>
+<span class="sourceLineNo">13750</span>                                                        final double ibx = it.bDouble;<a name="line.13750"></a>
+<span class="sourceLineNo">13751</span>                                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.13751"></a>
+<span class="sourceLineNo">13752</span>                                                        float ox;<a name="line.13752"></a>
+<span class="sourceLineNo">13753</span>                                                        float oy;<a name="line.13753"></a>
+<span class="sourceLineNo">13754</span>                                                        if (Double.isNaN(iax) || Double.isNaN(iay)) {<a name="line.13754"></a>
+<span class="sourceLineNo">13755</span>                                                                ox = (float) (iax);<a name="line.13755"></a>
+<span class="sourceLineNo">13756</span>                                                                oy = (float) (iay);<a name="line.13756"></a>
+<span class="sourceLineNo">13757</span>                                                        } else if (Double.isNaN(ibx) || Double.isNaN(iby)) {<a name="line.13757"></a>
+<span class="sourceLineNo">13758</span>                                                                ox = (float) (ibx);<a name="line.13758"></a>
+<span class="sourceLineNo">13759</span>                                                                oy = (float) (iby);<a name="line.13759"></a>
+<span class="sourceLineNo">13760</span>                                                        } else {<a name="line.13760"></a>
+<span class="sourceLineNo">13761</span>                                                                ox = (float) (Math.max(iax, ibx));<a name="line.13761"></a>
+<span class="sourceLineNo">13762</span>                                                                oy = (float) (Math.max(iay, iby));<a name="line.13762"></a>
+<span class="sourceLineNo">13763</span>                                                        }<a name="line.13763"></a>
+<span class="sourceLineNo">13764</span>                                                        oc64data[it.oIndex] = ox;<a name="line.13764"></a>
+<span class="sourceLineNo">13765</span>                                                        oc64data[it.oIndex + 1] = oy;<a name="line.13765"></a>
+<span class="sourceLineNo">13766</span>                                                }<a name="line.13766"></a>
+<span class="sourceLineNo">13767</span>                                        } else {<a name="line.13767"></a>
+<span class="sourceLineNo">13768</span>                                                while (it.hasNext()) {<a name="line.13768"></a>
+<span class="sourceLineNo">13769</span>                                                        final double iax = it.aDouble;<a name="line.13769"></a>
+<span class="sourceLineNo">13770</span>                                                        final double ibx = it.bDouble;<a name="line.13770"></a>
+<span class="sourceLineNo">13771</span>                                                        final double iby = 0;<a name="line.13771"></a>
+<span class="sourceLineNo">13772</span>                                                        float ox;<a name="line.13772"></a>
+<span class="sourceLineNo">13773</span>                                                        float oy;<a name="line.13773"></a>
+<span class="sourceLineNo">13774</span>                                                        if (Double.isNaN(iax) || Double.isNaN(iay)) {<a name="line.13774"></a>
+<span class="sourceLineNo">13775</span>                                                                ox = (float) (iax);<a name="line.13775"></a>
+<span class="sourceLineNo">13776</span>                                                                oy = (float) (iay);<a name="line.13776"></a>
+<span class="sourceLineNo">13777</span>                                                        } else if (Double.isNaN(ibx) || Double.isNaN(iby)) {<a name="line.13777"></a>
+<span class="sourceLineNo">13778</span>                                                                ox = (float) (ibx);<a name="line.13778"></a>
+<span class="sourceLineNo">13779</span>                                                                oy = (float) (iby);<a name="line.13779"></a>
+<span class="sourceLineNo">13780</span>                                                        } else {<a name="line.13780"></a>
+<span class="sourceLineNo">13781</span>                                                                ox = (float) (Math.max(iax, ibx));<a name="line.13781"></a>
+<span class="sourceLineNo">13782</span>                                                                oy = (float) (Math.max(iay, iby));<a name="line.13782"></a>
+<span class="sourceLineNo">13783</span>                                                        }<a name="line.13783"></a>
+<span class="sourceLineNo">13784</span>                                                        oc64data[it.oIndex] = ox;<a name="line.13784"></a>
+<span class="sourceLineNo">13785</span>                                                        oc64data[it.oIndex + 1] = oy;<a name="line.13785"></a>
+<span class="sourceLineNo">13786</span>                                                }<a name="line.13786"></a>
+<span class="sourceLineNo">13787</span>                                        }<a name="line.13787"></a>
+<span class="sourceLineNo">13788</span>                                } else {<a name="line.13788"></a>
+<span class="sourceLineNo">13789</span>                                        final long iay = 0;<a name="line.13789"></a>
+<span class="sourceLineNo">13790</span>                                        while (it.hasNext()) {<a name="line.13790"></a>
+<span class="sourceLineNo">13791</span>                                                final long iax = it.aLong;<a name="line.13791"></a>
+<span class="sourceLineNo">13792</span>                                                final long ibx = it.bLong;<a name="line.13792"></a>
+<span class="sourceLineNo">13793</span>                                                final long iby = 0;<a name="line.13793"></a>
+<span class="sourceLineNo">13794</span>                                                float ox;<a name="line.13794"></a>
+<span class="sourceLineNo">13795</span>                                                float oy;<a name="line.13795"></a>
+<span class="sourceLineNo">13796</span>                                                if (Double.isNaN(iax) || Double.isNaN(iay)) {<a name="line.13796"></a>
+<span class="sourceLineNo">13797</span>                                                        ox = (float) (iax);<a name="line.13797"></a>
+<span class="sourceLineNo">13798</span>                                                        oy = (float) (iay);<a name="line.13798"></a>
+<span class="sourceLineNo">13799</span>                                                } else if (Double.isNaN(ibx) || Double.isNaN(iby)) {<a name="line.13799"></a>
+<span class="sourceLineNo">13800</span>                                                        ox = (float) (ibx);<a name="line.13800"></a>
+<span class="sourceLineNo">13801</span>                                                        oy = (float) (iby);<a name="line.13801"></a>
+<span class="sourceLineNo">13802</span>                                                } else {<a name="line.13802"></a>
+<span class="sourceLineNo">13803</span>                                                        ox = (float) (Math.max(iax, ibx));<a name="line.13803"></a>
+<span class="sourceLineNo">13804</span>                                                        oy = (float) (Math.max(iay, iby));<a name="line.13804"></a>
+<span class="sourceLineNo">13805</span>                                                }<a name="line.13805"></a>
+<span class="sourceLineNo">13806</span>                                                oc64data[it.oIndex] = ox;<a name="line.13806"></a>
+<span class="sourceLineNo">13807</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.13807"></a>
+<span class="sourceLineNo">13808</span>                                        }<a name="line.13808"></a>
+<span class="sourceLineNo">13809</span>                                }<a name="line.13809"></a>
+<span class="sourceLineNo">13810</span>                        } else if (!db.isComplex()) {<a name="line.13810"></a>
+<span class="sourceLineNo">13811</span>                                final double iby = 0;<a name="line.13811"></a>
+<span class="sourceLineNo">13812</span>                                while (it.hasNext()) {<a name="line.13812"></a>
+<span class="sourceLineNo">13813</span>                                        final double iax = it.aDouble;<a name="line.13813"></a>
+<span class="sourceLineNo">13814</span>                                        final double ibx = it.bDouble;<a name="line.13814"></a>
+<span class="sourceLineNo">13815</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.13815"></a>
+<span class="sourceLineNo">13816</span>                                        float ox;<a name="line.13816"></a>
+<span class="sourceLineNo">13817</span>                                        float oy;<a name="line.13817"></a>
+<span class="sourceLineNo">13818</span>                                        if (Double.isNaN(iax) || Double.isNaN(iay)) {<a name="line.13818"></a>
+<span class="sourceLineNo">13819</span>                                                ox = (float) (iax);<a name="line.13819"></a>
+<span class="sourceLineNo">13820</span>                                                oy = (float) (iay);<a name="line.13820"></a>
+<span class="sourceLineNo">13821</span>                                        } else if (Double.isNaN(ibx) || Double.isNaN(iby)) {<a name="line.13821"></a>
+<span class="sourceLineNo">13822</span>                                                ox = (float) (ibx);<a name="line.13822"></a>
+<span class="sourceLineNo">13823</span>                                                oy = (float) (iby);<a name="line.13823"></a>
+<span class="sourceLineNo">13824</span>                                        } else {<a name="line.13824"></a>
+<span class="sourceLineNo">13825</span>                                                ox = (float) (Math.max(iax, ibx));<a name="line.13825"></a>
+<span class="sourceLineNo">13826</span>                                                oy = (float) (Math.max(iay, iby));<a name="line.13826"></a>
+<span class="sourceLineNo">13827</span>                                        }<a name="line.13827"></a>
+<span class="sourceLineNo">13828</span>                                        oc64data[it.oIndex] = ox;<a name="line.13828"></a>
+<span class="sourceLineNo">13829</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.13829"></a>
+<span class="sourceLineNo">13830</span>                                }<a name="line.13830"></a>
+<span class="sourceLineNo">13831</span>                        } else {<a name="line.13831"></a>
+<span class="sourceLineNo">13832</span>                                while (it.hasNext()) {<a name="line.13832"></a>
+<span class="sourceLineNo">13833</span>                                        final double iax = it.aDouble;<a name="line.13833"></a>
+<span class="sourceLineNo">13834</span>                                        final double ibx = it.bDouble;<a name="line.13834"></a>
+<span class="sourceLineNo">13835</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.13835"></a>
+<span class="sourceLineNo">13836</span>                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.13836"></a>
+<span class="sourceLineNo">13837</span>                                        float ox;<a name="line.13837"></a>
+<span class="sourceLineNo">13838</span>                                        float oy;<a name="line.13838"></a>
+<span class="sourceLineNo">13839</span>                                        if (Double.isNaN(iax) || Double.isNaN(iay)) {<a name="line.13839"></a>
+<span class="sourceLineNo">13840</span>                                                ox = (float) (iax);<a name="line.13840"></a>
+<span class="sourceLineNo">13841</span>                                                oy = (float) (iay);<a name="line.13841"></a>
+<span class="sourceLineNo">13842</span>                                        } else if (Double.isNaN(ibx) || Double.isNaN(iby)) {<a name="line.13842"></a>
+<span class="sourceLineNo">13843</span>                                                ox = (float) (ibx);<a name="line.13843"></a>
+<span class="sourceLineNo">13844</span>                                                oy = (float) (iby);<a name="line.13844"></a>
+<span class="sourceLineNo">13845</span>                                        } else {<a name="line.13845"></a>
+<span class="sourceLineNo">13846</span>                                                ox = (float) (Math.max(iax, ibx));<a name="line.13846"></a>
+<span class="sourceLineNo">13847</span>                                                oy = (float) (Math.max(iay, iby));<a name="line.13847"></a>
+<span class="sourceLineNo">13848</span>                                        }<a name="line.13848"></a>
+<span class="sourceLineNo">13849</span>                                        oc64data[it.oIndex] = ox;<a name="line.13849"></a>
+<span class="sourceLineNo">13850</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.13850"></a>
+<span class="sourceLineNo">13851</span>                                }<a name="line.13851"></a>
+<span class="sourceLineNo">13852</span>                        }<a name="line.13852"></a>
+<span class="sourceLineNo">13853</span>                        break;<a name="line.13853"></a>
+<span class="sourceLineNo">13854</span>                case Dataset.COMPLEX128:<a name="line.13854"></a>
+<span class="sourceLineNo">13855</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.13855"></a>
+<span class="sourceLineNo">13856</span>                        if (!da.isComplex()) {<a name="line.13856"></a>
+<span class="sourceLineNo">13857</span>                                if (it.isOutputDouble()) {<a name="line.13857"></a>
+<span class="sourceLineNo">13858</span>                                        final double iay = 0;<a name="line.13858"></a>
+<span class="sourceLineNo">13859</span>                                        if (db.isComplex()) {<a name="line.13859"></a>
+<span class="sourceLineNo">13860</span>                                                while (it.hasNext()) {<a name="line.13860"></a>
+<span class="sourceLineNo">13861</span>                                                        final double iax = it.aDouble;<a name="line.13861"></a>
+<span class="sourceLineNo">13862</span>                                                        final double ibx = it.bDouble;<a name="line.13862"></a>
+<span class="sourceLineNo">13863</span>                                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.13863"></a>
+<span class="sourceLineNo">13864</span>                                                        double ox;<a name="line.13864"></a>
+<span class="sourceLineNo">13865</span>                                                        double oy;<a name="line.13865"></a>
+<span class="sourceLineNo">13866</span>                                                        if (Double.isNaN(iax) || Double.isNaN(iay)) {<a name="line.13866"></a>
+<span class="sourceLineNo">13867</span>                                                                ox = (iax);<a name="line.13867"></a>
+<span class="sourceLineNo">13868</span>                                                                oy = (iay);<a name="line.13868"></a>
+<span class="sourceLineNo">13869</span>                                                        } else if (Double.isNaN(ibx) || Double.isNaN(iby)) {<a name="line.13869"></a>
+<span class="sourceLineNo">13870</span>                                                                ox = (ibx);<a name="line.13870"></a>
+<span class="sourceLineNo">13871</span>                                                                oy = (iby);<a name="line.13871"></a>
+<span class="sourceLineNo">13872</span>                                                        } else {<a name="line.13872"></a>
+<span class="sourceLineNo">13873</span>                                                                ox = (Math.max(iax, ibx));<a name="line.13873"></a>
+<span class="sourceLineNo">13874</span>                                                                oy = (Math.max(iay, iby));<a name="line.13874"></a>
+<span class="sourceLineNo">13875</span>                                                        }<a name="line.13875"></a>
+<span class="sourceLineNo">13876</span>                                                        oc128data[it.oIndex] = ox;<a name="line.13876"></a>
+<span class="sourceLineNo">13877</span>                                                        oc128data[it.oIndex + 1] = oy;<a name="line.13877"></a>
+<span class="sourceLineNo">13878</span>                                                }<a name="line.13878"></a>
+<span class="sourceLineNo">13879</span>                                        } else {<a name="line.13879"></a>
+<span class="sourceLineNo">13880</span>                                                while (it.hasNext()) {<a name="line.13880"></a>
+<span class="sourceLineNo">13881</span>                                                        final double iax = it.aDouble;<a name="line.13881"></a>
+<span class="sourceLineNo">13882</span>                                                        final double ibx = it.bDouble;<a name="line.13882"></a>
+<span class="sourceLineNo">13883</span>                                                        final double iby = 0;<a name="line.13883"></a>
+<span class="sourceLineNo">13884</span>                                                        double ox;<a name="line.13884"></a>
+<span class="sourceLineNo">13885</span>                                                        double oy;<a name="line.13885"></a>
+<span class="sourceLineNo">13886</span>                                                        if (Double.isNaN(iax) || Double.isNaN(iay)) {<a name="line.13886"></a>
+<span class="sourceLineNo">13887</span>                                                                ox = (iax);<a name="line.13887"></a>
+<span class="sourceLineNo">13888</span>                                                                oy = (iay);<a name="line.13888"></a>
+<span class="sourceLineNo">13889</span>                                                        } else if (Double.isNaN(ibx) || Double.isNaN(iby)) {<a name="line.13889"></a>
+<span class="sourceLineNo">13890</span>                                                                ox = (ibx);<a name="line.13890"></a>
+<span class="sourceLineNo">13891</span>                                                                oy = (iby);<a name="line.13891"></a>
+<span class="sourceLineNo">13892</span>                                                        } else {<a name="line.13892"></a>
+<span class="sourceLineNo">13893</span>                                                                ox = (Math.max(iax, ibx));<a name="line.13893"></a>
+<span class="sourceLineNo">13894</span>                                                                oy = (Math.max(iay, iby));<a name="line.13894"></a>
+<span class="sourceLineNo">13895</span>                                                        }<a name="line.13895"></a>
+<span class="sourceLineNo">13896</span>                                                        oc128data[it.oIndex] = ox;<a name="line.13896"></a>
+<span class="sourceLineNo">13897</span>                                                        oc128data[it.oIndex + 1] = oy;<a name="line.13897"></a>
+<span class="sourceLineNo">13898</span>                                                }<a name="line.13898"></a>
+<span class="sourceLineNo">13899</span>                                        }<a name="line.13899"></a>
+<span class="sourceLineNo">13900</span>                                } else {<a name="line.13900"></a>
+<span class="sourceLineNo">13901</span>                                        final long iay = 0;<a name="line.13901"></a>
+<span class="sourceLineNo">13902</span>                                        while (it.hasNext()) {<a name="line.13902"></a>
+<span class="sourceLineNo">13903</span>                                                final long iax = it.aLong;<a name="line.13903"></a>
+<span class="sourceLineNo">13904</span>                                                final long ibx = it.bLong;<a name="line.13904"></a>
+<span class="sourceLineNo">13905</span>                                                final long iby = 0;<a name="line.13905"></a>
+<span class="sourceLineNo">13906</span>                                                double ox;<a name="line.13906"></a>
+<span class="sourceLineNo">13907</span>                                                double oy;<a name="line.13907"></a>
+<span class="sourceLineNo">13908</span>                                                if (Double.isNaN(iax) || Double.isNaN(iay)) {<a name="line.13908"></a>
+<span class="sourceLineNo">13909</span>                                                        ox = (iax);<a name="line.13909"></a>
+<span class="sourceLineNo">13910</span>                                                        oy = (iay);<a name="line.13910"></a>
+<span class="sourceLineNo">13911</span>                                                } else if (Double.isNaN(ibx) || Double.isNaN(iby)) {<a name="line.13911"></a>
+<span class="sourceLineNo">13912</span>                                                        ox = (ibx);<a name="line.13912"></a>
+<span class="sourceLineNo">13913</span>                                                        oy = (iby);<a name="line.13913"></a>
+<span class="sourceLineNo">13914</span>                                                } else {<a name="line.13914"></a>
+<span class="sourceLineNo">13915</span>                                                        ox = (double) (Math.max(iax, ibx));<a name="line.13915"></a>
+<span class="sourceLineNo">13916</span>                                                        oy = (double) (Math.max(iay, iby));<a name="line.13916"></a>
+<span class="sourceLineNo">13917</span>                                                }<a name="line.13917"></a>
+<span class="sourceLineNo">13918</span>                                                oc128data[it.oIndex] = ox;<a name="line.13918"></a>
+<span class="sourceLineNo">13919</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.13919"></a>
+<span class="sourceLineNo">13920</span>                                        }<a name="line.13920"></a>
+<span class="sourceLineNo">13921</span>                                }<a name="line.13921"></a>
+<span class="sourceLineNo">13922</span>                        } else if (!db.isComplex()) {<a name="line.13922"></a>
+<span class="sourceLineNo">13923</span>                                final double iby = 0;<a name="line.13923"></a>
+<span class="sourceLineNo">13924</span>                                while (it.hasNext()) {<a name="line.13924"></a>
+<span class="sourceLineNo">13925</span>                                        final double iax = it.aDouble;<a name="line.13925"></a>
+<span class="sourceLineNo">13926</span>                                        final double ibx = it.bDouble;<a name="line.13926"></a>
+<span class="sourceLineNo">13927</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.13927"></a>
+<span class="sourceLineNo">13928</span>                                        double ox;<a name="line.13928"></a>
+<span class="sourceLineNo">13929</span>                                        double oy;<a name="line.13929"></a>
+<span class="sourceLineNo">13930</span>                                        if (Double.isNaN(iax) || Double.isNaN(iay)) {<a name="line.13930"></a>
+<span class="sourceLineNo">13931</span>                                                ox = (iax);<a name="line.13931"></a>
+<span class="sourceLineNo">13932</span>                                                oy = (iay);<a name="line.13932"></a>
+<span class="sourceLineNo">13933</span>                                        } else if (Double.isNaN(ibx) || Double.isNaN(iby)) {<a name="line.13933"></a>
+<span class="sourceLineNo">13934</span>                                                ox = (ibx);<a name="line.13934"></a>
+<span class="sourceLineNo">13935</span>                                                oy = (iby);<a name="line.13935"></a>
+<span class="sourceLineNo">13936</span>                                        } else {<a name="line.13936"></a>
+<span class="sourceLineNo">13937</span>                                                ox = (Math.max(iax, ibx));<a name="line.13937"></a>
+<span class="sourceLineNo">13938</span>                                                oy = (Math.max(iay, iby));<a name="line.13938"></a>
+<span class="sourceLineNo">13939</span>                                        }<a name="line.13939"></a>
+<span class="sourceLineNo">13940</span>                                        oc128data[it.oIndex] = ox;<a name="line.13940"></a>
+<span class="sourceLineNo">13941</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.13941"></a>
+<span class="sourceLineNo">13942</span>                                }<a name="line.13942"></a>
+<span class="sourceLineNo">13943</span>                        } else {<a name="line.13943"></a>
+<span class="sourceLineNo">13944</span>                                while (it.hasNext()) {<a name="line.13944"></a>
+<span class="sourceLineNo">13945</span>                                        final double iax = it.aDouble;<a name="line.13945"></a>
+<span class="sourceLineNo">13946</span>                                        final double ibx = it.bDouble;<a name="line.13946"></a>
+<span class="sourceLineNo">13947</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.13947"></a>
+<span class="sourceLineNo">13948</span>                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.13948"></a>
+<span class="sourceLineNo">13949</span>                                        double ox;<a name="line.13949"></a>
+<span class="sourceLineNo">13950</span>                                        double oy;<a name="line.13950"></a>
+<span class="sourceLineNo">13951</span>                                        if (Double.isNaN(iax) || Double.isNaN(iay)) {<a name="line.13951"></a>
+<span class="sourceLineNo">13952</span>                                                ox = (iax);<a name="line.13952"></a>
+<span class="sourceLineNo">13953</span>                                                oy = (iay);<a name="line.13953"></a>
+<span class="sourceLineNo">13954</span>                                        } else if (Double.isNaN(ibx) || Double.isNaN(iby)) {<a name="line.13954"></a>
+<span class="sourceLineNo">13955</span>                                                ox = (ibx);<a name="line.13955"></a>
+<span class="sourceLineNo">13956</span>                                                oy = (iby);<a name="line.13956"></a>
+<span class="sourceLineNo">13957</span>                                        } else {<a name="line.13957"></a>
+<span class="sourceLineNo">13958</span>                                                ox = (Math.max(iax, ibx));<a name="line.13958"></a>
+<span class="sourceLineNo">13959</span>                                                oy = (Math.max(iay, iby));<a name="line.13959"></a>
+<span class="sourceLineNo">13960</span>                                        }<a name="line.13960"></a>
+<span class="sourceLineNo">13961</span>                                        oc128data[it.oIndex] = ox;<a name="line.13961"></a>
+<span class="sourceLineNo">13962</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.13962"></a>
+<span class="sourceLineNo">13963</span>                                }<a name="line.13963"></a>
+<span class="sourceLineNo">13964</span>                        }<a name="line.13964"></a>
+<span class="sourceLineNo">13965</span>                        break;<a name="line.13965"></a>
+<span class="sourceLineNo">13966</span>                default:<a name="line.13966"></a>
+<span class="sourceLineNo">13967</span>                        throw new IllegalArgumentException("maximum supports integer, compound integer, real, compound real, complex datasets only");<a name="line.13967"></a>
+<span class="sourceLineNo">13968</span>                }<a name="line.13968"></a>
+<span class="sourceLineNo">13969</span><a name="line.13969"></a>
+<span class="sourceLineNo">13970</span>                addBinaryOperatorName(da, db, result, "maximum");<a name="line.13970"></a>
+<span class="sourceLineNo">13971</span>                return result;<a name="line.13971"></a>
+<span class="sourceLineNo">13972</span>        }<a name="line.13972"></a>
+<span class="sourceLineNo">13973</span><a name="line.13973"></a>
+<span class="sourceLineNo">13974</span>        /**<a name="line.13974"></a>
+<span class="sourceLineNo">13975</span>         * minimum operator<a name="line.13975"></a>
+<span class="sourceLineNo">13976</span>         * @param a<a name="line.13976"></a>
+<span class="sourceLineNo">13977</span>         * @param b<a name="line.13977"></a>
+<span class="sourceLineNo">13978</span>         * @return return minimum of a and b<a name="line.13978"></a>
+<span class="sourceLineNo">13979</span>         */<a name="line.13979"></a>
+<span class="sourceLineNo">13980</span>        public static Dataset minimum(final Object a, final Object b) {<a name="line.13980"></a>
+<span class="sourceLineNo">13981</span>                return minimum(a, b, null);<a name="line.13981"></a>
+<span class="sourceLineNo">13982</span>        }<a name="line.13982"></a>
+<span class="sourceLineNo">13983</span><a name="line.13983"></a>
+<span class="sourceLineNo">13984</span>        /**<a name="line.13984"></a>
+<span class="sourceLineNo">13985</span>         * minimum operator<a name="line.13985"></a>
+<span class="sourceLineNo">13986</span>         * @param a<a name="line.13986"></a>
+<span class="sourceLineNo">13987</span>         * @param b<a name="line.13987"></a>
+<span class="sourceLineNo">13988</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.13988"></a>
+<span class="sourceLineNo">13989</span>         * @return return minimum of a and b<a name="line.13989"></a>
+<span class="sourceLineNo">13990</span>         */<a name="line.13990"></a>
+<span class="sourceLineNo">13991</span>        public static Dataset minimum(final Object a, final Object b, final Dataset o) {<a name="line.13991"></a>
+<span class="sourceLineNo">13992</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.13992"></a>
+<span class="sourceLineNo">13993</span>                Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.13993"></a>
+<span class="sourceLineNo">13994</span>                BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.13994"></a>
+<span class="sourceLineNo">13995</span>                final Dataset result = it.getOutput();<a name="line.13995"></a>
+<span class="sourceLineNo">13996</span>                if (!result.isComplex()) {<a name="line.13996"></a>
+<span class="sourceLineNo">13997</span>                        boolean change = false;<a name="line.13997"></a>
+<span class="sourceLineNo">13998</span>                        if (da.isComplex()) {<a name="line.13998"></a>
+<span class="sourceLineNo">13999</span>                                da = da.getRealView();<a name="line.13999"></a>
+<span class="sourceLineNo">14000</span>                                change = true;<a name="line.14000"></a>
+<span class="sourceLineNo">14001</span>                        }<a name="line.14001"></a>
+<span class="sourceLineNo">14002</span>                        if (db.isComplex()) {<a name="line.14002"></a>
+<span class="sourceLineNo">14003</span>                                db = db.getRealView();<a name="line.14003"></a>
+<span class="sourceLineNo">14004</span>                                change = true;<a name="line.14004"></a>
+<span class="sourceLineNo">14005</span>                        }<a name="line.14005"></a>
+<span class="sourceLineNo">14006</span>                        if (change) {<a name="line.14006"></a>
+<span class="sourceLineNo">14007</span>                                it = BroadcastIterator.createIterator(da, db, result, true);<a name="line.14007"></a>
+<span class="sourceLineNo">14008</span>                        }<a name="line.14008"></a>
+<span class="sourceLineNo">14009</span>                }<a name="line.14009"></a>
+<span class="sourceLineNo">14010</span>                final int is = result.getElementsPerItem();<a name="line.14010"></a>
+<span class="sourceLineNo">14011</span>                final int as = da.getElementsPerItem();<a name="line.14011"></a>
+<span class="sourceLineNo">14012</span>                final int bs = db.getElementsPerItem();<a name="line.14012"></a>
+<span class="sourceLineNo">14013</span>                final int dt = result.getDType();<a name="line.14013"></a>
+<span class="sourceLineNo">14014</span><a name="line.14014"></a>
+<span class="sourceLineNo">14015</span>                switch(dt) {<a name="line.14015"></a>
+<span class="sourceLineNo">14016</span>                case Dataset.INT8:<a name="line.14016"></a>
+<span class="sourceLineNo">14017</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.14017"></a>
+<span class="sourceLineNo">14018</span>                        if (it.isOutputDouble()) {<a name="line.14018"></a>
+<span class="sourceLineNo">14019</span>                                while (it.hasNext()) {<a name="line.14019"></a>
+<span class="sourceLineNo">14020</span>                                        final double iax = it.aDouble;<a name="line.14020"></a>
+<span class="sourceLineNo">14021</span>                                        final double ibx = it.bDouble;<a name="line.14021"></a>
+<span class="sourceLineNo">14022</span>                                        byte ox;<a name="line.14022"></a>
+<span class="sourceLineNo">14023</span>                                        ox = (byte) toLong(Math.min(iax, ibx));<a name="line.14023"></a>
+<span class="sourceLineNo">14024</span>                                        oi8data[it.oIndex] = ox;<a name="line.14024"></a>
+<span class="sourceLineNo">14025</span>                                }<a name="line.14025"></a>
+<span class="sourceLineNo">14026</span>                        } else {<a name="line.14026"></a>
+<span class="sourceLineNo">14027</span>                                while (it.hasNext()) {<a name="line.14027"></a>
+<span class="sourceLineNo">14028</span>                                        final long iax = it.aLong;<a name="line.14028"></a>
+<span class="sourceLineNo">14029</span>                                        final long ibx = it.bLong;<a name="line.14029"></a>
+<span class="sourceLineNo">14030</span>                                        byte ox;<a name="line.14030"></a>
+<span class="sourceLineNo">14031</span>                                        ox = (byte) toLong(Math.min(iax, ibx));<a name="line.14031"></a>
+<span class="sourceLineNo">14032</span>                                        oi8data[it.oIndex] = ox;<a name="line.14032"></a>
+<span class="sourceLineNo">14033</span>                                }<a name="line.14033"></a>
+<span class="sourceLineNo">14034</span>                        }<a name="line.14034"></a>
+<span class="sourceLineNo">14035</span>                        break;<a name="line.14035"></a>
+<span class="sourceLineNo">14036</span>                case Dataset.INT16:<a name="line.14036"></a>
+<span class="sourceLineNo">14037</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.14037"></a>
+<span class="sourceLineNo">14038</span>                        if (it.isOutputDouble()) {<a name="line.14038"></a>
+<span class="sourceLineNo">14039</span>                                while (it.hasNext()) {<a name="line.14039"></a>
+<span class="sourceLineNo">14040</span>                                        final double iax = it.aDouble;<a name="line.14040"></a>
+<span class="sourceLineNo">14041</span>                                        final double ibx = it.bDouble;<a name="line.14041"></a>
+<span class="sourceLineNo">14042</span>                                        short ox;<a name="line.14042"></a>
+<span class="sourceLineNo">14043</span>                                        ox = (short) toLong(Math.min(iax, ibx));<a name="line.14043"></a>
+<span class="sourceLineNo">14044</span>                                        oi16data[it.oIndex] = ox;<a name="line.14044"></a>
+<span class="sourceLineNo">14045</span>                                }<a name="line.14045"></a>
+<span class="sourceLineNo">14046</span>                        } else {<a name="line.14046"></a>
+<span class="sourceLineNo">14047</span>                                while (it.hasNext()) {<a name="line.14047"></a>
+<span class="sourceLineNo">14048</span>                                        final long iax = it.aLong;<a name="line.14048"></a>
+<span class="sourceLineNo">14049</span>                                        final long ibx = it.bLong;<a name="line.14049"></a>
+<span class="sourceLineNo">14050</span>                                        short ox;<a name="line.14050"></a>
+<span class="sourceLineNo">14051</span>                                        ox = (short) toLong(Math.min(iax, ibx));<a name="line.14051"></a>
+<span class="sourceLineNo">14052</span>                                        oi16data[it.oIndex] = ox;<a name="line.14052"></a>
+<span class="sourceLineNo">14053</span>                                }<a name="line.14053"></a>
+<span class="sourceLineNo">14054</span>                        }<a name="line.14054"></a>
+<span class="sourceLineNo">14055</span>                        break;<a name="line.14055"></a>
+<span class="sourceLineNo">14056</span>                case Dataset.INT64:<a name="line.14056"></a>
+<span class="sourceLineNo">14057</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.14057"></a>
+<span class="sourceLineNo">14058</span>                        if (it.isOutputDouble()) {<a name="line.14058"></a>
+<span class="sourceLineNo">14059</span>                                while (it.hasNext()) {<a name="line.14059"></a>
+<span class="sourceLineNo">14060</span>                                        final double iax = it.aDouble;<a name="line.14060"></a>
+<span class="sourceLineNo">14061</span>                                        final double ibx = it.bDouble;<a name="line.14061"></a>
+<span class="sourceLineNo">14062</span>                                        long ox;<a name="line.14062"></a>
+<span class="sourceLineNo">14063</span>                                        ox = toLong(Math.min(iax, ibx));<a name="line.14063"></a>
+<span class="sourceLineNo">14064</span>                                        oi64data[it.oIndex] = ox;<a name="line.14064"></a>
+<span class="sourceLineNo">14065</span>                                }<a name="line.14065"></a>
+<span class="sourceLineNo">14066</span>                        } else {<a name="line.14066"></a>
+<span class="sourceLineNo">14067</span>                                while (it.hasNext()) {<a name="line.14067"></a>
+<span class="sourceLineNo">14068</span>                                        final long iax = it.aLong;<a name="line.14068"></a>
+<span class="sourceLineNo">14069</span>                                        final long ibx = it.bLong;<a name="line.14069"></a>
+<span class="sourceLineNo">14070</span>                                        long ox;<a name="line.14070"></a>
+<span class="sourceLineNo">14071</span>                                        ox = toLong(Math.min(iax, ibx));<a name="line.14071"></a>
+<span class="sourceLineNo">14072</span>                                        oi64data[it.oIndex] = ox;<a name="line.14072"></a>
+<span class="sourceLineNo">14073</span>                                }<a name="line.14073"></a>
+<span class="sourceLineNo">14074</span>                        }<a name="line.14074"></a>
+<span class="sourceLineNo">14075</span>                        break;<a name="line.14075"></a>
+<span class="sourceLineNo">14076</span>                case Dataset.INT32:<a name="line.14076"></a>
+<span class="sourceLineNo">14077</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.14077"></a>
+<span class="sourceLineNo">14078</span>                        if (it.isOutputDouble()) {<a name="line.14078"></a>
+<span class="sourceLineNo">14079</span>                                while (it.hasNext()) {<a name="line.14079"></a>
+<span class="sourceLineNo">14080</span>                                        final double iax = it.aDouble;<a name="line.14080"></a>
+<span class="sourceLineNo">14081</span>                                        final double ibx = it.bDouble;<a name="line.14081"></a>
+<span class="sourceLineNo">14082</span>                                        int ox;<a name="line.14082"></a>
+<span class="sourceLineNo">14083</span>                                        ox = (int) toLong(Math.min(iax, ibx));<a name="line.14083"></a>
+<span class="sourceLineNo">14084</span>                                        oi32data[it.oIndex] = ox;<a name="line.14084"></a>
+<span class="sourceLineNo">14085</span>                                }<a name="line.14085"></a>
+<span class="sourceLineNo">14086</span>                        } else {<a name="line.14086"></a>
+<span class="sourceLineNo">14087</span>                                while (it.hasNext()) {<a name="line.14087"></a>
+<span class="sourceLineNo">14088</span>                                        final long iax = it.aLong;<a name="line.14088"></a>
+<span class="sourceLineNo">14089</span>                                        final long ibx = it.bLong;<a name="line.14089"></a>
+<span class="sourceLineNo">14090</span>                                        int ox;<a name="line.14090"></a>
+<span class="sourceLineNo">14091</span>                                        ox = (int) toLong(Math.min(iax, ibx));<a name="line.14091"></a>
+<span class="sourceLineNo">14092</span>                                        oi32data[it.oIndex] = ox;<a name="line.14092"></a>
+<span class="sourceLineNo">14093</span>                                }<a name="line.14093"></a>
+<span class="sourceLineNo">14094</span>                        }<a name="line.14094"></a>
+<span class="sourceLineNo">14095</span>                        break;<a name="line.14095"></a>
+<span class="sourceLineNo">14096</span>                case Dataset.ARRAYINT8:<a name="line.14096"></a>
+<span class="sourceLineNo">14097</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.14097"></a>
+<span class="sourceLineNo">14098</span>                        if (is == 1) {<a name="line.14098"></a>
+<span class="sourceLineNo">14099</span>                                if (it.isOutputDouble()) {<a name="line.14099"></a>
+<span class="sourceLineNo">14100</span>                                        while (it.hasNext()) {<a name="line.14100"></a>
+<span class="sourceLineNo">14101</span>                                                final double iax = it.aDouble;<a name="line.14101"></a>
+<span class="sourceLineNo">14102</span>                                                final double ibx = it.bDouble;<a name="line.14102"></a>
+<span class="sourceLineNo">14103</span>                                                byte ox;<a name="line.14103"></a>
+<span class="sourceLineNo">14104</span>                                                ox = (byte) toLong(Math.min(iax, ibx));<a name="line.14104"></a>
+<span class="sourceLineNo">14105</span>                                                oai8data[it.oIndex] = ox;<a name="line.14105"></a>
+<span class="sourceLineNo">14106</span>                                        }<a name="line.14106"></a>
+<span class="sourceLineNo">14107</span>                                } else {<a name="line.14107"></a>
+<span class="sourceLineNo">14108</span>                                        while (it.hasNext()) {<a name="line.14108"></a>
+<span class="sourceLineNo">14109</span>                                                final long iax = it.aLong;<a name="line.14109"></a>
+<span class="sourceLineNo">14110</span>                                                final long ibx = it.bLong;<a name="line.14110"></a>
+<span class="sourceLineNo">14111</span>                                                byte ox;<a name="line.14111"></a>
+<span class="sourceLineNo">14112</span>                                                ox = (byte) toLong(Math.min(iax, ibx));<a name="line.14112"></a>
+<span class="sourceLineNo">14113</span>                                                oai8data[it.oIndex] = ox;<a name="line.14113"></a>
+<span class="sourceLineNo">14114</span>                                        }<a name="line.14114"></a>
+<span class="sourceLineNo">14115</span>                                }<a name="line.14115"></a>
+<span class="sourceLineNo">14116</span>                        } else if (as &lt; bs) {<a name="line.14116"></a>
+<span class="sourceLineNo">14117</span>                                if (it.isOutputDouble()) {<a name="line.14117"></a>
+<span class="sourceLineNo">14118</span>                                        while (it.hasNext()) {<a name="line.14118"></a>
+<span class="sourceLineNo">14119</span>                                                final double iax = it.aDouble;<a name="line.14119"></a>
+<span class="sourceLineNo">14120</span>                                                double ibx = it.bDouble;<a name="line.14120"></a>
+<span class="sourceLineNo">14121</span>                                                byte ox;<a name="line.14121"></a>
+<span class="sourceLineNo">14122</span>                                                ox = (byte) toLong(Math.min(iax, ibx));<a name="line.14122"></a>
+<span class="sourceLineNo">14123</span>                                                oai8data[it.oIndex] = ox;<a name="line.14123"></a>
+<span class="sourceLineNo">14124</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14124"></a>
+<span class="sourceLineNo">14125</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.14125"></a>
+<span class="sourceLineNo">14126</span>                                                        ox = (byte) toLong(Math.min(iax, ibx));<a name="line.14126"></a>
+<span class="sourceLineNo">14127</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.14127"></a>
+<span class="sourceLineNo">14128</span>                                                }<a name="line.14128"></a>
+<span class="sourceLineNo">14129</span>                                        }<a name="line.14129"></a>
+<span class="sourceLineNo">14130</span>                                } else {<a name="line.14130"></a>
+<span class="sourceLineNo">14131</span>                                        while (it.hasNext()) {<a name="line.14131"></a>
+<span class="sourceLineNo">14132</span>                                                final long iax = it.aLong;<a name="line.14132"></a>
+<span class="sourceLineNo">14133</span>                                                long ibx = it.bLong;<a name="line.14133"></a>
+<span class="sourceLineNo">14134</span>                                                byte ox;<a name="line.14134"></a>
+<span class="sourceLineNo">14135</span>                                                ox = (byte) toLong(Math.min(iax, ibx));<a name="line.14135"></a>
+<span class="sourceLineNo">14136</span>                                                oai8data[it.oIndex] = ox;<a name="line.14136"></a>
+<span class="sourceLineNo">14137</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14137"></a>
+<span class="sourceLineNo">14138</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.14138"></a>
+<span class="sourceLineNo">14139</span>                                                        ox = (byte) toLong(Math.min(iax, ibx));<a name="line.14139"></a>
+<span class="sourceLineNo">14140</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.14140"></a>
+<span class="sourceLineNo">14141</span>                                                }<a name="line.14141"></a>
+<span class="sourceLineNo">14142</span>                                        }<a name="line.14142"></a>
+<span class="sourceLineNo">14143</span>                                }<a name="line.14143"></a>
+<span class="sourceLineNo">14144</span>                        } else if (as &gt; bs) {<a name="line.14144"></a>
+<span class="sourceLineNo">14145</span>                                if (it.isOutputDouble()) {<a name="line.14145"></a>
+<span class="sourceLineNo">14146</span>                                        while (it.hasNext()) {<a name="line.14146"></a>
+<span class="sourceLineNo">14147</span>                                                double iax = it.aDouble;<a name="line.14147"></a>
+<span class="sourceLineNo">14148</span>                                                final double ibx = it.bDouble;<a name="line.14148"></a>
+<span class="sourceLineNo">14149</span>                                                byte ox;<a name="line.14149"></a>
+<span class="sourceLineNo">14150</span>                                                ox = (byte) toLong(Math.min(iax, ibx));<a name="line.14150"></a>
+<span class="sourceLineNo">14151</span>                                                oai8data[it.oIndex] = ox;<a name="line.14151"></a>
+<span class="sourceLineNo">14152</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14152"></a>
+<span class="sourceLineNo">14153</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.14153"></a>
+<span class="sourceLineNo">14154</span>                                                        ox = (byte) toLong(Math.min(iax, ibx));<a name="line.14154"></a>
+<span class="sourceLineNo">14155</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.14155"></a>
+<span class="sourceLineNo">14156</span>                                                }<a name="line.14156"></a>
+<span class="sourceLineNo">14157</span>                                        }<a name="line.14157"></a>
+<span class="sourceLineNo">14158</span>                                } else {<a name="line.14158"></a>
+<span class="sourceLineNo">14159</span>                                        while (it.hasNext()) {<a name="line.14159"></a>
+<span class="sourceLineNo">14160</span>                                                long iax = it.aLong;<a name="line.14160"></a>
+<span class="sourceLineNo">14161</span>                                                final long ibx = it.bLong;<a name="line.14161"></a>
+<span class="sourceLineNo">14162</span>                                                byte ox;<a name="line.14162"></a>
+<span class="sourceLineNo">14163</span>                                                ox = (byte) toLong(Math.min(iax, ibx));<a name="line.14163"></a>
+<span class="sourceLineNo">14164</span>                                                oai8data[it.oIndex] = ox;<a name="line.14164"></a>
+<span class="sourceLineNo">14165</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14165"></a>
+<span class="sourceLineNo">14166</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.14166"></a>
+<span class="sourceLineNo">14167</span>                                                        ox = (byte) toLong(Math.min(iax, ibx));<a name="line.14167"></a>
+<span class="sourceLineNo">14168</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.14168"></a>
+<span class="sourceLineNo">14169</span>                                                }<a name="line.14169"></a>
+<span class="sourceLineNo">14170</span>                                        }<a name="line.14170"></a>
+<span class="sourceLineNo">14171</span>                                }<a name="line.14171"></a>
+<span class="sourceLineNo">14172</span>                        } else if (as == 1) {<a name="line.14172"></a>
+<span class="sourceLineNo">14173</span>                                if (it.isOutputDouble()) {<a name="line.14173"></a>
+<span class="sourceLineNo">14174</span>                                        while (it.hasNext()) {<a name="line.14174"></a>
+<span class="sourceLineNo">14175</span>                                                final double iax = it.aDouble;<a name="line.14175"></a>
+<span class="sourceLineNo">14176</span>                                                final double ibx = it.bDouble;<a name="line.14176"></a>
+<span class="sourceLineNo">14177</span>                                                byte ox;<a name="line.14177"></a>
+<span class="sourceLineNo">14178</span>                                                ox = (byte) toLong(Math.min(iax, ibx));<a name="line.14178"></a>
+<span class="sourceLineNo">14179</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.14179"></a>
+<span class="sourceLineNo">14180</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.14180"></a>
+<span class="sourceLineNo">14181</span>                                                }<a name="line.14181"></a>
+<span class="sourceLineNo">14182</span>                                        }<a name="line.14182"></a>
+<span class="sourceLineNo">14183</span>                                } else {<a name="line.14183"></a>
+<span class="sourceLineNo">14184</span>                                        while (it.hasNext()) {<a name="line.14184"></a>
+<span class="sourceLineNo">14185</span>                                                final long iax = it.aLong;<a name="line.14185"></a>
+<span class="sourceLineNo">14186</span>                                                final long ibx = it.bLong;<a name="line.14186"></a>
+<span class="sourceLineNo">14187</span>                                                byte ox;<a name="line.14187"></a>
+<span class="sourceLineNo">14188</span>                                                ox = (byte) toLong(Math.min(iax, ibx));<a name="line.14188"></a>
+<span class="sourceLineNo">14189</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.14189"></a>
+<span class="sourceLineNo">14190</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.14190"></a>
+<span class="sourceLineNo">14191</span>                                                }<a name="line.14191"></a>
+<span class="sourceLineNo">14192</span>                                        }<a name="line.14192"></a>
+<span class="sourceLineNo">14193</span>                                }<a name="line.14193"></a>
+<span class="sourceLineNo">14194</span>                        } else {<a name="line.14194"></a>
+<span class="sourceLineNo">14195</span>                                if (it.isOutputDouble()) {<a name="line.14195"></a>
+<span class="sourceLineNo">14196</span>                                        while (it.hasNext()) {<a name="line.14196"></a>
+<span class="sourceLineNo">14197</span>                                                double iax = it.aDouble;<a name="line.14197"></a>
+<span class="sourceLineNo">14198</span>                                                double ibx = it.bDouble;<a name="line.14198"></a>
+<span class="sourceLineNo">14199</span>                                                byte ox;<a name="line.14199"></a>
+<span class="sourceLineNo">14200</span>                                                ox = (byte) toLong(Math.min(iax, ibx));<a name="line.14200"></a>
+<span class="sourceLineNo">14201</span>                                                oai8data[it.oIndex] = ox;<a name="line.14201"></a>
+<span class="sourceLineNo">14202</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14202"></a>
+<span class="sourceLineNo">14203</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.14203"></a>
+<span class="sourceLineNo">14204</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.14204"></a>
+<span class="sourceLineNo">14205</span>                                                        ox = (byte) toLong(Math.min(iax, ibx));<a name="line.14205"></a>
+<span class="sourceLineNo">14206</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.14206"></a>
+<span class="sourceLineNo">14207</span>                                                }<a name="line.14207"></a>
+<span class="sourceLineNo">14208</span>                                        }<a name="line.14208"></a>
+<span class="sourceLineNo">14209</span>                                } else {<a name="line.14209"></a>
+<span class="sourceLineNo">14210</span>                                        while (it.hasNext()) {<a name="line.14210"></a>
+<span class="sourceLineNo">14211</span>                                                long iax = it.aLong;<a name="line.14211"></a>
+<span class="sourceLineNo">14212</span>                                                long ibx = it.bLong;<a name="line.14212"></a>
+<span class="sourceLineNo">14213</span>                                                byte ox;<a name="line.14213"></a>
+<span class="sourceLineNo">14214</span>                                                ox = (byte) toLong(Math.min(iax, ibx));<a name="line.14214"></a>
+<span class="sourceLineNo">14215</span>                                                oai8data[it.oIndex] = ox;<a name="line.14215"></a>
+<span class="sourceLineNo">14216</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14216"></a>
+<span class="sourceLineNo">14217</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.14217"></a>
+<span class="sourceLineNo">14218</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.14218"></a>
+<span class="sourceLineNo">14219</span>                                                        ox = (byte) toLong(Math.min(iax, ibx));<a name="line.14219"></a>
+<span class="sourceLineNo">14220</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.14220"></a>
+<span class="sourceLineNo">14221</span>                                                }<a name="line.14221"></a>
+<span class="sourceLineNo">14222</span>                                        }<a name="line.14222"></a>
+<span class="sourceLineNo">14223</span>                                }<a name="line.14223"></a>
+<span class="sourceLineNo">14224</span>                        }<a name="line.14224"></a>
+<span class="sourceLineNo">14225</span>                        break;<a name="line.14225"></a>
+<span class="sourceLineNo">14226</span>                case Dataset.ARRAYINT16:<a name="line.14226"></a>
+<span class="sourceLineNo">14227</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.14227"></a>
+<span class="sourceLineNo">14228</span>                        if (is == 1) {<a name="line.14228"></a>
+<span class="sourceLineNo">14229</span>                                if (it.isOutputDouble()) {<a name="line.14229"></a>
+<span class="sourceLineNo">14230</span>                                        while (it.hasNext()) {<a name="line.14230"></a>
+<span class="sourceLineNo">14231</span>                                                final double iax = it.aDouble;<a name="line.14231"></a>
+<span class="sourceLineNo">14232</span>                                                final double ibx = it.bDouble;<a name="line.14232"></a>
+<span class="sourceLineNo">14233</span>                                                short ox;<a name="line.14233"></a>
+<span class="sourceLineNo">14234</span>                                                ox = (short) toLong(Math.min(iax, ibx));<a name="line.14234"></a>
+<span class="sourceLineNo">14235</span>                                                oai16data[it.oIndex] = ox;<a name="line.14235"></a>
+<span class="sourceLineNo">14236</span>                                        }<a name="line.14236"></a>
+<span class="sourceLineNo">14237</span>                                } else {<a name="line.14237"></a>
+<span class="sourceLineNo">14238</span>                                        while (it.hasNext()) {<a name="line.14238"></a>
+<span class="sourceLineNo">14239</span>                                                final long iax = it.aLong;<a name="line.14239"></a>
+<span class="sourceLineNo">14240</span>                                                final long ibx = it.bLong;<a name="line.14240"></a>
+<span class="sourceLineNo">14241</span>                                                short ox;<a name="line.14241"></a>
+<span class="sourceLineNo">14242</span>                                                ox = (short) toLong(Math.min(iax, ibx));<a name="line.14242"></a>
+<span class="sourceLineNo">14243</span>                                                oai16data[it.oIndex] = ox;<a name="line.14243"></a>
+<span class="sourceLineNo">14244</span>                                        }<a name="line.14244"></a>
+<span class="sourceLineNo">14245</span>                                }<a name="line.14245"></a>
+<span class="sourceLineNo">14246</span>                        } else if (as &lt; bs) {<a name="line.14246"></a>
+<span class="sourceLineNo">14247</span>                                if (it.isOutputDouble()) {<a name="line.14247"></a>
+<span class="sourceLineNo">14248</span>                                        while (it.hasNext()) {<a name="line.14248"></a>
+<span class="sourceLineNo">14249</span>                                                final double iax = it.aDouble;<a name="line.14249"></a>
+<span class="sourceLineNo">14250</span>                                                double ibx = it.bDouble;<a name="line.14250"></a>
+<span class="sourceLineNo">14251</span>                                                short ox;<a name="line.14251"></a>
+<span class="sourceLineNo">14252</span>                                                ox = (short) toLong(Math.min(iax, ibx));<a name="line.14252"></a>
+<span class="sourceLineNo">14253</span>                                                oai16data[it.oIndex] = ox;<a name="line.14253"></a>
+<span class="sourceLineNo">14254</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14254"></a>
+<span class="sourceLineNo">14255</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.14255"></a>
+<span class="sourceLineNo">14256</span>                                                        ox = (short) toLong(Math.min(iax, ibx));<a name="line.14256"></a>
+<span class="sourceLineNo">14257</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.14257"></a>
+<span class="sourceLineNo">14258</span>                                                }<a name="line.14258"></a>
+<span class="sourceLineNo">14259</span>                                        }<a name="line.14259"></a>
+<span class="sourceLineNo">14260</span>                                } else {<a name="line.14260"></a>
+<span class="sourceLineNo">14261</span>                                        while (it.hasNext()) {<a name="line.14261"></a>
+<span class="sourceLineNo">14262</span>                                                final long iax = it.aLong;<a name="line.14262"></a>
+<span class="sourceLineNo">14263</span>                                                long ibx = it.bLong;<a name="line.14263"></a>
+<span class="sourceLineNo">14264</span>                                                short ox;<a name="line.14264"></a>
+<span class="sourceLineNo">14265</span>                                                ox = (short) toLong(Math.min(iax, ibx));<a name="line.14265"></a>
+<span class="sourceLineNo">14266</span>                                                oai16data[it.oIndex] = ox;<a name="line.14266"></a>
+<span class="sourceLineNo">14267</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14267"></a>
+<span class="sourceLineNo">14268</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.14268"></a>
+<span class="sourceLineNo">14269</span>                                                        ox = (short) toLong(Math.min(iax, ibx));<a name="line.14269"></a>
+<span class="sourceLineNo">14270</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.14270"></a>
+<span class="sourceLineNo">14271</span>                                                }<a name="line.14271"></a>
+<span class="sourceLineNo">14272</span>                                        }<a name="line.14272"></a>
+<span class="sourceLineNo">14273</span>                                }<a name="line.14273"></a>
+<span class="sourceLineNo">14274</span>                        } else if (as &gt; bs) {<a name="line.14274"></a>
+<span class="sourceLineNo">14275</span>                                if (it.isOutputDouble()) {<a name="line.14275"></a>
+<span class="sourceLineNo">14276</span>                                        while (it.hasNext()) {<a name="line.14276"></a>
+<span class="sourceLineNo">14277</span>                                                double iax = it.aDouble;<a name="line.14277"></a>
+<span class="sourceLineNo">14278</span>                                                final double ibx = it.bDouble;<a name="line.14278"></a>
+<span class="sourceLineNo">14279</span>                                                short ox;<a name="line.14279"></a>
+<span class="sourceLineNo">14280</span>                                                ox = (short) toLong(Math.min(iax, ibx));<a name="line.14280"></a>
+<span class="sourceLineNo">14281</span>                                                oai16data[it.oIndex] = ox;<a name="line.14281"></a>
+<span class="sourceLineNo">14282</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14282"></a>
+<span class="sourceLineNo">14283</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.14283"></a>
+<span class="sourceLineNo">14284</span>                                                        ox = (short) toLong(Math.min(iax, ibx));<a name="line.14284"></a>
+<span class="sourceLineNo">14285</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.14285"></a>
+<span class="sourceLineNo">14286</span>                                                }<a name="line.14286"></a>
+<span class="sourceLineNo">14287</span>                                        }<a name="line.14287"></a>
+<span class="sourceLineNo">14288</span>                                } else {<a name="line.14288"></a>
+<span class="sourceLineNo">14289</span>                                        while (it.hasNext()) {<a name="line.14289"></a>
+<span class="sourceLineNo">14290</span>                                                long iax = it.aLong;<a name="line.14290"></a>
+<span class="sourceLineNo">14291</span>                                                final long ibx = it.bLong;<a name="line.14291"></a>
+<span class="sourceLineNo">14292</span>                                                short ox;<a name="line.14292"></a>
+<span class="sourceLineNo">14293</span>                                                ox = (short) toLong(Math.min(iax, ibx));<a name="line.14293"></a>
+<span class="sourceLineNo">14294</span>                                                oai16data[it.oIndex] = ox;<a name="line.14294"></a>
+<span class="sourceLineNo">14295</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14295"></a>
+<span class="sourceLineNo">14296</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.14296"></a>
+<span class="sourceLineNo">14297</span>                                                        ox = (short) toLong(Math.min(iax, ibx));<a name="line.14297"></a>
+<span class="sourceLineNo">14298</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.14298"></a>
+<span class="sourceLineNo">14299</span>                                                }<a name="line.14299"></a>
+<span class="sourceLineNo">14300</span>                                        }<a name="line.14300"></a>
+<span class="sourceLineNo">14301</span>                                }<a name="line.14301"></a>
+<span class="sourceLineNo">14302</span>                        } else if (as == 1) {<a name="line.14302"></a>
+<span class="sourceLineNo">14303</span>                                if (it.isOutputDouble()) {<a name="line.14303"></a>
+<span class="sourceLineNo">14304</span>                                        while (it.hasNext()) {<a name="line.14304"></a>
+<span class="sourceLineNo">14305</span>                                                final double iax = it.aDouble;<a name="line.14305"></a>
+<span class="sourceLineNo">14306</span>                                                final double ibx = it.bDouble;<a name="line.14306"></a>
+<span class="sourceLineNo">14307</span>                                                short ox;<a name="line.14307"></a>
+<span class="sourceLineNo">14308</span>                                                ox = (short) toLong(Math.min(iax, ibx));<a name="line.14308"></a>
+<span class="sourceLineNo">14309</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.14309"></a>
+<span class="sourceLineNo">14310</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.14310"></a>
+<span class="sourceLineNo">14311</span>                                                }<a name="line.14311"></a>
+<span class="sourceLineNo">14312</span>                                        }<a name="line.14312"></a>
+<span class="sourceLineNo">14313</span>                                } else {<a name="line.14313"></a>
+<span class="sourceLineNo">14314</span>                                        while (it.hasNext()) {<a name="line.14314"></a>
+<span class="sourceLineNo">14315</span>                                                final long iax = it.aLong;<a name="line.14315"></a>
+<span class="sourceLineNo">14316</span>                                                final long ibx = it.bLong;<a name="line.14316"></a>
+<span class="sourceLineNo">14317</span>                                                short ox;<a name="line.14317"></a>
+<span class="sourceLineNo">14318</span>                                                ox = (short) toLong(Math.min(iax, ibx));<a name="line.14318"></a>
+<span class="sourceLineNo">14319</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.14319"></a>
+<span class="sourceLineNo">14320</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.14320"></a>
+<span class="sourceLineNo">14321</span>                                                }<a name="line.14321"></a>
+<span class="sourceLineNo">14322</span>                                        }<a name="line.14322"></a>
+<span class="sourceLineNo">14323</span>                                }<a name="line.14323"></a>
+<span class="sourceLineNo">14324</span>                        } else {<a name="line.14324"></a>
+<span class="sourceLineNo">14325</span>                                if (it.isOutputDouble()) {<a name="line.14325"></a>
+<span class="sourceLineNo">14326</span>                                        while (it.hasNext()) {<a name="line.14326"></a>
+<span class="sourceLineNo">14327</span>                                                double iax = it.aDouble;<a name="line.14327"></a>
+<span class="sourceLineNo">14328</span>                                                double ibx = it.bDouble;<a name="line.14328"></a>
+<span class="sourceLineNo">14329</span>                                                short ox;<a name="line.14329"></a>
+<span class="sourceLineNo">14330</span>                                                ox = (short) toLong(Math.min(iax, ibx));<a name="line.14330"></a>
+<span class="sourceLineNo">14331</span>                                                oai16data[it.oIndex] = ox;<a name="line.14331"></a>
+<span class="sourceLineNo">14332</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14332"></a>
+<span class="sourceLineNo">14333</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.14333"></a>
+<span class="sourceLineNo">14334</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.14334"></a>
+<span class="sourceLineNo">14335</span>                                                        ox = (short) toLong(Math.min(iax, ibx));<a name="line.14335"></a>
+<span class="sourceLineNo">14336</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.14336"></a>
+<span class="sourceLineNo">14337</span>                                                }<a name="line.14337"></a>
+<span class="sourceLineNo">14338</span>                                        }<a name="line.14338"></a>
+<span class="sourceLineNo">14339</span>                                } else {<a name="line.14339"></a>
+<span class="sourceLineNo">14340</span>                                        while (it.hasNext()) {<a name="line.14340"></a>
+<span class="sourceLineNo">14341</span>                                                long iax = it.aLong;<a name="line.14341"></a>
+<span class="sourceLineNo">14342</span>                                                long ibx = it.bLong;<a name="line.14342"></a>
+<span class="sourceLineNo">14343</span>                                                short ox;<a name="line.14343"></a>
+<span class="sourceLineNo">14344</span>                                                ox = (short) toLong(Math.min(iax, ibx));<a name="line.14344"></a>
+<span class="sourceLineNo">14345</span>                                                oai16data[it.oIndex] = ox;<a name="line.14345"></a>
+<span class="sourceLineNo">14346</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14346"></a>
+<span class="sourceLineNo">14347</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.14347"></a>
+<span class="sourceLineNo">14348</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.14348"></a>
+<span class="sourceLineNo">14349</span>                                                        ox = (short) toLong(Math.min(iax, ibx));<a name="line.14349"></a>
+<span class="sourceLineNo">14350</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.14350"></a>
+<span class="sourceLineNo">14351</span>                                                }<a name="line.14351"></a>
+<span class="sourceLineNo">14352</span>                                        }<a name="line.14352"></a>
+<span class="sourceLineNo">14353</span>                                }<a name="line.14353"></a>
+<span class="sourceLineNo">14354</span>                        }<a name="line.14354"></a>
+<span class="sourceLineNo">14355</span>                        break;<a name="line.14355"></a>
+<span class="sourceLineNo">14356</span>                case Dataset.ARRAYINT64:<a name="line.14356"></a>
+<span class="sourceLineNo">14357</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.14357"></a>
+<span class="sourceLineNo">14358</span>                        if (is == 1) {<a name="line.14358"></a>
+<span class="sourceLineNo">14359</span>                                if (it.isOutputDouble()) {<a name="line.14359"></a>
+<span class="sourceLineNo">14360</span>                                        while (it.hasNext()) {<a name="line.14360"></a>
+<span class="sourceLineNo">14361</span>                                                final double iax = it.aDouble;<a name="line.14361"></a>
+<span class="sourceLineNo">14362</span>                                                final double ibx = it.bDouble;<a name="line.14362"></a>
+<span class="sourceLineNo">14363</span>                                                long ox;<a name="line.14363"></a>
+<span class="sourceLineNo">14364</span>                                                ox = toLong(Math.min(iax, ibx));<a name="line.14364"></a>
+<span class="sourceLineNo">14365</span>                                                oai64data[it.oIndex] = ox;<a name="line.14365"></a>
+<span class="sourceLineNo">14366</span>                                        }<a name="line.14366"></a>
+<span class="sourceLineNo">14367</span>                                } else {<a name="line.14367"></a>
+<span class="sourceLineNo">14368</span>                                        while (it.hasNext()) {<a name="line.14368"></a>
+<span class="sourceLineNo">14369</span>                                                final long iax = it.aLong;<a name="line.14369"></a>
+<span class="sourceLineNo">14370</span>                                                final long ibx = it.bLong;<a name="line.14370"></a>
+<span class="sourceLineNo">14371</span>                                                long ox;<a name="line.14371"></a>
+<span class="sourceLineNo">14372</span>                                                ox = toLong(Math.min(iax, ibx));<a name="line.14372"></a>
+<span class="sourceLineNo">14373</span>                                                oai64data[it.oIndex] = ox;<a name="line.14373"></a>
+<span class="sourceLineNo">14374</span>                                        }<a name="line.14374"></a>
+<span class="sourceLineNo">14375</span>                                }<a name="line.14375"></a>
+<span class="sourceLineNo">14376</span>                        } else if (as &lt; bs) {<a name="line.14376"></a>
+<span class="sourceLineNo">14377</span>                                if (it.isOutputDouble()) {<a name="line.14377"></a>
+<span class="sourceLineNo">14378</span>                                        while (it.hasNext()) {<a name="line.14378"></a>
+<span class="sourceLineNo">14379</span>                                                final double iax = it.aDouble;<a name="line.14379"></a>
+<span class="sourceLineNo">14380</span>                                                double ibx = it.bDouble;<a name="line.14380"></a>
+<span class="sourceLineNo">14381</span>                                                long ox;<a name="line.14381"></a>
+<span class="sourceLineNo">14382</span>                                                ox = toLong(Math.min(iax, ibx));<a name="line.14382"></a>
+<span class="sourceLineNo">14383</span>                                                oai64data[it.oIndex] = ox;<a name="line.14383"></a>
+<span class="sourceLineNo">14384</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14384"></a>
+<span class="sourceLineNo">14385</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.14385"></a>
+<span class="sourceLineNo">14386</span>                                                        ox = toLong(Math.min(iax, ibx));<a name="line.14386"></a>
+<span class="sourceLineNo">14387</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.14387"></a>
+<span class="sourceLineNo">14388</span>                                                }<a name="line.14388"></a>
+<span class="sourceLineNo">14389</span>                                        }<a name="line.14389"></a>
+<span class="sourceLineNo">14390</span>                                } else {<a name="line.14390"></a>
+<span class="sourceLineNo">14391</span>                                        while (it.hasNext()) {<a name="line.14391"></a>
+<span class="sourceLineNo">14392</span>                                                final long iax = it.aLong;<a name="line.14392"></a>
+<span class="sourceLineNo">14393</span>                                                long ibx = it.bLong;<a name="line.14393"></a>
+<span class="sourceLineNo">14394</span>                                                long ox;<a name="line.14394"></a>
+<span class="sourceLineNo">14395</span>                                                ox = toLong(Math.min(iax, ibx));<a name="line.14395"></a>
+<span class="sourceLineNo">14396</span>                                                oai64data[it.oIndex] = ox;<a name="line.14396"></a>
+<span class="sourceLineNo">14397</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14397"></a>
+<span class="sourceLineNo">14398</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.14398"></a>
+<span class="sourceLineNo">14399</span>                                                        ox = toLong(Math.min(iax, ibx));<a name="line.14399"></a>
+<span class="sourceLineNo">14400</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.14400"></a>
+<span class="sourceLineNo">14401</span>                                                }<a name="line.14401"></a>
+<span class="sourceLineNo">14402</span>                                        }<a name="line.14402"></a>
+<span class="sourceLineNo">14403</span>                                }<a name="line.14403"></a>
+<span class="sourceLineNo">14404</span>                        } else if (as &gt; bs) {<a name="line.14404"></a>
+<span class="sourceLineNo">14405</span>                                if (it.isOutputDouble()) {<a name="line.14405"></a>
+<span class="sourceLineNo">14406</span>                                        while (it.hasNext()) {<a name="line.14406"></a>
+<span class="sourceLineNo">14407</span>                                                double iax = it.aDouble;<a name="line.14407"></a>
+<span class="sourceLineNo">14408</span>                                                final double ibx = it.bDouble;<a name="line.14408"></a>
+<span class="sourceLineNo">14409</span>                                                long ox;<a name="line.14409"></a>
+<span class="sourceLineNo">14410</span>                                                ox = toLong(Math.min(iax, ibx));<a name="line.14410"></a>
+<span class="sourceLineNo">14411</span>                                                oai64data[it.oIndex] = ox;<a name="line.14411"></a>
+<span class="sourceLineNo">14412</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14412"></a>
+<span class="sourceLineNo">14413</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.14413"></a>
+<span class="sourceLineNo">14414</span>                                                        ox = toLong(Math.min(iax, ibx));<a name="line.14414"></a>
+<span class="sourceLineNo">14415</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.14415"></a>
+<span class="sourceLineNo">14416</span>                                                }<a name="line.14416"></a>
+<span class="sourceLineNo">14417</span>                                        }<a name="line.14417"></a>
+<span class="sourceLineNo">14418</span>                                } else {<a name="line.14418"></a>
+<span class="sourceLineNo">14419</span>                                        while (it.hasNext()) {<a name="line.14419"></a>
+<span class="sourceLineNo">14420</span>                                                long iax = it.aLong;<a name="line.14420"></a>
+<span class="sourceLineNo">14421</span>                                                final long ibx = it.bLong;<a name="line.14421"></a>
+<span class="sourceLineNo">14422</span>                                                long ox;<a name="line.14422"></a>
+<span class="sourceLineNo">14423</span>                                                ox = toLong(Math.min(iax, ibx));<a name="line.14423"></a>
+<span class="sourceLineNo">14424</span>                                                oai64data[it.oIndex] = ox;<a name="line.14424"></a>
+<span class="sourceLineNo">14425</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14425"></a>
+<span class="sourceLineNo">14426</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.14426"></a>
+<span class="sourceLineNo">14427</span>                                                        ox = toLong(Math.min(iax, ibx));<a name="line.14427"></a>
+<span class="sourceLineNo">14428</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.14428"></a>
+<span class="sourceLineNo">14429</span>                                                }<a name="line.14429"></a>
+<span class="sourceLineNo">14430</span>                                        }<a name="line.14430"></a>
+<span class="sourceLineNo">14431</span>                                }<a name="line.14431"></a>
+<span class="sourceLineNo">14432</span>                        } else if (as == 1) {<a name="line.14432"></a>
+<span class="sourceLineNo">14433</span>                                if (it.isOutputDouble()) {<a name="line.14433"></a>
+<span class="sourceLineNo">14434</span>                                        while (it.hasNext()) {<a name="line.14434"></a>
+<span class="sourceLineNo">14435</span>                                                final double iax = it.aDouble;<a name="line.14435"></a>
+<span class="sourceLineNo">14436</span>                                                final double ibx = it.bDouble;<a name="line.14436"></a>
+<span class="sourceLineNo">14437</span>                                                long ox;<a name="line.14437"></a>
+<span class="sourceLineNo">14438</span>                                                ox = toLong(Math.min(iax, ibx));<a name="line.14438"></a>
+<span class="sourceLineNo">14439</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.14439"></a>
+<span class="sourceLineNo">14440</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.14440"></a>
+<span class="sourceLineNo">14441</span>                                                }<a name="line.14441"></a>
+<span class="sourceLineNo">14442</span>                                        }<a name="line.14442"></a>
+<span class="sourceLineNo">14443</span>                                } else {<a name="line.14443"></a>
+<span class="sourceLineNo">14444</span>                                        while (it.hasNext()) {<a name="line.14444"></a>
+<span class="sourceLineNo">14445</span>                                                final long iax = it.aLong;<a name="line.14445"></a>
+<span class="sourceLineNo">14446</span>                                                final long ibx = it.bLong;<a name="line.14446"></a>
+<span class="sourceLineNo">14447</span>                                                long ox;<a name="line.14447"></a>
+<span class="sourceLineNo">14448</span>                                                ox = toLong(Math.min(iax, ibx));<a name="line.14448"></a>
+<span class="sourceLineNo">14449</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.14449"></a>
+<span class="sourceLineNo">14450</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.14450"></a>
+<span class="sourceLineNo">14451</span>                                                }<a name="line.14451"></a>
+<span class="sourceLineNo">14452</span>                                        }<a name="line.14452"></a>
+<span class="sourceLineNo">14453</span>                                }<a name="line.14453"></a>
+<span class="sourceLineNo">14454</span>                        } else {<a name="line.14454"></a>
+<span class="sourceLineNo">14455</span>                                if (it.isOutputDouble()) {<a name="line.14455"></a>
+<span class="sourceLineNo">14456</span>                                        while (it.hasNext()) {<a name="line.14456"></a>
+<span class="sourceLineNo">14457</span>                                                double iax = it.aDouble;<a name="line.14457"></a>
+<span class="sourceLineNo">14458</span>                                                double ibx = it.bDouble;<a name="line.14458"></a>
+<span class="sourceLineNo">14459</span>                                                long ox;<a name="line.14459"></a>
+<span class="sourceLineNo">14460</span>                                                ox = toLong(Math.min(iax, ibx));<a name="line.14460"></a>
+<span class="sourceLineNo">14461</span>                                                oai64data[it.oIndex] = ox;<a name="line.14461"></a>
+<span class="sourceLineNo">14462</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14462"></a>
+<span class="sourceLineNo">14463</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.14463"></a>
+<span class="sourceLineNo">14464</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.14464"></a>
+<span class="sourceLineNo">14465</span>                                                        ox = toLong(Math.min(iax, ibx));<a name="line.14465"></a>
+<span class="sourceLineNo">14466</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.14466"></a>
+<span class="sourceLineNo">14467</span>                                                }<a name="line.14467"></a>
+<span class="sourceLineNo">14468</span>                                        }<a name="line.14468"></a>
+<span class="sourceLineNo">14469</span>                                } else {<a name="line.14469"></a>
+<span class="sourceLineNo">14470</span>                                        while (it.hasNext()) {<a name="line.14470"></a>
+<span class="sourceLineNo">14471</span>                                                long iax = it.aLong;<a name="line.14471"></a>
+<span class="sourceLineNo">14472</span>                                                long ibx = it.bLong;<a name="line.14472"></a>
+<span class="sourceLineNo">14473</span>                                                long ox;<a name="line.14473"></a>
+<span class="sourceLineNo">14474</span>                                                ox = toLong(Math.min(iax, ibx));<a name="line.14474"></a>
+<span class="sourceLineNo">14475</span>                                                oai64data[it.oIndex] = ox;<a name="line.14475"></a>
+<span class="sourceLineNo">14476</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14476"></a>
+<span class="sourceLineNo">14477</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.14477"></a>
+<span class="sourceLineNo">14478</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.14478"></a>
+<span class="sourceLineNo">14479</span>                                                        ox = toLong(Math.min(iax, ibx));<a name="line.14479"></a>
+<span class="sourceLineNo">14480</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.14480"></a>
+<span class="sourceLineNo">14481</span>                                                }<a name="line.14481"></a>
+<span class="sourceLineNo">14482</span>                                        }<a name="line.14482"></a>
+<span class="sourceLineNo">14483</span>                                }<a name="line.14483"></a>
+<span class="sourceLineNo">14484</span>                        }<a name="line.14484"></a>
+<span class="sourceLineNo">14485</span>                        break;<a name="line.14485"></a>
+<span class="sourceLineNo">14486</span>                case Dataset.ARRAYINT32:<a name="line.14486"></a>
+<span class="sourceLineNo">14487</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.14487"></a>
+<span class="sourceLineNo">14488</span>                        if (is == 1) {<a name="line.14488"></a>
+<span class="sourceLineNo">14489</span>                                if (it.isOutputDouble()) {<a name="line.14489"></a>
+<span class="sourceLineNo">14490</span>                                        while (it.hasNext()) {<a name="line.14490"></a>
+<span class="sourceLineNo">14491</span>                                                final double iax = it.aDouble;<a name="line.14491"></a>
+<span class="sourceLineNo">14492</span>                                                final double ibx = it.bDouble;<a name="line.14492"></a>
+<span class="sourceLineNo">14493</span>                                                int ox;<a name="line.14493"></a>
+<span class="sourceLineNo">14494</span>                                                ox = (int) toLong(Math.min(iax, ibx));<a name="line.14494"></a>
+<span class="sourceLineNo">14495</span>                                                oai32data[it.oIndex] = ox;<a name="line.14495"></a>
+<span class="sourceLineNo">14496</span>                                        }<a name="line.14496"></a>
+<span class="sourceLineNo">14497</span>                                } else {<a name="line.14497"></a>
+<span class="sourceLineNo">14498</span>                                        while (it.hasNext()) {<a name="line.14498"></a>
+<span class="sourceLineNo">14499</span>                                                final long iax = it.aLong;<a name="line.14499"></a>
+<span class="sourceLineNo">14500</span>                                                final long ibx = it.bLong;<a name="line.14500"></a>
+<span class="sourceLineNo">14501</span>                                                int ox;<a name="line.14501"></a>
+<span class="sourceLineNo">14502</span>                                                ox = (int) toLong(Math.min(iax, ibx));<a name="line.14502"></a>
+<span class="sourceLineNo">14503</span>                                                oai32data[it.oIndex] = ox;<a name="line.14503"></a>
+<span class="sourceLineNo">14504</span>                                        }<a name="line.14504"></a>
+<span class="sourceLineNo">14505</span>                                }<a name="line.14505"></a>
+<span class="sourceLineNo">14506</span>                        } else if (as &lt; bs) {<a name="line.14506"></a>
+<span class="sourceLineNo">14507</span>                                if (it.isOutputDouble()) {<a name="line.14507"></a>
+<span class="sourceLineNo">14508</span>                                        while (it.hasNext()) {<a name="line.14508"></a>
+<span class="sourceLineNo">14509</span>                                                final double iax = it.aDouble;<a name="line.14509"></a>
+<span class="sourceLineNo">14510</span>                                                double ibx = it.bDouble;<a name="line.14510"></a>
+<span class="sourceLineNo">14511</span>                                                int ox;<a name="line.14511"></a>
+<span class="sourceLineNo">14512</span>                                                ox = (int) toLong(Math.min(iax, ibx));<a name="line.14512"></a>
+<span class="sourceLineNo">14513</span>                                                oai32data[it.oIndex] = ox;<a name="line.14513"></a>
+<span class="sourceLineNo">14514</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14514"></a>
+<span class="sourceLineNo">14515</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.14515"></a>
+<span class="sourceLineNo">14516</span>                                                        ox = (int) toLong(Math.min(iax, ibx));<a name="line.14516"></a>
+<span class="sourceLineNo">14517</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.14517"></a>
+<span class="sourceLineNo">14518</span>                                                }<a name="line.14518"></a>
+<span class="sourceLineNo">14519</span>                                        }<a name="line.14519"></a>
+<span class="sourceLineNo">14520</span>                                } else {<a name="line.14520"></a>
+<span class="sourceLineNo">14521</span>                                        while (it.hasNext()) {<a name="line.14521"></a>
+<span class="sourceLineNo">14522</span>                                                final long iax = it.aLong;<a name="line.14522"></a>
+<span class="sourceLineNo">14523</span>                                                long ibx = it.bLong;<a name="line.14523"></a>
+<span class="sourceLineNo">14524</span>                                                int ox;<a name="line.14524"></a>
+<span class="sourceLineNo">14525</span>                                                ox = (int) toLong(Math.min(iax, ibx));<a name="line.14525"></a>
+<span class="sourceLineNo">14526</span>                                                oai32data[it.oIndex] = ox;<a name="line.14526"></a>
+<span class="sourceLineNo">14527</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14527"></a>
+<span class="sourceLineNo">14528</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.14528"></a>
+<span class="sourceLineNo">14529</span>                                                        ox = (int) toLong(Math.min(iax, ibx));<a name="line.14529"></a>
+<span class="sourceLineNo">14530</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.14530"></a>
+<span class="sourceLineNo">14531</span>                                                }<a name="line.14531"></a>
+<span class="sourceLineNo">14532</span>                                        }<a name="line.14532"></a>
+<span class="sourceLineNo">14533</span>                                }<a name="line.14533"></a>
+<span class="sourceLineNo">14534</span>                        } else if (as &gt; bs) {<a name="line.14534"></a>
+<span class="sourceLineNo">14535</span>                                if (it.isOutputDouble()) {<a name="line.14535"></a>
+<span class="sourceLineNo">14536</span>                                        while (it.hasNext()) {<a name="line.14536"></a>
+<span class="sourceLineNo">14537</span>                                                double iax = it.aDouble;<a name="line.14537"></a>
+<span class="sourceLineNo">14538</span>                                                final double ibx = it.bDouble;<a name="line.14538"></a>
+<span class="sourceLineNo">14539</span>                                                int ox;<a name="line.14539"></a>
+<span class="sourceLineNo">14540</span>                                                ox = (int) toLong(Math.min(iax, ibx));<a name="line.14540"></a>
+<span class="sourceLineNo">14541</span>                                                oai32data[it.oIndex] = ox;<a name="line.14541"></a>
+<span class="sourceLineNo">14542</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14542"></a>
+<span class="sourceLineNo">14543</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.14543"></a>
+<span class="sourceLineNo">14544</span>                                                        ox = (int) toLong(Math.min(iax, ibx));<a name="line.14544"></a>
+<span class="sourceLineNo">14545</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.14545"></a>
+<span class="sourceLineNo">14546</span>                                                }<a name="line.14546"></a>
+<span class="sourceLineNo">14547</span>                                        }<a name="line.14547"></a>
+<span class="sourceLineNo">14548</span>                                } else {<a name="line.14548"></a>
+<span class="sourceLineNo">14549</span>                                        while (it.hasNext()) {<a name="line.14549"></a>
+<span class="sourceLineNo">14550</span>                                                long iax = it.aLong;<a name="line.14550"></a>
+<span class="sourceLineNo">14551</span>                                                final long ibx = it.bLong;<a name="line.14551"></a>
+<span class="sourceLineNo">14552</span>                                                int ox;<a name="line.14552"></a>
+<span class="sourceLineNo">14553</span>                                                ox = (int) toLong(Math.min(iax, ibx));<a name="line.14553"></a>
+<span class="sourceLineNo">14554</span>                                                oai32data[it.oIndex] = ox;<a name="line.14554"></a>
+<span class="sourceLineNo">14555</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14555"></a>
+<span class="sourceLineNo">14556</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.14556"></a>
+<span class="sourceLineNo">14557</span>                                                        ox = (int) toLong(Math.min(iax, ibx));<a name="line.14557"></a>
+<span class="sourceLineNo">14558</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.14558"></a>
+<span class="sourceLineNo">14559</span>                                                }<a name="line.14559"></a>
+<span class="sourceLineNo">14560</span>                                        }<a name="line.14560"></a>
+<span class="sourceLineNo">14561</span>                                }<a name="line.14561"></a>
+<span class="sourceLineNo">14562</span>                        } else if (as == 1) {<a name="line.14562"></a>
+<span class="sourceLineNo">14563</span>                                if (it.isOutputDouble()) {<a name="line.14563"></a>
+<span class="sourceLineNo">14564</span>                                        while (it.hasNext()) {<a name="line.14564"></a>
+<span class="sourceLineNo">14565</span>                                                final double iax = it.aDouble;<a name="line.14565"></a>
+<span class="sourceLineNo">14566</span>                                                final double ibx = it.bDouble;<a name="line.14566"></a>
+<span class="sourceLineNo">14567</span>                                                int ox;<a name="line.14567"></a>
+<span class="sourceLineNo">14568</span>                                                ox = (int) toLong(Math.min(iax, ibx));<a name="line.14568"></a>
+<span class="sourceLineNo">14569</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.14569"></a>
+<span class="sourceLineNo">14570</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.14570"></a>
+<span class="sourceLineNo">14571</span>                                                }<a name="line.14571"></a>
+<span class="sourceLineNo">14572</span>                                        }<a name="line.14572"></a>
+<span class="sourceLineNo">14573</span>                                } else {<a name="line.14573"></a>
+<span class="sourceLineNo">14574</span>                                        while (it.hasNext()) {<a name="line.14574"></a>
+<span class="sourceLineNo">14575</span>                                                final long iax = it.aLong;<a name="line.14575"></a>
+<span class="sourceLineNo">14576</span>                                                final long ibx = it.bLong;<a name="line.14576"></a>
+<span class="sourceLineNo">14577</span>                                                int ox;<a name="line.14577"></a>
+<span class="sourceLineNo">14578</span>                                                ox = (int) toLong(Math.min(iax, ibx));<a name="line.14578"></a>
+<span class="sourceLineNo">14579</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.14579"></a>
+<span class="sourceLineNo">14580</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.14580"></a>
+<span class="sourceLineNo">14581</span>                                                }<a name="line.14581"></a>
+<span class="sourceLineNo">14582</span>                                        }<a name="line.14582"></a>
+<span class="sourceLineNo">14583</span>                                }<a name="line.14583"></a>
+<span class="sourceLineNo">14584</span>                        } else {<a name="line.14584"></a>
+<span class="sourceLineNo">14585</span>                                if (it.isOutputDouble()) {<a name="line.14585"></a>
+<span class="sourceLineNo">14586</span>                                        while (it.hasNext()) {<a name="line.14586"></a>
+<span class="sourceLineNo">14587</span>                                                double iax = it.aDouble;<a name="line.14587"></a>
+<span class="sourceLineNo">14588</span>                                                double ibx = it.bDouble;<a name="line.14588"></a>
+<span class="sourceLineNo">14589</span>                                                int ox;<a name="line.14589"></a>
+<span class="sourceLineNo">14590</span>                                                ox = (int) toLong(Math.min(iax, ibx));<a name="line.14590"></a>
+<span class="sourceLineNo">14591</span>                                                oai32data[it.oIndex] = ox;<a name="line.14591"></a>
+<span class="sourceLineNo">14592</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14592"></a>
+<span class="sourceLineNo">14593</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.14593"></a>
+<span class="sourceLineNo">14594</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.14594"></a>
+<span class="sourceLineNo">14595</span>                                                        ox = (int) toLong(Math.min(iax, ibx));<a name="line.14595"></a>
+<span class="sourceLineNo">14596</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.14596"></a>
+<span class="sourceLineNo">14597</span>                                                }<a name="line.14597"></a>
+<span class="sourceLineNo">14598</span>                                        }<a name="line.14598"></a>
+<span class="sourceLineNo">14599</span>                                } else {<a name="line.14599"></a>
+<span class="sourceLineNo">14600</span>                                        while (it.hasNext()) {<a name="line.14600"></a>
+<span class="sourceLineNo">14601</span>                                                long iax = it.aLong;<a name="line.14601"></a>
+<span class="sourceLineNo">14602</span>                                                long ibx = it.bLong;<a name="line.14602"></a>
+<span class="sourceLineNo">14603</span>                                                int ox;<a name="line.14603"></a>
+<span class="sourceLineNo">14604</span>                                                ox = (int) toLong(Math.min(iax, ibx));<a name="line.14604"></a>
+<span class="sourceLineNo">14605</span>                                                oai32data[it.oIndex] = ox;<a name="line.14605"></a>
+<span class="sourceLineNo">14606</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14606"></a>
+<span class="sourceLineNo">14607</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.14607"></a>
+<span class="sourceLineNo">14608</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.14608"></a>
+<span class="sourceLineNo">14609</span>                                                        ox = (int) toLong(Math.min(iax, ibx));<a name="line.14609"></a>
+<span class="sourceLineNo">14610</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.14610"></a>
+<span class="sourceLineNo">14611</span>                                                }<a name="line.14611"></a>
+<span class="sourceLineNo">14612</span>                                        }<a name="line.14612"></a>
+<span class="sourceLineNo">14613</span>                                }<a name="line.14613"></a>
+<span class="sourceLineNo">14614</span>                        }<a name="line.14614"></a>
+<span class="sourceLineNo">14615</span>                        break;<a name="line.14615"></a>
+<span class="sourceLineNo">14616</span>                case Dataset.FLOAT32:<a name="line.14616"></a>
+<span class="sourceLineNo">14617</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.14617"></a>
+<span class="sourceLineNo">14618</span>                        if (it.isOutputDouble()) {<a name="line.14618"></a>
+<span class="sourceLineNo">14619</span>                                while (it.hasNext()) {<a name="line.14619"></a>
+<span class="sourceLineNo">14620</span>                                        final double iax = it.aDouble;<a name="line.14620"></a>
+<span class="sourceLineNo">14621</span>                                        final double ibx = it.bDouble;<a name="line.14621"></a>
+<span class="sourceLineNo">14622</span>                                        float ox;<a name="line.14622"></a>
+<span class="sourceLineNo">14623</span>                                        ox = (float) (Math.min(iax, ibx));<a name="line.14623"></a>
+<span class="sourceLineNo">14624</span>                                        of32data[it.oIndex] = ox;<a name="line.14624"></a>
+<span class="sourceLineNo">14625</span>                                }<a name="line.14625"></a>
+<span class="sourceLineNo">14626</span>                        } else {<a name="line.14626"></a>
+<span class="sourceLineNo">14627</span>                                while (it.hasNext()) {<a name="line.14627"></a>
+<span class="sourceLineNo">14628</span>                                        final long iax = it.aLong;<a name="line.14628"></a>
+<span class="sourceLineNo">14629</span>                                        final long ibx = it.bLong;<a name="line.14629"></a>
+<span class="sourceLineNo">14630</span>                                        float ox;<a name="line.14630"></a>
+<span class="sourceLineNo">14631</span>                                        ox = (float) (Math.min(iax, ibx));<a name="line.14631"></a>
+<span class="sourceLineNo">14632</span>                                        of32data[it.oIndex] = ox;<a name="line.14632"></a>
+<span class="sourceLineNo">14633</span>                                }<a name="line.14633"></a>
+<span class="sourceLineNo">14634</span>                        }<a name="line.14634"></a>
+<span class="sourceLineNo">14635</span>                        break;<a name="line.14635"></a>
+<span class="sourceLineNo">14636</span>                case Dataset.FLOAT64:<a name="line.14636"></a>
+<span class="sourceLineNo">14637</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.14637"></a>
+<span class="sourceLineNo">14638</span>                        if (it.isOutputDouble()) {<a name="line.14638"></a>
+<span class="sourceLineNo">14639</span>                                while (it.hasNext()) {<a name="line.14639"></a>
+<span class="sourceLineNo">14640</span>                                        final double iax = it.aDouble;<a name="line.14640"></a>
+<span class="sourceLineNo">14641</span>                                        final double ibx = it.bDouble;<a name="line.14641"></a>
+<span class="sourceLineNo">14642</span>                                        double ox;<a name="line.14642"></a>
+<span class="sourceLineNo">14643</span>                                        ox = (Math.min(iax, ibx));<a name="line.14643"></a>
+<span class="sourceLineNo">14644</span>                                        of64data[it.oIndex] = ox;<a name="line.14644"></a>
+<span class="sourceLineNo">14645</span>                                }<a name="line.14645"></a>
+<span class="sourceLineNo">14646</span>                        } else {<a name="line.14646"></a>
+<span class="sourceLineNo">14647</span>                                while (it.hasNext()) {<a name="line.14647"></a>
+<span class="sourceLineNo">14648</span>                                        final long iax = it.aLong;<a name="line.14648"></a>
+<span class="sourceLineNo">14649</span>                                        final long ibx = it.bLong;<a name="line.14649"></a>
+<span class="sourceLineNo">14650</span>                                        double ox;<a name="line.14650"></a>
+<span class="sourceLineNo">14651</span>                                        ox = (Math.min(iax, ibx));<a name="line.14651"></a>
+<span class="sourceLineNo">14652</span>                                        of64data[it.oIndex] = ox;<a name="line.14652"></a>
+<span class="sourceLineNo">14653</span>                                }<a name="line.14653"></a>
+<span class="sourceLineNo">14654</span>                        }<a name="line.14654"></a>
+<span class="sourceLineNo">14655</span>                        break;<a name="line.14655"></a>
+<span class="sourceLineNo">14656</span>                case Dataset.ARRAYFLOAT32:<a name="line.14656"></a>
+<span class="sourceLineNo">14657</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.14657"></a>
+<span class="sourceLineNo">14658</span>                        if (is == 1) {<a name="line.14658"></a>
+<span class="sourceLineNo">14659</span>                                if (it.isOutputDouble()) {<a name="line.14659"></a>
+<span class="sourceLineNo">14660</span>                                        while (it.hasNext()) {<a name="line.14660"></a>
+<span class="sourceLineNo">14661</span>                                                final double iax = it.aDouble;<a name="line.14661"></a>
+<span class="sourceLineNo">14662</span>                                                final double ibx = it.bDouble;<a name="line.14662"></a>
+<span class="sourceLineNo">14663</span>                                                float ox;<a name="line.14663"></a>
+<span class="sourceLineNo">14664</span>                                                ox = (float) (Math.min(iax, ibx));<a name="line.14664"></a>
+<span class="sourceLineNo">14665</span>                                                oaf32data[it.oIndex] = ox;<a name="line.14665"></a>
+<span class="sourceLineNo">14666</span>                                        }<a name="line.14666"></a>
+<span class="sourceLineNo">14667</span>                                } else {<a name="line.14667"></a>
+<span class="sourceLineNo">14668</span>                                        while (it.hasNext()) {<a name="line.14668"></a>
+<span class="sourceLineNo">14669</span>                                                final long iax = it.aLong;<a name="line.14669"></a>
+<span class="sourceLineNo">14670</span>                                                final long ibx = it.bLong;<a name="line.14670"></a>
+<span class="sourceLineNo">14671</span>                                                float ox;<a name="line.14671"></a>
+<span class="sourceLineNo">14672</span>                                                ox = (float) (Math.min(iax, ibx));<a name="line.14672"></a>
+<span class="sourceLineNo">14673</span>                                                oaf32data[it.oIndex] = ox;<a name="line.14673"></a>
+<span class="sourceLineNo">14674</span>                                        }<a name="line.14674"></a>
+<span class="sourceLineNo">14675</span>                                }<a name="line.14675"></a>
+<span class="sourceLineNo">14676</span>                        } else if (as &lt; bs) {<a name="line.14676"></a>
+<span class="sourceLineNo">14677</span>                                if (it.isOutputDouble()) {<a name="line.14677"></a>
+<span class="sourceLineNo">14678</span>                                        while (it.hasNext()) {<a name="line.14678"></a>
+<span class="sourceLineNo">14679</span>                                                final double iax = it.aDouble;<a name="line.14679"></a>
+<span class="sourceLineNo">14680</span>                                                double ibx = it.bDouble;<a name="line.14680"></a>
+<span class="sourceLineNo">14681</span>                                                float ox;<a name="line.14681"></a>
+<span class="sourceLineNo">14682</span>                                                ox = (float) (Math.min(iax, ibx));<a name="line.14682"></a>
+<span class="sourceLineNo">14683</span>                                                oaf32data[it.oIndex] = ox;<a name="line.14683"></a>
+<span class="sourceLineNo">14684</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14684"></a>
+<span class="sourceLineNo">14685</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.14685"></a>
+<span class="sourceLineNo">14686</span>                                                        ox = (float) (Math.min(iax, ibx));<a name="line.14686"></a>
+<span class="sourceLineNo">14687</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.14687"></a>
+<span class="sourceLineNo">14688</span>                                                }<a name="line.14688"></a>
+<span class="sourceLineNo">14689</span>                                        }<a name="line.14689"></a>
+<span class="sourceLineNo">14690</span>                                } else {<a name="line.14690"></a>
+<span class="sourceLineNo">14691</span>                                        while (it.hasNext()) {<a name="line.14691"></a>
+<span class="sourceLineNo">14692</span>                                                final long iax = it.aLong;<a name="line.14692"></a>
+<span class="sourceLineNo">14693</span>                                                long ibx = it.bLong;<a name="line.14693"></a>
+<span class="sourceLineNo">14694</span>                                                float ox;<a name="line.14694"></a>
+<span class="sourceLineNo">14695</span>                                                ox = (float) (Math.min(iax, ibx));<a name="line.14695"></a>
+<span class="sourceLineNo">14696</span>                                                oaf32data[it.oIndex] = ox;<a name="line.14696"></a>
+<span class="sourceLineNo">14697</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14697"></a>
+<span class="sourceLineNo">14698</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.14698"></a>
+<span class="sourceLineNo">14699</span>                                                        ox = (float) (Math.min(iax, ibx));<a name="line.14699"></a>
+<span class="sourceLineNo">14700</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.14700"></a>
+<span class="sourceLineNo">14701</span>                                                }<a name="line.14701"></a>
+<span class="sourceLineNo">14702</span>                                        }<a name="line.14702"></a>
+<span class="sourceLineNo">14703</span>                                }<a name="line.14703"></a>
+<span class="sourceLineNo">14704</span>                        } else if (as &gt; bs) {<a name="line.14704"></a>
+<span class="sourceLineNo">14705</span>                                if (it.isOutputDouble()) {<a name="line.14705"></a>
+<span class="sourceLineNo">14706</span>                                        while (it.hasNext()) {<a name="line.14706"></a>
+<span class="sourceLineNo">14707</span>                                                double iax = it.aDouble;<a name="line.14707"></a>
+<span class="sourceLineNo">14708</span>                                                final double ibx = it.bDouble;<a name="line.14708"></a>
+<span class="sourceLineNo">14709</span>                                                float ox;<a name="line.14709"></a>
+<span class="sourceLineNo">14710</span>                                                ox = (float) (Math.min(iax, ibx));<a name="line.14710"></a>
+<span class="sourceLineNo">14711</span>                                                oaf32data[it.oIndex] = ox;<a name="line.14711"></a>
+<span class="sourceLineNo">14712</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14712"></a>
+<span class="sourceLineNo">14713</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.14713"></a>
+<span class="sourceLineNo">14714</span>                                                        ox = (float) (Math.min(iax, ibx));<a name="line.14714"></a>
+<span class="sourceLineNo">14715</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.14715"></a>
+<span class="sourceLineNo">14716</span>                                                }<a name="line.14716"></a>
+<span class="sourceLineNo">14717</span>                                        }<a name="line.14717"></a>
+<span class="sourceLineNo">14718</span>                                } else {<a name="line.14718"></a>
+<span class="sourceLineNo">14719</span>                                        while (it.hasNext()) {<a name="line.14719"></a>
+<span class="sourceLineNo">14720</span>                                                long iax = it.aLong;<a name="line.14720"></a>
+<span class="sourceLineNo">14721</span>                                                final long ibx = it.bLong;<a name="line.14721"></a>
+<span class="sourceLineNo">14722</span>                                                float ox;<a name="line.14722"></a>
+<span class="sourceLineNo">14723</span>                                                ox = (float) (Math.min(iax, ibx));<a name="line.14723"></a>
+<span class="sourceLineNo">14724</span>                                                oaf32data[it.oIndex] = ox;<a name="line.14724"></a>
+<span class="sourceLineNo">14725</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14725"></a>
+<span class="sourceLineNo">14726</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.14726"></a>
+<span class="sourceLineNo">14727</span>                                                        ox = (float) (Math.min(iax, ibx));<a name="line.14727"></a>
+<span class="sourceLineNo">14728</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.14728"></a>
+<span class="sourceLineNo">14729</span>                                                }<a name="line.14729"></a>
+<span class="sourceLineNo">14730</span>                                        }<a name="line.14730"></a>
+<span class="sourceLineNo">14731</span>                                }<a name="line.14731"></a>
+<span class="sourceLineNo">14732</span>                        } else if (as == 1) {<a name="line.14732"></a>
+<span class="sourceLineNo">14733</span>                                if (it.isOutputDouble()) {<a name="line.14733"></a>
+<span class="sourceLineNo">14734</span>                                        while (it.hasNext()) {<a name="line.14734"></a>
+<span class="sourceLineNo">14735</span>                                                final double iax = it.aDouble;<a name="line.14735"></a>
+<span class="sourceLineNo">14736</span>                                                final double ibx = it.bDouble;<a name="line.14736"></a>
+<span class="sourceLineNo">14737</span>                                                float ox;<a name="line.14737"></a>
+<span class="sourceLineNo">14738</span>                                                ox = (float) (Math.min(iax, ibx));<a name="line.14738"></a>
+<span class="sourceLineNo">14739</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.14739"></a>
+<span class="sourceLineNo">14740</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.14740"></a>
+<span class="sourceLineNo">14741</span>                                                }<a name="line.14741"></a>
+<span class="sourceLineNo">14742</span>                                        }<a name="line.14742"></a>
+<span class="sourceLineNo">14743</span>                                } else {<a name="line.14743"></a>
+<span class="sourceLineNo">14744</span>                                        while (it.hasNext()) {<a name="line.14744"></a>
+<span class="sourceLineNo">14745</span>                                                final long iax = it.aLong;<a name="line.14745"></a>
+<span class="sourceLineNo">14746</span>                                                final long ibx = it.bLong;<a name="line.14746"></a>
+<span class="sourceLineNo">14747</span>                                                float ox;<a name="line.14747"></a>
+<span class="sourceLineNo">14748</span>                                                ox = (float) (Math.min(iax, ibx));<a name="line.14748"></a>
+<span class="sourceLineNo">14749</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.14749"></a>
+<span class="sourceLineNo">14750</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.14750"></a>
+<span class="sourceLineNo">14751</span>                                                }<a name="line.14751"></a>
+<span class="sourceLineNo">14752</span>                                        }<a name="line.14752"></a>
+<span class="sourceLineNo">14753</span>                                }<a name="line.14753"></a>
+<span class="sourceLineNo">14754</span>                        } else {<a name="line.14754"></a>
+<span class="sourceLineNo">14755</span>                                if (it.isOutputDouble()) {<a name="line.14755"></a>
+<span class="sourceLineNo">14756</span>                                        while (it.hasNext()) {<a name="line.14756"></a>
+<span class="sourceLineNo">14757</span>                                                double iax = it.aDouble;<a name="line.14757"></a>
+<span class="sourceLineNo">14758</span>                                                double ibx = it.bDouble;<a name="line.14758"></a>
+<span class="sourceLineNo">14759</span>                                                float ox;<a name="line.14759"></a>
+<span class="sourceLineNo">14760</span>                                                ox = (float) (Math.min(iax, ibx));<a name="line.14760"></a>
+<span class="sourceLineNo">14761</span>                                                oaf32data[it.oIndex] = ox;<a name="line.14761"></a>
+<span class="sourceLineNo">14762</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14762"></a>
+<span class="sourceLineNo">14763</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.14763"></a>
+<span class="sourceLineNo">14764</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.14764"></a>
+<span class="sourceLineNo">14765</span>                                                        ox = (float) (Math.min(iax, ibx));<a name="line.14765"></a>
+<span class="sourceLineNo">14766</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.14766"></a>
+<span class="sourceLineNo">14767</span>                                                }<a name="line.14767"></a>
+<span class="sourceLineNo">14768</span>                                        }<a name="line.14768"></a>
+<span class="sourceLineNo">14769</span>                                } else {<a name="line.14769"></a>
+<span class="sourceLineNo">14770</span>                                        while (it.hasNext()) {<a name="line.14770"></a>
+<span class="sourceLineNo">14771</span>                                                long iax = it.aLong;<a name="line.14771"></a>
+<span class="sourceLineNo">14772</span>                                                long ibx = it.bLong;<a name="line.14772"></a>
+<span class="sourceLineNo">14773</span>                                                float ox;<a name="line.14773"></a>
+<span class="sourceLineNo">14774</span>                                                ox = (float) (Math.min(iax, ibx));<a name="line.14774"></a>
+<span class="sourceLineNo">14775</span>                                                oaf32data[it.oIndex] = ox;<a name="line.14775"></a>
+<span class="sourceLineNo">14776</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14776"></a>
+<span class="sourceLineNo">14777</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.14777"></a>
+<span class="sourceLineNo">14778</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.14778"></a>
+<span class="sourceLineNo">14779</span>                                                        ox = (float) (Math.min(iax, ibx));<a name="line.14779"></a>
+<span class="sourceLineNo">14780</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.14780"></a>
+<span class="sourceLineNo">14781</span>                                                }<a name="line.14781"></a>
+<span class="sourceLineNo">14782</span>                                        }<a name="line.14782"></a>
+<span class="sourceLineNo">14783</span>                                }<a name="line.14783"></a>
+<span class="sourceLineNo">14784</span>                        }<a name="line.14784"></a>
+<span class="sourceLineNo">14785</span>                        break;<a name="line.14785"></a>
+<span class="sourceLineNo">14786</span>                case Dataset.ARRAYFLOAT64:<a name="line.14786"></a>
+<span class="sourceLineNo">14787</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.14787"></a>
+<span class="sourceLineNo">14788</span>                        if (is == 1) {<a name="line.14788"></a>
+<span class="sourceLineNo">14789</span>                                if (it.isOutputDouble()) {<a name="line.14789"></a>
+<span class="sourceLineNo">14790</span>                                        while (it.hasNext()) {<a name="line.14790"></a>
+<span class="sourceLineNo">14791</span>                                                final double iax = it.aDouble;<a name="line.14791"></a>
+<span class="sourceLineNo">14792</span>                                                final double ibx = it.bDouble;<a name="line.14792"></a>
+<span class="sourceLineNo">14793</span>                                                double ox;<a name="line.14793"></a>
+<span class="sourceLineNo">14794</span>                                                ox = (Math.min(iax, ibx));<a name="line.14794"></a>
+<span class="sourceLineNo">14795</span>                                                oaf64data[it.oIndex] = ox;<a name="line.14795"></a>
+<span class="sourceLineNo">14796</span>                                        }<a name="line.14796"></a>
+<span class="sourceLineNo">14797</span>                                } else {<a name="line.14797"></a>
+<span class="sourceLineNo">14798</span>                                        while (it.hasNext()) {<a name="line.14798"></a>
+<span class="sourceLineNo">14799</span>                                                final long iax = it.aLong;<a name="line.14799"></a>
+<span class="sourceLineNo">14800</span>                                                final long ibx = it.bLong;<a name="line.14800"></a>
+<span class="sourceLineNo">14801</span>                                                double ox;<a name="line.14801"></a>
+<span class="sourceLineNo">14802</span>                                                ox = (Math.min(iax, ibx));<a name="line.14802"></a>
+<span class="sourceLineNo">14803</span>                                                oaf64data[it.oIndex] = ox;<a name="line.14803"></a>
+<span class="sourceLineNo">14804</span>                                        }<a name="line.14804"></a>
+<span class="sourceLineNo">14805</span>                                }<a name="line.14805"></a>
+<span class="sourceLineNo">14806</span>                        } else if (as &lt; bs) {<a name="line.14806"></a>
+<span class="sourceLineNo">14807</span>                                if (it.isOutputDouble()) {<a name="line.14807"></a>
+<span class="sourceLineNo">14808</span>                                        while (it.hasNext()) {<a name="line.14808"></a>
+<span class="sourceLineNo">14809</span>                                                final double iax = it.aDouble;<a name="line.14809"></a>
+<span class="sourceLineNo">14810</span>                                                double ibx = it.bDouble;<a name="line.14810"></a>
+<span class="sourceLineNo">14811</span>                                                double ox;<a name="line.14811"></a>
+<span class="sourceLineNo">14812</span>                                                ox = (Math.min(iax, ibx));<a name="line.14812"></a>
+<span class="sourceLineNo">14813</span>                                                oaf64data[it.oIndex] = ox;<a name="line.14813"></a>
+<span class="sourceLineNo">14814</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14814"></a>
+<span class="sourceLineNo">14815</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.14815"></a>
+<span class="sourceLineNo">14816</span>                                                        ox = (Math.min(iax, ibx));<a name="line.14816"></a>
+<span class="sourceLineNo">14817</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.14817"></a>
+<span class="sourceLineNo">14818</span>                                                }<a name="line.14818"></a>
+<span class="sourceLineNo">14819</span>                                        }<a name="line.14819"></a>
+<span class="sourceLineNo">14820</span>                                } else {<a name="line.14820"></a>
+<span class="sourceLineNo">14821</span>                                        while (it.hasNext()) {<a name="line.14821"></a>
+<span class="sourceLineNo">14822</span>                                                final long iax = it.aLong;<a name="line.14822"></a>
+<span class="sourceLineNo">14823</span>                                                long ibx = it.bLong;<a name="line.14823"></a>
+<span class="sourceLineNo">14824</span>                                                double ox;<a name="line.14824"></a>
+<span class="sourceLineNo">14825</span>                                                ox = (Math.min(iax, ibx));<a name="line.14825"></a>
+<span class="sourceLineNo">14826</span>                                                oaf64data[it.oIndex] = ox;<a name="line.14826"></a>
+<span class="sourceLineNo">14827</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14827"></a>
+<span class="sourceLineNo">14828</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.14828"></a>
+<span class="sourceLineNo">14829</span>                                                        ox = (Math.min(iax, ibx));<a name="line.14829"></a>
+<span class="sourceLineNo">14830</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.14830"></a>
+<span class="sourceLineNo">14831</span>                                                }<a name="line.14831"></a>
+<span class="sourceLineNo">14832</span>                                        }<a name="line.14832"></a>
+<span class="sourceLineNo">14833</span>                                }<a name="line.14833"></a>
+<span class="sourceLineNo">14834</span>                        } else if (as &gt; bs) {<a name="line.14834"></a>
+<span class="sourceLineNo">14835</span>                                if (it.isOutputDouble()) {<a name="line.14835"></a>
+<span class="sourceLineNo">14836</span>                                        while (it.hasNext()) {<a name="line.14836"></a>
+<span class="sourceLineNo">14837</span>                                                double iax = it.aDouble;<a name="line.14837"></a>
+<span class="sourceLineNo">14838</span>                                                final double ibx = it.bDouble;<a name="line.14838"></a>
+<span class="sourceLineNo">14839</span>                                                double ox;<a name="line.14839"></a>
+<span class="sourceLineNo">14840</span>                                                ox = (Math.min(iax, ibx));<a name="line.14840"></a>
+<span class="sourceLineNo">14841</span>                                                oaf64data[it.oIndex] = ox;<a name="line.14841"></a>
+<span class="sourceLineNo">14842</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14842"></a>
+<span class="sourceLineNo">14843</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.14843"></a>
+<span class="sourceLineNo">14844</span>                                                        ox = (Math.min(iax, ibx));<a name="line.14844"></a>
+<span class="sourceLineNo">14845</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.14845"></a>
+<span class="sourceLineNo">14846</span>                                                }<a name="line.14846"></a>
+<span class="sourceLineNo">14847</span>                                        }<a name="line.14847"></a>
+<span class="sourceLineNo">14848</span>                                } else {<a name="line.14848"></a>
+<span class="sourceLineNo">14849</span>                                        while (it.hasNext()) {<a name="line.14849"></a>
+<span class="sourceLineNo">14850</span>                                                long iax = it.aLong;<a name="line.14850"></a>
+<span class="sourceLineNo">14851</span>                                                final long ibx = it.bLong;<a name="line.14851"></a>
+<span class="sourceLineNo">14852</span>                                                double ox;<a name="line.14852"></a>
+<span class="sourceLineNo">14853</span>                                                ox = (Math.min(iax, ibx));<a name="line.14853"></a>
+<span class="sourceLineNo">14854</span>                                                oaf64data[it.oIndex] = ox;<a name="line.14854"></a>
+<span class="sourceLineNo">14855</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14855"></a>
+<span class="sourceLineNo">14856</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.14856"></a>
+<span class="sourceLineNo">14857</span>                                                        ox = (Math.min(iax, ibx));<a name="line.14857"></a>
+<span class="sourceLineNo">14858</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.14858"></a>
+<span class="sourceLineNo">14859</span>                                                }<a name="line.14859"></a>
+<span class="sourceLineNo">14860</span>                                        }<a name="line.14860"></a>
+<span class="sourceLineNo">14861</span>                                }<a name="line.14861"></a>
+<span class="sourceLineNo">14862</span>                        } else if (as == 1) {<a name="line.14862"></a>
+<span class="sourceLineNo">14863</span>                                if (it.isOutputDouble()) {<a name="line.14863"></a>
+<span class="sourceLineNo">14864</span>                                        while (it.hasNext()) {<a name="line.14864"></a>
+<span class="sourceLineNo">14865</span>                                                final double iax = it.aDouble;<a name="line.14865"></a>
+<span class="sourceLineNo">14866</span>                                                final double ibx = it.bDouble;<a name="line.14866"></a>
+<span class="sourceLineNo">14867</span>                                                double ox;<a name="line.14867"></a>
+<span class="sourceLineNo">14868</span>                                                ox = (Math.min(iax, ibx));<a name="line.14868"></a>
+<span class="sourceLineNo">14869</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.14869"></a>
+<span class="sourceLineNo">14870</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.14870"></a>
+<span class="sourceLineNo">14871</span>                                                }<a name="line.14871"></a>
+<span class="sourceLineNo">14872</span>                                        }<a name="line.14872"></a>
+<span class="sourceLineNo">14873</span>                                } else {<a name="line.14873"></a>
+<span class="sourceLineNo">14874</span>                                        while (it.hasNext()) {<a name="line.14874"></a>
+<span class="sourceLineNo">14875</span>                                                final long iax = it.aLong;<a name="line.14875"></a>
+<span class="sourceLineNo">14876</span>                                                final long ibx = it.bLong;<a name="line.14876"></a>
+<span class="sourceLineNo">14877</span>                                                double ox;<a name="line.14877"></a>
+<span class="sourceLineNo">14878</span>                                                ox = (Math.min(iax, ibx));<a name="line.14878"></a>
+<span class="sourceLineNo">14879</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.14879"></a>
+<span class="sourceLineNo">14880</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.14880"></a>
+<span class="sourceLineNo">14881</span>                                                }<a name="line.14881"></a>
+<span class="sourceLineNo">14882</span>                                        }<a name="line.14882"></a>
+<span class="sourceLineNo">14883</span>                                }<a name="line.14883"></a>
+<span class="sourceLineNo">14884</span>                        } else {<a name="line.14884"></a>
+<span class="sourceLineNo">14885</span>                                if (it.isOutputDouble()) {<a name="line.14885"></a>
+<span class="sourceLineNo">14886</span>                                        while (it.hasNext()) {<a name="line.14886"></a>
+<span class="sourceLineNo">14887</span>                                                double iax = it.aDouble;<a name="line.14887"></a>
+<span class="sourceLineNo">14888</span>                                                double ibx = it.bDouble;<a name="line.14888"></a>
+<span class="sourceLineNo">14889</span>                                                double ox;<a name="line.14889"></a>
+<span class="sourceLineNo">14890</span>                                                ox = (Math.min(iax, ibx));<a name="line.14890"></a>
+<span class="sourceLineNo">14891</span>                                                oaf64data[it.oIndex] = ox;<a name="line.14891"></a>
+<span class="sourceLineNo">14892</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14892"></a>
+<span class="sourceLineNo">14893</span>                                                        iax = da.getElementDoubleAbs(it.aIndex + j);<a name="line.14893"></a>
+<span class="sourceLineNo">14894</span>                                                        ibx = db.getElementDoubleAbs(it.bIndex + j);<a name="line.14894"></a>
+<span class="sourceLineNo">14895</span>                                                        ox = (Math.min(iax, ibx));<a name="line.14895"></a>
+<span class="sourceLineNo">14896</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.14896"></a>
+<span class="sourceLineNo">14897</span>                                                }<a name="line.14897"></a>
+<span class="sourceLineNo">14898</span>                                        }<a name="line.14898"></a>
+<span class="sourceLineNo">14899</span>                                } else {<a name="line.14899"></a>
+<span class="sourceLineNo">14900</span>                                        while (it.hasNext()) {<a name="line.14900"></a>
+<span class="sourceLineNo">14901</span>                                                long iax = it.aLong;<a name="line.14901"></a>
+<span class="sourceLineNo">14902</span>                                                long ibx = it.bLong;<a name="line.14902"></a>
+<span class="sourceLineNo">14903</span>                                                double ox;<a name="line.14903"></a>
+<span class="sourceLineNo">14904</span>                                                ox = (Math.min(iax, ibx));<a name="line.14904"></a>
+<span class="sourceLineNo">14905</span>                                                oaf64data[it.oIndex] = ox;<a name="line.14905"></a>
+<span class="sourceLineNo">14906</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.14906"></a>
+<span class="sourceLineNo">14907</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.14907"></a>
+<span class="sourceLineNo">14908</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.14908"></a>
+<span class="sourceLineNo">14909</span>                                                        ox = (Math.min(iax, ibx));<a name="line.14909"></a>
+<span class="sourceLineNo">14910</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.14910"></a>
+<span class="sourceLineNo">14911</span>                                                }<a name="line.14911"></a>
+<span class="sourceLineNo">14912</span>                                        }<a name="line.14912"></a>
+<span class="sourceLineNo">14913</span>                                }<a name="line.14913"></a>
+<span class="sourceLineNo">14914</span>                        }<a name="line.14914"></a>
+<span class="sourceLineNo">14915</span>                        break;<a name="line.14915"></a>
+<span class="sourceLineNo">14916</span>                case Dataset.COMPLEX64:<a name="line.14916"></a>
+<span class="sourceLineNo">14917</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.14917"></a>
+<span class="sourceLineNo">14918</span>                        if (!da.isComplex()) {<a name="line.14918"></a>
+<span class="sourceLineNo">14919</span>                                if (it.isOutputDouble()) {<a name="line.14919"></a>
+<span class="sourceLineNo">14920</span>                                        final double iay = 0;<a name="line.14920"></a>
+<span class="sourceLineNo">14921</span>                                        if (db.isComplex()) {<a name="line.14921"></a>
+<span class="sourceLineNo">14922</span>                                                while (it.hasNext()) {<a name="line.14922"></a>
+<span class="sourceLineNo">14923</span>                                                        final double iax = it.aDouble;<a name="line.14923"></a>
+<span class="sourceLineNo">14924</span>                                                        final double ibx = it.bDouble;<a name="line.14924"></a>
+<span class="sourceLineNo">14925</span>                                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.14925"></a>
+<span class="sourceLineNo">14926</span>                                                        float ox;<a name="line.14926"></a>
+<span class="sourceLineNo">14927</span>                                                        float oy;<a name="line.14927"></a>
+<span class="sourceLineNo">14928</span>                                                        if (Double.isNaN(iax) || Double.isNaN(iay)) {<a name="line.14928"></a>
+<span class="sourceLineNo">14929</span>                                                                ox = (float) (iax);<a name="line.14929"></a>
+<span class="sourceLineNo">14930</span>                                                                oy = (float) (iay);<a name="line.14930"></a>
+<span class="sourceLineNo">14931</span>                                                        } else if (Double.isNaN(ibx) || Double.isNaN(iby)) {<a name="line.14931"></a>
+<span class="sourceLineNo">14932</span>                                                                ox = (float) (ibx);<a name="line.14932"></a>
+<span class="sourceLineNo">14933</span>                                                                oy = (float) (iby);<a name="line.14933"></a>
+<span class="sourceLineNo">14934</span>                                                        } else {<a name="line.14934"></a>
+<span class="sourceLineNo">14935</span>                                                                ox = (float) (Math.min(iax, ibx));<a name="line.14935"></a>
+<span class="sourceLineNo">14936</span>                                                                oy = (float) (Math.min(iay, iby));<a name="line.14936"></a>
+<span class="sourceLineNo">14937</span>                                                        }<a name="line.14937"></a>
+<span class="sourceLineNo">14938</span>                                                        oc64data[it.oIndex] = ox;<a name="line.14938"></a>
+<span class="sourceLineNo">14939</span>                                                        oc64data[it.oIndex + 1] = oy;<a name="line.14939"></a>
+<span class="sourceLineNo">14940</span>                                                }<a name="line.14940"></a>
+<span class="sourceLineNo">14941</span>                                        } else {<a name="line.14941"></a>
+<span class="sourceLineNo">14942</span>                                                while (it.hasNext()) {<a name="line.14942"></a>
+<span class="sourceLineNo">14943</span>                                                        final double iax = it.aDouble;<a name="line.14943"></a>
+<span class="sourceLineNo">14944</span>                                                        final double ibx = it.bDouble;<a name="line.14944"></a>
+<span class="sourceLineNo">14945</span>                                                        final double iby = 0;<a name="line.14945"></a>
+<span class="sourceLineNo">14946</span>                                                        float ox;<a name="line.14946"></a>
+<span class="sourceLineNo">14947</span>                                                        float oy;<a name="line.14947"></a>
+<span class="sourceLineNo">14948</span>                                                        if (Double.isNaN(iax) || Double.isNaN(iay)) {<a name="line.14948"></a>
+<span class="sourceLineNo">14949</span>                                                                ox = (float) (iax);<a name="line.14949"></a>
+<span class="sourceLineNo">14950</span>                                                                oy = (float) (iay);<a name="line.14950"></a>
+<span class="sourceLineNo">14951</span>                                                        } else if (Double.isNaN(ibx) || Double.isNaN(iby)) {<a name="line.14951"></a>
+<span class="sourceLineNo">14952</span>                                                                ox = (float) (ibx);<a name="line.14952"></a>
+<span class="sourceLineNo">14953</span>                                                                oy = (float) (iby);<a name="line.14953"></a>
+<span class="sourceLineNo">14954</span>                                                        } else {<a name="line.14954"></a>
+<span class="sourceLineNo">14955</span>                                                                ox = (float) (Math.min(iax, ibx));<a name="line.14955"></a>
+<span class="sourceLineNo">14956</span>                                                                oy = (float) (Math.min(iay, iby));<a name="line.14956"></a>
+<span class="sourceLineNo">14957</span>                                                        }<a name="line.14957"></a>
+<span class="sourceLineNo">14958</span>                                                        oc64data[it.oIndex] = ox;<a name="line.14958"></a>
+<span class="sourceLineNo">14959</span>                                                        oc64data[it.oIndex + 1] = oy;<a name="line.14959"></a>
+<span class="sourceLineNo">14960</span>                                                }<a name="line.14960"></a>
+<span class="sourceLineNo">14961</span>                                        }<a name="line.14961"></a>
+<span class="sourceLineNo">14962</span>                                } else {<a name="line.14962"></a>
+<span class="sourceLineNo">14963</span>                                        final long iay = 0;<a name="line.14963"></a>
+<span class="sourceLineNo">14964</span>                                        while (it.hasNext()) {<a name="line.14964"></a>
+<span class="sourceLineNo">14965</span>                                                final long iax = it.aLong;<a name="line.14965"></a>
+<span class="sourceLineNo">14966</span>                                                final long ibx = it.bLong;<a name="line.14966"></a>
+<span class="sourceLineNo">14967</span>                                                final long iby = 0;<a name="line.14967"></a>
+<span class="sourceLineNo">14968</span>                                                float ox;<a name="line.14968"></a>
+<span class="sourceLineNo">14969</span>                                                float oy;<a name="line.14969"></a>
+<span class="sourceLineNo">14970</span>                                                if (Double.isNaN(iax) || Double.isNaN(iay)) {<a name="line.14970"></a>
+<span class="sourceLineNo">14971</span>                                                        ox = (float) (iax);<a name="line.14971"></a>
+<span class="sourceLineNo">14972</span>                                                        oy = (float) (iay);<a name="line.14972"></a>
+<span class="sourceLineNo">14973</span>                                                } else if (Double.isNaN(ibx) || Double.isNaN(iby)) {<a name="line.14973"></a>
+<span class="sourceLineNo">14974</span>                                                        ox = (float) (ibx);<a name="line.14974"></a>
+<span class="sourceLineNo">14975</span>                                                        oy = (float) (iby);<a name="line.14975"></a>
+<span class="sourceLineNo">14976</span>                                                } else {<a name="line.14976"></a>
+<span class="sourceLineNo">14977</span>                                                        ox = (float) (Math.min(iax, ibx));<a name="line.14977"></a>
+<span class="sourceLineNo">14978</span>                                                        oy = (float) (Math.min(iay, iby));<a name="line.14978"></a>
+<span class="sourceLineNo">14979</span>                                                }<a name="line.14979"></a>
+<span class="sourceLineNo">14980</span>                                                oc64data[it.oIndex] = ox;<a name="line.14980"></a>
+<span class="sourceLineNo">14981</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.14981"></a>
+<span class="sourceLineNo">14982</span>                                        }<a name="line.14982"></a>
+<span class="sourceLineNo">14983</span>                                }<a name="line.14983"></a>
+<span class="sourceLineNo">14984</span>                        } else if (!db.isComplex()) {<a name="line.14984"></a>
+<span class="sourceLineNo">14985</span>                                final double iby = 0;<a name="line.14985"></a>
+<span class="sourceLineNo">14986</span>                                while (it.hasNext()) {<a name="line.14986"></a>
+<span class="sourceLineNo">14987</span>                                        final double iax = it.aDouble;<a name="line.14987"></a>
+<span class="sourceLineNo">14988</span>                                        final double ibx = it.bDouble;<a name="line.14988"></a>
+<span class="sourceLineNo">14989</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.14989"></a>
+<span class="sourceLineNo">14990</span>                                        float ox;<a name="line.14990"></a>
+<span class="sourceLineNo">14991</span>                                        float oy;<a name="line.14991"></a>
+<span class="sourceLineNo">14992</span>                                        if (Double.isNaN(iax) || Double.isNaN(iay)) {<a name="line.14992"></a>
+<span class="sourceLineNo">14993</span>                                                ox = (float) (iax);<a name="line.14993"></a>
+<span class="sourceLineNo">14994</span>                                                oy = (float) (iay);<a name="line.14994"></a>
+<span class="sourceLineNo">14995</span>                                        } else if (Double.isNaN(ibx) || Double.isNaN(iby)) {<a name="line.14995"></a>
+<span class="sourceLineNo">14996</span>                                                ox = (float) (ibx);<a name="line.14996"></a>
+<span class="sourceLineNo">14997</span>                                                oy = (float) (iby);<a name="line.14997"></a>
+<span class="sourceLineNo">14998</span>                                        } else {<a name="line.14998"></a>
+<span class="sourceLineNo">14999</span>                                                ox = (float) (Math.min(iax, ibx));<a name="line.14999"></a>
+<span class="sourceLineNo">15000</span>                                                oy = (float) (Math.min(iay, iby));<a name="line.15000"></a>
+<span class="sourceLineNo">15001</span>                                        }<a name="line.15001"></a>
+<span class="sourceLineNo">15002</span>                                        oc64data[it.oIndex] = ox;<a name="line.15002"></a>
+<span class="sourceLineNo">15003</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.15003"></a>
+<span class="sourceLineNo">15004</span>                                }<a name="line.15004"></a>
+<span class="sourceLineNo">15005</span>                        } else {<a name="line.15005"></a>
+<span class="sourceLineNo">15006</span>                                while (it.hasNext()) {<a name="line.15006"></a>
+<span class="sourceLineNo">15007</span>                                        final double iax = it.aDouble;<a name="line.15007"></a>
+<span class="sourceLineNo">15008</span>                                        final double ibx = it.bDouble;<a name="line.15008"></a>
+<span class="sourceLineNo">15009</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.15009"></a>
+<span class="sourceLineNo">15010</span>                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.15010"></a>
+<span class="sourceLineNo">15011</span>                                        float ox;<a name="line.15011"></a>
+<span class="sourceLineNo">15012</span>                                        float oy;<a name="line.15012"></a>
+<span class="sourceLineNo">15013</span>                                        if (Double.isNaN(iax) || Double.isNaN(iay)) {<a name="line.15013"></a>
+<span class="sourceLineNo">15014</span>                                                ox = (float) (iax);<a name="line.15014"></a>
+<span class="sourceLineNo">15015</span>                                                oy = (float) (iay);<a name="line.15015"></a>
+<span class="sourceLineNo">15016</span>                                        } else if (Double.isNaN(ibx) || Double.isNaN(iby)) {<a name="line.15016"></a>
+<span class="sourceLineNo">15017</span>                                                ox = (float) (ibx);<a name="line.15017"></a>
+<span class="sourceLineNo">15018</span>                                                oy = (float) (iby);<a name="line.15018"></a>
+<span class="sourceLineNo">15019</span>                                        } else {<a name="line.15019"></a>
+<span class="sourceLineNo">15020</span>                                                ox = (float) (Math.min(iax, ibx));<a name="line.15020"></a>
+<span class="sourceLineNo">15021</span>                                                oy = (float) (Math.min(iay, iby));<a name="line.15021"></a>
+<span class="sourceLineNo">15022</span>                                        }<a name="line.15022"></a>
+<span class="sourceLineNo">15023</span>                                        oc64data[it.oIndex] = ox;<a name="line.15023"></a>
+<span class="sourceLineNo">15024</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.15024"></a>
+<span class="sourceLineNo">15025</span>                                }<a name="line.15025"></a>
+<span class="sourceLineNo">15026</span>                        }<a name="line.15026"></a>
+<span class="sourceLineNo">15027</span>                        break;<a name="line.15027"></a>
+<span class="sourceLineNo">15028</span>                case Dataset.COMPLEX128:<a name="line.15028"></a>
+<span class="sourceLineNo">15029</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.15029"></a>
+<span class="sourceLineNo">15030</span>                        if (!da.isComplex()) {<a name="line.15030"></a>
+<span class="sourceLineNo">15031</span>                                if (it.isOutputDouble()) {<a name="line.15031"></a>
+<span class="sourceLineNo">15032</span>                                        final double iay = 0;<a name="line.15032"></a>
+<span class="sourceLineNo">15033</span>                                        if (db.isComplex()) {<a name="line.15033"></a>
+<span class="sourceLineNo">15034</span>                                                while (it.hasNext()) {<a name="line.15034"></a>
+<span class="sourceLineNo">15035</span>                                                        final double iax = it.aDouble;<a name="line.15035"></a>
+<span class="sourceLineNo">15036</span>                                                        final double ibx = it.bDouble;<a name="line.15036"></a>
+<span class="sourceLineNo">15037</span>                                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.15037"></a>
+<span class="sourceLineNo">15038</span>                                                        double ox;<a name="line.15038"></a>
+<span class="sourceLineNo">15039</span>                                                        double oy;<a name="line.15039"></a>
+<span class="sourceLineNo">15040</span>                                                        if (Double.isNaN(iax) || Double.isNaN(iay)) {<a name="line.15040"></a>
+<span class="sourceLineNo">15041</span>                                                                ox = (iax);<a name="line.15041"></a>
+<span class="sourceLineNo">15042</span>                                                                oy = (iay);<a name="line.15042"></a>
+<span class="sourceLineNo">15043</span>                                                        } else if (Double.isNaN(ibx) || Double.isNaN(iby)) {<a name="line.15043"></a>
+<span class="sourceLineNo">15044</span>                                                                ox = (ibx);<a name="line.15044"></a>
+<span class="sourceLineNo">15045</span>                                                                oy = (iby);<a name="line.15045"></a>
+<span class="sourceLineNo">15046</span>                                                        } else {<a name="line.15046"></a>
+<span class="sourceLineNo">15047</span>                                                                ox = (Math.min(iax, ibx));<a name="line.15047"></a>
+<span class="sourceLineNo">15048</span>                                                                oy = (Math.min(iay, iby));<a name="line.15048"></a>
+<span class="sourceLineNo">15049</span>                                                        }<a name="line.15049"></a>
+<span class="sourceLineNo">15050</span>                                                        oc128data[it.oIndex] = ox;<a name="line.15050"></a>
+<span class="sourceLineNo">15051</span>                                                        oc128data[it.oIndex + 1] = oy;<a name="line.15051"></a>
+<span class="sourceLineNo">15052</span>                                                }<a name="line.15052"></a>
+<span class="sourceLineNo">15053</span>                                        } else {<a name="line.15053"></a>
+<span class="sourceLineNo">15054</span>                                                while (it.hasNext()) {<a name="line.15054"></a>
+<span class="sourceLineNo">15055</span>                                                        final double iax = it.aDouble;<a name="line.15055"></a>
+<span class="sourceLineNo">15056</span>                                                        final double ibx = it.bDouble;<a name="line.15056"></a>
+<span class="sourceLineNo">15057</span>                                                        final double iby = 0;<a name="line.15057"></a>
+<span class="sourceLineNo">15058</span>                                                        double ox;<a name="line.15058"></a>
+<span class="sourceLineNo">15059</span>                                                        double oy;<a name="line.15059"></a>
+<span class="sourceLineNo">15060</span>                                                        if (Double.isNaN(iax) || Double.isNaN(iay)) {<a name="line.15060"></a>
+<span class="sourceLineNo">15061</span>                                                                ox = (iax);<a name="line.15061"></a>
+<span class="sourceLineNo">15062</span>                                                                oy = (iay);<a name="line.15062"></a>
+<span class="sourceLineNo">15063</span>                                                        } else if (Double.isNaN(ibx) || Double.isNaN(iby)) {<a name="line.15063"></a>
+<span class="sourceLineNo">15064</span>                                                                ox = (ibx);<a name="line.15064"></a>
+<span class="sourceLineNo">15065</span>                                                                oy = (iby);<a name="line.15065"></a>
+<span class="sourceLineNo">15066</span>                                                        } else {<a name="line.15066"></a>
+<span class="sourceLineNo">15067</span>                                                                ox = (Math.min(iax, ibx));<a name="line.15067"></a>
+<span class="sourceLineNo">15068</span>                                                                oy = (Math.min(iay, iby));<a name="line.15068"></a>
+<span class="sourceLineNo">15069</span>                                                        }<a name="line.15069"></a>
+<span class="sourceLineNo">15070</span>                                                        oc128data[it.oIndex] = ox;<a name="line.15070"></a>
+<span class="sourceLineNo">15071</span>                                                        oc128data[it.oIndex + 1] = oy;<a name="line.15071"></a>
+<span class="sourceLineNo">15072</span>                                                }<a name="line.15072"></a>
+<span class="sourceLineNo">15073</span>                                        }<a name="line.15073"></a>
+<span class="sourceLineNo">15074</span>                                } else {<a name="line.15074"></a>
+<span class="sourceLineNo">15075</span>                                        final long iay = 0;<a name="line.15075"></a>
+<span class="sourceLineNo">15076</span>                                        while (it.hasNext()) {<a name="line.15076"></a>
+<span class="sourceLineNo">15077</span>                                                final long iax = it.aLong;<a name="line.15077"></a>
+<span class="sourceLineNo">15078</span>                                                final long ibx = it.bLong;<a name="line.15078"></a>
+<span class="sourceLineNo">15079</span>                                                final long iby = 0;<a name="line.15079"></a>
+<span class="sourceLineNo">15080</span>                                                double ox;<a name="line.15080"></a>
+<span class="sourceLineNo">15081</span>                                                double oy;<a name="line.15081"></a>
+<span class="sourceLineNo">15082</span>                                                if (Double.isNaN(iax) || Double.isNaN(iay)) {<a name="line.15082"></a>
+<span class="sourceLineNo">15083</span>                                                        ox = (iax);<a name="line.15083"></a>
+<span class="sourceLineNo">15084</span>                                                        oy = (iay);<a name="line.15084"></a>
+<span class="sourceLineNo">15085</span>                                                } else if (Double.isNaN(ibx) || Double.isNaN(iby)) {<a name="line.15085"></a>
+<span class="sourceLineNo">15086</span>                                                        ox = (ibx);<a name="line.15086"></a>
+<span class="sourceLineNo">15087</span>                                                        oy = (iby);<a name="line.15087"></a>
+<span class="sourceLineNo">15088</span>                                                } else {<a name="line.15088"></a>
+<span class="sourceLineNo">15089</span>                                                        ox = (double) (Math.min(iax, ibx));<a name="line.15089"></a>
+<span class="sourceLineNo">15090</span>                                                        oy = (double) (Math.min(iay, iby));<a name="line.15090"></a>
+<span class="sourceLineNo">15091</span>                                                }<a name="line.15091"></a>
+<span class="sourceLineNo">15092</span>                                                oc128data[it.oIndex] = ox;<a name="line.15092"></a>
+<span class="sourceLineNo">15093</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.15093"></a>
+<span class="sourceLineNo">15094</span>                                        }<a name="line.15094"></a>
+<span class="sourceLineNo">15095</span>                                }<a name="line.15095"></a>
+<span class="sourceLineNo">15096</span>                        } else if (!db.isComplex()) {<a name="line.15096"></a>
+<span class="sourceLineNo">15097</span>                                final double iby = 0;<a name="line.15097"></a>
+<span class="sourceLineNo">15098</span>                                while (it.hasNext()) {<a name="line.15098"></a>
+<span class="sourceLineNo">15099</span>                                        final double iax = it.aDouble;<a name="line.15099"></a>
+<span class="sourceLineNo">15100</span>                                        final double ibx = it.bDouble;<a name="line.15100"></a>
+<span class="sourceLineNo">15101</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.15101"></a>
+<span class="sourceLineNo">15102</span>                                        double ox;<a name="line.15102"></a>
+<span class="sourceLineNo">15103</span>                                        double oy;<a name="line.15103"></a>
+<span class="sourceLineNo">15104</span>                                        if (Double.isNaN(iax) || Double.isNaN(iay)) {<a name="line.15104"></a>
+<span class="sourceLineNo">15105</span>                                                ox = (iax);<a name="line.15105"></a>
+<span class="sourceLineNo">15106</span>                                                oy = (iay);<a name="line.15106"></a>
+<span class="sourceLineNo">15107</span>                                        } else if (Double.isNaN(ibx) || Double.isNaN(iby)) {<a name="line.15107"></a>
+<span class="sourceLineNo">15108</span>                                                ox = (ibx);<a name="line.15108"></a>
+<span class="sourceLineNo">15109</span>                                                oy = (iby);<a name="line.15109"></a>
+<span class="sourceLineNo">15110</span>                                        } else {<a name="line.15110"></a>
+<span class="sourceLineNo">15111</span>                                                ox = (Math.min(iax, ibx));<a name="line.15111"></a>
+<span class="sourceLineNo">15112</span>                                                oy = (Math.min(iay, iby));<a name="line.15112"></a>
+<span class="sourceLineNo">15113</span>                                        }<a name="line.15113"></a>
+<span class="sourceLineNo">15114</span>                                        oc128data[it.oIndex] = ox;<a name="line.15114"></a>
+<span class="sourceLineNo">15115</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.15115"></a>
+<span class="sourceLineNo">15116</span>                                }<a name="line.15116"></a>
+<span class="sourceLineNo">15117</span>                        } else {<a name="line.15117"></a>
+<span class="sourceLineNo">15118</span>                                while (it.hasNext()) {<a name="line.15118"></a>
+<span class="sourceLineNo">15119</span>                                        final double iax = it.aDouble;<a name="line.15119"></a>
+<span class="sourceLineNo">15120</span>                                        final double ibx = it.bDouble;<a name="line.15120"></a>
+<span class="sourceLineNo">15121</span>                                        final double iay = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.15121"></a>
+<span class="sourceLineNo">15122</span>                                        final double iby = db.getElementDoubleAbs(it.bIndex + 1);<a name="line.15122"></a>
+<span class="sourceLineNo">15123</span>                                        double ox;<a name="line.15123"></a>
+<span class="sourceLineNo">15124</span>                                        double oy;<a name="line.15124"></a>
+<span class="sourceLineNo">15125</span>                                        if (Double.isNaN(iax) || Double.isNaN(iay)) {<a name="line.15125"></a>
+<span class="sourceLineNo">15126</span>                                                ox = (iax);<a name="line.15126"></a>
+<span class="sourceLineNo">15127</span>                                                oy = (iay);<a name="line.15127"></a>
+<span class="sourceLineNo">15128</span>                                        } else if (Double.isNaN(ibx) || Double.isNaN(iby)) {<a name="line.15128"></a>
+<span class="sourceLineNo">15129</span>                                                ox = (ibx);<a name="line.15129"></a>
+<span class="sourceLineNo">15130</span>                                                oy = (iby);<a name="line.15130"></a>
+<span class="sourceLineNo">15131</span>                                        } else {<a name="line.15131"></a>
+<span class="sourceLineNo">15132</span>                                                ox = (Math.min(iax, ibx));<a name="line.15132"></a>
+<span class="sourceLineNo">15133</span>                                                oy = (Math.min(iay, iby));<a name="line.15133"></a>
+<span class="sourceLineNo">15134</span>                                        }<a name="line.15134"></a>
+<span class="sourceLineNo">15135</span>                                        oc128data[it.oIndex] = ox;<a name="line.15135"></a>
+<span class="sourceLineNo">15136</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.15136"></a>
+<span class="sourceLineNo">15137</span>                                }<a name="line.15137"></a>
+<span class="sourceLineNo">15138</span>                        }<a name="line.15138"></a>
+<span class="sourceLineNo">15139</span>                        break;<a name="line.15139"></a>
+<span class="sourceLineNo">15140</span>                default:<a name="line.15140"></a>
+<span class="sourceLineNo">15141</span>                        throw new IllegalArgumentException("minimum supports integer, compound integer, real, compound real, complex datasets only");<a name="line.15141"></a>
+<span class="sourceLineNo">15142</span>                }<a name="line.15142"></a>
+<span class="sourceLineNo">15143</span><a name="line.15143"></a>
+<span class="sourceLineNo">15144</span>                addBinaryOperatorName(da, db, result, "minimum");<a name="line.15144"></a>
+<span class="sourceLineNo">15145</span>                return result;<a name="line.15145"></a>
+<span class="sourceLineNo">15146</span>        }<a name="line.15146"></a>
+<span class="sourceLineNo">15147</span><a name="line.15147"></a>
+<span class="sourceLineNo">15148</span>        /**<a name="line.15148"></a>
+<span class="sourceLineNo">15149</span>         * bitwiseAnd operator<a name="line.15149"></a>
+<span class="sourceLineNo">15150</span>         * @param a<a name="line.15150"></a>
+<span class="sourceLineNo">15151</span>         * @param b<a name="line.15151"></a>
+<span class="sourceLineNo">15152</span>         * @return {@code a &amp; b}, bitwise AND of a and b<a name="line.15152"></a>
+<span class="sourceLineNo">15153</span>         */<a name="line.15153"></a>
+<span class="sourceLineNo">15154</span>        public static Dataset bitwiseAnd(final Object a, final Object b) {<a name="line.15154"></a>
+<span class="sourceLineNo">15155</span>                return bitwiseAnd(a, b, null);<a name="line.15155"></a>
+<span class="sourceLineNo">15156</span>        }<a name="line.15156"></a>
+<span class="sourceLineNo">15157</span><a name="line.15157"></a>
+<span class="sourceLineNo">15158</span>        /**<a name="line.15158"></a>
+<span class="sourceLineNo">15159</span>         * bitwiseAnd operator<a name="line.15159"></a>
+<span class="sourceLineNo">15160</span>         * @param a<a name="line.15160"></a>
+<span class="sourceLineNo">15161</span>         * @param b<a name="line.15161"></a>
+<span class="sourceLineNo">15162</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.15162"></a>
+<span class="sourceLineNo">15163</span>         * @return {@code a &amp; b}, bitwise AND of a and b<a name="line.15163"></a>
+<span class="sourceLineNo">15164</span>         */<a name="line.15164"></a>
+<span class="sourceLineNo">15165</span>        public static Dataset bitwiseAnd(final Object a, final Object b, final Dataset o) {<a name="line.15165"></a>
+<span class="sourceLineNo">15166</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.15166"></a>
+<span class="sourceLineNo">15167</span>                Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.15167"></a>
+<span class="sourceLineNo">15168</span>                BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.15168"></a>
+<span class="sourceLineNo">15169</span>                it.setOutputDouble(false);<a name="line.15169"></a>
+<span class="sourceLineNo">15170</span>                final Dataset result = it.getOutput();<a name="line.15170"></a>
+<span class="sourceLineNo">15171</span>                if (!result.isComplex()) {<a name="line.15171"></a>
+<span class="sourceLineNo">15172</span>                        boolean change = false;<a name="line.15172"></a>
+<span class="sourceLineNo">15173</span>                        if (da.isComplex()) {<a name="line.15173"></a>
+<span class="sourceLineNo">15174</span>                                da = da.getRealView();<a name="line.15174"></a>
+<span class="sourceLineNo">15175</span>                                change = true;<a name="line.15175"></a>
+<span class="sourceLineNo">15176</span>                        }<a name="line.15176"></a>
+<span class="sourceLineNo">15177</span>                        if (db.isComplex()) {<a name="line.15177"></a>
+<span class="sourceLineNo">15178</span>                                db = db.getRealView();<a name="line.15178"></a>
+<span class="sourceLineNo">15179</span>                                change = true;<a name="line.15179"></a>
+<span class="sourceLineNo">15180</span>                        }<a name="line.15180"></a>
+<span class="sourceLineNo">15181</span>                        if (change) {<a name="line.15181"></a>
+<span class="sourceLineNo">15182</span>                                it = BroadcastIterator.createIterator(da, db, result, true);<a name="line.15182"></a>
+<span class="sourceLineNo">15183</span>                                it.setOutputDouble(false);<a name="line.15183"></a>
+<span class="sourceLineNo">15184</span>                        }<a name="line.15184"></a>
+<span class="sourceLineNo">15185</span>                }<a name="line.15185"></a>
+<span class="sourceLineNo">15186</span>                final int is = result.getElementsPerItem();<a name="line.15186"></a>
+<span class="sourceLineNo">15187</span>                final int as = da.getElementsPerItem();<a name="line.15187"></a>
+<span class="sourceLineNo">15188</span>                final int bs = db.getElementsPerItem();<a name="line.15188"></a>
+<span class="sourceLineNo">15189</span>                final int dt = result.getDType();<a name="line.15189"></a>
+<span class="sourceLineNo">15190</span><a name="line.15190"></a>
+<span class="sourceLineNo">15191</span>                switch(dt) {<a name="line.15191"></a>
+<span class="sourceLineNo">15192</span>                case Dataset.INT8:<a name="line.15192"></a>
+<span class="sourceLineNo">15193</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.15193"></a>
+<span class="sourceLineNo">15194</span>                        {<a name="line.15194"></a>
+<span class="sourceLineNo">15195</span>                                while (it.hasNext()) {<a name="line.15195"></a>
+<span class="sourceLineNo">15196</span>                                        final long iax = it.aLong;<a name="line.15196"></a>
+<span class="sourceLineNo">15197</span>                                        final long ibx = it.bLong;<a name="line.15197"></a>
+<span class="sourceLineNo">15198</span>                                        byte ox;<a name="line.15198"></a>
+<span class="sourceLineNo">15199</span>                                        ox = (byte) (iax &amp; ibx);<a name="line.15199"></a>
+<span class="sourceLineNo">15200</span>                                        oi8data[it.oIndex] = ox;<a name="line.15200"></a>
+<span class="sourceLineNo">15201</span>                                }<a name="line.15201"></a>
+<span class="sourceLineNo">15202</span>                        }<a name="line.15202"></a>
+<span class="sourceLineNo">15203</span>                        break;<a name="line.15203"></a>
+<span class="sourceLineNo">15204</span>                case Dataset.INT16:<a name="line.15204"></a>
+<span class="sourceLineNo">15205</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.15205"></a>
+<span class="sourceLineNo">15206</span>                        {<a name="line.15206"></a>
+<span class="sourceLineNo">15207</span>                                while (it.hasNext()) {<a name="line.15207"></a>
+<span class="sourceLineNo">15208</span>                                        final long iax = it.aLong;<a name="line.15208"></a>
+<span class="sourceLineNo">15209</span>                                        final long ibx = it.bLong;<a name="line.15209"></a>
+<span class="sourceLineNo">15210</span>                                        short ox;<a name="line.15210"></a>
+<span class="sourceLineNo">15211</span>                                        ox = (short) (iax &amp; ibx);<a name="line.15211"></a>
+<span class="sourceLineNo">15212</span>                                        oi16data[it.oIndex] = ox;<a name="line.15212"></a>
+<span class="sourceLineNo">15213</span>                                }<a name="line.15213"></a>
+<span class="sourceLineNo">15214</span>                        }<a name="line.15214"></a>
+<span class="sourceLineNo">15215</span>                        break;<a name="line.15215"></a>
+<span class="sourceLineNo">15216</span>                case Dataset.INT64:<a name="line.15216"></a>
+<span class="sourceLineNo">15217</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.15217"></a>
+<span class="sourceLineNo">15218</span>                        {<a name="line.15218"></a>
+<span class="sourceLineNo">15219</span>                                while (it.hasNext()) {<a name="line.15219"></a>
+<span class="sourceLineNo">15220</span>                                        final long iax = it.aLong;<a name="line.15220"></a>
+<span class="sourceLineNo">15221</span>                                        final long ibx = it.bLong;<a name="line.15221"></a>
+<span class="sourceLineNo">15222</span>                                        long ox;<a name="line.15222"></a>
+<span class="sourceLineNo">15223</span>                                        ox = (iax &amp; ibx);<a name="line.15223"></a>
+<span class="sourceLineNo">15224</span>                                        oi64data[it.oIndex] = ox;<a name="line.15224"></a>
+<span class="sourceLineNo">15225</span>                                }<a name="line.15225"></a>
+<span class="sourceLineNo">15226</span>                        }<a name="line.15226"></a>
+<span class="sourceLineNo">15227</span>                        break;<a name="line.15227"></a>
+<span class="sourceLineNo">15228</span>                case Dataset.INT32:<a name="line.15228"></a>
+<span class="sourceLineNo">15229</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.15229"></a>
+<span class="sourceLineNo">15230</span>                        {<a name="line.15230"></a>
+<span class="sourceLineNo">15231</span>                                while (it.hasNext()) {<a name="line.15231"></a>
+<span class="sourceLineNo">15232</span>                                        final long iax = it.aLong;<a name="line.15232"></a>
+<span class="sourceLineNo">15233</span>                                        final long ibx = it.bLong;<a name="line.15233"></a>
+<span class="sourceLineNo">15234</span>                                        int ox;<a name="line.15234"></a>
+<span class="sourceLineNo">15235</span>                                        ox = (int) (iax &amp; ibx);<a name="line.15235"></a>
+<span class="sourceLineNo">15236</span>                                        oi32data[it.oIndex] = ox;<a name="line.15236"></a>
+<span class="sourceLineNo">15237</span>                                }<a name="line.15237"></a>
+<span class="sourceLineNo">15238</span>                        }<a name="line.15238"></a>
+<span class="sourceLineNo">15239</span>                        break;<a name="line.15239"></a>
+<span class="sourceLineNo">15240</span>                case Dataset.ARRAYINT8:<a name="line.15240"></a>
+<span class="sourceLineNo">15241</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.15241"></a>
+<span class="sourceLineNo">15242</span>                        if (is == 1) {<a name="line.15242"></a>
+<span class="sourceLineNo">15243</span>                                {<a name="line.15243"></a>
+<span class="sourceLineNo">15244</span>                                        while (it.hasNext()) {<a name="line.15244"></a>
+<span class="sourceLineNo">15245</span>                                                final long iax = it.aLong;<a name="line.15245"></a>
+<span class="sourceLineNo">15246</span>                                                final long ibx = it.bLong;<a name="line.15246"></a>
+<span class="sourceLineNo">15247</span>                                                byte ox;<a name="line.15247"></a>
+<span class="sourceLineNo">15248</span>                                                ox = (byte) (iax &amp; ibx);<a name="line.15248"></a>
+<span class="sourceLineNo">15249</span>                                                oai8data[it.oIndex] = ox;<a name="line.15249"></a>
+<span class="sourceLineNo">15250</span>                                        }<a name="line.15250"></a>
+<span class="sourceLineNo">15251</span>                                }<a name="line.15251"></a>
+<span class="sourceLineNo">15252</span>                        } else if (as &lt; bs) {<a name="line.15252"></a>
+<span class="sourceLineNo">15253</span>                                {<a name="line.15253"></a>
+<span class="sourceLineNo">15254</span>                                        while (it.hasNext()) {<a name="line.15254"></a>
+<span class="sourceLineNo">15255</span>                                                final long iax = it.aLong;<a name="line.15255"></a>
+<span class="sourceLineNo">15256</span>                                                long ibx = it.bLong;<a name="line.15256"></a>
+<span class="sourceLineNo">15257</span>                                                byte ox;<a name="line.15257"></a>
+<span class="sourceLineNo">15258</span>                                                ox = (byte) (iax &amp; ibx);<a name="line.15258"></a>
+<span class="sourceLineNo">15259</span>                                                oai8data[it.oIndex] = ox;<a name="line.15259"></a>
+<span class="sourceLineNo">15260</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.15260"></a>
+<span class="sourceLineNo">15261</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.15261"></a>
+<span class="sourceLineNo">15262</span>                                                        ox = (byte) (iax &amp; ibx);<a name="line.15262"></a>
+<span class="sourceLineNo">15263</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.15263"></a>
+<span class="sourceLineNo">15264</span>                                                }<a name="line.15264"></a>
+<span class="sourceLineNo">15265</span>                                        }<a name="line.15265"></a>
+<span class="sourceLineNo">15266</span>                                }<a name="line.15266"></a>
+<span class="sourceLineNo">15267</span>                        } else if (as &gt; bs) {<a name="line.15267"></a>
+<span class="sourceLineNo">15268</span>                                {<a name="line.15268"></a>
+<span class="sourceLineNo">15269</span>                                        while (it.hasNext()) {<a name="line.15269"></a>
+<span class="sourceLineNo">15270</span>                                                long iax = it.aLong;<a name="line.15270"></a>
+<span class="sourceLineNo">15271</span>                                                final long ibx = it.bLong;<a name="line.15271"></a>
+<span class="sourceLineNo">15272</span>                                                byte ox;<a name="line.15272"></a>
+<span class="sourceLineNo">15273</span>                                                ox = (byte) (iax &amp; ibx);<a name="line.15273"></a>
+<span class="sourceLineNo">15274</span>                                                oai8data[it.oIndex] = ox;<a name="line.15274"></a>
+<span class="sourceLineNo">15275</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.15275"></a>
+<span class="sourceLineNo">15276</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.15276"></a>
+<span class="sourceLineNo">15277</span>                                                        ox = (byte) (iax &amp; ibx);<a name="line.15277"></a>
+<span class="sourceLineNo">15278</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.15278"></a>
+<span class="sourceLineNo">15279</span>                                                }<a name="line.15279"></a>
+<span class="sourceLineNo">15280</span>                                        }<a name="line.15280"></a>
+<span class="sourceLineNo">15281</span>                                }<a name="line.15281"></a>
+<span class="sourceLineNo">15282</span>                        } else if (as == 1) {<a name="line.15282"></a>
+<span class="sourceLineNo">15283</span>                                {<a name="line.15283"></a>
+<span class="sourceLineNo">15284</span>                                        while (it.hasNext()) {<a name="line.15284"></a>
+<span class="sourceLineNo">15285</span>                                                final long iax = it.aLong;<a name="line.15285"></a>
+<span class="sourceLineNo">15286</span>                                                final long ibx = it.bLong;<a name="line.15286"></a>
+<span class="sourceLineNo">15287</span>                                                byte ox;<a name="line.15287"></a>
+<span class="sourceLineNo">15288</span>                                                ox = (byte) (iax &amp; ibx);<a name="line.15288"></a>
+<span class="sourceLineNo">15289</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.15289"></a>
+<span class="sourceLineNo">15290</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.15290"></a>
+<span class="sourceLineNo">15291</span>                                                }<a name="line.15291"></a>
+<span class="sourceLineNo">15292</span>                                        }<a name="line.15292"></a>
+<span class="sourceLineNo">15293</span>                                }<a name="line.15293"></a>
+<span class="sourceLineNo">15294</span>                        } else {<a name="line.15294"></a>
+<span class="sourceLineNo">15295</span>                                {<a name="line.15295"></a>
+<span class="sourceLineNo">15296</span>                                        while (it.hasNext()) {<a name="line.15296"></a>
+<span class="sourceLineNo">15297</span>                                                long iax = it.aLong;<a name="line.15297"></a>
+<span class="sourceLineNo">15298</span>                                                long ibx = it.bLong;<a name="line.15298"></a>
+<span class="sourceLineNo">15299</span>                                                byte ox;<a name="line.15299"></a>
+<span class="sourceLineNo">15300</span>                                                ox = (byte) (iax &amp; ibx);<a name="line.15300"></a>
+<span class="sourceLineNo">15301</span>                                                oai8data[it.oIndex] = ox;<a name="line.15301"></a>
+<span class="sourceLineNo">15302</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.15302"></a>
+<span class="sourceLineNo">15303</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.15303"></a>
+<span class="sourceLineNo">15304</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.15304"></a>
+<span class="sourceLineNo">15305</span>                                                        ox = (byte) (iax &amp; ibx);<a name="line.15305"></a>
+<span class="sourceLineNo">15306</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.15306"></a>
+<span class="sourceLineNo">15307</span>                                                }<a name="line.15307"></a>
+<span class="sourceLineNo">15308</span>                                        }<a name="line.15308"></a>
+<span class="sourceLineNo">15309</span>                                }<a name="line.15309"></a>
+<span class="sourceLineNo">15310</span>                        }<a name="line.15310"></a>
+<span class="sourceLineNo">15311</span>                        break;<a name="line.15311"></a>
+<span class="sourceLineNo">15312</span>                case Dataset.ARRAYINT16:<a name="line.15312"></a>
+<span class="sourceLineNo">15313</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.15313"></a>
+<span class="sourceLineNo">15314</span>                        if (is == 1) {<a name="line.15314"></a>
+<span class="sourceLineNo">15315</span>                                {<a name="line.15315"></a>
+<span class="sourceLineNo">15316</span>                                        while (it.hasNext()) {<a name="line.15316"></a>
+<span class="sourceLineNo">15317</span>                                                final long iax = it.aLong;<a name="line.15317"></a>
+<span class="sourceLineNo">15318</span>                                                final long ibx = it.bLong;<a name="line.15318"></a>
+<span class="sourceLineNo">15319</span>                                                short ox;<a name="line.15319"></a>
+<span class="sourceLineNo">15320</span>                                                ox = (short) (iax &amp; ibx);<a name="line.15320"></a>
+<span class="sourceLineNo">15321</span>                                                oai16data[it.oIndex] = ox;<a name="line.15321"></a>
+<span class="sourceLineNo">15322</span>                                        }<a name="line.15322"></a>
+<span class="sourceLineNo">15323</span>                                }<a name="line.15323"></a>
+<span class="sourceLineNo">15324</span>                        } else if (as &lt; bs) {<a name="line.15324"></a>
+<span class="sourceLineNo">15325</span>                                {<a name="line.15325"></a>
+<span class="sourceLineNo">15326</span>                                        while (it.hasNext()) {<a name="line.15326"></a>
+<span class="sourceLineNo">15327</span>                                                final long iax = it.aLong;<a name="line.15327"></a>
+<span class="sourceLineNo">15328</span>                                                long ibx = it.bLong;<a name="line.15328"></a>
+<span class="sourceLineNo">15329</span>                                                short ox;<a name="line.15329"></a>
+<span class="sourceLineNo">15330</span>                                                ox = (short) (iax &amp; ibx);<a name="line.15330"></a>
+<span class="sourceLineNo">15331</span>                                                oai16data[it.oIndex] = ox;<a name="line.15331"></a>
+<span class="sourceLineNo">15332</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.15332"></a>
+<span class="sourceLineNo">15333</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.15333"></a>
+<span class="sourceLineNo">15334</span>                                                        ox = (short) (iax &amp; ibx);<a name="line.15334"></a>
+<span class="sourceLineNo">15335</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.15335"></a>
+<span class="sourceLineNo">15336</span>                                                }<a name="line.15336"></a>
+<span class="sourceLineNo">15337</span>                                        }<a name="line.15337"></a>
+<span class="sourceLineNo">15338</span>                                }<a name="line.15338"></a>
+<span class="sourceLineNo">15339</span>                        } else if (as &gt; bs) {<a name="line.15339"></a>
+<span class="sourceLineNo">15340</span>                                {<a name="line.15340"></a>
+<span class="sourceLineNo">15341</span>                                        while (it.hasNext()) {<a name="line.15341"></a>
+<span class="sourceLineNo">15342</span>                                                long iax = it.aLong;<a name="line.15342"></a>
+<span class="sourceLineNo">15343</span>                                                final long ibx = it.bLong;<a name="line.15343"></a>
+<span class="sourceLineNo">15344</span>                                                short ox;<a name="line.15344"></a>
+<span class="sourceLineNo">15345</span>                                                ox = (short) (iax &amp; ibx);<a name="line.15345"></a>
+<span class="sourceLineNo">15346</span>                                                oai16data[it.oIndex] = ox;<a name="line.15346"></a>
+<span class="sourceLineNo">15347</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.15347"></a>
+<span class="sourceLineNo">15348</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.15348"></a>
+<span class="sourceLineNo">15349</span>                                                        ox = (short) (iax &amp; ibx);<a name="line.15349"></a>
+<span class="sourceLineNo">15350</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.15350"></a>
+<span class="sourceLineNo">15351</span>                                                }<a name="line.15351"></a>
+<span class="sourceLineNo">15352</span>                                        }<a name="line.15352"></a>
+<span class="sourceLineNo">15353</span>                                }<a name="line.15353"></a>
+<span class="sourceLineNo">15354</span>                        } else if (as == 1) {<a name="line.15354"></a>
+<span class="sourceLineNo">15355</span>                                {<a name="line.15355"></a>
+<span class="sourceLineNo">15356</span>                                        while (it.hasNext()) {<a name="line.15356"></a>
+<span class="sourceLineNo">15357</span>                                                final long iax = it.aLong;<a name="line.15357"></a>
+<span class="sourceLineNo">15358</span>                                                final long ibx = it.bLong;<a name="line.15358"></a>
+<span class="sourceLineNo">15359</span>                                                short ox;<a name="line.15359"></a>
+<span class="sourceLineNo">15360</span>                                                ox = (short) (iax &amp; ibx);<a name="line.15360"></a>
+<span class="sourceLineNo">15361</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.15361"></a>
+<span class="sourceLineNo">15362</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.15362"></a>
+<span class="sourceLineNo">15363</span>                                                }<a name="line.15363"></a>
+<span class="sourceLineNo">15364</span>                                        }<a name="line.15364"></a>
+<span class="sourceLineNo">15365</span>                                }<a name="line.15365"></a>
+<span class="sourceLineNo">15366</span>                        } else {<a name="line.15366"></a>
+<span class="sourceLineNo">15367</span>                                {<a name="line.15367"></a>
+<span class="sourceLineNo">15368</span>                                        while (it.hasNext()) {<a name="line.15368"></a>
+<span class="sourceLineNo">15369</span>                                                long iax = it.aLong;<a name="line.15369"></a>
+<span class="sourceLineNo">15370</span>                                                long ibx = it.bLong;<a name="line.15370"></a>
+<span class="sourceLineNo">15371</span>                                                short ox;<a name="line.15371"></a>
+<span class="sourceLineNo">15372</span>                                                ox = (short) (iax &amp; ibx);<a name="line.15372"></a>
+<span class="sourceLineNo">15373</span>                                                oai16data[it.oIndex] = ox;<a name="line.15373"></a>
+<span class="sourceLineNo">15374</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.15374"></a>
+<span class="sourceLineNo">15375</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.15375"></a>
+<span class="sourceLineNo">15376</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.15376"></a>
+<span class="sourceLineNo">15377</span>                                                        ox = (short) (iax &amp; ibx);<a name="line.15377"></a>
+<span class="sourceLineNo">15378</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.15378"></a>
+<span class="sourceLineNo">15379</span>                                                }<a name="line.15379"></a>
+<span class="sourceLineNo">15380</span>                                        }<a name="line.15380"></a>
+<span class="sourceLineNo">15381</span>                                }<a name="line.15381"></a>
+<span class="sourceLineNo">15382</span>                        }<a name="line.15382"></a>
+<span class="sourceLineNo">15383</span>                        break;<a name="line.15383"></a>
+<span class="sourceLineNo">15384</span>                case Dataset.ARRAYINT64:<a name="line.15384"></a>
+<span class="sourceLineNo">15385</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.15385"></a>
+<span class="sourceLineNo">15386</span>                        if (is == 1) {<a name="line.15386"></a>
+<span class="sourceLineNo">15387</span>                                {<a name="line.15387"></a>
+<span class="sourceLineNo">15388</span>                                        while (it.hasNext()) {<a name="line.15388"></a>
+<span class="sourceLineNo">15389</span>                                                final long iax = it.aLong;<a name="line.15389"></a>
+<span class="sourceLineNo">15390</span>                                                final long ibx = it.bLong;<a name="line.15390"></a>
+<span class="sourceLineNo">15391</span>                                                long ox;<a name="line.15391"></a>
+<span class="sourceLineNo">15392</span>                                                ox = (iax &amp; ibx);<a name="line.15392"></a>
+<span class="sourceLineNo">15393</span>                                                oai64data[it.oIndex] = ox;<a name="line.15393"></a>
+<span class="sourceLineNo">15394</span>                                        }<a name="line.15394"></a>
+<span class="sourceLineNo">15395</span>                                }<a name="line.15395"></a>
+<span class="sourceLineNo">15396</span>                        } else if (as &lt; bs) {<a name="line.15396"></a>
+<span class="sourceLineNo">15397</span>                                {<a name="line.15397"></a>
+<span class="sourceLineNo">15398</span>                                        while (it.hasNext()) {<a name="line.15398"></a>
+<span class="sourceLineNo">15399</span>                                                final long iax = it.aLong;<a name="line.15399"></a>
+<span class="sourceLineNo">15400</span>                                                long ibx = it.bLong;<a name="line.15400"></a>
+<span class="sourceLineNo">15401</span>                                                long ox;<a name="line.15401"></a>
+<span class="sourceLineNo">15402</span>                                                ox = (iax &amp; ibx);<a name="line.15402"></a>
+<span class="sourceLineNo">15403</span>                                                oai64data[it.oIndex] = ox;<a name="line.15403"></a>
+<span class="sourceLineNo">15404</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.15404"></a>
+<span class="sourceLineNo">15405</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.15405"></a>
+<span class="sourceLineNo">15406</span>                                                        ox = (iax &amp; ibx);<a name="line.15406"></a>
+<span class="sourceLineNo">15407</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.15407"></a>
+<span class="sourceLineNo">15408</span>                                                }<a name="line.15408"></a>
+<span class="sourceLineNo">15409</span>                                        }<a name="line.15409"></a>
+<span class="sourceLineNo">15410</span>                                }<a name="line.15410"></a>
+<span class="sourceLineNo">15411</span>                        } else if (as &gt; bs) {<a name="line.15411"></a>
+<span class="sourceLineNo">15412</span>                                {<a name="line.15412"></a>
+<span class="sourceLineNo">15413</span>                                        while (it.hasNext()) {<a name="line.15413"></a>
+<span class="sourceLineNo">15414</span>                                                long iax = it.aLong;<a name="line.15414"></a>
+<span class="sourceLineNo">15415</span>                                                final long ibx = it.bLong;<a name="line.15415"></a>
+<span class="sourceLineNo">15416</span>                                                long ox;<a name="line.15416"></a>
+<span class="sourceLineNo">15417</span>                                                ox = (iax &amp; ibx);<a name="line.15417"></a>
+<span class="sourceLineNo">15418</span>                                                oai64data[it.oIndex] = ox;<a name="line.15418"></a>
+<span class="sourceLineNo">15419</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.15419"></a>
+<span class="sourceLineNo">15420</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.15420"></a>
+<span class="sourceLineNo">15421</span>                                                        ox = (iax &amp; ibx);<a name="line.15421"></a>
+<span class="sourceLineNo">15422</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.15422"></a>
+<span class="sourceLineNo">15423</span>                                                }<a name="line.15423"></a>
+<span class="sourceLineNo">15424</span>                                        }<a name="line.15424"></a>
+<span class="sourceLineNo">15425</span>                                }<a name="line.15425"></a>
+<span class="sourceLineNo">15426</span>                        } else if (as == 1) {<a name="line.15426"></a>
+<span class="sourceLineNo">15427</span>                                {<a name="line.15427"></a>
+<span class="sourceLineNo">15428</span>                                        while (it.hasNext()) {<a name="line.15428"></a>
+<span class="sourceLineNo">15429</span>                                                final long iax = it.aLong;<a name="line.15429"></a>
+<span class="sourceLineNo">15430</span>                                                final long ibx = it.bLong;<a name="line.15430"></a>
+<span class="sourceLineNo">15431</span>                                                long ox;<a name="line.15431"></a>
+<span class="sourceLineNo">15432</span>                                                ox = (iax &amp; ibx);<a name="line.15432"></a>
+<span class="sourceLineNo">15433</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.15433"></a>
+<span class="sourceLineNo">15434</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.15434"></a>
+<span class="sourceLineNo">15435</span>                                                }<a name="line.15435"></a>
+<span class="sourceLineNo">15436</span>                                        }<a name="line.15436"></a>
+<span class="sourceLineNo">15437</span>                                }<a name="line.15437"></a>
+<span class="sourceLineNo">15438</span>                        } else {<a name="line.15438"></a>
+<span class="sourceLineNo">15439</span>                                {<a name="line.15439"></a>
+<span class="sourceLineNo">15440</span>                                        while (it.hasNext()) {<a name="line.15440"></a>
+<span class="sourceLineNo">15441</span>                                                long iax = it.aLong;<a name="line.15441"></a>
+<span class="sourceLineNo">15442</span>                                                long ibx = it.bLong;<a name="line.15442"></a>
+<span class="sourceLineNo">15443</span>                                                long ox;<a name="line.15443"></a>
+<span class="sourceLineNo">15444</span>                                                ox = (iax &amp; ibx);<a name="line.15444"></a>
+<span class="sourceLineNo">15445</span>                                                oai64data[it.oIndex] = ox;<a name="line.15445"></a>
+<span class="sourceLineNo">15446</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.15446"></a>
+<span class="sourceLineNo">15447</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.15447"></a>
+<span class="sourceLineNo">15448</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.15448"></a>
+<span class="sourceLineNo">15449</span>                                                        ox = (iax &amp; ibx);<a name="line.15449"></a>
+<span class="sourceLineNo">15450</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.15450"></a>
+<span class="sourceLineNo">15451</span>                                                }<a name="line.15451"></a>
+<span class="sourceLineNo">15452</span>                                        }<a name="line.15452"></a>
+<span class="sourceLineNo">15453</span>                                }<a name="line.15453"></a>
+<span class="sourceLineNo">15454</span>                        }<a name="line.15454"></a>
+<span class="sourceLineNo">15455</span>                        break;<a name="line.15455"></a>
+<span class="sourceLineNo">15456</span>                case Dataset.ARRAYINT32:<a name="line.15456"></a>
+<span class="sourceLineNo">15457</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.15457"></a>
+<span class="sourceLineNo">15458</span>                        if (is == 1) {<a name="line.15458"></a>
+<span class="sourceLineNo">15459</span>                                {<a name="line.15459"></a>
+<span class="sourceLineNo">15460</span>                                        while (it.hasNext()) {<a name="line.15460"></a>
+<span class="sourceLineNo">15461</span>                                                final long iax = it.aLong;<a name="line.15461"></a>
+<span class="sourceLineNo">15462</span>                                                final long ibx = it.bLong;<a name="line.15462"></a>
+<span class="sourceLineNo">15463</span>                                                int ox;<a name="line.15463"></a>
+<span class="sourceLineNo">15464</span>                                                ox = (int) (iax &amp; ibx);<a name="line.15464"></a>
+<span class="sourceLineNo">15465</span>                                                oai32data[it.oIndex] = ox;<a name="line.15465"></a>
+<span class="sourceLineNo">15466</span>                                        }<a name="line.15466"></a>
+<span class="sourceLineNo">15467</span>                                }<a name="line.15467"></a>
+<span class="sourceLineNo">15468</span>                        } else if (as &lt; bs) {<a name="line.15468"></a>
+<span class="sourceLineNo">15469</span>                                {<a name="line.15469"></a>
+<span class="sourceLineNo">15470</span>                                        while (it.hasNext()) {<a name="line.15470"></a>
+<span class="sourceLineNo">15471</span>                                                final long iax = it.aLong;<a name="line.15471"></a>
+<span class="sourceLineNo">15472</span>                                                long ibx = it.bLong;<a name="line.15472"></a>
+<span class="sourceLineNo">15473</span>                                                int ox;<a name="line.15473"></a>
+<span class="sourceLineNo">15474</span>                                                ox = (int) (iax &amp; ibx);<a name="line.15474"></a>
+<span class="sourceLineNo">15475</span>                                                oai32data[it.oIndex] = ox;<a name="line.15475"></a>
+<span class="sourceLineNo">15476</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.15476"></a>
+<span class="sourceLineNo">15477</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.15477"></a>
+<span class="sourceLineNo">15478</span>                                                        ox = (int) (iax &amp; ibx);<a name="line.15478"></a>
+<span class="sourceLineNo">15479</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.15479"></a>
+<span class="sourceLineNo">15480</span>                                                }<a name="line.15480"></a>
+<span class="sourceLineNo">15481</span>                                        }<a name="line.15481"></a>
+<span class="sourceLineNo">15482</span>                                }<a name="line.15482"></a>
+<span class="sourceLineNo">15483</span>                        } else if (as &gt; bs) {<a name="line.15483"></a>
+<span class="sourceLineNo">15484</span>                                {<a name="line.15484"></a>
+<span class="sourceLineNo">15485</span>                                        while (it.hasNext()) {<a name="line.15485"></a>
+<span class="sourceLineNo">15486</span>                                                long iax = it.aLong;<a name="line.15486"></a>
+<span class="sourceLineNo">15487</span>                                                final long ibx = it.bLong;<a name="line.15487"></a>
+<span class="sourceLineNo">15488</span>                                                int ox;<a name="line.15488"></a>
+<span class="sourceLineNo">15489</span>                                                ox = (int) (iax &amp; ibx);<a name="line.15489"></a>
+<span class="sourceLineNo">15490</span>                                                oai32data[it.oIndex] = ox;<a name="line.15490"></a>
+<span class="sourceLineNo">15491</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.15491"></a>
+<span class="sourceLineNo">15492</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.15492"></a>
+<span class="sourceLineNo">15493</span>                                                        ox = (int) (iax &amp; ibx);<a name="line.15493"></a>
+<span class="sourceLineNo">15494</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.15494"></a>
+<span class="sourceLineNo">15495</span>                                                }<a name="line.15495"></a>
+<span class="sourceLineNo">15496</span>                                        }<a name="line.15496"></a>
+<span class="sourceLineNo">15497</span>                                }<a name="line.15497"></a>
+<span class="sourceLineNo">15498</span>                        } else if (as == 1) {<a name="line.15498"></a>
+<span class="sourceLineNo">15499</span>                                {<a name="line.15499"></a>
+<span class="sourceLineNo">15500</span>                                        while (it.hasNext()) {<a name="line.15500"></a>
+<span class="sourceLineNo">15501</span>                                                final long iax = it.aLong;<a name="line.15501"></a>
+<span class="sourceLineNo">15502</span>                                                final long ibx = it.bLong;<a name="line.15502"></a>
+<span class="sourceLineNo">15503</span>                                                int ox;<a name="line.15503"></a>
+<span class="sourceLineNo">15504</span>                                                ox = (int) (iax &amp; ibx);<a name="line.15504"></a>
+<span class="sourceLineNo">15505</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.15505"></a>
+<span class="sourceLineNo">15506</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.15506"></a>
+<span class="sourceLineNo">15507</span>                                                }<a name="line.15507"></a>
+<span class="sourceLineNo">15508</span>                                        }<a name="line.15508"></a>
+<span class="sourceLineNo">15509</span>                                }<a name="line.15509"></a>
+<span class="sourceLineNo">15510</span>                        } else {<a name="line.15510"></a>
+<span class="sourceLineNo">15511</span>                                {<a name="line.15511"></a>
+<span class="sourceLineNo">15512</span>                                        while (it.hasNext()) {<a name="line.15512"></a>
+<span class="sourceLineNo">15513</span>                                                long iax = it.aLong;<a name="line.15513"></a>
+<span class="sourceLineNo">15514</span>                                                long ibx = it.bLong;<a name="line.15514"></a>
+<span class="sourceLineNo">15515</span>                                                int ox;<a name="line.15515"></a>
+<span class="sourceLineNo">15516</span>                                                ox = (int) (iax &amp; ibx);<a name="line.15516"></a>
+<span class="sourceLineNo">15517</span>                                                oai32data[it.oIndex] = ox;<a name="line.15517"></a>
+<span class="sourceLineNo">15518</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.15518"></a>
+<span class="sourceLineNo">15519</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.15519"></a>
+<span class="sourceLineNo">15520</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.15520"></a>
+<span class="sourceLineNo">15521</span>                                                        ox = (int) (iax &amp; ibx);<a name="line.15521"></a>
+<span class="sourceLineNo">15522</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.15522"></a>
+<span class="sourceLineNo">15523</span>                                                }<a name="line.15523"></a>
+<span class="sourceLineNo">15524</span>                                        }<a name="line.15524"></a>
+<span class="sourceLineNo">15525</span>                                }<a name="line.15525"></a>
+<span class="sourceLineNo">15526</span>                        }<a name="line.15526"></a>
+<span class="sourceLineNo">15527</span>                        break;<a name="line.15527"></a>
+<span class="sourceLineNo">15528</span>                default:<a name="line.15528"></a>
+<span class="sourceLineNo">15529</span>                        throw new IllegalArgumentException("bitwiseAnd supports integer, compound integer datasets only");<a name="line.15529"></a>
+<span class="sourceLineNo">15530</span>                }<a name="line.15530"></a>
+<span class="sourceLineNo">15531</span><a name="line.15531"></a>
+<span class="sourceLineNo">15532</span>                addBinaryOperatorName(da, db, result, "&amp;");<a name="line.15532"></a>
+<span class="sourceLineNo">15533</span>                return result;<a name="line.15533"></a>
+<span class="sourceLineNo">15534</span>        }<a name="line.15534"></a>
+<span class="sourceLineNo">15535</span><a name="line.15535"></a>
+<span class="sourceLineNo">15536</span>        /**<a name="line.15536"></a>
+<span class="sourceLineNo">15537</span>         * bitwiseOr operator<a name="line.15537"></a>
+<span class="sourceLineNo">15538</span>         * @param a<a name="line.15538"></a>
+<span class="sourceLineNo">15539</span>         * @param b<a name="line.15539"></a>
+<span class="sourceLineNo">15540</span>         * @return {@code a | b}, bitwise inclusive OR of a and b<a name="line.15540"></a>
+<span class="sourceLineNo">15541</span>         */<a name="line.15541"></a>
+<span class="sourceLineNo">15542</span>        public static Dataset bitwiseOr(final Object a, final Object b) {<a name="line.15542"></a>
+<span class="sourceLineNo">15543</span>                return bitwiseOr(a, b, null);<a name="line.15543"></a>
+<span class="sourceLineNo">15544</span>        }<a name="line.15544"></a>
+<span class="sourceLineNo">15545</span><a name="line.15545"></a>
+<span class="sourceLineNo">15546</span>        /**<a name="line.15546"></a>
+<span class="sourceLineNo">15547</span>         * bitwiseOr operator<a name="line.15547"></a>
+<span class="sourceLineNo">15548</span>         * @param a<a name="line.15548"></a>
+<span class="sourceLineNo">15549</span>         * @param b<a name="line.15549"></a>
+<span class="sourceLineNo">15550</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.15550"></a>
+<span class="sourceLineNo">15551</span>         * @return {@code a | b}, bitwise inclusive OR of a and b<a name="line.15551"></a>
+<span class="sourceLineNo">15552</span>         */<a name="line.15552"></a>
+<span class="sourceLineNo">15553</span>        public static Dataset bitwiseOr(final Object a, final Object b, final Dataset o) {<a name="line.15553"></a>
+<span class="sourceLineNo">15554</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.15554"></a>
+<span class="sourceLineNo">15555</span>                Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.15555"></a>
+<span class="sourceLineNo">15556</span>                BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.15556"></a>
+<span class="sourceLineNo">15557</span>                it.setOutputDouble(false);<a name="line.15557"></a>
+<span class="sourceLineNo">15558</span>                final Dataset result = it.getOutput();<a name="line.15558"></a>
+<span class="sourceLineNo">15559</span>                if (!result.isComplex()) {<a name="line.15559"></a>
+<span class="sourceLineNo">15560</span>                        boolean change = false;<a name="line.15560"></a>
+<span class="sourceLineNo">15561</span>                        if (da.isComplex()) {<a name="line.15561"></a>
+<span class="sourceLineNo">15562</span>                                da = da.getRealView();<a name="line.15562"></a>
+<span class="sourceLineNo">15563</span>                                change = true;<a name="line.15563"></a>
+<span class="sourceLineNo">15564</span>                        }<a name="line.15564"></a>
+<span class="sourceLineNo">15565</span>                        if (db.isComplex()) {<a name="line.15565"></a>
+<span class="sourceLineNo">15566</span>                                db = db.getRealView();<a name="line.15566"></a>
+<span class="sourceLineNo">15567</span>                                change = true;<a name="line.15567"></a>
+<span class="sourceLineNo">15568</span>                        }<a name="line.15568"></a>
+<span class="sourceLineNo">15569</span>                        if (change) {<a name="line.15569"></a>
+<span class="sourceLineNo">15570</span>                                it = BroadcastIterator.createIterator(da, db, result, true);<a name="line.15570"></a>
+<span class="sourceLineNo">15571</span>                                it.setOutputDouble(false);<a name="line.15571"></a>
+<span class="sourceLineNo">15572</span>                        }<a name="line.15572"></a>
+<span class="sourceLineNo">15573</span>                }<a name="line.15573"></a>
+<span class="sourceLineNo">15574</span>                final int is = result.getElementsPerItem();<a name="line.15574"></a>
+<span class="sourceLineNo">15575</span>                final int as = da.getElementsPerItem();<a name="line.15575"></a>
+<span class="sourceLineNo">15576</span>                final int bs = db.getElementsPerItem();<a name="line.15576"></a>
+<span class="sourceLineNo">15577</span>                final int dt = result.getDType();<a name="line.15577"></a>
+<span class="sourceLineNo">15578</span><a name="line.15578"></a>
+<span class="sourceLineNo">15579</span>                switch(dt) {<a name="line.15579"></a>
+<span class="sourceLineNo">15580</span>                case Dataset.INT8:<a name="line.15580"></a>
+<span class="sourceLineNo">15581</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.15581"></a>
+<span class="sourceLineNo">15582</span>                        {<a name="line.15582"></a>
+<span class="sourceLineNo">15583</span>                                while (it.hasNext()) {<a name="line.15583"></a>
+<span class="sourceLineNo">15584</span>                                        final long iax = it.aLong;<a name="line.15584"></a>
+<span class="sourceLineNo">15585</span>                                        final long ibx = it.bLong;<a name="line.15585"></a>
+<span class="sourceLineNo">15586</span>                                        byte ox;<a name="line.15586"></a>
+<span class="sourceLineNo">15587</span>                                        ox = (byte) (iax | ibx);<a name="line.15587"></a>
+<span class="sourceLineNo">15588</span>                                        oi8data[it.oIndex] = ox;<a name="line.15588"></a>
+<span class="sourceLineNo">15589</span>                                }<a name="line.15589"></a>
+<span class="sourceLineNo">15590</span>                        }<a name="line.15590"></a>
+<span class="sourceLineNo">15591</span>                        break;<a name="line.15591"></a>
+<span class="sourceLineNo">15592</span>                case Dataset.INT16:<a name="line.15592"></a>
+<span class="sourceLineNo">15593</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.15593"></a>
+<span class="sourceLineNo">15594</span>                        {<a name="line.15594"></a>
+<span class="sourceLineNo">15595</span>                                while (it.hasNext()) {<a name="line.15595"></a>
+<span class="sourceLineNo">15596</span>                                        final long iax = it.aLong;<a name="line.15596"></a>
+<span class="sourceLineNo">15597</span>                                        final long ibx = it.bLong;<a name="line.15597"></a>
+<span class="sourceLineNo">15598</span>                                        short ox;<a name="line.15598"></a>
+<span class="sourceLineNo">15599</span>                                        ox = (short) (iax | ibx);<a name="line.15599"></a>
+<span class="sourceLineNo">15600</span>                                        oi16data[it.oIndex] = ox;<a name="line.15600"></a>
+<span class="sourceLineNo">15601</span>                                }<a name="line.15601"></a>
+<span class="sourceLineNo">15602</span>                        }<a name="line.15602"></a>
+<span class="sourceLineNo">15603</span>                        break;<a name="line.15603"></a>
+<span class="sourceLineNo">15604</span>                case Dataset.INT64:<a name="line.15604"></a>
+<span class="sourceLineNo">15605</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.15605"></a>
+<span class="sourceLineNo">15606</span>                        {<a name="line.15606"></a>
+<span class="sourceLineNo">15607</span>                                while (it.hasNext()) {<a name="line.15607"></a>
+<span class="sourceLineNo">15608</span>                                        final long iax = it.aLong;<a name="line.15608"></a>
+<span class="sourceLineNo">15609</span>                                        final long ibx = it.bLong;<a name="line.15609"></a>
+<span class="sourceLineNo">15610</span>                                        long ox;<a name="line.15610"></a>
+<span class="sourceLineNo">15611</span>                                        ox = (iax | ibx);<a name="line.15611"></a>
+<span class="sourceLineNo">15612</span>                                        oi64data[it.oIndex] = ox;<a name="line.15612"></a>
+<span class="sourceLineNo">15613</span>                                }<a name="line.15613"></a>
+<span class="sourceLineNo">15614</span>                        }<a name="line.15614"></a>
+<span class="sourceLineNo">15615</span>                        break;<a name="line.15615"></a>
+<span class="sourceLineNo">15616</span>                case Dataset.INT32:<a name="line.15616"></a>
+<span class="sourceLineNo">15617</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.15617"></a>
+<span class="sourceLineNo">15618</span>                        {<a name="line.15618"></a>
+<span class="sourceLineNo">15619</span>                                while (it.hasNext()) {<a name="line.15619"></a>
+<span class="sourceLineNo">15620</span>                                        final long iax = it.aLong;<a name="line.15620"></a>
+<span class="sourceLineNo">15621</span>                                        final long ibx = it.bLong;<a name="line.15621"></a>
+<span class="sourceLineNo">15622</span>                                        int ox;<a name="line.15622"></a>
+<span class="sourceLineNo">15623</span>                                        ox = (int) (iax | ibx);<a name="line.15623"></a>
+<span class="sourceLineNo">15624</span>                                        oi32data[it.oIndex] = ox;<a name="line.15624"></a>
+<span class="sourceLineNo">15625</span>                                }<a name="line.15625"></a>
+<span class="sourceLineNo">15626</span>                        }<a name="line.15626"></a>
+<span class="sourceLineNo">15627</span>                        break;<a name="line.15627"></a>
+<span class="sourceLineNo">15628</span>                case Dataset.ARRAYINT8:<a name="line.15628"></a>
+<span class="sourceLineNo">15629</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.15629"></a>
+<span class="sourceLineNo">15630</span>                        if (is == 1) {<a name="line.15630"></a>
+<span class="sourceLineNo">15631</span>                                {<a name="line.15631"></a>
+<span class="sourceLineNo">15632</span>                                        while (it.hasNext()) {<a name="line.15632"></a>
+<span class="sourceLineNo">15633</span>                                                final long iax = it.aLong;<a name="line.15633"></a>
+<span class="sourceLineNo">15634</span>                                                final long ibx = it.bLong;<a name="line.15634"></a>
+<span class="sourceLineNo">15635</span>                                                byte ox;<a name="line.15635"></a>
+<span class="sourceLineNo">15636</span>                                                ox = (byte) (iax | ibx);<a name="line.15636"></a>
+<span class="sourceLineNo">15637</span>                                                oai8data[it.oIndex] = ox;<a name="line.15637"></a>
+<span class="sourceLineNo">15638</span>                                        }<a name="line.15638"></a>
+<span class="sourceLineNo">15639</span>                                }<a name="line.15639"></a>
+<span class="sourceLineNo">15640</span>                        } else if (as &lt; bs) {<a name="line.15640"></a>
+<span class="sourceLineNo">15641</span>                                {<a name="line.15641"></a>
+<span class="sourceLineNo">15642</span>                                        while (it.hasNext()) {<a name="line.15642"></a>
+<span class="sourceLineNo">15643</span>                                                final long iax = it.aLong;<a name="line.15643"></a>
+<span class="sourceLineNo">15644</span>                                                long ibx = it.bLong;<a name="line.15644"></a>
+<span class="sourceLineNo">15645</span>                                                byte ox;<a name="line.15645"></a>
+<span class="sourceLineNo">15646</span>                                                ox = (byte) (iax | ibx);<a name="line.15646"></a>
+<span class="sourceLineNo">15647</span>                                                oai8data[it.oIndex] = ox;<a name="line.15647"></a>
+<span class="sourceLineNo">15648</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.15648"></a>
+<span class="sourceLineNo">15649</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.15649"></a>
+<span class="sourceLineNo">15650</span>                                                        ox = (byte) (iax | ibx);<a name="line.15650"></a>
+<span class="sourceLineNo">15651</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.15651"></a>
+<span class="sourceLineNo">15652</span>                                                }<a name="line.15652"></a>
+<span class="sourceLineNo">15653</span>                                        }<a name="line.15653"></a>
+<span class="sourceLineNo">15654</span>                                }<a name="line.15654"></a>
+<span class="sourceLineNo">15655</span>                        } else if (as &gt; bs) {<a name="line.15655"></a>
+<span class="sourceLineNo">15656</span>                                {<a name="line.15656"></a>
+<span class="sourceLineNo">15657</span>                                        while (it.hasNext()) {<a name="line.15657"></a>
+<span class="sourceLineNo">15658</span>                                                long iax = it.aLong;<a name="line.15658"></a>
+<span class="sourceLineNo">15659</span>                                                final long ibx = it.bLong;<a name="line.15659"></a>
+<span class="sourceLineNo">15660</span>                                                byte ox;<a name="line.15660"></a>
+<span class="sourceLineNo">15661</span>                                                ox = (byte) (iax | ibx);<a name="line.15661"></a>
+<span class="sourceLineNo">15662</span>                                                oai8data[it.oIndex] = ox;<a name="line.15662"></a>
+<span class="sourceLineNo">15663</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.15663"></a>
+<span class="sourceLineNo">15664</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.15664"></a>
+<span class="sourceLineNo">15665</span>                                                        ox = (byte) (iax | ibx);<a name="line.15665"></a>
+<span class="sourceLineNo">15666</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.15666"></a>
+<span class="sourceLineNo">15667</span>                                                }<a name="line.15667"></a>
+<span class="sourceLineNo">15668</span>                                        }<a name="line.15668"></a>
+<span class="sourceLineNo">15669</span>                                }<a name="line.15669"></a>
+<span class="sourceLineNo">15670</span>                        } else if (as == 1) {<a name="line.15670"></a>
+<span class="sourceLineNo">15671</span>                                {<a name="line.15671"></a>
+<span class="sourceLineNo">15672</span>                                        while (it.hasNext()) {<a name="line.15672"></a>
+<span class="sourceLineNo">15673</span>                                                final long iax = it.aLong;<a name="line.15673"></a>
+<span class="sourceLineNo">15674</span>                                                final long ibx = it.bLong;<a name="line.15674"></a>
+<span class="sourceLineNo">15675</span>                                                byte ox;<a name="line.15675"></a>
+<span class="sourceLineNo">15676</span>                                                ox = (byte) (iax | ibx);<a name="line.15676"></a>
+<span class="sourceLineNo">15677</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.15677"></a>
+<span class="sourceLineNo">15678</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.15678"></a>
+<span class="sourceLineNo">15679</span>                                                }<a name="line.15679"></a>
+<span class="sourceLineNo">15680</span>                                        }<a name="line.15680"></a>
+<span class="sourceLineNo">15681</span>                                }<a name="line.15681"></a>
+<span class="sourceLineNo">15682</span>                        } else {<a name="line.15682"></a>
+<span class="sourceLineNo">15683</span>                                {<a name="line.15683"></a>
+<span class="sourceLineNo">15684</span>                                        while (it.hasNext()) {<a name="line.15684"></a>
+<span class="sourceLineNo">15685</span>                                                long iax = it.aLong;<a name="line.15685"></a>
+<span class="sourceLineNo">15686</span>                                                long ibx = it.bLong;<a name="line.15686"></a>
+<span class="sourceLineNo">15687</span>                                                byte ox;<a name="line.15687"></a>
+<span class="sourceLineNo">15688</span>                                                ox = (byte) (iax | ibx);<a name="line.15688"></a>
+<span class="sourceLineNo">15689</span>                                                oai8data[it.oIndex] = ox;<a name="line.15689"></a>
+<span class="sourceLineNo">15690</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.15690"></a>
+<span class="sourceLineNo">15691</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.15691"></a>
+<span class="sourceLineNo">15692</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.15692"></a>
+<span class="sourceLineNo">15693</span>                                                        ox = (byte) (iax | ibx);<a name="line.15693"></a>
+<span class="sourceLineNo">15694</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.15694"></a>
+<span class="sourceLineNo">15695</span>                                                }<a name="line.15695"></a>
+<span class="sourceLineNo">15696</span>                                        }<a name="line.15696"></a>
+<span class="sourceLineNo">15697</span>                                }<a name="line.15697"></a>
+<span class="sourceLineNo">15698</span>                        }<a name="line.15698"></a>
+<span class="sourceLineNo">15699</span>                        break;<a name="line.15699"></a>
+<span class="sourceLineNo">15700</span>                case Dataset.ARRAYINT16:<a name="line.15700"></a>
+<span class="sourceLineNo">15701</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.15701"></a>
+<span class="sourceLineNo">15702</span>                        if (is == 1) {<a name="line.15702"></a>
+<span class="sourceLineNo">15703</span>                                {<a name="line.15703"></a>
+<span class="sourceLineNo">15704</span>                                        while (it.hasNext()) {<a name="line.15704"></a>
+<span class="sourceLineNo">15705</span>                                                final long iax = it.aLong;<a name="line.15705"></a>
+<span class="sourceLineNo">15706</span>                                                final long ibx = it.bLong;<a name="line.15706"></a>
+<span class="sourceLineNo">15707</span>                                                short ox;<a name="line.15707"></a>
+<span class="sourceLineNo">15708</span>                                                ox = (short) (iax | ibx);<a name="line.15708"></a>
+<span class="sourceLineNo">15709</span>                                                oai16data[it.oIndex] = ox;<a name="line.15709"></a>
+<span class="sourceLineNo">15710</span>                                        }<a name="line.15710"></a>
+<span class="sourceLineNo">15711</span>                                }<a name="line.15711"></a>
+<span class="sourceLineNo">15712</span>                        } else if (as &lt; bs) {<a name="line.15712"></a>
+<span class="sourceLineNo">15713</span>                                {<a name="line.15713"></a>
+<span class="sourceLineNo">15714</span>                                        while (it.hasNext()) {<a name="line.15714"></a>
+<span class="sourceLineNo">15715</span>                                                final long iax = it.aLong;<a name="line.15715"></a>
+<span class="sourceLineNo">15716</span>                                                long ibx = it.bLong;<a name="line.15716"></a>
+<span class="sourceLineNo">15717</span>                                                short ox;<a name="line.15717"></a>
+<span class="sourceLineNo">15718</span>                                                ox = (short) (iax | ibx);<a name="line.15718"></a>
+<span class="sourceLineNo">15719</span>                                                oai16data[it.oIndex] = ox;<a name="line.15719"></a>
+<span class="sourceLineNo">15720</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.15720"></a>
+<span class="sourceLineNo">15721</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.15721"></a>
+<span class="sourceLineNo">15722</span>                                                        ox = (short) (iax | ibx);<a name="line.15722"></a>
+<span class="sourceLineNo">15723</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.15723"></a>
+<span class="sourceLineNo">15724</span>                                                }<a name="line.15724"></a>
+<span class="sourceLineNo">15725</span>                                        }<a name="line.15725"></a>
+<span class="sourceLineNo">15726</span>                                }<a name="line.15726"></a>
+<span class="sourceLineNo">15727</span>                        } else if (as &gt; bs) {<a name="line.15727"></a>
+<span class="sourceLineNo">15728</span>                                {<a name="line.15728"></a>
+<span class="sourceLineNo">15729</span>                                        while (it.hasNext()) {<a name="line.15729"></a>
+<span class="sourceLineNo">15730</span>                                                long iax = it.aLong;<a name="line.15730"></a>
+<span class="sourceLineNo">15731</span>                                                final long ibx = it.bLong;<a name="line.15731"></a>
+<span class="sourceLineNo">15732</span>                                                short ox;<a name="line.15732"></a>
+<span class="sourceLineNo">15733</span>                                                ox = (short) (iax | ibx);<a name="line.15733"></a>
+<span class="sourceLineNo">15734</span>                                                oai16data[it.oIndex] = ox;<a name="line.15734"></a>
+<span class="sourceLineNo">15735</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.15735"></a>
+<span class="sourceLineNo">15736</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.15736"></a>
+<span class="sourceLineNo">15737</span>                                                        ox = (short) (iax | ibx);<a name="line.15737"></a>
+<span class="sourceLineNo">15738</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.15738"></a>
+<span class="sourceLineNo">15739</span>                                                }<a name="line.15739"></a>
+<span class="sourceLineNo">15740</span>                                        }<a name="line.15740"></a>
+<span class="sourceLineNo">15741</span>                                }<a name="line.15741"></a>
+<span class="sourceLineNo">15742</span>                        } else if (as == 1) {<a name="line.15742"></a>
+<span class="sourceLineNo">15743</span>                                {<a name="line.15743"></a>
+<span class="sourceLineNo">15744</span>                                        while (it.hasNext()) {<a name="line.15744"></a>
+<span class="sourceLineNo">15745</span>                                                final long iax = it.aLong;<a name="line.15745"></a>
+<span class="sourceLineNo">15746</span>                                                final long ibx = it.bLong;<a name="line.15746"></a>
+<span class="sourceLineNo">15747</span>                                                short ox;<a name="line.15747"></a>
+<span class="sourceLineNo">15748</span>                                                ox = (short) (iax | ibx);<a name="line.15748"></a>
+<span class="sourceLineNo">15749</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.15749"></a>
+<span class="sourceLineNo">15750</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.15750"></a>
+<span class="sourceLineNo">15751</span>                                                }<a name="line.15751"></a>
+<span class="sourceLineNo">15752</span>                                        }<a name="line.15752"></a>
+<span class="sourceLineNo">15753</span>                                }<a name="line.15753"></a>
+<span class="sourceLineNo">15754</span>                        } else {<a name="line.15754"></a>
+<span class="sourceLineNo">15755</span>                                {<a name="line.15755"></a>
+<span class="sourceLineNo">15756</span>                                        while (it.hasNext()) {<a name="line.15756"></a>
+<span class="sourceLineNo">15757</span>                                                long iax = it.aLong;<a name="line.15757"></a>
+<span class="sourceLineNo">15758</span>                                                long ibx = it.bLong;<a name="line.15758"></a>
+<span class="sourceLineNo">15759</span>                                                short ox;<a name="line.15759"></a>
+<span class="sourceLineNo">15760</span>                                                ox = (short) (iax | ibx);<a name="line.15760"></a>
+<span class="sourceLineNo">15761</span>                                                oai16data[it.oIndex] = ox;<a name="line.15761"></a>
+<span class="sourceLineNo">15762</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.15762"></a>
+<span class="sourceLineNo">15763</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.15763"></a>
+<span class="sourceLineNo">15764</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.15764"></a>
+<span class="sourceLineNo">15765</span>                                                        ox = (short) (iax | ibx);<a name="line.15765"></a>
+<span class="sourceLineNo">15766</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.15766"></a>
+<span class="sourceLineNo">15767</span>                                                }<a name="line.15767"></a>
+<span class="sourceLineNo">15768</span>                                        }<a name="line.15768"></a>
+<span class="sourceLineNo">15769</span>                                }<a name="line.15769"></a>
+<span class="sourceLineNo">15770</span>                        }<a name="line.15770"></a>
+<span class="sourceLineNo">15771</span>                        break;<a name="line.15771"></a>
+<span class="sourceLineNo">15772</span>                case Dataset.ARRAYINT64:<a name="line.15772"></a>
+<span class="sourceLineNo">15773</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.15773"></a>
+<span class="sourceLineNo">15774</span>                        if (is == 1) {<a name="line.15774"></a>
+<span class="sourceLineNo">15775</span>                                {<a name="line.15775"></a>
+<span class="sourceLineNo">15776</span>                                        while (it.hasNext()) {<a name="line.15776"></a>
+<span class="sourceLineNo">15777</span>                                                final long iax = it.aLong;<a name="line.15777"></a>
+<span class="sourceLineNo">15778</span>                                                final long ibx = it.bLong;<a name="line.15778"></a>
+<span class="sourceLineNo">15779</span>                                                long ox;<a name="line.15779"></a>
+<span class="sourceLineNo">15780</span>                                                ox = (iax | ibx);<a name="line.15780"></a>
+<span class="sourceLineNo">15781</span>                                                oai64data[it.oIndex] = ox;<a name="line.15781"></a>
+<span class="sourceLineNo">15782</span>                                        }<a name="line.15782"></a>
+<span class="sourceLineNo">15783</span>                                }<a name="line.15783"></a>
+<span class="sourceLineNo">15784</span>                        } else if (as &lt; bs) {<a name="line.15784"></a>
+<span class="sourceLineNo">15785</span>                                {<a name="line.15785"></a>
+<span class="sourceLineNo">15786</span>                                        while (it.hasNext()) {<a name="line.15786"></a>
+<span class="sourceLineNo">15787</span>                                                final long iax = it.aLong;<a name="line.15787"></a>
+<span class="sourceLineNo">15788</span>                                                long ibx = it.bLong;<a name="line.15788"></a>
+<span class="sourceLineNo">15789</span>                                                long ox;<a name="line.15789"></a>
+<span class="sourceLineNo">15790</span>                                                ox = (iax | ibx);<a name="line.15790"></a>
+<span class="sourceLineNo">15791</span>                                                oai64data[it.oIndex] = ox;<a name="line.15791"></a>
+<span class="sourceLineNo">15792</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.15792"></a>
+<span class="sourceLineNo">15793</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.15793"></a>
+<span class="sourceLineNo">15794</span>                                                        ox = (iax | ibx);<a name="line.15794"></a>
+<span class="sourceLineNo">15795</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.15795"></a>
+<span class="sourceLineNo">15796</span>                                                }<a name="line.15796"></a>
+<span class="sourceLineNo">15797</span>                                        }<a name="line.15797"></a>
+<span class="sourceLineNo">15798</span>                                }<a name="line.15798"></a>
+<span class="sourceLineNo">15799</span>                        } else if (as &gt; bs) {<a name="line.15799"></a>
+<span class="sourceLineNo">15800</span>                                {<a name="line.15800"></a>
+<span class="sourceLineNo">15801</span>                                        while (it.hasNext()) {<a name="line.15801"></a>
+<span class="sourceLineNo">15802</span>                                                long iax = it.aLong;<a name="line.15802"></a>
+<span class="sourceLineNo">15803</span>                                                final long ibx = it.bLong;<a name="line.15803"></a>
+<span class="sourceLineNo">15804</span>                                                long ox;<a name="line.15804"></a>
+<span class="sourceLineNo">15805</span>                                                ox = (iax | ibx);<a name="line.15805"></a>
+<span class="sourceLineNo">15806</span>                                                oai64data[it.oIndex] = ox;<a name="line.15806"></a>
+<span class="sourceLineNo">15807</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.15807"></a>
+<span class="sourceLineNo">15808</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.15808"></a>
+<span class="sourceLineNo">15809</span>                                                        ox = (iax | ibx);<a name="line.15809"></a>
+<span class="sourceLineNo">15810</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.15810"></a>
+<span class="sourceLineNo">15811</span>                                                }<a name="line.15811"></a>
+<span class="sourceLineNo">15812</span>                                        }<a name="line.15812"></a>
+<span class="sourceLineNo">15813</span>                                }<a name="line.15813"></a>
+<span class="sourceLineNo">15814</span>                        } else if (as == 1) {<a name="line.15814"></a>
+<span class="sourceLineNo">15815</span>                                {<a name="line.15815"></a>
+<span class="sourceLineNo">15816</span>                                        while (it.hasNext()) {<a name="line.15816"></a>
+<span class="sourceLineNo">15817</span>                                                final long iax = it.aLong;<a name="line.15817"></a>
+<span class="sourceLineNo">15818</span>                                                final long ibx = it.bLong;<a name="line.15818"></a>
+<span class="sourceLineNo">15819</span>                                                long ox;<a name="line.15819"></a>
+<span class="sourceLineNo">15820</span>                                                ox = (iax | ibx);<a name="line.15820"></a>
+<span class="sourceLineNo">15821</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.15821"></a>
+<span class="sourceLineNo">15822</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.15822"></a>
+<span class="sourceLineNo">15823</span>                                                }<a name="line.15823"></a>
+<span class="sourceLineNo">15824</span>                                        }<a name="line.15824"></a>
+<span class="sourceLineNo">15825</span>                                }<a name="line.15825"></a>
+<span class="sourceLineNo">15826</span>                        } else {<a name="line.15826"></a>
+<span class="sourceLineNo">15827</span>                                {<a name="line.15827"></a>
+<span class="sourceLineNo">15828</span>                                        while (it.hasNext()) {<a name="line.15828"></a>
+<span class="sourceLineNo">15829</span>                                                long iax = it.aLong;<a name="line.15829"></a>
+<span class="sourceLineNo">15830</span>                                                long ibx = it.bLong;<a name="line.15830"></a>
+<span class="sourceLineNo">15831</span>                                                long ox;<a name="line.15831"></a>
+<span class="sourceLineNo">15832</span>                                                ox = (iax | ibx);<a name="line.15832"></a>
+<span class="sourceLineNo">15833</span>                                                oai64data[it.oIndex] = ox;<a name="line.15833"></a>
+<span class="sourceLineNo">15834</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.15834"></a>
+<span class="sourceLineNo">15835</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.15835"></a>
+<span class="sourceLineNo">15836</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.15836"></a>
+<span class="sourceLineNo">15837</span>                                                        ox = (iax | ibx);<a name="line.15837"></a>
+<span class="sourceLineNo">15838</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.15838"></a>
+<span class="sourceLineNo">15839</span>                                                }<a name="line.15839"></a>
+<span class="sourceLineNo">15840</span>                                        }<a name="line.15840"></a>
+<span class="sourceLineNo">15841</span>                                }<a name="line.15841"></a>
+<span class="sourceLineNo">15842</span>                        }<a name="line.15842"></a>
+<span class="sourceLineNo">15843</span>                        break;<a name="line.15843"></a>
+<span class="sourceLineNo">15844</span>                case Dataset.ARRAYINT32:<a name="line.15844"></a>
+<span class="sourceLineNo">15845</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.15845"></a>
+<span class="sourceLineNo">15846</span>                        if (is == 1) {<a name="line.15846"></a>
+<span class="sourceLineNo">15847</span>                                {<a name="line.15847"></a>
+<span class="sourceLineNo">15848</span>                                        while (it.hasNext()) {<a name="line.15848"></a>
+<span class="sourceLineNo">15849</span>                                                final long iax = it.aLong;<a name="line.15849"></a>
+<span class="sourceLineNo">15850</span>                                                final long ibx = it.bLong;<a name="line.15850"></a>
+<span class="sourceLineNo">15851</span>                                                int ox;<a name="line.15851"></a>
+<span class="sourceLineNo">15852</span>                                                ox = (int) (iax | ibx);<a name="line.15852"></a>
+<span class="sourceLineNo">15853</span>                                                oai32data[it.oIndex] = ox;<a name="line.15853"></a>
+<span class="sourceLineNo">15854</span>                                        }<a name="line.15854"></a>
+<span class="sourceLineNo">15855</span>                                }<a name="line.15855"></a>
+<span class="sourceLineNo">15856</span>                        } else if (as &lt; bs) {<a name="line.15856"></a>
+<span class="sourceLineNo">15857</span>                                {<a name="line.15857"></a>
+<span class="sourceLineNo">15858</span>                                        while (it.hasNext()) {<a name="line.15858"></a>
+<span class="sourceLineNo">15859</span>                                                final long iax = it.aLong;<a name="line.15859"></a>
+<span class="sourceLineNo">15860</span>                                                long ibx = it.bLong;<a name="line.15860"></a>
+<span class="sourceLineNo">15861</span>                                                int ox;<a name="line.15861"></a>
+<span class="sourceLineNo">15862</span>                                                ox = (int) (iax | ibx);<a name="line.15862"></a>
+<span class="sourceLineNo">15863</span>                                                oai32data[it.oIndex] = ox;<a name="line.15863"></a>
+<span class="sourceLineNo">15864</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.15864"></a>
+<span class="sourceLineNo">15865</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.15865"></a>
+<span class="sourceLineNo">15866</span>                                                        ox = (int) (iax | ibx);<a name="line.15866"></a>
+<span class="sourceLineNo">15867</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.15867"></a>
+<span class="sourceLineNo">15868</span>                                                }<a name="line.15868"></a>
+<span class="sourceLineNo">15869</span>                                        }<a name="line.15869"></a>
+<span class="sourceLineNo">15870</span>                                }<a name="line.15870"></a>
+<span class="sourceLineNo">15871</span>                        } else if (as &gt; bs) {<a name="line.15871"></a>
+<span class="sourceLineNo">15872</span>                                {<a name="line.15872"></a>
+<span class="sourceLineNo">15873</span>                                        while (it.hasNext()) {<a name="line.15873"></a>
+<span class="sourceLineNo">15874</span>                                                long iax = it.aLong;<a name="line.15874"></a>
+<span class="sourceLineNo">15875</span>                                                final long ibx = it.bLong;<a name="line.15875"></a>
+<span class="sourceLineNo">15876</span>                                                int ox;<a name="line.15876"></a>
+<span class="sourceLineNo">15877</span>                                                ox = (int) (iax | ibx);<a name="line.15877"></a>
+<span class="sourceLineNo">15878</span>                                                oai32data[it.oIndex] = ox;<a name="line.15878"></a>
+<span class="sourceLineNo">15879</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.15879"></a>
+<span class="sourceLineNo">15880</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.15880"></a>
+<span class="sourceLineNo">15881</span>                                                        ox = (int) (iax | ibx);<a name="line.15881"></a>
+<span class="sourceLineNo">15882</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.15882"></a>
+<span class="sourceLineNo">15883</span>                                                }<a name="line.15883"></a>
+<span class="sourceLineNo">15884</span>                                        }<a name="line.15884"></a>
+<span class="sourceLineNo">15885</span>                                }<a name="line.15885"></a>
+<span class="sourceLineNo">15886</span>                        } else if (as == 1) {<a name="line.15886"></a>
+<span class="sourceLineNo">15887</span>                                {<a name="line.15887"></a>
+<span class="sourceLineNo">15888</span>                                        while (it.hasNext()) {<a name="line.15888"></a>
+<span class="sourceLineNo">15889</span>                                                final long iax = it.aLong;<a name="line.15889"></a>
+<span class="sourceLineNo">15890</span>                                                final long ibx = it.bLong;<a name="line.15890"></a>
+<span class="sourceLineNo">15891</span>                                                int ox;<a name="line.15891"></a>
+<span class="sourceLineNo">15892</span>                                                ox = (int) (iax | ibx);<a name="line.15892"></a>
+<span class="sourceLineNo">15893</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.15893"></a>
+<span class="sourceLineNo">15894</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.15894"></a>
+<span class="sourceLineNo">15895</span>                                                }<a name="line.15895"></a>
+<span class="sourceLineNo">15896</span>                                        }<a name="line.15896"></a>
+<span class="sourceLineNo">15897</span>                                }<a name="line.15897"></a>
+<span class="sourceLineNo">15898</span>                        } else {<a name="line.15898"></a>
+<span class="sourceLineNo">15899</span>                                {<a name="line.15899"></a>
+<span class="sourceLineNo">15900</span>                                        while (it.hasNext()) {<a name="line.15900"></a>
+<span class="sourceLineNo">15901</span>                                                long iax = it.aLong;<a name="line.15901"></a>
+<span class="sourceLineNo">15902</span>                                                long ibx = it.bLong;<a name="line.15902"></a>
+<span class="sourceLineNo">15903</span>                                                int ox;<a name="line.15903"></a>
+<span class="sourceLineNo">15904</span>                                                ox = (int) (iax | ibx);<a name="line.15904"></a>
+<span class="sourceLineNo">15905</span>                                                oai32data[it.oIndex] = ox;<a name="line.15905"></a>
+<span class="sourceLineNo">15906</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.15906"></a>
+<span class="sourceLineNo">15907</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.15907"></a>
+<span class="sourceLineNo">15908</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.15908"></a>
+<span class="sourceLineNo">15909</span>                                                        ox = (int) (iax | ibx);<a name="line.15909"></a>
+<span class="sourceLineNo">15910</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.15910"></a>
+<span class="sourceLineNo">15911</span>                                                }<a name="line.15911"></a>
+<span class="sourceLineNo">15912</span>                                        }<a name="line.15912"></a>
+<span class="sourceLineNo">15913</span>                                }<a name="line.15913"></a>
+<span class="sourceLineNo">15914</span>                        }<a name="line.15914"></a>
+<span class="sourceLineNo">15915</span>                        break;<a name="line.15915"></a>
+<span class="sourceLineNo">15916</span>                default:<a name="line.15916"></a>
+<span class="sourceLineNo">15917</span>                        throw new IllegalArgumentException("bitwiseOr supports integer, compound integer datasets only");<a name="line.15917"></a>
+<span class="sourceLineNo">15918</span>                }<a name="line.15918"></a>
+<span class="sourceLineNo">15919</span><a name="line.15919"></a>
+<span class="sourceLineNo">15920</span>                addBinaryOperatorName(da, db, result, "|");<a name="line.15920"></a>
+<span class="sourceLineNo">15921</span>                return result;<a name="line.15921"></a>
+<span class="sourceLineNo">15922</span>        }<a name="line.15922"></a>
+<span class="sourceLineNo">15923</span><a name="line.15923"></a>
+<span class="sourceLineNo">15924</span>        /**<a name="line.15924"></a>
+<span class="sourceLineNo">15925</span>         * bitwiseXor operator<a name="line.15925"></a>
+<span class="sourceLineNo">15926</span>         * @param a<a name="line.15926"></a>
+<span class="sourceLineNo">15927</span>         * @param b<a name="line.15927"></a>
+<span class="sourceLineNo">15928</span>         * @return {@code a ^ b}, bitwise exclusive OR of a and b<a name="line.15928"></a>
+<span class="sourceLineNo">15929</span>         */<a name="line.15929"></a>
+<span class="sourceLineNo">15930</span>        public static Dataset bitwiseXor(final Object a, final Object b) {<a name="line.15930"></a>
+<span class="sourceLineNo">15931</span>                return bitwiseXor(a, b, null);<a name="line.15931"></a>
+<span class="sourceLineNo">15932</span>        }<a name="line.15932"></a>
+<span class="sourceLineNo">15933</span><a name="line.15933"></a>
+<span class="sourceLineNo">15934</span>        /**<a name="line.15934"></a>
+<span class="sourceLineNo">15935</span>         * bitwiseXor operator<a name="line.15935"></a>
+<span class="sourceLineNo">15936</span>         * @param a<a name="line.15936"></a>
+<span class="sourceLineNo">15937</span>         * @param b<a name="line.15937"></a>
+<span class="sourceLineNo">15938</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.15938"></a>
+<span class="sourceLineNo">15939</span>         * @return {@code a ^ b}, bitwise exclusive OR of a and b<a name="line.15939"></a>
+<span class="sourceLineNo">15940</span>         */<a name="line.15940"></a>
+<span class="sourceLineNo">15941</span>        public static Dataset bitwiseXor(final Object a, final Object b, final Dataset o) {<a name="line.15941"></a>
+<span class="sourceLineNo">15942</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.15942"></a>
+<span class="sourceLineNo">15943</span>                Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.15943"></a>
+<span class="sourceLineNo">15944</span>                BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.15944"></a>
+<span class="sourceLineNo">15945</span>                it.setOutputDouble(false);<a name="line.15945"></a>
+<span class="sourceLineNo">15946</span>                final Dataset result = it.getOutput();<a name="line.15946"></a>
+<span class="sourceLineNo">15947</span>                if (!result.isComplex()) {<a name="line.15947"></a>
+<span class="sourceLineNo">15948</span>                        boolean change = false;<a name="line.15948"></a>
+<span class="sourceLineNo">15949</span>                        if (da.isComplex()) {<a name="line.15949"></a>
+<span class="sourceLineNo">15950</span>                                da = da.getRealView();<a name="line.15950"></a>
+<span class="sourceLineNo">15951</span>                                change = true;<a name="line.15951"></a>
+<span class="sourceLineNo">15952</span>                        }<a name="line.15952"></a>
+<span class="sourceLineNo">15953</span>                        if (db.isComplex()) {<a name="line.15953"></a>
+<span class="sourceLineNo">15954</span>                                db = db.getRealView();<a name="line.15954"></a>
+<span class="sourceLineNo">15955</span>                                change = true;<a name="line.15955"></a>
+<span class="sourceLineNo">15956</span>                        }<a name="line.15956"></a>
+<span class="sourceLineNo">15957</span>                        if (change) {<a name="line.15957"></a>
+<span class="sourceLineNo">15958</span>                                it = BroadcastIterator.createIterator(da, db, result, true);<a name="line.15958"></a>
+<span class="sourceLineNo">15959</span>                                it.setOutputDouble(false);<a name="line.15959"></a>
+<span class="sourceLineNo">15960</span>                        }<a name="line.15960"></a>
+<span class="sourceLineNo">15961</span>                }<a name="line.15961"></a>
+<span class="sourceLineNo">15962</span>                final int is = result.getElementsPerItem();<a name="line.15962"></a>
+<span class="sourceLineNo">15963</span>                final int as = da.getElementsPerItem();<a name="line.15963"></a>
+<span class="sourceLineNo">15964</span>                final int bs = db.getElementsPerItem();<a name="line.15964"></a>
+<span class="sourceLineNo">15965</span>                final int dt = result.getDType();<a name="line.15965"></a>
+<span class="sourceLineNo">15966</span><a name="line.15966"></a>
+<span class="sourceLineNo">15967</span>                switch(dt) {<a name="line.15967"></a>
+<span class="sourceLineNo">15968</span>                case Dataset.INT8:<a name="line.15968"></a>
+<span class="sourceLineNo">15969</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.15969"></a>
+<span class="sourceLineNo">15970</span>                        {<a name="line.15970"></a>
+<span class="sourceLineNo">15971</span>                                while (it.hasNext()) {<a name="line.15971"></a>
+<span class="sourceLineNo">15972</span>                                        final long iax = it.aLong;<a name="line.15972"></a>
+<span class="sourceLineNo">15973</span>                                        final long ibx = it.bLong;<a name="line.15973"></a>
+<span class="sourceLineNo">15974</span>                                        byte ox;<a name="line.15974"></a>
+<span class="sourceLineNo">15975</span>                                        ox = (byte) (iax ^ ibx);<a name="line.15975"></a>
+<span class="sourceLineNo">15976</span>                                        oi8data[it.oIndex] = ox;<a name="line.15976"></a>
+<span class="sourceLineNo">15977</span>                                }<a name="line.15977"></a>
+<span class="sourceLineNo">15978</span>                        }<a name="line.15978"></a>
+<span class="sourceLineNo">15979</span>                        break;<a name="line.15979"></a>
+<span class="sourceLineNo">15980</span>                case Dataset.INT16:<a name="line.15980"></a>
+<span class="sourceLineNo">15981</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.15981"></a>
+<span class="sourceLineNo">15982</span>                        {<a name="line.15982"></a>
+<span class="sourceLineNo">15983</span>                                while (it.hasNext()) {<a name="line.15983"></a>
+<span class="sourceLineNo">15984</span>                                        final long iax = it.aLong;<a name="line.15984"></a>
+<span class="sourceLineNo">15985</span>                                        final long ibx = it.bLong;<a name="line.15985"></a>
+<span class="sourceLineNo">15986</span>                                        short ox;<a name="line.15986"></a>
+<span class="sourceLineNo">15987</span>                                        ox = (short) (iax ^ ibx);<a name="line.15987"></a>
+<span class="sourceLineNo">15988</span>                                        oi16data[it.oIndex] = ox;<a name="line.15988"></a>
+<span class="sourceLineNo">15989</span>                                }<a name="line.15989"></a>
+<span class="sourceLineNo">15990</span>                        }<a name="line.15990"></a>
+<span class="sourceLineNo">15991</span>                        break;<a name="line.15991"></a>
+<span class="sourceLineNo">15992</span>                case Dataset.INT64:<a name="line.15992"></a>
+<span class="sourceLineNo">15993</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.15993"></a>
+<span class="sourceLineNo">15994</span>                        {<a name="line.15994"></a>
+<span class="sourceLineNo">15995</span>                                while (it.hasNext()) {<a name="line.15995"></a>
+<span class="sourceLineNo">15996</span>                                        final long iax = it.aLong;<a name="line.15996"></a>
+<span class="sourceLineNo">15997</span>                                        final long ibx = it.bLong;<a name="line.15997"></a>
+<span class="sourceLineNo">15998</span>                                        long ox;<a name="line.15998"></a>
+<span class="sourceLineNo">15999</span>                                        ox = (iax ^ ibx);<a name="line.15999"></a>
+<span class="sourceLineNo">16000</span>                                        oi64data[it.oIndex] = ox;<a name="line.16000"></a>
+<span class="sourceLineNo">16001</span>                                }<a name="line.16001"></a>
+<span class="sourceLineNo">16002</span>                        }<a name="line.16002"></a>
+<span class="sourceLineNo">16003</span>                        break;<a name="line.16003"></a>
+<span class="sourceLineNo">16004</span>                case Dataset.INT32:<a name="line.16004"></a>
+<span class="sourceLineNo">16005</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.16005"></a>
+<span class="sourceLineNo">16006</span>                        {<a name="line.16006"></a>
+<span class="sourceLineNo">16007</span>                                while (it.hasNext()) {<a name="line.16007"></a>
+<span class="sourceLineNo">16008</span>                                        final long iax = it.aLong;<a name="line.16008"></a>
+<span class="sourceLineNo">16009</span>                                        final long ibx = it.bLong;<a name="line.16009"></a>
+<span class="sourceLineNo">16010</span>                                        int ox;<a name="line.16010"></a>
+<span class="sourceLineNo">16011</span>                                        ox = (int) (iax ^ ibx);<a name="line.16011"></a>
+<span class="sourceLineNo">16012</span>                                        oi32data[it.oIndex] = ox;<a name="line.16012"></a>
+<span class="sourceLineNo">16013</span>                                }<a name="line.16013"></a>
+<span class="sourceLineNo">16014</span>                        }<a name="line.16014"></a>
+<span class="sourceLineNo">16015</span>                        break;<a name="line.16015"></a>
+<span class="sourceLineNo">16016</span>                case Dataset.ARRAYINT8:<a name="line.16016"></a>
+<span class="sourceLineNo">16017</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.16017"></a>
+<span class="sourceLineNo">16018</span>                        if (is == 1) {<a name="line.16018"></a>
+<span class="sourceLineNo">16019</span>                                {<a name="line.16019"></a>
+<span class="sourceLineNo">16020</span>                                        while (it.hasNext()) {<a name="line.16020"></a>
+<span class="sourceLineNo">16021</span>                                                final long iax = it.aLong;<a name="line.16021"></a>
+<span class="sourceLineNo">16022</span>                                                final long ibx = it.bLong;<a name="line.16022"></a>
+<span class="sourceLineNo">16023</span>                                                byte ox;<a name="line.16023"></a>
+<span class="sourceLineNo">16024</span>                                                ox = (byte) (iax ^ ibx);<a name="line.16024"></a>
+<span class="sourceLineNo">16025</span>                                                oai8data[it.oIndex] = ox;<a name="line.16025"></a>
+<span class="sourceLineNo">16026</span>                                        }<a name="line.16026"></a>
+<span class="sourceLineNo">16027</span>                                }<a name="line.16027"></a>
+<span class="sourceLineNo">16028</span>                        } else if (as &lt; bs) {<a name="line.16028"></a>
+<span class="sourceLineNo">16029</span>                                {<a name="line.16029"></a>
+<span class="sourceLineNo">16030</span>                                        while (it.hasNext()) {<a name="line.16030"></a>
+<span class="sourceLineNo">16031</span>                                                final long iax = it.aLong;<a name="line.16031"></a>
+<span class="sourceLineNo">16032</span>                                                long ibx = it.bLong;<a name="line.16032"></a>
+<span class="sourceLineNo">16033</span>                                                byte ox;<a name="line.16033"></a>
+<span class="sourceLineNo">16034</span>                                                ox = (byte) (iax ^ ibx);<a name="line.16034"></a>
+<span class="sourceLineNo">16035</span>                                                oai8data[it.oIndex] = ox;<a name="line.16035"></a>
+<span class="sourceLineNo">16036</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16036"></a>
+<span class="sourceLineNo">16037</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.16037"></a>
+<span class="sourceLineNo">16038</span>                                                        ox = (byte) (iax ^ ibx);<a name="line.16038"></a>
+<span class="sourceLineNo">16039</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.16039"></a>
+<span class="sourceLineNo">16040</span>                                                }<a name="line.16040"></a>
+<span class="sourceLineNo">16041</span>                                        }<a name="line.16041"></a>
+<span class="sourceLineNo">16042</span>                                }<a name="line.16042"></a>
+<span class="sourceLineNo">16043</span>                        } else if (as &gt; bs) {<a name="line.16043"></a>
+<span class="sourceLineNo">16044</span>                                {<a name="line.16044"></a>
+<span class="sourceLineNo">16045</span>                                        while (it.hasNext()) {<a name="line.16045"></a>
+<span class="sourceLineNo">16046</span>                                                long iax = it.aLong;<a name="line.16046"></a>
+<span class="sourceLineNo">16047</span>                                                final long ibx = it.bLong;<a name="line.16047"></a>
+<span class="sourceLineNo">16048</span>                                                byte ox;<a name="line.16048"></a>
+<span class="sourceLineNo">16049</span>                                                ox = (byte) (iax ^ ibx);<a name="line.16049"></a>
+<span class="sourceLineNo">16050</span>                                                oai8data[it.oIndex] = ox;<a name="line.16050"></a>
+<span class="sourceLineNo">16051</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16051"></a>
+<span class="sourceLineNo">16052</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.16052"></a>
+<span class="sourceLineNo">16053</span>                                                        ox = (byte) (iax ^ ibx);<a name="line.16053"></a>
+<span class="sourceLineNo">16054</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.16054"></a>
+<span class="sourceLineNo">16055</span>                                                }<a name="line.16055"></a>
+<span class="sourceLineNo">16056</span>                                        }<a name="line.16056"></a>
+<span class="sourceLineNo">16057</span>                                }<a name="line.16057"></a>
+<span class="sourceLineNo">16058</span>                        } else if (as == 1) {<a name="line.16058"></a>
+<span class="sourceLineNo">16059</span>                                {<a name="line.16059"></a>
+<span class="sourceLineNo">16060</span>                                        while (it.hasNext()) {<a name="line.16060"></a>
+<span class="sourceLineNo">16061</span>                                                final long iax = it.aLong;<a name="line.16061"></a>
+<span class="sourceLineNo">16062</span>                                                final long ibx = it.bLong;<a name="line.16062"></a>
+<span class="sourceLineNo">16063</span>                                                byte ox;<a name="line.16063"></a>
+<span class="sourceLineNo">16064</span>                                                ox = (byte) (iax ^ ibx);<a name="line.16064"></a>
+<span class="sourceLineNo">16065</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.16065"></a>
+<span class="sourceLineNo">16066</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.16066"></a>
+<span class="sourceLineNo">16067</span>                                                }<a name="line.16067"></a>
+<span class="sourceLineNo">16068</span>                                        }<a name="line.16068"></a>
+<span class="sourceLineNo">16069</span>                                }<a name="line.16069"></a>
+<span class="sourceLineNo">16070</span>                        } else {<a name="line.16070"></a>
+<span class="sourceLineNo">16071</span>                                {<a name="line.16071"></a>
+<span class="sourceLineNo">16072</span>                                        while (it.hasNext()) {<a name="line.16072"></a>
+<span class="sourceLineNo">16073</span>                                                long iax = it.aLong;<a name="line.16073"></a>
+<span class="sourceLineNo">16074</span>                                                long ibx = it.bLong;<a name="line.16074"></a>
+<span class="sourceLineNo">16075</span>                                                byte ox;<a name="line.16075"></a>
+<span class="sourceLineNo">16076</span>                                                ox = (byte) (iax ^ ibx);<a name="line.16076"></a>
+<span class="sourceLineNo">16077</span>                                                oai8data[it.oIndex] = ox;<a name="line.16077"></a>
+<span class="sourceLineNo">16078</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16078"></a>
+<span class="sourceLineNo">16079</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.16079"></a>
+<span class="sourceLineNo">16080</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.16080"></a>
+<span class="sourceLineNo">16081</span>                                                        ox = (byte) (iax ^ ibx);<a name="line.16081"></a>
+<span class="sourceLineNo">16082</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.16082"></a>
+<span class="sourceLineNo">16083</span>                                                }<a name="line.16083"></a>
+<span class="sourceLineNo">16084</span>                                        }<a name="line.16084"></a>
+<span class="sourceLineNo">16085</span>                                }<a name="line.16085"></a>
+<span class="sourceLineNo">16086</span>                        }<a name="line.16086"></a>
+<span class="sourceLineNo">16087</span>                        break;<a name="line.16087"></a>
+<span class="sourceLineNo">16088</span>                case Dataset.ARRAYINT16:<a name="line.16088"></a>
+<span class="sourceLineNo">16089</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.16089"></a>
+<span class="sourceLineNo">16090</span>                        if (is == 1) {<a name="line.16090"></a>
+<span class="sourceLineNo">16091</span>                                {<a name="line.16091"></a>
+<span class="sourceLineNo">16092</span>                                        while (it.hasNext()) {<a name="line.16092"></a>
+<span class="sourceLineNo">16093</span>                                                final long iax = it.aLong;<a name="line.16093"></a>
+<span class="sourceLineNo">16094</span>                                                final long ibx = it.bLong;<a name="line.16094"></a>
+<span class="sourceLineNo">16095</span>                                                short ox;<a name="line.16095"></a>
+<span class="sourceLineNo">16096</span>                                                ox = (short) (iax ^ ibx);<a name="line.16096"></a>
+<span class="sourceLineNo">16097</span>                                                oai16data[it.oIndex] = ox;<a name="line.16097"></a>
+<span class="sourceLineNo">16098</span>                                        }<a name="line.16098"></a>
+<span class="sourceLineNo">16099</span>                                }<a name="line.16099"></a>
+<span class="sourceLineNo">16100</span>                        } else if (as &lt; bs) {<a name="line.16100"></a>
+<span class="sourceLineNo">16101</span>                                {<a name="line.16101"></a>
+<span class="sourceLineNo">16102</span>                                        while (it.hasNext()) {<a name="line.16102"></a>
+<span class="sourceLineNo">16103</span>                                                final long iax = it.aLong;<a name="line.16103"></a>
+<span class="sourceLineNo">16104</span>                                                long ibx = it.bLong;<a name="line.16104"></a>
+<span class="sourceLineNo">16105</span>                                                short ox;<a name="line.16105"></a>
+<span class="sourceLineNo">16106</span>                                                ox = (short) (iax ^ ibx);<a name="line.16106"></a>
+<span class="sourceLineNo">16107</span>                                                oai16data[it.oIndex] = ox;<a name="line.16107"></a>
+<span class="sourceLineNo">16108</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16108"></a>
+<span class="sourceLineNo">16109</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.16109"></a>
+<span class="sourceLineNo">16110</span>                                                        ox = (short) (iax ^ ibx);<a name="line.16110"></a>
+<span class="sourceLineNo">16111</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.16111"></a>
+<span class="sourceLineNo">16112</span>                                                }<a name="line.16112"></a>
+<span class="sourceLineNo">16113</span>                                        }<a name="line.16113"></a>
+<span class="sourceLineNo">16114</span>                                }<a name="line.16114"></a>
+<span class="sourceLineNo">16115</span>                        } else if (as &gt; bs) {<a name="line.16115"></a>
+<span class="sourceLineNo">16116</span>                                {<a name="line.16116"></a>
+<span class="sourceLineNo">16117</span>                                        while (it.hasNext()) {<a name="line.16117"></a>
+<span class="sourceLineNo">16118</span>                                                long iax = it.aLong;<a name="line.16118"></a>
+<span class="sourceLineNo">16119</span>                                                final long ibx = it.bLong;<a name="line.16119"></a>
+<span class="sourceLineNo">16120</span>                                                short ox;<a name="line.16120"></a>
+<span class="sourceLineNo">16121</span>                                                ox = (short) (iax ^ ibx);<a name="line.16121"></a>
+<span class="sourceLineNo">16122</span>                                                oai16data[it.oIndex] = ox;<a name="line.16122"></a>
+<span class="sourceLineNo">16123</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16123"></a>
+<span class="sourceLineNo">16124</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.16124"></a>
+<span class="sourceLineNo">16125</span>                                                        ox = (short) (iax ^ ibx);<a name="line.16125"></a>
+<span class="sourceLineNo">16126</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.16126"></a>
+<span class="sourceLineNo">16127</span>                                                }<a name="line.16127"></a>
+<span class="sourceLineNo">16128</span>                                        }<a name="line.16128"></a>
+<span class="sourceLineNo">16129</span>                                }<a name="line.16129"></a>
+<span class="sourceLineNo">16130</span>                        } else if (as == 1) {<a name="line.16130"></a>
+<span class="sourceLineNo">16131</span>                                {<a name="line.16131"></a>
+<span class="sourceLineNo">16132</span>                                        while (it.hasNext()) {<a name="line.16132"></a>
+<span class="sourceLineNo">16133</span>                                                final long iax = it.aLong;<a name="line.16133"></a>
+<span class="sourceLineNo">16134</span>                                                final long ibx = it.bLong;<a name="line.16134"></a>
+<span class="sourceLineNo">16135</span>                                                short ox;<a name="line.16135"></a>
+<span class="sourceLineNo">16136</span>                                                ox = (short) (iax ^ ibx);<a name="line.16136"></a>
+<span class="sourceLineNo">16137</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.16137"></a>
+<span class="sourceLineNo">16138</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.16138"></a>
+<span class="sourceLineNo">16139</span>                                                }<a name="line.16139"></a>
+<span class="sourceLineNo">16140</span>                                        }<a name="line.16140"></a>
+<span class="sourceLineNo">16141</span>                                }<a name="line.16141"></a>
+<span class="sourceLineNo">16142</span>                        } else {<a name="line.16142"></a>
+<span class="sourceLineNo">16143</span>                                {<a name="line.16143"></a>
+<span class="sourceLineNo">16144</span>                                        while (it.hasNext()) {<a name="line.16144"></a>
+<span class="sourceLineNo">16145</span>                                                long iax = it.aLong;<a name="line.16145"></a>
+<span class="sourceLineNo">16146</span>                                                long ibx = it.bLong;<a name="line.16146"></a>
+<span class="sourceLineNo">16147</span>                                                short ox;<a name="line.16147"></a>
+<span class="sourceLineNo">16148</span>                                                ox = (short) (iax ^ ibx);<a name="line.16148"></a>
+<span class="sourceLineNo">16149</span>                                                oai16data[it.oIndex] = ox;<a name="line.16149"></a>
+<span class="sourceLineNo">16150</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16150"></a>
+<span class="sourceLineNo">16151</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.16151"></a>
+<span class="sourceLineNo">16152</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.16152"></a>
+<span class="sourceLineNo">16153</span>                                                        ox = (short) (iax ^ ibx);<a name="line.16153"></a>
+<span class="sourceLineNo">16154</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.16154"></a>
+<span class="sourceLineNo">16155</span>                                                }<a name="line.16155"></a>
+<span class="sourceLineNo">16156</span>                                        }<a name="line.16156"></a>
+<span class="sourceLineNo">16157</span>                                }<a name="line.16157"></a>
+<span class="sourceLineNo">16158</span>                        }<a name="line.16158"></a>
+<span class="sourceLineNo">16159</span>                        break;<a name="line.16159"></a>
+<span class="sourceLineNo">16160</span>                case Dataset.ARRAYINT64:<a name="line.16160"></a>
+<span class="sourceLineNo">16161</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.16161"></a>
+<span class="sourceLineNo">16162</span>                        if (is == 1) {<a name="line.16162"></a>
+<span class="sourceLineNo">16163</span>                                {<a name="line.16163"></a>
+<span class="sourceLineNo">16164</span>                                        while (it.hasNext()) {<a name="line.16164"></a>
+<span class="sourceLineNo">16165</span>                                                final long iax = it.aLong;<a name="line.16165"></a>
+<span class="sourceLineNo">16166</span>                                                final long ibx = it.bLong;<a name="line.16166"></a>
+<span class="sourceLineNo">16167</span>                                                long ox;<a name="line.16167"></a>
+<span class="sourceLineNo">16168</span>                                                ox = (iax ^ ibx);<a name="line.16168"></a>
+<span class="sourceLineNo">16169</span>                                                oai64data[it.oIndex] = ox;<a name="line.16169"></a>
+<span class="sourceLineNo">16170</span>                                        }<a name="line.16170"></a>
+<span class="sourceLineNo">16171</span>                                }<a name="line.16171"></a>
+<span class="sourceLineNo">16172</span>                        } else if (as &lt; bs) {<a name="line.16172"></a>
+<span class="sourceLineNo">16173</span>                                {<a name="line.16173"></a>
+<span class="sourceLineNo">16174</span>                                        while (it.hasNext()) {<a name="line.16174"></a>
+<span class="sourceLineNo">16175</span>                                                final long iax = it.aLong;<a name="line.16175"></a>
+<span class="sourceLineNo">16176</span>                                                long ibx = it.bLong;<a name="line.16176"></a>
+<span class="sourceLineNo">16177</span>                                                long ox;<a name="line.16177"></a>
+<span class="sourceLineNo">16178</span>                                                ox = (iax ^ ibx);<a name="line.16178"></a>
+<span class="sourceLineNo">16179</span>                                                oai64data[it.oIndex] = ox;<a name="line.16179"></a>
+<span class="sourceLineNo">16180</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16180"></a>
+<span class="sourceLineNo">16181</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.16181"></a>
+<span class="sourceLineNo">16182</span>                                                        ox = (iax ^ ibx);<a name="line.16182"></a>
+<span class="sourceLineNo">16183</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.16183"></a>
+<span class="sourceLineNo">16184</span>                                                }<a name="line.16184"></a>
+<span class="sourceLineNo">16185</span>                                        }<a name="line.16185"></a>
+<span class="sourceLineNo">16186</span>                                }<a name="line.16186"></a>
+<span class="sourceLineNo">16187</span>                        } else if (as &gt; bs) {<a name="line.16187"></a>
+<span class="sourceLineNo">16188</span>                                {<a name="line.16188"></a>
+<span class="sourceLineNo">16189</span>                                        while (it.hasNext()) {<a name="line.16189"></a>
+<span class="sourceLineNo">16190</span>                                                long iax = it.aLong;<a name="line.16190"></a>
+<span class="sourceLineNo">16191</span>                                                final long ibx = it.bLong;<a name="line.16191"></a>
+<span class="sourceLineNo">16192</span>                                                long ox;<a name="line.16192"></a>
+<span class="sourceLineNo">16193</span>                                                ox = (iax ^ ibx);<a name="line.16193"></a>
+<span class="sourceLineNo">16194</span>                                                oai64data[it.oIndex] = ox;<a name="line.16194"></a>
+<span class="sourceLineNo">16195</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16195"></a>
+<span class="sourceLineNo">16196</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.16196"></a>
+<span class="sourceLineNo">16197</span>                                                        ox = (iax ^ ibx);<a name="line.16197"></a>
+<span class="sourceLineNo">16198</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.16198"></a>
+<span class="sourceLineNo">16199</span>                                                }<a name="line.16199"></a>
+<span class="sourceLineNo">16200</span>                                        }<a name="line.16200"></a>
+<span class="sourceLineNo">16201</span>                                }<a name="line.16201"></a>
+<span class="sourceLineNo">16202</span>                        } else if (as == 1) {<a name="line.16202"></a>
+<span class="sourceLineNo">16203</span>                                {<a name="line.16203"></a>
+<span class="sourceLineNo">16204</span>                                        while (it.hasNext()) {<a name="line.16204"></a>
+<span class="sourceLineNo">16205</span>                                                final long iax = it.aLong;<a name="line.16205"></a>
+<span class="sourceLineNo">16206</span>                                                final long ibx = it.bLong;<a name="line.16206"></a>
+<span class="sourceLineNo">16207</span>                                                long ox;<a name="line.16207"></a>
+<span class="sourceLineNo">16208</span>                                                ox = (iax ^ ibx);<a name="line.16208"></a>
+<span class="sourceLineNo">16209</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.16209"></a>
+<span class="sourceLineNo">16210</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.16210"></a>
+<span class="sourceLineNo">16211</span>                                                }<a name="line.16211"></a>
+<span class="sourceLineNo">16212</span>                                        }<a name="line.16212"></a>
+<span class="sourceLineNo">16213</span>                                }<a name="line.16213"></a>
+<span class="sourceLineNo">16214</span>                        } else {<a name="line.16214"></a>
+<span class="sourceLineNo">16215</span>                                {<a name="line.16215"></a>
+<span class="sourceLineNo">16216</span>                                        while (it.hasNext()) {<a name="line.16216"></a>
+<span class="sourceLineNo">16217</span>                                                long iax = it.aLong;<a name="line.16217"></a>
+<span class="sourceLineNo">16218</span>                                                long ibx = it.bLong;<a name="line.16218"></a>
+<span class="sourceLineNo">16219</span>                                                long ox;<a name="line.16219"></a>
+<span class="sourceLineNo">16220</span>                                                ox = (iax ^ ibx);<a name="line.16220"></a>
+<span class="sourceLineNo">16221</span>                                                oai64data[it.oIndex] = ox;<a name="line.16221"></a>
+<span class="sourceLineNo">16222</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16222"></a>
+<span class="sourceLineNo">16223</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.16223"></a>
+<span class="sourceLineNo">16224</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.16224"></a>
+<span class="sourceLineNo">16225</span>                                                        ox = (iax ^ ibx);<a name="line.16225"></a>
+<span class="sourceLineNo">16226</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.16226"></a>
+<span class="sourceLineNo">16227</span>                                                }<a name="line.16227"></a>
+<span class="sourceLineNo">16228</span>                                        }<a name="line.16228"></a>
+<span class="sourceLineNo">16229</span>                                }<a name="line.16229"></a>
+<span class="sourceLineNo">16230</span>                        }<a name="line.16230"></a>
+<span class="sourceLineNo">16231</span>                        break;<a name="line.16231"></a>
+<span class="sourceLineNo">16232</span>                case Dataset.ARRAYINT32:<a name="line.16232"></a>
+<span class="sourceLineNo">16233</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.16233"></a>
+<span class="sourceLineNo">16234</span>                        if (is == 1) {<a name="line.16234"></a>
+<span class="sourceLineNo">16235</span>                                {<a name="line.16235"></a>
+<span class="sourceLineNo">16236</span>                                        while (it.hasNext()) {<a name="line.16236"></a>
+<span class="sourceLineNo">16237</span>                                                final long iax = it.aLong;<a name="line.16237"></a>
+<span class="sourceLineNo">16238</span>                                                final long ibx = it.bLong;<a name="line.16238"></a>
+<span class="sourceLineNo">16239</span>                                                int ox;<a name="line.16239"></a>
+<span class="sourceLineNo">16240</span>                                                ox = (int) (iax ^ ibx);<a name="line.16240"></a>
+<span class="sourceLineNo">16241</span>                                                oai32data[it.oIndex] = ox;<a name="line.16241"></a>
+<span class="sourceLineNo">16242</span>                                        }<a name="line.16242"></a>
+<span class="sourceLineNo">16243</span>                                }<a name="line.16243"></a>
+<span class="sourceLineNo">16244</span>                        } else if (as &lt; bs) {<a name="line.16244"></a>
+<span class="sourceLineNo">16245</span>                                {<a name="line.16245"></a>
+<span class="sourceLineNo">16246</span>                                        while (it.hasNext()) {<a name="line.16246"></a>
+<span class="sourceLineNo">16247</span>                                                final long iax = it.aLong;<a name="line.16247"></a>
+<span class="sourceLineNo">16248</span>                                                long ibx = it.bLong;<a name="line.16248"></a>
+<span class="sourceLineNo">16249</span>                                                int ox;<a name="line.16249"></a>
+<span class="sourceLineNo">16250</span>                                                ox = (int) (iax ^ ibx);<a name="line.16250"></a>
+<span class="sourceLineNo">16251</span>                                                oai32data[it.oIndex] = ox;<a name="line.16251"></a>
+<span class="sourceLineNo">16252</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16252"></a>
+<span class="sourceLineNo">16253</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.16253"></a>
+<span class="sourceLineNo">16254</span>                                                        ox = (int) (iax ^ ibx);<a name="line.16254"></a>
+<span class="sourceLineNo">16255</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.16255"></a>
+<span class="sourceLineNo">16256</span>                                                }<a name="line.16256"></a>
+<span class="sourceLineNo">16257</span>                                        }<a name="line.16257"></a>
+<span class="sourceLineNo">16258</span>                                }<a name="line.16258"></a>
+<span class="sourceLineNo">16259</span>                        } else if (as &gt; bs) {<a name="line.16259"></a>
+<span class="sourceLineNo">16260</span>                                {<a name="line.16260"></a>
+<span class="sourceLineNo">16261</span>                                        while (it.hasNext()) {<a name="line.16261"></a>
+<span class="sourceLineNo">16262</span>                                                long iax = it.aLong;<a name="line.16262"></a>
+<span class="sourceLineNo">16263</span>                                                final long ibx = it.bLong;<a name="line.16263"></a>
+<span class="sourceLineNo">16264</span>                                                int ox;<a name="line.16264"></a>
+<span class="sourceLineNo">16265</span>                                                ox = (int) (iax ^ ibx);<a name="line.16265"></a>
+<span class="sourceLineNo">16266</span>                                                oai32data[it.oIndex] = ox;<a name="line.16266"></a>
+<span class="sourceLineNo">16267</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16267"></a>
+<span class="sourceLineNo">16268</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.16268"></a>
+<span class="sourceLineNo">16269</span>                                                        ox = (int) (iax ^ ibx);<a name="line.16269"></a>
+<span class="sourceLineNo">16270</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.16270"></a>
+<span class="sourceLineNo">16271</span>                                                }<a name="line.16271"></a>
+<span class="sourceLineNo">16272</span>                                        }<a name="line.16272"></a>
+<span class="sourceLineNo">16273</span>                                }<a name="line.16273"></a>
+<span class="sourceLineNo">16274</span>                        } else if (as == 1) {<a name="line.16274"></a>
+<span class="sourceLineNo">16275</span>                                {<a name="line.16275"></a>
+<span class="sourceLineNo">16276</span>                                        while (it.hasNext()) {<a name="line.16276"></a>
+<span class="sourceLineNo">16277</span>                                                final long iax = it.aLong;<a name="line.16277"></a>
+<span class="sourceLineNo">16278</span>                                                final long ibx = it.bLong;<a name="line.16278"></a>
+<span class="sourceLineNo">16279</span>                                                int ox;<a name="line.16279"></a>
+<span class="sourceLineNo">16280</span>                                                ox = (int) (iax ^ ibx);<a name="line.16280"></a>
+<span class="sourceLineNo">16281</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.16281"></a>
+<span class="sourceLineNo">16282</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.16282"></a>
+<span class="sourceLineNo">16283</span>                                                }<a name="line.16283"></a>
+<span class="sourceLineNo">16284</span>                                        }<a name="line.16284"></a>
+<span class="sourceLineNo">16285</span>                                }<a name="line.16285"></a>
+<span class="sourceLineNo">16286</span>                        } else {<a name="line.16286"></a>
+<span class="sourceLineNo">16287</span>                                {<a name="line.16287"></a>
+<span class="sourceLineNo">16288</span>                                        while (it.hasNext()) {<a name="line.16288"></a>
+<span class="sourceLineNo">16289</span>                                                long iax = it.aLong;<a name="line.16289"></a>
+<span class="sourceLineNo">16290</span>                                                long ibx = it.bLong;<a name="line.16290"></a>
+<span class="sourceLineNo">16291</span>                                                int ox;<a name="line.16291"></a>
+<span class="sourceLineNo">16292</span>                                                ox = (int) (iax ^ ibx);<a name="line.16292"></a>
+<span class="sourceLineNo">16293</span>                                                oai32data[it.oIndex] = ox;<a name="line.16293"></a>
+<span class="sourceLineNo">16294</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16294"></a>
+<span class="sourceLineNo">16295</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.16295"></a>
+<span class="sourceLineNo">16296</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.16296"></a>
+<span class="sourceLineNo">16297</span>                                                        ox = (int) (iax ^ ibx);<a name="line.16297"></a>
+<span class="sourceLineNo">16298</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.16298"></a>
+<span class="sourceLineNo">16299</span>                                                }<a name="line.16299"></a>
+<span class="sourceLineNo">16300</span>                                        }<a name="line.16300"></a>
+<span class="sourceLineNo">16301</span>                                }<a name="line.16301"></a>
+<span class="sourceLineNo">16302</span>                        }<a name="line.16302"></a>
+<span class="sourceLineNo">16303</span>                        break;<a name="line.16303"></a>
+<span class="sourceLineNo">16304</span>                default:<a name="line.16304"></a>
+<span class="sourceLineNo">16305</span>                        throw new IllegalArgumentException("bitwiseXor supports integer, compound integer datasets only");<a name="line.16305"></a>
+<span class="sourceLineNo">16306</span>                }<a name="line.16306"></a>
+<span class="sourceLineNo">16307</span><a name="line.16307"></a>
+<span class="sourceLineNo">16308</span>                addBinaryOperatorName(da, db, result, "^");<a name="line.16308"></a>
+<span class="sourceLineNo">16309</span>                return result;<a name="line.16309"></a>
+<span class="sourceLineNo">16310</span>        }<a name="line.16310"></a>
+<span class="sourceLineNo">16311</span><a name="line.16311"></a>
+<span class="sourceLineNo">16312</span>        /**<a name="line.16312"></a>
+<span class="sourceLineNo">16313</span>         * leftShift operator<a name="line.16313"></a>
+<span class="sourceLineNo">16314</span>         * @param a<a name="line.16314"></a>
+<span class="sourceLineNo">16315</span>         * @param b<a name="line.16315"></a>
+<span class="sourceLineNo">16316</span>         * @return {@code a &lt;&lt; b}, bitwise left shift of a by b<a name="line.16316"></a>
+<span class="sourceLineNo">16317</span>         */<a name="line.16317"></a>
+<span class="sourceLineNo">16318</span>        public static Dataset leftShift(final Object a, final Object b) {<a name="line.16318"></a>
+<span class="sourceLineNo">16319</span>                return leftShift(a, b, null);<a name="line.16319"></a>
+<span class="sourceLineNo">16320</span>        }<a name="line.16320"></a>
+<span class="sourceLineNo">16321</span><a name="line.16321"></a>
+<span class="sourceLineNo">16322</span>        /**<a name="line.16322"></a>
+<span class="sourceLineNo">16323</span>         * leftShift operator<a name="line.16323"></a>
+<span class="sourceLineNo">16324</span>         * @param a<a name="line.16324"></a>
+<span class="sourceLineNo">16325</span>         * @param b<a name="line.16325"></a>
+<span class="sourceLineNo">16326</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.16326"></a>
+<span class="sourceLineNo">16327</span>         * @return {@code a &lt;&lt; b}, bitwise left shift of a by b<a name="line.16327"></a>
+<span class="sourceLineNo">16328</span>         */<a name="line.16328"></a>
+<span class="sourceLineNo">16329</span>        public static Dataset leftShift(final Object a, final Object b, final Dataset o) {<a name="line.16329"></a>
+<span class="sourceLineNo">16330</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.16330"></a>
+<span class="sourceLineNo">16331</span>                Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.16331"></a>
+<span class="sourceLineNo">16332</span>                BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.16332"></a>
+<span class="sourceLineNo">16333</span>                it.setOutputDouble(false);<a name="line.16333"></a>
+<span class="sourceLineNo">16334</span>                final Dataset result = it.getOutput();<a name="line.16334"></a>
+<span class="sourceLineNo">16335</span>                if (!result.isComplex()) {<a name="line.16335"></a>
+<span class="sourceLineNo">16336</span>                        boolean change = false;<a name="line.16336"></a>
+<span class="sourceLineNo">16337</span>                        if (da.isComplex()) {<a name="line.16337"></a>
+<span class="sourceLineNo">16338</span>                                da = da.getRealView();<a name="line.16338"></a>
+<span class="sourceLineNo">16339</span>                                change = true;<a name="line.16339"></a>
+<span class="sourceLineNo">16340</span>                        }<a name="line.16340"></a>
+<span class="sourceLineNo">16341</span>                        if (db.isComplex()) {<a name="line.16341"></a>
+<span class="sourceLineNo">16342</span>                                db = db.getRealView();<a name="line.16342"></a>
+<span class="sourceLineNo">16343</span>                                change = true;<a name="line.16343"></a>
+<span class="sourceLineNo">16344</span>                        }<a name="line.16344"></a>
+<span class="sourceLineNo">16345</span>                        if (change) {<a name="line.16345"></a>
+<span class="sourceLineNo">16346</span>                                it = BroadcastIterator.createIterator(da, db, result, true);<a name="line.16346"></a>
+<span class="sourceLineNo">16347</span>                                it.setOutputDouble(false);<a name="line.16347"></a>
+<span class="sourceLineNo">16348</span>                        }<a name="line.16348"></a>
+<span class="sourceLineNo">16349</span>                }<a name="line.16349"></a>
+<span class="sourceLineNo">16350</span>                final int is = result.getElementsPerItem();<a name="line.16350"></a>
+<span class="sourceLineNo">16351</span>                final int as = da.getElementsPerItem();<a name="line.16351"></a>
+<span class="sourceLineNo">16352</span>                final int bs = db.getElementsPerItem();<a name="line.16352"></a>
+<span class="sourceLineNo">16353</span>                final int dt = result.getDType();<a name="line.16353"></a>
+<span class="sourceLineNo">16354</span><a name="line.16354"></a>
+<span class="sourceLineNo">16355</span>                switch(dt) {<a name="line.16355"></a>
+<span class="sourceLineNo">16356</span>                case Dataset.INT8:<a name="line.16356"></a>
+<span class="sourceLineNo">16357</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.16357"></a>
+<span class="sourceLineNo">16358</span>                        {<a name="line.16358"></a>
+<span class="sourceLineNo">16359</span>                                while (it.hasNext()) {<a name="line.16359"></a>
+<span class="sourceLineNo">16360</span>                                        final long iax = it.aLong;<a name="line.16360"></a>
+<span class="sourceLineNo">16361</span>                                        final long ibx = it.bLong;<a name="line.16361"></a>
+<span class="sourceLineNo">16362</span>                                        byte ox;<a name="line.16362"></a>
+<span class="sourceLineNo">16363</span>                                        ox = (byte) (iax &lt;&lt; ibx);<a name="line.16363"></a>
+<span class="sourceLineNo">16364</span>                                        oi8data[it.oIndex] = ox;<a name="line.16364"></a>
+<span class="sourceLineNo">16365</span>                                }<a name="line.16365"></a>
+<span class="sourceLineNo">16366</span>                        }<a name="line.16366"></a>
+<span class="sourceLineNo">16367</span>                        break;<a name="line.16367"></a>
+<span class="sourceLineNo">16368</span>                case Dataset.INT16:<a name="line.16368"></a>
+<span class="sourceLineNo">16369</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.16369"></a>
+<span class="sourceLineNo">16370</span>                        {<a name="line.16370"></a>
+<span class="sourceLineNo">16371</span>                                while (it.hasNext()) {<a name="line.16371"></a>
+<span class="sourceLineNo">16372</span>                                        final long iax = it.aLong;<a name="line.16372"></a>
+<span class="sourceLineNo">16373</span>                                        final long ibx = it.bLong;<a name="line.16373"></a>
+<span class="sourceLineNo">16374</span>                                        short ox;<a name="line.16374"></a>
+<span class="sourceLineNo">16375</span>                                        ox = (short) (iax &lt;&lt; ibx);<a name="line.16375"></a>
+<span class="sourceLineNo">16376</span>                                        oi16data[it.oIndex] = ox;<a name="line.16376"></a>
+<span class="sourceLineNo">16377</span>                                }<a name="line.16377"></a>
+<span class="sourceLineNo">16378</span>                        }<a name="line.16378"></a>
+<span class="sourceLineNo">16379</span>                        break;<a name="line.16379"></a>
+<span class="sourceLineNo">16380</span>                case Dataset.INT64:<a name="line.16380"></a>
+<span class="sourceLineNo">16381</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.16381"></a>
+<span class="sourceLineNo">16382</span>                        {<a name="line.16382"></a>
+<span class="sourceLineNo">16383</span>                                while (it.hasNext()) {<a name="line.16383"></a>
+<span class="sourceLineNo">16384</span>                                        final long iax = it.aLong;<a name="line.16384"></a>
+<span class="sourceLineNo">16385</span>                                        final long ibx = it.bLong;<a name="line.16385"></a>
+<span class="sourceLineNo">16386</span>                                        long ox;<a name="line.16386"></a>
+<span class="sourceLineNo">16387</span>                                        ox = (iax &lt;&lt; ibx);<a name="line.16387"></a>
+<span class="sourceLineNo">16388</span>                                        oi64data[it.oIndex] = ox;<a name="line.16388"></a>
+<span class="sourceLineNo">16389</span>                                }<a name="line.16389"></a>
+<span class="sourceLineNo">16390</span>                        }<a name="line.16390"></a>
+<span class="sourceLineNo">16391</span>                        break;<a name="line.16391"></a>
+<span class="sourceLineNo">16392</span>                case Dataset.INT32:<a name="line.16392"></a>
+<span class="sourceLineNo">16393</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.16393"></a>
+<span class="sourceLineNo">16394</span>                        {<a name="line.16394"></a>
+<span class="sourceLineNo">16395</span>                                while (it.hasNext()) {<a name="line.16395"></a>
+<span class="sourceLineNo">16396</span>                                        final long iax = it.aLong;<a name="line.16396"></a>
+<span class="sourceLineNo">16397</span>                                        final long ibx = it.bLong;<a name="line.16397"></a>
+<span class="sourceLineNo">16398</span>                                        int ox;<a name="line.16398"></a>
+<span class="sourceLineNo">16399</span>                                        ox = (int) (iax &lt;&lt; ibx);<a name="line.16399"></a>
+<span class="sourceLineNo">16400</span>                                        oi32data[it.oIndex] = ox;<a name="line.16400"></a>
+<span class="sourceLineNo">16401</span>                                }<a name="line.16401"></a>
+<span class="sourceLineNo">16402</span>                        }<a name="line.16402"></a>
+<span class="sourceLineNo">16403</span>                        break;<a name="line.16403"></a>
+<span class="sourceLineNo">16404</span>                case Dataset.ARRAYINT8:<a name="line.16404"></a>
+<span class="sourceLineNo">16405</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.16405"></a>
+<span class="sourceLineNo">16406</span>                        if (is == 1) {<a name="line.16406"></a>
+<span class="sourceLineNo">16407</span>                                {<a name="line.16407"></a>
+<span class="sourceLineNo">16408</span>                                        while (it.hasNext()) {<a name="line.16408"></a>
+<span class="sourceLineNo">16409</span>                                                final long iax = it.aLong;<a name="line.16409"></a>
+<span class="sourceLineNo">16410</span>                                                final long ibx = it.bLong;<a name="line.16410"></a>
+<span class="sourceLineNo">16411</span>                                                byte ox;<a name="line.16411"></a>
+<span class="sourceLineNo">16412</span>                                                ox = (byte) (iax &lt;&lt; ibx);<a name="line.16412"></a>
+<span class="sourceLineNo">16413</span>                                                oai8data[it.oIndex] = ox;<a name="line.16413"></a>
+<span class="sourceLineNo">16414</span>                                        }<a name="line.16414"></a>
+<span class="sourceLineNo">16415</span>                                }<a name="line.16415"></a>
+<span class="sourceLineNo">16416</span>                        } else if (as &lt; bs) {<a name="line.16416"></a>
+<span class="sourceLineNo">16417</span>                                {<a name="line.16417"></a>
+<span class="sourceLineNo">16418</span>                                        while (it.hasNext()) {<a name="line.16418"></a>
+<span class="sourceLineNo">16419</span>                                                final long iax = it.aLong;<a name="line.16419"></a>
+<span class="sourceLineNo">16420</span>                                                long ibx = it.bLong;<a name="line.16420"></a>
+<span class="sourceLineNo">16421</span>                                                byte ox;<a name="line.16421"></a>
+<span class="sourceLineNo">16422</span>                                                ox = (byte) (iax &lt;&lt; ibx);<a name="line.16422"></a>
+<span class="sourceLineNo">16423</span>                                                oai8data[it.oIndex] = ox;<a name="line.16423"></a>
+<span class="sourceLineNo">16424</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16424"></a>
+<span class="sourceLineNo">16425</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.16425"></a>
+<span class="sourceLineNo">16426</span>                                                        ox = (byte) (iax &lt;&lt; ibx);<a name="line.16426"></a>
+<span class="sourceLineNo">16427</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.16427"></a>
+<span class="sourceLineNo">16428</span>                                                }<a name="line.16428"></a>
+<span class="sourceLineNo">16429</span>                                        }<a name="line.16429"></a>
+<span class="sourceLineNo">16430</span>                                }<a name="line.16430"></a>
+<span class="sourceLineNo">16431</span>                        } else if (as &gt; bs) {<a name="line.16431"></a>
+<span class="sourceLineNo">16432</span>                                {<a name="line.16432"></a>
+<span class="sourceLineNo">16433</span>                                        while (it.hasNext()) {<a name="line.16433"></a>
+<span class="sourceLineNo">16434</span>                                                long iax = it.aLong;<a name="line.16434"></a>
+<span class="sourceLineNo">16435</span>                                                final long ibx = it.bLong;<a name="line.16435"></a>
+<span class="sourceLineNo">16436</span>                                                byte ox;<a name="line.16436"></a>
+<span class="sourceLineNo">16437</span>                                                ox = (byte) (iax &lt;&lt; ibx);<a name="line.16437"></a>
+<span class="sourceLineNo">16438</span>                                                oai8data[it.oIndex] = ox;<a name="line.16438"></a>
+<span class="sourceLineNo">16439</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16439"></a>
+<span class="sourceLineNo">16440</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.16440"></a>
+<span class="sourceLineNo">16441</span>                                                        ox = (byte) (iax &lt;&lt; ibx);<a name="line.16441"></a>
+<span class="sourceLineNo">16442</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.16442"></a>
+<span class="sourceLineNo">16443</span>                                                }<a name="line.16443"></a>
+<span class="sourceLineNo">16444</span>                                        }<a name="line.16444"></a>
+<span class="sourceLineNo">16445</span>                                }<a name="line.16445"></a>
+<span class="sourceLineNo">16446</span>                        } else if (as == 1) {<a name="line.16446"></a>
+<span class="sourceLineNo">16447</span>                                {<a name="line.16447"></a>
+<span class="sourceLineNo">16448</span>                                        while (it.hasNext()) {<a name="line.16448"></a>
+<span class="sourceLineNo">16449</span>                                                final long iax = it.aLong;<a name="line.16449"></a>
+<span class="sourceLineNo">16450</span>                                                final long ibx = it.bLong;<a name="line.16450"></a>
+<span class="sourceLineNo">16451</span>                                                byte ox;<a name="line.16451"></a>
+<span class="sourceLineNo">16452</span>                                                ox = (byte) (iax &lt;&lt; ibx);<a name="line.16452"></a>
+<span class="sourceLineNo">16453</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.16453"></a>
+<span class="sourceLineNo">16454</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.16454"></a>
+<span class="sourceLineNo">16455</span>                                                }<a name="line.16455"></a>
+<span class="sourceLineNo">16456</span>                                        }<a name="line.16456"></a>
+<span class="sourceLineNo">16457</span>                                }<a name="line.16457"></a>
+<span class="sourceLineNo">16458</span>                        } else {<a name="line.16458"></a>
+<span class="sourceLineNo">16459</span>                                {<a name="line.16459"></a>
+<span class="sourceLineNo">16460</span>                                        while (it.hasNext()) {<a name="line.16460"></a>
+<span class="sourceLineNo">16461</span>                                                long iax = it.aLong;<a name="line.16461"></a>
+<span class="sourceLineNo">16462</span>                                                long ibx = it.bLong;<a name="line.16462"></a>
+<span class="sourceLineNo">16463</span>                                                byte ox;<a name="line.16463"></a>
+<span class="sourceLineNo">16464</span>                                                ox = (byte) (iax &lt;&lt; ibx);<a name="line.16464"></a>
+<span class="sourceLineNo">16465</span>                                                oai8data[it.oIndex] = ox;<a name="line.16465"></a>
+<span class="sourceLineNo">16466</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16466"></a>
+<span class="sourceLineNo">16467</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.16467"></a>
+<span class="sourceLineNo">16468</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.16468"></a>
+<span class="sourceLineNo">16469</span>                                                        ox = (byte) (iax &lt;&lt; ibx);<a name="line.16469"></a>
+<span class="sourceLineNo">16470</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.16470"></a>
+<span class="sourceLineNo">16471</span>                                                }<a name="line.16471"></a>
+<span class="sourceLineNo">16472</span>                                        }<a name="line.16472"></a>
+<span class="sourceLineNo">16473</span>                                }<a name="line.16473"></a>
+<span class="sourceLineNo">16474</span>                        }<a name="line.16474"></a>
+<span class="sourceLineNo">16475</span>                        break;<a name="line.16475"></a>
+<span class="sourceLineNo">16476</span>                case Dataset.ARRAYINT16:<a name="line.16476"></a>
+<span class="sourceLineNo">16477</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.16477"></a>
+<span class="sourceLineNo">16478</span>                        if (is == 1) {<a name="line.16478"></a>
+<span class="sourceLineNo">16479</span>                                {<a name="line.16479"></a>
+<span class="sourceLineNo">16480</span>                                        while (it.hasNext()) {<a name="line.16480"></a>
+<span class="sourceLineNo">16481</span>                                                final long iax = it.aLong;<a name="line.16481"></a>
+<span class="sourceLineNo">16482</span>                                                final long ibx = it.bLong;<a name="line.16482"></a>
+<span class="sourceLineNo">16483</span>                                                short ox;<a name="line.16483"></a>
+<span class="sourceLineNo">16484</span>                                                ox = (short) (iax &lt;&lt; ibx);<a name="line.16484"></a>
+<span class="sourceLineNo">16485</span>                                                oai16data[it.oIndex] = ox;<a name="line.16485"></a>
+<span class="sourceLineNo">16486</span>                                        }<a name="line.16486"></a>
+<span class="sourceLineNo">16487</span>                                }<a name="line.16487"></a>
+<span class="sourceLineNo">16488</span>                        } else if (as &lt; bs) {<a name="line.16488"></a>
+<span class="sourceLineNo">16489</span>                                {<a name="line.16489"></a>
+<span class="sourceLineNo">16490</span>                                        while (it.hasNext()) {<a name="line.16490"></a>
+<span class="sourceLineNo">16491</span>                                                final long iax = it.aLong;<a name="line.16491"></a>
+<span class="sourceLineNo">16492</span>                                                long ibx = it.bLong;<a name="line.16492"></a>
+<span class="sourceLineNo">16493</span>                                                short ox;<a name="line.16493"></a>
+<span class="sourceLineNo">16494</span>                                                ox = (short) (iax &lt;&lt; ibx);<a name="line.16494"></a>
+<span class="sourceLineNo">16495</span>                                                oai16data[it.oIndex] = ox;<a name="line.16495"></a>
+<span class="sourceLineNo">16496</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16496"></a>
+<span class="sourceLineNo">16497</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.16497"></a>
+<span class="sourceLineNo">16498</span>                                                        ox = (short) (iax &lt;&lt; ibx);<a name="line.16498"></a>
+<span class="sourceLineNo">16499</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.16499"></a>
+<span class="sourceLineNo">16500</span>                                                }<a name="line.16500"></a>
+<span class="sourceLineNo">16501</span>                                        }<a name="line.16501"></a>
+<span class="sourceLineNo">16502</span>                                }<a name="line.16502"></a>
+<span class="sourceLineNo">16503</span>                        } else if (as &gt; bs) {<a name="line.16503"></a>
+<span class="sourceLineNo">16504</span>                                {<a name="line.16504"></a>
+<span class="sourceLineNo">16505</span>                                        while (it.hasNext()) {<a name="line.16505"></a>
+<span class="sourceLineNo">16506</span>                                                long iax = it.aLong;<a name="line.16506"></a>
+<span class="sourceLineNo">16507</span>                                                final long ibx = it.bLong;<a name="line.16507"></a>
+<span class="sourceLineNo">16508</span>                                                short ox;<a name="line.16508"></a>
+<span class="sourceLineNo">16509</span>                                                ox = (short) (iax &lt;&lt; ibx);<a name="line.16509"></a>
+<span class="sourceLineNo">16510</span>                                                oai16data[it.oIndex] = ox;<a name="line.16510"></a>
+<span class="sourceLineNo">16511</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16511"></a>
+<span class="sourceLineNo">16512</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.16512"></a>
+<span class="sourceLineNo">16513</span>                                                        ox = (short) (iax &lt;&lt; ibx);<a name="line.16513"></a>
+<span class="sourceLineNo">16514</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.16514"></a>
+<span class="sourceLineNo">16515</span>                                                }<a name="line.16515"></a>
+<span class="sourceLineNo">16516</span>                                        }<a name="line.16516"></a>
+<span class="sourceLineNo">16517</span>                                }<a name="line.16517"></a>
+<span class="sourceLineNo">16518</span>                        } else if (as == 1) {<a name="line.16518"></a>
+<span class="sourceLineNo">16519</span>                                {<a name="line.16519"></a>
+<span class="sourceLineNo">16520</span>                                        while (it.hasNext()) {<a name="line.16520"></a>
+<span class="sourceLineNo">16521</span>                                                final long iax = it.aLong;<a name="line.16521"></a>
+<span class="sourceLineNo">16522</span>                                                final long ibx = it.bLong;<a name="line.16522"></a>
+<span class="sourceLineNo">16523</span>                                                short ox;<a name="line.16523"></a>
+<span class="sourceLineNo">16524</span>                                                ox = (short) (iax &lt;&lt; ibx);<a name="line.16524"></a>
+<span class="sourceLineNo">16525</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.16525"></a>
+<span class="sourceLineNo">16526</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.16526"></a>
+<span class="sourceLineNo">16527</span>                                                }<a name="line.16527"></a>
+<span class="sourceLineNo">16528</span>                                        }<a name="line.16528"></a>
+<span class="sourceLineNo">16529</span>                                }<a name="line.16529"></a>
+<span class="sourceLineNo">16530</span>                        } else {<a name="line.16530"></a>
+<span class="sourceLineNo">16531</span>                                {<a name="line.16531"></a>
+<span class="sourceLineNo">16532</span>                                        while (it.hasNext()) {<a name="line.16532"></a>
+<span class="sourceLineNo">16533</span>                                                long iax = it.aLong;<a name="line.16533"></a>
+<span class="sourceLineNo">16534</span>                                                long ibx = it.bLong;<a name="line.16534"></a>
+<span class="sourceLineNo">16535</span>                                                short ox;<a name="line.16535"></a>
+<span class="sourceLineNo">16536</span>                                                ox = (short) (iax &lt;&lt; ibx);<a name="line.16536"></a>
+<span class="sourceLineNo">16537</span>                                                oai16data[it.oIndex] = ox;<a name="line.16537"></a>
+<span class="sourceLineNo">16538</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16538"></a>
+<span class="sourceLineNo">16539</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.16539"></a>
+<span class="sourceLineNo">16540</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.16540"></a>
+<span class="sourceLineNo">16541</span>                                                        ox = (short) (iax &lt;&lt; ibx);<a name="line.16541"></a>
+<span class="sourceLineNo">16542</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.16542"></a>
+<span class="sourceLineNo">16543</span>                                                }<a name="line.16543"></a>
+<span class="sourceLineNo">16544</span>                                        }<a name="line.16544"></a>
+<span class="sourceLineNo">16545</span>                                }<a name="line.16545"></a>
+<span class="sourceLineNo">16546</span>                        }<a name="line.16546"></a>
+<span class="sourceLineNo">16547</span>                        break;<a name="line.16547"></a>
+<span class="sourceLineNo">16548</span>                case Dataset.ARRAYINT64:<a name="line.16548"></a>
+<span class="sourceLineNo">16549</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.16549"></a>
+<span class="sourceLineNo">16550</span>                        if (is == 1) {<a name="line.16550"></a>
+<span class="sourceLineNo">16551</span>                                {<a name="line.16551"></a>
+<span class="sourceLineNo">16552</span>                                        while (it.hasNext()) {<a name="line.16552"></a>
+<span class="sourceLineNo">16553</span>                                                final long iax = it.aLong;<a name="line.16553"></a>
+<span class="sourceLineNo">16554</span>                                                final long ibx = it.bLong;<a name="line.16554"></a>
+<span class="sourceLineNo">16555</span>                                                long ox;<a name="line.16555"></a>
+<span class="sourceLineNo">16556</span>                                                ox = (iax &lt;&lt; ibx);<a name="line.16556"></a>
+<span class="sourceLineNo">16557</span>                                                oai64data[it.oIndex] = ox;<a name="line.16557"></a>
+<span class="sourceLineNo">16558</span>                                        }<a name="line.16558"></a>
+<span class="sourceLineNo">16559</span>                                }<a name="line.16559"></a>
+<span class="sourceLineNo">16560</span>                        } else if (as &lt; bs) {<a name="line.16560"></a>
+<span class="sourceLineNo">16561</span>                                {<a name="line.16561"></a>
+<span class="sourceLineNo">16562</span>                                        while (it.hasNext()) {<a name="line.16562"></a>
+<span class="sourceLineNo">16563</span>                                                final long iax = it.aLong;<a name="line.16563"></a>
+<span class="sourceLineNo">16564</span>                                                long ibx = it.bLong;<a name="line.16564"></a>
+<span class="sourceLineNo">16565</span>                                                long ox;<a name="line.16565"></a>
+<span class="sourceLineNo">16566</span>                                                ox = (iax &lt;&lt; ibx);<a name="line.16566"></a>
+<span class="sourceLineNo">16567</span>                                                oai64data[it.oIndex] = ox;<a name="line.16567"></a>
+<span class="sourceLineNo">16568</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16568"></a>
+<span class="sourceLineNo">16569</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.16569"></a>
+<span class="sourceLineNo">16570</span>                                                        ox = (iax &lt;&lt; ibx);<a name="line.16570"></a>
+<span class="sourceLineNo">16571</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.16571"></a>
+<span class="sourceLineNo">16572</span>                                                }<a name="line.16572"></a>
+<span class="sourceLineNo">16573</span>                                        }<a name="line.16573"></a>
+<span class="sourceLineNo">16574</span>                                }<a name="line.16574"></a>
+<span class="sourceLineNo">16575</span>                        } else if (as &gt; bs) {<a name="line.16575"></a>
+<span class="sourceLineNo">16576</span>                                {<a name="line.16576"></a>
+<span class="sourceLineNo">16577</span>                                        while (it.hasNext()) {<a name="line.16577"></a>
+<span class="sourceLineNo">16578</span>                                                long iax = it.aLong;<a name="line.16578"></a>
+<span class="sourceLineNo">16579</span>                                                final long ibx = it.bLong;<a name="line.16579"></a>
+<span class="sourceLineNo">16580</span>                                                long ox;<a name="line.16580"></a>
+<span class="sourceLineNo">16581</span>                                                ox = (iax &lt;&lt; ibx);<a name="line.16581"></a>
+<span class="sourceLineNo">16582</span>                                                oai64data[it.oIndex] = ox;<a name="line.16582"></a>
+<span class="sourceLineNo">16583</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16583"></a>
+<span class="sourceLineNo">16584</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.16584"></a>
+<span class="sourceLineNo">16585</span>                                                        ox = (iax &lt;&lt; ibx);<a name="line.16585"></a>
+<span class="sourceLineNo">16586</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.16586"></a>
+<span class="sourceLineNo">16587</span>                                                }<a name="line.16587"></a>
+<span class="sourceLineNo">16588</span>                                        }<a name="line.16588"></a>
+<span class="sourceLineNo">16589</span>                                }<a name="line.16589"></a>
+<span class="sourceLineNo">16590</span>                        } else if (as == 1) {<a name="line.16590"></a>
+<span class="sourceLineNo">16591</span>                                {<a name="line.16591"></a>
+<span class="sourceLineNo">16592</span>                                        while (it.hasNext()) {<a name="line.16592"></a>
+<span class="sourceLineNo">16593</span>                                                final long iax = it.aLong;<a name="line.16593"></a>
+<span class="sourceLineNo">16594</span>                                                final long ibx = it.bLong;<a name="line.16594"></a>
+<span class="sourceLineNo">16595</span>                                                long ox;<a name="line.16595"></a>
+<span class="sourceLineNo">16596</span>                                                ox = (iax &lt;&lt; ibx);<a name="line.16596"></a>
+<span class="sourceLineNo">16597</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.16597"></a>
+<span class="sourceLineNo">16598</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.16598"></a>
+<span class="sourceLineNo">16599</span>                                                }<a name="line.16599"></a>
+<span class="sourceLineNo">16600</span>                                        }<a name="line.16600"></a>
+<span class="sourceLineNo">16601</span>                                }<a name="line.16601"></a>
+<span class="sourceLineNo">16602</span>                        } else {<a name="line.16602"></a>
+<span class="sourceLineNo">16603</span>                                {<a name="line.16603"></a>
+<span class="sourceLineNo">16604</span>                                        while (it.hasNext()) {<a name="line.16604"></a>
+<span class="sourceLineNo">16605</span>                                                long iax = it.aLong;<a name="line.16605"></a>
+<span class="sourceLineNo">16606</span>                                                long ibx = it.bLong;<a name="line.16606"></a>
+<span class="sourceLineNo">16607</span>                                                long ox;<a name="line.16607"></a>
+<span class="sourceLineNo">16608</span>                                                ox = (iax &lt;&lt; ibx);<a name="line.16608"></a>
+<span class="sourceLineNo">16609</span>                                                oai64data[it.oIndex] = ox;<a name="line.16609"></a>
+<span class="sourceLineNo">16610</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16610"></a>
+<span class="sourceLineNo">16611</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.16611"></a>
+<span class="sourceLineNo">16612</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.16612"></a>
+<span class="sourceLineNo">16613</span>                                                        ox = (iax &lt;&lt; ibx);<a name="line.16613"></a>
+<span class="sourceLineNo">16614</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.16614"></a>
+<span class="sourceLineNo">16615</span>                                                }<a name="line.16615"></a>
+<span class="sourceLineNo">16616</span>                                        }<a name="line.16616"></a>
+<span class="sourceLineNo">16617</span>                                }<a name="line.16617"></a>
+<span class="sourceLineNo">16618</span>                        }<a name="line.16618"></a>
+<span class="sourceLineNo">16619</span>                        break;<a name="line.16619"></a>
+<span class="sourceLineNo">16620</span>                case Dataset.ARRAYINT32:<a name="line.16620"></a>
+<span class="sourceLineNo">16621</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.16621"></a>
+<span class="sourceLineNo">16622</span>                        if (is == 1) {<a name="line.16622"></a>
+<span class="sourceLineNo">16623</span>                                {<a name="line.16623"></a>
+<span class="sourceLineNo">16624</span>                                        while (it.hasNext()) {<a name="line.16624"></a>
+<span class="sourceLineNo">16625</span>                                                final long iax = it.aLong;<a name="line.16625"></a>
+<span class="sourceLineNo">16626</span>                                                final long ibx = it.bLong;<a name="line.16626"></a>
+<span class="sourceLineNo">16627</span>                                                int ox;<a name="line.16627"></a>
+<span class="sourceLineNo">16628</span>                                                ox = (int) (iax &lt;&lt; ibx);<a name="line.16628"></a>
+<span class="sourceLineNo">16629</span>                                                oai32data[it.oIndex] = ox;<a name="line.16629"></a>
+<span class="sourceLineNo">16630</span>                                        }<a name="line.16630"></a>
+<span class="sourceLineNo">16631</span>                                }<a name="line.16631"></a>
+<span class="sourceLineNo">16632</span>                        } else if (as &lt; bs) {<a name="line.16632"></a>
+<span class="sourceLineNo">16633</span>                                {<a name="line.16633"></a>
+<span class="sourceLineNo">16634</span>                                        while (it.hasNext()) {<a name="line.16634"></a>
+<span class="sourceLineNo">16635</span>                                                final long iax = it.aLong;<a name="line.16635"></a>
+<span class="sourceLineNo">16636</span>                                                long ibx = it.bLong;<a name="line.16636"></a>
+<span class="sourceLineNo">16637</span>                                                int ox;<a name="line.16637"></a>
+<span class="sourceLineNo">16638</span>                                                ox = (int) (iax &lt;&lt; ibx);<a name="line.16638"></a>
+<span class="sourceLineNo">16639</span>                                                oai32data[it.oIndex] = ox;<a name="line.16639"></a>
+<span class="sourceLineNo">16640</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16640"></a>
+<span class="sourceLineNo">16641</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.16641"></a>
+<span class="sourceLineNo">16642</span>                                                        ox = (int) (iax &lt;&lt; ibx);<a name="line.16642"></a>
+<span class="sourceLineNo">16643</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.16643"></a>
+<span class="sourceLineNo">16644</span>                                                }<a name="line.16644"></a>
+<span class="sourceLineNo">16645</span>                                        }<a name="line.16645"></a>
+<span class="sourceLineNo">16646</span>                                }<a name="line.16646"></a>
+<span class="sourceLineNo">16647</span>                        } else if (as &gt; bs) {<a name="line.16647"></a>
+<span class="sourceLineNo">16648</span>                                {<a name="line.16648"></a>
+<span class="sourceLineNo">16649</span>                                        while (it.hasNext()) {<a name="line.16649"></a>
+<span class="sourceLineNo">16650</span>                                                long iax = it.aLong;<a name="line.16650"></a>
+<span class="sourceLineNo">16651</span>                                                final long ibx = it.bLong;<a name="line.16651"></a>
+<span class="sourceLineNo">16652</span>                                                int ox;<a name="line.16652"></a>
+<span class="sourceLineNo">16653</span>                                                ox = (int) (iax &lt;&lt; ibx);<a name="line.16653"></a>
+<span class="sourceLineNo">16654</span>                                                oai32data[it.oIndex] = ox;<a name="line.16654"></a>
+<span class="sourceLineNo">16655</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16655"></a>
+<span class="sourceLineNo">16656</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.16656"></a>
+<span class="sourceLineNo">16657</span>                                                        ox = (int) (iax &lt;&lt; ibx);<a name="line.16657"></a>
+<span class="sourceLineNo">16658</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.16658"></a>
+<span class="sourceLineNo">16659</span>                                                }<a name="line.16659"></a>
+<span class="sourceLineNo">16660</span>                                        }<a name="line.16660"></a>
+<span class="sourceLineNo">16661</span>                                }<a name="line.16661"></a>
+<span class="sourceLineNo">16662</span>                        } else if (as == 1) {<a name="line.16662"></a>
+<span class="sourceLineNo">16663</span>                                {<a name="line.16663"></a>
+<span class="sourceLineNo">16664</span>                                        while (it.hasNext()) {<a name="line.16664"></a>
+<span class="sourceLineNo">16665</span>                                                final long iax = it.aLong;<a name="line.16665"></a>
+<span class="sourceLineNo">16666</span>                                                final long ibx = it.bLong;<a name="line.16666"></a>
+<span class="sourceLineNo">16667</span>                                                int ox;<a name="line.16667"></a>
+<span class="sourceLineNo">16668</span>                                                ox = (int) (iax &lt;&lt; ibx);<a name="line.16668"></a>
+<span class="sourceLineNo">16669</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.16669"></a>
+<span class="sourceLineNo">16670</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.16670"></a>
+<span class="sourceLineNo">16671</span>                                                }<a name="line.16671"></a>
+<span class="sourceLineNo">16672</span>                                        }<a name="line.16672"></a>
+<span class="sourceLineNo">16673</span>                                }<a name="line.16673"></a>
+<span class="sourceLineNo">16674</span>                        } else {<a name="line.16674"></a>
+<span class="sourceLineNo">16675</span>                                {<a name="line.16675"></a>
+<span class="sourceLineNo">16676</span>                                        while (it.hasNext()) {<a name="line.16676"></a>
+<span class="sourceLineNo">16677</span>                                                long iax = it.aLong;<a name="line.16677"></a>
+<span class="sourceLineNo">16678</span>                                                long ibx = it.bLong;<a name="line.16678"></a>
+<span class="sourceLineNo">16679</span>                                                int ox;<a name="line.16679"></a>
+<span class="sourceLineNo">16680</span>                                                ox = (int) (iax &lt;&lt; ibx);<a name="line.16680"></a>
+<span class="sourceLineNo">16681</span>                                                oai32data[it.oIndex] = ox;<a name="line.16681"></a>
+<span class="sourceLineNo">16682</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16682"></a>
+<span class="sourceLineNo">16683</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.16683"></a>
+<span class="sourceLineNo">16684</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.16684"></a>
+<span class="sourceLineNo">16685</span>                                                        ox = (int) (iax &lt;&lt; ibx);<a name="line.16685"></a>
+<span class="sourceLineNo">16686</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.16686"></a>
+<span class="sourceLineNo">16687</span>                                                }<a name="line.16687"></a>
+<span class="sourceLineNo">16688</span>                                        }<a name="line.16688"></a>
+<span class="sourceLineNo">16689</span>                                }<a name="line.16689"></a>
+<span class="sourceLineNo">16690</span>                        }<a name="line.16690"></a>
+<span class="sourceLineNo">16691</span>                        break;<a name="line.16691"></a>
+<span class="sourceLineNo">16692</span>                default:<a name="line.16692"></a>
+<span class="sourceLineNo">16693</span>                        throw new IllegalArgumentException("leftShift supports integer, compound integer datasets only");<a name="line.16693"></a>
+<span class="sourceLineNo">16694</span>                }<a name="line.16694"></a>
+<span class="sourceLineNo">16695</span><a name="line.16695"></a>
+<span class="sourceLineNo">16696</span>                addBinaryOperatorName(da, db, result, "&lt;&lt;");<a name="line.16696"></a>
+<span class="sourceLineNo">16697</span>                return result;<a name="line.16697"></a>
+<span class="sourceLineNo">16698</span>        }<a name="line.16698"></a>
+<span class="sourceLineNo">16699</span><a name="line.16699"></a>
+<span class="sourceLineNo">16700</span>        /**<a name="line.16700"></a>
+<span class="sourceLineNo">16701</span>         * rightShift operator<a name="line.16701"></a>
+<span class="sourceLineNo">16702</span>         * @param a<a name="line.16702"></a>
+<span class="sourceLineNo">16703</span>         * @param b<a name="line.16703"></a>
+<span class="sourceLineNo">16704</span>         * @return {@code a &gt;&gt; b}, bitwise right shift of a by b<a name="line.16704"></a>
+<span class="sourceLineNo">16705</span>         */<a name="line.16705"></a>
+<span class="sourceLineNo">16706</span>        public static Dataset rightShift(final Object a, final Object b) {<a name="line.16706"></a>
+<span class="sourceLineNo">16707</span>                return rightShift(a, b, null);<a name="line.16707"></a>
+<span class="sourceLineNo">16708</span>        }<a name="line.16708"></a>
+<span class="sourceLineNo">16709</span><a name="line.16709"></a>
+<span class="sourceLineNo">16710</span>        /**<a name="line.16710"></a>
+<span class="sourceLineNo">16711</span>         * rightShift operator<a name="line.16711"></a>
+<span class="sourceLineNo">16712</span>         * @param a<a name="line.16712"></a>
+<span class="sourceLineNo">16713</span>         * @param b<a name="line.16713"></a>
+<span class="sourceLineNo">16714</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.16714"></a>
+<span class="sourceLineNo">16715</span>         * @return {@code a &gt;&gt; b}, bitwise right shift of a by b<a name="line.16715"></a>
+<span class="sourceLineNo">16716</span>         */<a name="line.16716"></a>
+<span class="sourceLineNo">16717</span>        public static Dataset rightShift(final Object a, final Object b, final Dataset o) {<a name="line.16717"></a>
+<span class="sourceLineNo">16718</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.16718"></a>
+<span class="sourceLineNo">16719</span>                Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.16719"></a>
+<span class="sourceLineNo">16720</span>                BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.16720"></a>
+<span class="sourceLineNo">16721</span>                it.setOutputDouble(false);<a name="line.16721"></a>
+<span class="sourceLineNo">16722</span>                final Dataset result = it.getOutput();<a name="line.16722"></a>
+<span class="sourceLineNo">16723</span>                if (!result.isComplex()) {<a name="line.16723"></a>
+<span class="sourceLineNo">16724</span>                        boolean change = false;<a name="line.16724"></a>
+<span class="sourceLineNo">16725</span>                        if (da.isComplex()) {<a name="line.16725"></a>
+<span class="sourceLineNo">16726</span>                                da = da.getRealView();<a name="line.16726"></a>
+<span class="sourceLineNo">16727</span>                                change = true;<a name="line.16727"></a>
+<span class="sourceLineNo">16728</span>                        }<a name="line.16728"></a>
+<span class="sourceLineNo">16729</span>                        if (db.isComplex()) {<a name="line.16729"></a>
+<span class="sourceLineNo">16730</span>                                db = db.getRealView();<a name="line.16730"></a>
+<span class="sourceLineNo">16731</span>                                change = true;<a name="line.16731"></a>
+<span class="sourceLineNo">16732</span>                        }<a name="line.16732"></a>
+<span class="sourceLineNo">16733</span>                        if (change) {<a name="line.16733"></a>
+<span class="sourceLineNo">16734</span>                                it = BroadcastIterator.createIterator(da, db, result, true);<a name="line.16734"></a>
+<span class="sourceLineNo">16735</span>                                it.setOutputDouble(false);<a name="line.16735"></a>
+<span class="sourceLineNo">16736</span>                        }<a name="line.16736"></a>
+<span class="sourceLineNo">16737</span>                }<a name="line.16737"></a>
+<span class="sourceLineNo">16738</span>                final int is = result.getElementsPerItem();<a name="line.16738"></a>
+<span class="sourceLineNo">16739</span>                final int as = da.getElementsPerItem();<a name="line.16739"></a>
+<span class="sourceLineNo">16740</span>                final int bs = db.getElementsPerItem();<a name="line.16740"></a>
+<span class="sourceLineNo">16741</span>                final int dt = result.getDType();<a name="line.16741"></a>
+<span class="sourceLineNo">16742</span><a name="line.16742"></a>
+<span class="sourceLineNo">16743</span>                switch(dt) {<a name="line.16743"></a>
+<span class="sourceLineNo">16744</span>                case Dataset.INT8:<a name="line.16744"></a>
+<span class="sourceLineNo">16745</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.16745"></a>
+<span class="sourceLineNo">16746</span>                        {<a name="line.16746"></a>
+<span class="sourceLineNo">16747</span>                                while (it.hasNext()) {<a name="line.16747"></a>
+<span class="sourceLineNo">16748</span>                                        final long iax = it.aLong;<a name="line.16748"></a>
+<span class="sourceLineNo">16749</span>                                        final long ibx = it.bLong;<a name="line.16749"></a>
+<span class="sourceLineNo">16750</span>                                        byte ox;<a name="line.16750"></a>
+<span class="sourceLineNo">16751</span>                                        ox = (byte) (iax &gt;&gt; ibx);<a name="line.16751"></a>
+<span class="sourceLineNo">16752</span>                                        oi8data[it.oIndex] = ox;<a name="line.16752"></a>
+<span class="sourceLineNo">16753</span>                                }<a name="line.16753"></a>
+<span class="sourceLineNo">16754</span>                        }<a name="line.16754"></a>
+<span class="sourceLineNo">16755</span>                        break;<a name="line.16755"></a>
+<span class="sourceLineNo">16756</span>                case Dataset.INT16:<a name="line.16756"></a>
+<span class="sourceLineNo">16757</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.16757"></a>
+<span class="sourceLineNo">16758</span>                        {<a name="line.16758"></a>
+<span class="sourceLineNo">16759</span>                                while (it.hasNext()) {<a name="line.16759"></a>
+<span class="sourceLineNo">16760</span>                                        final long iax = it.aLong;<a name="line.16760"></a>
+<span class="sourceLineNo">16761</span>                                        final long ibx = it.bLong;<a name="line.16761"></a>
+<span class="sourceLineNo">16762</span>                                        short ox;<a name="line.16762"></a>
+<span class="sourceLineNo">16763</span>                                        ox = (short) (iax &gt;&gt; ibx);<a name="line.16763"></a>
+<span class="sourceLineNo">16764</span>                                        oi16data[it.oIndex] = ox;<a name="line.16764"></a>
+<span class="sourceLineNo">16765</span>                                }<a name="line.16765"></a>
+<span class="sourceLineNo">16766</span>                        }<a name="line.16766"></a>
+<span class="sourceLineNo">16767</span>                        break;<a name="line.16767"></a>
+<span class="sourceLineNo">16768</span>                case Dataset.INT64:<a name="line.16768"></a>
+<span class="sourceLineNo">16769</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.16769"></a>
+<span class="sourceLineNo">16770</span>                        {<a name="line.16770"></a>
+<span class="sourceLineNo">16771</span>                                while (it.hasNext()) {<a name="line.16771"></a>
+<span class="sourceLineNo">16772</span>                                        final long iax = it.aLong;<a name="line.16772"></a>
+<span class="sourceLineNo">16773</span>                                        final long ibx = it.bLong;<a name="line.16773"></a>
+<span class="sourceLineNo">16774</span>                                        long ox;<a name="line.16774"></a>
+<span class="sourceLineNo">16775</span>                                        ox = (iax &gt;&gt; ibx);<a name="line.16775"></a>
+<span class="sourceLineNo">16776</span>                                        oi64data[it.oIndex] = ox;<a name="line.16776"></a>
+<span class="sourceLineNo">16777</span>                                }<a name="line.16777"></a>
+<span class="sourceLineNo">16778</span>                        }<a name="line.16778"></a>
+<span class="sourceLineNo">16779</span>                        break;<a name="line.16779"></a>
+<span class="sourceLineNo">16780</span>                case Dataset.INT32:<a name="line.16780"></a>
+<span class="sourceLineNo">16781</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.16781"></a>
+<span class="sourceLineNo">16782</span>                        {<a name="line.16782"></a>
+<span class="sourceLineNo">16783</span>                                while (it.hasNext()) {<a name="line.16783"></a>
+<span class="sourceLineNo">16784</span>                                        final long iax = it.aLong;<a name="line.16784"></a>
+<span class="sourceLineNo">16785</span>                                        final long ibx = it.bLong;<a name="line.16785"></a>
+<span class="sourceLineNo">16786</span>                                        int ox;<a name="line.16786"></a>
+<span class="sourceLineNo">16787</span>                                        ox = (int) (iax &gt;&gt; ibx);<a name="line.16787"></a>
+<span class="sourceLineNo">16788</span>                                        oi32data[it.oIndex] = ox;<a name="line.16788"></a>
+<span class="sourceLineNo">16789</span>                                }<a name="line.16789"></a>
+<span class="sourceLineNo">16790</span>                        }<a name="line.16790"></a>
+<span class="sourceLineNo">16791</span>                        break;<a name="line.16791"></a>
+<span class="sourceLineNo">16792</span>                case Dataset.ARRAYINT8:<a name="line.16792"></a>
+<span class="sourceLineNo">16793</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.16793"></a>
+<span class="sourceLineNo">16794</span>                        if (is == 1) {<a name="line.16794"></a>
+<span class="sourceLineNo">16795</span>                                {<a name="line.16795"></a>
+<span class="sourceLineNo">16796</span>                                        while (it.hasNext()) {<a name="line.16796"></a>
+<span class="sourceLineNo">16797</span>                                                final long iax = it.aLong;<a name="line.16797"></a>
+<span class="sourceLineNo">16798</span>                                                final long ibx = it.bLong;<a name="line.16798"></a>
+<span class="sourceLineNo">16799</span>                                                byte ox;<a name="line.16799"></a>
+<span class="sourceLineNo">16800</span>                                                ox = (byte) (iax &gt;&gt; ibx);<a name="line.16800"></a>
+<span class="sourceLineNo">16801</span>                                                oai8data[it.oIndex] = ox;<a name="line.16801"></a>
+<span class="sourceLineNo">16802</span>                                        }<a name="line.16802"></a>
+<span class="sourceLineNo">16803</span>                                }<a name="line.16803"></a>
+<span class="sourceLineNo">16804</span>                        } else if (as &lt; bs) {<a name="line.16804"></a>
+<span class="sourceLineNo">16805</span>                                {<a name="line.16805"></a>
+<span class="sourceLineNo">16806</span>                                        while (it.hasNext()) {<a name="line.16806"></a>
+<span class="sourceLineNo">16807</span>                                                final long iax = it.aLong;<a name="line.16807"></a>
+<span class="sourceLineNo">16808</span>                                                long ibx = it.bLong;<a name="line.16808"></a>
+<span class="sourceLineNo">16809</span>                                                byte ox;<a name="line.16809"></a>
+<span class="sourceLineNo">16810</span>                                                ox = (byte) (iax &gt;&gt; ibx);<a name="line.16810"></a>
+<span class="sourceLineNo">16811</span>                                                oai8data[it.oIndex] = ox;<a name="line.16811"></a>
+<span class="sourceLineNo">16812</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16812"></a>
+<span class="sourceLineNo">16813</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.16813"></a>
+<span class="sourceLineNo">16814</span>                                                        ox = (byte) (iax &gt;&gt; ibx);<a name="line.16814"></a>
+<span class="sourceLineNo">16815</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.16815"></a>
+<span class="sourceLineNo">16816</span>                                                }<a name="line.16816"></a>
+<span class="sourceLineNo">16817</span>                                        }<a name="line.16817"></a>
+<span class="sourceLineNo">16818</span>                                }<a name="line.16818"></a>
+<span class="sourceLineNo">16819</span>                        } else if (as &gt; bs) {<a name="line.16819"></a>
+<span class="sourceLineNo">16820</span>                                {<a name="line.16820"></a>
+<span class="sourceLineNo">16821</span>                                        while (it.hasNext()) {<a name="line.16821"></a>
+<span class="sourceLineNo">16822</span>                                                long iax = it.aLong;<a name="line.16822"></a>
+<span class="sourceLineNo">16823</span>                                                final long ibx = it.bLong;<a name="line.16823"></a>
+<span class="sourceLineNo">16824</span>                                                byte ox;<a name="line.16824"></a>
+<span class="sourceLineNo">16825</span>                                                ox = (byte) (iax &gt;&gt; ibx);<a name="line.16825"></a>
+<span class="sourceLineNo">16826</span>                                                oai8data[it.oIndex] = ox;<a name="line.16826"></a>
+<span class="sourceLineNo">16827</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16827"></a>
+<span class="sourceLineNo">16828</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.16828"></a>
+<span class="sourceLineNo">16829</span>                                                        ox = (byte) (iax &gt;&gt; ibx);<a name="line.16829"></a>
+<span class="sourceLineNo">16830</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.16830"></a>
+<span class="sourceLineNo">16831</span>                                                }<a name="line.16831"></a>
+<span class="sourceLineNo">16832</span>                                        }<a name="line.16832"></a>
+<span class="sourceLineNo">16833</span>                                }<a name="line.16833"></a>
+<span class="sourceLineNo">16834</span>                        } else if (as == 1) {<a name="line.16834"></a>
+<span class="sourceLineNo">16835</span>                                {<a name="line.16835"></a>
+<span class="sourceLineNo">16836</span>                                        while (it.hasNext()) {<a name="line.16836"></a>
+<span class="sourceLineNo">16837</span>                                                final long iax = it.aLong;<a name="line.16837"></a>
+<span class="sourceLineNo">16838</span>                                                final long ibx = it.bLong;<a name="line.16838"></a>
+<span class="sourceLineNo">16839</span>                                                byte ox;<a name="line.16839"></a>
+<span class="sourceLineNo">16840</span>                                                ox = (byte) (iax &gt;&gt; ibx);<a name="line.16840"></a>
+<span class="sourceLineNo">16841</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.16841"></a>
+<span class="sourceLineNo">16842</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.16842"></a>
+<span class="sourceLineNo">16843</span>                                                }<a name="line.16843"></a>
+<span class="sourceLineNo">16844</span>                                        }<a name="line.16844"></a>
+<span class="sourceLineNo">16845</span>                                }<a name="line.16845"></a>
+<span class="sourceLineNo">16846</span>                        } else {<a name="line.16846"></a>
+<span class="sourceLineNo">16847</span>                                {<a name="line.16847"></a>
+<span class="sourceLineNo">16848</span>                                        while (it.hasNext()) {<a name="line.16848"></a>
+<span class="sourceLineNo">16849</span>                                                long iax = it.aLong;<a name="line.16849"></a>
+<span class="sourceLineNo">16850</span>                                                long ibx = it.bLong;<a name="line.16850"></a>
+<span class="sourceLineNo">16851</span>                                                byte ox;<a name="line.16851"></a>
+<span class="sourceLineNo">16852</span>                                                ox = (byte) (iax &gt;&gt; ibx);<a name="line.16852"></a>
+<span class="sourceLineNo">16853</span>                                                oai8data[it.oIndex] = ox;<a name="line.16853"></a>
+<span class="sourceLineNo">16854</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16854"></a>
+<span class="sourceLineNo">16855</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.16855"></a>
+<span class="sourceLineNo">16856</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.16856"></a>
+<span class="sourceLineNo">16857</span>                                                        ox = (byte) (iax &gt;&gt; ibx);<a name="line.16857"></a>
+<span class="sourceLineNo">16858</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.16858"></a>
+<span class="sourceLineNo">16859</span>                                                }<a name="line.16859"></a>
+<span class="sourceLineNo">16860</span>                                        }<a name="line.16860"></a>
+<span class="sourceLineNo">16861</span>                                }<a name="line.16861"></a>
+<span class="sourceLineNo">16862</span>                        }<a name="line.16862"></a>
+<span class="sourceLineNo">16863</span>                        break;<a name="line.16863"></a>
+<span class="sourceLineNo">16864</span>                case Dataset.ARRAYINT16:<a name="line.16864"></a>
+<span class="sourceLineNo">16865</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.16865"></a>
+<span class="sourceLineNo">16866</span>                        if (is == 1) {<a name="line.16866"></a>
+<span class="sourceLineNo">16867</span>                                {<a name="line.16867"></a>
+<span class="sourceLineNo">16868</span>                                        while (it.hasNext()) {<a name="line.16868"></a>
+<span class="sourceLineNo">16869</span>                                                final long iax = it.aLong;<a name="line.16869"></a>
+<span class="sourceLineNo">16870</span>                                                final long ibx = it.bLong;<a name="line.16870"></a>
+<span class="sourceLineNo">16871</span>                                                short ox;<a name="line.16871"></a>
+<span class="sourceLineNo">16872</span>                                                ox = (short) (iax &gt;&gt; ibx);<a name="line.16872"></a>
+<span class="sourceLineNo">16873</span>                                                oai16data[it.oIndex] = ox;<a name="line.16873"></a>
+<span class="sourceLineNo">16874</span>                                        }<a name="line.16874"></a>
+<span class="sourceLineNo">16875</span>                                }<a name="line.16875"></a>
+<span class="sourceLineNo">16876</span>                        } else if (as &lt; bs) {<a name="line.16876"></a>
+<span class="sourceLineNo">16877</span>                                {<a name="line.16877"></a>
+<span class="sourceLineNo">16878</span>                                        while (it.hasNext()) {<a name="line.16878"></a>
+<span class="sourceLineNo">16879</span>                                                final long iax = it.aLong;<a name="line.16879"></a>
+<span class="sourceLineNo">16880</span>                                                long ibx = it.bLong;<a name="line.16880"></a>
+<span class="sourceLineNo">16881</span>                                                short ox;<a name="line.16881"></a>
+<span class="sourceLineNo">16882</span>                                                ox = (short) (iax &gt;&gt; ibx);<a name="line.16882"></a>
+<span class="sourceLineNo">16883</span>                                                oai16data[it.oIndex] = ox;<a name="line.16883"></a>
+<span class="sourceLineNo">16884</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16884"></a>
+<span class="sourceLineNo">16885</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.16885"></a>
+<span class="sourceLineNo">16886</span>                                                        ox = (short) (iax &gt;&gt; ibx);<a name="line.16886"></a>
+<span class="sourceLineNo">16887</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.16887"></a>
+<span class="sourceLineNo">16888</span>                                                }<a name="line.16888"></a>
+<span class="sourceLineNo">16889</span>                                        }<a name="line.16889"></a>
+<span class="sourceLineNo">16890</span>                                }<a name="line.16890"></a>
+<span class="sourceLineNo">16891</span>                        } else if (as &gt; bs) {<a name="line.16891"></a>
+<span class="sourceLineNo">16892</span>                                {<a name="line.16892"></a>
+<span class="sourceLineNo">16893</span>                                        while (it.hasNext()) {<a name="line.16893"></a>
+<span class="sourceLineNo">16894</span>                                                long iax = it.aLong;<a name="line.16894"></a>
+<span class="sourceLineNo">16895</span>                                                final long ibx = it.bLong;<a name="line.16895"></a>
+<span class="sourceLineNo">16896</span>                                                short ox;<a name="line.16896"></a>
+<span class="sourceLineNo">16897</span>                                                ox = (short) (iax &gt;&gt; ibx);<a name="line.16897"></a>
+<span class="sourceLineNo">16898</span>                                                oai16data[it.oIndex] = ox;<a name="line.16898"></a>
+<span class="sourceLineNo">16899</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16899"></a>
+<span class="sourceLineNo">16900</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.16900"></a>
+<span class="sourceLineNo">16901</span>                                                        ox = (short) (iax &gt;&gt; ibx);<a name="line.16901"></a>
+<span class="sourceLineNo">16902</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.16902"></a>
+<span class="sourceLineNo">16903</span>                                                }<a name="line.16903"></a>
+<span class="sourceLineNo">16904</span>                                        }<a name="line.16904"></a>
+<span class="sourceLineNo">16905</span>                                }<a name="line.16905"></a>
+<span class="sourceLineNo">16906</span>                        } else if (as == 1) {<a name="line.16906"></a>
+<span class="sourceLineNo">16907</span>                                {<a name="line.16907"></a>
+<span class="sourceLineNo">16908</span>                                        while (it.hasNext()) {<a name="line.16908"></a>
+<span class="sourceLineNo">16909</span>                                                final long iax = it.aLong;<a name="line.16909"></a>
+<span class="sourceLineNo">16910</span>                                                final long ibx = it.bLong;<a name="line.16910"></a>
+<span class="sourceLineNo">16911</span>                                                short ox;<a name="line.16911"></a>
+<span class="sourceLineNo">16912</span>                                                ox = (short) (iax &gt;&gt; ibx);<a name="line.16912"></a>
+<span class="sourceLineNo">16913</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.16913"></a>
+<span class="sourceLineNo">16914</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.16914"></a>
+<span class="sourceLineNo">16915</span>                                                }<a name="line.16915"></a>
+<span class="sourceLineNo">16916</span>                                        }<a name="line.16916"></a>
+<span class="sourceLineNo">16917</span>                                }<a name="line.16917"></a>
+<span class="sourceLineNo">16918</span>                        } else {<a name="line.16918"></a>
+<span class="sourceLineNo">16919</span>                                {<a name="line.16919"></a>
+<span class="sourceLineNo">16920</span>                                        while (it.hasNext()) {<a name="line.16920"></a>
+<span class="sourceLineNo">16921</span>                                                long iax = it.aLong;<a name="line.16921"></a>
+<span class="sourceLineNo">16922</span>                                                long ibx = it.bLong;<a name="line.16922"></a>
+<span class="sourceLineNo">16923</span>                                                short ox;<a name="line.16923"></a>
+<span class="sourceLineNo">16924</span>                                                ox = (short) (iax &gt;&gt; ibx);<a name="line.16924"></a>
+<span class="sourceLineNo">16925</span>                                                oai16data[it.oIndex] = ox;<a name="line.16925"></a>
+<span class="sourceLineNo">16926</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16926"></a>
+<span class="sourceLineNo">16927</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.16927"></a>
+<span class="sourceLineNo">16928</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.16928"></a>
+<span class="sourceLineNo">16929</span>                                                        ox = (short) (iax &gt;&gt; ibx);<a name="line.16929"></a>
+<span class="sourceLineNo">16930</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.16930"></a>
+<span class="sourceLineNo">16931</span>                                                }<a name="line.16931"></a>
+<span class="sourceLineNo">16932</span>                                        }<a name="line.16932"></a>
+<span class="sourceLineNo">16933</span>                                }<a name="line.16933"></a>
+<span class="sourceLineNo">16934</span>                        }<a name="line.16934"></a>
+<span class="sourceLineNo">16935</span>                        break;<a name="line.16935"></a>
+<span class="sourceLineNo">16936</span>                case Dataset.ARRAYINT64:<a name="line.16936"></a>
+<span class="sourceLineNo">16937</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.16937"></a>
+<span class="sourceLineNo">16938</span>                        if (is == 1) {<a name="line.16938"></a>
+<span class="sourceLineNo">16939</span>                                {<a name="line.16939"></a>
+<span class="sourceLineNo">16940</span>                                        while (it.hasNext()) {<a name="line.16940"></a>
+<span class="sourceLineNo">16941</span>                                                final long iax = it.aLong;<a name="line.16941"></a>
+<span class="sourceLineNo">16942</span>                                                final long ibx = it.bLong;<a name="line.16942"></a>
+<span class="sourceLineNo">16943</span>                                                long ox;<a name="line.16943"></a>
+<span class="sourceLineNo">16944</span>                                                ox = (iax &gt;&gt; ibx);<a name="line.16944"></a>
+<span class="sourceLineNo">16945</span>                                                oai64data[it.oIndex] = ox;<a name="line.16945"></a>
+<span class="sourceLineNo">16946</span>                                        }<a name="line.16946"></a>
+<span class="sourceLineNo">16947</span>                                }<a name="line.16947"></a>
+<span class="sourceLineNo">16948</span>                        } else if (as &lt; bs) {<a name="line.16948"></a>
+<span class="sourceLineNo">16949</span>                                {<a name="line.16949"></a>
+<span class="sourceLineNo">16950</span>                                        while (it.hasNext()) {<a name="line.16950"></a>
+<span class="sourceLineNo">16951</span>                                                final long iax = it.aLong;<a name="line.16951"></a>
+<span class="sourceLineNo">16952</span>                                                long ibx = it.bLong;<a name="line.16952"></a>
+<span class="sourceLineNo">16953</span>                                                long ox;<a name="line.16953"></a>
+<span class="sourceLineNo">16954</span>                                                ox = (iax &gt;&gt; ibx);<a name="line.16954"></a>
+<span class="sourceLineNo">16955</span>                                                oai64data[it.oIndex] = ox;<a name="line.16955"></a>
+<span class="sourceLineNo">16956</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16956"></a>
+<span class="sourceLineNo">16957</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.16957"></a>
+<span class="sourceLineNo">16958</span>                                                        ox = (iax &gt;&gt; ibx);<a name="line.16958"></a>
+<span class="sourceLineNo">16959</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.16959"></a>
+<span class="sourceLineNo">16960</span>                                                }<a name="line.16960"></a>
+<span class="sourceLineNo">16961</span>                                        }<a name="line.16961"></a>
+<span class="sourceLineNo">16962</span>                                }<a name="line.16962"></a>
+<span class="sourceLineNo">16963</span>                        } else if (as &gt; bs) {<a name="line.16963"></a>
+<span class="sourceLineNo">16964</span>                                {<a name="line.16964"></a>
+<span class="sourceLineNo">16965</span>                                        while (it.hasNext()) {<a name="line.16965"></a>
+<span class="sourceLineNo">16966</span>                                                long iax = it.aLong;<a name="line.16966"></a>
+<span class="sourceLineNo">16967</span>                                                final long ibx = it.bLong;<a name="line.16967"></a>
+<span class="sourceLineNo">16968</span>                                                long ox;<a name="line.16968"></a>
+<span class="sourceLineNo">16969</span>                                                ox = (iax &gt;&gt; ibx);<a name="line.16969"></a>
+<span class="sourceLineNo">16970</span>                                                oai64data[it.oIndex] = ox;<a name="line.16970"></a>
+<span class="sourceLineNo">16971</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16971"></a>
+<span class="sourceLineNo">16972</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.16972"></a>
+<span class="sourceLineNo">16973</span>                                                        ox = (iax &gt;&gt; ibx);<a name="line.16973"></a>
+<span class="sourceLineNo">16974</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.16974"></a>
+<span class="sourceLineNo">16975</span>                                                }<a name="line.16975"></a>
+<span class="sourceLineNo">16976</span>                                        }<a name="line.16976"></a>
+<span class="sourceLineNo">16977</span>                                }<a name="line.16977"></a>
+<span class="sourceLineNo">16978</span>                        } else if (as == 1) {<a name="line.16978"></a>
+<span class="sourceLineNo">16979</span>                                {<a name="line.16979"></a>
+<span class="sourceLineNo">16980</span>                                        while (it.hasNext()) {<a name="line.16980"></a>
+<span class="sourceLineNo">16981</span>                                                final long iax = it.aLong;<a name="line.16981"></a>
+<span class="sourceLineNo">16982</span>                                                final long ibx = it.bLong;<a name="line.16982"></a>
+<span class="sourceLineNo">16983</span>                                                long ox;<a name="line.16983"></a>
+<span class="sourceLineNo">16984</span>                                                ox = (iax &gt;&gt; ibx);<a name="line.16984"></a>
+<span class="sourceLineNo">16985</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.16985"></a>
+<span class="sourceLineNo">16986</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.16986"></a>
+<span class="sourceLineNo">16987</span>                                                }<a name="line.16987"></a>
+<span class="sourceLineNo">16988</span>                                        }<a name="line.16988"></a>
+<span class="sourceLineNo">16989</span>                                }<a name="line.16989"></a>
+<span class="sourceLineNo">16990</span>                        } else {<a name="line.16990"></a>
+<span class="sourceLineNo">16991</span>                                {<a name="line.16991"></a>
+<span class="sourceLineNo">16992</span>                                        while (it.hasNext()) {<a name="line.16992"></a>
+<span class="sourceLineNo">16993</span>                                                long iax = it.aLong;<a name="line.16993"></a>
+<span class="sourceLineNo">16994</span>                                                long ibx = it.bLong;<a name="line.16994"></a>
+<span class="sourceLineNo">16995</span>                                                long ox;<a name="line.16995"></a>
+<span class="sourceLineNo">16996</span>                                                ox = (iax &gt;&gt; ibx);<a name="line.16996"></a>
+<span class="sourceLineNo">16997</span>                                                oai64data[it.oIndex] = ox;<a name="line.16997"></a>
+<span class="sourceLineNo">16998</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.16998"></a>
+<span class="sourceLineNo">16999</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.16999"></a>
+<span class="sourceLineNo">17000</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.17000"></a>
+<span class="sourceLineNo">17001</span>                                                        ox = (iax &gt;&gt; ibx);<a name="line.17001"></a>
+<span class="sourceLineNo">17002</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.17002"></a>
+<span class="sourceLineNo">17003</span>                                                }<a name="line.17003"></a>
+<span class="sourceLineNo">17004</span>                                        }<a name="line.17004"></a>
+<span class="sourceLineNo">17005</span>                                }<a name="line.17005"></a>
+<span class="sourceLineNo">17006</span>                        }<a name="line.17006"></a>
+<span class="sourceLineNo">17007</span>                        break;<a name="line.17007"></a>
+<span class="sourceLineNo">17008</span>                case Dataset.ARRAYINT32:<a name="line.17008"></a>
+<span class="sourceLineNo">17009</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.17009"></a>
+<span class="sourceLineNo">17010</span>                        if (is == 1) {<a name="line.17010"></a>
+<span class="sourceLineNo">17011</span>                                {<a name="line.17011"></a>
+<span class="sourceLineNo">17012</span>                                        while (it.hasNext()) {<a name="line.17012"></a>
+<span class="sourceLineNo">17013</span>                                                final long iax = it.aLong;<a name="line.17013"></a>
+<span class="sourceLineNo">17014</span>                                                final long ibx = it.bLong;<a name="line.17014"></a>
+<span class="sourceLineNo">17015</span>                                                int ox;<a name="line.17015"></a>
+<span class="sourceLineNo">17016</span>                                                ox = (int) (iax &gt;&gt; ibx);<a name="line.17016"></a>
+<span class="sourceLineNo">17017</span>                                                oai32data[it.oIndex] = ox;<a name="line.17017"></a>
+<span class="sourceLineNo">17018</span>                                        }<a name="line.17018"></a>
+<span class="sourceLineNo">17019</span>                                }<a name="line.17019"></a>
+<span class="sourceLineNo">17020</span>                        } else if (as &lt; bs) {<a name="line.17020"></a>
+<span class="sourceLineNo">17021</span>                                {<a name="line.17021"></a>
+<span class="sourceLineNo">17022</span>                                        while (it.hasNext()) {<a name="line.17022"></a>
+<span class="sourceLineNo">17023</span>                                                final long iax = it.aLong;<a name="line.17023"></a>
+<span class="sourceLineNo">17024</span>                                                long ibx = it.bLong;<a name="line.17024"></a>
+<span class="sourceLineNo">17025</span>                                                int ox;<a name="line.17025"></a>
+<span class="sourceLineNo">17026</span>                                                ox = (int) (iax &gt;&gt; ibx);<a name="line.17026"></a>
+<span class="sourceLineNo">17027</span>                                                oai32data[it.oIndex] = ox;<a name="line.17027"></a>
+<span class="sourceLineNo">17028</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.17028"></a>
+<span class="sourceLineNo">17029</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.17029"></a>
+<span class="sourceLineNo">17030</span>                                                        ox = (int) (iax &gt;&gt; ibx);<a name="line.17030"></a>
+<span class="sourceLineNo">17031</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.17031"></a>
+<span class="sourceLineNo">17032</span>                                                }<a name="line.17032"></a>
+<span class="sourceLineNo">17033</span>                                        }<a name="line.17033"></a>
+<span class="sourceLineNo">17034</span>                                }<a name="line.17034"></a>
+<span class="sourceLineNo">17035</span>                        } else if (as &gt; bs) {<a name="line.17035"></a>
+<span class="sourceLineNo">17036</span>                                {<a name="line.17036"></a>
+<span class="sourceLineNo">17037</span>                                        while (it.hasNext()) {<a name="line.17037"></a>
+<span class="sourceLineNo">17038</span>                                                long iax = it.aLong;<a name="line.17038"></a>
+<span class="sourceLineNo">17039</span>                                                final long ibx = it.bLong;<a name="line.17039"></a>
+<span class="sourceLineNo">17040</span>                                                int ox;<a name="line.17040"></a>
+<span class="sourceLineNo">17041</span>                                                ox = (int) (iax &gt;&gt; ibx);<a name="line.17041"></a>
+<span class="sourceLineNo">17042</span>                                                oai32data[it.oIndex] = ox;<a name="line.17042"></a>
+<span class="sourceLineNo">17043</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.17043"></a>
+<span class="sourceLineNo">17044</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.17044"></a>
+<span class="sourceLineNo">17045</span>                                                        ox = (int) (iax &gt;&gt; ibx);<a name="line.17045"></a>
+<span class="sourceLineNo">17046</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.17046"></a>
+<span class="sourceLineNo">17047</span>                                                }<a name="line.17047"></a>
+<span class="sourceLineNo">17048</span>                                        }<a name="line.17048"></a>
+<span class="sourceLineNo">17049</span>                                }<a name="line.17049"></a>
+<span class="sourceLineNo">17050</span>                        } else if (as == 1) {<a name="line.17050"></a>
+<span class="sourceLineNo">17051</span>                                {<a name="line.17051"></a>
+<span class="sourceLineNo">17052</span>                                        while (it.hasNext()) {<a name="line.17052"></a>
+<span class="sourceLineNo">17053</span>                                                final long iax = it.aLong;<a name="line.17053"></a>
+<span class="sourceLineNo">17054</span>                                                final long ibx = it.bLong;<a name="line.17054"></a>
+<span class="sourceLineNo">17055</span>                                                int ox;<a name="line.17055"></a>
+<span class="sourceLineNo">17056</span>                                                ox = (int) (iax &gt;&gt; ibx);<a name="line.17056"></a>
+<span class="sourceLineNo">17057</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.17057"></a>
+<span class="sourceLineNo">17058</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.17058"></a>
+<span class="sourceLineNo">17059</span>                                                }<a name="line.17059"></a>
+<span class="sourceLineNo">17060</span>                                        }<a name="line.17060"></a>
+<span class="sourceLineNo">17061</span>                                }<a name="line.17061"></a>
+<span class="sourceLineNo">17062</span>                        } else {<a name="line.17062"></a>
+<span class="sourceLineNo">17063</span>                                {<a name="line.17063"></a>
+<span class="sourceLineNo">17064</span>                                        while (it.hasNext()) {<a name="line.17064"></a>
+<span class="sourceLineNo">17065</span>                                                long iax = it.aLong;<a name="line.17065"></a>
+<span class="sourceLineNo">17066</span>                                                long ibx = it.bLong;<a name="line.17066"></a>
+<span class="sourceLineNo">17067</span>                                                int ox;<a name="line.17067"></a>
+<span class="sourceLineNo">17068</span>                                                ox = (int) (iax &gt;&gt; ibx);<a name="line.17068"></a>
+<span class="sourceLineNo">17069</span>                                                oai32data[it.oIndex] = ox;<a name="line.17069"></a>
+<span class="sourceLineNo">17070</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.17070"></a>
+<span class="sourceLineNo">17071</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.17071"></a>
+<span class="sourceLineNo">17072</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.17072"></a>
+<span class="sourceLineNo">17073</span>                                                        ox = (int) (iax &gt;&gt; ibx);<a name="line.17073"></a>
+<span class="sourceLineNo">17074</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.17074"></a>
+<span class="sourceLineNo">17075</span>                                                }<a name="line.17075"></a>
+<span class="sourceLineNo">17076</span>                                        }<a name="line.17076"></a>
+<span class="sourceLineNo">17077</span>                                }<a name="line.17077"></a>
+<span class="sourceLineNo">17078</span>                        }<a name="line.17078"></a>
+<span class="sourceLineNo">17079</span>                        break;<a name="line.17079"></a>
+<span class="sourceLineNo">17080</span>                default:<a name="line.17080"></a>
+<span class="sourceLineNo">17081</span>                        throw new IllegalArgumentException("rightShift supports integer, compound integer datasets only");<a name="line.17081"></a>
+<span class="sourceLineNo">17082</span>                }<a name="line.17082"></a>
+<span class="sourceLineNo">17083</span><a name="line.17083"></a>
+<span class="sourceLineNo">17084</span>                addBinaryOperatorName(da, db, result, "&gt;&gt;");<a name="line.17084"></a>
+<span class="sourceLineNo">17085</span>                return result;<a name="line.17085"></a>
+<span class="sourceLineNo">17086</span>        }<a name="line.17086"></a>
+<span class="sourceLineNo">17087</span><a name="line.17087"></a>
+<span class="sourceLineNo">17088</span>        /**<a name="line.17088"></a>
+<span class="sourceLineNo">17089</span>         * unsignedRightShift operator<a name="line.17089"></a>
+<span class="sourceLineNo">17090</span>         * @param a<a name="line.17090"></a>
+<span class="sourceLineNo">17091</span>         * @param b<a name="line.17091"></a>
+<span class="sourceLineNo">17092</span>         * @return {@code a &gt;&gt;&gt; b}, bitwise right shift of a by b with zeros added<a name="line.17092"></a>
+<span class="sourceLineNo">17093</span>         */<a name="line.17093"></a>
+<span class="sourceLineNo">17094</span>        public static Dataset unsignedRightShift(final Object a, final Object b) {<a name="line.17094"></a>
+<span class="sourceLineNo">17095</span>                return unsignedRightShift(a, b, null);<a name="line.17095"></a>
+<span class="sourceLineNo">17096</span>        }<a name="line.17096"></a>
+<span class="sourceLineNo">17097</span><a name="line.17097"></a>
+<span class="sourceLineNo">17098</span>        /**<a name="line.17098"></a>
+<span class="sourceLineNo">17099</span>         * unsignedRightShift operator<a name="line.17099"></a>
+<span class="sourceLineNo">17100</span>         * @param a<a name="line.17100"></a>
+<span class="sourceLineNo">17101</span>         * @param b<a name="line.17101"></a>
+<span class="sourceLineNo">17102</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.17102"></a>
+<span class="sourceLineNo">17103</span>         * @return {@code a &gt;&gt;&gt; b}, bitwise right shift of a by b with zeros added<a name="line.17103"></a>
+<span class="sourceLineNo">17104</span>         */<a name="line.17104"></a>
+<span class="sourceLineNo">17105</span>        public static Dataset unsignedRightShift(final Object a, final Object b, final Dataset o) {<a name="line.17105"></a>
+<span class="sourceLineNo">17106</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.17106"></a>
+<span class="sourceLineNo">17107</span>                Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.17107"></a>
+<span class="sourceLineNo">17108</span>                BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.17108"></a>
+<span class="sourceLineNo">17109</span>                it.setOutputDouble(false);<a name="line.17109"></a>
+<span class="sourceLineNo">17110</span>                final long unsignedMask;<a name="line.17110"></a>
+<span class="sourceLineNo">17111</span>                final Dataset result = it.getOutput();<a name="line.17111"></a>
+<span class="sourceLineNo">17112</span>                if (!result.isComplex()) {<a name="line.17112"></a>
+<span class="sourceLineNo">17113</span>                        boolean change = false;<a name="line.17113"></a>
+<span class="sourceLineNo">17114</span>                        if (da.isComplex()) {<a name="line.17114"></a>
+<span class="sourceLineNo">17115</span>                                da = da.getRealView();<a name="line.17115"></a>
+<span class="sourceLineNo">17116</span>                                change = true;<a name="line.17116"></a>
+<span class="sourceLineNo">17117</span>                        }<a name="line.17117"></a>
+<span class="sourceLineNo">17118</span>                        if (db.isComplex()) {<a name="line.17118"></a>
+<span class="sourceLineNo">17119</span>                                db = db.getRealView();<a name="line.17119"></a>
+<span class="sourceLineNo">17120</span>                                change = true;<a name="line.17120"></a>
+<span class="sourceLineNo">17121</span>                        }<a name="line.17121"></a>
+<span class="sourceLineNo">17122</span>                        if (change) {<a name="line.17122"></a>
+<span class="sourceLineNo">17123</span>                                it = BroadcastIterator.createIterator(da, db, result, true);<a name="line.17123"></a>
+<span class="sourceLineNo">17124</span>                                it.setOutputDouble(false);<a name="line.17124"></a>
+<span class="sourceLineNo">17125</span>                        }<a name="line.17125"></a>
+<span class="sourceLineNo">17126</span>                }<a name="line.17126"></a>
+<span class="sourceLineNo">17127</span>                final int is = result.getElementsPerItem();<a name="line.17127"></a>
+<span class="sourceLineNo">17128</span>                final int as = da.getElementsPerItem();<a name="line.17128"></a>
+<span class="sourceLineNo">17129</span>                final int bs = db.getElementsPerItem();<a name="line.17129"></a>
+<span class="sourceLineNo">17130</span>                final int dt = result.getDType();<a name="line.17130"></a>
+<span class="sourceLineNo">17131</span><a name="line.17131"></a>
+<span class="sourceLineNo">17132</span>                switch(dt) {<a name="line.17132"></a>
+<span class="sourceLineNo">17133</span>                case Dataset.INT8:<a name="line.17133"></a>
+<span class="sourceLineNo">17134</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.17134"></a>
+<span class="sourceLineNo">17135</span>                        unsignedMask = 0xffL;<a name="line.17135"></a>
+<span class="sourceLineNo">17136</span>                        {<a name="line.17136"></a>
+<span class="sourceLineNo">17137</span>                                while (it.hasNext()) {<a name="line.17137"></a>
+<span class="sourceLineNo">17138</span>                                        final long iax = it.aLong;<a name="line.17138"></a>
+<span class="sourceLineNo">17139</span>                                        final long ibx = it.bLong;<a name="line.17139"></a>
+<span class="sourceLineNo">17140</span>                                        byte ox;<a name="line.17140"></a>
+<span class="sourceLineNo">17141</span>                                        ox = (byte) ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17141"></a>
+<span class="sourceLineNo">17142</span>                                        oi8data[it.oIndex] = ox;<a name="line.17142"></a>
+<span class="sourceLineNo">17143</span>                                }<a name="line.17143"></a>
+<span class="sourceLineNo">17144</span>                        }<a name="line.17144"></a>
+<span class="sourceLineNo">17145</span>                        break;<a name="line.17145"></a>
+<span class="sourceLineNo">17146</span>                case Dataset.INT16:<a name="line.17146"></a>
+<span class="sourceLineNo">17147</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.17147"></a>
+<span class="sourceLineNo">17148</span>                        unsignedMask = 0xffffL;<a name="line.17148"></a>
+<span class="sourceLineNo">17149</span>                        {<a name="line.17149"></a>
+<span class="sourceLineNo">17150</span>                                while (it.hasNext()) {<a name="line.17150"></a>
+<span class="sourceLineNo">17151</span>                                        final long iax = it.aLong;<a name="line.17151"></a>
+<span class="sourceLineNo">17152</span>                                        final long ibx = it.bLong;<a name="line.17152"></a>
+<span class="sourceLineNo">17153</span>                                        short ox;<a name="line.17153"></a>
+<span class="sourceLineNo">17154</span>                                        ox = (short) ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17154"></a>
+<span class="sourceLineNo">17155</span>                                        oi16data[it.oIndex] = ox;<a name="line.17155"></a>
+<span class="sourceLineNo">17156</span>                                }<a name="line.17156"></a>
+<span class="sourceLineNo">17157</span>                        }<a name="line.17157"></a>
+<span class="sourceLineNo">17158</span>                        break;<a name="line.17158"></a>
+<span class="sourceLineNo">17159</span>                case Dataset.INT64:<a name="line.17159"></a>
+<span class="sourceLineNo">17160</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.17160"></a>
+<span class="sourceLineNo">17161</span>                        unsignedMask = 0xffffffffffffffffL;<a name="line.17161"></a>
+<span class="sourceLineNo">17162</span>                        {<a name="line.17162"></a>
+<span class="sourceLineNo">17163</span>                                while (it.hasNext()) {<a name="line.17163"></a>
+<span class="sourceLineNo">17164</span>                                        final long iax = it.aLong;<a name="line.17164"></a>
+<span class="sourceLineNo">17165</span>                                        final long ibx = it.bLong;<a name="line.17165"></a>
+<span class="sourceLineNo">17166</span>                                        long ox;<a name="line.17166"></a>
+<span class="sourceLineNo">17167</span>                                        ox = ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17167"></a>
+<span class="sourceLineNo">17168</span>                                        oi64data[it.oIndex] = ox;<a name="line.17168"></a>
+<span class="sourceLineNo">17169</span>                                }<a name="line.17169"></a>
+<span class="sourceLineNo">17170</span>                        }<a name="line.17170"></a>
+<span class="sourceLineNo">17171</span>                        break;<a name="line.17171"></a>
+<span class="sourceLineNo">17172</span>                case Dataset.INT32:<a name="line.17172"></a>
+<span class="sourceLineNo">17173</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.17173"></a>
+<span class="sourceLineNo">17174</span>                        unsignedMask = 0xffffffffL;<a name="line.17174"></a>
+<span class="sourceLineNo">17175</span>                        {<a name="line.17175"></a>
+<span class="sourceLineNo">17176</span>                                while (it.hasNext()) {<a name="line.17176"></a>
+<span class="sourceLineNo">17177</span>                                        final long iax = it.aLong;<a name="line.17177"></a>
+<span class="sourceLineNo">17178</span>                                        final long ibx = it.bLong;<a name="line.17178"></a>
+<span class="sourceLineNo">17179</span>                                        int ox;<a name="line.17179"></a>
+<span class="sourceLineNo">17180</span>                                        ox = (int) ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17180"></a>
+<span class="sourceLineNo">17181</span>                                        oi32data[it.oIndex] = ox;<a name="line.17181"></a>
+<span class="sourceLineNo">17182</span>                                }<a name="line.17182"></a>
+<span class="sourceLineNo">17183</span>                        }<a name="line.17183"></a>
+<span class="sourceLineNo">17184</span>                        break;<a name="line.17184"></a>
+<span class="sourceLineNo">17185</span>                case Dataset.ARRAYINT8:<a name="line.17185"></a>
+<span class="sourceLineNo">17186</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.17186"></a>
+<span class="sourceLineNo">17187</span>                        unsignedMask = 0xffL;<a name="line.17187"></a>
+<span class="sourceLineNo">17188</span>                        if (is == 1) {<a name="line.17188"></a>
+<span class="sourceLineNo">17189</span>                                {<a name="line.17189"></a>
+<span class="sourceLineNo">17190</span>                                        while (it.hasNext()) {<a name="line.17190"></a>
+<span class="sourceLineNo">17191</span>                                                final long iax = it.aLong;<a name="line.17191"></a>
+<span class="sourceLineNo">17192</span>                                                final long ibx = it.bLong;<a name="line.17192"></a>
+<span class="sourceLineNo">17193</span>                                                byte ox;<a name="line.17193"></a>
+<span class="sourceLineNo">17194</span>                                                ox = (byte) ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17194"></a>
+<span class="sourceLineNo">17195</span>                                                oai8data[it.oIndex] = ox;<a name="line.17195"></a>
+<span class="sourceLineNo">17196</span>                                        }<a name="line.17196"></a>
+<span class="sourceLineNo">17197</span>                                }<a name="line.17197"></a>
+<span class="sourceLineNo">17198</span>                        } else if (as &lt; bs) {<a name="line.17198"></a>
+<span class="sourceLineNo">17199</span>                                {<a name="line.17199"></a>
+<span class="sourceLineNo">17200</span>                                        while (it.hasNext()) {<a name="line.17200"></a>
+<span class="sourceLineNo">17201</span>                                                final long iax = it.aLong;<a name="line.17201"></a>
+<span class="sourceLineNo">17202</span>                                                long ibx = it.bLong;<a name="line.17202"></a>
+<span class="sourceLineNo">17203</span>                                                byte ox;<a name="line.17203"></a>
+<span class="sourceLineNo">17204</span>                                                ox = (byte) ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17204"></a>
+<span class="sourceLineNo">17205</span>                                                oai8data[it.oIndex] = ox;<a name="line.17205"></a>
+<span class="sourceLineNo">17206</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.17206"></a>
+<span class="sourceLineNo">17207</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.17207"></a>
+<span class="sourceLineNo">17208</span>                                                        ox = (byte) ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17208"></a>
+<span class="sourceLineNo">17209</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.17209"></a>
+<span class="sourceLineNo">17210</span>                                                }<a name="line.17210"></a>
+<span class="sourceLineNo">17211</span>                                        }<a name="line.17211"></a>
+<span class="sourceLineNo">17212</span>                                }<a name="line.17212"></a>
+<span class="sourceLineNo">17213</span>                        } else if (as &gt; bs) {<a name="line.17213"></a>
+<span class="sourceLineNo">17214</span>                                {<a name="line.17214"></a>
+<span class="sourceLineNo">17215</span>                                        while (it.hasNext()) {<a name="line.17215"></a>
+<span class="sourceLineNo">17216</span>                                                long iax = it.aLong;<a name="line.17216"></a>
+<span class="sourceLineNo">17217</span>                                                final long ibx = it.bLong;<a name="line.17217"></a>
+<span class="sourceLineNo">17218</span>                                                byte ox;<a name="line.17218"></a>
+<span class="sourceLineNo">17219</span>                                                ox = (byte) ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17219"></a>
+<span class="sourceLineNo">17220</span>                                                oai8data[it.oIndex] = ox;<a name="line.17220"></a>
+<span class="sourceLineNo">17221</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.17221"></a>
+<span class="sourceLineNo">17222</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.17222"></a>
+<span class="sourceLineNo">17223</span>                                                        ox = (byte) ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17223"></a>
+<span class="sourceLineNo">17224</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.17224"></a>
+<span class="sourceLineNo">17225</span>                                                }<a name="line.17225"></a>
+<span class="sourceLineNo">17226</span>                                        }<a name="line.17226"></a>
+<span class="sourceLineNo">17227</span>                                }<a name="line.17227"></a>
+<span class="sourceLineNo">17228</span>                        } else if (as == 1) {<a name="line.17228"></a>
+<span class="sourceLineNo">17229</span>                                {<a name="line.17229"></a>
+<span class="sourceLineNo">17230</span>                                        while (it.hasNext()) {<a name="line.17230"></a>
+<span class="sourceLineNo">17231</span>                                                final long iax = it.aLong;<a name="line.17231"></a>
+<span class="sourceLineNo">17232</span>                                                final long ibx = it.bLong;<a name="line.17232"></a>
+<span class="sourceLineNo">17233</span>                                                byte ox;<a name="line.17233"></a>
+<span class="sourceLineNo">17234</span>                                                ox = (byte) ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17234"></a>
+<span class="sourceLineNo">17235</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.17235"></a>
+<span class="sourceLineNo">17236</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.17236"></a>
+<span class="sourceLineNo">17237</span>                                                }<a name="line.17237"></a>
+<span class="sourceLineNo">17238</span>                                        }<a name="line.17238"></a>
+<span class="sourceLineNo">17239</span>                                }<a name="line.17239"></a>
+<span class="sourceLineNo">17240</span>                        } else {<a name="line.17240"></a>
+<span class="sourceLineNo">17241</span>                                {<a name="line.17241"></a>
+<span class="sourceLineNo">17242</span>                                        while (it.hasNext()) {<a name="line.17242"></a>
+<span class="sourceLineNo">17243</span>                                                long iax = it.aLong;<a name="line.17243"></a>
+<span class="sourceLineNo">17244</span>                                                long ibx = it.bLong;<a name="line.17244"></a>
+<span class="sourceLineNo">17245</span>                                                byte ox;<a name="line.17245"></a>
+<span class="sourceLineNo">17246</span>                                                ox = (byte) ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17246"></a>
+<span class="sourceLineNo">17247</span>                                                oai8data[it.oIndex] = ox;<a name="line.17247"></a>
+<span class="sourceLineNo">17248</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.17248"></a>
+<span class="sourceLineNo">17249</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.17249"></a>
+<span class="sourceLineNo">17250</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.17250"></a>
+<span class="sourceLineNo">17251</span>                                                        ox = (byte) ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17251"></a>
+<span class="sourceLineNo">17252</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.17252"></a>
+<span class="sourceLineNo">17253</span>                                                }<a name="line.17253"></a>
+<span class="sourceLineNo">17254</span>                                        }<a name="line.17254"></a>
+<span class="sourceLineNo">17255</span>                                }<a name="line.17255"></a>
+<span class="sourceLineNo">17256</span>                        }<a name="line.17256"></a>
+<span class="sourceLineNo">17257</span>                        break;<a name="line.17257"></a>
+<span class="sourceLineNo">17258</span>                case Dataset.ARRAYINT16:<a name="line.17258"></a>
+<span class="sourceLineNo">17259</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.17259"></a>
+<span class="sourceLineNo">17260</span>                        unsignedMask = 0xffffL;<a name="line.17260"></a>
+<span class="sourceLineNo">17261</span>                        if (is == 1) {<a name="line.17261"></a>
+<span class="sourceLineNo">17262</span>                                {<a name="line.17262"></a>
+<span class="sourceLineNo">17263</span>                                        while (it.hasNext()) {<a name="line.17263"></a>
+<span class="sourceLineNo">17264</span>                                                final long iax = it.aLong;<a name="line.17264"></a>
+<span class="sourceLineNo">17265</span>                                                final long ibx = it.bLong;<a name="line.17265"></a>
+<span class="sourceLineNo">17266</span>                                                short ox;<a name="line.17266"></a>
+<span class="sourceLineNo">17267</span>                                                ox = (short) ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17267"></a>
+<span class="sourceLineNo">17268</span>                                                oai16data[it.oIndex] = ox;<a name="line.17268"></a>
+<span class="sourceLineNo">17269</span>                                        }<a name="line.17269"></a>
+<span class="sourceLineNo">17270</span>                                }<a name="line.17270"></a>
+<span class="sourceLineNo">17271</span>                        } else if (as &lt; bs) {<a name="line.17271"></a>
+<span class="sourceLineNo">17272</span>                                {<a name="line.17272"></a>
+<span class="sourceLineNo">17273</span>                                        while (it.hasNext()) {<a name="line.17273"></a>
+<span class="sourceLineNo">17274</span>                                                final long iax = it.aLong;<a name="line.17274"></a>
+<span class="sourceLineNo">17275</span>                                                long ibx = it.bLong;<a name="line.17275"></a>
+<span class="sourceLineNo">17276</span>                                                short ox;<a name="line.17276"></a>
+<span class="sourceLineNo">17277</span>                                                ox = (short) ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17277"></a>
+<span class="sourceLineNo">17278</span>                                                oai16data[it.oIndex] = ox;<a name="line.17278"></a>
+<span class="sourceLineNo">17279</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.17279"></a>
+<span class="sourceLineNo">17280</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.17280"></a>
+<span class="sourceLineNo">17281</span>                                                        ox = (short) ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17281"></a>
+<span class="sourceLineNo">17282</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.17282"></a>
+<span class="sourceLineNo">17283</span>                                                }<a name="line.17283"></a>
+<span class="sourceLineNo">17284</span>                                        }<a name="line.17284"></a>
+<span class="sourceLineNo">17285</span>                                }<a name="line.17285"></a>
+<span class="sourceLineNo">17286</span>                        } else if (as &gt; bs) {<a name="line.17286"></a>
+<span class="sourceLineNo">17287</span>                                {<a name="line.17287"></a>
+<span class="sourceLineNo">17288</span>                                        while (it.hasNext()) {<a name="line.17288"></a>
+<span class="sourceLineNo">17289</span>                                                long iax = it.aLong;<a name="line.17289"></a>
+<span class="sourceLineNo">17290</span>                                                final long ibx = it.bLong;<a name="line.17290"></a>
+<span class="sourceLineNo">17291</span>                                                short ox;<a name="line.17291"></a>
+<span class="sourceLineNo">17292</span>                                                ox = (short) ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17292"></a>
+<span class="sourceLineNo">17293</span>                                                oai16data[it.oIndex] = ox;<a name="line.17293"></a>
+<span class="sourceLineNo">17294</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.17294"></a>
+<span class="sourceLineNo">17295</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.17295"></a>
+<span class="sourceLineNo">17296</span>                                                        ox = (short) ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17296"></a>
+<span class="sourceLineNo">17297</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.17297"></a>
+<span class="sourceLineNo">17298</span>                                                }<a name="line.17298"></a>
+<span class="sourceLineNo">17299</span>                                        }<a name="line.17299"></a>
+<span class="sourceLineNo">17300</span>                                }<a name="line.17300"></a>
+<span class="sourceLineNo">17301</span>                        } else if (as == 1) {<a name="line.17301"></a>
+<span class="sourceLineNo">17302</span>                                {<a name="line.17302"></a>
+<span class="sourceLineNo">17303</span>                                        while (it.hasNext()) {<a name="line.17303"></a>
+<span class="sourceLineNo">17304</span>                                                final long iax = it.aLong;<a name="line.17304"></a>
+<span class="sourceLineNo">17305</span>                                                final long ibx = it.bLong;<a name="line.17305"></a>
+<span class="sourceLineNo">17306</span>                                                short ox;<a name="line.17306"></a>
+<span class="sourceLineNo">17307</span>                                                ox = (short) ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17307"></a>
+<span class="sourceLineNo">17308</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.17308"></a>
+<span class="sourceLineNo">17309</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.17309"></a>
+<span class="sourceLineNo">17310</span>                                                }<a name="line.17310"></a>
+<span class="sourceLineNo">17311</span>                                        }<a name="line.17311"></a>
+<span class="sourceLineNo">17312</span>                                }<a name="line.17312"></a>
+<span class="sourceLineNo">17313</span>                        } else {<a name="line.17313"></a>
+<span class="sourceLineNo">17314</span>                                {<a name="line.17314"></a>
+<span class="sourceLineNo">17315</span>                                        while (it.hasNext()) {<a name="line.17315"></a>
+<span class="sourceLineNo">17316</span>                                                long iax = it.aLong;<a name="line.17316"></a>
+<span class="sourceLineNo">17317</span>                                                long ibx = it.bLong;<a name="line.17317"></a>
+<span class="sourceLineNo">17318</span>                                                short ox;<a name="line.17318"></a>
+<span class="sourceLineNo">17319</span>                                                ox = (short) ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17319"></a>
+<span class="sourceLineNo">17320</span>                                                oai16data[it.oIndex] = ox;<a name="line.17320"></a>
+<span class="sourceLineNo">17321</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.17321"></a>
+<span class="sourceLineNo">17322</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.17322"></a>
+<span class="sourceLineNo">17323</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.17323"></a>
+<span class="sourceLineNo">17324</span>                                                        ox = (short) ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17324"></a>
+<span class="sourceLineNo">17325</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.17325"></a>
+<span class="sourceLineNo">17326</span>                                                }<a name="line.17326"></a>
+<span class="sourceLineNo">17327</span>                                        }<a name="line.17327"></a>
+<span class="sourceLineNo">17328</span>                                }<a name="line.17328"></a>
+<span class="sourceLineNo">17329</span>                        }<a name="line.17329"></a>
+<span class="sourceLineNo">17330</span>                        break;<a name="line.17330"></a>
+<span class="sourceLineNo">17331</span>                case Dataset.ARRAYINT64:<a name="line.17331"></a>
+<span class="sourceLineNo">17332</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.17332"></a>
+<span class="sourceLineNo">17333</span>                        unsignedMask = 0xffffffffffffffffL;<a name="line.17333"></a>
+<span class="sourceLineNo">17334</span>                        if (is == 1) {<a name="line.17334"></a>
+<span class="sourceLineNo">17335</span>                                {<a name="line.17335"></a>
+<span class="sourceLineNo">17336</span>                                        while (it.hasNext()) {<a name="line.17336"></a>
+<span class="sourceLineNo">17337</span>                                                final long iax = it.aLong;<a name="line.17337"></a>
+<span class="sourceLineNo">17338</span>                                                final long ibx = it.bLong;<a name="line.17338"></a>
+<span class="sourceLineNo">17339</span>                                                long ox;<a name="line.17339"></a>
+<span class="sourceLineNo">17340</span>                                                ox = ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17340"></a>
+<span class="sourceLineNo">17341</span>                                                oai64data[it.oIndex] = ox;<a name="line.17341"></a>
+<span class="sourceLineNo">17342</span>                                        }<a name="line.17342"></a>
+<span class="sourceLineNo">17343</span>                                }<a name="line.17343"></a>
+<span class="sourceLineNo">17344</span>                        } else if (as &lt; bs) {<a name="line.17344"></a>
+<span class="sourceLineNo">17345</span>                                {<a name="line.17345"></a>
+<span class="sourceLineNo">17346</span>                                        while (it.hasNext()) {<a name="line.17346"></a>
+<span class="sourceLineNo">17347</span>                                                final long iax = it.aLong;<a name="line.17347"></a>
+<span class="sourceLineNo">17348</span>                                                long ibx = it.bLong;<a name="line.17348"></a>
+<span class="sourceLineNo">17349</span>                                                long ox;<a name="line.17349"></a>
+<span class="sourceLineNo">17350</span>                                                ox = ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17350"></a>
+<span class="sourceLineNo">17351</span>                                                oai64data[it.oIndex] = ox;<a name="line.17351"></a>
+<span class="sourceLineNo">17352</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.17352"></a>
+<span class="sourceLineNo">17353</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.17353"></a>
+<span class="sourceLineNo">17354</span>                                                        ox = ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17354"></a>
+<span class="sourceLineNo">17355</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.17355"></a>
+<span class="sourceLineNo">17356</span>                                                }<a name="line.17356"></a>
+<span class="sourceLineNo">17357</span>                                        }<a name="line.17357"></a>
+<span class="sourceLineNo">17358</span>                                }<a name="line.17358"></a>
+<span class="sourceLineNo">17359</span>                        } else if (as &gt; bs) {<a name="line.17359"></a>
+<span class="sourceLineNo">17360</span>                                {<a name="line.17360"></a>
+<span class="sourceLineNo">17361</span>                                        while (it.hasNext()) {<a name="line.17361"></a>
+<span class="sourceLineNo">17362</span>                                                long iax = it.aLong;<a name="line.17362"></a>
+<span class="sourceLineNo">17363</span>                                                final long ibx = it.bLong;<a name="line.17363"></a>
+<span class="sourceLineNo">17364</span>                                                long ox;<a name="line.17364"></a>
+<span class="sourceLineNo">17365</span>                                                ox = ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17365"></a>
+<span class="sourceLineNo">17366</span>                                                oai64data[it.oIndex] = ox;<a name="line.17366"></a>
+<span class="sourceLineNo">17367</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.17367"></a>
+<span class="sourceLineNo">17368</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.17368"></a>
+<span class="sourceLineNo">17369</span>                                                        ox = ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17369"></a>
+<span class="sourceLineNo">17370</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.17370"></a>
+<span class="sourceLineNo">17371</span>                                                }<a name="line.17371"></a>
+<span class="sourceLineNo">17372</span>                                        }<a name="line.17372"></a>
+<span class="sourceLineNo">17373</span>                                }<a name="line.17373"></a>
+<span class="sourceLineNo">17374</span>                        } else if (as == 1) {<a name="line.17374"></a>
+<span class="sourceLineNo">17375</span>                                {<a name="line.17375"></a>
+<span class="sourceLineNo">17376</span>                                        while (it.hasNext()) {<a name="line.17376"></a>
+<span class="sourceLineNo">17377</span>                                                final long iax = it.aLong;<a name="line.17377"></a>
+<span class="sourceLineNo">17378</span>                                                final long ibx = it.bLong;<a name="line.17378"></a>
+<span class="sourceLineNo">17379</span>                                                long ox;<a name="line.17379"></a>
+<span class="sourceLineNo">17380</span>                                                ox = ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17380"></a>
+<span class="sourceLineNo">17381</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.17381"></a>
+<span class="sourceLineNo">17382</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.17382"></a>
+<span class="sourceLineNo">17383</span>                                                }<a name="line.17383"></a>
+<span class="sourceLineNo">17384</span>                                        }<a name="line.17384"></a>
+<span class="sourceLineNo">17385</span>                                }<a name="line.17385"></a>
+<span class="sourceLineNo">17386</span>                        } else {<a name="line.17386"></a>
+<span class="sourceLineNo">17387</span>                                {<a name="line.17387"></a>
+<span class="sourceLineNo">17388</span>                                        while (it.hasNext()) {<a name="line.17388"></a>
+<span class="sourceLineNo">17389</span>                                                long iax = it.aLong;<a name="line.17389"></a>
+<span class="sourceLineNo">17390</span>                                                long ibx = it.bLong;<a name="line.17390"></a>
+<span class="sourceLineNo">17391</span>                                                long ox;<a name="line.17391"></a>
+<span class="sourceLineNo">17392</span>                                                ox = ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17392"></a>
+<span class="sourceLineNo">17393</span>                                                oai64data[it.oIndex] = ox;<a name="line.17393"></a>
+<span class="sourceLineNo">17394</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.17394"></a>
+<span class="sourceLineNo">17395</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.17395"></a>
+<span class="sourceLineNo">17396</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.17396"></a>
+<span class="sourceLineNo">17397</span>                                                        ox = ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17397"></a>
+<span class="sourceLineNo">17398</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.17398"></a>
+<span class="sourceLineNo">17399</span>                                                }<a name="line.17399"></a>
+<span class="sourceLineNo">17400</span>                                        }<a name="line.17400"></a>
+<span class="sourceLineNo">17401</span>                                }<a name="line.17401"></a>
+<span class="sourceLineNo">17402</span>                        }<a name="line.17402"></a>
+<span class="sourceLineNo">17403</span>                        break;<a name="line.17403"></a>
+<span class="sourceLineNo">17404</span>                case Dataset.ARRAYINT32:<a name="line.17404"></a>
+<span class="sourceLineNo">17405</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.17405"></a>
+<span class="sourceLineNo">17406</span>                        unsignedMask = 0xffffffffL;<a name="line.17406"></a>
+<span class="sourceLineNo">17407</span>                        if (is == 1) {<a name="line.17407"></a>
+<span class="sourceLineNo">17408</span>                                {<a name="line.17408"></a>
+<span class="sourceLineNo">17409</span>                                        while (it.hasNext()) {<a name="line.17409"></a>
+<span class="sourceLineNo">17410</span>                                                final long iax = it.aLong;<a name="line.17410"></a>
+<span class="sourceLineNo">17411</span>                                                final long ibx = it.bLong;<a name="line.17411"></a>
+<span class="sourceLineNo">17412</span>                                                int ox;<a name="line.17412"></a>
+<span class="sourceLineNo">17413</span>                                                ox = (int) ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17413"></a>
+<span class="sourceLineNo">17414</span>                                                oai32data[it.oIndex] = ox;<a name="line.17414"></a>
+<span class="sourceLineNo">17415</span>                                        }<a name="line.17415"></a>
+<span class="sourceLineNo">17416</span>                                }<a name="line.17416"></a>
+<span class="sourceLineNo">17417</span>                        } else if (as &lt; bs) {<a name="line.17417"></a>
+<span class="sourceLineNo">17418</span>                                {<a name="line.17418"></a>
+<span class="sourceLineNo">17419</span>                                        while (it.hasNext()) {<a name="line.17419"></a>
+<span class="sourceLineNo">17420</span>                                                final long iax = it.aLong;<a name="line.17420"></a>
+<span class="sourceLineNo">17421</span>                                                long ibx = it.bLong;<a name="line.17421"></a>
+<span class="sourceLineNo">17422</span>                                                int ox;<a name="line.17422"></a>
+<span class="sourceLineNo">17423</span>                                                ox = (int) ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17423"></a>
+<span class="sourceLineNo">17424</span>                                                oai32data[it.oIndex] = ox;<a name="line.17424"></a>
+<span class="sourceLineNo">17425</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.17425"></a>
+<span class="sourceLineNo">17426</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.17426"></a>
+<span class="sourceLineNo">17427</span>                                                        ox = (int) ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17427"></a>
+<span class="sourceLineNo">17428</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.17428"></a>
+<span class="sourceLineNo">17429</span>                                                }<a name="line.17429"></a>
+<span class="sourceLineNo">17430</span>                                        }<a name="line.17430"></a>
+<span class="sourceLineNo">17431</span>                                }<a name="line.17431"></a>
+<span class="sourceLineNo">17432</span>                        } else if (as &gt; bs) {<a name="line.17432"></a>
+<span class="sourceLineNo">17433</span>                                {<a name="line.17433"></a>
+<span class="sourceLineNo">17434</span>                                        while (it.hasNext()) {<a name="line.17434"></a>
+<span class="sourceLineNo">17435</span>                                                long iax = it.aLong;<a name="line.17435"></a>
+<span class="sourceLineNo">17436</span>                                                final long ibx = it.bLong;<a name="line.17436"></a>
+<span class="sourceLineNo">17437</span>                                                int ox;<a name="line.17437"></a>
+<span class="sourceLineNo">17438</span>                                                ox = (int) ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17438"></a>
+<span class="sourceLineNo">17439</span>                                                oai32data[it.oIndex] = ox;<a name="line.17439"></a>
+<span class="sourceLineNo">17440</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.17440"></a>
+<span class="sourceLineNo">17441</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.17441"></a>
+<span class="sourceLineNo">17442</span>                                                        ox = (int) ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17442"></a>
+<span class="sourceLineNo">17443</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.17443"></a>
+<span class="sourceLineNo">17444</span>                                                }<a name="line.17444"></a>
+<span class="sourceLineNo">17445</span>                                        }<a name="line.17445"></a>
+<span class="sourceLineNo">17446</span>                                }<a name="line.17446"></a>
+<span class="sourceLineNo">17447</span>                        } else if (as == 1) {<a name="line.17447"></a>
+<span class="sourceLineNo">17448</span>                                {<a name="line.17448"></a>
+<span class="sourceLineNo">17449</span>                                        while (it.hasNext()) {<a name="line.17449"></a>
+<span class="sourceLineNo">17450</span>                                                final long iax = it.aLong;<a name="line.17450"></a>
+<span class="sourceLineNo">17451</span>                                                final long ibx = it.bLong;<a name="line.17451"></a>
+<span class="sourceLineNo">17452</span>                                                int ox;<a name="line.17452"></a>
+<span class="sourceLineNo">17453</span>                                                ox = (int) ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17453"></a>
+<span class="sourceLineNo">17454</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.17454"></a>
+<span class="sourceLineNo">17455</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.17455"></a>
+<span class="sourceLineNo">17456</span>                                                }<a name="line.17456"></a>
+<span class="sourceLineNo">17457</span>                                        }<a name="line.17457"></a>
+<span class="sourceLineNo">17458</span>                                }<a name="line.17458"></a>
+<span class="sourceLineNo">17459</span>                        } else {<a name="line.17459"></a>
+<span class="sourceLineNo">17460</span>                                {<a name="line.17460"></a>
+<span class="sourceLineNo">17461</span>                                        while (it.hasNext()) {<a name="line.17461"></a>
+<span class="sourceLineNo">17462</span>                                                long iax = it.aLong;<a name="line.17462"></a>
+<span class="sourceLineNo">17463</span>                                                long ibx = it.bLong;<a name="line.17463"></a>
+<span class="sourceLineNo">17464</span>                                                int ox;<a name="line.17464"></a>
+<span class="sourceLineNo">17465</span>                                                ox = (int) ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17465"></a>
+<span class="sourceLineNo">17466</span>                                                oai32data[it.oIndex] = ox;<a name="line.17466"></a>
+<span class="sourceLineNo">17467</span>                                                for (int j = 1; j &lt; is; j++) {<a name="line.17467"></a>
+<span class="sourceLineNo">17468</span>                                                        iax = da.getElementLongAbs(it.aIndex + j);<a name="line.17468"></a>
+<span class="sourceLineNo">17469</span>                                                        ibx = db.getElementLongAbs(it.bIndex + j);<a name="line.17469"></a>
+<span class="sourceLineNo">17470</span>                                                        ox = (int) ((unsignedMask &amp; iax) &gt;&gt;&gt; ibx);<a name="line.17470"></a>
+<span class="sourceLineNo">17471</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.17471"></a>
+<span class="sourceLineNo">17472</span>                                                }<a name="line.17472"></a>
+<span class="sourceLineNo">17473</span>                                        }<a name="line.17473"></a>
+<span class="sourceLineNo">17474</span>                                }<a name="line.17474"></a>
+<span class="sourceLineNo">17475</span>                        }<a name="line.17475"></a>
+<span class="sourceLineNo">17476</span>                        break;<a name="line.17476"></a>
+<span class="sourceLineNo">17477</span>                default:<a name="line.17477"></a>
+<span class="sourceLineNo">17478</span>                        throw new IllegalArgumentException("unsignedRightShift supports integer, compound integer datasets only");<a name="line.17478"></a>
+<span class="sourceLineNo">17479</span>                }<a name="line.17479"></a>
+<span class="sourceLineNo">17480</span><a name="line.17480"></a>
+<span class="sourceLineNo">17481</span>                addBinaryOperatorName(da, db, result, "&gt;&gt;&gt;");<a name="line.17481"></a>
+<span class="sourceLineNo">17482</span>                return result;<a name="line.17482"></a>
+<span class="sourceLineNo">17483</span>        }<a name="line.17483"></a>
+<span class="sourceLineNo">17484</span><a name="line.17484"></a>
+<span class="sourceLineNo">17485</span>        /**<a name="line.17485"></a>
+<span class="sourceLineNo">17486</span>         * bitwiseInvert - {@code ~a}, bitwise invert (or NOT) each element<a name="line.17486"></a>
+<span class="sourceLineNo">17487</span>         * @param a<a name="line.17487"></a>
+<span class="sourceLineNo">17488</span>         * @return dataset<a name="line.17488"></a>
+<span class="sourceLineNo">17489</span>         */<a name="line.17489"></a>
+<span class="sourceLineNo">17490</span>        public static Dataset bitwiseInvert(final Object a) {<a name="line.17490"></a>
+<span class="sourceLineNo">17491</span>                return bitwiseInvert(a, null);<a name="line.17491"></a>
+<span class="sourceLineNo">17492</span>        }<a name="line.17492"></a>
+<span class="sourceLineNo">17493</span><a name="line.17493"></a>
+<span class="sourceLineNo">17494</span>        /**<a name="line.17494"></a>
+<span class="sourceLineNo">17495</span>         * bitwiseInvert - {@code ~a}, bitwise invert (or NOT) each element<a name="line.17495"></a>
+<span class="sourceLineNo">17496</span>         * @param a<a name="line.17496"></a>
+<span class="sourceLineNo">17497</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.17497"></a>
+<span class="sourceLineNo">17498</span>         * @return dataset<a name="line.17498"></a>
+<span class="sourceLineNo">17499</span>         */<a name="line.17499"></a>
+<span class="sourceLineNo">17500</span>        public static Dataset bitwiseInvert(final Object a, final Dataset o) {<a name="line.17500"></a>
+<span class="sourceLineNo">17501</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.17501"></a>
+<span class="sourceLineNo">17502</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true, true, true);<a name="line.17502"></a>
+<span class="sourceLineNo">17503</span>                final Dataset result = it.getOutput();<a name="line.17503"></a>
+<span class="sourceLineNo">17504</span>                if (!result.isComplex()) {<a name="line.17504"></a>
+<span class="sourceLineNo">17505</span>                        if (da.isComplex()) {<a name="line.17505"></a>
+<span class="sourceLineNo">17506</span>                                da = da.getRealView();<a name="line.17506"></a>
+<span class="sourceLineNo">17507</span>                                it = new SingleInputBroadcastIterator(da, result, true, true, true);<a name="line.17507"></a>
+<span class="sourceLineNo">17508</span>                        }<a name="line.17508"></a>
+<span class="sourceLineNo">17509</span>                }<a name="line.17509"></a>
+<span class="sourceLineNo">17510</span>                final int is = result.getElementsPerItem();<a name="line.17510"></a>
+<span class="sourceLineNo">17511</span>                final int as = da.getElementsPerItem();<a name="line.17511"></a>
+<span class="sourceLineNo">17512</span>                final int dt = result.getDType();<a name="line.17512"></a>
+<span class="sourceLineNo">17513</span><a name="line.17513"></a>
+<span class="sourceLineNo">17514</span>                switch(dt) {<a name="line.17514"></a>
+<span class="sourceLineNo">17515</span>                case Dataset.INT8:<a name="line.17515"></a>
+<span class="sourceLineNo">17516</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.17516"></a>
+<span class="sourceLineNo">17517</span>                        {<a name="line.17517"></a>
+<span class="sourceLineNo">17518</span>                                while (it.hasNext()) {<a name="line.17518"></a>
+<span class="sourceLineNo">17519</span>                                        final long ix = it.aLong;<a name="line.17519"></a>
+<span class="sourceLineNo">17520</span>                                        byte ox;<a name="line.17520"></a>
+<span class="sourceLineNo">17521</span>                                        ox = (byte) toLong(~ix);<a name="line.17521"></a>
+<span class="sourceLineNo">17522</span>                                        oi8data[it.oIndex] = ox;<a name="line.17522"></a>
+<span class="sourceLineNo">17523</span>                                }<a name="line.17523"></a>
+<span class="sourceLineNo">17524</span>                        }<a name="line.17524"></a>
+<span class="sourceLineNo">17525</span>                        break;<a name="line.17525"></a>
+<span class="sourceLineNo">17526</span>                case Dataset.INT16:<a name="line.17526"></a>
+<span class="sourceLineNo">17527</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.17527"></a>
+<span class="sourceLineNo">17528</span>                        {<a name="line.17528"></a>
+<span class="sourceLineNo">17529</span>                                while (it.hasNext()) {<a name="line.17529"></a>
+<span class="sourceLineNo">17530</span>                                        final long ix = it.aLong;<a name="line.17530"></a>
+<span class="sourceLineNo">17531</span>                                        short ox;<a name="line.17531"></a>
+<span class="sourceLineNo">17532</span>                                        ox = (short) toLong(~ix);<a name="line.17532"></a>
+<span class="sourceLineNo">17533</span>                                        oi16data[it.oIndex] = ox;<a name="line.17533"></a>
+<span class="sourceLineNo">17534</span>                                }<a name="line.17534"></a>
+<span class="sourceLineNo">17535</span>                        }<a name="line.17535"></a>
+<span class="sourceLineNo">17536</span>                        break;<a name="line.17536"></a>
+<span class="sourceLineNo">17537</span>                case Dataset.INT64:<a name="line.17537"></a>
+<span class="sourceLineNo">17538</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.17538"></a>
+<span class="sourceLineNo">17539</span>                        {<a name="line.17539"></a>
+<span class="sourceLineNo">17540</span>                                while (it.hasNext()) {<a name="line.17540"></a>
+<span class="sourceLineNo">17541</span>                                        final long ix = it.aLong;<a name="line.17541"></a>
+<span class="sourceLineNo">17542</span>                                        long ox;<a name="line.17542"></a>
+<span class="sourceLineNo">17543</span>                                        ox = toLong(~ix);<a name="line.17543"></a>
+<span class="sourceLineNo">17544</span>                                        oi64data[it.oIndex] = ox;<a name="line.17544"></a>
+<span class="sourceLineNo">17545</span>                                }<a name="line.17545"></a>
+<span class="sourceLineNo">17546</span>                        }<a name="line.17546"></a>
+<span class="sourceLineNo">17547</span>                        break;<a name="line.17547"></a>
+<span class="sourceLineNo">17548</span>                case Dataset.INT32:<a name="line.17548"></a>
+<span class="sourceLineNo">17549</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.17549"></a>
+<span class="sourceLineNo">17550</span>                        {<a name="line.17550"></a>
+<span class="sourceLineNo">17551</span>                                while (it.hasNext()) {<a name="line.17551"></a>
+<span class="sourceLineNo">17552</span>                                        final long ix = it.aLong;<a name="line.17552"></a>
+<span class="sourceLineNo">17553</span>                                        int ox;<a name="line.17553"></a>
+<span class="sourceLineNo">17554</span>                                        ox = (int) toLong(~ix);<a name="line.17554"></a>
+<span class="sourceLineNo">17555</span>                                        oi32data[it.oIndex] = ox;<a name="line.17555"></a>
+<span class="sourceLineNo">17556</span>                                }<a name="line.17556"></a>
+<span class="sourceLineNo">17557</span>                        }<a name="line.17557"></a>
+<span class="sourceLineNo">17558</span>                        break;<a name="line.17558"></a>
+<span class="sourceLineNo">17559</span>                case Dataset.ARRAYINT8:<a name="line.17559"></a>
+<span class="sourceLineNo">17560</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.17560"></a>
+<span class="sourceLineNo">17561</span>                        if (is == 1) {<a name="line.17561"></a>
+<span class="sourceLineNo">17562</span>                                {<a name="line.17562"></a>
+<span class="sourceLineNo">17563</span>                                        while (it.hasNext()) {<a name="line.17563"></a>
+<span class="sourceLineNo">17564</span>                                                final long ix = it.aLong;<a name="line.17564"></a>
+<span class="sourceLineNo">17565</span>                                                byte ox;<a name="line.17565"></a>
+<span class="sourceLineNo">17566</span>                                                ox = (byte) toLong(~ix);<a name="line.17566"></a>
+<span class="sourceLineNo">17567</span>                                                oai8data[it.oIndex] = ox;<a name="line.17567"></a>
+<span class="sourceLineNo">17568</span>                                        }<a name="line.17568"></a>
+<span class="sourceLineNo">17569</span>                                }<a name="line.17569"></a>
+<span class="sourceLineNo">17570</span>                        } else if (as == 1) {<a name="line.17570"></a>
+<span class="sourceLineNo">17571</span>                                {<a name="line.17571"></a>
+<span class="sourceLineNo">17572</span>                                        while (it.hasNext()) {<a name="line.17572"></a>
+<span class="sourceLineNo">17573</span>                                                final long ix = it.aLong;<a name="line.17573"></a>
+<span class="sourceLineNo">17574</span>                                                byte ox;<a name="line.17574"></a>
+<span class="sourceLineNo">17575</span>                                                ox = (byte) toLong(~ix);<a name="line.17575"></a>
+<span class="sourceLineNo">17576</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.17576"></a>
+<span class="sourceLineNo">17577</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.17577"></a>
+<span class="sourceLineNo">17578</span>                                                }<a name="line.17578"></a>
+<span class="sourceLineNo">17579</span>                                        }<a name="line.17579"></a>
+<span class="sourceLineNo">17580</span>                                }<a name="line.17580"></a>
+<span class="sourceLineNo">17581</span>                        } else {<a name="line.17581"></a>
+<span class="sourceLineNo">17582</span>                                {<a name="line.17582"></a>
+<span class="sourceLineNo">17583</span>                                        while (it.hasNext()) {<a name="line.17583"></a>
+<span class="sourceLineNo">17584</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.17584"></a>
+<span class="sourceLineNo">17585</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.17585"></a>
+<span class="sourceLineNo">17586</span>                                                        byte ox;<a name="line.17586"></a>
+<span class="sourceLineNo">17587</span>                                                        ox = (byte) toLong(~ix);<a name="line.17587"></a>
+<span class="sourceLineNo">17588</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.17588"></a>
+<span class="sourceLineNo">17589</span>                                                }<a name="line.17589"></a>
+<span class="sourceLineNo">17590</span>                                        }<a name="line.17590"></a>
+<span class="sourceLineNo">17591</span>                                }<a name="line.17591"></a>
+<span class="sourceLineNo">17592</span>                        }<a name="line.17592"></a>
+<span class="sourceLineNo">17593</span>                        break;<a name="line.17593"></a>
+<span class="sourceLineNo">17594</span>                case Dataset.ARRAYINT16:<a name="line.17594"></a>
+<span class="sourceLineNo">17595</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.17595"></a>
+<span class="sourceLineNo">17596</span>                        if (is == 1) {<a name="line.17596"></a>
+<span class="sourceLineNo">17597</span>                                {<a name="line.17597"></a>
+<span class="sourceLineNo">17598</span>                                        while (it.hasNext()) {<a name="line.17598"></a>
+<span class="sourceLineNo">17599</span>                                                final long ix = it.aLong;<a name="line.17599"></a>
+<span class="sourceLineNo">17600</span>                                                short ox;<a name="line.17600"></a>
+<span class="sourceLineNo">17601</span>                                                ox = (short) toLong(~ix);<a name="line.17601"></a>
+<span class="sourceLineNo">17602</span>                                                oai16data[it.oIndex] = ox;<a name="line.17602"></a>
+<span class="sourceLineNo">17603</span>                                        }<a name="line.17603"></a>
+<span class="sourceLineNo">17604</span>                                }<a name="line.17604"></a>
+<span class="sourceLineNo">17605</span>                        } else if (as == 1) {<a name="line.17605"></a>
+<span class="sourceLineNo">17606</span>                                {<a name="line.17606"></a>
+<span class="sourceLineNo">17607</span>                                        while (it.hasNext()) {<a name="line.17607"></a>
+<span class="sourceLineNo">17608</span>                                                final long ix = it.aLong;<a name="line.17608"></a>
+<span class="sourceLineNo">17609</span>                                                short ox;<a name="line.17609"></a>
+<span class="sourceLineNo">17610</span>                                                ox = (short) toLong(~ix);<a name="line.17610"></a>
+<span class="sourceLineNo">17611</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.17611"></a>
+<span class="sourceLineNo">17612</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.17612"></a>
+<span class="sourceLineNo">17613</span>                                                }<a name="line.17613"></a>
+<span class="sourceLineNo">17614</span>                                        }<a name="line.17614"></a>
+<span class="sourceLineNo">17615</span>                                }<a name="line.17615"></a>
+<span class="sourceLineNo">17616</span>                        } else {<a name="line.17616"></a>
+<span class="sourceLineNo">17617</span>                                {<a name="line.17617"></a>
+<span class="sourceLineNo">17618</span>                                        while (it.hasNext()) {<a name="line.17618"></a>
+<span class="sourceLineNo">17619</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.17619"></a>
+<span class="sourceLineNo">17620</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.17620"></a>
+<span class="sourceLineNo">17621</span>                                                        short ox;<a name="line.17621"></a>
+<span class="sourceLineNo">17622</span>                                                        ox = (short) toLong(~ix);<a name="line.17622"></a>
+<span class="sourceLineNo">17623</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.17623"></a>
+<span class="sourceLineNo">17624</span>                                                }<a name="line.17624"></a>
+<span class="sourceLineNo">17625</span>                                        }<a name="line.17625"></a>
+<span class="sourceLineNo">17626</span>                                }<a name="line.17626"></a>
+<span class="sourceLineNo">17627</span>                        }<a name="line.17627"></a>
+<span class="sourceLineNo">17628</span>                        break;<a name="line.17628"></a>
+<span class="sourceLineNo">17629</span>                case Dataset.ARRAYINT64:<a name="line.17629"></a>
+<span class="sourceLineNo">17630</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.17630"></a>
+<span class="sourceLineNo">17631</span>                        if (is == 1) {<a name="line.17631"></a>
+<span class="sourceLineNo">17632</span>                                {<a name="line.17632"></a>
+<span class="sourceLineNo">17633</span>                                        while (it.hasNext()) {<a name="line.17633"></a>
+<span class="sourceLineNo">17634</span>                                                final long ix = it.aLong;<a name="line.17634"></a>
+<span class="sourceLineNo">17635</span>                                                long ox;<a name="line.17635"></a>
+<span class="sourceLineNo">17636</span>                                                ox = toLong(~ix);<a name="line.17636"></a>
+<span class="sourceLineNo">17637</span>                                                oai64data[it.oIndex] = ox;<a name="line.17637"></a>
+<span class="sourceLineNo">17638</span>                                        }<a name="line.17638"></a>
+<span class="sourceLineNo">17639</span>                                }<a name="line.17639"></a>
+<span class="sourceLineNo">17640</span>                        } else if (as == 1) {<a name="line.17640"></a>
+<span class="sourceLineNo">17641</span>                                {<a name="line.17641"></a>
+<span class="sourceLineNo">17642</span>                                        while (it.hasNext()) {<a name="line.17642"></a>
+<span class="sourceLineNo">17643</span>                                                final long ix = it.aLong;<a name="line.17643"></a>
+<span class="sourceLineNo">17644</span>                                                long ox;<a name="line.17644"></a>
+<span class="sourceLineNo">17645</span>                                                ox = toLong(~ix);<a name="line.17645"></a>
+<span class="sourceLineNo">17646</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.17646"></a>
+<span class="sourceLineNo">17647</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.17647"></a>
+<span class="sourceLineNo">17648</span>                                                }<a name="line.17648"></a>
+<span class="sourceLineNo">17649</span>                                        }<a name="line.17649"></a>
+<span class="sourceLineNo">17650</span>                                }<a name="line.17650"></a>
+<span class="sourceLineNo">17651</span>                        } else {<a name="line.17651"></a>
+<span class="sourceLineNo">17652</span>                                {<a name="line.17652"></a>
+<span class="sourceLineNo">17653</span>                                        while (it.hasNext()) {<a name="line.17653"></a>
+<span class="sourceLineNo">17654</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.17654"></a>
+<span class="sourceLineNo">17655</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.17655"></a>
+<span class="sourceLineNo">17656</span>                                                        long ox;<a name="line.17656"></a>
+<span class="sourceLineNo">17657</span>                                                        ox = toLong(~ix);<a name="line.17657"></a>
+<span class="sourceLineNo">17658</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.17658"></a>
+<span class="sourceLineNo">17659</span>                                                }<a name="line.17659"></a>
+<span class="sourceLineNo">17660</span>                                        }<a name="line.17660"></a>
+<span class="sourceLineNo">17661</span>                                }<a name="line.17661"></a>
+<span class="sourceLineNo">17662</span>                        }<a name="line.17662"></a>
+<span class="sourceLineNo">17663</span>                        break;<a name="line.17663"></a>
+<span class="sourceLineNo">17664</span>                case Dataset.ARRAYINT32:<a name="line.17664"></a>
+<span class="sourceLineNo">17665</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.17665"></a>
+<span class="sourceLineNo">17666</span>                        if (is == 1) {<a name="line.17666"></a>
+<span class="sourceLineNo">17667</span>                                {<a name="line.17667"></a>
+<span class="sourceLineNo">17668</span>                                        while (it.hasNext()) {<a name="line.17668"></a>
+<span class="sourceLineNo">17669</span>                                                final long ix = it.aLong;<a name="line.17669"></a>
+<span class="sourceLineNo">17670</span>                                                int ox;<a name="line.17670"></a>
+<span class="sourceLineNo">17671</span>                                                ox = (int) toLong(~ix);<a name="line.17671"></a>
+<span class="sourceLineNo">17672</span>                                                oai32data[it.oIndex] = ox;<a name="line.17672"></a>
+<span class="sourceLineNo">17673</span>                                        }<a name="line.17673"></a>
+<span class="sourceLineNo">17674</span>                                }<a name="line.17674"></a>
+<span class="sourceLineNo">17675</span>                        } else if (as == 1) {<a name="line.17675"></a>
+<span class="sourceLineNo">17676</span>                                {<a name="line.17676"></a>
+<span class="sourceLineNo">17677</span>                                        while (it.hasNext()) {<a name="line.17677"></a>
+<span class="sourceLineNo">17678</span>                                                final long ix = it.aLong;<a name="line.17678"></a>
+<span class="sourceLineNo">17679</span>                                                int ox;<a name="line.17679"></a>
+<span class="sourceLineNo">17680</span>                                                ox = (int) toLong(~ix);<a name="line.17680"></a>
+<span class="sourceLineNo">17681</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.17681"></a>
+<span class="sourceLineNo">17682</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.17682"></a>
+<span class="sourceLineNo">17683</span>                                                }<a name="line.17683"></a>
+<span class="sourceLineNo">17684</span>                                        }<a name="line.17684"></a>
+<span class="sourceLineNo">17685</span>                                }<a name="line.17685"></a>
+<span class="sourceLineNo">17686</span>                        } else {<a name="line.17686"></a>
+<span class="sourceLineNo">17687</span>                                {<a name="line.17687"></a>
+<span class="sourceLineNo">17688</span>                                        while (it.hasNext()) {<a name="line.17688"></a>
+<span class="sourceLineNo">17689</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.17689"></a>
+<span class="sourceLineNo">17690</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.17690"></a>
+<span class="sourceLineNo">17691</span>                                                        int ox;<a name="line.17691"></a>
+<span class="sourceLineNo">17692</span>                                                        ox = (int) toLong(~ix);<a name="line.17692"></a>
+<span class="sourceLineNo">17693</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.17693"></a>
+<span class="sourceLineNo">17694</span>                                                }<a name="line.17694"></a>
+<span class="sourceLineNo">17695</span>                                        }<a name="line.17695"></a>
+<span class="sourceLineNo">17696</span>                                }<a name="line.17696"></a>
+<span class="sourceLineNo">17697</span>                        }<a name="line.17697"></a>
+<span class="sourceLineNo">17698</span>                        break;<a name="line.17698"></a>
+<span class="sourceLineNo">17699</span>                default:<a name="line.17699"></a>
+<span class="sourceLineNo">17700</span>                        throw new IllegalArgumentException("bitwiseInvert supports integer, compound integer datasets only");<a name="line.17700"></a>
+<span class="sourceLineNo">17701</span>                }<a name="line.17701"></a>
+<span class="sourceLineNo">17702</span><a name="line.17702"></a>
+<span class="sourceLineNo">17703</span>                addFunctionName(result, "bitwiseInvert");<a name="line.17703"></a>
+<span class="sourceLineNo">17704</span>                return result;<a name="line.17704"></a>
+<span class="sourceLineNo">17705</span>        }<a name="line.17705"></a>
+<span class="sourceLineNo">17706</span><a name="line.17706"></a>
+<span class="sourceLineNo">17707</span>        /**<a name="line.17707"></a>
+<span class="sourceLineNo">17708</span>         * sin - evaluate the sine function on each element of the dataset<a name="line.17708"></a>
+<span class="sourceLineNo">17709</span>         * @param a<a name="line.17709"></a>
+<span class="sourceLineNo">17710</span>         * @return dataset<a name="line.17710"></a>
+<span class="sourceLineNo">17711</span>         */<a name="line.17711"></a>
+<span class="sourceLineNo">17712</span>        public static Dataset sin(final Object a) {<a name="line.17712"></a>
+<span class="sourceLineNo">17713</span>                return sin(a, null);<a name="line.17713"></a>
+<span class="sourceLineNo">17714</span>        }<a name="line.17714"></a>
+<span class="sourceLineNo">17715</span><a name="line.17715"></a>
+<span class="sourceLineNo">17716</span>        /**<a name="line.17716"></a>
+<span class="sourceLineNo">17717</span>         * sin - evaluate the sine function on each element of the dataset<a name="line.17717"></a>
+<span class="sourceLineNo">17718</span>         * @param a<a name="line.17718"></a>
+<span class="sourceLineNo">17719</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.17719"></a>
+<span class="sourceLineNo">17720</span>         * @return dataset<a name="line.17720"></a>
+<span class="sourceLineNo">17721</span>         */<a name="line.17721"></a>
+<span class="sourceLineNo">17722</span>        public static Dataset sin(final Object a, final Dataset o) {<a name="line.17722"></a>
+<span class="sourceLineNo">17723</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.17723"></a>
+<span class="sourceLineNo">17724</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.17724"></a>
+<span class="sourceLineNo">17725</span>                final Dataset result = it.getOutput();<a name="line.17725"></a>
+<span class="sourceLineNo">17726</span>                if (!result.isComplex()) {<a name="line.17726"></a>
+<span class="sourceLineNo">17727</span>                        if (da.isComplex()) {<a name="line.17727"></a>
+<span class="sourceLineNo">17728</span>                                da = da.getRealView();<a name="line.17728"></a>
+<span class="sourceLineNo">17729</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.17729"></a>
+<span class="sourceLineNo">17730</span>                        }<a name="line.17730"></a>
+<span class="sourceLineNo">17731</span>                }<a name="line.17731"></a>
+<span class="sourceLineNo">17732</span>                final int is = result.getElementsPerItem();<a name="line.17732"></a>
+<span class="sourceLineNo">17733</span>                final int as = da.getElementsPerItem();<a name="line.17733"></a>
+<span class="sourceLineNo">17734</span>                final int dt = result.getDType();<a name="line.17734"></a>
+<span class="sourceLineNo">17735</span><a name="line.17735"></a>
+<span class="sourceLineNo">17736</span>                switch(dt) {<a name="line.17736"></a>
+<span class="sourceLineNo">17737</span>                case Dataset.INT8:<a name="line.17737"></a>
+<span class="sourceLineNo">17738</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.17738"></a>
+<span class="sourceLineNo">17739</span>                        if (it.isOutputDouble()) {<a name="line.17739"></a>
+<span class="sourceLineNo">17740</span>                                while (it.hasNext()) {<a name="line.17740"></a>
+<span class="sourceLineNo">17741</span>                                        final double ix = it.aDouble;<a name="line.17741"></a>
+<span class="sourceLineNo">17742</span>                                        byte ox;<a name="line.17742"></a>
+<span class="sourceLineNo">17743</span>                                        ox = (byte) toLong(Math.sin(ix));<a name="line.17743"></a>
+<span class="sourceLineNo">17744</span>                                        oi8data[it.oIndex] = ox;<a name="line.17744"></a>
+<span class="sourceLineNo">17745</span>                                }<a name="line.17745"></a>
+<span class="sourceLineNo">17746</span>                        } else {<a name="line.17746"></a>
+<span class="sourceLineNo">17747</span>                                while (it.hasNext()) {<a name="line.17747"></a>
+<span class="sourceLineNo">17748</span>                                        final long ix = it.aLong;<a name="line.17748"></a>
+<span class="sourceLineNo">17749</span>                                        byte ox;<a name="line.17749"></a>
+<span class="sourceLineNo">17750</span>                                        ox = (byte) toLong(Math.sin(ix));<a name="line.17750"></a>
+<span class="sourceLineNo">17751</span>                                        oi8data[it.oIndex] = ox;<a name="line.17751"></a>
+<span class="sourceLineNo">17752</span>                                }<a name="line.17752"></a>
+<span class="sourceLineNo">17753</span>                        }<a name="line.17753"></a>
+<span class="sourceLineNo">17754</span>                        break;<a name="line.17754"></a>
+<span class="sourceLineNo">17755</span>                case Dataset.INT16:<a name="line.17755"></a>
+<span class="sourceLineNo">17756</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.17756"></a>
+<span class="sourceLineNo">17757</span>                        if (it.isOutputDouble()) {<a name="line.17757"></a>
+<span class="sourceLineNo">17758</span>                                while (it.hasNext()) {<a name="line.17758"></a>
+<span class="sourceLineNo">17759</span>                                        final double ix = it.aDouble;<a name="line.17759"></a>
+<span class="sourceLineNo">17760</span>                                        short ox;<a name="line.17760"></a>
+<span class="sourceLineNo">17761</span>                                        ox = (short) toLong(Math.sin(ix));<a name="line.17761"></a>
+<span class="sourceLineNo">17762</span>                                        oi16data[it.oIndex] = ox;<a name="line.17762"></a>
+<span class="sourceLineNo">17763</span>                                }<a name="line.17763"></a>
+<span class="sourceLineNo">17764</span>                        } else {<a name="line.17764"></a>
+<span class="sourceLineNo">17765</span>                                while (it.hasNext()) {<a name="line.17765"></a>
+<span class="sourceLineNo">17766</span>                                        final long ix = it.aLong;<a name="line.17766"></a>
+<span class="sourceLineNo">17767</span>                                        short ox;<a name="line.17767"></a>
+<span class="sourceLineNo">17768</span>                                        ox = (short) toLong(Math.sin(ix));<a name="line.17768"></a>
+<span class="sourceLineNo">17769</span>                                        oi16data[it.oIndex] = ox;<a name="line.17769"></a>
+<span class="sourceLineNo">17770</span>                                }<a name="line.17770"></a>
+<span class="sourceLineNo">17771</span>                        }<a name="line.17771"></a>
+<span class="sourceLineNo">17772</span>                        break;<a name="line.17772"></a>
+<span class="sourceLineNo">17773</span>                case Dataset.INT64:<a name="line.17773"></a>
+<span class="sourceLineNo">17774</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.17774"></a>
+<span class="sourceLineNo">17775</span>                        if (it.isOutputDouble()) {<a name="line.17775"></a>
+<span class="sourceLineNo">17776</span>                                while (it.hasNext()) {<a name="line.17776"></a>
+<span class="sourceLineNo">17777</span>                                        final double ix = it.aDouble;<a name="line.17777"></a>
+<span class="sourceLineNo">17778</span>                                        long ox;<a name="line.17778"></a>
+<span class="sourceLineNo">17779</span>                                        ox = toLong(Math.sin(ix));<a name="line.17779"></a>
+<span class="sourceLineNo">17780</span>                                        oi64data[it.oIndex] = ox;<a name="line.17780"></a>
+<span class="sourceLineNo">17781</span>                                }<a name="line.17781"></a>
+<span class="sourceLineNo">17782</span>                        } else {<a name="line.17782"></a>
+<span class="sourceLineNo">17783</span>                                while (it.hasNext()) {<a name="line.17783"></a>
+<span class="sourceLineNo">17784</span>                                        final long ix = it.aLong;<a name="line.17784"></a>
+<span class="sourceLineNo">17785</span>                                        long ox;<a name="line.17785"></a>
+<span class="sourceLineNo">17786</span>                                        ox = toLong(Math.sin(ix));<a name="line.17786"></a>
+<span class="sourceLineNo">17787</span>                                        oi64data[it.oIndex] = ox;<a name="line.17787"></a>
+<span class="sourceLineNo">17788</span>                                }<a name="line.17788"></a>
+<span class="sourceLineNo">17789</span>                        }<a name="line.17789"></a>
+<span class="sourceLineNo">17790</span>                        break;<a name="line.17790"></a>
+<span class="sourceLineNo">17791</span>                case Dataset.INT32:<a name="line.17791"></a>
+<span class="sourceLineNo">17792</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.17792"></a>
+<span class="sourceLineNo">17793</span>                        if (it.isOutputDouble()) {<a name="line.17793"></a>
+<span class="sourceLineNo">17794</span>                                while (it.hasNext()) {<a name="line.17794"></a>
+<span class="sourceLineNo">17795</span>                                        final double ix = it.aDouble;<a name="line.17795"></a>
+<span class="sourceLineNo">17796</span>                                        int ox;<a name="line.17796"></a>
+<span class="sourceLineNo">17797</span>                                        ox = (int) toLong(Math.sin(ix));<a name="line.17797"></a>
+<span class="sourceLineNo">17798</span>                                        oi32data[it.oIndex] = ox;<a name="line.17798"></a>
+<span class="sourceLineNo">17799</span>                                }<a name="line.17799"></a>
+<span class="sourceLineNo">17800</span>                        } else {<a name="line.17800"></a>
+<span class="sourceLineNo">17801</span>                                while (it.hasNext()) {<a name="line.17801"></a>
+<span class="sourceLineNo">17802</span>                                        final long ix = it.aLong;<a name="line.17802"></a>
+<span class="sourceLineNo">17803</span>                                        int ox;<a name="line.17803"></a>
+<span class="sourceLineNo">17804</span>                                        ox = (int) toLong(Math.sin(ix));<a name="line.17804"></a>
+<span class="sourceLineNo">17805</span>                                        oi32data[it.oIndex] = ox;<a name="line.17805"></a>
+<span class="sourceLineNo">17806</span>                                }<a name="line.17806"></a>
+<span class="sourceLineNo">17807</span>                        }<a name="line.17807"></a>
+<span class="sourceLineNo">17808</span>                        break;<a name="line.17808"></a>
+<span class="sourceLineNo">17809</span>                case Dataset.ARRAYINT8:<a name="line.17809"></a>
+<span class="sourceLineNo">17810</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.17810"></a>
+<span class="sourceLineNo">17811</span>                        if (is == 1) {<a name="line.17811"></a>
+<span class="sourceLineNo">17812</span>                                if (it.isOutputDouble()) {<a name="line.17812"></a>
+<span class="sourceLineNo">17813</span>                                        while (it.hasNext()) {<a name="line.17813"></a>
+<span class="sourceLineNo">17814</span>                                                final double ix = it.aDouble;<a name="line.17814"></a>
+<span class="sourceLineNo">17815</span>                                                byte ox;<a name="line.17815"></a>
+<span class="sourceLineNo">17816</span>                                                ox = (byte) toLong(Math.sin(ix));<a name="line.17816"></a>
+<span class="sourceLineNo">17817</span>                                                oai8data[it.oIndex] = ox;<a name="line.17817"></a>
+<span class="sourceLineNo">17818</span>                                        }<a name="line.17818"></a>
+<span class="sourceLineNo">17819</span>                                } else {<a name="line.17819"></a>
+<span class="sourceLineNo">17820</span>                                        while (it.hasNext()) {<a name="line.17820"></a>
+<span class="sourceLineNo">17821</span>                                                final long ix = it.aLong;<a name="line.17821"></a>
+<span class="sourceLineNo">17822</span>                                                byte ox;<a name="line.17822"></a>
+<span class="sourceLineNo">17823</span>                                                ox = (byte) toLong(Math.sin(ix));<a name="line.17823"></a>
+<span class="sourceLineNo">17824</span>                                                oai8data[it.oIndex] = ox;<a name="line.17824"></a>
+<span class="sourceLineNo">17825</span>                                        }<a name="line.17825"></a>
+<span class="sourceLineNo">17826</span>                                }<a name="line.17826"></a>
+<span class="sourceLineNo">17827</span>                        } else if (as == 1) {<a name="line.17827"></a>
+<span class="sourceLineNo">17828</span>                                if (it.isOutputDouble()) {<a name="line.17828"></a>
+<span class="sourceLineNo">17829</span>                                        while (it.hasNext()) {<a name="line.17829"></a>
+<span class="sourceLineNo">17830</span>                                                final double ix = it.aDouble;<a name="line.17830"></a>
+<span class="sourceLineNo">17831</span>                                                byte ox;<a name="line.17831"></a>
+<span class="sourceLineNo">17832</span>                                                ox = (byte) toLong(Math.sin(ix));<a name="line.17832"></a>
+<span class="sourceLineNo">17833</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.17833"></a>
+<span class="sourceLineNo">17834</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.17834"></a>
+<span class="sourceLineNo">17835</span>                                                }<a name="line.17835"></a>
+<span class="sourceLineNo">17836</span>                                        }<a name="line.17836"></a>
+<span class="sourceLineNo">17837</span>                                } else {<a name="line.17837"></a>
+<span class="sourceLineNo">17838</span>                                        while (it.hasNext()) {<a name="line.17838"></a>
+<span class="sourceLineNo">17839</span>                                                final long ix = it.aLong;<a name="line.17839"></a>
+<span class="sourceLineNo">17840</span>                                                byte ox;<a name="line.17840"></a>
+<span class="sourceLineNo">17841</span>                                                ox = (byte) toLong(Math.sin(ix));<a name="line.17841"></a>
+<span class="sourceLineNo">17842</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.17842"></a>
+<span class="sourceLineNo">17843</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.17843"></a>
+<span class="sourceLineNo">17844</span>                                                }<a name="line.17844"></a>
+<span class="sourceLineNo">17845</span>                                        }<a name="line.17845"></a>
+<span class="sourceLineNo">17846</span>                                }<a name="line.17846"></a>
+<span class="sourceLineNo">17847</span>                        } else {<a name="line.17847"></a>
+<span class="sourceLineNo">17848</span>                                if (it.isOutputDouble()) {<a name="line.17848"></a>
+<span class="sourceLineNo">17849</span>                                        while (it.hasNext()) {<a name="line.17849"></a>
+<span class="sourceLineNo">17850</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.17850"></a>
+<span class="sourceLineNo">17851</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.17851"></a>
+<span class="sourceLineNo">17852</span>                                                        byte ox;<a name="line.17852"></a>
+<span class="sourceLineNo">17853</span>                                                        ox = (byte) toLong(Math.sin(ix));<a name="line.17853"></a>
+<span class="sourceLineNo">17854</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.17854"></a>
+<span class="sourceLineNo">17855</span>                                                }<a name="line.17855"></a>
+<span class="sourceLineNo">17856</span>                                        }<a name="line.17856"></a>
+<span class="sourceLineNo">17857</span>                                } else {<a name="line.17857"></a>
+<span class="sourceLineNo">17858</span>                                        while (it.hasNext()) {<a name="line.17858"></a>
+<span class="sourceLineNo">17859</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.17859"></a>
+<span class="sourceLineNo">17860</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.17860"></a>
+<span class="sourceLineNo">17861</span>                                                        byte ox;<a name="line.17861"></a>
+<span class="sourceLineNo">17862</span>                                                        ox = (byte) toLong(Math.sin(ix));<a name="line.17862"></a>
+<span class="sourceLineNo">17863</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.17863"></a>
+<span class="sourceLineNo">17864</span>                                                }<a name="line.17864"></a>
+<span class="sourceLineNo">17865</span>                                        }<a name="line.17865"></a>
+<span class="sourceLineNo">17866</span>                                }<a name="line.17866"></a>
+<span class="sourceLineNo">17867</span>                        }<a name="line.17867"></a>
+<span class="sourceLineNo">17868</span>                        break;<a name="line.17868"></a>
+<span class="sourceLineNo">17869</span>                case Dataset.ARRAYINT16:<a name="line.17869"></a>
+<span class="sourceLineNo">17870</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.17870"></a>
+<span class="sourceLineNo">17871</span>                        if (is == 1) {<a name="line.17871"></a>
+<span class="sourceLineNo">17872</span>                                if (it.isOutputDouble()) {<a name="line.17872"></a>
+<span class="sourceLineNo">17873</span>                                        while (it.hasNext()) {<a name="line.17873"></a>
+<span class="sourceLineNo">17874</span>                                                final double ix = it.aDouble;<a name="line.17874"></a>
+<span class="sourceLineNo">17875</span>                                                short ox;<a name="line.17875"></a>
+<span class="sourceLineNo">17876</span>                                                ox = (short) toLong(Math.sin(ix));<a name="line.17876"></a>
+<span class="sourceLineNo">17877</span>                                                oai16data[it.oIndex] = ox;<a name="line.17877"></a>
+<span class="sourceLineNo">17878</span>                                        }<a name="line.17878"></a>
+<span class="sourceLineNo">17879</span>                                } else {<a name="line.17879"></a>
+<span class="sourceLineNo">17880</span>                                        while (it.hasNext()) {<a name="line.17880"></a>
+<span class="sourceLineNo">17881</span>                                                final long ix = it.aLong;<a name="line.17881"></a>
+<span class="sourceLineNo">17882</span>                                                short ox;<a name="line.17882"></a>
+<span class="sourceLineNo">17883</span>                                                ox = (short) toLong(Math.sin(ix));<a name="line.17883"></a>
+<span class="sourceLineNo">17884</span>                                                oai16data[it.oIndex] = ox;<a name="line.17884"></a>
+<span class="sourceLineNo">17885</span>                                        }<a name="line.17885"></a>
+<span class="sourceLineNo">17886</span>                                }<a name="line.17886"></a>
+<span class="sourceLineNo">17887</span>                        } else if (as == 1) {<a name="line.17887"></a>
+<span class="sourceLineNo">17888</span>                                if (it.isOutputDouble()) {<a name="line.17888"></a>
+<span class="sourceLineNo">17889</span>                                        while (it.hasNext()) {<a name="line.17889"></a>
+<span class="sourceLineNo">17890</span>                                                final double ix = it.aDouble;<a name="line.17890"></a>
+<span class="sourceLineNo">17891</span>                                                short ox;<a name="line.17891"></a>
+<span class="sourceLineNo">17892</span>                                                ox = (short) toLong(Math.sin(ix));<a name="line.17892"></a>
+<span class="sourceLineNo">17893</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.17893"></a>
+<span class="sourceLineNo">17894</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.17894"></a>
+<span class="sourceLineNo">17895</span>                                                }<a name="line.17895"></a>
+<span class="sourceLineNo">17896</span>                                        }<a name="line.17896"></a>
+<span class="sourceLineNo">17897</span>                                } else {<a name="line.17897"></a>
+<span class="sourceLineNo">17898</span>                                        while (it.hasNext()) {<a name="line.17898"></a>
+<span class="sourceLineNo">17899</span>                                                final long ix = it.aLong;<a name="line.17899"></a>
+<span class="sourceLineNo">17900</span>                                                short ox;<a name="line.17900"></a>
+<span class="sourceLineNo">17901</span>                                                ox = (short) toLong(Math.sin(ix));<a name="line.17901"></a>
+<span class="sourceLineNo">17902</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.17902"></a>
+<span class="sourceLineNo">17903</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.17903"></a>
+<span class="sourceLineNo">17904</span>                                                }<a name="line.17904"></a>
+<span class="sourceLineNo">17905</span>                                        }<a name="line.17905"></a>
+<span class="sourceLineNo">17906</span>                                }<a name="line.17906"></a>
+<span class="sourceLineNo">17907</span>                        } else {<a name="line.17907"></a>
+<span class="sourceLineNo">17908</span>                                if (it.isOutputDouble()) {<a name="line.17908"></a>
+<span class="sourceLineNo">17909</span>                                        while (it.hasNext()) {<a name="line.17909"></a>
+<span class="sourceLineNo">17910</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.17910"></a>
+<span class="sourceLineNo">17911</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.17911"></a>
+<span class="sourceLineNo">17912</span>                                                        short ox;<a name="line.17912"></a>
+<span class="sourceLineNo">17913</span>                                                        ox = (short) toLong(Math.sin(ix));<a name="line.17913"></a>
+<span class="sourceLineNo">17914</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.17914"></a>
+<span class="sourceLineNo">17915</span>                                                }<a name="line.17915"></a>
+<span class="sourceLineNo">17916</span>                                        }<a name="line.17916"></a>
+<span class="sourceLineNo">17917</span>                                } else {<a name="line.17917"></a>
+<span class="sourceLineNo">17918</span>                                        while (it.hasNext()) {<a name="line.17918"></a>
+<span class="sourceLineNo">17919</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.17919"></a>
+<span class="sourceLineNo">17920</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.17920"></a>
+<span class="sourceLineNo">17921</span>                                                        short ox;<a name="line.17921"></a>
+<span class="sourceLineNo">17922</span>                                                        ox = (short) toLong(Math.sin(ix));<a name="line.17922"></a>
+<span class="sourceLineNo">17923</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.17923"></a>
+<span class="sourceLineNo">17924</span>                                                }<a name="line.17924"></a>
+<span class="sourceLineNo">17925</span>                                        }<a name="line.17925"></a>
+<span class="sourceLineNo">17926</span>                                }<a name="line.17926"></a>
+<span class="sourceLineNo">17927</span>                        }<a name="line.17927"></a>
+<span class="sourceLineNo">17928</span>                        break;<a name="line.17928"></a>
+<span class="sourceLineNo">17929</span>                case Dataset.ARRAYINT64:<a name="line.17929"></a>
+<span class="sourceLineNo">17930</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.17930"></a>
+<span class="sourceLineNo">17931</span>                        if (is == 1) {<a name="line.17931"></a>
+<span class="sourceLineNo">17932</span>                                if (it.isOutputDouble()) {<a name="line.17932"></a>
+<span class="sourceLineNo">17933</span>                                        while (it.hasNext()) {<a name="line.17933"></a>
+<span class="sourceLineNo">17934</span>                                                final double ix = it.aDouble;<a name="line.17934"></a>
+<span class="sourceLineNo">17935</span>                                                long ox;<a name="line.17935"></a>
+<span class="sourceLineNo">17936</span>                                                ox = toLong(Math.sin(ix));<a name="line.17936"></a>
+<span class="sourceLineNo">17937</span>                                                oai64data[it.oIndex] = ox;<a name="line.17937"></a>
+<span class="sourceLineNo">17938</span>                                        }<a name="line.17938"></a>
+<span class="sourceLineNo">17939</span>                                } else {<a name="line.17939"></a>
+<span class="sourceLineNo">17940</span>                                        while (it.hasNext()) {<a name="line.17940"></a>
+<span class="sourceLineNo">17941</span>                                                final long ix = it.aLong;<a name="line.17941"></a>
+<span class="sourceLineNo">17942</span>                                                long ox;<a name="line.17942"></a>
+<span class="sourceLineNo">17943</span>                                                ox = toLong(Math.sin(ix));<a name="line.17943"></a>
+<span class="sourceLineNo">17944</span>                                                oai64data[it.oIndex] = ox;<a name="line.17944"></a>
+<span class="sourceLineNo">17945</span>                                        }<a name="line.17945"></a>
+<span class="sourceLineNo">17946</span>                                }<a name="line.17946"></a>
+<span class="sourceLineNo">17947</span>                        } else if (as == 1) {<a name="line.17947"></a>
+<span class="sourceLineNo">17948</span>                                if (it.isOutputDouble()) {<a name="line.17948"></a>
+<span class="sourceLineNo">17949</span>                                        while (it.hasNext()) {<a name="line.17949"></a>
+<span class="sourceLineNo">17950</span>                                                final double ix = it.aDouble;<a name="line.17950"></a>
+<span class="sourceLineNo">17951</span>                                                long ox;<a name="line.17951"></a>
+<span class="sourceLineNo">17952</span>                                                ox = toLong(Math.sin(ix));<a name="line.17952"></a>
+<span class="sourceLineNo">17953</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.17953"></a>
+<span class="sourceLineNo">17954</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.17954"></a>
+<span class="sourceLineNo">17955</span>                                                }<a name="line.17955"></a>
+<span class="sourceLineNo">17956</span>                                        }<a name="line.17956"></a>
+<span class="sourceLineNo">17957</span>                                } else {<a name="line.17957"></a>
+<span class="sourceLineNo">17958</span>                                        while (it.hasNext()) {<a name="line.17958"></a>
+<span class="sourceLineNo">17959</span>                                                final long ix = it.aLong;<a name="line.17959"></a>
+<span class="sourceLineNo">17960</span>                                                long ox;<a name="line.17960"></a>
+<span class="sourceLineNo">17961</span>                                                ox = toLong(Math.sin(ix));<a name="line.17961"></a>
+<span class="sourceLineNo">17962</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.17962"></a>
+<span class="sourceLineNo">17963</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.17963"></a>
+<span class="sourceLineNo">17964</span>                                                }<a name="line.17964"></a>
+<span class="sourceLineNo">17965</span>                                        }<a name="line.17965"></a>
+<span class="sourceLineNo">17966</span>                                }<a name="line.17966"></a>
+<span class="sourceLineNo">17967</span>                        } else {<a name="line.17967"></a>
+<span class="sourceLineNo">17968</span>                                if (it.isOutputDouble()) {<a name="line.17968"></a>
+<span class="sourceLineNo">17969</span>                                        while (it.hasNext()) {<a name="line.17969"></a>
+<span class="sourceLineNo">17970</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.17970"></a>
+<span class="sourceLineNo">17971</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.17971"></a>
+<span class="sourceLineNo">17972</span>                                                        long ox;<a name="line.17972"></a>
+<span class="sourceLineNo">17973</span>                                                        ox = toLong(Math.sin(ix));<a name="line.17973"></a>
+<span class="sourceLineNo">17974</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.17974"></a>
+<span class="sourceLineNo">17975</span>                                                }<a name="line.17975"></a>
+<span class="sourceLineNo">17976</span>                                        }<a name="line.17976"></a>
+<span class="sourceLineNo">17977</span>                                } else {<a name="line.17977"></a>
+<span class="sourceLineNo">17978</span>                                        while (it.hasNext()) {<a name="line.17978"></a>
+<span class="sourceLineNo">17979</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.17979"></a>
+<span class="sourceLineNo">17980</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.17980"></a>
+<span class="sourceLineNo">17981</span>                                                        long ox;<a name="line.17981"></a>
+<span class="sourceLineNo">17982</span>                                                        ox = toLong(Math.sin(ix));<a name="line.17982"></a>
+<span class="sourceLineNo">17983</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.17983"></a>
+<span class="sourceLineNo">17984</span>                                                }<a name="line.17984"></a>
+<span class="sourceLineNo">17985</span>                                        }<a name="line.17985"></a>
+<span class="sourceLineNo">17986</span>                                }<a name="line.17986"></a>
+<span class="sourceLineNo">17987</span>                        }<a name="line.17987"></a>
+<span class="sourceLineNo">17988</span>                        break;<a name="line.17988"></a>
+<span class="sourceLineNo">17989</span>                case Dataset.ARRAYINT32:<a name="line.17989"></a>
+<span class="sourceLineNo">17990</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.17990"></a>
+<span class="sourceLineNo">17991</span>                        if (is == 1) {<a name="line.17991"></a>
+<span class="sourceLineNo">17992</span>                                if (it.isOutputDouble()) {<a name="line.17992"></a>
+<span class="sourceLineNo">17993</span>                                        while (it.hasNext()) {<a name="line.17993"></a>
+<span class="sourceLineNo">17994</span>                                                final double ix = it.aDouble;<a name="line.17994"></a>
+<span class="sourceLineNo">17995</span>                                                int ox;<a name="line.17995"></a>
+<span class="sourceLineNo">17996</span>                                                ox = (int) toLong(Math.sin(ix));<a name="line.17996"></a>
+<span class="sourceLineNo">17997</span>                                                oai32data[it.oIndex] = ox;<a name="line.17997"></a>
+<span class="sourceLineNo">17998</span>                                        }<a name="line.17998"></a>
+<span class="sourceLineNo">17999</span>                                } else {<a name="line.17999"></a>
+<span class="sourceLineNo">18000</span>                                        while (it.hasNext()) {<a name="line.18000"></a>
+<span class="sourceLineNo">18001</span>                                                final long ix = it.aLong;<a name="line.18001"></a>
+<span class="sourceLineNo">18002</span>                                                int ox;<a name="line.18002"></a>
+<span class="sourceLineNo">18003</span>                                                ox = (int) toLong(Math.sin(ix));<a name="line.18003"></a>
+<span class="sourceLineNo">18004</span>                                                oai32data[it.oIndex] = ox;<a name="line.18004"></a>
+<span class="sourceLineNo">18005</span>                                        }<a name="line.18005"></a>
+<span class="sourceLineNo">18006</span>                                }<a name="line.18006"></a>
+<span class="sourceLineNo">18007</span>                        } else if (as == 1) {<a name="line.18007"></a>
+<span class="sourceLineNo">18008</span>                                if (it.isOutputDouble()) {<a name="line.18008"></a>
+<span class="sourceLineNo">18009</span>                                        while (it.hasNext()) {<a name="line.18009"></a>
+<span class="sourceLineNo">18010</span>                                                final double ix = it.aDouble;<a name="line.18010"></a>
+<span class="sourceLineNo">18011</span>                                                int ox;<a name="line.18011"></a>
+<span class="sourceLineNo">18012</span>                                                ox = (int) toLong(Math.sin(ix));<a name="line.18012"></a>
+<span class="sourceLineNo">18013</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18013"></a>
+<span class="sourceLineNo">18014</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.18014"></a>
+<span class="sourceLineNo">18015</span>                                                }<a name="line.18015"></a>
+<span class="sourceLineNo">18016</span>                                        }<a name="line.18016"></a>
+<span class="sourceLineNo">18017</span>                                } else {<a name="line.18017"></a>
+<span class="sourceLineNo">18018</span>                                        while (it.hasNext()) {<a name="line.18018"></a>
+<span class="sourceLineNo">18019</span>                                                final long ix = it.aLong;<a name="line.18019"></a>
+<span class="sourceLineNo">18020</span>                                                int ox;<a name="line.18020"></a>
+<span class="sourceLineNo">18021</span>                                                ox = (int) toLong(Math.sin(ix));<a name="line.18021"></a>
+<span class="sourceLineNo">18022</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18022"></a>
+<span class="sourceLineNo">18023</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.18023"></a>
+<span class="sourceLineNo">18024</span>                                                }<a name="line.18024"></a>
+<span class="sourceLineNo">18025</span>                                        }<a name="line.18025"></a>
+<span class="sourceLineNo">18026</span>                                }<a name="line.18026"></a>
+<span class="sourceLineNo">18027</span>                        } else {<a name="line.18027"></a>
+<span class="sourceLineNo">18028</span>                                if (it.isOutputDouble()) {<a name="line.18028"></a>
+<span class="sourceLineNo">18029</span>                                        while (it.hasNext()) {<a name="line.18029"></a>
+<span class="sourceLineNo">18030</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18030"></a>
+<span class="sourceLineNo">18031</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.18031"></a>
+<span class="sourceLineNo">18032</span>                                                        int ox;<a name="line.18032"></a>
+<span class="sourceLineNo">18033</span>                                                        ox = (int) toLong(Math.sin(ix));<a name="line.18033"></a>
+<span class="sourceLineNo">18034</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.18034"></a>
+<span class="sourceLineNo">18035</span>                                                }<a name="line.18035"></a>
+<span class="sourceLineNo">18036</span>                                        }<a name="line.18036"></a>
+<span class="sourceLineNo">18037</span>                                } else {<a name="line.18037"></a>
+<span class="sourceLineNo">18038</span>                                        while (it.hasNext()) {<a name="line.18038"></a>
+<span class="sourceLineNo">18039</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18039"></a>
+<span class="sourceLineNo">18040</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.18040"></a>
+<span class="sourceLineNo">18041</span>                                                        int ox;<a name="line.18041"></a>
+<span class="sourceLineNo">18042</span>                                                        ox = (int) toLong(Math.sin(ix));<a name="line.18042"></a>
+<span class="sourceLineNo">18043</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.18043"></a>
+<span class="sourceLineNo">18044</span>                                                }<a name="line.18044"></a>
+<span class="sourceLineNo">18045</span>                                        }<a name="line.18045"></a>
+<span class="sourceLineNo">18046</span>                                }<a name="line.18046"></a>
+<span class="sourceLineNo">18047</span>                        }<a name="line.18047"></a>
+<span class="sourceLineNo">18048</span>                        break;<a name="line.18048"></a>
+<span class="sourceLineNo">18049</span>                case Dataset.FLOAT32:<a name="line.18049"></a>
+<span class="sourceLineNo">18050</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.18050"></a>
+<span class="sourceLineNo">18051</span>                        if (it.isOutputDouble()) {<a name="line.18051"></a>
+<span class="sourceLineNo">18052</span>                                while (it.hasNext()) {<a name="line.18052"></a>
+<span class="sourceLineNo">18053</span>                                        final double ix = it.aDouble;<a name="line.18053"></a>
+<span class="sourceLineNo">18054</span>                                        float ox;<a name="line.18054"></a>
+<span class="sourceLineNo">18055</span>                                        ox = (float) (Math.sin(ix));<a name="line.18055"></a>
+<span class="sourceLineNo">18056</span>                                        of32data[it.oIndex] = ox;<a name="line.18056"></a>
+<span class="sourceLineNo">18057</span>                                }<a name="line.18057"></a>
+<span class="sourceLineNo">18058</span>                        } else {<a name="line.18058"></a>
+<span class="sourceLineNo">18059</span>                                while (it.hasNext()) {<a name="line.18059"></a>
+<span class="sourceLineNo">18060</span>                                        final long ix = it.aLong;<a name="line.18060"></a>
+<span class="sourceLineNo">18061</span>                                        float ox;<a name="line.18061"></a>
+<span class="sourceLineNo">18062</span>                                        ox = (float) (Math.sin(ix));<a name="line.18062"></a>
+<span class="sourceLineNo">18063</span>                                        of32data[it.oIndex] = ox;<a name="line.18063"></a>
+<span class="sourceLineNo">18064</span>                                }<a name="line.18064"></a>
+<span class="sourceLineNo">18065</span>                        }<a name="line.18065"></a>
+<span class="sourceLineNo">18066</span>                        break;<a name="line.18066"></a>
+<span class="sourceLineNo">18067</span>                case Dataset.FLOAT64:<a name="line.18067"></a>
+<span class="sourceLineNo">18068</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.18068"></a>
+<span class="sourceLineNo">18069</span>                        if (it.isOutputDouble()) {<a name="line.18069"></a>
+<span class="sourceLineNo">18070</span>                                while (it.hasNext()) {<a name="line.18070"></a>
+<span class="sourceLineNo">18071</span>                                        final double ix = it.aDouble;<a name="line.18071"></a>
+<span class="sourceLineNo">18072</span>                                        double ox;<a name="line.18072"></a>
+<span class="sourceLineNo">18073</span>                                        ox = (Math.sin(ix));<a name="line.18073"></a>
+<span class="sourceLineNo">18074</span>                                        of64data[it.oIndex] = ox;<a name="line.18074"></a>
+<span class="sourceLineNo">18075</span>                                }<a name="line.18075"></a>
+<span class="sourceLineNo">18076</span>                        } else {<a name="line.18076"></a>
+<span class="sourceLineNo">18077</span>                                while (it.hasNext()) {<a name="line.18077"></a>
+<span class="sourceLineNo">18078</span>                                        final long ix = it.aLong;<a name="line.18078"></a>
+<span class="sourceLineNo">18079</span>                                        double ox;<a name="line.18079"></a>
+<span class="sourceLineNo">18080</span>                                        ox = (Math.sin(ix));<a name="line.18080"></a>
+<span class="sourceLineNo">18081</span>                                        of64data[it.oIndex] = ox;<a name="line.18081"></a>
+<span class="sourceLineNo">18082</span>                                }<a name="line.18082"></a>
+<span class="sourceLineNo">18083</span>                        }<a name="line.18083"></a>
+<span class="sourceLineNo">18084</span>                        break;<a name="line.18084"></a>
+<span class="sourceLineNo">18085</span>                case Dataset.ARRAYFLOAT32:<a name="line.18085"></a>
+<span class="sourceLineNo">18086</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.18086"></a>
+<span class="sourceLineNo">18087</span>                        if (is == 1) {<a name="line.18087"></a>
+<span class="sourceLineNo">18088</span>                                if (it.isOutputDouble()) {<a name="line.18088"></a>
+<span class="sourceLineNo">18089</span>                                        while (it.hasNext()) {<a name="line.18089"></a>
+<span class="sourceLineNo">18090</span>                                                final double ix = it.aDouble;<a name="line.18090"></a>
+<span class="sourceLineNo">18091</span>                                                float ox;<a name="line.18091"></a>
+<span class="sourceLineNo">18092</span>                                                ox = (float) (Math.sin(ix));<a name="line.18092"></a>
+<span class="sourceLineNo">18093</span>                                                oaf32data[it.oIndex] = ox;<a name="line.18093"></a>
+<span class="sourceLineNo">18094</span>                                        }<a name="line.18094"></a>
+<span class="sourceLineNo">18095</span>                                } else {<a name="line.18095"></a>
+<span class="sourceLineNo">18096</span>                                        while (it.hasNext()) {<a name="line.18096"></a>
+<span class="sourceLineNo">18097</span>                                                final long ix = it.aLong;<a name="line.18097"></a>
+<span class="sourceLineNo">18098</span>                                                float ox;<a name="line.18098"></a>
+<span class="sourceLineNo">18099</span>                                                ox = (float) (Math.sin(ix));<a name="line.18099"></a>
+<span class="sourceLineNo">18100</span>                                                oaf32data[it.oIndex] = ox;<a name="line.18100"></a>
+<span class="sourceLineNo">18101</span>                                        }<a name="line.18101"></a>
+<span class="sourceLineNo">18102</span>                                }<a name="line.18102"></a>
+<span class="sourceLineNo">18103</span>                        } else if (as == 1) {<a name="line.18103"></a>
+<span class="sourceLineNo">18104</span>                                if (it.isOutputDouble()) {<a name="line.18104"></a>
+<span class="sourceLineNo">18105</span>                                        while (it.hasNext()) {<a name="line.18105"></a>
+<span class="sourceLineNo">18106</span>                                                final double ix = it.aDouble;<a name="line.18106"></a>
+<span class="sourceLineNo">18107</span>                                                float ox;<a name="line.18107"></a>
+<span class="sourceLineNo">18108</span>                                                ox = (float) (Math.sin(ix));<a name="line.18108"></a>
+<span class="sourceLineNo">18109</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18109"></a>
+<span class="sourceLineNo">18110</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.18110"></a>
+<span class="sourceLineNo">18111</span>                                                }<a name="line.18111"></a>
+<span class="sourceLineNo">18112</span>                                        }<a name="line.18112"></a>
+<span class="sourceLineNo">18113</span>                                } else {<a name="line.18113"></a>
+<span class="sourceLineNo">18114</span>                                        while (it.hasNext()) {<a name="line.18114"></a>
+<span class="sourceLineNo">18115</span>                                                final long ix = it.aLong;<a name="line.18115"></a>
+<span class="sourceLineNo">18116</span>                                                float ox;<a name="line.18116"></a>
+<span class="sourceLineNo">18117</span>                                                ox = (float) (Math.sin(ix));<a name="line.18117"></a>
+<span class="sourceLineNo">18118</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18118"></a>
+<span class="sourceLineNo">18119</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.18119"></a>
+<span class="sourceLineNo">18120</span>                                                }<a name="line.18120"></a>
+<span class="sourceLineNo">18121</span>                                        }<a name="line.18121"></a>
+<span class="sourceLineNo">18122</span>                                }<a name="line.18122"></a>
+<span class="sourceLineNo">18123</span>                        } else {<a name="line.18123"></a>
+<span class="sourceLineNo">18124</span>                                if (it.isOutputDouble()) {<a name="line.18124"></a>
+<span class="sourceLineNo">18125</span>                                        while (it.hasNext()) {<a name="line.18125"></a>
+<span class="sourceLineNo">18126</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18126"></a>
+<span class="sourceLineNo">18127</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.18127"></a>
+<span class="sourceLineNo">18128</span>                                                        float ox;<a name="line.18128"></a>
+<span class="sourceLineNo">18129</span>                                                        ox = (float) (Math.sin(ix));<a name="line.18129"></a>
+<span class="sourceLineNo">18130</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.18130"></a>
+<span class="sourceLineNo">18131</span>                                                }<a name="line.18131"></a>
+<span class="sourceLineNo">18132</span>                                        }<a name="line.18132"></a>
+<span class="sourceLineNo">18133</span>                                } else {<a name="line.18133"></a>
+<span class="sourceLineNo">18134</span>                                        while (it.hasNext()) {<a name="line.18134"></a>
+<span class="sourceLineNo">18135</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18135"></a>
+<span class="sourceLineNo">18136</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.18136"></a>
+<span class="sourceLineNo">18137</span>                                                        float ox;<a name="line.18137"></a>
+<span class="sourceLineNo">18138</span>                                                        ox = (float) (Math.sin(ix));<a name="line.18138"></a>
+<span class="sourceLineNo">18139</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.18139"></a>
+<span class="sourceLineNo">18140</span>                                                }<a name="line.18140"></a>
+<span class="sourceLineNo">18141</span>                                        }<a name="line.18141"></a>
+<span class="sourceLineNo">18142</span>                                }<a name="line.18142"></a>
+<span class="sourceLineNo">18143</span>                        }<a name="line.18143"></a>
+<span class="sourceLineNo">18144</span>                        break;<a name="line.18144"></a>
+<span class="sourceLineNo">18145</span>                case Dataset.ARRAYFLOAT64:<a name="line.18145"></a>
+<span class="sourceLineNo">18146</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.18146"></a>
+<span class="sourceLineNo">18147</span>                        if (is == 1) {<a name="line.18147"></a>
+<span class="sourceLineNo">18148</span>                                if (it.isOutputDouble()) {<a name="line.18148"></a>
+<span class="sourceLineNo">18149</span>                                        while (it.hasNext()) {<a name="line.18149"></a>
+<span class="sourceLineNo">18150</span>                                                final double ix = it.aDouble;<a name="line.18150"></a>
+<span class="sourceLineNo">18151</span>                                                double ox;<a name="line.18151"></a>
+<span class="sourceLineNo">18152</span>                                                ox = (Math.sin(ix));<a name="line.18152"></a>
+<span class="sourceLineNo">18153</span>                                                oaf64data[it.oIndex] = ox;<a name="line.18153"></a>
+<span class="sourceLineNo">18154</span>                                        }<a name="line.18154"></a>
+<span class="sourceLineNo">18155</span>                                } else {<a name="line.18155"></a>
+<span class="sourceLineNo">18156</span>                                        while (it.hasNext()) {<a name="line.18156"></a>
+<span class="sourceLineNo">18157</span>                                                final long ix = it.aLong;<a name="line.18157"></a>
+<span class="sourceLineNo">18158</span>                                                double ox;<a name="line.18158"></a>
+<span class="sourceLineNo">18159</span>                                                ox = (Math.sin(ix));<a name="line.18159"></a>
+<span class="sourceLineNo">18160</span>                                                oaf64data[it.oIndex] = ox;<a name="line.18160"></a>
+<span class="sourceLineNo">18161</span>                                        }<a name="line.18161"></a>
+<span class="sourceLineNo">18162</span>                                }<a name="line.18162"></a>
+<span class="sourceLineNo">18163</span>                        } else if (as == 1) {<a name="line.18163"></a>
+<span class="sourceLineNo">18164</span>                                if (it.isOutputDouble()) {<a name="line.18164"></a>
+<span class="sourceLineNo">18165</span>                                        while (it.hasNext()) {<a name="line.18165"></a>
+<span class="sourceLineNo">18166</span>                                                final double ix = it.aDouble;<a name="line.18166"></a>
+<span class="sourceLineNo">18167</span>                                                double ox;<a name="line.18167"></a>
+<span class="sourceLineNo">18168</span>                                                ox = (Math.sin(ix));<a name="line.18168"></a>
+<span class="sourceLineNo">18169</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18169"></a>
+<span class="sourceLineNo">18170</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.18170"></a>
+<span class="sourceLineNo">18171</span>                                                }<a name="line.18171"></a>
+<span class="sourceLineNo">18172</span>                                        }<a name="line.18172"></a>
+<span class="sourceLineNo">18173</span>                                } else {<a name="line.18173"></a>
+<span class="sourceLineNo">18174</span>                                        while (it.hasNext()) {<a name="line.18174"></a>
+<span class="sourceLineNo">18175</span>                                                final long ix = it.aLong;<a name="line.18175"></a>
+<span class="sourceLineNo">18176</span>                                                double ox;<a name="line.18176"></a>
+<span class="sourceLineNo">18177</span>                                                ox = (Math.sin(ix));<a name="line.18177"></a>
+<span class="sourceLineNo">18178</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18178"></a>
+<span class="sourceLineNo">18179</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.18179"></a>
+<span class="sourceLineNo">18180</span>                                                }<a name="line.18180"></a>
+<span class="sourceLineNo">18181</span>                                        }<a name="line.18181"></a>
+<span class="sourceLineNo">18182</span>                                }<a name="line.18182"></a>
+<span class="sourceLineNo">18183</span>                        } else {<a name="line.18183"></a>
+<span class="sourceLineNo">18184</span>                                if (it.isOutputDouble()) {<a name="line.18184"></a>
+<span class="sourceLineNo">18185</span>                                        while (it.hasNext()) {<a name="line.18185"></a>
+<span class="sourceLineNo">18186</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18186"></a>
+<span class="sourceLineNo">18187</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.18187"></a>
+<span class="sourceLineNo">18188</span>                                                        double ox;<a name="line.18188"></a>
+<span class="sourceLineNo">18189</span>                                                        ox = (Math.sin(ix));<a name="line.18189"></a>
+<span class="sourceLineNo">18190</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.18190"></a>
+<span class="sourceLineNo">18191</span>                                                }<a name="line.18191"></a>
+<span class="sourceLineNo">18192</span>                                        }<a name="line.18192"></a>
+<span class="sourceLineNo">18193</span>                                } else {<a name="line.18193"></a>
+<span class="sourceLineNo">18194</span>                                        while (it.hasNext()) {<a name="line.18194"></a>
+<span class="sourceLineNo">18195</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18195"></a>
+<span class="sourceLineNo">18196</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.18196"></a>
+<span class="sourceLineNo">18197</span>                                                        double ox;<a name="line.18197"></a>
+<span class="sourceLineNo">18198</span>                                                        ox = (Math.sin(ix));<a name="line.18198"></a>
+<span class="sourceLineNo">18199</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.18199"></a>
+<span class="sourceLineNo">18200</span>                                                }<a name="line.18200"></a>
+<span class="sourceLineNo">18201</span>                                        }<a name="line.18201"></a>
+<span class="sourceLineNo">18202</span>                                }<a name="line.18202"></a>
+<span class="sourceLineNo">18203</span>                        }<a name="line.18203"></a>
+<span class="sourceLineNo">18204</span>                        break;<a name="line.18204"></a>
+<span class="sourceLineNo">18205</span>                case Dataset.COMPLEX64:<a name="line.18205"></a>
+<span class="sourceLineNo">18206</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.18206"></a>
+<span class="sourceLineNo">18207</span>                        if (!da.isComplex()) {<a name="line.18207"></a>
+<span class="sourceLineNo">18208</span>                                if (it.isOutputDouble()) {<a name="line.18208"></a>
+<span class="sourceLineNo">18209</span>                                        final double iy = 0;<a name="line.18209"></a>
+<span class="sourceLineNo">18210</span>                                        while (it.hasNext()) {<a name="line.18210"></a>
+<span class="sourceLineNo">18211</span>                                                final double ix = it.aDouble;<a name="line.18211"></a>
+<span class="sourceLineNo">18212</span>                                                float ox;<a name="line.18212"></a>
+<span class="sourceLineNo">18213</span>                                                float oy;<a name="line.18213"></a>
+<span class="sourceLineNo">18214</span>                                                ox = (float) (Math.sin(ix)*Math.cosh(iy));<a name="line.18214"></a>
+<span class="sourceLineNo">18215</span>                                                oy = (float) (Math.cos(ix)*Math.sinh(iy));<a name="line.18215"></a>
+<span class="sourceLineNo">18216</span>                                                oc64data[it.oIndex] = ox;<a name="line.18216"></a>
+<span class="sourceLineNo">18217</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.18217"></a>
+<span class="sourceLineNo">18218</span>                                        }<a name="line.18218"></a>
+<span class="sourceLineNo">18219</span>                                } else {<a name="line.18219"></a>
+<span class="sourceLineNo">18220</span>                                        final long iy = 0;<a name="line.18220"></a>
+<span class="sourceLineNo">18221</span>                                        while (it.hasNext()) {<a name="line.18221"></a>
+<span class="sourceLineNo">18222</span>                                                final long ix = it.aLong;<a name="line.18222"></a>
+<span class="sourceLineNo">18223</span>                                                float ox;<a name="line.18223"></a>
+<span class="sourceLineNo">18224</span>                                                float oy;<a name="line.18224"></a>
+<span class="sourceLineNo">18225</span>                                                ox = (float) toLong(Math.sin(ix)*Math.cosh(iy));<a name="line.18225"></a>
+<span class="sourceLineNo">18226</span>                                                oy = (float) toLong(Math.cos(ix)*Math.sinh(iy));<a name="line.18226"></a>
+<span class="sourceLineNo">18227</span>                                                oc64data[it.oIndex] = ox;<a name="line.18227"></a>
+<span class="sourceLineNo">18228</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.18228"></a>
+<span class="sourceLineNo">18229</span>                                        }<a name="line.18229"></a>
+<span class="sourceLineNo">18230</span>                                }<a name="line.18230"></a>
+<span class="sourceLineNo">18231</span>                        } else {<a name="line.18231"></a>
+<span class="sourceLineNo">18232</span>                                while (it.hasNext()) {<a name="line.18232"></a>
+<span class="sourceLineNo">18233</span>                                        final double ix = it.aDouble;<a name="line.18233"></a>
+<span class="sourceLineNo">18234</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.18234"></a>
+<span class="sourceLineNo">18235</span>                                        float ox;<a name="line.18235"></a>
+<span class="sourceLineNo">18236</span>                                        float oy;<a name="line.18236"></a>
+<span class="sourceLineNo">18237</span>                                        ox = (float) (Math.sin(ix)*Math.cosh(iy));<a name="line.18237"></a>
+<span class="sourceLineNo">18238</span>                                        oy = (float) (Math.cos(ix)*Math.sinh(iy));<a name="line.18238"></a>
+<span class="sourceLineNo">18239</span>                                        oc64data[it.oIndex] = ox;<a name="line.18239"></a>
+<span class="sourceLineNo">18240</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.18240"></a>
+<span class="sourceLineNo">18241</span>                                }<a name="line.18241"></a>
+<span class="sourceLineNo">18242</span>                        }<a name="line.18242"></a>
+<span class="sourceLineNo">18243</span>                        break;<a name="line.18243"></a>
+<span class="sourceLineNo">18244</span>                case Dataset.COMPLEX128:<a name="line.18244"></a>
+<span class="sourceLineNo">18245</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.18245"></a>
+<span class="sourceLineNo">18246</span>                        if (!da.isComplex()) {<a name="line.18246"></a>
+<span class="sourceLineNo">18247</span>                                if (it.isOutputDouble()) {<a name="line.18247"></a>
+<span class="sourceLineNo">18248</span>                                        final double iy = 0;<a name="line.18248"></a>
+<span class="sourceLineNo">18249</span>                                        while (it.hasNext()) {<a name="line.18249"></a>
+<span class="sourceLineNo">18250</span>                                                final double ix = it.aDouble;<a name="line.18250"></a>
+<span class="sourceLineNo">18251</span>                                                double ox;<a name="line.18251"></a>
+<span class="sourceLineNo">18252</span>                                                double oy;<a name="line.18252"></a>
+<span class="sourceLineNo">18253</span>                                                ox = (Math.sin(ix)*Math.cosh(iy));<a name="line.18253"></a>
+<span class="sourceLineNo">18254</span>                                                oy = (Math.cos(ix)*Math.sinh(iy));<a name="line.18254"></a>
+<span class="sourceLineNo">18255</span>                                                oc128data[it.oIndex] = ox;<a name="line.18255"></a>
+<span class="sourceLineNo">18256</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.18256"></a>
+<span class="sourceLineNo">18257</span>                                        }<a name="line.18257"></a>
+<span class="sourceLineNo">18258</span>                                } else {<a name="line.18258"></a>
+<span class="sourceLineNo">18259</span>                                        final long iy = 0;<a name="line.18259"></a>
+<span class="sourceLineNo">18260</span>                                        while (it.hasNext()) {<a name="line.18260"></a>
+<span class="sourceLineNo">18261</span>                                                final long ix = it.aLong;<a name="line.18261"></a>
+<span class="sourceLineNo">18262</span>                                                double ox;<a name="line.18262"></a>
+<span class="sourceLineNo">18263</span>                                                double oy;<a name="line.18263"></a>
+<span class="sourceLineNo">18264</span>                                                ox = (double) (Math.sin(ix)*Math.cosh(iy));<a name="line.18264"></a>
+<span class="sourceLineNo">18265</span>                                                oy = (double) (Math.cos(ix)*Math.sinh(iy));<a name="line.18265"></a>
+<span class="sourceLineNo">18266</span>                                                oc128data[it.oIndex] = ox;<a name="line.18266"></a>
+<span class="sourceLineNo">18267</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.18267"></a>
+<span class="sourceLineNo">18268</span>                                        }<a name="line.18268"></a>
+<span class="sourceLineNo">18269</span>                                }<a name="line.18269"></a>
+<span class="sourceLineNo">18270</span>                        } else {<a name="line.18270"></a>
+<span class="sourceLineNo">18271</span>                                while (it.hasNext()) {<a name="line.18271"></a>
+<span class="sourceLineNo">18272</span>                                        final double ix = it.aDouble;<a name="line.18272"></a>
+<span class="sourceLineNo">18273</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.18273"></a>
+<span class="sourceLineNo">18274</span>                                        double ox;<a name="line.18274"></a>
+<span class="sourceLineNo">18275</span>                                        double oy;<a name="line.18275"></a>
+<span class="sourceLineNo">18276</span>                                        ox = (Math.sin(ix)*Math.cosh(iy));<a name="line.18276"></a>
+<span class="sourceLineNo">18277</span>                                        oy = (Math.cos(ix)*Math.sinh(iy));<a name="line.18277"></a>
+<span class="sourceLineNo">18278</span>                                        oc128data[it.oIndex] = ox;<a name="line.18278"></a>
+<span class="sourceLineNo">18279</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.18279"></a>
+<span class="sourceLineNo">18280</span>                                }<a name="line.18280"></a>
+<span class="sourceLineNo">18281</span>                        }<a name="line.18281"></a>
+<span class="sourceLineNo">18282</span>                        break;<a name="line.18282"></a>
+<span class="sourceLineNo">18283</span>                default:<a name="line.18283"></a>
+<span class="sourceLineNo">18284</span>                        throw new IllegalArgumentException("sin supports integer, compound integer, real, compound real, complex datasets only");<a name="line.18284"></a>
+<span class="sourceLineNo">18285</span>                }<a name="line.18285"></a>
+<span class="sourceLineNo">18286</span><a name="line.18286"></a>
+<span class="sourceLineNo">18287</span>                addFunctionName(result, "sin");<a name="line.18287"></a>
+<span class="sourceLineNo">18288</span>                return result;<a name="line.18288"></a>
+<span class="sourceLineNo">18289</span>        }<a name="line.18289"></a>
+<span class="sourceLineNo">18290</span><a name="line.18290"></a>
+<span class="sourceLineNo">18291</span>        /**<a name="line.18291"></a>
+<span class="sourceLineNo">18292</span>         * cos - evaluate the cosine function on each element of the dataset<a name="line.18292"></a>
+<span class="sourceLineNo">18293</span>         * @param a<a name="line.18293"></a>
+<span class="sourceLineNo">18294</span>         * @return dataset<a name="line.18294"></a>
+<span class="sourceLineNo">18295</span>         */<a name="line.18295"></a>
+<span class="sourceLineNo">18296</span>        public static Dataset cos(final Object a) {<a name="line.18296"></a>
+<span class="sourceLineNo">18297</span>                return cos(a, null);<a name="line.18297"></a>
+<span class="sourceLineNo">18298</span>        }<a name="line.18298"></a>
+<span class="sourceLineNo">18299</span><a name="line.18299"></a>
+<span class="sourceLineNo">18300</span>        /**<a name="line.18300"></a>
+<span class="sourceLineNo">18301</span>         * cos - evaluate the cosine function on each element of the dataset<a name="line.18301"></a>
+<span class="sourceLineNo">18302</span>         * @param a<a name="line.18302"></a>
+<span class="sourceLineNo">18303</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.18303"></a>
+<span class="sourceLineNo">18304</span>         * @return dataset<a name="line.18304"></a>
+<span class="sourceLineNo">18305</span>         */<a name="line.18305"></a>
+<span class="sourceLineNo">18306</span>        public static Dataset cos(final Object a, final Dataset o) {<a name="line.18306"></a>
+<span class="sourceLineNo">18307</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.18307"></a>
+<span class="sourceLineNo">18308</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.18308"></a>
+<span class="sourceLineNo">18309</span>                final Dataset result = it.getOutput();<a name="line.18309"></a>
+<span class="sourceLineNo">18310</span>                if (!result.isComplex()) {<a name="line.18310"></a>
+<span class="sourceLineNo">18311</span>                        if (da.isComplex()) {<a name="line.18311"></a>
+<span class="sourceLineNo">18312</span>                                da = da.getRealView();<a name="line.18312"></a>
+<span class="sourceLineNo">18313</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.18313"></a>
+<span class="sourceLineNo">18314</span>                        }<a name="line.18314"></a>
+<span class="sourceLineNo">18315</span>                }<a name="line.18315"></a>
+<span class="sourceLineNo">18316</span>                final int is = result.getElementsPerItem();<a name="line.18316"></a>
+<span class="sourceLineNo">18317</span>                final int as = da.getElementsPerItem();<a name="line.18317"></a>
+<span class="sourceLineNo">18318</span>                final int dt = result.getDType();<a name="line.18318"></a>
+<span class="sourceLineNo">18319</span><a name="line.18319"></a>
+<span class="sourceLineNo">18320</span>                switch(dt) {<a name="line.18320"></a>
+<span class="sourceLineNo">18321</span>                case Dataset.INT8:<a name="line.18321"></a>
+<span class="sourceLineNo">18322</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.18322"></a>
+<span class="sourceLineNo">18323</span>                        if (it.isOutputDouble()) {<a name="line.18323"></a>
+<span class="sourceLineNo">18324</span>                                while (it.hasNext()) {<a name="line.18324"></a>
+<span class="sourceLineNo">18325</span>                                        final double ix = it.aDouble;<a name="line.18325"></a>
+<span class="sourceLineNo">18326</span>                                        byte ox;<a name="line.18326"></a>
+<span class="sourceLineNo">18327</span>                                        ox = (byte) toLong(Math.cos(ix));<a name="line.18327"></a>
+<span class="sourceLineNo">18328</span>                                        oi8data[it.oIndex] = ox;<a name="line.18328"></a>
+<span class="sourceLineNo">18329</span>                                }<a name="line.18329"></a>
+<span class="sourceLineNo">18330</span>                        } else {<a name="line.18330"></a>
+<span class="sourceLineNo">18331</span>                                while (it.hasNext()) {<a name="line.18331"></a>
+<span class="sourceLineNo">18332</span>                                        final long ix = it.aLong;<a name="line.18332"></a>
+<span class="sourceLineNo">18333</span>                                        byte ox;<a name="line.18333"></a>
+<span class="sourceLineNo">18334</span>                                        ox = (byte) toLong(Math.cos(ix));<a name="line.18334"></a>
+<span class="sourceLineNo">18335</span>                                        oi8data[it.oIndex] = ox;<a name="line.18335"></a>
+<span class="sourceLineNo">18336</span>                                }<a name="line.18336"></a>
+<span class="sourceLineNo">18337</span>                        }<a name="line.18337"></a>
+<span class="sourceLineNo">18338</span>                        break;<a name="line.18338"></a>
+<span class="sourceLineNo">18339</span>                case Dataset.INT16:<a name="line.18339"></a>
+<span class="sourceLineNo">18340</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.18340"></a>
+<span class="sourceLineNo">18341</span>                        if (it.isOutputDouble()) {<a name="line.18341"></a>
+<span class="sourceLineNo">18342</span>                                while (it.hasNext()) {<a name="line.18342"></a>
+<span class="sourceLineNo">18343</span>                                        final double ix = it.aDouble;<a name="line.18343"></a>
+<span class="sourceLineNo">18344</span>                                        short ox;<a name="line.18344"></a>
+<span class="sourceLineNo">18345</span>                                        ox = (short) toLong(Math.cos(ix));<a name="line.18345"></a>
+<span class="sourceLineNo">18346</span>                                        oi16data[it.oIndex] = ox;<a name="line.18346"></a>
+<span class="sourceLineNo">18347</span>                                }<a name="line.18347"></a>
+<span class="sourceLineNo">18348</span>                        } else {<a name="line.18348"></a>
+<span class="sourceLineNo">18349</span>                                while (it.hasNext()) {<a name="line.18349"></a>
+<span class="sourceLineNo">18350</span>                                        final long ix = it.aLong;<a name="line.18350"></a>
+<span class="sourceLineNo">18351</span>                                        short ox;<a name="line.18351"></a>
+<span class="sourceLineNo">18352</span>                                        ox = (short) toLong(Math.cos(ix));<a name="line.18352"></a>
+<span class="sourceLineNo">18353</span>                                        oi16data[it.oIndex] = ox;<a name="line.18353"></a>
+<span class="sourceLineNo">18354</span>                                }<a name="line.18354"></a>
+<span class="sourceLineNo">18355</span>                        }<a name="line.18355"></a>
+<span class="sourceLineNo">18356</span>                        break;<a name="line.18356"></a>
+<span class="sourceLineNo">18357</span>                case Dataset.INT64:<a name="line.18357"></a>
+<span class="sourceLineNo">18358</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.18358"></a>
+<span class="sourceLineNo">18359</span>                        if (it.isOutputDouble()) {<a name="line.18359"></a>
+<span class="sourceLineNo">18360</span>                                while (it.hasNext()) {<a name="line.18360"></a>
+<span class="sourceLineNo">18361</span>                                        final double ix = it.aDouble;<a name="line.18361"></a>
+<span class="sourceLineNo">18362</span>                                        long ox;<a name="line.18362"></a>
+<span class="sourceLineNo">18363</span>                                        ox = toLong(Math.cos(ix));<a name="line.18363"></a>
+<span class="sourceLineNo">18364</span>                                        oi64data[it.oIndex] = ox;<a name="line.18364"></a>
+<span class="sourceLineNo">18365</span>                                }<a name="line.18365"></a>
+<span class="sourceLineNo">18366</span>                        } else {<a name="line.18366"></a>
+<span class="sourceLineNo">18367</span>                                while (it.hasNext()) {<a name="line.18367"></a>
+<span class="sourceLineNo">18368</span>                                        final long ix = it.aLong;<a name="line.18368"></a>
+<span class="sourceLineNo">18369</span>                                        long ox;<a name="line.18369"></a>
+<span class="sourceLineNo">18370</span>                                        ox = toLong(Math.cos(ix));<a name="line.18370"></a>
+<span class="sourceLineNo">18371</span>                                        oi64data[it.oIndex] = ox;<a name="line.18371"></a>
+<span class="sourceLineNo">18372</span>                                }<a name="line.18372"></a>
+<span class="sourceLineNo">18373</span>                        }<a name="line.18373"></a>
+<span class="sourceLineNo">18374</span>                        break;<a name="line.18374"></a>
+<span class="sourceLineNo">18375</span>                case Dataset.INT32:<a name="line.18375"></a>
+<span class="sourceLineNo">18376</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.18376"></a>
+<span class="sourceLineNo">18377</span>                        if (it.isOutputDouble()) {<a name="line.18377"></a>
+<span class="sourceLineNo">18378</span>                                while (it.hasNext()) {<a name="line.18378"></a>
+<span class="sourceLineNo">18379</span>                                        final double ix = it.aDouble;<a name="line.18379"></a>
+<span class="sourceLineNo">18380</span>                                        int ox;<a name="line.18380"></a>
+<span class="sourceLineNo">18381</span>                                        ox = (int) toLong(Math.cos(ix));<a name="line.18381"></a>
+<span class="sourceLineNo">18382</span>                                        oi32data[it.oIndex] = ox;<a name="line.18382"></a>
+<span class="sourceLineNo">18383</span>                                }<a name="line.18383"></a>
+<span class="sourceLineNo">18384</span>                        } else {<a name="line.18384"></a>
+<span class="sourceLineNo">18385</span>                                while (it.hasNext()) {<a name="line.18385"></a>
+<span class="sourceLineNo">18386</span>                                        final long ix = it.aLong;<a name="line.18386"></a>
+<span class="sourceLineNo">18387</span>                                        int ox;<a name="line.18387"></a>
+<span class="sourceLineNo">18388</span>                                        ox = (int) toLong(Math.cos(ix));<a name="line.18388"></a>
+<span class="sourceLineNo">18389</span>                                        oi32data[it.oIndex] = ox;<a name="line.18389"></a>
+<span class="sourceLineNo">18390</span>                                }<a name="line.18390"></a>
+<span class="sourceLineNo">18391</span>                        }<a name="line.18391"></a>
+<span class="sourceLineNo">18392</span>                        break;<a name="line.18392"></a>
+<span class="sourceLineNo">18393</span>                case Dataset.ARRAYINT8:<a name="line.18393"></a>
+<span class="sourceLineNo">18394</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.18394"></a>
+<span class="sourceLineNo">18395</span>                        if (is == 1) {<a name="line.18395"></a>
+<span class="sourceLineNo">18396</span>                                if (it.isOutputDouble()) {<a name="line.18396"></a>
+<span class="sourceLineNo">18397</span>                                        while (it.hasNext()) {<a name="line.18397"></a>
+<span class="sourceLineNo">18398</span>                                                final double ix = it.aDouble;<a name="line.18398"></a>
+<span class="sourceLineNo">18399</span>                                                byte ox;<a name="line.18399"></a>
+<span class="sourceLineNo">18400</span>                                                ox = (byte) toLong(Math.cos(ix));<a name="line.18400"></a>
+<span class="sourceLineNo">18401</span>                                                oai8data[it.oIndex] = ox;<a name="line.18401"></a>
+<span class="sourceLineNo">18402</span>                                        }<a name="line.18402"></a>
+<span class="sourceLineNo">18403</span>                                } else {<a name="line.18403"></a>
+<span class="sourceLineNo">18404</span>                                        while (it.hasNext()) {<a name="line.18404"></a>
+<span class="sourceLineNo">18405</span>                                                final long ix = it.aLong;<a name="line.18405"></a>
+<span class="sourceLineNo">18406</span>                                                byte ox;<a name="line.18406"></a>
+<span class="sourceLineNo">18407</span>                                                ox = (byte) toLong(Math.cos(ix));<a name="line.18407"></a>
+<span class="sourceLineNo">18408</span>                                                oai8data[it.oIndex] = ox;<a name="line.18408"></a>
+<span class="sourceLineNo">18409</span>                                        }<a name="line.18409"></a>
+<span class="sourceLineNo">18410</span>                                }<a name="line.18410"></a>
+<span class="sourceLineNo">18411</span>                        } else if (as == 1) {<a name="line.18411"></a>
+<span class="sourceLineNo">18412</span>                                if (it.isOutputDouble()) {<a name="line.18412"></a>
+<span class="sourceLineNo">18413</span>                                        while (it.hasNext()) {<a name="line.18413"></a>
+<span class="sourceLineNo">18414</span>                                                final double ix = it.aDouble;<a name="line.18414"></a>
+<span class="sourceLineNo">18415</span>                                                byte ox;<a name="line.18415"></a>
+<span class="sourceLineNo">18416</span>                                                ox = (byte) toLong(Math.cos(ix));<a name="line.18416"></a>
+<span class="sourceLineNo">18417</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18417"></a>
+<span class="sourceLineNo">18418</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.18418"></a>
+<span class="sourceLineNo">18419</span>                                                }<a name="line.18419"></a>
+<span class="sourceLineNo">18420</span>                                        }<a name="line.18420"></a>
+<span class="sourceLineNo">18421</span>                                } else {<a name="line.18421"></a>
+<span class="sourceLineNo">18422</span>                                        while (it.hasNext()) {<a name="line.18422"></a>
+<span class="sourceLineNo">18423</span>                                                final long ix = it.aLong;<a name="line.18423"></a>
+<span class="sourceLineNo">18424</span>                                                byte ox;<a name="line.18424"></a>
+<span class="sourceLineNo">18425</span>                                                ox = (byte) toLong(Math.cos(ix));<a name="line.18425"></a>
+<span class="sourceLineNo">18426</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18426"></a>
+<span class="sourceLineNo">18427</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.18427"></a>
+<span class="sourceLineNo">18428</span>                                                }<a name="line.18428"></a>
+<span class="sourceLineNo">18429</span>                                        }<a name="line.18429"></a>
+<span class="sourceLineNo">18430</span>                                }<a name="line.18430"></a>
+<span class="sourceLineNo">18431</span>                        } else {<a name="line.18431"></a>
+<span class="sourceLineNo">18432</span>                                if (it.isOutputDouble()) {<a name="line.18432"></a>
+<span class="sourceLineNo">18433</span>                                        while (it.hasNext()) {<a name="line.18433"></a>
+<span class="sourceLineNo">18434</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18434"></a>
+<span class="sourceLineNo">18435</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.18435"></a>
+<span class="sourceLineNo">18436</span>                                                        byte ox;<a name="line.18436"></a>
+<span class="sourceLineNo">18437</span>                                                        ox = (byte) toLong(Math.cos(ix));<a name="line.18437"></a>
+<span class="sourceLineNo">18438</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.18438"></a>
+<span class="sourceLineNo">18439</span>                                                }<a name="line.18439"></a>
+<span class="sourceLineNo">18440</span>                                        }<a name="line.18440"></a>
+<span class="sourceLineNo">18441</span>                                } else {<a name="line.18441"></a>
+<span class="sourceLineNo">18442</span>                                        while (it.hasNext()) {<a name="line.18442"></a>
+<span class="sourceLineNo">18443</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18443"></a>
+<span class="sourceLineNo">18444</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.18444"></a>
+<span class="sourceLineNo">18445</span>                                                        byte ox;<a name="line.18445"></a>
+<span class="sourceLineNo">18446</span>                                                        ox = (byte) toLong(Math.cos(ix));<a name="line.18446"></a>
+<span class="sourceLineNo">18447</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.18447"></a>
+<span class="sourceLineNo">18448</span>                                                }<a name="line.18448"></a>
+<span class="sourceLineNo">18449</span>                                        }<a name="line.18449"></a>
+<span class="sourceLineNo">18450</span>                                }<a name="line.18450"></a>
+<span class="sourceLineNo">18451</span>                        }<a name="line.18451"></a>
+<span class="sourceLineNo">18452</span>                        break;<a name="line.18452"></a>
+<span class="sourceLineNo">18453</span>                case Dataset.ARRAYINT16:<a name="line.18453"></a>
+<span class="sourceLineNo">18454</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.18454"></a>
+<span class="sourceLineNo">18455</span>                        if (is == 1) {<a name="line.18455"></a>
+<span class="sourceLineNo">18456</span>                                if (it.isOutputDouble()) {<a name="line.18456"></a>
+<span class="sourceLineNo">18457</span>                                        while (it.hasNext()) {<a name="line.18457"></a>
+<span class="sourceLineNo">18458</span>                                                final double ix = it.aDouble;<a name="line.18458"></a>
+<span class="sourceLineNo">18459</span>                                                short ox;<a name="line.18459"></a>
+<span class="sourceLineNo">18460</span>                                                ox = (short) toLong(Math.cos(ix));<a name="line.18460"></a>
+<span class="sourceLineNo">18461</span>                                                oai16data[it.oIndex] = ox;<a name="line.18461"></a>
+<span class="sourceLineNo">18462</span>                                        }<a name="line.18462"></a>
+<span class="sourceLineNo">18463</span>                                } else {<a name="line.18463"></a>
+<span class="sourceLineNo">18464</span>                                        while (it.hasNext()) {<a name="line.18464"></a>
+<span class="sourceLineNo">18465</span>                                                final long ix = it.aLong;<a name="line.18465"></a>
+<span class="sourceLineNo">18466</span>                                                short ox;<a name="line.18466"></a>
+<span class="sourceLineNo">18467</span>                                                ox = (short) toLong(Math.cos(ix));<a name="line.18467"></a>
+<span class="sourceLineNo">18468</span>                                                oai16data[it.oIndex] = ox;<a name="line.18468"></a>
+<span class="sourceLineNo">18469</span>                                        }<a name="line.18469"></a>
+<span class="sourceLineNo">18470</span>                                }<a name="line.18470"></a>
+<span class="sourceLineNo">18471</span>                        } else if (as == 1) {<a name="line.18471"></a>
+<span class="sourceLineNo">18472</span>                                if (it.isOutputDouble()) {<a name="line.18472"></a>
+<span class="sourceLineNo">18473</span>                                        while (it.hasNext()) {<a name="line.18473"></a>
+<span class="sourceLineNo">18474</span>                                                final double ix = it.aDouble;<a name="line.18474"></a>
+<span class="sourceLineNo">18475</span>                                                short ox;<a name="line.18475"></a>
+<span class="sourceLineNo">18476</span>                                                ox = (short) toLong(Math.cos(ix));<a name="line.18476"></a>
+<span class="sourceLineNo">18477</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18477"></a>
+<span class="sourceLineNo">18478</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.18478"></a>
+<span class="sourceLineNo">18479</span>                                                }<a name="line.18479"></a>
+<span class="sourceLineNo">18480</span>                                        }<a name="line.18480"></a>
+<span class="sourceLineNo">18481</span>                                } else {<a name="line.18481"></a>
+<span class="sourceLineNo">18482</span>                                        while (it.hasNext()) {<a name="line.18482"></a>
+<span class="sourceLineNo">18483</span>                                                final long ix = it.aLong;<a name="line.18483"></a>
+<span class="sourceLineNo">18484</span>                                                short ox;<a name="line.18484"></a>
+<span class="sourceLineNo">18485</span>                                                ox = (short) toLong(Math.cos(ix));<a name="line.18485"></a>
+<span class="sourceLineNo">18486</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18486"></a>
+<span class="sourceLineNo">18487</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.18487"></a>
+<span class="sourceLineNo">18488</span>                                                }<a name="line.18488"></a>
+<span class="sourceLineNo">18489</span>                                        }<a name="line.18489"></a>
+<span class="sourceLineNo">18490</span>                                }<a name="line.18490"></a>
+<span class="sourceLineNo">18491</span>                        } else {<a name="line.18491"></a>
+<span class="sourceLineNo">18492</span>                                if (it.isOutputDouble()) {<a name="line.18492"></a>
+<span class="sourceLineNo">18493</span>                                        while (it.hasNext()) {<a name="line.18493"></a>
+<span class="sourceLineNo">18494</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18494"></a>
+<span class="sourceLineNo">18495</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.18495"></a>
+<span class="sourceLineNo">18496</span>                                                        short ox;<a name="line.18496"></a>
+<span class="sourceLineNo">18497</span>                                                        ox = (short) toLong(Math.cos(ix));<a name="line.18497"></a>
+<span class="sourceLineNo">18498</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.18498"></a>
+<span class="sourceLineNo">18499</span>                                                }<a name="line.18499"></a>
+<span class="sourceLineNo">18500</span>                                        }<a name="line.18500"></a>
+<span class="sourceLineNo">18501</span>                                } else {<a name="line.18501"></a>
+<span class="sourceLineNo">18502</span>                                        while (it.hasNext()) {<a name="line.18502"></a>
+<span class="sourceLineNo">18503</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18503"></a>
+<span class="sourceLineNo">18504</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.18504"></a>
+<span class="sourceLineNo">18505</span>                                                        short ox;<a name="line.18505"></a>
+<span class="sourceLineNo">18506</span>                                                        ox = (short) toLong(Math.cos(ix));<a name="line.18506"></a>
+<span class="sourceLineNo">18507</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.18507"></a>
+<span class="sourceLineNo">18508</span>                                                }<a name="line.18508"></a>
+<span class="sourceLineNo">18509</span>                                        }<a name="line.18509"></a>
+<span class="sourceLineNo">18510</span>                                }<a name="line.18510"></a>
+<span class="sourceLineNo">18511</span>                        }<a name="line.18511"></a>
+<span class="sourceLineNo">18512</span>                        break;<a name="line.18512"></a>
+<span class="sourceLineNo">18513</span>                case Dataset.ARRAYINT64:<a name="line.18513"></a>
+<span class="sourceLineNo">18514</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.18514"></a>
+<span class="sourceLineNo">18515</span>                        if (is == 1) {<a name="line.18515"></a>
+<span class="sourceLineNo">18516</span>                                if (it.isOutputDouble()) {<a name="line.18516"></a>
+<span class="sourceLineNo">18517</span>                                        while (it.hasNext()) {<a name="line.18517"></a>
+<span class="sourceLineNo">18518</span>                                                final double ix = it.aDouble;<a name="line.18518"></a>
+<span class="sourceLineNo">18519</span>                                                long ox;<a name="line.18519"></a>
+<span class="sourceLineNo">18520</span>                                                ox = toLong(Math.cos(ix));<a name="line.18520"></a>
+<span class="sourceLineNo">18521</span>                                                oai64data[it.oIndex] = ox;<a name="line.18521"></a>
+<span class="sourceLineNo">18522</span>                                        }<a name="line.18522"></a>
+<span class="sourceLineNo">18523</span>                                } else {<a name="line.18523"></a>
+<span class="sourceLineNo">18524</span>                                        while (it.hasNext()) {<a name="line.18524"></a>
+<span class="sourceLineNo">18525</span>                                                final long ix = it.aLong;<a name="line.18525"></a>
+<span class="sourceLineNo">18526</span>                                                long ox;<a name="line.18526"></a>
+<span class="sourceLineNo">18527</span>                                                ox = toLong(Math.cos(ix));<a name="line.18527"></a>
+<span class="sourceLineNo">18528</span>                                                oai64data[it.oIndex] = ox;<a name="line.18528"></a>
+<span class="sourceLineNo">18529</span>                                        }<a name="line.18529"></a>
+<span class="sourceLineNo">18530</span>                                }<a name="line.18530"></a>
+<span class="sourceLineNo">18531</span>                        } else if (as == 1) {<a name="line.18531"></a>
+<span class="sourceLineNo">18532</span>                                if (it.isOutputDouble()) {<a name="line.18532"></a>
+<span class="sourceLineNo">18533</span>                                        while (it.hasNext()) {<a name="line.18533"></a>
+<span class="sourceLineNo">18534</span>                                                final double ix = it.aDouble;<a name="line.18534"></a>
+<span class="sourceLineNo">18535</span>                                                long ox;<a name="line.18535"></a>
+<span class="sourceLineNo">18536</span>                                                ox = toLong(Math.cos(ix));<a name="line.18536"></a>
+<span class="sourceLineNo">18537</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18537"></a>
+<span class="sourceLineNo">18538</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.18538"></a>
+<span class="sourceLineNo">18539</span>                                                }<a name="line.18539"></a>
+<span class="sourceLineNo">18540</span>                                        }<a name="line.18540"></a>
+<span class="sourceLineNo">18541</span>                                } else {<a name="line.18541"></a>
+<span class="sourceLineNo">18542</span>                                        while (it.hasNext()) {<a name="line.18542"></a>
+<span class="sourceLineNo">18543</span>                                                final long ix = it.aLong;<a name="line.18543"></a>
+<span class="sourceLineNo">18544</span>                                                long ox;<a name="line.18544"></a>
+<span class="sourceLineNo">18545</span>                                                ox = toLong(Math.cos(ix));<a name="line.18545"></a>
+<span class="sourceLineNo">18546</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18546"></a>
+<span class="sourceLineNo">18547</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.18547"></a>
+<span class="sourceLineNo">18548</span>                                                }<a name="line.18548"></a>
+<span class="sourceLineNo">18549</span>                                        }<a name="line.18549"></a>
+<span class="sourceLineNo">18550</span>                                }<a name="line.18550"></a>
+<span class="sourceLineNo">18551</span>                        } else {<a name="line.18551"></a>
+<span class="sourceLineNo">18552</span>                                if (it.isOutputDouble()) {<a name="line.18552"></a>
+<span class="sourceLineNo">18553</span>                                        while (it.hasNext()) {<a name="line.18553"></a>
+<span class="sourceLineNo">18554</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18554"></a>
+<span class="sourceLineNo">18555</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.18555"></a>
+<span class="sourceLineNo">18556</span>                                                        long ox;<a name="line.18556"></a>
+<span class="sourceLineNo">18557</span>                                                        ox = toLong(Math.cos(ix));<a name="line.18557"></a>
+<span class="sourceLineNo">18558</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.18558"></a>
+<span class="sourceLineNo">18559</span>                                                }<a name="line.18559"></a>
+<span class="sourceLineNo">18560</span>                                        }<a name="line.18560"></a>
+<span class="sourceLineNo">18561</span>                                } else {<a name="line.18561"></a>
+<span class="sourceLineNo">18562</span>                                        while (it.hasNext()) {<a name="line.18562"></a>
+<span class="sourceLineNo">18563</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18563"></a>
+<span class="sourceLineNo">18564</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.18564"></a>
+<span class="sourceLineNo">18565</span>                                                        long ox;<a name="line.18565"></a>
+<span class="sourceLineNo">18566</span>                                                        ox = toLong(Math.cos(ix));<a name="line.18566"></a>
+<span class="sourceLineNo">18567</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.18567"></a>
+<span class="sourceLineNo">18568</span>                                                }<a name="line.18568"></a>
+<span class="sourceLineNo">18569</span>                                        }<a name="line.18569"></a>
+<span class="sourceLineNo">18570</span>                                }<a name="line.18570"></a>
+<span class="sourceLineNo">18571</span>                        }<a name="line.18571"></a>
+<span class="sourceLineNo">18572</span>                        break;<a name="line.18572"></a>
+<span class="sourceLineNo">18573</span>                case Dataset.ARRAYINT32:<a name="line.18573"></a>
+<span class="sourceLineNo">18574</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.18574"></a>
+<span class="sourceLineNo">18575</span>                        if (is == 1) {<a name="line.18575"></a>
+<span class="sourceLineNo">18576</span>                                if (it.isOutputDouble()) {<a name="line.18576"></a>
+<span class="sourceLineNo">18577</span>                                        while (it.hasNext()) {<a name="line.18577"></a>
+<span class="sourceLineNo">18578</span>                                                final double ix = it.aDouble;<a name="line.18578"></a>
+<span class="sourceLineNo">18579</span>                                                int ox;<a name="line.18579"></a>
+<span class="sourceLineNo">18580</span>                                                ox = (int) toLong(Math.cos(ix));<a name="line.18580"></a>
+<span class="sourceLineNo">18581</span>                                                oai32data[it.oIndex] = ox;<a name="line.18581"></a>
+<span class="sourceLineNo">18582</span>                                        }<a name="line.18582"></a>
+<span class="sourceLineNo">18583</span>                                } else {<a name="line.18583"></a>
+<span class="sourceLineNo">18584</span>                                        while (it.hasNext()) {<a name="line.18584"></a>
+<span class="sourceLineNo">18585</span>                                                final long ix = it.aLong;<a name="line.18585"></a>
+<span class="sourceLineNo">18586</span>                                                int ox;<a name="line.18586"></a>
+<span class="sourceLineNo">18587</span>                                                ox = (int) toLong(Math.cos(ix));<a name="line.18587"></a>
+<span class="sourceLineNo">18588</span>                                                oai32data[it.oIndex] = ox;<a name="line.18588"></a>
+<span class="sourceLineNo">18589</span>                                        }<a name="line.18589"></a>
+<span class="sourceLineNo">18590</span>                                }<a name="line.18590"></a>
+<span class="sourceLineNo">18591</span>                        } else if (as == 1) {<a name="line.18591"></a>
+<span class="sourceLineNo">18592</span>                                if (it.isOutputDouble()) {<a name="line.18592"></a>
+<span class="sourceLineNo">18593</span>                                        while (it.hasNext()) {<a name="line.18593"></a>
+<span class="sourceLineNo">18594</span>                                                final double ix = it.aDouble;<a name="line.18594"></a>
+<span class="sourceLineNo">18595</span>                                                int ox;<a name="line.18595"></a>
+<span class="sourceLineNo">18596</span>                                                ox = (int) toLong(Math.cos(ix));<a name="line.18596"></a>
+<span class="sourceLineNo">18597</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18597"></a>
+<span class="sourceLineNo">18598</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.18598"></a>
+<span class="sourceLineNo">18599</span>                                                }<a name="line.18599"></a>
+<span class="sourceLineNo">18600</span>                                        }<a name="line.18600"></a>
+<span class="sourceLineNo">18601</span>                                } else {<a name="line.18601"></a>
+<span class="sourceLineNo">18602</span>                                        while (it.hasNext()) {<a name="line.18602"></a>
+<span class="sourceLineNo">18603</span>                                                final long ix = it.aLong;<a name="line.18603"></a>
+<span class="sourceLineNo">18604</span>                                                int ox;<a name="line.18604"></a>
+<span class="sourceLineNo">18605</span>                                                ox = (int) toLong(Math.cos(ix));<a name="line.18605"></a>
+<span class="sourceLineNo">18606</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18606"></a>
+<span class="sourceLineNo">18607</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.18607"></a>
+<span class="sourceLineNo">18608</span>                                                }<a name="line.18608"></a>
+<span class="sourceLineNo">18609</span>                                        }<a name="line.18609"></a>
+<span class="sourceLineNo">18610</span>                                }<a name="line.18610"></a>
+<span class="sourceLineNo">18611</span>                        } else {<a name="line.18611"></a>
+<span class="sourceLineNo">18612</span>                                if (it.isOutputDouble()) {<a name="line.18612"></a>
+<span class="sourceLineNo">18613</span>                                        while (it.hasNext()) {<a name="line.18613"></a>
+<span class="sourceLineNo">18614</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18614"></a>
+<span class="sourceLineNo">18615</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.18615"></a>
+<span class="sourceLineNo">18616</span>                                                        int ox;<a name="line.18616"></a>
+<span class="sourceLineNo">18617</span>                                                        ox = (int) toLong(Math.cos(ix));<a name="line.18617"></a>
+<span class="sourceLineNo">18618</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.18618"></a>
+<span class="sourceLineNo">18619</span>                                                }<a name="line.18619"></a>
+<span class="sourceLineNo">18620</span>                                        }<a name="line.18620"></a>
+<span class="sourceLineNo">18621</span>                                } else {<a name="line.18621"></a>
+<span class="sourceLineNo">18622</span>                                        while (it.hasNext()) {<a name="line.18622"></a>
+<span class="sourceLineNo">18623</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18623"></a>
+<span class="sourceLineNo">18624</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.18624"></a>
+<span class="sourceLineNo">18625</span>                                                        int ox;<a name="line.18625"></a>
+<span class="sourceLineNo">18626</span>                                                        ox = (int) toLong(Math.cos(ix));<a name="line.18626"></a>
+<span class="sourceLineNo">18627</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.18627"></a>
+<span class="sourceLineNo">18628</span>                                                }<a name="line.18628"></a>
+<span class="sourceLineNo">18629</span>                                        }<a name="line.18629"></a>
+<span class="sourceLineNo">18630</span>                                }<a name="line.18630"></a>
+<span class="sourceLineNo">18631</span>                        }<a name="line.18631"></a>
+<span class="sourceLineNo">18632</span>                        break;<a name="line.18632"></a>
+<span class="sourceLineNo">18633</span>                case Dataset.FLOAT32:<a name="line.18633"></a>
+<span class="sourceLineNo">18634</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.18634"></a>
+<span class="sourceLineNo">18635</span>                        if (it.isOutputDouble()) {<a name="line.18635"></a>
+<span class="sourceLineNo">18636</span>                                while (it.hasNext()) {<a name="line.18636"></a>
+<span class="sourceLineNo">18637</span>                                        final double ix = it.aDouble;<a name="line.18637"></a>
+<span class="sourceLineNo">18638</span>                                        float ox;<a name="line.18638"></a>
+<span class="sourceLineNo">18639</span>                                        ox = (float) (Math.cos(ix));<a name="line.18639"></a>
+<span class="sourceLineNo">18640</span>                                        of32data[it.oIndex] = ox;<a name="line.18640"></a>
+<span class="sourceLineNo">18641</span>                                }<a name="line.18641"></a>
+<span class="sourceLineNo">18642</span>                        } else {<a name="line.18642"></a>
+<span class="sourceLineNo">18643</span>                                while (it.hasNext()) {<a name="line.18643"></a>
+<span class="sourceLineNo">18644</span>                                        final long ix = it.aLong;<a name="line.18644"></a>
+<span class="sourceLineNo">18645</span>                                        float ox;<a name="line.18645"></a>
+<span class="sourceLineNo">18646</span>                                        ox = (float) (Math.cos(ix));<a name="line.18646"></a>
+<span class="sourceLineNo">18647</span>                                        of32data[it.oIndex] = ox;<a name="line.18647"></a>
+<span class="sourceLineNo">18648</span>                                }<a name="line.18648"></a>
+<span class="sourceLineNo">18649</span>                        }<a name="line.18649"></a>
+<span class="sourceLineNo">18650</span>                        break;<a name="line.18650"></a>
+<span class="sourceLineNo">18651</span>                case Dataset.FLOAT64:<a name="line.18651"></a>
+<span class="sourceLineNo">18652</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.18652"></a>
+<span class="sourceLineNo">18653</span>                        if (it.isOutputDouble()) {<a name="line.18653"></a>
+<span class="sourceLineNo">18654</span>                                while (it.hasNext()) {<a name="line.18654"></a>
+<span class="sourceLineNo">18655</span>                                        final double ix = it.aDouble;<a name="line.18655"></a>
+<span class="sourceLineNo">18656</span>                                        double ox;<a name="line.18656"></a>
+<span class="sourceLineNo">18657</span>                                        ox = (Math.cos(ix));<a name="line.18657"></a>
+<span class="sourceLineNo">18658</span>                                        of64data[it.oIndex] = ox;<a name="line.18658"></a>
+<span class="sourceLineNo">18659</span>                                }<a name="line.18659"></a>
+<span class="sourceLineNo">18660</span>                        } else {<a name="line.18660"></a>
+<span class="sourceLineNo">18661</span>                                while (it.hasNext()) {<a name="line.18661"></a>
+<span class="sourceLineNo">18662</span>                                        final long ix = it.aLong;<a name="line.18662"></a>
+<span class="sourceLineNo">18663</span>                                        double ox;<a name="line.18663"></a>
+<span class="sourceLineNo">18664</span>                                        ox = (Math.cos(ix));<a name="line.18664"></a>
+<span class="sourceLineNo">18665</span>                                        of64data[it.oIndex] = ox;<a name="line.18665"></a>
+<span class="sourceLineNo">18666</span>                                }<a name="line.18666"></a>
+<span class="sourceLineNo">18667</span>                        }<a name="line.18667"></a>
+<span class="sourceLineNo">18668</span>                        break;<a name="line.18668"></a>
+<span class="sourceLineNo">18669</span>                case Dataset.ARRAYFLOAT32:<a name="line.18669"></a>
+<span class="sourceLineNo">18670</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.18670"></a>
+<span class="sourceLineNo">18671</span>                        if (is == 1) {<a name="line.18671"></a>
+<span class="sourceLineNo">18672</span>                                if (it.isOutputDouble()) {<a name="line.18672"></a>
+<span class="sourceLineNo">18673</span>                                        while (it.hasNext()) {<a name="line.18673"></a>
+<span class="sourceLineNo">18674</span>                                                final double ix = it.aDouble;<a name="line.18674"></a>
+<span class="sourceLineNo">18675</span>                                                float ox;<a name="line.18675"></a>
+<span class="sourceLineNo">18676</span>                                                ox = (float) (Math.cos(ix));<a name="line.18676"></a>
+<span class="sourceLineNo">18677</span>                                                oaf32data[it.oIndex] = ox;<a name="line.18677"></a>
+<span class="sourceLineNo">18678</span>                                        }<a name="line.18678"></a>
+<span class="sourceLineNo">18679</span>                                } else {<a name="line.18679"></a>
+<span class="sourceLineNo">18680</span>                                        while (it.hasNext()) {<a name="line.18680"></a>
+<span class="sourceLineNo">18681</span>                                                final long ix = it.aLong;<a name="line.18681"></a>
+<span class="sourceLineNo">18682</span>                                                float ox;<a name="line.18682"></a>
+<span class="sourceLineNo">18683</span>                                                ox = (float) (Math.cos(ix));<a name="line.18683"></a>
+<span class="sourceLineNo">18684</span>                                                oaf32data[it.oIndex] = ox;<a name="line.18684"></a>
+<span class="sourceLineNo">18685</span>                                        }<a name="line.18685"></a>
+<span class="sourceLineNo">18686</span>                                }<a name="line.18686"></a>
+<span class="sourceLineNo">18687</span>                        } else if (as == 1) {<a name="line.18687"></a>
+<span class="sourceLineNo">18688</span>                                if (it.isOutputDouble()) {<a name="line.18688"></a>
+<span class="sourceLineNo">18689</span>                                        while (it.hasNext()) {<a name="line.18689"></a>
+<span class="sourceLineNo">18690</span>                                                final double ix = it.aDouble;<a name="line.18690"></a>
+<span class="sourceLineNo">18691</span>                                                float ox;<a name="line.18691"></a>
+<span class="sourceLineNo">18692</span>                                                ox = (float) (Math.cos(ix));<a name="line.18692"></a>
+<span class="sourceLineNo">18693</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18693"></a>
+<span class="sourceLineNo">18694</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.18694"></a>
+<span class="sourceLineNo">18695</span>                                                }<a name="line.18695"></a>
+<span class="sourceLineNo">18696</span>                                        }<a name="line.18696"></a>
+<span class="sourceLineNo">18697</span>                                } else {<a name="line.18697"></a>
+<span class="sourceLineNo">18698</span>                                        while (it.hasNext()) {<a name="line.18698"></a>
+<span class="sourceLineNo">18699</span>                                                final long ix = it.aLong;<a name="line.18699"></a>
+<span class="sourceLineNo">18700</span>                                                float ox;<a name="line.18700"></a>
+<span class="sourceLineNo">18701</span>                                                ox = (float) (Math.cos(ix));<a name="line.18701"></a>
+<span class="sourceLineNo">18702</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18702"></a>
+<span class="sourceLineNo">18703</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.18703"></a>
+<span class="sourceLineNo">18704</span>                                                }<a name="line.18704"></a>
+<span class="sourceLineNo">18705</span>                                        }<a name="line.18705"></a>
+<span class="sourceLineNo">18706</span>                                }<a name="line.18706"></a>
+<span class="sourceLineNo">18707</span>                        } else {<a name="line.18707"></a>
+<span class="sourceLineNo">18708</span>                                if (it.isOutputDouble()) {<a name="line.18708"></a>
+<span class="sourceLineNo">18709</span>                                        while (it.hasNext()) {<a name="line.18709"></a>
+<span class="sourceLineNo">18710</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18710"></a>
+<span class="sourceLineNo">18711</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.18711"></a>
+<span class="sourceLineNo">18712</span>                                                        float ox;<a name="line.18712"></a>
+<span class="sourceLineNo">18713</span>                                                        ox = (float) (Math.cos(ix));<a name="line.18713"></a>
+<span class="sourceLineNo">18714</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.18714"></a>
+<span class="sourceLineNo">18715</span>                                                }<a name="line.18715"></a>
+<span class="sourceLineNo">18716</span>                                        }<a name="line.18716"></a>
+<span class="sourceLineNo">18717</span>                                } else {<a name="line.18717"></a>
+<span class="sourceLineNo">18718</span>                                        while (it.hasNext()) {<a name="line.18718"></a>
+<span class="sourceLineNo">18719</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18719"></a>
+<span class="sourceLineNo">18720</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.18720"></a>
+<span class="sourceLineNo">18721</span>                                                        float ox;<a name="line.18721"></a>
+<span class="sourceLineNo">18722</span>                                                        ox = (float) (Math.cos(ix));<a name="line.18722"></a>
+<span class="sourceLineNo">18723</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.18723"></a>
+<span class="sourceLineNo">18724</span>                                                }<a name="line.18724"></a>
+<span class="sourceLineNo">18725</span>                                        }<a name="line.18725"></a>
+<span class="sourceLineNo">18726</span>                                }<a name="line.18726"></a>
+<span class="sourceLineNo">18727</span>                        }<a name="line.18727"></a>
+<span class="sourceLineNo">18728</span>                        break;<a name="line.18728"></a>
+<span class="sourceLineNo">18729</span>                case Dataset.ARRAYFLOAT64:<a name="line.18729"></a>
+<span class="sourceLineNo">18730</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.18730"></a>
+<span class="sourceLineNo">18731</span>                        if (is == 1) {<a name="line.18731"></a>
+<span class="sourceLineNo">18732</span>                                if (it.isOutputDouble()) {<a name="line.18732"></a>
+<span class="sourceLineNo">18733</span>                                        while (it.hasNext()) {<a name="line.18733"></a>
+<span class="sourceLineNo">18734</span>                                                final double ix = it.aDouble;<a name="line.18734"></a>
+<span class="sourceLineNo">18735</span>                                                double ox;<a name="line.18735"></a>
+<span class="sourceLineNo">18736</span>                                                ox = (Math.cos(ix));<a name="line.18736"></a>
+<span class="sourceLineNo">18737</span>                                                oaf64data[it.oIndex] = ox;<a name="line.18737"></a>
+<span class="sourceLineNo">18738</span>                                        }<a name="line.18738"></a>
+<span class="sourceLineNo">18739</span>                                } else {<a name="line.18739"></a>
+<span class="sourceLineNo">18740</span>                                        while (it.hasNext()) {<a name="line.18740"></a>
+<span class="sourceLineNo">18741</span>                                                final long ix = it.aLong;<a name="line.18741"></a>
+<span class="sourceLineNo">18742</span>                                                double ox;<a name="line.18742"></a>
+<span class="sourceLineNo">18743</span>                                                ox = (Math.cos(ix));<a name="line.18743"></a>
+<span class="sourceLineNo">18744</span>                                                oaf64data[it.oIndex] = ox;<a name="line.18744"></a>
+<span class="sourceLineNo">18745</span>                                        }<a name="line.18745"></a>
+<span class="sourceLineNo">18746</span>                                }<a name="line.18746"></a>
+<span class="sourceLineNo">18747</span>                        } else if (as == 1) {<a name="line.18747"></a>
+<span class="sourceLineNo">18748</span>                                if (it.isOutputDouble()) {<a name="line.18748"></a>
+<span class="sourceLineNo">18749</span>                                        while (it.hasNext()) {<a name="line.18749"></a>
+<span class="sourceLineNo">18750</span>                                                final double ix = it.aDouble;<a name="line.18750"></a>
+<span class="sourceLineNo">18751</span>                                                double ox;<a name="line.18751"></a>
+<span class="sourceLineNo">18752</span>                                                ox = (Math.cos(ix));<a name="line.18752"></a>
+<span class="sourceLineNo">18753</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18753"></a>
+<span class="sourceLineNo">18754</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.18754"></a>
+<span class="sourceLineNo">18755</span>                                                }<a name="line.18755"></a>
+<span class="sourceLineNo">18756</span>                                        }<a name="line.18756"></a>
+<span class="sourceLineNo">18757</span>                                } else {<a name="line.18757"></a>
+<span class="sourceLineNo">18758</span>                                        while (it.hasNext()) {<a name="line.18758"></a>
+<span class="sourceLineNo">18759</span>                                                final long ix = it.aLong;<a name="line.18759"></a>
+<span class="sourceLineNo">18760</span>                                                double ox;<a name="line.18760"></a>
+<span class="sourceLineNo">18761</span>                                                ox = (Math.cos(ix));<a name="line.18761"></a>
+<span class="sourceLineNo">18762</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18762"></a>
+<span class="sourceLineNo">18763</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.18763"></a>
+<span class="sourceLineNo">18764</span>                                                }<a name="line.18764"></a>
+<span class="sourceLineNo">18765</span>                                        }<a name="line.18765"></a>
+<span class="sourceLineNo">18766</span>                                }<a name="line.18766"></a>
+<span class="sourceLineNo">18767</span>                        } else {<a name="line.18767"></a>
+<span class="sourceLineNo">18768</span>                                if (it.isOutputDouble()) {<a name="line.18768"></a>
+<span class="sourceLineNo">18769</span>                                        while (it.hasNext()) {<a name="line.18769"></a>
+<span class="sourceLineNo">18770</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18770"></a>
+<span class="sourceLineNo">18771</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.18771"></a>
+<span class="sourceLineNo">18772</span>                                                        double ox;<a name="line.18772"></a>
+<span class="sourceLineNo">18773</span>                                                        ox = (Math.cos(ix));<a name="line.18773"></a>
+<span class="sourceLineNo">18774</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.18774"></a>
+<span class="sourceLineNo">18775</span>                                                }<a name="line.18775"></a>
+<span class="sourceLineNo">18776</span>                                        }<a name="line.18776"></a>
+<span class="sourceLineNo">18777</span>                                } else {<a name="line.18777"></a>
+<span class="sourceLineNo">18778</span>                                        while (it.hasNext()) {<a name="line.18778"></a>
+<span class="sourceLineNo">18779</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.18779"></a>
+<span class="sourceLineNo">18780</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.18780"></a>
+<span class="sourceLineNo">18781</span>                                                        double ox;<a name="line.18781"></a>
+<span class="sourceLineNo">18782</span>                                                        ox = (Math.cos(ix));<a name="line.18782"></a>
+<span class="sourceLineNo">18783</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.18783"></a>
+<span class="sourceLineNo">18784</span>                                                }<a name="line.18784"></a>
+<span class="sourceLineNo">18785</span>                                        }<a name="line.18785"></a>
+<span class="sourceLineNo">18786</span>                                }<a name="line.18786"></a>
+<span class="sourceLineNo">18787</span>                        }<a name="line.18787"></a>
+<span class="sourceLineNo">18788</span>                        break;<a name="line.18788"></a>
+<span class="sourceLineNo">18789</span>                case Dataset.COMPLEX64:<a name="line.18789"></a>
+<span class="sourceLineNo">18790</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.18790"></a>
+<span class="sourceLineNo">18791</span>                        if (!da.isComplex()) {<a name="line.18791"></a>
+<span class="sourceLineNo">18792</span>                                if (it.isOutputDouble()) {<a name="line.18792"></a>
+<span class="sourceLineNo">18793</span>                                        final double iy = 0;<a name="line.18793"></a>
+<span class="sourceLineNo">18794</span>                                        while (it.hasNext()) {<a name="line.18794"></a>
+<span class="sourceLineNo">18795</span>                                                final double ix = it.aDouble;<a name="line.18795"></a>
+<span class="sourceLineNo">18796</span>                                                float ox;<a name="line.18796"></a>
+<span class="sourceLineNo">18797</span>                                                float oy;<a name="line.18797"></a>
+<span class="sourceLineNo">18798</span>                                                ox = (float) (Math.cos(ix)*Math.cosh(iy));<a name="line.18798"></a>
+<span class="sourceLineNo">18799</span>                                                oy = (float) (-Math.sin(ix)*Math.sinh(iy));<a name="line.18799"></a>
+<span class="sourceLineNo">18800</span>                                                oc64data[it.oIndex] = ox;<a name="line.18800"></a>
+<span class="sourceLineNo">18801</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.18801"></a>
+<span class="sourceLineNo">18802</span>                                        }<a name="line.18802"></a>
+<span class="sourceLineNo">18803</span>                                } else {<a name="line.18803"></a>
+<span class="sourceLineNo">18804</span>                                        final long iy = 0;<a name="line.18804"></a>
+<span class="sourceLineNo">18805</span>                                        while (it.hasNext()) {<a name="line.18805"></a>
+<span class="sourceLineNo">18806</span>                                                final long ix = it.aLong;<a name="line.18806"></a>
+<span class="sourceLineNo">18807</span>                                                float ox;<a name="line.18807"></a>
+<span class="sourceLineNo">18808</span>                                                float oy;<a name="line.18808"></a>
+<span class="sourceLineNo">18809</span>                                                ox = (float) toLong(Math.cos(ix)*Math.cosh(iy));<a name="line.18809"></a>
+<span class="sourceLineNo">18810</span>                                                oy = (float) toLong(-Math.sin(ix)*Math.sinh(iy));<a name="line.18810"></a>
+<span class="sourceLineNo">18811</span>                                                oc64data[it.oIndex] = ox;<a name="line.18811"></a>
+<span class="sourceLineNo">18812</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.18812"></a>
+<span class="sourceLineNo">18813</span>                                        }<a name="line.18813"></a>
+<span class="sourceLineNo">18814</span>                                }<a name="line.18814"></a>
+<span class="sourceLineNo">18815</span>                        } else {<a name="line.18815"></a>
+<span class="sourceLineNo">18816</span>                                while (it.hasNext()) {<a name="line.18816"></a>
+<span class="sourceLineNo">18817</span>                                        final double ix = it.aDouble;<a name="line.18817"></a>
+<span class="sourceLineNo">18818</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.18818"></a>
+<span class="sourceLineNo">18819</span>                                        float ox;<a name="line.18819"></a>
+<span class="sourceLineNo">18820</span>                                        float oy;<a name="line.18820"></a>
+<span class="sourceLineNo">18821</span>                                        ox = (float) (Math.cos(ix)*Math.cosh(iy));<a name="line.18821"></a>
+<span class="sourceLineNo">18822</span>                                        oy = (float) (-Math.sin(ix)*Math.sinh(iy));<a name="line.18822"></a>
+<span class="sourceLineNo">18823</span>                                        oc64data[it.oIndex] = ox;<a name="line.18823"></a>
+<span class="sourceLineNo">18824</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.18824"></a>
+<span class="sourceLineNo">18825</span>                                }<a name="line.18825"></a>
+<span class="sourceLineNo">18826</span>                        }<a name="line.18826"></a>
+<span class="sourceLineNo">18827</span>                        break;<a name="line.18827"></a>
+<span class="sourceLineNo">18828</span>                case Dataset.COMPLEX128:<a name="line.18828"></a>
+<span class="sourceLineNo">18829</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.18829"></a>
+<span class="sourceLineNo">18830</span>                        if (!da.isComplex()) {<a name="line.18830"></a>
+<span class="sourceLineNo">18831</span>                                if (it.isOutputDouble()) {<a name="line.18831"></a>
+<span class="sourceLineNo">18832</span>                                        final double iy = 0;<a name="line.18832"></a>
+<span class="sourceLineNo">18833</span>                                        while (it.hasNext()) {<a name="line.18833"></a>
+<span class="sourceLineNo">18834</span>                                                final double ix = it.aDouble;<a name="line.18834"></a>
+<span class="sourceLineNo">18835</span>                                                double ox;<a name="line.18835"></a>
+<span class="sourceLineNo">18836</span>                                                double oy;<a name="line.18836"></a>
+<span class="sourceLineNo">18837</span>                                                ox = (Math.cos(ix)*Math.cosh(iy));<a name="line.18837"></a>
+<span class="sourceLineNo">18838</span>                                                oy = (-Math.sin(ix)*Math.sinh(iy));<a name="line.18838"></a>
+<span class="sourceLineNo">18839</span>                                                oc128data[it.oIndex] = ox;<a name="line.18839"></a>
+<span class="sourceLineNo">18840</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.18840"></a>
+<span class="sourceLineNo">18841</span>                                        }<a name="line.18841"></a>
+<span class="sourceLineNo">18842</span>                                } else {<a name="line.18842"></a>
+<span class="sourceLineNo">18843</span>                                        final long iy = 0;<a name="line.18843"></a>
+<span class="sourceLineNo">18844</span>                                        while (it.hasNext()) {<a name="line.18844"></a>
+<span class="sourceLineNo">18845</span>                                                final long ix = it.aLong;<a name="line.18845"></a>
+<span class="sourceLineNo">18846</span>                                                double ox;<a name="line.18846"></a>
+<span class="sourceLineNo">18847</span>                                                double oy;<a name="line.18847"></a>
+<span class="sourceLineNo">18848</span>                                                ox = (double) (Math.cos(ix)*Math.cosh(iy));<a name="line.18848"></a>
+<span class="sourceLineNo">18849</span>                                                oy = (double) (-Math.sin(ix)*Math.sinh(iy));<a name="line.18849"></a>
+<span class="sourceLineNo">18850</span>                                                oc128data[it.oIndex] = ox;<a name="line.18850"></a>
+<span class="sourceLineNo">18851</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.18851"></a>
+<span class="sourceLineNo">18852</span>                                        }<a name="line.18852"></a>
+<span class="sourceLineNo">18853</span>                                }<a name="line.18853"></a>
+<span class="sourceLineNo">18854</span>                        } else {<a name="line.18854"></a>
+<span class="sourceLineNo">18855</span>                                while (it.hasNext()) {<a name="line.18855"></a>
+<span class="sourceLineNo">18856</span>                                        final double ix = it.aDouble;<a name="line.18856"></a>
+<span class="sourceLineNo">18857</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.18857"></a>
+<span class="sourceLineNo">18858</span>                                        double ox;<a name="line.18858"></a>
+<span class="sourceLineNo">18859</span>                                        double oy;<a name="line.18859"></a>
+<span class="sourceLineNo">18860</span>                                        ox = (Math.cos(ix)*Math.cosh(iy));<a name="line.18860"></a>
+<span class="sourceLineNo">18861</span>                                        oy = (-Math.sin(ix)*Math.sinh(iy));<a name="line.18861"></a>
+<span class="sourceLineNo">18862</span>                                        oc128data[it.oIndex] = ox;<a name="line.18862"></a>
+<span class="sourceLineNo">18863</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.18863"></a>
+<span class="sourceLineNo">18864</span>                                }<a name="line.18864"></a>
+<span class="sourceLineNo">18865</span>                        }<a name="line.18865"></a>
+<span class="sourceLineNo">18866</span>                        break;<a name="line.18866"></a>
+<span class="sourceLineNo">18867</span>                default:<a name="line.18867"></a>
+<span class="sourceLineNo">18868</span>                        throw new IllegalArgumentException("cos supports integer, compound integer, real, compound real, complex datasets only");<a name="line.18868"></a>
+<span class="sourceLineNo">18869</span>                }<a name="line.18869"></a>
+<span class="sourceLineNo">18870</span><a name="line.18870"></a>
+<span class="sourceLineNo">18871</span>                addFunctionName(result, "cos");<a name="line.18871"></a>
+<span class="sourceLineNo">18872</span>                return result;<a name="line.18872"></a>
+<span class="sourceLineNo">18873</span>        }<a name="line.18873"></a>
+<span class="sourceLineNo">18874</span><a name="line.18874"></a>
+<span class="sourceLineNo">18875</span>        /**<a name="line.18875"></a>
+<span class="sourceLineNo">18876</span>         * tan - evaluate the tangent function on each element of the dataset<a name="line.18876"></a>
+<span class="sourceLineNo">18877</span>         * @param a<a name="line.18877"></a>
+<span class="sourceLineNo">18878</span>         * @return dataset<a name="line.18878"></a>
+<span class="sourceLineNo">18879</span>         */<a name="line.18879"></a>
+<span class="sourceLineNo">18880</span>        public static Dataset tan(final Object a) {<a name="line.18880"></a>
+<span class="sourceLineNo">18881</span>                return tan(a, null);<a name="line.18881"></a>
+<span class="sourceLineNo">18882</span>        }<a name="line.18882"></a>
+<span class="sourceLineNo">18883</span><a name="line.18883"></a>
+<span class="sourceLineNo">18884</span>        /**<a name="line.18884"></a>
+<span class="sourceLineNo">18885</span>         * tan - evaluate the tangent function on each element of the dataset<a name="line.18885"></a>
+<span class="sourceLineNo">18886</span>         * @param a<a name="line.18886"></a>
+<span class="sourceLineNo">18887</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.18887"></a>
+<span class="sourceLineNo">18888</span>         * @return dataset<a name="line.18888"></a>
+<span class="sourceLineNo">18889</span>         */<a name="line.18889"></a>
+<span class="sourceLineNo">18890</span>        public static Dataset tan(final Object a, final Dataset o) {<a name="line.18890"></a>
+<span class="sourceLineNo">18891</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.18891"></a>
+<span class="sourceLineNo">18892</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.18892"></a>
+<span class="sourceLineNo">18893</span>                final Dataset result = it.getOutput();<a name="line.18893"></a>
+<span class="sourceLineNo">18894</span>                if (!result.isComplex()) {<a name="line.18894"></a>
+<span class="sourceLineNo">18895</span>                        if (da.isComplex()) {<a name="line.18895"></a>
+<span class="sourceLineNo">18896</span>                                da = da.getRealView();<a name="line.18896"></a>
+<span class="sourceLineNo">18897</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.18897"></a>
+<span class="sourceLineNo">18898</span>                        }<a name="line.18898"></a>
+<span class="sourceLineNo">18899</span>                }<a name="line.18899"></a>
+<span class="sourceLineNo">18900</span>                final int is = result.getElementsPerItem();<a name="line.18900"></a>
+<span class="sourceLineNo">18901</span>                final int as = da.getElementsPerItem();<a name="line.18901"></a>
+<span class="sourceLineNo">18902</span>                final int dt = result.getDType();<a name="line.18902"></a>
+<span class="sourceLineNo">18903</span><a name="line.18903"></a>
+<span class="sourceLineNo">18904</span>                switch(dt) {<a name="line.18904"></a>
+<span class="sourceLineNo">18905</span>                case Dataset.INT8:<a name="line.18905"></a>
+<span class="sourceLineNo">18906</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.18906"></a>
+<span class="sourceLineNo">18907</span>                        if (it.isOutputDouble()) {<a name="line.18907"></a>
+<span class="sourceLineNo">18908</span>                                while (it.hasNext()) {<a name="line.18908"></a>
+<span class="sourceLineNo">18909</span>                                        final double ix = it.aDouble;<a name="line.18909"></a>
+<span class="sourceLineNo">18910</span>                                        byte ox;<a name="line.18910"></a>
+<span class="sourceLineNo">18911</span>                                        ox = (byte) toLong(Math.tan(ix));<a name="line.18911"></a>
+<span class="sourceLineNo">18912</span>                                        oi8data[it.oIndex] = ox;<a name="line.18912"></a>
+<span class="sourceLineNo">18913</span>                                }<a name="line.18913"></a>
+<span class="sourceLineNo">18914</span>                        } else {<a name="line.18914"></a>
+<span class="sourceLineNo">18915</span>                                while (it.hasNext()) {<a name="line.18915"></a>
+<span class="sourceLineNo">18916</span>                                        final long ix = it.aLong;<a name="line.18916"></a>
+<span class="sourceLineNo">18917</span>                                        byte ox;<a name="line.18917"></a>
+<span class="sourceLineNo">18918</span>                                        ox = (byte) toLong(Math.tan(ix));<a name="line.18918"></a>
+<span class="sourceLineNo">18919</span>                                        oi8data[it.oIndex] = ox;<a name="line.18919"></a>
+<span class="sourceLineNo">18920</span>                                }<a name="line.18920"></a>
+<span class="sourceLineNo">18921</span>                        }<a name="line.18921"></a>
+<span class="sourceLineNo">18922</span>                        break;<a name="line.18922"></a>
+<span class="sourceLineNo">18923</span>                case Dataset.INT16:<a name="line.18923"></a>
+<span class="sourceLineNo">18924</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.18924"></a>
+<span class="sourceLineNo">18925</span>                        if (it.isOutputDouble()) {<a name="line.18925"></a>
+<span class="sourceLineNo">18926</span>                                while (it.hasNext()) {<a name="line.18926"></a>
+<span class="sourceLineNo">18927</span>                                        final double ix = it.aDouble;<a name="line.18927"></a>
+<span class="sourceLineNo">18928</span>                                        short ox;<a name="line.18928"></a>
+<span class="sourceLineNo">18929</span>                                        ox = (short) toLong(Math.tan(ix));<a name="line.18929"></a>
+<span class="sourceLineNo">18930</span>                                        oi16data[it.oIndex] = ox;<a name="line.18930"></a>
+<span class="sourceLineNo">18931</span>                                }<a name="line.18931"></a>
+<span class="sourceLineNo">18932</span>                        } else {<a name="line.18932"></a>
+<span class="sourceLineNo">18933</span>                                while (it.hasNext()) {<a name="line.18933"></a>
+<span class="sourceLineNo">18934</span>                                        final long ix = it.aLong;<a name="line.18934"></a>
+<span class="sourceLineNo">18935</span>                                        short ox;<a name="line.18935"></a>
+<span class="sourceLineNo">18936</span>                                        ox = (short) toLong(Math.tan(ix));<a name="line.18936"></a>
+<span class="sourceLineNo">18937</span>                                        oi16data[it.oIndex] = ox;<a name="line.18937"></a>
+<span class="sourceLineNo">18938</span>                                }<a name="line.18938"></a>
+<span class="sourceLineNo">18939</span>                        }<a name="line.18939"></a>
+<span class="sourceLineNo">18940</span>                        break;<a name="line.18940"></a>
+<span class="sourceLineNo">18941</span>                case Dataset.INT64:<a name="line.18941"></a>
+<span class="sourceLineNo">18942</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.18942"></a>
+<span class="sourceLineNo">18943</span>                        if (it.isOutputDouble()) {<a name="line.18943"></a>
+<span class="sourceLineNo">18944</span>                                while (it.hasNext()) {<a name="line.18944"></a>
+<span class="sourceLineNo">18945</span>                                        final double ix = it.aDouble;<a name="line.18945"></a>
+<span class="sourceLineNo">18946</span>                                        long ox;<a name="line.18946"></a>
+<span class="sourceLineNo">18947</span>                                        ox = toLong(Math.tan(ix));<a name="line.18947"></a>
+<span class="sourceLineNo">18948</span>                                        oi64data[it.oIndex] = ox;<a name="line.18948"></a>
+<span class="sourceLineNo">18949</span>                                }<a name="line.18949"></a>
+<span class="sourceLineNo">18950</span>                        } else {<a name="line.18950"></a>
+<span class="sourceLineNo">18951</span>                                while (it.hasNext()) {<a name="line.18951"></a>
+<span class="sourceLineNo">18952</span>                                        final long ix = it.aLong;<a name="line.18952"></a>
+<span class="sourceLineNo">18953</span>                                        long ox;<a name="line.18953"></a>
+<span class="sourceLineNo">18954</span>                                        ox = toLong(Math.tan(ix));<a name="line.18954"></a>
+<span class="sourceLineNo">18955</span>                                        oi64data[it.oIndex] = ox;<a name="line.18955"></a>
+<span class="sourceLineNo">18956</span>                                }<a name="line.18956"></a>
+<span class="sourceLineNo">18957</span>                        }<a name="line.18957"></a>
+<span class="sourceLineNo">18958</span>                        break;<a name="line.18958"></a>
+<span class="sourceLineNo">18959</span>                case Dataset.INT32:<a name="line.18959"></a>
+<span class="sourceLineNo">18960</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.18960"></a>
+<span class="sourceLineNo">18961</span>                        if (it.isOutputDouble()) {<a name="line.18961"></a>
+<span class="sourceLineNo">18962</span>                                while (it.hasNext()) {<a name="line.18962"></a>
+<span class="sourceLineNo">18963</span>                                        final double ix = it.aDouble;<a name="line.18963"></a>
+<span class="sourceLineNo">18964</span>                                        int ox;<a name="line.18964"></a>
+<span class="sourceLineNo">18965</span>                                        ox = (int) toLong(Math.tan(ix));<a name="line.18965"></a>
+<span class="sourceLineNo">18966</span>                                        oi32data[it.oIndex] = ox;<a name="line.18966"></a>
+<span class="sourceLineNo">18967</span>                                }<a name="line.18967"></a>
+<span class="sourceLineNo">18968</span>                        } else {<a name="line.18968"></a>
+<span class="sourceLineNo">18969</span>                                while (it.hasNext()) {<a name="line.18969"></a>
+<span class="sourceLineNo">18970</span>                                        final long ix = it.aLong;<a name="line.18970"></a>
+<span class="sourceLineNo">18971</span>                                        int ox;<a name="line.18971"></a>
+<span class="sourceLineNo">18972</span>                                        ox = (int) toLong(Math.tan(ix));<a name="line.18972"></a>
+<span class="sourceLineNo">18973</span>                                        oi32data[it.oIndex] = ox;<a name="line.18973"></a>
+<span class="sourceLineNo">18974</span>                                }<a name="line.18974"></a>
+<span class="sourceLineNo">18975</span>                        }<a name="line.18975"></a>
+<span class="sourceLineNo">18976</span>                        break;<a name="line.18976"></a>
+<span class="sourceLineNo">18977</span>                case Dataset.ARRAYINT8:<a name="line.18977"></a>
+<span class="sourceLineNo">18978</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.18978"></a>
+<span class="sourceLineNo">18979</span>                        if (is == 1) {<a name="line.18979"></a>
+<span class="sourceLineNo">18980</span>                                if (it.isOutputDouble()) {<a name="line.18980"></a>
+<span class="sourceLineNo">18981</span>                                        while (it.hasNext()) {<a name="line.18981"></a>
+<span class="sourceLineNo">18982</span>                                                final double ix = it.aDouble;<a name="line.18982"></a>
+<span class="sourceLineNo">18983</span>                                                byte ox;<a name="line.18983"></a>
+<span class="sourceLineNo">18984</span>                                                ox = (byte) toLong(Math.tan(ix));<a name="line.18984"></a>
+<span class="sourceLineNo">18985</span>                                                oai8data[it.oIndex] = ox;<a name="line.18985"></a>
+<span class="sourceLineNo">18986</span>                                        }<a name="line.18986"></a>
+<span class="sourceLineNo">18987</span>                                } else {<a name="line.18987"></a>
+<span class="sourceLineNo">18988</span>                                        while (it.hasNext()) {<a name="line.18988"></a>
+<span class="sourceLineNo">18989</span>                                                final long ix = it.aLong;<a name="line.18989"></a>
+<span class="sourceLineNo">18990</span>                                                byte ox;<a name="line.18990"></a>
+<span class="sourceLineNo">18991</span>                                                ox = (byte) toLong(Math.tan(ix));<a name="line.18991"></a>
+<span class="sourceLineNo">18992</span>                                                oai8data[it.oIndex] = ox;<a name="line.18992"></a>
+<span class="sourceLineNo">18993</span>                                        }<a name="line.18993"></a>
+<span class="sourceLineNo">18994</span>                                }<a name="line.18994"></a>
+<span class="sourceLineNo">18995</span>                        } else if (as == 1) {<a name="line.18995"></a>
+<span class="sourceLineNo">18996</span>                                if (it.isOutputDouble()) {<a name="line.18996"></a>
+<span class="sourceLineNo">18997</span>                                        while (it.hasNext()) {<a name="line.18997"></a>
+<span class="sourceLineNo">18998</span>                                                final double ix = it.aDouble;<a name="line.18998"></a>
+<span class="sourceLineNo">18999</span>                                                byte ox;<a name="line.18999"></a>
+<span class="sourceLineNo">19000</span>                                                ox = (byte) toLong(Math.tan(ix));<a name="line.19000"></a>
+<span class="sourceLineNo">19001</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19001"></a>
+<span class="sourceLineNo">19002</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.19002"></a>
+<span class="sourceLineNo">19003</span>                                                }<a name="line.19003"></a>
+<span class="sourceLineNo">19004</span>                                        }<a name="line.19004"></a>
+<span class="sourceLineNo">19005</span>                                } else {<a name="line.19005"></a>
+<span class="sourceLineNo">19006</span>                                        while (it.hasNext()) {<a name="line.19006"></a>
+<span class="sourceLineNo">19007</span>                                                final long ix = it.aLong;<a name="line.19007"></a>
+<span class="sourceLineNo">19008</span>                                                byte ox;<a name="line.19008"></a>
+<span class="sourceLineNo">19009</span>                                                ox = (byte) toLong(Math.tan(ix));<a name="line.19009"></a>
+<span class="sourceLineNo">19010</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19010"></a>
+<span class="sourceLineNo">19011</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.19011"></a>
+<span class="sourceLineNo">19012</span>                                                }<a name="line.19012"></a>
+<span class="sourceLineNo">19013</span>                                        }<a name="line.19013"></a>
+<span class="sourceLineNo">19014</span>                                }<a name="line.19014"></a>
+<span class="sourceLineNo">19015</span>                        } else {<a name="line.19015"></a>
+<span class="sourceLineNo">19016</span>                                if (it.isOutputDouble()) {<a name="line.19016"></a>
+<span class="sourceLineNo">19017</span>                                        while (it.hasNext()) {<a name="line.19017"></a>
+<span class="sourceLineNo">19018</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19018"></a>
+<span class="sourceLineNo">19019</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.19019"></a>
+<span class="sourceLineNo">19020</span>                                                        byte ox;<a name="line.19020"></a>
+<span class="sourceLineNo">19021</span>                                                        ox = (byte) toLong(Math.tan(ix));<a name="line.19021"></a>
+<span class="sourceLineNo">19022</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.19022"></a>
+<span class="sourceLineNo">19023</span>                                                }<a name="line.19023"></a>
+<span class="sourceLineNo">19024</span>                                        }<a name="line.19024"></a>
+<span class="sourceLineNo">19025</span>                                } else {<a name="line.19025"></a>
+<span class="sourceLineNo">19026</span>                                        while (it.hasNext()) {<a name="line.19026"></a>
+<span class="sourceLineNo">19027</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19027"></a>
+<span class="sourceLineNo">19028</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.19028"></a>
+<span class="sourceLineNo">19029</span>                                                        byte ox;<a name="line.19029"></a>
+<span class="sourceLineNo">19030</span>                                                        ox = (byte) toLong(Math.tan(ix));<a name="line.19030"></a>
+<span class="sourceLineNo">19031</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.19031"></a>
+<span class="sourceLineNo">19032</span>                                                }<a name="line.19032"></a>
+<span class="sourceLineNo">19033</span>                                        }<a name="line.19033"></a>
+<span class="sourceLineNo">19034</span>                                }<a name="line.19034"></a>
+<span class="sourceLineNo">19035</span>                        }<a name="line.19035"></a>
+<span class="sourceLineNo">19036</span>                        break;<a name="line.19036"></a>
+<span class="sourceLineNo">19037</span>                case Dataset.ARRAYINT16:<a name="line.19037"></a>
+<span class="sourceLineNo">19038</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.19038"></a>
+<span class="sourceLineNo">19039</span>                        if (is == 1) {<a name="line.19039"></a>
+<span class="sourceLineNo">19040</span>                                if (it.isOutputDouble()) {<a name="line.19040"></a>
+<span class="sourceLineNo">19041</span>                                        while (it.hasNext()) {<a name="line.19041"></a>
+<span class="sourceLineNo">19042</span>                                                final double ix = it.aDouble;<a name="line.19042"></a>
+<span class="sourceLineNo">19043</span>                                                short ox;<a name="line.19043"></a>
+<span class="sourceLineNo">19044</span>                                                ox = (short) toLong(Math.tan(ix));<a name="line.19044"></a>
+<span class="sourceLineNo">19045</span>                                                oai16data[it.oIndex] = ox;<a name="line.19045"></a>
+<span class="sourceLineNo">19046</span>                                        }<a name="line.19046"></a>
+<span class="sourceLineNo">19047</span>                                } else {<a name="line.19047"></a>
+<span class="sourceLineNo">19048</span>                                        while (it.hasNext()) {<a name="line.19048"></a>
+<span class="sourceLineNo">19049</span>                                                final long ix = it.aLong;<a name="line.19049"></a>
+<span class="sourceLineNo">19050</span>                                                short ox;<a name="line.19050"></a>
+<span class="sourceLineNo">19051</span>                                                ox = (short) toLong(Math.tan(ix));<a name="line.19051"></a>
+<span class="sourceLineNo">19052</span>                                                oai16data[it.oIndex] = ox;<a name="line.19052"></a>
+<span class="sourceLineNo">19053</span>                                        }<a name="line.19053"></a>
+<span class="sourceLineNo">19054</span>                                }<a name="line.19054"></a>
+<span class="sourceLineNo">19055</span>                        } else if (as == 1) {<a name="line.19055"></a>
+<span class="sourceLineNo">19056</span>                                if (it.isOutputDouble()) {<a name="line.19056"></a>
+<span class="sourceLineNo">19057</span>                                        while (it.hasNext()) {<a name="line.19057"></a>
+<span class="sourceLineNo">19058</span>                                                final double ix = it.aDouble;<a name="line.19058"></a>
+<span class="sourceLineNo">19059</span>                                                short ox;<a name="line.19059"></a>
+<span class="sourceLineNo">19060</span>                                                ox = (short) toLong(Math.tan(ix));<a name="line.19060"></a>
+<span class="sourceLineNo">19061</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19061"></a>
+<span class="sourceLineNo">19062</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.19062"></a>
+<span class="sourceLineNo">19063</span>                                                }<a name="line.19063"></a>
+<span class="sourceLineNo">19064</span>                                        }<a name="line.19064"></a>
+<span class="sourceLineNo">19065</span>                                } else {<a name="line.19065"></a>
+<span class="sourceLineNo">19066</span>                                        while (it.hasNext()) {<a name="line.19066"></a>
+<span class="sourceLineNo">19067</span>                                                final long ix = it.aLong;<a name="line.19067"></a>
+<span class="sourceLineNo">19068</span>                                                short ox;<a name="line.19068"></a>
+<span class="sourceLineNo">19069</span>                                                ox = (short) toLong(Math.tan(ix));<a name="line.19069"></a>
+<span class="sourceLineNo">19070</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19070"></a>
+<span class="sourceLineNo">19071</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.19071"></a>
+<span class="sourceLineNo">19072</span>                                                }<a name="line.19072"></a>
+<span class="sourceLineNo">19073</span>                                        }<a name="line.19073"></a>
+<span class="sourceLineNo">19074</span>                                }<a name="line.19074"></a>
+<span class="sourceLineNo">19075</span>                        } else {<a name="line.19075"></a>
+<span class="sourceLineNo">19076</span>                                if (it.isOutputDouble()) {<a name="line.19076"></a>
+<span class="sourceLineNo">19077</span>                                        while (it.hasNext()) {<a name="line.19077"></a>
+<span class="sourceLineNo">19078</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19078"></a>
+<span class="sourceLineNo">19079</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.19079"></a>
+<span class="sourceLineNo">19080</span>                                                        short ox;<a name="line.19080"></a>
+<span class="sourceLineNo">19081</span>                                                        ox = (short) toLong(Math.tan(ix));<a name="line.19081"></a>
+<span class="sourceLineNo">19082</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.19082"></a>
+<span class="sourceLineNo">19083</span>                                                }<a name="line.19083"></a>
+<span class="sourceLineNo">19084</span>                                        }<a name="line.19084"></a>
+<span class="sourceLineNo">19085</span>                                } else {<a name="line.19085"></a>
+<span class="sourceLineNo">19086</span>                                        while (it.hasNext()) {<a name="line.19086"></a>
+<span class="sourceLineNo">19087</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19087"></a>
+<span class="sourceLineNo">19088</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.19088"></a>
+<span class="sourceLineNo">19089</span>                                                        short ox;<a name="line.19089"></a>
+<span class="sourceLineNo">19090</span>                                                        ox = (short) toLong(Math.tan(ix));<a name="line.19090"></a>
+<span class="sourceLineNo">19091</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.19091"></a>
+<span class="sourceLineNo">19092</span>                                                }<a name="line.19092"></a>
+<span class="sourceLineNo">19093</span>                                        }<a name="line.19093"></a>
+<span class="sourceLineNo">19094</span>                                }<a name="line.19094"></a>
+<span class="sourceLineNo">19095</span>                        }<a name="line.19095"></a>
+<span class="sourceLineNo">19096</span>                        break;<a name="line.19096"></a>
+<span class="sourceLineNo">19097</span>                case Dataset.ARRAYINT64:<a name="line.19097"></a>
+<span class="sourceLineNo">19098</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.19098"></a>
+<span class="sourceLineNo">19099</span>                        if (is == 1) {<a name="line.19099"></a>
+<span class="sourceLineNo">19100</span>                                if (it.isOutputDouble()) {<a name="line.19100"></a>
+<span class="sourceLineNo">19101</span>                                        while (it.hasNext()) {<a name="line.19101"></a>
+<span class="sourceLineNo">19102</span>                                                final double ix = it.aDouble;<a name="line.19102"></a>
+<span class="sourceLineNo">19103</span>                                                long ox;<a name="line.19103"></a>
+<span class="sourceLineNo">19104</span>                                                ox = toLong(Math.tan(ix));<a name="line.19104"></a>
+<span class="sourceLineNo">19105</span>                                                oai64data[it.oIndex] = ox;<a name="line.19105"></a>
+<span class="sourceLineNo">19106</span>                                        }<a name="line.19106"></a>
+<span class="sourceLineNo">19107</span>                                } else {<a name="line.19107"></a>
+<span class="sourceLineNo">19108</span>                                        while (it.hasNext()) {<a name="line.19108"></a>
+<span class="sourceLineNo">19109</span>                                                final long ix = it.aLong;<a name="line.19109"></a>
+<span class="sourceLineNo">19110</span>                                                long ox;<a name="line.19110"></a>
+<span class="sourceLineNo">19111</span>                                                ox = toLong(Math.tan(ix));<a name="line.19111"></a>
+<span class="sourceLineNo">19112</span>                                                oai64data[it.oIndex] = ox;<a name="line.19112"></a>
+<span class="sourceLineNo">19113</span>                                        }<a name="line.19113"></a>
+<span class="sourceLineNo">19114</span>                                }<a name="line.19114"></a>
+<span class="sourceLineNo">19115</span>                        } else if (as == 1) {<a name="line.19115"></a>
+<span class="sourceLineNo">19116</span>                                if (it.isOutputDouble()) {<a name="line.19116"></a>
+<span class="sourceLineNo">19117</span>                                        while (it.hasNext()) {<a name="line.19117"></a>
+<span class="sourceLineNo">19118</span>                                                final double ix = it.aDouble;<a name="line.19118"></a>
+<span class="sourceLineNo">19119</span>                                                long ox;<a name="line.19119"></a>
+<span class="sourceLineNo">19120</span>                                                ox = toLong(Math.tan(ix));<a name="line.19120"></a>
+<span class="sourceLineNo">19121</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19121"></a>
+<span class="sourceLineNo">19122</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.19122"></a>
+<span class="sourceLineNo">19123</span>                                                }<a name="line.19123"></a>
+<span class="sourceLineNo">19124</span>                                        }<a name="line.19124"></a>
+<span class="sourceLineNo">19125</span>                                } else {<a name="line.19125"></a>
+<span class="sourceLineNo">19126</span>                                        while (it.hasNext()) {<a name="line.19126"></a>
+<span class="sourceLineNo">19127</span>                                                final long ix = it.aLong;<a name="line.19127"></a>
+<span class="sourceLineNo">19128</span>                                                long ox;<a name="line.19128"></a>
+<span class="sourceLineNo">19129</span>                                                ox = toLong(Math.tan(ix));<a name="line.19129"></a>
+<span class="sourceLineNo">19130</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19130"></a>
+<span class="sourceLineNo">19131</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.19131"></a>
+<span class="sourceLineNo">19132</span>                                                }<a name="line.19132"></a>
+<span class="sourceLineNo">19133</span>                                        }<a name="line.19133"></a>
+<span class="sourceLineNo">19134</span>                                }<a name="line.19134"></a>
+<span class="sourceLineNo">19135</span>                        } else {<a name="line.19135"></a>
+<span class="sourceLineNo">19136</span>                                if (it.isOutputDouble()) {<a name="line.19136"></a>
+<span class="sourceLineNo">19137</span>                                        while (it.hasNext()) {<a name="line.19137"></a>
+<span class="sourceLineNo">19138</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19138"></a>
+<span class="sourceLineNo">19139</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.19139"></a>
+<span class="sourceLineNo">19140</span>                                                        long ox;<a name="line.19140"></a>
+<span class="sourceLineNo">19141</span>                                                        ox = toLong(Math.tan(ix));<a name="line.19141"></a>
+<span class="sourceLineNo">19142</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.19142"></a>
+<span class="sourceLineNo">19143</span>                                                }<a name="line.19143"></a>
+<span class="sourceLineNo">19144</span>                                        }<a name="line.19144"></a>
+<span class="sourceLineNo">19145</span>                                } else {<a name="line.19145"></a>
+<span class="sourceLineNo">19146</span>                                        while (it.hasNext()) {<a name="line.19146"></a>
+<span class="sourceLineNo">19147</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19147"></a>
+<span class="sourceLineNo">19148</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.19148"></a>
+<span class="sourceLineNo">19149</span>                                                        long ox;<a name="line.19149"></a>
+<span class="sourceLineNo">19150</span>                                                        ox = toLong(Math.tan(ix));<a name="line.19150"></a>
+<span class="sourceLineNo">19151</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.19151"></a>
+<span class="sourceLineNo">19152</span>                                                }<a name="line.19152"></a>
+<span class="sourceLineNo">19153</span>                                        }<a name="line.19153"></a>
+<span class="sourceLineNo">19154</span>                                }<a name="line.19154"></a>
+<span class="sourceLineNo">19155</span>                        }<a name="line.19155"></a>
+<span class="sourceLineNo">19156</span>                        break;<a name="line.19156"></a>
+<span class="sourceLineNo">19157</span>                case Dataset.ARRAYINT32:<a name="line.19157"></a>
+<span class="sourceLineNo">19158</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.19158"></a>
+<span class="sourceLineNo">19159</span>                        if (is == 1) {<a name="line.19159"></a>
+<span class="sourceLineNo">19160</span>                                if (it.isOutputDouble()) {<a name="line.19160"></a>
+<span class="sourceLineNo">19161</span>                                        while (it.hasNext()) {<a name="line.19161"></a>
+<span class="sourceLineNo">19162</span>                                                final double ix = it.aDouble;<a name="line.19162"></a>
+<span class="sourceLineNo">19163</span>                                                int ox;<a name="line.19163"></a>
+<span class="sourceLineNo">19164</span>                                                ox = (int) toLong(Math.tan(ix));<a name="line.19164"></a>
+<span class="sourceLineNo">19165</span>                                                oai32data[it.oIndex] = ox;<a name="line.19165"></a>
+<span class="sourceLineNo">19166</span>                                        }<a name="line.19166"></a>
+<span class="sourceLineNo">19167</span>                                } else {<a name="line.19167"></a>
+<span class="sourceLineNo">19168</span>                                        while (it.hasNext()) {<a name="line.19168"></a>
+<span class="sourceLineNo">19169</span>                                                final long ix = it.aLong;<a name="line.19169"></a>
+<span class="sourceLineNo">19170</span>                                                int ox;<a name="line.19170"></a>
+<span class="sourceLineNo">19171</span>                                                ox = (int) toLong(Math.tan(ix));<a name="line.19171"></a>
+<span class="sourceLineNo">19172</span>                                                oai32data[it.oIndex] = ox;<a name="line.19172"></a>
+<span class="sourceLineNo">19173</span>                                        }<a name="line.19173"></a>
+<span class="sourceLineNo">19174</span>                                }<a name="line.19174"></a>
+<span class="sourceLineNo">19175</span>                        } else if (as == 1) {<a name="line.19175"></a>
+<span class="sourceLineNo">19176</span>                                if (it.isOutputDouble()) {<a name="line.19176"></a>
+<span class="sourceLineNo">19177</span>                                        while (it.hasNext()) {<a name="line.19177"></a>
+<span class="sourceLineNo">19178</span>                                                final double ix = it.aDouble;<a name="line.19178"></a>
+<span class="sourceLineNo">19179</span>                                                int ox;<a name="line.19179"></a>
+<span class="sourceLineNo">19180</span>                                                ox = (int) toLong(Math.tan(ix));<a name="line.19180"></a>
+<span class="sourceLineNo">19181</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19181"></a>
+<span class="sourceLineNo">19182</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.19182"></a>
+<span class="sourceLineNo">19183</span>                                                }<a name="line.19183"></a>
+<span class="sourceLineNo">19184</span>                                        }<a name="line.19184"></a>
+<span class="sourceLineNo">19185</span>                                } else {<a name="line.19185"></a>
+<span class="sourceLineNo">19186</span>                                        while (it.hasNext()) {<a name="line.19186"></a>
+<span class="sourceLineNo">19187</span>                                                final long ix = it.aLong;<a name="line.19187"></a>
+<span class="sourceLineNo">19188</span>                                                int ox;<a name="line.19188"></a>
+<span class="sourceLineNo">19189</span>                                                ox = (int) toLong(Math.tan(ix));<a name="line.19189"></a>
+<span class="sourceLineNo">19190</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19190"></a>
+<span class="sourceLineNo">19191</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.19191"></a>
+<span class="sourceLineNo">19192</span>                                                }<a name="line.19192"></a>
+<span class="sourceLineNo">19193</span>                                        }<a name="line.19193"></a>
+<span class="sourceLineNo">19194</span>                                }<a name="line.19194"></a>
+<span class="sourceLineNo">19195</span>                        } else {<a name="line.19195"></a>
+<span class="sourceLineNo">19196</span>                                if (it.isOutputDouble()) {<a name="line.19196"></a>
+<span class="sourceLineNo">19197</span>                                        while (it.hasNext()) {<a name="line.19197"></a>
+<span class="sourceLineNo">19198</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19198"></a>
+<span class="sourceLineNo">19199</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.19199"></a>
+<span class="sourceLineNo">19200</span>                                                        int ox;<a name="line.19200"></a>
+<span class="sourceLineNo">19201</span>                                                        ox = (int) toLong(Math.tan(ix));<a name="line.19201"></a>
+<span class="sourceLineNo">19202</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.19202"></a>
+<span class="sourceLineNo">19203</span>                                                }<a name="line.19203"></a>
+<span class="sourceLineNo">19204</span>                                        }<a name="line.19204"></a>
+<span class="sourceLineNo">19205</span>                                } else {<a name="line.19205"></a>
+<span class="sourceLineNo">19206</span>                                        while (it.hasNext()) {<a name="line.19206"></a>
+<span class="sourceLineNo">19207</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19207"></a>
+<span class="sourceLineNo">19208</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.19208"></a>
+<span class="sourceLineNo">19209</span>                                                        int ox;<a name="line.19209"></a>
+<span class="sourceLineNo">19210</span>                                                        ox = (int) toLong(Math.tan(ix));<a name="line.19210"></a>
+<span class="sourceLineNo">19211</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.19211"></a>
+<span class="sourceLineNo">19212</span>                                                }<a name="line.19212"></a>
+<span class="sourceLineNo">19213</span>                                        }<a name="line.19213"></a>
+<span class="sourceLineNo">19214</span>                                }<a name="line.19214"></a>
+<span class="sourceLineNo">19215</span>                        }<a name="line.19215"></a>
+<span class="sourceLineNo">19216</span>                        break;<a name="line.19216"></a>
+<span class="sourceLineNo">19217</span>                case Dataset.FLOAT32:<a name="line.19217"></a>
+<span class="sourceLineNo">19218</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.19218"></a>
+<span class="sourceLineNo">19219</span>                        if (it.isOutputDouble()) {<a name="line.19219"></a>
+<span class="sourceLineNo">19220</span>                                while (it.hasNext()) {<a name="line.19220"></a>
+<span class="sourceLineNo">19221</span>                                        final double ix = it.aDouble;<a name="line.19221"></a>
+<span class="sourceLineNo">19222</span>                                        float ox;<a name="line.19222"></a>
+<span class="sourceLineNo">19223</span>                                        ox = (float) (Math.tan(ix));<a name="line.19223"></a>
+<span class="sourceLineNo">19224</span>                                        of32data[it.oIndex] = ox;<a name="line.19224"></a>
+<span class="sourceLineNo">19225</span>                                }<a name="line.19225"></a>
+<span class="sourceLineNo">19226</span>                        } else {<a name="line.19226"></a>
+<span class="sourceLineNo">19227</span>                                while (it.hasNext()) {<a name="line.19227"></a>
+<span class="sourceLineNo">19228</span>                                        final long ix = it.aLong;<a name="line.19228"></a>
+<span class="sourceLineNo">19229</span>                                        float ox;<a name="line.19229"></a>
+<span class="sourceLineNo">19230</span>                                        ox = (float) (Math.tan(ix));<a name="line.19230"></a>
+<span class="sourceLineNo">19231</span>                                        of32data[it.oIndex] = ox;<a name="line.19231"></a>
+<span class="sourceLineNo">19232</span>                                }<a name="line.19232"></a>
+<span class="sourceLineNo">19233</span>                        }<a name="line.19233"></a>
+<span class="sourceLineNo">19234</span>                        break;<a name="line.19234"></a>
+<span class="sourceLineNo">19235</span>                case Dataset.FLOAT64:<a name="line.19235"></a>
+<span class="sourceLineNo">19236</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.19236"></a>
+<span class="sourceLineNo">19237</span>                        if (it.isOutputDouble()) {<a name="line.19237"></a>
+<span class="sourceLineNo">19238</span>                                while (it.hasNext()) {<a name="line.19238"></a>
+<span class="sourceLineNo">19239</span>                                        final double ix = it.aDouble;<a name="line.19239"></a>
+<span class="sourceLineNo">19240</span>                                        double ox;<a name="line.19240"></a>
+<span class="sourceLineNo">19241</span>                                        ox = (Math.tan(ix));<a name="line.19241"></a>
+<span class="sourceLineNo">19242</span>                                        of64data[it.oIndex] = ox;<a name="line.19242"></a>
+<span class="sourceLineNo">19243</span>                                }<a name="line.19243"></a>
+<span class="sourceLineNo">19244</span>                        } else {<a name="line.19244"></a>
+<span class="sourceLineNo">19245</span>                                while (it.hasNext()) {<a name="line.19245"></a>
+<span class="sourceLineNo">19246</span>                                        final long ix = it.aLong;<a name="line.19246"></a>
+<span class="sourceLineNo">19247</span>                                        double ox;<a name="line.19247"></a>
+<span class="sourceLineNo">19248</span>                                        ox = (Math.tan(ix));<a name="line.19248"></a>
+<span class="sourceLineNo">19249</span>                                        of64data[it.oIndex] = ox;<a name="line.19249"></a>
+<span class="sourceLineNo">19250</span>                                }<a name="line.19250"></a>
+<span class="sourceLineNo">19251</span>                        }<a name="line.19251"></a>
+<span class="sourceLineNo">19252</span>                        break;<a name="line.19252"></a>
+<span class="sourceLineNo">19253</span>                case Dataset.ARRAYFLOAT32:<a name="line.19253"></a>
+<span class="sourceLineNo">19254</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.19254"></a>
+<span class="sourceLineNo">19255</span>                        if (is == 1) {<a name="line.19255"></a>
+<span class="sourceLineNo">19256</span>                                if (it.isOutputDouble()) {<a name="line.19256"></a>
+<span class="sourceLineNo">19257</span>                                        while (it.hasNext()) {<a name="line.19257"></a>
+<span class="sourceLineNo">19258</span>                                                final double ix = it.aDouble;<a name="line.19258"></a>
+<span class="sourceLineNo">19259</span>                                                float ox;<a name="line.19259"></a>
+<span class="sourceLineNo">19260</span>                                                ox = (float) (Math.tan(ix));<a name="line.19260"></a>
+<span class="sourceLineNo">19261</span>                                                oaf32data[it.oIndex] = ox;<a name="line.19261"></a>
+<span class="sourceLineNo">19262</span>                                        }<a name="line.19262"></a>
+<span class="sourceLineNo">19263</span>                                } else {<a name="line.19263"></a>
+<span class="sourceLineNo">19264</span>                                        while (it.hasNext()) {<a name="line.19264"></a>
+<span class="sourceLineNo">19265</span>                                                final long ix = it.aLong;<a name="line.19265"></a>
+<span class="sourceLineNo">19266</span>                                                float ox;<a name="line.19266"></a>
+<span class="sourceLineNo">19267</span>                                                ox = (float) (Math.tan(ix));<a name="line.19267"></a>
+<span class="sourceLineNo">19268</span>                                                oaf32data[it.oIndex] = ox;<a name="line.19268"></a>
+<span class="sourceLineNo">19269</span>                                        }<a name="line.19269"></a>
+<span class="sourceLineNo">19270</span>                                }<a name="line.19270"></a>
+<span class="sourceLineNo">19271</span>                        } else if (as == 1) {<a name="line.19271"></a>
+<span class="sourceLineNo">19272</span>                                if (it.isOutputDouble()) {<a name="line.19272"></a>
+<span class="sourceLineNo">19273</span>                                        while (it.hasNext()) {<a name="line.19273"></a>
+<span class="sourceLineNo">19274</span>                                                final double ix = it.aDouble;<a name="line.19274"></a>
+<span class="sourceLineNo">19275</span>                                                float ox;<a name="line.19275"></a>
+<span class="sourceLineNo">19276</span>                                                ox = (float) (Math.tan(ix));<a name="line.19276"></a>
+<span class="sourceLineNo">19277</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19277"></a>
+<span class="sourceLineNo">19278</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.19278"></a>
+<span class="sourceLineNo">19279</span>                                                }<a name="line.19279"></a>
+<span class="sourceLineNo">19280</span>                                        }<a name="line.19280"></a>
+<span class="sourceLineNo">19281</span>                                } else {<a name="line.19281"></a>
+<span class="sourceLineNo">19282</span>                                        while (it.hasNext()) {<a name="line.19282"></a>
+<span class="sourceLineNo">19283</span>                                                final long ix = it.aLong;<a name="line.19283"></a>
+<span class="sourceLineNo">19284</span>                                                float ox;<a name="line.19284"></a>
+<span class="sourceLineNo">19285</span>                                                ox = (float) (Math.tan(ix));<a name="line.19285"></a>
+<span class="sourceLineNo">19286</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19286"></a>
+<span class="sourceLineNo">19287</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.19287"></a>
+<span class="sourceLineNo">19288</span>                                                }<a name="line.19288"></a>
+<span class="sourceLineNo">19289</span>                                        }<a name="line.19289"></a>
+<span class="sourceLineNo">19290</span>                                }<a name="line.19290"></a>
+<span class="sourceLineNo">19291</span>                        } else {<a name="line.19291"></a>
+<span class="sourceLineNo">19292</span>                                if (it.isOutputDouble()) {<a name="line.19292"></a>
+<span class="sourceLineNo">19293</span>                                        while (it.hasNext()) {<a name="line.19293"></a>
+<span class="sourceLineNo">19294</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19294"></a>
+<span class="sourceLineNo">19295</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.19295"></a>
+<span class="sourceLineNo">19296</span>                                                        float ox;<a name="line.19296"></a>
+<span class="sourceLineNo">19297</span>                                                        ox = (float) (Math.tan(ix));<a name="line.19297"></a>
+<span class="sourceLineNo">19298</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.19298"></a>
+<span class="sourceLineNo">19299</span>                                                }<a name="line.19299"></a>
+<span class="sourceLineNo">19300</span>                                        }<a name="line.19300"></a>
+<span class="sourceLineNo">19301</span>                                } else {<a name="line.19301"></a>
+<span class="sourceLineNo">19302</span>                                        while (it.hasNext()) {<a name="line.19302"></a>
+<span class="sourceLineNo">19303</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19303"></a>
+<span class="sourceLineNo">19304</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.19304"></a>
+<span class="sourceLineNo">19305</span>                                                        float ox;<a name="line.19305"></a>
+<span class="sourceLineNo">19306</span>                                                        ox = (float) (Math.tan(ix));<a name="line.19306"></a>
+<span class="sourceLineNo">19307</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.19307"></a>
+<span class="sourceLineNo">19308</span>                                                }<a name="line.19308"></a>
+<span class="sourceLineNo">19309</span>                                        }<a name="line.19309"></a>
+<span class="sourceLineNo">19310</span>                                }<a name="line.19310"></a>
+<span class="sourceLineNo">19311</span>                        }<a name="line.19311"></a>
+<span class="sourceLineNo">19312</span>                        break;<a name="line.19312"></a>
+<span class="sourceLineNo">19313</span>                case Dataset.ARRAYFLOAT64:<a name="line.19313"></a>
+<span class="sourceLineNo">19314</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.19314"></a>
+<span class="sourceLineNo">19315</span>                        if (is == 1) {<a name="line.19315"></a>
+<span class="sourceLineNo">19316</span>                                if (it.isOutputDouble()) {<a name="line.19316"></a>
+<span class="sourceLineNo">19317</span>                                        while (it.hasNext()) {<a name="line.19317"></a>
+<span class="sourceLineNo">19318</span>                                                final double ix = it.aDouble;<a name="line.19318"></a>
+<span class="sourceLineNo">19319</span>                                                double ox;<a name="line.19319"></a>
+<span class="sourceLineNo">19320</span>                                                ox = (Math.tan(ix));<a name="line.19320"></a>
+<span class="sourceLineNo">19321</span>                                                oaf64data[it.oIndex] = ox;<a name="line.19321"></a>
+<span class="sourceLineNo">19322</span>                                        }<a name="line.19322"></a>
+<span class="sourceLineNo">19323</span>                                } else {<a name="line.19323"></a>
+<span class="sourceLineNo">19324</span>                                        while (it.hasNext()) {<a name="line.19324"></a>
+<span class="sourceLineNo">19325</span>                                                final long ix = it.aLong;<a name="line.19325"></a>
+<span class="sourceLineNo">19326</span>                                                double ox;<a name="line.19326"></a>
+<span class="sourceLineNo">19327</span>                                                ox = (Math.tan(ix));<a name="line.19327"></a>
+<span class="sourceLineNo">19328</span>                                                oaf64data[it.oIndex] = ox;<a name="line.19328"></a>
+<span class="sourceLineNo">19329</span>                                        }<a name="line.19329"></a>
+<span class="sourceLineNo">19330</span>                                }<a name="line.19330"></a>
+<span class="sourceLineNo">19331</span>                        } else if (as == 1) {<a name="line.19331"></a>
+<span class="sourceLineNo">19332</span>                                if (it.isOutputDouble()) {<a name="line.19332"></a>
+<span class="sourceLineNo">19333</span>                                        while (it.hasNext()) {<a name="line.19333"></a>
+<span class="sourceLineNo">19334</span>                                                final double ix = it.aDouble;<a name="line.19334"></a>
+<span class="sourceLineNo">19335</span>                                                double ox;<a name="line.19335"></a>
+<span class="sourceLineNo">19336</span>                                                ox = (Math.tan(ix));<a name="line.19336"></a>
+<span class="sourceLineNo">19337</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19337"></a>
+<span class="sourceLineNo">19338</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.19338"></a>
+<span class="sourceLineNo">19339</span>                                                }<a name="line.19339"></a>
+<span class="sourceLineNo">19340</span>                                        }<a name="line.19340"></a>
+<span class="sourceLineNo">19341</span>                                } else {<a name="line.19341"></a>
+<span class="sourceLineNo">19342</span>                                        while (it.hasNext()) {<a name="line.19342"></a>
+<span class="sourceLineNo">19343</span>                                                final long ix = it.aLong;<a name="line.19343"></a>
+<span class="sourceLineNo">19344</span>                                                double ox;<a name="line.19344"></a>
+<span class="sourceLineNo">19345</span>                                                ox = (Math.tan(ix));<a name="line.19345"></a>
+<span class="sourceLineNo">19346</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19346"></a>
+<span class="sourceLineNo">19347</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.19347"></a>
+<span class="sourceLineNo">19348</span>                                                }<a name="line.19348"></a>
+<span class="sourceLineNo">19349</span>                                        }<a name="line.19349"></a>
+<span class="sourceLineNo">19350</span>                                }<a name="line.19350"></a>
+<span class="sourceLineNo">19351</span>                        } else {<a name="line.19351"></a>
+<span class="sourceLineNo">19352</span>                                if (it.isOutputDouble()) {<a name="line.19352"></a>
+<span class="sourceLineNo">19353</span>                                        while (it.hasNext()) {<a name="line.19353"></a>
+<span class="sourceLineNo">19354</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19354"></a>
+<span class="sourceLineNo">19355</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.19355"></a>
+<span class="sourceLineNo">19356</span>                                                        double ox;<a name="line.19356"></a>
+<span class="sourceLineNo">19357</span>                                                        ox = (Math.tan(ix));<a name="line.19357"></a>
+<span class="sourceLineNo">19358</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.19358"></a>
+<span class="sourceLineNo">19359</span>                                                }<a name="line.19359"></a>
+<span class="sourceLineNo">19360</span>                                        }<a name="line.19360"></a>
+<span class="sourceLineNo">19361</span>                                } else {<a name="line.19361"></a>
+<span class="sourceLineNo">19362</span>                                        while (it.hasNext()) {<a name="line.19362"></a>
+<span class="sourceLineNo">19363</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19363"></a>
+<span class="sourceLineNo">19364</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.19364"></a>
+<span class="sourceLineNo">19365</span>                                                        double ox;<a name="line.19365"></a>
+<span class="sourceLineNo">19366</span>                                                        ox = (Math.tan(ix));<a name="line.19366"></a>
+<span class="sourceLineNo">19367</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.19367"></a>
+<span class="sourceLineNo">19368</span>                                                }<a name="line.19368"></a>
+<span class="sourceLineNo">19369</span>                                        }<a name="line.19369"></a>
+<span class="sourceLineNo">19370</span>                                }<a name="line.19370"></a>
+<span class="sourceLineNo">19371</span>                        }<a name="line.19371"></a>
+<span class="sourceLineNo">19372</span>                        break;<a name="line.19372"></a>
+<span class="sourceLineNo">19373</span>                case Dataset.COMPLEX64:<a name="line.19373"></a>
+<span class="sourceLineNo">19374</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.19374"></a>
+<span class="sourceLineNo">19375</span>                        if (!da.isComplex()) {<a name="line.19375"></a>
+<span class="sourceLineNo">19376</span>                                if (it.isOutputDouble()) {<a name="line.19376"></a>
+<span class="sourceLineNo">19377</span>                                        final double iy = 0;<a name="line.19377"></a>
+<span class="sourceLineNo">19378</span>                                        while (it.hasNext()) {<a name="line.19378"></a>
+<span class="sourceLineNo">19379</span>                                                final double ix = it.aDouble;<a name="line.19379"></a>
+<span class="sourceLineNo">19380</span>                                                float x;<a name="line.19380"></a>
+<span class="sourceLineNo">19381</span>                                                float y;<a name="line.19381"></a>
+<span class="sourceLineNo">19382</span>                                                float tf;<a name="line.19382"></a>
+<span class="sourceLineNo">19383</span>                                                float ox;<a name="line.19383"></a>
+<span class="sourceLineNo">19384</span>                                                float oy;<a name="line.19384"></a>
+<span class="sourceLineNo">19385</span>                                                x = (float) (2.*ix);<a name="line.19385"></a>
+<span class="sourceLineNo">19386</span>                                                y = (float) (2.*iy);<a name="line.19386"></a>
+<span class="sourceLineNo">19387</span>                                                tf = (float) (1./(Math.cos(x)+Math.cosh(y)));<a name="line.19387"></a>
+<span class="sourceLineNo">19388</span>                                                ox = (float) (tf*Math.sin(x));<a name="line.19388"></a>
+<span class="sourceLineNo">19389</span>                                                oy = (float) (tf*Math.sinh(y));<a name="line.19389"></a>
+<span class="sourceLineNo">19390</span>                                                oc64data[it.oIndex] = ox;<a name="line.19390"></a>
+<span class="sourceLineNo">19391</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.19391"></a>
+<span class="sourceLineNo">19392</span>                                        }<a name="line.19392"></a>
+<span class="sourceLineNo">19393</span>                                } else {<a name="line.19393"></a>
+<span class="sourceLineNo">19394</span>                                        final long iy = 0;<a name="line.19394"></a>
+<span class="sourceLineNo">19395</span>                                        while (it.hasNext()) {<a name="line.19395"></a>
+<span class="sourceLineNo">19396</span>                                                final long ix = it.aLong;<a name="line.19396"></a>
+<span class="sourceLineNo">19397</span>                                                float x;<a name="line.19397"></a>
+<span class="sourceLineNo">19398</span>                                                float y;<a name="line.19398"></a>
+<span class="sourceLineNo">19399</span>                                                float tf;<a name="line.19399"></a>
+<span class="sourceLineNo">19400</span>                                                float ox;<a name="line.19400"></a>
+<span class="sourceLineNo">19401</span>                                                float oy;<a name="line.19401"></a>
+<span class="sourceLineNo">19402</span>                                                x = (float) toLong(2.*ix);<a name="line.19402"></a>
+<span class="sourceLineNo">19403</span>                                                y = (float) toLong(2.*iy);<a name="line.19403"></a>
+<span class="sourceLineNo">19404</span>                                                tf = (float) toLong(1./(Math.cos(x)+Math.cosh(y)));<a name="line.19404"></a>
+<span class="sourceLineNo">19405</span>                                                ox = (float) toLong(tf*Math.sin(x));<a name="line.19405"></a>
+<span class="sourceLineNo">19406</span>                                                oy = (float) toLong(tf*Math.sinh(y));<a name="line.19406"></a>
+<span class="sourceLineNo">19407</span>                                                oc64data[it.oIndex] = ox;<a name="line.19407"></a>
+<span class="sourceLineNo">19408</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.19408"></a>
+<span class="sourceLineNo">19409</span>                                        }<a name="line.19409"></a>
+<span class="sourceLineNo">19410</span>                                }<a name="line.19410"></a>
+<span class="sourceLineNo">19411</span>                        } else {<a name="line.19411"></a>
+<span class="sourceLineNo">19412</span>                                while (it.hasNext()) {<a name="line.19412"></a>
+<span class="sourceLineNo">19413</span>                                        final double ix = it.aDouble;<a name="line.19413"></a>
+<span class="sourceLineNo">19414</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.19414"></a>
+<span class="sourceLineNo">19415</span>                                        float x;<a name="line.19415"></a>
+<span class="sourceLineNo">19416</span>                                        float y;<a name="line.19416"></a>
+<span class="sourceLineNo">19417</span>                                        float tf;<a name="line.19417"></a>
+<span class="sourceLineNo">19418</span>                                        float ox;<a name="line.19418"></a>
+<span class="sourceLineNo">19419</span>                                        float oy;<a name="line.19419"></a>
+<span class="sourceLineNo">19420</span>                                        x = (float) (2.*ix);<a name="line.19420"></a>
+<span class="sourceLineNo">19421</span>                                        y = (float) (2.*iy);<a name="line.19421"></a>
+<span class="sourceLineNo">19422</span>                                        tf = (float) (1./(Math.cos(x)+Math.cosh(y)));<a name="line.19422"></a>
+<span class="sourceLineNo">19423</span>                                        ox = (float) (tf*Math.sin(x));<a name="line.19423"></a>
+<span class="sourceLineNo">19424</span>                                        oy = (float) (tf*Math.sinh(y));<a name="line.19424"></a>
+<span class="sourceLineNo">19425</span>                                        oc64data[it.oIndex] = ox;<a name="line.19425"></a>
+<span class="sourceLineNo">19426</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.19426"></a>
+<span class="sourceLineNo">19427</span>                                }<a name="line.19427"></a>
+<span class="sourceLineNo">19428</span>                        }<a name="line.19428"></a>
+<span class="sourceLineNo">19429</span>                        break;<a name="line.19429"></a>
+<span class="sourceLineNo">19430</span>                case Dataset.COMPLEX128:<a name="line.19430"></a>
+<span class="sourceLineNo">19431</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.19431"></a>
+<span class="sourceLineNo">19432</span>                        if (!da.isComplex()) {<a name="line.19432"></a>
+<span class="sourceLineNo">19433</span>                                if (it.isOutputDouble()) {<a name="line.19433"></a>
+<span class="sourceLineNo">19434</span>                                        final double iy = 0;<a name="line.19434"></a>
+<span class="sourceLineNo">19435</span>                                        while (it.hasNext()) {<a name="line.19435"></a>
+<span class="sourceLineNo">19436</span>                                                final double ix = it.aDouble;<a name="line.19436"></a>
+<span class="sourceLineNo">19437</span>                                                double x;<a name="line.19437"></a>
+<span class="sourceLineNo">19438</span>                                                double y;<a name="line.19438"></a>
+<span class="sourceLineNo">19439</span>                                                double tf;<a name="line.19439"></a>
+<span class="sourceLineNo">19440</span>                                                double ox;<a name="line.19440"></a>
+<span class="sourceLineNo">19441</span>                                                double oy;<a name="line.19441"></a>
+<span class="sourceLineNo">19442</span>                                                x = (2.*ix);<a name="line.19442"></a>
+<span class="sourceLineNo">19443</span>                                                y = (2.*iy);<a name="line.19443"></a>
+<span class="sourceLineNo">19444</span>                                                tf = (1./(Math.cos(x)+Math.cosh(y)));<a name="line.19444"></a>
+<span class="sourceLineNo">19445</span>                                                ox = (tf*Math.sin(x));<a name="line.19445"></a>
+<span class="sourceLineNo">19446</span>                                                oy = (tf*Math.sinh(y));<a name="line.19446"></a>
+<span class="sourceLineNo">19447</span>                                                oc128data[it.oIndex] = ox;<a name="line.19447"></a>
+<span class="sourceLineNo">19448</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.19448"></a>
+<span class="sourceLineNo">19449</span>                                        }<a name="line.19449"></a>
+<span class="sourceLineNo">19450</span>                                } else {<a name="line.19450"></a>
+<span class="sourceLineNo">19451</span>                                        final long iy = 0;<a name="line.19451"></a>
+<span class="sourceLineNo">19452</span>                                        while (it.hasNext()) {<a name="line.19452"></a>
+<span class="sourceLineNo">19453</span>                                                final long ix = it.aLong;<a name="line.19453"></a>
+<span class="sourceLineNo">19454</span>                                                double x;<a name="line.19454"></a>
+<span class="sourceLineNo">19455</span>                                                double y;<a name="line.19455"></a>
+<span class="sourceLineNo">19456</span>                                                double tf;<a name="line.19456"></a>
+<span class="sourceLineNo">19457</span>                                                double ox;<a name="line.19457"></a>
+<span class="sourceLineNo">19458</span>                                                double oy;<a name="line.19458"></a>
+<span class="sourceLineNo">19459</span>                                                x = (2.*ix);<a name="line.19459"></a>
+<span class="sourceLineNo">19460</span>                                                y = (2.*iy);<a name="line.19460"></a>
+<span class="sourceLineNo">19461</span>                                                tf = (double) (1./(Math.cos(x)+Math.cosh(y)));<a name="line.19461"></a>
+<span class="sourceLineNo">19462</span>                                                ox = (double) (tf*Math.sin(x));<a name="line.19462"></a>
+<span class="sourceLineNo">19463</span>                                                oy = (double) (tf*Math.sinh(y));<a name="line.19463"></a>
+<span class="sourceLineNo">19464</span>                                                oc128data[it.oIndex] = ox;<a name="line.19464"></a>
+<span class="sourceLineNo">19465</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.19465"></a>
+<span class="sourceLineNo">19466</span>                                        }<a name="line.19466"></a>
+<span class="sourceLineNo">19467</span>                                }<a name="line.19467"></a>
+<span class="sourceLineNo">19468</span>                        } else {<a name="line.19468"></a>
+<span class="sourceLineNo">19469</span>                                while (it.hasNext()) {<a name="line.19469"></a>
+<span class="sourceLineNo">19470</span>                                        final double ix = it.aDouble;<a name="line.19470"></a>
+<span class="sourceLineNo">19471</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.19471"></a>
+<span class="sourceLineNo">19472</span>                                        double x;<a name="line.19472"></a>
+<span class="sourceLineNo">19473</span>                                        double y;<a name="line.19473"></a>
+<span class="sourceLineNo">19474</span>                                        double tf;<a name="line.19474"></a>
+<span class="sourceLineNo">19475</span>                                        double ox;<a name="line.19475"></a>
+<span class="sourceLineNo">19476</span>                                        double oy;<a name="line.19476"></a>
+<span class="sourceLineNo">19477</span>                                        x = (2.*ix);<a name="line.19477"></a>
+<span class="sourceLineNo">19478</span>                                        y = (2.*iy);<a name="line.19478"></a>
+<span class="sourceLineNo">19479</span>                                        tf = (1./(Math.cos(x)+Math.cosh(y)));<a name="line.19479"></a>
+<span class="sourceLineNo">19480</span>                                        ox = (tf*Math.sin(x));<a name="line.19480"></a>
+<span class="sourceLineNo">19481</span>                                        oy = (tf*Math.sinh(y));<a name="line.19481"></a>
+<span class="sourceLineNo">19482</span>                                        oc128data[it.oIndex] = ox;<a name="line.19482"></a>
+<span class="sourceLineNo">19483</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.19483"></a>
+<span class="sourceLineNo">19484</span>                                }<a name="line.19484"></a>
+<span class="sourceLineNo">19485</span>                        }<a name="line.19485"></a>
+<span class="sourceLineNo">19486</span>                        break;<a name="line.19486"></a>
+<span class="sourceLineNo">19487</span>                default:<a name="line.19487"></a>
+<span class="sourceLineNo">19488</span>                        throw new IllegalArgumentException("tan supports integer, compound integer, real, compound real, complex datasets only");<a name="line.19488"></a>
+<span class="sourceLineNo">19489</span>                }<a name="line.19489"></a>
+<span class="sourceLineNo">19490</span><a name="line.19490"></a>
+<span class="sourceLineNo">19491</span>                addFunctionName(result, "tan");<a name="line.19491"></a>
+<span class="sourceLineNo">19492</span>                return result;<a name="line.19492"></a>
+<span class="sourceLineNo">19493</span>        }<a name="line.19493"></a>
+<span class="sourceLineNo">19494</span><a name="line.19494"></a>
+<span class="sourceLineNo">19495</span>        /**<a name="line.19495"></a>
+<span class="sourceLineNo">19496</span>         * arcsin - evaluate the inverse sine function on each element of the dataset<a name="line.19496"></a>
+<span class="sourceLineNo">19497</span>         * @param a<a name="line.19497"></a>
+<span class="sourceLineNo">19498</span>         * @return dataset<a name="line.19498"></a>
+<span class="sourceLineNo">19499</span>         */<a name="line.19499"></a>
+<span class="sourceLineNo">19500</span>        public static Dataset arcsin(final Object a) {<a name="line.19500"></a>
+<span class="sourceLineNo">19501</span>                return arcsin(a, null);<a name="line.19501"></a>
+<span class="sourceLineNo">19502</span>        }<a name="line.19502"></a>
+<span class="sourceLineNo">19503</span><a name="line.19503"></a>
+<span class="sourceLineNo">19504</span>        /**<a name="line.19504"></a>
+<span class="sourceLineNo">19505</span>         * arcsin - evaluate the inverse sine function on each element of the dataset<a name="line.19505"></a>
+<span class="sourceLineNo">19506</span>         * @param a<a name="line.19506"></a>
+<span class="sourceLineNo">19507</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.19507"></a>
+<span class="sourceLineNo">19508</span>         * @return dataset<a name="line.19508"></a>
+<span class="sourceLineNo">19509</span>         */<a name="line.19509"></a>
+<span class="sourceLineNo">19510</span>        public static Dataset arcsin(final Object a, final Dataset o) {<a name="line.19510"></a>
+<span class="sourceLineNo">19511</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.19511"></a>
+<span class="sourceLineNo">19512</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.19512"></a>
+<span class="sourceLineNo">19513</span>                final Dataset result = it.getOutput();<a name="line.19513"></a>
+<span class="sourceLineNo">19514</span>                if (!result.isComplex()) {<a name="line.19514"></a>
+<span class="sourceLineNo">19515</span>                        if (da.isComplex()) {<a name="line.19515"></a>
+<span class="sourceLineNo">19516</span>                                da = da.getRealView();<a name="line.19516"></a>
+<span class="sourceLineNo">19517</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.19517"></a>
+<span class="sourceLineNo">19518</span>                        }<a name="line.19518"></a>
+<span class="sourceLineNo">19519</span>                }<a name="line.19519"></a>
+<span class="sourceLineNo">19520</span>                final int is = result.getElementsPerItem();<a name="line.19520"></a>
+<span class="sourceLineNo">19521</span>                final int as = da.getElementsPerItem();<a name="line.19521"></a>
+<span class="sourceLineNo">19522</span>                final int dt = result.getDType();<a name="line.19522"></a>
+<span class="sourceLineNo">19523</span><a name="line.19523"></a>
+<span class="sourceLineNo">19524</span>                switch(dt) {<a name="line.19524"></a>
+<span class="sourceLineNo">19525</span>                case Dataset.INT8:<a name="line.19525"></a>
+<span class="sourceLineNo">19526</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.19526"></a>
+<span class="sourceLineNo">19527</span>                        if (it.isOutputDouble()) {<a name="line.19527"></a>
+<span class="sourceLineNo">19528</span>                                while (it.hasNext()) {<a name="line.19528"></a>
+<span class="sourceLineNo">19529</span>                                        final double ix = it.aDouble;<a name="line.19529"></a>
+<span class="sourceLineNo">19530</span>                                        byte ox;<a name="line.19530"></a>
+<span class="sourceLineNo">19531</span>                                        ox = (byte) toLong(Math.asin(ix));<a name="line.19531"></a>
+<span class="sourceLineNo">19532</span>                                        oi8data[it.oIndex] = ox;<a name="line.19532"></a>
+<span class="sourceLineNo">19533</span>                                }<a name="line.19533"></a>
+<span class="sourceLineNo">19534</span>                        } else {<a name="line.19534"></a>
+<span class="sourceLineNo">19535</span>                                while (it.hasNext()) {<a name="line.19535"></a>
+<span class="sourceLineNo">19536</span>                                        final long ix = it.aLong;<a name="line.19536"></a>
+<span class="sourceLineNo">19537</span>                                        byte ox;<a name="line.19537"></a>
+<span class="sourceLineNo">19538</span>                                        ox = (byte) toLong(Math.asin(ix));<a name="line.19538"></a>
+<span class="sourceLineNo">19539</span>                                        oi8data[it.oIndex] = ox;<a name="line.19539"></a>
+<span class="sourceLineNo">19540</span>                                }<a name="line.19540"></a>
+<span class="sourceLineNo">19541</span>                        }<a name="line.19541"></a>
+<span class="sourceLineNo">19542</span>                        break;<a name="line.19542"></a>
+<span class="sourceLineNo">19543</span>                case Dataset.INT16:<a name="line.19543"></a>
+<span class="sourceLineNo">19544</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.19544"></a>
+<span class="sourceLineNo">19545</span>                        if (it.isOutputDouble()) {<a name="line.19545"></a>
+<span class="sourceLineNo">19546</span>                                while (it.hasNext()) {<a name="line.19546"></a>
+<span class="sourceLineNo">19547</span>                                        final double ix = it.aDouble;<a name="line.19547"></a>
+<span class="sourceLineNo">19548</span>                                        short ox;<a name="line.19548"></a>
+<span class="sourceLineNo">19549</span>                                        ox = (short) toLong(Math.asin(ix));<a name="line.19549"></a>
+<span class="sourceLineNo">19550</span>                                        oi16data[it.oIndex] = ox;<a name="line.19550"></a>
+<span class="sourceLineNo">19551</span>                                }<a name="line.19551"></a>
+<span class="sourceLineNo">19552</span>                        } else {<a name="line.19552"></a>
+<span class="sourceLineNo">19553</span>                                while (it.hasNext()) {<a name="line.19553"></a>
+<span class="sourceLineNo">19554</span>                                        final long ix = it.aLong;<a name="line.19554"></a>
+<span class="sourceLineNo">19555</span>                                        short ox;<a name="line.19555"></a>
+<span class="sourceLineNo">19556</span>                                        ox = (short) toLong(Math.asin(ix));<a name="line.19556"></a>
+<span class="sourceLineNo">19557</span>                                        oi16data[it.oIndex] = ox;<a name="line.19557"></a>
+<span class="sourceLineNo">19558</span>                                }<a name="line.19558"></a>
+<span class="sourceLineNo">19559</span>                        }<a name="line.19559"></a>
+<span class="sourceLineNo">19560</span>                        break;<a name="line.19560"></a>
+<span class="sourceLineNo">19561</span>                case Dataset.INT64:<a name="line.19561"></a>
+<span class="sourceLineNo">19562</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.19562"></a>
+<span class="sourceLineNo">19563</span>                        if (it.isOutputDouble()) {<a name="line.19563"></a>
+<span class="sourceLineNo">19564</span>                                while (it.hasNext()) {<a name="line.19564"></a>
+<span class="sourceLineNo">19565</span>                                        final double ix = it.aDouble;<a name="line.19565"></a>
+<span class="sourceLineNo">19566</span>                                        long ox;<a name="line.19566"></a>
+<span class="sourceLineNo">19567</span>                                        ox = toLong(Math.asin(ix));<a name="line.19567"></a>
+<span class="sourceLineNo">19568</span>                                        oi64data[it.oIndex] = ox;<a name="line.19568"></a>
+<span class="sourceLineNo">19569</span>                                }<a name="line.19569"></a>
+<span class="sourceLineNo">19570</span>                        } else {<a name="line.19570"></a>
+<span class="sourceLineNo">19571</span>                                while (it.hasNext()) {<a name="line.19571"></a>
+<span class="sourceLineNo">19572</span>                                        final long ix = it.aLong;<a name="line.19572"></a>
+<span class="sourceLineNo">19573</span>                                        long ox;<a name="line.19573"></a>
+<span class="sourceLineNo">19574</span>                                        ox = toLong(Math.asin(ix));<a name="line.19574"></a>
+<span class="sourceLineNo">19575</span>                                        oi64data[it.oIndex] = ox;<a name="line.19575"></a>
+<span class="sourceLineNo">19576</span>                                }<a name="line.19576"></a>
+<span class="sourceLineNo">19577</span>                        }<a name="line.19577"></a>
+<span class="sourceLineNo">19578</span>                        break;<a name="line.19578"></a>
+<span class="sourceLineNo">19579</span>                case Dataset.INT32:<a name="line.19579"></a>
+<span class="sourceLineNo">19580</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.19580"></a>
+<span class="sourceLineNo">19581</span>                        if (it.isOutputDouble()) {<a name="line.19581"></a>
+<span class="sourceLineNo">19582</span>                                while (it.hasNext()) {<a name="line.19582"></a>
+<span class="sourceLineNo">19583</span>                                        final double ix = it.aDouble;<a name="line.19583"></a>
+<span class="sourceLineNo">19584</span>                                        int ox;<a name="line.19584"></a>
+<span class="sourceLineNo">19585</span>                                        ox = (int) toLong(Math.asin(ix));<a name="line.19585"></a>
+<span class="sourceLineNo">19586</span>                                        oi32data[it.oIndex] = ox;<a name="line.19586"></a>
+<span class="sourceLineNo">19587</span>                                }<a name="line.19587"></a>
+<span class="sourceLineNo">19588</span>                        } else {<a name="line.19588"></a>
+<span class="sourceLineNo">19589</span>                                while (it.hasNext()) {<a name="line.19589"></a>
+<span class="sourceLineNo">19590</span>                                        final long ix = it.aLong;<a name="line.19590"></a>
+<span class="sourceLineNo">19591</span>                                        int ox;<a name="line.19591"></a>
+<span class="sourceLineNo">19592</span>                                        ox = (int) toLong(Math.asin(ix));<a name="line.19592"></a>
+<span class="sourceLineNo">19593</span>                                        oi32data[it.oIndex] = ox;<a name="line.19593"></a>
+<span class="sourceLineNo">19594</span>                                }<a name="line.19594"></a>
+<span class="sourceLineNo">19595</span>                        }<a name="line.19595"></a>
+<span class="sourceLineNo">19596</span>                        break;<a name="line.19596"></a>
+<span class="sourceLineNo">19597</span>                case Dataset.ARRAYINT8:<a name="line.19597"></a>
+<span class="sourceLineNo">19598</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.19598"></a>
+<span class="sourceLineNo">19599</span>                        if (is == 1) {<a name="line.19599"></a>
+<span class="sourceLineNo">19600</span>                                if (it.isOutputDouble()) {<a name="line.19600"></a>
+<span class="sourceLineNo">19601</span>                                        while (it.hasNext()) {<a name="line.19601"></a>
+<span class="sourceLineNo">19602</span>                                                final double ix = it.aDouble;<a name="line.19602"></a>
+<span class="sourceLineNo">19603</span>                                                byte ox;<a name="line.19603"></a>
+<span class="sourceLineNo">19604</span>                                                ox = (byte) toLong(Math.asin(ix));<a name="line.19604"></a>
+<span class="sourceLineNo">19605</span>                                                oai8data[it.oIndex] = ox;<a name="line.19605"></a>
+<span class="sourceLineNo">19606</span>                                        }<a name="line.19606"></a>
+<span class="sourceLineNo">19607</span>                                } else {<a name="line.19607"></a>
+<span class="sourceLineNo">19608</span>                                        while (it.hasNext()) {<a name="line.19608"></a>
+<span class="sourceLineNo">19609</span>                                                final long ix = it.aLong;<a name="line.19609"></a>
+<span class="sourceLineNo">19610</span>                                                byte ox;<a name="line.19610"></a>
+<span class="sourceLineNo">19611</span>                                                ox = (byte) toLong(Math.asin(ix));<a name="line.19611"></a>
+<span class="sourceLineNo">19612</span>                                                oai8data[it.oIndex] = ox;<a name="line.19612"></a>
+<span class="sourceLineNo">19613</span>                                        }<a name="line.19613"></a>
+<span class="sourceLineNo">19614</span>                                }<a name="line.19614"></a>
+<span class="sourceLineNo">19615</span>                        } else if (as == 1) {<a name="line.19615"></a>
+<span class="sourceLineNo">19616</span>                                if (it.isOutputDouble()) {<a name="line.19616"></a>
+<span class="sourceLineNo">19617</span>                                        while (it.hasNext()) {<a name="line.19617"></a>
+<span class="sourceLineNo">19618</span>                                                final double ix = it.aDouble;<a name="line.19618"></a>
+<span class="sourceLineNo">19619</span>                                                byte ox;<a name="line.19619"></a>
+<span class="sourceLineNo">19620</span>                                                ox = (byte) toLong(Math.asin(ix));<a name="line.19620"></a>
+<span class="sourceLineNo">19621</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19621"></a>
+<span class="sourceLineNo">19622</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.19622"></a>
+<span class="sourceLineNo">19623</span>                                                }<a name="line.19623"></a>
+<span class="sourceLineNo">19624</span>                                        }<a name="line.19624"></a>
+<span class="sourceLineNo">19625</span>                                } else {<a name="line.19625"></a>
+<span class="sourceLineNo">19626</span>                                        while (it.hasNext()) {<a name="line.19626"></a>
+<span class="sourceLineNo">19627</span>                                                final long ix = it.aLong;<a name="line.19627"></a>
+<span class="sourceLineNo">19628</span>                                                byte ox;<a name="line.19628"></a>
+<span class="sourceLineNo">19629</span>                                                ox = (byte) toLong(Math.asin(ix));<a name="line.19629"></a>
+<span class="sourceLineNo">19630</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19630"></a>
+<span class="sourceLineNo">19631</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.19631"></a>
+<span class="sourceLineNo">19632</span>                                                }<a name="line.19632"></a>
+<span class="sourceLineNo">19633</span>                                        }<a name="line.19633"></a>
+<span class="sourceLineNo">19634</span>                                }<a name="line.19634"></a>
+<span class="sourceLineNo">19635</span>                        } else {<a name="line.19635"></a>
+<span class="sourceLineNo">19636</span>                                if (it.isOutputDouble()) {<a name="line.19636"></a>
+<span class="sourceLineNo">19637</span>                                        while (it.hasNext()) {<a name="line.19637"></a>
+<span class="sourceLineNo">19638</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19638"></a>
+<span class="sourceLineNo">19639</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.19639"></a>
+<span class="sourceLineNo">19640</span>                                                        byte ox;<a name="line.19640"></a>
+<span class="sourceLineNo">19641</span>                                                        ox = (byte) toLong(Math.asin(ix));<a name="line.19641"></a>
+<span class="sourceLineNo">19642</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.19642"></a>
+<span class="sourceLineNo">19643</span>                                                }<a name="line.19643"></a>
+<span class="sourceLineNo">19644</span>                                        }<a name="line.19644"></a>
+<span class="sourceLineNo">19645</span>                                } else {<a name="line.19645"></a>
+<span class="sourceLineNo">19646</span>                                        while (it.hasNext()) {<a name="line.19646"></a>
+<span class="sourceLineNo">19647</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19647"></a>
+<span class="sourceLineNo">19648</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.19648"></a>
+<span class="sourceLineNo">19649</span>                                                        byte ox;<a name="line.19649"></a>
+<span class="sourceLineNo">19650</span>                                                        ox = (byte) toLong(Math.asin(ix));<a name="line.19650"></a>
+<span class="sourceLineNo">19651</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.19651"></a>
+<span class="sourceLineNo">19652</span>                                                }<a name="line.19652"></a>
+<span class="sourceLineNo">19653</span>                                        }<a name="line.19653"></a>
+<span class="sourceLineNo">19654</span>                                }<a name="line.19654"></a>
+<span class="sourceLineNo">19655</span>                        }<a name="line.19655"></a>
+<span class="sourceLineNo">19656</span>                        break;<a name="line.19656"></a>
+<span class="sourceLineNo">19657</span>                case Dataset.ARRAYINT16:<a name="line.19657"></a>
+<span class="sourceLineNo">19658</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.19658"></a>
+<span class="sourceLineNo">19659</span>                        if (is == 1) {<a name="line.19659"></a>
+<span class="sourceLineNo">19660</span>                                if (it.isOutputDouble()) {<a name="line.19660"></a>
+<span class="sourceLineNo">19661</span>                                        while (it.hasNext()) {<a name="line.19661"></a>
+<span class="sourceLineNo">19662</span>                                                final double ix = it.aDouble;<a name="line.19662"></a>
+<span class="sourceLineNo">19663</span>                                                short ox;<a name="line.19663"></a>
+<span class="sourceLineNo">19664</span>                                                ox = (short) toLong(Math.asin(ix));<a name="line.19664"></a>
+<span class="sourceLineNo">19665</span>                                                oai16data[it.oIndex] = ox;<a name="line.19665"></a>
+<span class="sourceLineNo">19666</span>                                        }<a name="line.19666"></a>
+<span class="sourceLineNo">19667</span>                                } else {<a name="line.19667"></a>
+<span class="sourceLineNo">19668</span>                                        while (it.hasNext()) {<a name="line.19668"></a>
+<span class="sourceLineNo">19669</span>                                                final long ix = it.aLong;<a name="line.19669"></a>
+<span class="sourceLineNo">19670</span>                                                short ox;<a name="line.19670"></a>
+<span class="sourceLineNo">19671</span>                                                ox = (short) toLong(Math.asin(ix));<a name="line.19671"></a>
+<span class="sourceLineNo">19672</span>                                                oai16data[it.oIndex] = ox;<a name="line.19672"></a>
+<span class="sourceLineNo">19673</span>                                        }<a name="line.19673"></a>
+<span class="sourceLineNo">19674</span>                                }<a name="line.19674"></a>
+<span class="sourceLineNo">19675</span>                        } else if (as == 1) {<a name="line.19675"></a>
+<span class="sourceLineNo">19676</span>                                if (it.isOutputDouble()) {<a name="line.19676"></a>
+<span class="sourceLineNo">19677</span>                                        while (it.hasNext()) {<a name="line.19677"></a>
+<span class="sourceLineNo">19678</span>                                                final double ix = it.aDouble;<a name="line.19678"></a>
+<span class="sourceLineNo">19679</span>                                                short ox;<a name="line.19679"></a>
+<span class="sourceLineNo">19680</span>                                                ox = (short) toLong(Math.asin(ix));<a name="line.19680"></a>
+<span class="sourceLineNo">19681</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19681"></a>
+<span class="sourceLineNo">19682</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.19682"></a>
+<span class="sourceLineNo">19683</span>                                                }<a name="line.19683"></a>
+<span class="sourceLineNo">19684</span>                                        }<a name="line.19684"></a>
+<span class="sourceLineNo">19685</span>                                } else {<a name="line.19685"></a>
+<span class="sourceLineNo">19686</span>                                        while (it.hasNext()) {<a name="line.19686"></a>
+<span class="sourceLineNo">19687</span>                                                final long ix = it.aLong;<a name="line.19687"></a>
+<span class="sourceLineNo">19688</span>                                                short ox;<a name="line.19688"></a>
+<span class="sourceLineNo">19689</span>                                                ox = (short) toLong(Math.asin(ix));<a name="line.19689"></a>
+<span class="sourceLineNo">19690</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19690"></a>
+<span class="sourceLineNo">19691</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.19691"></a>
+<span class="sourceLineNo">19692</span>                                                }<a name="line.19692"></a>
+<span class="sourceLineNo">19693</span>                                        }<a name="line.19693"></a>
+<span class="sourceLineNo">19694</span>                                }<a name="line.19694"></a>
+<span class="sourceLineNo">19695</span>                        } else {<a name="line.19695"></a>
+<span class="sourceLineNo">19696</span>                                if (it.isOutputDouble()) {<a name="line.19696"></a>
+<span class="sourceLineNo">19697</span>                                        while (it.hasNext()) {<a name="line.19697"></a>
+<span class="sourceLineNo">19698</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19698"></a>
+<span class="sourceLineNo">19699</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.19699"></a>
+<span class="sourceLineNo">19700</span>                                                        short ox;<a name="line.19700"></a>
+<span class="sourceLineNo">19701</span>                                                        ox = (short) toLong(Math.asin(ix));<a name="line.19701"></a>
+<span class="sourceLineNo">19702</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.19702"></a>
+<span class="sourceLineNo">19703</span>                                                }<a name="line.19703"></a>
+<span class="sourceLineNo">19704</span>                                        }<a name="line.19704"></a>
+<span class="sourceLineNo">19705</span>                                } else {<a name="line.19705"></a>
+<span class="sourceLineNo">19706</span>                                        while (it.hasNext()) {<a name="line.19706"></a>
+<span class="sourceLineNo">19707</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19707"></a>
+<span class="sourceLineNo">19708</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.19708"></a>
+<span class="sourceLineNo">19709</span>                                                        short ox;<a name="line.19709"></a>
+<span class="sourceLineNo">19710</span>                                                        ox = (short) toLong(Math.asin(ix));<a name="line.19710"></a>
+<span class="sourceLineNo">19711</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.19711"></a>
+<span class="sourceLineNo">19712</span>                                                }<a name="line.19712"></a>
+<span class="sourceLineNo">19713</span>                                        }<a name="line.19713"></a>
+<span class="sourceLineNo">19714</span>                                }<a name="line.19714"></a>
+<span class="sourceLineNo">19715</span>                        }<a name="line.19715"></a>
+<span class="sourceLineNo">19716</span>                        break;<a name="line.19716"></a>
+<span class="sourceLineNo">19717</span>                case Dataset.ARRAYINT64:<a name="line.19717"></a>
+<span class="sourceLineNo">19718</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.19718"></a>
+<span class="sourceLineNo">19719</span>                        if (is == 1) {<a name="line.19719"></a>
+<span class="sourceLineNo">19720</span>                                if (it.isOutputDouble()) {<a name="line.19720"></a>
+<span class="sourceLineNo">19721</span>                                        while (it.hasNext()) {<a name="line.19721"></a>
+<span class="sourceLineNo">19722</span>                                                final double ix = it.aDouble;<a name="line.19722"></a>
+<span class="sourceLineNo">19723</span>                                                long ox;<a name="line.19723"></a>
+<span class="sourceLineNo">19724</span>                                                ox = toLong(Math.asin(ix));<a name="line.19724"></a>
+<span class="sourceLineNo">19725</span>                                                oai64data[it.oIndex] = ox;<a name="line.19725"></a>
+<span class="sourceLineNo">19726</span>                                        }<a name="line.19726"></a>
+<span class="sourceLineNo">19727</span>                                } else {<a name="line.19727"></a>
+<span class="sourceLineNo">19728</span>                                        while (it.hasNext()) {<a name="line.19728"></a>
+<span class="sourceLineNo">19729</span>                                                final long ix = it.aLong;<a name="line.19729"></a>
+<span class="sourceLineNo">19730</span>                                                long ox;<a name="line.19730"></a>
+<span class="sourceLineNo">19731</span>                                                ox = toLong(Math.asin(ix));<a name="line.19731"></a>
+<span class="sourceLineNo">19732</span>                                                oai64data[it.oIndex] = ox;<a name="line.19732"></a>
+<span class="sourceLineNo">19733</span>                                        }<a name="line.19733"></a>
+<span class="sourceLineNo">19734</span>                                }<a name="line.19734"></a>
+<span class="sourceLineNo">19735</span>                        } else if (as == 1) {<a name="line.19735"></a>
+<span class="sourceLineNo">19736</span>                                if (it.isOutputDouble()) {<a name="line.19736"></a>
+<span class="sourceLineNo">19737</span>                                        while (it.hasNext()) {<a name="line.19737"></a>
+<span class="sourceLineNo">19738</span>                                                final double ix = it.aDouble;<a name="line.19738"></a>
+<span class="sourceLineNo">19739</span>                                                long ox;<a name="line.19739"></a>
+<span class="sourceLineNo">19740</span>                                                ox = toLong(Math.asin(ix));<a name="line.19740"></a>
+<span class="sourceLineNo">19741</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19741"></a>
+<span class="sourceLineNo">19742</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.19742"></a>
+<span class="sourceLineNo">19743</span>                                                }<a name="line.19743"></a>
+<span class="sourceLineNo">19744</span>                                        }<a name="line.19744"></a>
+<span class="sourceLineNo">19745</span>                                } else {<a name="line.19745"></a>
+<span class="sourceLineNo">19746</span>                                        while (it.hasNext()) {<a name="line.19746"></a>
+<span class="sourceLineNo">19747</span>                                                final long ix = it.aLong;<a name="line.19747"></a>
+<span class="sourceLineNo">19748</span>                                                long ox;<a name="line.19748"></a>
+<span class="sourceLineNo">19749</span>                                                ox = toLong(Math.asin(ix));<a name="line.19749"></a>
+<span class="sourceLineNo">19750</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19750"></a>
+<span class="sourceLineNo">19751</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.19751"></a>
+<span class="sourceLineNo">19752</span>                                                }<a name="line.19752"></a>
+<span class="sourceLineNo">19753</span>                                        }<a name="line.19753"></a>
+<span class="sourceLineNo">19754</span>                                }<a name="line.19754"></a>
+<span class="sourceLineNo">19755</span>                        } else {<a name="line.19755"></a>
+<span class="sourceLineNo">19756</span>                                if (it.isOutputDouble()) {<a name="line.19756"></a>
+<span class="sourceLineNo">19757</span>                                        while (it.hasNext()) {<a name="line.19757"></a>
+<span class="sourceLineNo">19758</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19758"></a>
+<span class="sourceLineNo">19759</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.19759"></a>
+<span class="sourceLineNo">19760</span>                                                        long ox;<a name="line.19760"></a>
+<span class="sourceLineNo">19761</span>                                                        ox = toLong(Math.asin(ix));<a name="line.19761"></a>
+<span class="sourceLineNo">19762</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.19762"></a>
+<span class="sourceLineNo">19763</span>                                                }<a name="line.19763"></a>
+<span class="sourceLineNo">19764</span>                                        }<a name="line.19764"></a>
+<span class="sourceLineNo">19765</span>                                } else {<a name="line.19765"></a>
+<span class="sourceLineNo">19766</span>                                        while (it.hasNext()) {<a name="line.19766"></a>
+<span class="sourceLineNo">19767</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19767"></a>
+<span class="sourceLineNo">19768</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.19768"></a>
+<span class="sourceLineNo">19769</span>                                                        long ox;<a name="line.19769"></a>
+<span class="sourceLineNo">19770</span>                                                        ox = toLong(Math.asin(ix));<a name="line.19770"></a>
+<span class="sourceLineNo">19771</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.19771"></a>
+<span class="sourceLineNo">19772</span>                                                }<a name="line.19772"></a>
+<span class="sourceLineNo">19773</span>                                        }<a name="line.19773"></a>
+<span class="sourceLineNo">19774</span>                                }<a name="line.19774"></a>
+<span class="sourceLineNo">19775</span>                        }<a name="line.19775"></a>
+<span class="sourceLineNo">19776</span>                        break;<a name="line.19776"></a>
+<span class="sourceLineNo">19777</span>                case Dataset.ARRAYINT32:<a name="line.19777"></a>
+<span class="sourceLineNo">19778</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.19778"></a>
+<span class="sourceLineNo">19779</span>                        if (is == 1) {<a name="line.19779"></a>
+<span class="sourceLineNo">19780</span>                                if (it.isOutputDouble()) {<a name="line.19780"></a>
+<span class="sourceLineNo">19781</span>                                        while (it.hasNext()) {<a name="line.19781"></a>
+<span class="sourceLineNo">19782</span>                                                final double ix = it.aDouble;<a name="line.19782"></a>
+<span class="sourceLineNo">19783</span>                                                int ox;<a name="line.19783"></a>
+<span class="sourceLineNo">19784</span>                                                ox = (int) toLong(Math.asin(ix));<a name="line.19784"></a>
+<span class="sourceLineNo">19785</span>                                                oai32data[it.oIndex] = ox;<a name="line.19785"></a>
+<span class="sourceLineNo">19786</span>                                        }<a name="line.19786"></a>
+<span class="sourceLineNo">19787</span>                                } else {<a name="line.19787"></a>
+<span class="sourceLineNo">19788</span>                                        while (it.hasNext()) {<a name="line.19788"></a>
+<span class="sourceLineNo">19789</span>                                                final long ix = it.aLong;<a name="line.19789"></a>
+<span class="sourceLineNo">19790</span>                                                int ox;<a name="line.19790"></a>
+<span class="sourceLineNo">19791</span>                                                ox = (int) toLong(Math.asin(ix));<a name="line.19791"></a>
+<span class="sourceLineNo">19792</span>                                                oai32data[it.oIndex] = ox;<a name="line.19792"></a>
+<span class="sourceLineNo">19793</span>                                        }<a name="line.19793"></a>
+<span class="sourceLineNo">19794</span>                                }<a name="line.19794"></a>
+<span class="sourceLineNo">19795</span>                        } else if (as == 1) {<a name="line.19795"></a>
+<span class="sourceLineNo">19796</span>                                if (it.isOutputDouble()) {<a name="line.19796"></a>
+<span class="sourceLineNo">19797</span>                                        while (it.hasNext()) {<a name="line.19797"></a>
+<span class="sourceLineNo">19798</span>                                                final double ix = it.aDouble;<a name="line.19798"></a>
+<span class="sourceLineNo">19799</span>                                                int ox;<a name="line.19799"></a>
+<span class="sourceLineNo">19800</span>                                                ox = (int) toLong(Math.asin(ix));<a name="line.19800"></a>
+<span class="sourceLineNo">19801</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19801"></a>
+<span class="sourceLineNo">19802</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.19802"></a>
+<span class="sourceLineNo">19803</span>                                                }<a name="line.19803"></a>
+<span class="sourceLineNo">19804</span>                                        }<a name="line.19804"></a>
+<span class="sourceLineNo">19805</span>                                } else {<a name="line.19805"></a>
+<span class="sourceLineNo">19806</span>                                        while (it.hasNext()) {<a name="line.19806"></a>
+<span class="sourceLineNo">19807</span>                                                final long ix = it.aLong;<a name="line.19807"></a>
+<span class="sourceLineNo">19808</span>                                                int ox;<a name="line.19808"></a>
+<span class="sourceLineNo">19809</span>                                                ox = (int) toLong(Math.asin(ix));<a name="line.19809"></a>
+<span class="sourceLineNo">19810</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19810"></a>
+<span class="sourceLineNo">19811</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.19811"></a>
+<span class="sourceLineNo">19812</span>                                                }<a name="line.19812"></a>
+<span class="sourceLineNo">19813</span>                                        }<a name="line.19813"></a>
+<span class="sourceLineNo">19814</span>                                }<a name="line.19814"></a>
+<span class="sourceLineNo">19815</span>                        } else {<a name="line.19815"></a>
+<span class="sourceLineNo">19816</span>                                if (it.isOutputDouble()) {<a name="line.19816"></a>
+<span class="sourceLineNo">19817</span>                                        while (it.hasNext()) {<a name="line.19817"></a>
+<span class="sourceLineNo">19818</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19818"></a>
+<span class="sourceLineNo">19819</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.19819"></a>
+<span class="sourceLineNo">19820</span>                                                        int ox;<a name="line.19820"></a>
+<span class="sourceLineNo">19821</span>                                                        ox = (int) toLong(Math.asin(ix));<a name="line.19821"></a>
+<span class="sourceLineNo">19822</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.19822"></a>
+<span class="sourceLineNo">19823</span>                                                }<a name="line.19823"></a>
+<span class="sourceLineNo">19824</span>                                        }<a name="line.19824"></a>
+<span class="sourceLineNo">19825</span>                                } else {<a name="line.19825"></a>
+<span class="sourceLineNo">19826</span>                                        while (it.hasNext()) {<a name="line.19826"></a>
+<span class="sourceLineNo">19827</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19827"></a>
+<span class="sourceLineNo">19828</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.19828"></a>
+<span class="sourceLineNo">19829</span>                                                        int ox;<a name="line.19829"></a>
+<span class="sourceLineNo">19830</span>                                                        ox = (int) toLong(Math.asin(ix));<a name="line.19830"></a>
+<span class="sourceLineNo">19831</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.19831"></a>
+<span class="sourceLineNo">19832</span>                                                }<a name="line.19832"></a>
+<span class="sourceLineNo">19833</span>                                        }<a name="line.19833"></a>
+<span class="sourceLineNo">19834</span>                                }<a name="line.19834"></a>
+<span class="sourceLineNo">19835</span>                        }<a name="line.19835"></a>
+<span class="sourceLineNo">19836</span>                        break;<a name="line.19836"></a>
+<span class="sourceLineNo">19837</span>                case Dataset.FLOAT32:<a name="line.19837"></a>
+<span class="sourceLineNo">19838</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.19838"></a>
+<span class="sourceLineNo">19839</span>                        if (it.isOutputDouble()) {<a name="line.19839"></a>
+<span class="sourceLineNo">19840</span>                                while (it.hasNext()) {<a name="line.19840"></a>
+<span class="sourceLineNo">19841</span>                                        final double ix = it.aDouble;<a name="line.19841"></a>
+<span class="sourceLineNo">19842</span>                                        float ox;<a name="line.19842"></a>
+<span class="sourceLineNo">19843</span>                                        ox = (float) (Math.asin(ix));<a name="line.19843"></a>
+<span class="sourceLineNo">19844</span>                                        of32data[it.oIndex] = ox;<a name="line.19844"></a>
+<span class="sourceLineNo">19845</span>                                }<a name="line.19845"></a>
+<span class="sourceLineNo">19846</span>                        } else {<a name="line.19846"></a>
+<span class="sourceLineNo">19847</span>                                while (it.hasNext()) {<a name="line.19847"></a>
+<span class="sourceLineNo">19848</span>                                        final long ix = it.aLong;<a name="line.19848"></a>
+<span class="sourceLineNo">19849</span>                                        float ox;<a name="line.19849"></a>
+<span class="sourceLineNo">19850</span>                                        ox = (float) (Math.asin(ix));<a name="line.19850"></a>
+<span class="sourceLineNo">19851</span>                                        of32data[it.oIndex] = ox;<a name="line.19851"></a>
+<span class="sourceLineNo">19852</span>                                }<a name="line.19852"></a>
+<span class="sourceLineNo">19853</span>                        }<a name="line.19853"></a>
+<span class="sourceLineNo">19854</span>                        break;<a name="line.19854"></a>
+<span class="sourceLineNo">19855</span>                case Dataset.FLOAT64:<a name="line.19855"></a>
+<span class="sourceLineNo">19856</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.19856"></a>
+<span class="sourceLineNo">19857</span>                        if (it.isOutputDouble()) {<a name="line.19857"></a>
+<span class="sourceLineNo">19858</span>                                while (it.hasNext()) {<a name="line.19858"></a>
+<span class="sourceLineNo">19859</span>                                        final double ix = it.aDouble;<a name="line.19859"></a>
+<span class="sourceLineNo">19860</span>                                        double ox;<a name="line.19860"></a>
+<span class="sourceLineNo">19861</span>                                        ox = (Math.asin(ix));<a name="line.19861"></a>
+<span class="sourceLineNo">19862</span>                                        of64data[it.oIndex] = ox;<a name="line.19862"></a>
+<span class="sourceLineNo">19863</span>                                }<a name="line.19863"></a>
+<span class="sourceLineNo">19864</span>                        } else {<a name="line.19864"></a>
+<span class="sourceLineNo">19865</span>                                while (it.hasNext()) {<a name="line.19865"></a>
+<span class="sourceLineNo">19866</span>                                        final long ix = it.aLong;<a name="line.19866"></a>
+<span class="sourceLineNo">19867</span>                                        double ox;<a name="line.19867"></a>
+<span class="sourceLineNo">19868</span>                                        ox = (Math.asin(ix));<a name="line.19868"></a>
+<span class="sourceLineNo">19869</span>                                        of64data[it.oIndex] = ox;<a name="line.19869"></a>
+<span class="sourceLineNo">19870</span>                                }<a name="line.19870"></a>
+<span class="sourceLineNo">19871</span>                        }<a name="line.19871"></a>
+<span class="sourceLineNo">19872</span>                        break;<a name="line.19872"></a>
+<span class="sourceLineNo">19873</span>                case Dataset.ARRAYFLOAT32:<a name="line.19873"></a>
+<span class="sourceLineNo">19874</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.19874"></a>
+<span class="sourceLineNo">19875</span>                        if (is == 1) {<a name="line.19875"></a>
+<span class="sourceLineNo">19876</span>                                if (it.isOutputDouble()) {<a name="line.19876"></a>
+<span class="sourceLineNo">19877</span>                                        while (it.hasNext()) {<a name="line.19877"></a>
+<span class="sourceLineNo">19878</span>                                                final double ix = it.aDouble;<a name="line.19878"></a>
+<span class="sourceLineNo">19879</span>                                                float ox;<a name="line.19879"></a>
+<span class="sourceLineNo">19880</span>                                                ox = (float) (Math.asin(ix));<a name="line.19880"></a>
+<span class="sourceLineNo">19881</span>                                                oaf32data[it.oIndex] = ox;<a name="line.19881"></a>
+<span class="sourceLineNo">19882</span>                                        }<a name="line.19882"></a>
+<span class="sourceLineNo">19883</span>                                } else {<a name="line.19883"></a>
+<span class="sourceLineNo">19884</span>                                        while (it.hasNext()) {<a name="line.19884"></a>
+<span class="sourceLineNo">19885</span>                                                final long ix = it.aLong;<a name="line.19885"></a>
+<span class="sourceLineNo">19886</span>                                                float ox;<a name="line.19886"></a>
+<span class="sourceLineNo">19887</span>                                                ox = (float) (Math.asin(ix));<a name="line.19887"></a>
+<span class="sourceLineNo">19888</span>                                                oaf32data[it.oIndex] = ox;<a name="line.19888"></a>
+<span class="sourceLineNo">19889</span>                                        }<a name="line.19889"></a>
+<span class="sourceLineNo">19890</span>                                }<a name="line.19890"></a>
+<span class="sourceLineNo">19891</span>                        } else if (as == 1) {<a name="line.19891"></a>
+<span class="sourceLineNo">19892</span>                                if (it.isOutputDouble()) {<a name="line.19892"></a>
+<span class="sourceLineNo">19893</span>                                        while (it.hasNext()) {<a name="line.19893"></a>
+<span class="sourceLineNo">19894</span>                                                final double ix = it.aDouble;<a name="line.19894"></a>
+<span class="sourceLineNo">19895</span>                                                float ox;<a name="line.19895"></a>
+<span class="sourceLineNo">19896</span>                                                ox = (float) (Math.asin(ix));<a name="line.19896"></a>
+<span class="sourceLineNo">19897</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19897"></a>
+<span class="sourceLineNo">19898</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.19898"></a>
+<span class="sourceLineNo">19899</span>                                                }<a name="line.19899"></a>
+<span class="sourceLineNo">19900</span>                                        }<a name="line.19900"></a>
+<span class="sourceLineNo">19901</span>                                } else {<a name="line.19901"></a>
+<span class="sourceLineNo">19902</span>                                        while (it.hasNext()) {<a name="line.19902"></a>
+<span class="sourceLineNo">19903</span>                                                final long ix = it.aLong;<a name="line.19903"></a>
+<span class="sourceLineNo">19904</span>                                                float ox;<a name="line.19904"></a>
+<span class="sourceLineNo">19905</span>                                                ox = (float) (Math.asin(ix));<a name="line.19905"></a>
+<span class="sourceLineNo">19906</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19906"></a>
+<span class="sourceLineNo">19907</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.19907"></a>
+<span class="sourceLineNo">19908</span>                                                }<a name="line.19908"></a>
+<span class="sourceLineNo">19909</span>                                        }<a name="line.19909"></a>
+<span class="sourceLineNo">19910</span>                                }<a name="line.19910"></a>
+<span class="sourceLineNo">19911</span>                        } else {<a name="line.19911"></a>
+<span class="sourceLineNo">19912</span>                                if (it.isOutputDouble()) {<a name="line.19912"></a>
+<span class="sourceLineNo">19913</span>                                        while (it.hasNext()) {<a name="line.19913"></a>
+<span class="sourceLineNo">19914</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19914"></a>
+<span class="sourceLineNo">19915</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.19915"></a>
+<span class="sourceLineNo">19916</span>                                                        float ox;<a name="line.19916"></a>
+<span class="sourceLineNo">19917</span>                                                        ox = (float) (Math.asin(ix));<a name="line.19917"></a>
+<span class="sourceLineNo">19918</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.19918"></a>
+<span class="sourceLineNo">19919</span>                                                }<a name="line.19919"></a>
+<span class="sourceLineNo">19920</span>                                        }<a name="line.19920"></a>
+<span class="sourceLineNo">19921</span>                                } else {<a name="line.19921"></a>
+<span class="sourceLineNo">19922</span>                                        while (it.hasNext()) {<a name="line.19922"></a>
+<span class="sourceLineNo">19923</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19923"></a>
+<span class="sourceLineNo">19924</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.19924"></a>
+<span class="sourceLineNo">19925</span>                                                        float ox;<a name="line.19925"></a>
+<span class="sourceLineNo">19926</span>                                                        ox = (float) (Math.asin(ix));<a name="line.19926"></a>
+<span class="sourceLineNo">19927</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.19927"></a>
+<span class="sourceLineNo">19928</span>                                                }<a name="line.19928"></a>
+<span class="sourceLineNo">19929</span>                                        }<a name="line.19929"></a>
+<span class="sourceLineNo">19930</span>                                }<a name="line.19930"></a>
+<span class="sourceLineNo">19931</span>                        }<a name="line.19931"></a>
+<span class="sourceLineNo">19932</span>                        break;<a name="line.19932"></a>
+<span class="sourceLineNo">19933</span>                case Dataset.ARRAYFLOAT64:<a name="line.19933"></a>
+<span class="sourceLineNo">19934</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.19934"></a>
+<span class="sourceLineNo">19935</span>                        if (is == 1) {<a name="line.19935"></a>
+<span class="sourceLineNo">19936</span>                                if (it.isOutputDouble()) {<a name="line.19936"></a>
+<span class="sourceLineNo">19937</span>                                        while (it.hasNext()) {<a name="line.19937"></a>
+<span class="sourceLineNo">19938</span>                                                final double ix = it.aDouble;<a name="line.19938"></a>
+<span class="sourceLineNo">19939</span>                                                double ox;<a name="line.19939"></a>
+<span class="sourceLineNo">19940</span>                                                ox = (Math.asin(ix));<a name="line.19940"></a>
+<span class="sourceLineNo">19941</span>                                                oaf64data[it.oIndex] = ox;<a name="line.19941"></a>
+<span class="sourceLineNo">19942</span>                                        }<a name="line.19942"></a>
+<span class="sourceLineNo">19943</span>                                } else {<a name="line.19943"></a>
+<span class="sourceLineNo">19944</span>                                        while (it.hasNext()) {<a name="line.19944"></a>
+<span class="sourceLineNo">19945</span>                                                final long ix = it.aLong;<a name="line.19945"></a>
+<span class="sourceLineNo">19946</span>                                                double ox;<a name="line.19946"></a>
+<span class="sourceLineNo">19947</span>                                                ox = (Math.asin(ix));<a name="line.19947"></a>
+<span class="sourceLineNo">19948</span>                                                oaf64data[it.oIndex] = ox;<a name="line.19948"></a>
+<span class="sourceLineNo">19949</span>                                        }<a name="line.19949"></a>
+<span class="sourceLineNo">19950</span>                                }<a name="line.19950"></a>
+<span class="sourceLineNo">19951</span>                        } else if (as == 1) {<a name="line.19951"></a>
+<span class="sourceLineNo">19952</span>                                if (it.isOutputDouble()) {<a name="line.19952"></a>
+<span class="sourceLineNo">19953</span>                                        while (it.hasNext()) {<a name="line.19953"></a>
+<span class="sourceLineNo">19954</span>                                                final double ix = it.aDouble;<a name="line.19954"></a>
+<span class="sourceLineNo">19955</span>                                                double ox;<a name="line.19955"></a>
+<span class="sourceLineNo">19956</span>                                                ox = (Math.asin(ix));<a name="line.19956"></a>
+<span class="sourceLineNo">19957</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19957"></a>
+<span class="sourceLineNo">19958</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.19958"></a>
+<span class="sourceLineNo">19959</span>                                                }<a name="line.19959"></a>
+<span class="sourceLineNo">19960</span>                                        }<a name="line.19960"></a>
+<span class="sourceLineNo">19961</span>                                } else {<a name="line.19961"></a>
+<span class="sourceLineNo">19962</span>                                        while (it.hasNext()) {<a name="line.19962"></a>
+<span class="sourceLineNo">19963</span>                                                final long ix = it.aLong;<a name="line.19963"></a>
+<span class="sourceLineNo">19964</span>                                                double ox;<a name="line.19964"></a>
+<span class="sourceLineNo">19965</span>                                                ox = (Math.asin(ix));<a name="line.19965"></a>
+<span class="sourceLineNo">19966</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19966"></a>
+<span class="sourceLineNo">19967</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.19967"></a>
+<span class="sourceLineNo">19968</span>                                                }<a name="line.19968"></a>
+<span class="sourceLineNo">19969</span>                                        }<a name="line.19969"></a>
+<span class="sourceLineNo">19970</span>                                }<a name="line.19970"></a>
+<span class="sourceLineNo">19971</span>                        } else {<a name="line.19971"></a>
+<span class="sourceLineNo">19972</span>                                if (it.isOutputDouble()) {<a name="line.19972"></a>
+<span class="sourceLineNo">19973</span>                                        while (it.hasNext()) {<a name="line.19973"></a>
+<span class="sourceLineNo">19974</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19974"></a>
+<span class="sourceLineNo">19975</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.19975"></a>
+<span class="sourceLineNo">19976</span>                                                        double ox;<a name="line.19976"></a>
+<span class="sourceLineNo">19977</span>                                                        ox = (Math.asin(ix));<a name="line.19977"></a>
+<span class="sourceLineNo">19978</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.19978"></a>
+<span class="sourceLineNo">19979</span>                                                }<a name="line.19979"></a>
+<span class="sourceLineNo">19980</span>                                        }<a name="line.19980"></a>
+<span class="sourceLineNo">19981</span>                                } else {<a name="line.19981"></a>
+<span class="sourceLineNo">19982</span>                                        while (it.hasNext()) {<a name="line.19982"></a>
+<span class="sourceLineNo">19983</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.19983"></a>
+<span class="sourceLineNo">19984</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.19984"></a>
+<span class="sourceLineNo">19985</span>                                                        double ox;<a name="line.19985"></a>
+<span class="sourceLineNo">19986</span>                                                        ox = (Math.asin(ix));<a name="line.19986"></a>
+<span class="sourceLineNo">19987</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.19987"></a>
+<span class="sourceLineNo">19988</span>                                                }<a name="line.19988"></a>
+<span class="sourceLineNo">19989</span>                                        }<a name="line.19989"></a>
+<span class="sourceLineNo">19990</span>                                }<a name="line.19990"></a>
+<span class="sourceLineNo">19991</span>                        }<a name="line.19991"></a>
+<span class="sourceLineNo">19992</span>                        break;<a name="line.19992"></a>
+<span class="sourceLineNo">19993</span>                case Dataset.COMPLEX64:<a name="line.19993"></a>
+<span class="sourceLineNo">19994</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.19994"></a>
+<span class="sourceLineNo">19995</span>                        if (!da.isComplex()) {<a name="line.19995"></a>
+<span class="sourceLineNo">19996</span>                                if (it.isOutputDouble()) {<a name="line.19996"></a>
+<span class="sourceLineNo">19997</span>                                        final double iy = 0;<a name="line.19997"></a>
+<span class="sourceLineNo">19998</span>                                        while (it.hasNext()) {<a name="line.19998"></a>
+<span class="sourceLineNo">19999</span>                                                final double ix = it.aDouble;<a name="line.19999"></a>
+<span class="sourceLineNo">20000</span>                                                Complex tz;<a name="line.20000"></a>
+<span class="sourceLineNo">20001</span>                                                float ox;<a name="line.20001"></a>
+<span class="sourceLineNo">20002</span>                                                float oy;<a name="line.20002"></a>
+<span class="sourceLineNo">20003</span>                                                tz = new Complex(ix, iy).asin();<a name="line.20003"></a>
+<span class="sourceLineNo">20004</span>                                                ox = (float) (tz.getReal());<a name="line.20004"></a>
+<span class="sourceLineNo">20005</span>                                                oy = (float) (tz.getImaginary());<a name="line.20005"></a>
+<span class="sourceLineNo">20006</span>                                                oc64data[it.oIndex] = ox;<a name="line.20006"></a>
+<span class="sourceLineNo">20007</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.20007"></a>
+<span class="sourceLineNo">20008</span>                                        }<a name="line.20008"></a>
+<span class="sourceLineNo">20009</span>                                } else {<a name="line.20009"></a>
+<span class="sourceLineNo">20010</span>                                        final long iy = 0;<a name="line.20010"></a>
+<span class="sourceLineNo">20011</span>                                        while (it.hasNext()) {<a name="line.20011"></a>
+<span class="sourceLineNo">20012</span>                                                final long ix = it.aLong;<a name="line.20012"></a>
+<span class="sourceLineNo">20013</span>                                                Complex tz;<a name="line.20013"></a>
+<span class="sourceLineNo">20014</span>                                                float ox;<a name="line.20014"></a>
+<span class="sourceLineNo">20015</span>                                                float oy;<a name="line.20015"></a>
+<span class="sourceLineNo">20016</span>                                                tz = new Complex(ix, iy).asin();<a name="line.20016"></a>
+<span class="sourceLineNo">20017</span>                                                ox = (float) toLong(tz.getReal());<a name="line.20017"></a>
+<span class="sourceLineNo">20018</span>                                                oy = (float) toLong(tz.getImaginary());<a name="line.20018"></a>
+<span class="sourceLineNo">20019</span>                                                oc64data[it.oIndex] = ox;<a name="line.20019"></a>
+<span class="sourceLineNo">20020</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.20020"></a>
+<span class="sourceLineNo">20021</span>                                        }<a name="line.20021"></a>
+<span class="sourceLineNo">20022</span>                                }<a name="line.20022"></a>
+<span class="sourceLineNo">20023</span>                        } else {<a name="line.20023"></a>
+<span class="sourceLineNo">20024</span>                                while (it.hasNext()) {<a name="line.20024"></a>
+<span class="sourceLineNo">20025</span>                                        final double ix = it.aDouble;<a name="line.20025"></a>
+<span class="sourceLineNo">20026</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.20026"></a>
+<span class="sourceLineNo">20027</span>                                        Complex tz;<a name="line.20027"></a>
+<span class="sourceLineNo">20028</span>                                        float ox;<a name="line.20028"></a>
+<span class="sourceLineNo">20029</span>                                        float oy;<a name="line.20029"></a>
+<span class="sourceLineNo">20030</span>                                        tz = new Complex(ix, iy).asin();<a name="line.20030"></a>
+<span class="sourceLineNo">20031</span>                                        ox = (float) (tz.getReal());<a name="line.20031"></a>
+<span class="sourceLineNo">20032</span>                                        oy = (float) (tz.getImaginary());<a name="line.20032"></a>
+<span class="sourceLineNo">20033</span>                                        oc64data[it.oIndex] = ox;<a name="line.20033"></a>
+<span class="sourceLineNo">20034</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.20034"></a>
+<span class="sourceLineNo">20035</span>                                }<a name="line.20035"></a>
+<span class="sourceLineNo">20036</span>                        }<a name="line.20036"></a>
+<span class="sourceLineNo">20037</span>                        break;<a name="line.20037"></a>
+<span class="sourceLineNo">20038</span>                case Dataset.COMPLEX128:<a name="line.20038"></a>
+<span class="sourceLineNo">20039</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.20039"></a>
+<span class="sourceLineNo">20040</span>                        if (!da.isComplex()) {<a name="line.20040"></a>
+<span class="sourceLineNo">20041</span>                                if (it.isOutputDouble()) {<a name="line.20041"></a>
+<span class="sourceLineNo">20042</span>                                        final double iy = 0;<a name="line.20042"></a>
+<span class="sourceLineNo">20043</span>                                        while (it.hasNext()) {<a name="line.20043"></a>
+<span class="sourceLineNo">20044</span>                                                final double ix = it.aDouble;<a name="line.20044"></a>
+<span class="sourceLineNo">20045</span>                                                Complex tz;<a name="line.20045"></a>
+<span class="sourceLineNo">20046</span>                                                double ox;<a name="line.20046"></a>
+<span class="sourceLineNo">20047</span>                                                double oy;<a name="line.20047"></a>
+<span class="sourceLineNo">20048</span>                                                tz = new Complex(ix, iy).asin();<a name="line.20048"></a>
+<span class="sourceLineNo">20049</span>                                                ox = (tz.getReal());<a name="line.20049"></a>
+<span class="sourceLineNo">20050</span>                                                oy = (tz.getImaginary());<a name="line.20050"></a>
+<span class="sourceLineNo">20051</span>                                                oc128data[it.oIndex] = ox;<a name="line.20051"></a>
+<span class="sourceLineNo">20052</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.20052"></a>
+<span class="sourceLineNo">20053</span>                                        }<a name="line.20053"></a>
+<span class="sourceLineNo">20054</span>                                } else {<a name="line.20054"></a>
+<span class="sourceLineNo">20055</span>                                        final long iy = 0;<a name="line.20055"></a>
+<span class="sourceLineNo">20056</span>                                        while (it.hasNext()) {<a name="line.20056"></a>
+<span class="sourceLineNo">20057</span>                                                final long ix = it.aLong;<a name="line.20057"></a>
+<span class="sourceLineNo">20058</span>                                                Complex tz;<a name="line.20058"></a>
+<span class="sourceLineNo">20059</span>                                                double ox;<a name="line.20059"></a>
+<span class="sourceLineNo">20060</span>                                                double oy;<a name="line.20060"></a>
+<span class="sourceLineNo">20061</span>                                                tz = new Complex(ix, iy).asin();<a name="line.20061"></a>
+<span class="sourceLineNo">20062</span>                                                ox = (tz.getReal());<a name="line.20062"></a>
+<span class="sourceLineNo">20063</span>                                                oy = (tz.getImaginary());<a name="line.20063"></a>
+<span class="sourceLineNo">20064</span>                                                oc128data[it.oIndex] = ox;<a name="line.20064"></a>
+<span class="sourceLineNo">20065</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.20065"></a>
+<span class="sourceLineNo">20066</span>                                        }<a name="line.20066"></a>
+<span class="sourceLineNo">20067</span>                                }<a name="line.20067"></a>
+<span class="sourceLineNo">20068</span>                        } else {<a name="line.20068"></a>
+<span class="sourceLineNo">20069</span>                                while (it.hasNext()) {<a name="line.20069"></a>
+<span class="sourceLineNo">20070</span>                                        final double ix = it.aDouble;<a name="line.20070"></a>
+<span class="sourceLineNo">20071</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.20071"></a>
+<span class="sourceLineNo">20072</span>                                        Complex tz;<a name="line.20072"></a>
+<span class="sourceLineNo">20073</span>                                        double ox;<a name="line.20073"></a>
+<span class="sourceLineNo">20074</span>                                        double oy;<a name="line.20074"></a>
+<span class="sourceLineNo">20075</span>                                        tz = new Complex(ix, iy).asin();<a name="line.20075"></a>
+<span class="sourceLineNo">20076</span>                                        ox = (tz.getReal());<a name="line.20076"></a>
+<span class="sourceLineNo">20077</span>                                        oy = (tz.getImaginary());<a name="line.20077"></a>
+<span class="sourceLineNo">20078</span>                                        oc128data[it.oIndex] = ox;<a name="line.20078"></a>
+<span class="sourceLineNo">20079</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.20079"></a>
+<span class="sourceLineNo">20080</span>                                }<a name="line.20080"></a>
+<span class="sourceLineNo">20081</span>                        }<a name="line.20081"></a>
+<span class="sourceLineNo">20082</span>                        break;<a name="line.20082"></a>
+<span class="sourceLineNo">20083</span>                default:<a name="line.20083"></a>
+<span class="sourceLineNo">20084</span>                        throw new IllegalArgumentException("arcsin supports integer, compound integer, real, compound real, complex datasets only");<a name="line.20084"></a>
+<span class="sourceLineNo">20085</span>                }<a name="line.20085"></a>
+<span class="sourceLineNo">20086</span><a name="line.20086"></a>
+<span class="sourceLineNo">20087</span>                addFunctionName(result, "arcsin");<a name="line.20087"></a>
+<span class="sourceLineNo">20088</span>                return result;<a name="line.20088"></a>
+<span class="sourceLineNo">20089</span>        }<a name="line.20089"></a>
+<span class="sourceLineNo">20090</span><a name="line.20090"></a>
+<span class="sourceLineNo">20091</span>        /**<a name="line.20091"></a>
+<span class="sourceLineNo">20092</span>         * arccos - evaluate the inverse cosine function on each element of the dataset<a name="line.20092"></a>
+<span class="sourceLineNo">20093</span>         * @param a<a name="line.20093"></a>
+<span class="sourceLineNo">20094</span>         * @return dataset<a name="line.20094"></a>
+<span class="sourceLineNo">20095</span>         */<a name="line.20095"></a>
+<span class="sourceLineNo">20096</span>        public static Dataset arccos(final Object a) {<a name="line.20096"></a>
+<span class="sourceLineNo">20097</span>                return arccos(a, null);<a name="line.20097"></a>
+<span class="sourceLineNo">20098</span>        }<a name="line.20098"></a>
+<span class="sourceLineNo">20099</span><a name="line.20099"></a>
+<span class="sourceLineNo">20100</span>        /**<a name="line.20100"></a>
+<span class="sourceLineNo">20101</span>         * arccos - evaluate the inverse cosine function on each element of the dataset<a name="line.20101"></a>
+<span class="sourceLineNo">20102</span>         * @param a<a name="line.20102"></a>
+<span class="sourceLineNo">20103</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.20103"></a>
+<span class="sourceLineNo">20104</span>         * @return dataset<a name="line.20104"></a>
+<span class="sourceLineNo">20105</span>         */<a name="line.20105"></a>
+<span class="sourceLineNo">20106</span>        public static Dataset arccos(final Object a, final Dataset o) {<a name="line.20106"></a>
+<span class="sourceLineNo">20107</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.20107"></a>
+<span class="sourceLineNo">20108</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.20108"></a>
+<span class="sourceLineNo">20109</span>                final Dataset result = it.getOutput();<a name="line.20109"></a>
+<span class="sourceLineNo">20110</span>                if (!result.isComplex()) {<a name="line.20110"></a>
+<span class="sourceLineNo">20111</span>                        if (da.isComplex()) {<a name="line.20111"></a>
+<span class="sourceLineNo">20112</span>                                da = da.getRealView();<a name="line.20112"></a>
+<span class="sourceLineNo">20113</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.20113"></a>
+<span class="sourceLineNo">20114</span>                        }<a name="line.20114"></a>
+<span class="sourceLineNo">20115</span>                }<a name="line.20115"></a>
+<span class="sourceLineNo">20116</span>                final int is = result.getElementsPerItem();<a name="line.20116"></a>
+<span class="sourceLineNo">20117</span>                final int as = da.getElementsPerItem();<a name="line.20117"></a>
+<span class="sourceLineNo">20118</span>                final int dt = result.getDType();<a name="line.20118"></a>
+<span class="sourceLineNo">20119</span><a name="line.20119"></a>
+<span class="sourceLineNo">20120</span>                switch(dt) {<a name="line.20120"></a>
+<span class="sourceLineNo">20121</span>                case Dataset.INT8:<a name="line.20121"></a>
+<span class="sourceLineNo">20122</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.20122"></a>
+<span class="sourceLineNo">20123</span>                        if (it.isOutputDouble()) {<a name="line.20123"></a>
+<span class="sourceLineNo">20124</span>                                while (it.hasNext()) {<a name="line.20124"></a>
+<span class="sourceLineNo">20125</span>                                        final double ix = it.aDouble;<a name="line.20125"></a>
+<span class="sourceLineNo">20126</span>                                        byte ox;<a name="line.20126"></a>
+<span class="sourceLineNo">20127</span>                                        ox = (byte) toLong(Math.acos(ix));<a name="line.20127"></a>
+<span class="sourceLineNo">20128</span>                                        oi8data[it.oIndex] = ox;<a name="line.20128"></a>
+<span class="sourceLineNo">20129</span>                                }<a name="line.20129"></a>
+<span class="sourceLineNo">20130</span>                        } else {<a name="line.20130"></a>
+<span class="sourceLineNo">20131</span>                                while (it.hasNext()) {<a name="line.20131"></a>
+<span class="sourceLineNo">20132</span>                                        final long ix = it.aLong;<a name="line.20132"></a>
+<span class="sourceLineNo">20133</span>                                        byte ox;<a name="line.20133"></a>
+<span class="sourceLineNo">20134</span>                                        ox = (byte) toLong(Math.acos(ix));<a name="line.20134"></a>
+<span class="sourceLineNo">20135</span>                                        oi8data[it.oIndex] = ox;<a name="line.20135"></a>
+<span class="sourceLineNo">20136</span>                                }<a name="line.20136"></a>
+<span class="sourceLineNo">20137</span>                        }<a name="line.20137"></a>
+<span class="sourceLineNo">20138</span>                        break;<a name="line.20138"></a>
+<span class="sourceLineNo">20139</span>                case Dataset.INT16:<a name="line.20139"></a>
+<span class="sourceLineNo">20140</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.20140"></a>
+<span class="sourceLineNo">20141</span>                        if (it.isOutputDouble()) {<a name="line.20141"></a>
+<span class="sourceLineNo">20142</span>                                while (it.hasNext()) {<a name="line.20142"></a>
+<span class="sourceLineNo">20143</span>                                        final double ix = it.aDouble;<a name="line.20143"></a>
+<span class="sourceLineNo">20144</span>                                        short ox;<a name="line.20144"></a>
+<span class="sourceLineNo">20145</span>                                        ox = (short) toLong(Math.acos(ix));<a name="line.20145"></a>
+<span class="sourceLineNo">20146</span>                                        oi16data[it.oIndex] = ox;<a name="line.20146"></a>
+<span class="sourceLineNo">20147</span>                                }<a name="line.20147"></a>
+<span class="sourceLineNo">20148</span>                        } else {<a name="line.20148"></a>
+<span class="sourceLineNo">20149</span>                                while (it.hasNext()) {<a name="line.20149"></a>
+<span class="sourceLineNo">20150</span>                                        final long ix = it.aLong;<a name="line.20150"></a>
+<span class="sourceLineNo">20151</span>                                        short ox;<a name="line.20151"></a>
+<span class="sourceLineNo">20152</span>                                        ox = (short) toLong(Math.acos(ix));<a name="line.20152"></a>
+<span class="sourceLineNo">20153</span>                                        oi16data[it.oIndex] = ox;<a name="line.20153"></a>
+<span class="sourceLineNo">20154</span>                                }<a name="line.20154"></a>
+<span class="sourceLineNo">20155</span>                        }<a name="line.20155"></a>
+<span class="sourceLineNo">20156</span>                        break;<a name="line.20156"></a>
+<span class="sourceLineNo">20157</span>                case Dataset.INT64:<a name="line.20157"></a>
+<span class="sourceLineNo">20158</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.20158"></a>
+<span class="sourceLineNo">20159</span>                        if (it.isOutputDouble()) {<a name="line.20159"></a>
+<span class="sourceLineNo">20160</span>                                while (it.hasNext()) {<a name="line.20160"></a>
+<span class="sourceLineNo">20161</span>                                        final double ix = it.aDouble;<a name="line.20161"></a>
+<span class="sourceLineNo">20162</span>                                        long ox;<a name="line.20162"></a>
+<span class="sourceLineNo">20163</span>                                        ox = toLong(Math.acos(ix));<a name="line.20163"></a>
+<span class="sourceLineNo">20164</span>                                        oi64data[it.oIndex] = ox;<a name="line.20164"></a>
+<span class="sourceLineNo">20165</span>                                }<a name="line.20165"></a>
+<span class="sourceLineNo">20166</span>                        } else {<a name="line.20166"></a>
+<span class="sourceLineNo">20167</span>                                while (it.hasNext()) {<a name="line.20167"></a>
+<span class="sourceLineNo">20168</span>                                        final long ix = it.aLong;<a name="line.20168"></a>
+<span class="sourceLineNo">20169</span>                                        long ox;<a name="line.20169"></a>
+<span class="sourceLineNo">20170</span>                                        ox = toLong(Math.acos(ix));<a name="line.20170"></a>
+<span class="sourceLineNo">20171</span>                                        oi64data[it.oIndex] = ox;<a name="line.20171"></a>
+<span class="sourceLineNo">20172</span>                                }<a name="line.20172"></a>
+<span class="sourceLineNo">20173</span>                        }<a name="line.20173"></a>
+<span class="sourceLineNo">20174</span>                        break;<a name="line.20174"></a>
+<span class="sourceLineNo">20175</span>                case Dataset.INT32:<a name="line.20175"></a>
+<span class="sourceLineNo">20176</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.20176"></a>
+<span class="sourceLineNo">20177</span>                        if (it.isOutputDouble()) {<a name="line.20177"></a>
+<span class="sourceLineNo">20178</span>                                while (it.hasNext()) {<a name="line.20178"></a>
+<span class="sourceLineNo">20179</span>                                        final double ix = it.aDouble;<a name="line.20179"></a>
+<span class="sourceLineNo">20180</span>                                        int ox;<a name="line.20180"></a>
+<span class="sourceLineNo">20181</span>                                        ox = (int) toLong(Math.acos(ix));<a name="line.20181"></a>
+<span class="sourceLineNo">20182</span>                                        oi32data[it.oIndex] = ox;<a name="line.20182"></a>
+<span class="sourceLineNo">20183</span>                                }<a name="line.20183"></a>
+<span class="sourceLineNo">20184</span>                        } else {<a name="line.20184"></a>
+<span class="sourceLineNo">20185</span>                                while (it.hasNext()) {<a name="line.20185"></a>
+<span class="sourceLineNo">20186</span>                                        final long ix = it.aLong;<a name="line.20186"></a>
+<span class="sourceLineNo">20187</span>                                        int ox;<a name="line.20187"></a>
+<span class="sourceLineNo">20188</span>                                        ox = (int) toLong(Math.acos(ix));<a name="line.20188"></a>
+<span class="sourceLineNo">20189</span>                                        oi32data[it.oIndex] = ox;<a name="line.20189"></a>
+<span class="sourceLineNo">20190</span>                                }<a name="line.20190"></a>
+<span class="sourceLineNo">20191</span>                        }<a name="line.20191"></a>
+<span class="sourceLineNo">20192</span>                        break;<a name="line.20192"></a>
+<span class="sourceLineNo">20193</span>                case Dataset.ARRAYINT8:<a name="line.20193"></a>
+<span class="sourceLineNo">20194</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.20194"></a>
+<span class="sourceLineNo">20195</span>                        if (is == 1) {<a name="line.20195"></a>
+<span class="sourceLineNo">20196</span>                                if (it.isOutputDouble()) {<a name="line.20196"></a>
+<span class="sourceLineNo">20197</span>                                        while (it.hasNext()) {<a name="line.20197"></a>
+<span class="sourceLineNo">20198</span>                                                final double ix = it.aDouble;<a name="line.20198"></a>
+<span class="sourceLineNo">20199</span>                                                byte ox;<a name="line.20199"></a>
+<span class="sourceLineNo">20200</span>                                                ox = (byte) toLong(Math.acos(ix));<a name="line.20200"></a>
+<span class="sourceLineNo">20201</span>                                                oai8data[it.oIndex] = ox;<a name="line.20201"></a>
+<span class="sourceLineNo">20202</span>                                        }<a name="line.20202"></a>
+<span class="sourceLineNo">20203</span>                                } else {<a name="line.20203"></a>
+<span class="sourceLineNo">20204</span>                                        while (it.hasNext()) {<a name="line.20204"></a>
+<span class="sourceLineNo">20205</span>                                                final long ix = it.aLong;<a name="line.20205"></a>
+<span class="sourceLineNo">20206</span>                                                byte ox;<a name="line.20206"></a>
+<span class="sourceLineNo">20207</span>                                                ox = (byte) toLong(Math.acos(ix));<a name="line.20207"></a>
+<span class="sourceLineNo">20208</span>                                                oai8data[it.oIndex] = ox;<a name="line.20208"></a>
+<span class="sourceLineNo">20209</span>                                        }<a name="line.20209"></a>
+<span class="sourceLineNo">20210</span>                                }<a name="line.20210"></a>
+<span class="sourceLineNo">20211</span>                        } else if (as == 1) {<a name="line.20211"></a>
+<span class="sourceLineNo">20212</span>                                if (it.isOutputDouble()) {<a name="line.20212"></a>
+<span class="sourceLineNo">20213</span>                                        while (it.hasNext()) {<a name="line.20213"></a>
+<span class="sourceLineNo">20214</span>                                                final double ix = it.aDouble;<a name="line.20214"></a>
+<span class="sourceLineNo">20215</span>                                                byte ox;<a name="line.20215"></a>
+<span class="sourceLineNo">20216</span>                                                ox = (byte) toLong(Math.acos(ix));<a name="line.20216"></a>
+<span class="sourceLineNo">20217</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20217"></a>
+<span class="sourceLineNo">20218</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.20218"></a>
+<span class="sourceLineNo">20219</span>                                                }<a name="line.20219"></a>
+<span class="sourceLineNo">20220</span>                                        }<a name="line.20220"></a>
+<span class="sourceLineNo">20221</span>                                } else {<a name="line.20221"></a>
+<span class="sourceLineNo">20222</span>                                        while (it.hasNext()) {<a name="line.20222"></a>
+<span class="sourceLineNo">20223</span>                                                final long ix = it.aLong;<a name="line.20223"></a>
+<span class="sourceLineNo">20224</span>                                                byte ox;<a name="line.20224"></a>
+<span class="sourceLineNo">20225</span>                                                ox = (byte) toLong(Math.acos(ix));<a name="line.20225"></a>
+<span class="sourceLineNo">20226</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20226"></a>
+<span class="sourceLineNo">20227</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.20227"></a>
+<span class="sourceLineNo">20228</span>                                                }<a name="line.20228"></a>
+<span class="sourceLineNo">20229</span>                                        }<a name="line.20229"></a>
+<span class="sourceLineNo">20230</span>                                }<a name="line.20230"></a>
+<span class="sourceLineNo">20231</span>                        } else {<a name="line.20231"></a>
+<span class="sourceLineNo">20232</span>                                if (it.isOutputDouble()) {<a name="line.20232"></a>
+<span class="sourceLineNo">20233</span>                                        while (it.hasNext()) {<a name="line.20233"></a>
+<span class="sourceLineNo">20234</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20234"></a>
+<span class="sourceLineNo">20235</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.20235"></a>
+<span class="sourceLineNo">20236</span>                                                        byte ox;<a name="line.20236"></a>
+<span class="sourceLineNo">20237</span>                                                        ox = (byte) toLong(Math.acos(ix));<a name="line.20237"></a>
+<span class="sourceLineNo">20238</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.20238"></a>
+<span class="sourceLineNo">20239</span>                                                }<a name="line.20239"></a>
+<span class="sourceLineNo">20240</span>                                        }<a name="line.20240"></a>
+<span class="sourceLineNo">20241</span>                                } else {<a name="line.20241"></a>
+<span class="sourceLineNo">20242</span>                                        while (it.hasNext()) {<a name="line.20242"></a>
+<span class="sourceLineNo">20243</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20243"></a>
+<span class="sourceLineNo">20244</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.20244"></a>
+<span class="sourceLineNo">20245</span>                                                        byte ox;<a name="line.20245"></a>
+<span class="sourceLineNo">20246</span>                                                        ox = (byte) toLong(Math.acos(ix));<a name="line.20246"></a>
+<span class="sourceLineNo">20247</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.20247"></a>
+<span class="sourceLineNo">20248</span>                                                }<a name="line.20248"></a>
+<span class="sourceLineNo">20249</span>                                        }<a name="line.20249"></a>
+<span class="sourceLineNo">20250</span>                                }<a name="line.20250"></a>
+<span class="sourceLineNo">20251</span>                        }<a name="line.20251"></a>
+<span class="sourceLineNo">20252</span>                        break;<a name="line.20252"></a>
+<span class="sourceLineNo">20253</span>                case Dataset.ARRAYINT16:<a name="line.20253"></a>
+<span class="sourceLineNo">20254</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.20254"></a>
+<span class="sourceLineNo">20255</span>                        if (is == 1) {<a name="line.20255"></a>
+<span class="sourceLineNo">20256</span>                                if (it.isOutputDouble()) {<a name="line.20256"></a>
+<span class="sourceLineNo">20257</span>                                        while (it.hasNext()) {<a name="line.20257"></a>
+<span class="sourceLineNo">20258</span>                                                final double ix = it.aDouble;<a name="line.20258"></a>
+<span class="sourceLineNo">20259</span>                                                short ox;<a name="line.20259"></a>
+<span class="sourceLineNo">20260</span>                                                ox = (short) toLong(Math.acos(ix));<a name="line.20260"></a>
+<span class="sourceLineNo">20261</span>                                                oai16data[it.oIndex] = ox;<a name="line.20261"></a>
+<span class="sourceLineNo">20262</span>                                        }<a name="line.20262"></a>
+<span class="sourceLineNo">20263</span>                                } else {<a name="line.20263"></a>
+<span class="sourceLineNo">20264</span>                                        while (it.hasNext()) {<a name="line.20264"></a>
+<span class="sourceLineNo">20265</span>                                                final long ix = it.aLong;<a name="line.20265"></a>
+<span class="sourceLineNo">20266</span>                                                short ox;<a name="line.20266"></a>
+<span class="sourceLineNo">20267</span>                                                ox = (short) toLong(Math.acos(ix));<a name="line.20267"></a>
+<span class="sourceLineNo">20268</span>                                                oai16data[it.oIndex] = ox;<a name="line.20268"></a>
+<span class="sourceLineNo">20269</span>                                        }<a name="line.20269"></a>
+<span class="sourceLineNo">20270</span>                                }<a name="line.20270"></a>
+<span class="sourceLineNo">20271</span>                        } else if (as == 1) {<a name="line.20271"></a>
+<span class="sourceLineNo">20272</span>                                if (it.isOutputDouble()) {<a name="line.20272"></a>
+<span class="sourceLineNo">20273</span>                                        while (it.hasNext()) {<a name="line.20273"></a>
+<span class="sourceLineNo">20274</span>                                                final double ix = it.aDouble;<a name="line.20274"></a>
+<span class="sourceLineNo">20275</span>                                                short ox;<a name="line.20275"></a>
+<span class="sourceLineNo">20276</span>                                                ox = (short) toLong(Math.acos(ix));<a name="line.20276"></a>
+<span class="sourceLineNo">20277</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20277"></a>
+<span class="sourceLineNo">20278</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.20278"></a>
+<span class="sourceLineNo">20279</span>                                                }<a name="line.20279"></a>
+<span class="sourceLineNo">20280</span>                                        }<a name="line.20280"></a>
+<span class="sourceLineNo">20281</span>                                } else {<a name="line.20281"></a>
+<span class="sourceLineNo">20282</span>                                        while (it.hasNext()) {<a name="line.20282"></a>
+<span class="sourceLineNo">20283</span>                                                final long ix = it.aLong;<a name="line.20283"></a>
+<span class="sourceLineNo">20284</span>                                                short ox;<a name="line.20284"></a>
+<span class="sourceLineNo">20285</span>                                                ox = (short) toLong(Math.acos(ix));<a name="line.20285"></a>
+<span class="sourceLineNo">20286</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20286"></a>
+<span class="sourceLineNo">20287</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.20287"></a>
+<span class="sourceLineNo">20288</span>                                                }<a name="line.20288"></a>
+<span class="sourceLineNo">20289</span>                                        }<a name="line.20289"></a>
+<span class="sourceLineNo">20290</span>                                }<a name="line.20290"></a>
+<span class="sourceLineNo">20291</span>                        } else {<a name="line.20291"></a>
+<span class="sourceLineNo">20292</span>                                if (it.isOutputDouble()) {<a name="line.20292"></a>
+<span class="sourceLineNo">20293</span>                                        while (it.hasNext()) {<a name="line.20293"></a>
+<span class="sourceLineNo">20294</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20294"></a>
+<span class="sourceLineNo">20295</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.20295"></a>
+<span class="sourceLineNo">20296</span>                                                        short ox;<a name="line.20296"></a>
+<span class="sourceLineNo">20297</span>                                                        ox = (short) toLong(Math.acos(ix));<a name="line.20297"></a>
+<span class="sourceLineNo">20298</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.20298"></a>
+<span class="sourceLineNo">20299</span>                                                }<a name="line.20299"></a>
+<span class="sourceLineNo">20300</span>                                        }<a name="line.20300"></a>
+<span class="sourceLineNo">20301</span>                                } else {<a name="line.20301"></a>
+<span class="sourceLineNo">20302</span>                                        while (it.hasNext()) {<a name="line.20302"></a>
+<span class="sourceLineNo">20303</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20303"></a>
+<span class="sourceLineNo">20304</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.20304"></a>
+<span class="sourceLineNo">20305</span>                                                        short ox;<a name="line.20305"></a>
+<span class="sourceLineNo">20306</span>                                                        ox = (short) toLong(Math.acos(ix));<a name="line.20306"></a>
+<span class="sourceLineNo">20307</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.20307"></a>
+<span class="sourceLineNo">20308</span>                                                }<a name="line.20308"></a>
+<span class="sourceLineNo">20309</span>                                        }<a name="line.20309"></a>
+<span class="sourceLineNo">20310</span>                                }<a name="line.20310"></a>
+<span class="sourceLineNo">20311</span>                        }<a name="line.20311"></a>
+<span class="sourceLineNo">20312</span>                        break;<a name="line.20312"></a>
+<span class="sourceLineNo">20313</span>                case Dataset.ARRAYINT64:<a name="line.20313"></a>
+<span class="sourceLineNo">20314</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.20314"></a>
+<span class="sourceLineNo">20315</span>                        if (is == 1) {<a name="line.20315"></a>
+<span class="sourceLineNo">20316</span>                                if (it.isOutputDouble()) {<a name="line.20316"></a>
+<span class="sourceLineNo">20317</span>                                        while (it.hasNext()) {<a name="line.20317"></a>
+<span class="sourceLineNo">20318</span>                                                final double ix = it.aDouble;<a name="line.20318"></a>
+<span class="sourceLineNo">20319</span>                                                long ox;<a name="line.20319"></a>
+<span class="sourceLineNo">20320</span>                                                ox = toLong(Math.acos(ix));<a name="line.20320"></a>
+<span class="sourceLineNo">20321</span>                                                oai64data[it.oIndex] = ox;<a name="line.20321"></a>
+<span class="sourceLineNo">20322</span>                                        }<a name="line.20322"></a>
+<span class="sourceLineNo">20323</span>                                } else {<a name="line.20323"></a>
+<span class="sourceLineNo">20324</span>                                        while (it.hasNext()) {<a name="line.20324"></a>
+<span class="sourceLineNo">20325</span>                                                final long ix = it.aLong;<a name="line.20325"></a>
+<span class="sourceLineNo">20326</span>                                                long ox;<a name="line.20326"></a>
+<span class="sourceLineNo">20327</span>                                                ox = toLong(Math.acos(ix));<a name="line.20327"></a>
+<span class="sourceLineNo">20328</span>                                                oai64data[it.oIndex] = ox;<a name="line.20328"></a>
+<span class="sourceLineNo">20329</span>                                        }<a name="line.20329"></a>
+<span class="sourceLineNo">20330</span>                                }<a name="line.20330"></a>
+<span class="sourceLineNo">20331</span>                        } else if (as == 1) {<a name="line.20331"></a>
+<span class="sourceLineNo">20332</span>                                if (it.isOutputDouble()) {<a name="line.20332"></a>
+<span class="sourceLineNo">20333</span>                                        while (it.hasNext()) {<a name="line.20333"></a>
+<span class="sourceLineNo">20334</span>                                                final double ix = it.aDouble;<a name="line.20334"></a>
+<span class="sourceLineNo">20335</span>                                                long ox;<a name="line.20335"></a>
+<span class="sourceLineNo">20336</span>                                                ox = toLong(Math.acos(ix));<a name="line.20336"></a>
+<span class="sourceLineNo">20337</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20337"></a>
+<span class="sourceLineNo">20338</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.20338"></a>
+<span class="sourceLineNo">20339</span>                                                }<a name="line.20339"></a>
+<span class="sourceLineNo">20340</span>                                        }<a name="line.20340"></a>
+<span class="sourceLineNo">20341</span>                                } else {<a name="line.20341"></a>
+<span class="sourceLineNo">20342</span>                                        while (it.hasNext()) {<a name="line.20342"></a>
+<span class="sourceLineNo">20343</span>                                                final long ix = it.aLong;<a name="line.20343"></a>
+<span class="sourceLineNo">20344</span>                                                long ox;<a name="line.20344"></a>
+<span class="sourceLineNo">20345</span>                                                ox = toLong(Math.acos(ix));<a name="line.20345"></a>
+<span class="sourceLineNo">20346</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20346"></a>
+<span class="sourceLineNo">20347</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.20347"></a>
+<span class="sourceLineNo">20348</span>                                                }<a name="line.20348"></a>
+<span class="sourceLineNo">20349</span>                                        }<a name="line.20349"></a>
+<span class="sourceLineNo">20350</span>                                }<a name="line.20350"></a>
+<span class="sourceLineNo">20351</span>                        } else {<a name="line.20351"></a>
+<span class="sourceLineNo">20352</span>                                if (it.isOutputDouble()) {<a name="line.20352"></a>
+<span class="sourceLineNo">20353</span>                                        while (it.hasNext()) {<a name="line.20353"></a>
+<span class="sourceLineNo">20354</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20354"></a>
+<span class="sourceLineNo">20355</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.20355"></a>
+<span class="sourceLineNo">20356</span>                                                        long ox;<a name="line.20356"></a>
+<span class="sourceLineNo">20357</span>                                                        ox = toLong(Math.acos(ix));<a name="line.20357"></a>
+<span class="sourceLineNo">20358</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.20358"></a>
+<span class="sourceLineNo">20359</span>                                                }<a name="line.20359"></a>
+<span class="sourceLineNo">20360</span>                                        }<a name="line.20360"></a>
+<span class="sourceLineNo">20361</span>                                } else {<a name="line.20361"></a>
+<span class="sourceLineNo">20362</span>                                        while (it.hasNext()) {<a name="line.20362"></a>
+<span class="sourceLineNo">20363</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20363"></a>
+<span class="sourceLineNo">20364</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.20364"></a>
+<span class="sourceLineNo">20365</span>                                                        long ox;<a name="line.20365"></a>
+<span class="sourceLineNo">20366</span>                                                        ox = toLong(Math.acos(ix));<a name="line.20366"></a>
+<span class="sourceLineNo">20367</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.20367"></a>
+<span class="sourceLineNo">20368</span>                                                }<a name="line.20368"></a>
+<span class="sourceLineNo">20369</span>                                        }<a name="line.20369"></a>
+<span class="sourceLineNo">20370</span>                                }<a name="line.20370"></a>
+<span class="sourceLineNo">20371</span>                        }<a name="line.20371"></a>
+<span class="sourceLineNo">20372</span>                        break;<a name="line.20372"></a>
+<span class="sourceLineNo">20373</span>                case Dataset.ARRAYINT32:<a name="line.20373"></a>
+<span class="sourceLineNo">20374</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.20374"></a>
+<span class="sourceLineNo">20375</span>                        if (is == 1) {<a name="line.20375"></a>
+<span class="sourceLineNo">20376</span>                                if (it.isOutputDouble()) {<a name="line.20376"></a>
+<span class="sourceLineNo">20377</span>                                        while (it.hasNext()) {<a name="line.20377"></a>
+<span class="sourceLineNo">20378</span>                                                final double ix = it.aDouble;<a name="line.20378"></a>
+<span class="sourceLineNo">20379</span>                                                int ox;<a name="line.20379"></a>
+<span class="sourceLineNo">20380</span>                                                ox = (int) toLong(Math.acos(ix));<a name="line.20380"></a>
+<span class="sourceLineNo">20381</span>                                                oai32data[it.oIndex] = ox;<a name="line.20381"></a>
+<span class="sourceLineNo">20382</span>                                        }<a name="line.20382"></a>
+<span class="sourceLineNo">20383</span>                                } else {<a name="line.20383"></a>
+<span class="sourceLineNo">20384</span>                                        while (it.hasNext()) {<a name="line.20384"></a>
+<span class="sourceLineNo">20385</span>                                                final long ix = it.aLong;<a name="line.20385"></a>
+<span class="sourceLineNo">20386</span>                                                int ox;<a name="line.20386"></a>
+<span class="sourceLineNo">20387</span>                                                ox = (int) toLong(Math.acos(ix));<a name="line.20387"></a>
+<span class="sourceLineNo">20388</span>                                                oai32data[it.oIndex] = ox;<a name="line.20388"></a>
+<span class="sourceLineNo">20389</span>                                        }<a name="line.20389"></a>
+<span class="sourceLineNo">20390</span>                                }<a name="line.20390"></a>
+<span class="sourceLineNo">20391</span>                        } else if (as == 1) {<a name="line.20391"></a>
+<span class="sourceLineNo">20392</span>                                if (it.isOutputDouble()) {<a name="line.20392"></a>
+<span class="sourceLineNo">20393</span>                                        while (it.hasNext()) {<a name="line.20393"></a>
+<span class="sourceLineNo">20394</span>                                                final double ix = it.aDouble;<a name="line.20394"></a>
+<span class="sourceLineNo">20395</span>                                                int ox;<a name="line.20395"></a>
+<span class="sourceLineNo">20396</span>                                                ox = (int) toLong(Math.acos(ix));<a name="line.20396"></a>
+<span class="sourceLineNo">20397</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20397"></a>
+<span class="sourceLineNo">20398</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.20398"></a>
+<span class="sourceLineNo">20399</span>                                                }<a name="line.20399"></a>
+<span class="sourceLineNo">20400</span>                                        }<a name="line.20400"></a>
+<span class="sourceLineNo">20401</span>                                } else {<a name="line.20401"></a>
+<span class="sourceLineNo">20402</span>                                        while (it.hasNext()) {<a name="line.20402"></a>
+<span class="sourceLineNo">20403</span>                                                final long ix = it.aLong;<a name="line.20403"></a>
+<span class="sourceLineNo">20404</span>                                                int ox;<a name="line.20404"></a>
+<span class="sourceLineNo">20405</span>                                                ox = (int) toLong(Math.acos(ix));<a name="line.20405"></a>
+<span class="sourceLineNo">20406</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20406"></a>
+<span class="sourceLineNo">20407</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.20407"></a>
+<span class="sourceLineNo">20408</span>                                                }<a name="line.20408"></a>
+<span class="sourceLineNo">20409</span>                                        }<a name="line.20409"></a>
+<span class="sourceLineNo">20410</span>                                }<a name="line.20410"></a>
+<span class="sourceLineNo">20411</span>                        } else {<a name="line.20411"></a>
+<span class="sourceLineNo">20412</span>                                if (it.isOutputDouble()) {<a name="line.20412"></a>
+<span class="sourceLineNo">20413</span>                                        while (it.hasNext()) {<a name="line.20413"></a>
+<span class="sourceLineNo">20414</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20414"></a>
+<span class="sourceLineNo">20415</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.20415"></a>
+<span class="sourceLineNo">20416</span>                                                        int ox;<a name="line.20416"></a>
+<span class="sourceLineNo">20417</span>                                                        ox = (int) toLong(Math.acos(ix));<a name="line.20417"></a>
+<span class="sourceLineNo">20418</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.20418"></a>
+<span class="sourceLineNo">20419</span>                                                }<a name="line.20419"></a>
+<span class="sourceLineNo">20420</span>                                        }<a name="line.20420"></a>
+<span class="sourceLineNo">20421</span>                                } else {<a name="line.20421"></a>
+<span class="sourceLineNo">20422</span>                                        while (it.hasNext()) {<a name="line.20422"></a>
+<span class="sourceLineNo">20423</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20423"></a>
+<span class="sourceLineNo">20424</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.20424"></a>
+<span class="sourceLineNo">20425</span>                                                        int ox;<a name="line.20425"></a>
+<span class="sourceLineNo">20426</span>                                                        ox = (int) toLong(Math.acos(ix));<a name="line.20426"></a>
+<span class="sourceLineNo">20427</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.20427"></a>
+<span class="sourceLineNo">20428</span>                                                }<a name="line.20428"></a>
+<span class="sourceLineNo">20429</span>                                        }<a name="line.20429"></a>
+<span class="sourceLineNo">20430</span>                                }<a name="line.20430"></a>
+<span class="sourceLineNo">20431</span>                        }<a name="line.20431"></a>
+<span class="sourceLineNo">20432</span>                        break;<a name="line.20432"></a>
+<span class="sourceLineNo">20433</span>                case Dataset.FLOAT32:<a name="line.20433"></a>
+<span class="sourceLineNo">20434</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.20434"></a>
+<span class="sourceLineNo">20435</span>                        if (it.isOutputDouble()) {<a name="line.20435"></a>
+<span class="sourceLineNo">20436</span>                                while (it.hasNext()) {<a name="line.20436"></a>
+<span class="sourceLineNo">20437</span>                                        final double ix = it.aDouble;<a name="line.20437"></a>
+<span class="sourceLineNo">20438</span>                                        float ox;<a name="line.20438"></a>
+<span class="sourceLineNo">20439</span>                                        ox = (float) (Math.acos(ix));<a name="line.20439"></a>
+<span class="sourceLineNo">20440</span>                                        of32data[it.oIndex] = ox;<a name="line.20440"></a>
+<span class="sourceLineNo">20441</span>                                }<a name="line.20441"></a>
+<span class="sourceLineNo">20442</span>                        } else {<a name="line.20442"></a>
+<span class="sourceLineNo">20443</span>                                while (it.hasNext()) {<a name="line.20443"></a>
+<span class="sourceLineNo">20444</span>                                        final long ix = it.aLong;<a name="line.20444"></a>
+<span class="sourceLineNo">20445</span>                                        float ox;<a name="line.20445"></a>
+<span class="sourceLineNo">20446</span>                                        ox = (float) (Math.acos(ix));<a name="line.20446"></a>
+<span class="sourceLineNo">20447</span>                                        of32data[it.oIndex] = ox;<a name="line.20447"></a>
+<span class="sourceLineNo">20448</span>                                }<a name="line.20448"></a>
+<span class="sourceLineNo">20449</span>                        }<a name="line.20449"></a>
+<span class="sourceLineNo">20450</span>                        break;<a name="line.20450"></a>
+<span class="sourceLineNo">20451</span>                case Dataset.FLOAT64:<a name="line.20451"></a>
+<span class="sourceLineNo">20452</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.20452"></a>
+<span class="sourceLineNo">20453</span>                        if (it.isOutputDouble()) {<a name="line.20453"></a>
+<span class="sourceLineNo">20454</span>                                while (it.hasNext()) {<a name="line.20454"></a>
+<span class="sourceLineNo">20455</span>                                        final double ix = it.aDouble;<a name="line.20455"></a>
+<span class="sourceLineNo">20456</span>                                        double ox;<a name="line.20456"></a>
+<span class="sourceLineNo">20457</span>                                        ox = (Math.acos(ix));<a name="line.20457"></a>
+<span class="sourceLineNo">20458</span>                                        of64data[it.oIndex] = ox;<a name="line.20458"></a>
+<span class="sourceLineNo">20459</span>                                }<a name="line.20459"></a>
+<span class="sourceLineNo">20460</span>                        } else {<a name="line.20460"></a>
+<span class="sourceLineNo">20461</span>                                while (it.hasNext()) {<a name="line.20461"></a>
+<span class="sourceLineNo">20462</span>                                        final long ix = it.aLong;<a name="line.20462"></a>
+<span class="sourceLineNo">20463</span>                                        double ox;<a name="line.20463"></a>
+<span class="sourceLineNo">20464</span>                                        ox = (Math.acos(ix));<a name="line.20464"></a>
+<span class="sourceLineNo">20465</span>                                        of64data[it.oIndex] = ox;<a name="line.20465"></a>
+<span class="sourceLineNo">20466</span>                                }<a name="line.20466"></a>
+<span class="sourceLineNo">20467</span>                        }<a name="line.20467"></a>
+<span class="sourceLineNo">20468</span>                        break;<a name="line.20468"></a>
+<span class="sourceLineNo">20469</span>                case Dataset.ARRAYFLOAT32:<a name="line.20469"></a>
+<span class="sourceLineNo">20470</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.20470"></a>
+<span class="sourceLineNo">20471</span>                        if (is == 1) {<a name="line.20471"></a>
+<span class="sourceLineNo">20472</span>                                if (it.isOutputDouble()) {<a name="line.20472"></a>
+<span class="sourceLineNo">20473</span>                                        while (it.hasNext()) {<a name="line.20473"></a>
+<span class="sourceLineNo">20474</span>                                                final double ix = it.aDouble;<a name="line.20474"></a>
+<span class="sourceLineNo">20475</span>                                                float ox;<a name="line.20475"></a>
+<span class="sourceLineNo">20476</span>                                                ox = (float) (Math.acos(ix));<a name="line.20476"></a>
+<span class="sourceLineNo">20477</span>                                                oaf32data[it.oIndex] = ox;<a name="line.20477"></a>
+<span class="sourceLineNo">20478</span>                                        }<a name="line.20478"></a>
+<span class="sourceLineNo">20479</span>                                } else {<a name="line.20479"></a>
+<span class="sourceLineNo">20480</span>                                        while (it.hasNext()) {<a name="line.20480"></a>
+<span class="sourceLineNo">20481</span>                                                final long ix = it.aLong;<a name="line.20481"></a>
+<span class="sourceLineNo">20482</span>                                                float ox;<a name="line.20482"></a>
+<span class="sourceLineNo">20483</span>                                                ox = (float) (Math.acos(ix));<a name="line.20483"></a>
+<span class="sourceLineNo">20484</span>                                                oaf32data[it.oIndex] = ox;<a name="line.20484"></a>
+<span class="sourceLineNo">20485</span>                                        }<a name="line.20485"></a>
+<span class="sourceLineNo">20486</span>                                }<a name="line.20486"></a>
+<span class="sourceLineNo">20487</span>                        } else if (as == 1) {<a name="line.20487"></a>
+<span class="sourceLineNo">20488</span>                                if (it.isOutputDouble()) {<a name="line.20488"></a>
+<span class="sourceLineNo">20489</span>                                        while (it.hasNext()) {<a name="line.20489"></a>
+<span class="sourceLineNo">20490</span>                                                final double ix = it.aDouble;<a name="line.20490"></a>
+<span class="sourceLineNo">20491</span>                                                float ox;<a name="line.20491"></a>
+<span class="sourceLineNo">20492</span>                                                ox = (float) (Math.acos(ix));<a name="line.20492"></a>
+<span class="sourceLineNo">20493</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20493"></a>
+<span class="sourceLineNo">20494</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.20494"></a>
+<span class="sourceLineNo">20495</span>                                                }<a name="line.20495"></a>
+<span class="sourceLineNo">20496</span>                                        }<a name="line.20496"></a>
+<span class="sourceLineNo">20497</span>                                } else {<a name="line.20497"></a>
+<span class="sourceLineNo">20498</span>                                        while (it.hasNext()) {<a name="line.20498"></a>
+<span class="sourceLineNo">20499</span>                                                final long ix = it.aLong;<a name="line.20499"></a>
+<span class="sourceLineNo">20500</span>                                                float ox;<a name="line.20500"></a>
+<span class="sourceLineNo">20501</span>                                                ox = (float) (Math.acos(ix));<a name="line.20501"></a>
+<span class="sourceLineNo">20502</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20502"></a>
+<span class="sourceLineNo">20503</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.20503"></a>
+<span class="sourceLineNo">20504</span>                                                }<a name="line.20504"></a>
+<span class="sourceLineNo">20505</span>                                        }<a name="line.20505"></a>
+<span class="sourceLineNo">20506</span>                                }<a name="line.20506"></a>
+<span class="sourceLineNo">20507</span>                        } else {<a name="line.20507"></a>
+<span class="sourceLineNo">20508</span>                                if (it.isOutputDouble()) {<a name="line.20508"></a>
+<span class="sourceLineNo">20509</span>                                        while (it.hasNext()) {<a name="line.20509"></a>
+<span class="sourceLineNo">20510</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20510"></a>
+<span class="sourceLineNo">20511</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.20511"></a>
+<span class="sourceLineNo">20512</span>                                                        float ox;<a name="line.20512"></a>
+<span class="sourceLineNo">20513</span>                                                        ox = (float) (Math.acos(ix));<a name="line.20513"></a>
+<span class="sourceLineNo">20514</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.20514"></a>
+<span class="sourceLineNo">20515</span>                                                }<a name="line.20515"></a>
+<span class="sourceLineNo">20516</span>                                        }<a name="line.20516"></a>
+<span class="sourceLineNo">20517</span>                                } else {<a name="line.20517"></a>
+<span class="sourceLineNo">20518</span>                                        while (it.hasNext()) {<a name="line.20518"></a>
+<span class="sourceLineNo">20519</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20519"></a>
+<span class="sourceLineNo">20520</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.20520"></a>
+<span class="sourceLineNo">20521</span>                                                        float ox;<a name="line.20521"></a>
+<span class="sourceLineNo">20522</span>                                                        ox = (float) (Math.acos(ix));<a name="line.20522"></a>
+<span class="sourceLineNo">20523</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.20523"></a>
+<span class="sourceLineNo">20524</span>                                                }<a name="line.20524"></a>
+<span class="sourceLineNo">20525</span>                                        }<a name="line.20525"></a>
+<span class="sourceLineNo">20526</span>                                }<a name="line.20526"></a>
+<span class="sourceLineNo">20527</span>                        }<a name="line.20527"></a>
+<span class="sourceLineNo">20528</span>                        break;<a name="line.20528"></a>
+<span class="sourceLineNo">20529</span>                case Dataset.ARRAYFLOAT64:<a name="line.20529"></a>
+<span class="sourceLineNo">20530</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.20530"></a>
+<span class="sourceLineNo">20531</span>                        if (is == 1) {<a name="line.20531"></a>
+<span class="sourceLineNo">20532</span>                                if (it.isOutputDouble()) {<a name="line.20532"></a>
+<span class="sourceLineNo">20533</span>                                        while (it.hasNext()) {<a name="line.20533"></a>
+<span class="sourceLineNo">20534</span>                                                final double ix = it.aDouble;<a name="line.20534"></a>
+<span class="sourceLineNo">20535</span>                                                double ox;<a name="line.20535"></a>
+<span class="sourceLineNo">20536</span>                                                ox = (Math.acos(ix));<a name="line.20536"></a>
+<span class="sourceLineNo">20537</span>                                                oaf64data[it.oIndex] = ox;<a name="line.20537"></a>
+<span class="sourceLineNo">20538</span>                                        }<a name="line.20538"></a>
+<span class="sourceLineNo">20539</span>                                } else {<a name="line.20539"></a>
+<span class="sourceLineNo">20540</span>                                        while (it.hasNext()) {<a name="line.20540"></a>
+<span class="sourceLineNo">20541</span>                                                final long ix = it.aLong;<a name="line.20541"></a>
+<span class="sourceLineNo">20542</span>                                                double ox;<a name="line.20542"></a>
+<span class="sourceLineNo">20543</span>                                                ox = (Math.acos(ix));<a name="line.20543"></a>
+<span class="sourceLineNo">20544</span>                                                oaf64data[it.oIndex] = ox;<a name="line.20544"></a>
+<span class="sourceLineNo">20545</span>                                        }<a name="line.20545"></a>
+<span class="sourceLineNo">20546</span>                                }<a name="line.20546"></a>
+<span class="sourceLineNo">20547</span>                        } else if (as == 1) {<a name="line.20547"></a>
+<span class="sourceLineNo">20548</span>                                if (it.isOutputDouble()) {<a name="line.20548"></a>
+<span class="sourceLineNo">20549</span>                                        while (it.hasNext()) {<a name="line.20549"></a>
+<span class="sourceLineNo">20550</span>                                                final double ix = it.aDouble;<a name="line.20550"></a>
+<span class="sourceLineNo">20551</span>                                                double ox;<a name="line.20551"></a>
+<span class="sourceLineNo">20552</span>                                                ox = (Math.acos(ix));<a name="line.20552"></a>
+<span class="sourceLineNo">20553</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20553"></a>
+<span class="sourceLineNo">20554</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.20554"></a>
+<span class="sourceLineNo">20555</span>                                                }<a name="line.20555"></a>
+<span class="sourceLineNo">20556</span>                                        }<a name="line.20556"></a>
+<span class="sourceLineNo">20557</span>                                } else {<a name="line.20557"></a>
+<span class="sourceLineNo">20558</span>                                        while (it.hasNext()) {<a name="line.20558"></a>
+<span class="sourceLineNo">20559</span>                                                final long ix = it.aLong;<a name="line.20559"></a>
+<span class="sourceLineNo">20560</span>                                                double ox;<a name="line.20560"></a>
+<span class="sourceLineNo">20561</span>                                                ox = (Math.acos(ix));<a name="line.20561"></a>
+<span class="sourceLineNo">20562</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20562"></a>
+<span class="sourceLineNo">20563</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.20563"></a>
+<span class="sourceLineNo">20564</span>                                                }<a name="line.20564"></a>
+<span class="sourceLineNo">20565</span>                                        }<a name="line.20565"></a>
+<span class="sourceLineNo">20566</span>                                }<a name="line.20566"></a>
+<span class="sourceLineNo">20567</span>                        } else {<a name="line.20567"></a>
+<span class="sourceLineNo">20568</span>                                if (it.isOutputDouble()) {<a name="line.20568"></a>
+<span class="sourceLineNo">20569</span>                                        while (it.hasNext()) {<a name="line.20569"></a>
+<span class="sourceLineNo">20570</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20570"></a>
+<span class="sourceLineNo">20571</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.20571"></a>
+<span class="sourceLineNo">20572</span>                                                        double ox;<a name="line.20572"></a>
+<span class="sourceLineNo">20573</span>                                                        ox = (Math.acos(ix));<a name="line.20573"></a>
+<span class="sourceLineNo">20574</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.20574"></a>
+<span class="sourceLineNo">20575</span>                                                }<a name="line.20575"></a>
+<span class="sourceLineNo">20576</span>                                        }<a name="line.20576"></a>
+<span class="sourceLineNo">20577</span>                                } else {<a name="line.20577"></a>
+<span class="sourceLineNo">20578</span>                                        while (it.hasNext()) {<a name="line.20578"></a>
+<span class="sourceLineNo">20579</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20579"></a>
+<span class="sourceLineNo">20580</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.20580"></a>
+<span class="sourceLineNo">20581</span>                                                        double ox;<a name="line.20581"></a>
+<span class="sourceLineNo">20582</span>                                                        ox = (Math.acos(ix));<a name="line.20582"></a>
+<span class="sourceLineNo">20583</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.20583"></a>
+<span class="sourceLineNo">20584</span>                                                }<a name="line.20584"></a>
+<span class="sourceLineNo">20585</span>                                        }<a name="line.20585"></a>
+<span class="sourceLineNo">20586</span>                                }<a name="line.20586"></a>
+<span class="sourceLineNo">20587</span>                        }<a name="line.20587"></a>
+<span class="sourceLineNo">20588</span>                        break;<a name="line.20588"></a>
+<span class="sourceLineNo">20589</span>                case Dataset.COMPLEX64:<a name="line.20589"></a>
+<span class="sourceLineNo">20590</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.20590"></a>
+<span class="sourceLineNo">20591</span>                        if (!da.isComplex()) {<a name="line.20591"></a>
+<span class="sourceLineNo">20592</span>                                if (it.isOutputDouble()) {<a name="line.20592"></a>
+<span class="sourceLineNo">20593</span>                                        final double iy = 0;<a name="line.20593"></a>
+<span class="sourceLineNo">20594</span>                                        while (it.hasNext()) {<a name="line.20594"></a>
+<span class="sourceLineNo">20595</span>                                                final double ix = it.aDouble;<a name="line.20595"></a>
+<span class="sourceLineNo">20596</span>                                                Complex tz;<a name="line.20596"></a>
+<span class="sourceLineNo">20597</span>                                                float ox;<a name="line.20597"></a>
+<span class="sourceLineNo">20598</span>                                                float oy;<a name="line.20598"></a>
+<span class="sourceLineNo">20599</span>                                                tz = new Complex(ix, iy).acos();<a name="line.20599"></a>
+<span class="sourceLineNo">20600</span>                                                ox = (float) (tz.getReal());<a name="line.20600"></a>
+<span class="sourceLineNo">20601</span>                                                oy = (float) (tz.getImaginary());<a name="line.20601"></a>
+<span class="sourceLineNo">20602</span>                                                oc64data[it.oIndex] = ox;<a name="line.20602"></a>
+<span class="sourceLineNo">20603</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.20603"></a>
+<span class="sourceLineNo">20604</span>                                        }<a name="line.20604"></a>
+<span class="sourceLineNo">20605</span>                                } else {<a name="line.20605"></a>
+<span class="sourceLineNo">20606</span>                                        final long iy = 0;<a name="line.20606"></a>
+<span class="sourceLineNo">20607</span>                                        while (it.hasNext()) {<a name="line.20607"></a>
+<span class="sourceLineNo">20608</span>                                                final long ix = it.aLong;<a name="line.20608"></a>
+<span class="sourceLineNo">20609</span>                                                Complex tz;<a name="line.20609"></a>
+<span class="sourceLineNo">20610</span>                                                float ox;<a name="line.20610"></a>
+<span class="sourceLineNo">20611</span>                                                float oy;<a name="line.20611"></a>
+<span class="sourceLineNo">20612</span>                                                tz = new Complex(ix, iy).acos();<a name="line.20612"></a>
+<span class="sourceLineNo">20613</span>                                                ox = (float) toLong(tz.getReal());<a name="line.20613"></a>
+<span class="sourceLineNo">20614</span>                                                oy = (float) toLong(tz.getImaginary());<a name="line.20614"></a>
+<span class="sourceLineNo">20615</span>                                                oc64data[it.oIndex] = ox;<a name="line.20615"></a>
+<span class="sourceLineNo">20616</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.20616"></a>
+<span class="sourceLineNo">20617</span>                                        }<a name="line.20617"></a>
+<span class="sourceLineNo">20618</span>                                }<a name="line.20618"></a>
+<span class="sourceLineNo">20619</span>                        } else {<a name="line.20619"></a>
+<span class="sourceLineNo">20620</span>                                while (it.hasNext()) {<a name="line.20620"></a>
+<span class="sourceLineNo">20621</span>                                        final double ix = it.aDouble;<a name="line.20621"></a>
+<span class="sourceLineNo">20622</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.20622"></a>
+<span class="sourceLineNo">20623</span>                                        Complex tz;<a name="line.20623"></a>
+<span class="sourceLineNo">20624</span>                                        float ox;<a name="line.20624"></a>
+<span class="sourceLineNo">20625</span>                                        float oy;<a name="line.20625"></a>
+<span class="sourceLineNo">20626</span>                                        tz = new Complex(ix, iy).acos();<a name="line.20626"></a>
+<span class="sourceLineNo">20627</span>                                        ox = (float) (tz.getReal());<a name="line.20627"></a>
+<span class="sourceLineNo">20628</span>                                        oy = (float) (tz.getImaginary());<a name="line.20628"></a>
+<span class="sourceLineNo">20629</span>                                        oc64data[it.oIndex] = ox;<a name="line.20629"></a>
+<span class="sourceLineNo">20630</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.20630"></a>
+<span class="sourceLineNo">20631</span>                                }<a name="line.20631"></a>
+<span class="sourceLineNo">20632</span>                        }<a name="line.20632"></a>
+<span class="sourceLineNo">20633</span>                        break;<a name="line.20633"></a>
+<span class="sourceLineNo">20634</span>                case Dataset.COMPLEX128:<a name="line.20634"></a>
+<span class="sourceLineNo">20635</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.20635"></a>
+<span class="sourceLineNo">20636</span>                        if (!da.isComplex()) {<a name="line.20636"></a>
+<span class="sourceLineNo">20637</span>                                if (it.isOutputDouble()) {<a name="line.20637"></a>
+<span class="sourceLineNo">20638</span>                                        final double iy = 0;<a name="line.20638"></a>
+<span class="sourceLineNo">20639</span>                                        while (it.hasNext()) {<a name="line.20639"></a>
+<span class="sourceLineNo">20640</span>                                                final double ix = it.aDouble;<a name="line.20640"></a>
+<span class="sourceLineNo">20641</span>                                                Complex tz;<a name="line.20641"></a>
+<span class="sourceLineNo">20642</span>                                                double ox;<a name="line.20642"></a>
+<span class="sourceLineNo">20643</span>                                                double oy;<a name="line.20643"></a>
+<span class="sourceLineNo">20644</span>                                                tz = new Complex(ix, iy).acos();<a name="line.20644"></a>
+<span class="sourceLineNo">20645</span>                                                ox = (tz.getReal());<a name="line.20645"></a>
+<span class="sourceLineNo">20646</span>                                                oy = (tz.getImaginary());<a name="line.20646"></a>
+<span class="sourceLineNo">20647</span>                                                oc128data[it.oIndex] = ox;<a name="line.20647"></a>
+<span class="sourceLineNo">20648</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.20648"></a>
+<span class="sourceLineNo">20649</span>                                        }<a name="line.20649"></a>
+<span class="sourceLineNo">20650</span>                                } else {<a name="line.20650"></a>
+<span class="sourceLineNo">20651</span>                                        final long iy = 0;<a name="line.20651"></a>
+<span class="sourceLineNo">20652</span>                                        while (it.hasNext()) {<a name="line.20652"></a>
+<span class="sourceLineNo">20653</span>                                                final long ix = it.aLong;<a name="line.20653"></a>
+<span class="sourceLineNo">20654</span>                                                Complex tz;<a name="line.20654"></a>
+<span class="sourceLineNo">20655</span>                                                double ox;<a name="line.20655"></a>
+<span class="sourceLineNo">20656</span>                                                double oy;<a name="line.20656"></a>
+<span class="sourceLineNo">20657</span>                                                tz = new Complex(ix, iy).acos();<a name="line.20657"></a>
+<span class="sourceLineNo">20658</span>                                                ox = (tz.getReal());<a name="line.20658"></a>
+<span class="sourceLineNo">20659</span>                                                oy = (tz.getImaginary());<a name="line.20659"></a>
+<span class="sourceLineNo">20660</span>                                                oc128data[it.oIndex] = ox;<a name="line.20660"></a>
+<span class="sourceLineNo">20661</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.20661"></a>
+<span class="sourceLineNo">20662</span>                                        }<a name="line.20662"></a>
+<span class="sourceLineNo">20663</span>                                }<a name="line.20663"></a>
+<span class="sourceLineNo">20664</span>                        } else {<a name="line.20664"></a>
+<span class="sourceLineNo">20665</span>                                while (it.hasNext()) {<a name="line.20665"></a>
+<span class="sourceLineNo">20666</span>                                        final double ix = it.aDouble;<a name="line.20666"></a>
+<span class="sourceLineNo">20667</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.20667"></a>
+<span class="sourceLineNo">20668</span>                                        Complex tz;<a name="line.20668"></a>
+<span class="sourceLineNo">20669</span>                                        double ox;<a name="line.20669"></a>
+<span class="sourceLineNo">20670</span>                                        double oy;<a name="line.20670"></a>
+<span class="sourceLineNo">20671</span>                                        tz = new Complex(ix, iy).acos();<a name="line.20671"></a>
+<span class="sourceLineNo">20672</span>                                        ox = (tz.getReal());<a name="line.20672"></a>
+<span class="sourceLineNo">20673</span>                                        oy = (tz.getImaginary());<a name="line.20673"></a>
+<span class="sourceLineNo">20674</span>                                        oc128data[it.oIndex] = ox;<a name="line.20674"></a>
+<span class="sourceLineNo">20675</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.20675"></a>
+<span class="sourceLineNo">20676</span>                                }<a name="line.20676"></a>
+<span class="sourceLineNo">20677</span>                        }<a name="line.20677"></a>
+<span class="sourceLineNo">20678</span>                        break;<a name="line.20678"></a>
+<span class="sourceLineNo">20679</span>                default:<a name="line.20679"></a>
+<span class="sourceLineNo">20680</span>                        throw new IllegalArgumentException("arccos supports integer, compound integer, real, compound real, complex datasets only");<a name="line.20680"></a>
+<span class="sourceLineNo">20681</span>                }<a name="line.20681"></a>
+<span class="sourceLineNo">20682</span><a name="line.20682"></a>
+<span class="sourceLineNo">20683</span>                addFunctionName(result, "arccos");<a name="line.20683"></a>
+<span class="sourceLineNo">20684</span>                return result;<a name="line.20684"></a>
+<span class="sourceLineNo">20685</span>        }<a name="line.20685"></a>
+<span class="sourceLineNo">20686</span><a name="line.20686"></a>
+<span class="sourceLineNo">20687</span>        /**<a name="line.20687"></a>
+<span class="sourceLineNo">20688</span>         * arctan - evaluate the inverse tangent function on each element of the dataset<a name="line.20688"></a>
+<span class="sourceLineNo">20689</span>         * @param a<a name="line.20689"></a>
+<span class="sourceLineNo">20690</span>         * @return dataset<a name="line.20690"></a>
+<span class="sourceLineNo">20691</span>         */<a name="line.20691"></a>
+<span class="sourceLineNo">20692</span>        public static Dataset arctan(final Object a) {<a name="line.20692"></a>
+<span class="sourceLineNo">20693</span>                return arctan(a, null);<a name="line.20693"></a>
+<span class="sourceLineNo">20694</span>        }<a name="line.20694"></a>
+<span class="sourceLineNo">20695</span><a name="line.20695"></a>
+<span class="sourceLineNo">20696</span>        /**<a name="line.20696"></a>
+<span class="sourceLineNo">20697</span>         * arctan - evaluate the inverse tangent function on each element of the dataset<a name="line.20697"></a>
+<span class="sourceLineNo">20698</span>         * @param a<a name="line.20698"></a>
+<span class="sourceLineNo">20699</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.20699"></a>
+<span class="sourceLineNo">20700</span>         * @return dataset<a name="line.20700"></a>
+<span class="sourceLineNo">20701</span>         */<a name="line.20701"></a>
+<span class="sourceLineNo">20702</span>        public static Dataset arctan(final Object a, final Dataset o) {<a name="line.20702"></a>
+<span class="sourceLineNo">20703</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.20703"></a>
+<span class="sourceLineNo">20704</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.20704"></a>
+<span class="sourceLineNo">20705</span>                final Dataset result = it.getOutput();<a name="line.20705"></a>
+<span class="sourceLineNo">20706</span>                if (!result.isComplex()) {<a name="line.20706"></a>
+<span class="sourceLineNo">20707</span>                        if (da.isComplex()) {<a name="line.20707"></a>
+<span class="sourceLineNo">20708</span>                                da = da.getRealView();<a name="line.20708"></a>
+<span class="sourceLineNo">20709</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.20709"></a>
+<span class="sourceLineNo">20710</span>                        }<a name="line.20710"></a>
+<span class="sourceLineNo">20711</span>                }<a name="line.20711"></a>
+<span class="sourceLineNo">20712</span>                final int is = result.getElementsPerItem();<a name="line.20712"></a>
+<span class="sourceLineNo">20713</span>                final int as = da.getElementsPerItem();<a name="line.20713"></a>
+<span class="sourceLineNo">20714</span>                final int dt = result.getDType();<a name="line.20714"></a>
+<span class="sourceLineNo">20715</span><a name="line.20715"></a>
+<span class="sourceLineNo">20716</span>                switch(dt) {<a name="line.20716"></a>
+<span class="sourceLineNo">20717</span>                case Dataset.INT8:<a name="line.20717"></a>
+<span class="sourceLineNo">20718</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.20718"></a>
+<span class="sourceLineNo">20719</span>                        if (it.isOutputDouble()) {<a name="line.20719"></a>
+<span class="sourceLineNo">20720</span>                                while (it.hasNext()) {<a name="line.20720"></a>
+<span class="sourceLineNo">20721</span>                                        final double ix = it.aDouble;<a name="line.20721"></a>
+<span class="sourceLineNo">20722</span>                                        byte ox;<a name="line.20722"></a>
+<span class="sourceLineNo">20723</span>                                        ox = (byte) toLong(Math.atan(ix));<a name="line.20723"></a>
+<span class="sourceLineNo">20724</span>                                        oi8data[it.oIndex] = ox;<a name="line.20724"></a>
+<span class="sourceLineNo">20725</span>                                }<a name="line.20725"></a>
+<span class="sourceLineNo">20726</span>                        } else {<a name="line.20726"></a>
+<span class="sourceLineNo">20727</span>                                while (it.hasNext()) {<a name="line.20727"></a>
+<span class="sourceLineNo">20728</span>                                        final long ix = it.aLong;<a name="line.20728"></a>
+<span class="sourceLineNo">20729</span>                                        byte ox;<a name="line.20729"></a>
+<span class="sourceLineNo">20730</span>                                        ox = (byte) toLong(Math.atan(ix));<a name="line.20730"></a>
+<span class="sourceLineNo">20731</span>                                        oi8data[it.oIndex] = ox;<a name="line.20731"></a>
+<span class="sourceLineNo">20732</span>                                }<a name="line.20732"></a>
+<span class="sourceLineNo">20733</span>                        }<a name="line.20733"></a>
+<span class="sourceLineNo">20734</span>                        break;<a name="line.20734"></a>
+<span class="sourceLineNo">20735</span>                case Dataset.INT16:<a name="line.20735"></a>
+<span class="sourceLineNo">20736</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.20736"></a>
+<span class="sourceLineNo">20737</span>                        if (it.isOutputDouble()) {<a name="line.20737"></a>
+<span class="sourceLineNo">20738</span>                                while (it.hasNext()) {<a name="line.20738"></a>
+<span class="sourceLineNo">20739</span>                                        final double ix = it.aDouble;<a name="line.20739"></a>
+<span class="sourceLineNo">20740</span>                                        short ox;<a name="line.20740"></a>
+<span class="sourceLineNo">20741</span>                                        ox = (short) toLong(Math.atan(ix));<a name="line.20741"></a>
+<span class="sourceLineNo">20742</span>                                        oi16data[it.oIndex] = ox;<a name="line.20742"></a>
+<span class="sourceLineNo">20743</span>                                }<a name="line.20743"></a>
+<span class="sourceLineNo">20744</span>                        } else {<a name="line.20744"></a>
+<span class="sourceLineNo">20745</span>                                while (it.hasNext()) {<a name="line.20745"></a>
+<span class="sourceLineNo">20746</span>                                        final long ix = it.aLong;<a name="line.20746"></a>
+<span class="sourceLineNo">20747</span>                                        short ox;<a name="line.20747"></a>
+<span class="sourceLineNo">20748</span>                                        ox = (short) toLong(Math.atan(ix));<a name="line.20748"></a>
+<span class="sourceLineNo">20749</span>                                        oi16data[it.oIndex] = ox;<a name="line.20749"></a>
+<span class="sourceLineNo">20750</span>                                }<a name="line.20750"></a>
+<span class="sourceLineNo">20751</span>                        }<a name="line.20751"></a>
+<span class="sourceLineNo">20752</span>                        break;<a name="line.20752"></a>
+<span class="sourceLineNo">20753</span>                case Dataset.INT64:<a name="line.20753"></a>
+<span class="sourceLineNo">20754</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.20754"></a>
+<span class="sourceLineNo">20755</span>                        if (it.isOutputDouble()) {<a name="line.20755"></a>
+<span class="sourceLineNo">20756</span>                                while (it.hasNext()) {<a name="line.20756"></a>
+<span class="sourceLineNo">20757</span>                                        final double ix = it.aDouble;<a name="line.20757"></a>
+<span class="sourceLineNo">20758</span>                                        long ox;<a name="line.20758"></a>
+<span class="sourceLineNo">20759</span>                                        ox = toLong(Math.atan(ix));<a name="line.20759"></a>
+<span class="sourceLineNo">20760</span>                                        oi64data[it.oIndex] = ox;<a name="line.20760"></a>
+<span class="sourceLineNo">20761</span>                                }<a name="line.20761"></a>
+<span class="sourceLineNo">20762</span>                        } else {<a name="line.20762"></a>
+<span class="sourceLineNo">20763</span>                                while (it.hasNext()) {<a name="line.20763"></a>
+<span class="sourceLineNo">20764</span>                                        final long ix = it.aLong;<a name="line.20764"></a>
+<span class="sourceLineNo">20765</span>                                        long ox;<a name="line.20765"></a>
+<span class="sourceLineNo">20766</span>                                        ox = toLong(Math.atan(ix));<a name="line.20766"></a>
+<span class="sourceLineNo">20767</span>                                        oi64data[it.oIndex] = ox;<a name="line.20767"></a>
+<span class="sourceLineNo">20768</span>                                }<a name="line.20768"></a>
+<span class="sourceLineNo">20769</span>                        }<a name="line.20769"></a>
+<span class="sourceLineNo">20770</span>                        break;<a name="line.20770"></a>
+<span class="sourceLineNo">20771</span>                case Dataset.INT32:<a name="line.20771"></a>
+<span class="sourceLineNo">20772</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.20772"></a>
+<span class="sourceLineNo">20773</span>                        if (it.isOutputDouble()) {<a name="line.20773"></a>
+<span class="sourceLineNo">20774</span>                                while (it.hasNext()) {<a name="line.20774"></a>
+<span class="sourceLineNo">20775</span>                                        final double ix = it.aDouble;<a name="line.20775"></a>
+<span class="sourceLineNo">20776</span>                                        int ox;<a name="line.20776"></a>
+<span class="sourceLineNo">20777</span>                                        ox = (int) toLong(Math.atan(ix));<a name="line.20777"></a>
+<span class="sourceLineNo">20778</span>                                        oi32data[it.oIndex] = ox;<a name="line.20778"></a>
+<span class="sourceLineNo">20779</span>                                }<a name="line.20779"></a>
+<span class="sourceLineNo">20780</span>                        } else {<a name="line.20780"></a>
+<span class="sourceLineNo">20781</span>                                while (it.hasNext()) {<a name="line.20781"></a>
+<span class="sourceLineNo">20782</span>                                        final long ix = it.aLong;<a name="line.20782"></a>
+<span class="sourceLineNo">20783</span>                                        int ox;<a name="line.20783"></a>
+<span class="sourceLineNo">20784</span>                                        ox = (int) toLong(Math.atan(ix));<a name="line.20784"></a>
+<span class="sourceLineNo">20785</span>                                        oi32data[it.oIndex] = ox;<a name="line.20785"></a>
+<span class="sourceLineNo">20786</span>                                }<a name="line.20786"></a>
+<span class="sourceLineNo">20787</span>                        }<a name="line.20787"></a>
+<span class="sourceLineNo">20788</span>                        break;<a name="line.20788"></a>
+<span class="sourceLineNo">20789</span>                case Dataset.ARRAYINT8:<a name="line.20789"></a>
+<span class="sourceLineNo">20790</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.20790"></a>
+<span class="sourceLineNo">20791</span>                        if (is == 1) {<a name="line.20791"></a>
+<span class="sourceLineNo">20792</span>                                if (it.isOutputDouble()) {<a name="line.20792"></a>
+<span class="sourceLineNo">20793</span>                                        while (it.hasNext()) {<a name="line.20793"></a>
+<span class="sourceLineNo">20794</span>                                                final double ix = it.aDouble;<a name="line.20794"></a>
+<span class="sourceLineNo">20795</span>                                                byte ox;<a name="line.20795"></a>
+<span class="sourceLineNo">20796</span>                                                ox = (byte) toLong(Math.atan(ix));<a name="line.20796"></a>
+<span class="sourceLineNo">20797</span>                                                oai8data[it.oIndex] = ox;<a name="line.20797"></a>
+<span class="sourceLineNo">20798</span>                                        }<a name="line.20798"></a>
+<span class="sourceLineNo">20799</span>                                } else {<a name="line.20799"></a>
+<span class="sourceLineNo">20800</span>                                        while (it.hasNext()) {<a name="line.20800"></a>
+<span class="sourceLineNo">20801</span>                                                final long ix = it.aLong;<a name="line.20801"></a>
+<span class="sourceLineNo">20802</span>                                                byte ox;<a name="line.20802"></a>
+<span class="sourceLineNo">20803</span>                                                ox = (byte) toLong(Math.atan(ix));<a name="line.20803"></a>
+<span class="sourceLineNo">20804</span>                                                oai8data[it.oIndex] = ox;<a name="line.20804"></a>
+<span class="sourceLineNo">20805</span>                                        }<a name="line.20805"></a>
+<span class="sourceLineNo">20806</span>                                }<a name="line.20806"></a>
+<span class="sourceLineNo">20807</span>                        } else if (as == 1) {<a name="line.20807"></a>
+<span class="sourceLineNo">20808</span>                                if (it.isOutputDouble()) {<a name="line.20808"></a>
+<span class="sourceLineNo">20809</span>                                        while (it.hasNext()) {<a name="line.20809"></a>
+<span class="sourceLineNo">20810</span>                                                final double ix = it.aDouble;<a name="line.20810"></a>
+<span class="sourceLineNo">20811</span>                                                byte ox;<a name="line.20811"></a>
+<span class="sourceLineNo">20812</span>                                                ox = (byte) toLong(Math.atan(ix));<a name="line.20812"></a>
+<span class="sourceLineNo">20813</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20813"></a>
+<span class="sourceLineNo">20814</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.20814"></a>
+<span class="sourceLineNo">20815</span>                                                }<a name="line.20815"></a>
+<span class="sourceLineNo">20816</span>                                        }<a name="line.20816"></a>
+<span class="sourceLineNo">20817</span>                                } else {<a name="line.20817"></a>
+<span class="sourceLineNo">20818</span>                                        while (it.hasNext()) {<a name="line.20818"></a>
+<span class="sourceLineNo">20819</span>                                                final long ix = it.aLong;<a name="line.20819"></a>
+<span class="sourceLineNo">20820</span>                                                byte ox;<a name="line.20820"></a>
+<span class="sourceLineNo">20821</span>                                                ox = (byte) toLong(Math.atan(ix));<a name="line.20821"></a>
+<span class="sourceLineNo">20822</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20822"></a>
+<span class="sourceLineNo">20823</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.20823"></a>
+<span class="sourceLineNo">20824</span>                                                }<a name="line.20824"></a>
+<span class="sourceLineNo">20825</span>                                        }<a name="line.20825"></a>
+<span class="sourceLineNo">20826</span>                                }<a name="line.20826"></a>
+<span class="sourceLineNo">20827</span>                        } else {<a name="line.20827"></a>
+<span class="sourceLineNo">20828</span>                                if (it.isOutputDouble()) {<a name="line.20828"></a>
+<span class="sourceLineNo">20829</span>                                        while (it.hasNext()) {<a name="line.20829"></a>
+<span class="sourceLineNo">20830</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20830"></a>
+<span class="sourceLineNo">20831</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.20831"></a>
+<span class="sourceLineNo">20832</span>                                                        byte ox;<a name="line.20832"></a>
+<span class="sourceLineNo">20833</span>                                                        ox = (byte) toLong(Math.atan(ix));<a name="line.20833"></a>
+<span class="sourceLineNo">20834</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.20834"></a>
+<span class="sourceLineNo">20835</span>                                                }<a name="line.20835"></a>
+<span class="sourceLineNo">20836</span>                                        }<a name="line.20836"></a>
+<span class="sourceLineNo">20837</span>                                } else {<a name="line.20837"></a>
+<span class="sourceLineNo">20838</span>                                        while (it.hasNext()) {<a name="line.20838"></a>
+<span class="sourceLineNo">20839</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20839"></a>
+<span class="sourceLineNo">20840</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.20840"></a>
+<span class="sourceLineNo">20841</span>                                                        byte ox;<a name="line.20841"></a>
+<span class="sourceLineNo">20842</span>                                                        ox = (byte) toLong(Math.atan(ix));<a name="line.20842"></a>
+<span class="sourceLineNo">20843</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.20843"></a>
+<span class="sourceLineNo">20844</span>                                                }<a name="line.20844"></a>
+<span class="sourceLineNo">20845</span>                                        }<a name="line.20845"></a>
+<span class="sourceLineNo">20846</span>                                }<a name="line.20846"></a>
+<span class="sourceLineNo">20847</span>                        }<a name="line.20847"></a>
+<span class="sourceLineNo">20848</span>                        break;<a name="line.20848"></a>
+<span class="sourceLineNo">20849</span>                case Dataset.ARRAYINT16:<a name="line.20849"></a>
+<span class="sourceLineNo">20850</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.20850"></a>
+<span class="sourceLineNo">20851</span>                        if (is == 1) {<a name="line.20851"></a>
+<span class="sourceLineNo">20852</span>                                if (it.isOutputDouble()) {<a name="line.20852"></a>
+<span class="sourceLineNo">20853</span>                                        while (it.hasNext()) {<a name="line.20853"></a>
+<span class="sourceLineNo">20854</span>                                                final double ix = it.aDouble;<a name="line.20854"></a>
+<span class="sourceLineNo">20855</span>                                                short ox;<a name="line.20855"></a>
+<span class="sourceLineNo">20856</span>                                                ox = (short) toLong(Math.atan(ix));<a name="line.20856"></a>
+<span class="sourceLineNo">20857</span>                                                oai16data[it.oIndex] = ox;<a name="line.20857"></a>
+<span class="sourceLineNo">20858</span>                                        }<a name="line.20858"></a>
+<span class="sourceLineNo">20859</span>                                } else {<a name="line.20859"></a>
+<span class="sourceLineNo">20860</span>                                        while (it.hasNext()) {<a name="line.20860"></a>
+<span class="sourceLineNo">20861</span>                                                final long ix = it.aLong;<a name="line.20861"></a>
+<span class="sourceLineNo">20862</span>                                                short ox;<a name="line.20862"></a>
+<span class="sourceLineNo">20863</span>                                                ox = (short) toLong(Math.atan(ix));<a name="line.20863"></a>
+<span class="sourceLineNo">20864</span>                                                oai16data[it.oIndex] = ox;<a name="line.20864"></a>
+<span class="sourceLineNo">20865</span>                                        }<a name="line.20865"></a>
+<span class="sourceLineNo">20866</span>                                }<a name="line.20866"></a>
+<span class="sourceLineNo">20867</span>                        } else if (as == 1) {<a name="line.20867"></a>
+<span class="sourceLineNo">20868</span>                                if (it.isOutputDouble()) {<a name="line.20868"></a>
+<span class="sourceLineNo">20869</span>                                        while (it.hasNext()) {<a name="line.20869"></a>
+<span class="sourceLineNo">20870</span>                                                final double ix = it.aDouble;<a name="line.20870"></a>
+<span class="sourceLineNo">20871</span>                                                short ox;<a name="line.20871"></a>
+<span class="sourceLineNo">20872</span>                                                ox = (short) toLong(Math.atan(ix));<a name="line.20872"></a>
+<span class="sourceLineNo">20873</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20873"></a>
+<span class="sourceLineNo">20874</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.20874"></a>
+<span class="sourceLineNo">20875</span>                                                }<a name="line.20875"></a>
+<span class="sourceLineNo">20876</span>                                        }<a name="line.20876"></a>
+<span class="sourceLineNo">20877</span>                                } else {<a name="line.20877"></a>
+<span class="sourceLineNo">20878</span>                                        while (it.hasNext()) {<a name="line.20878"></a>
+<span class="sourceLineNo">20879</span>                                                final long ix = it.aLong;<a name="line.20879"></a>
+<span class="sourceLineNo">20880</span>                                                short ox;<a name="line.20880"></a>
+<span class="sourceLineNo">20881</span>                                                ox = (short) toLong(Math.atan(ix));<a name="line.20881"></a>
+<span class="sourceLineNo">20882</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20882"></a>
+<span class="sourceLineNo">20883</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.20883"></a>
+<span class="sourceLineNo">20884</span>                                                }<a name="line.20884"></a>
+<span class="sourceLineNo">20885</span>                                        }<a name="line.20885"></a>
+<span class="sourceLineNo">20886</span>                                }<a name="line.20886"></a>
+<span class="sourceLineNo">20887</span>                        } else {<a name="line.20887"></a>
+<span class="sourceLineNo">20888</span>                                if (it.isOutputDouble()) {<a name="line.20888"></a>
+<span class="sourceLineNo">20889</span>                                        while (it.hasNext()) {<a name="line.20889"></a>
+<span class="sourceLineNo">20890</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20890"></a>
+<span class="sourceLineNo">20891</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.20891"></a>
+<span class="sourceLineNo">20892</span>                                                        short ox;<a name="line.20892"></a>
+<span class="sourceLineNo">20893</span>                                                        ox = (short) toLong(Math.atan(ix));<a name="line.20893"></a>
+<span class="sourceLineNo">20894</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.20894"></a>
+<span class="sourceLineNo">20895</span>                                                }<a name="line.20895"></a>
+<span class="sourceLineNo">20896</span>                                        }<a name="line.20896"></a>
+<span class="sourceLineNo">20897</span>                                } else {<a name="line.20897"></a>
+<span class="sourceLineNo">20898</span>                                        while (it.hasNext()) {<a name="line.20898"></a>
+<span class="sourceLineNo">20899</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20899"></a>
+<span class="sourceLineNo">20900</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.20900"></a>
+<span class="sourceLineNo">20901</span>                                                        short ox;<a name="line.20901"></a>
+<span class="sourceLineNo">20902</span>                                                        ox = (short) toLong(Math.atan(ix));<a name="line.20902"></a>
+<span class="sourceLineNo">20903</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.20903"></a>
+<span class="sourceLineNo">20904</span>                                                }<a name="line.20904"></a>
+<span class="sourceLineNo">20905</span>                                        }<a name="line.20905"></a>
+<span class="sourceLineNo">20906</span>                                }<a name="line.20906"></a>
+<span class="sourceLineNo">20907</span>                        }<a name="line.20907"></a>
+<span class="sourceLineNo">20908</span>                        break;<a name="line.20908"></a>
+<span class="sourceLineNo">20909</span>                case Dataset.ARRAYINT64:<a name="line.20909"></a>
+<span class="sourceLineNo">20910</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.20910"></a>
+<span class="sourceLineNo">20911</span>                        if (is == 1) {<a name="line.20911"></a>
+<span class="sourceLineNo">20912</span>                                if (it.isOutputDouble()) {<a name="line.20912"></a>
+<span class="sourceLineNo">20913</span>                                        while (it.hasNext()) {<a name="line.20913"></a>
+<span class="sourceLineNo">20914</span>                                                final double ix = it.aDouble;<a name="line.20914"></a>
+<span class="sourceLineNo">20915</span>                                                long ox;<a name="line.20915"></a>
+<span class="sourceLineNo">20916</span>                                                ox = toLong(Math.atan(ix));<a name="line.20916"></a>
+<span class="sourceLineNo">20917</span>                                                oai64data[it.oIndex] = ox;<a name="line.20917"></a>
+<span class="sourceLineNo">20918</span>                                        }<a name="line.20918"></a>
+<span class="sourceLineNo">20919</span>                                } else {<a name="line.20919"></a>
+<span class="sourceLineNo">20920</span>                                        while (it.hasNext()) {<a name="line.20920"></a>
+<span class="sourceLineNo">20921</span>                                                final long ix = it.aLong;<a name="line.20921"></a>
+<span class="sourceLineNo">20922</span>                                                long ox;<a name="line.20922"></a>
+<span class="sourceLineNo">20923</span>                                                ox = toLong(Math.atan(ix));<a name="line.20923"></a>
+<span class="sourceLineNo">20924</span>                                                oai64data[it.oIndex] = ox;<a name="line.20924"></a>
+<span class="sourceLineNo">20925</span>                                        }<a name="line.20925"></a>
+<span class="sourceLineNo">20926</span>                                }<a name="line.20926"></a>
+<span class="sourceLineNo">20927</span>                        } else if (as == 1) {<a name="line.20927"></a>
+<span class="sourceLineNo">20928</span>                                if (it.isOutputDouble()) {<a name="line.20928"></a>
+<span class="sourceLineNo">20929</span>                                        while (it.hasNext()) {<a name="line.20929"></a>
+<span class="sourceLineNo">20930</span>                                                final double ix = it.aDouble;<a name="line.20930"></a>
+<span class="sourceLineNo">20931</span>                                                long ox;<a name="line.20931"></a>
+<span class="sourceLineNo">20932</span>                                                ox = toLong(Math.atan(ix));<a name="line.20932"></a>
+<span class="sourceLineNo">20933</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20933"></a>
+<span class="sourceLineNo">20934</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.20934"></a>
+<span class="sourceLineNo">20935</span>                                                }<a name="line.20935"></a>
+<span class="sourceLineNo">20936</span>                                        }<a name="line.20936"></a>
+<span class="sourceLineNo">20937</span>                                } else {<a name="line.20937"></a>
+<span class="sourceLineNo">20938</span>                                        while (it.hasNext()) {<a name="line.20938"></a>
+<span class="sourceLineNo">20939</span>                                                final long ix = it.aLong;<a name="line.20939"></a>
+<span class="sourceLineNo">20940</span>                                                long ox;<a name="line.20940"></a>
+<span class="sourceLineNo">20941</span>                                                ox = toLong(Math.atan(ix));<a name="line.20941"></a>
+<span class="sourceLineNo">20942</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20942"></a>
+<span class="sourceLineNo">20943</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.20943"></a>
+<span class="sourceLineNo">20944</span>                                                }<a name="line.20944"></a>
+<span class="sourceLineNo">20945</span>                                        }<a name="line.20945"></a>
+<span class="sourceLineNo">20946</span>                                }<a name="line.20946"></a>
+<span class="sourceLineNo">20947</span>                        } else {<a name="line.20947"></a>
+<span class="sourceLineNo">20948</span>                                if (it.isOutputDouble()) {<a name="line.20948"></a>
+<span class="sourceLineNo">20949</span>                                        while (it.hasNext()) {<a name="line.20949"></a>
+<span class="sourceLineNo">20950</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20950"></a>
+<span class="sourceLineNo">20951</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.20951"></a>
+<span class="sourceLineNo">20952</span>                                                        long ox;<a name="line.20952"></a>
+<span class="sourceLineNo">20953</span>                                                        ox = toLong(Math.atan(ix));<a name="line.20953"></a>
+<span class="sourceLineNo">20954</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.20954"></a>
+<span class="sourceLineNo">20955</span>                                                }<a name="line.20955"></a>
+<span class="sourceLineNo">20956</span>                                        }<a name="line.20956"></a>
+<span class="sourceLineNo">20957</span>                                } else {<a name="line.20957"></a>
+<span class="sourceLineNo">20958</span>                                        while (it.hasNext()) {<a name="line.20958"></a>
+<span class="sourceLineNo">20959</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20959"></a>
+<span class="sourceLineNo">20960</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.20960"></a>
+<span class="sourceLineNo">20961</span>                                                        long ox;<a name="line.20961"></a>
+<span class="sourceLineNo">20962</span>                                                        ox = toLong(Math.atan(ix));<a name="line.20962"></a>
+<span class="sourceLineNo">20963</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.20963"></a>
+<span class="sourceLineNo">20964</span>                                                }<a name="line.20964"></a>
+<span class="sourceLineNo">20965</span>                                        }<a name="line.20965"></a>
+<span class="sourceLineNo">20966</span>                                }<a name="line.20966"></a>
+<span class="sourceLineNo">20967</span>                        }<a name="line.20967"></a>
+<span class="sourceLineNo">20968</span>                        break;<a name="line.20968"></a>
+<span class="sourceLineNo">20969</span>                case Dataset.ARRAYINT32:<a name="line.20969"></a>
+<span class="sourceLineNo">20970</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.20970"></a>
+<span class="sourceLineNo">20971</span>                        if (is == 1) {<a name="line.20971"></a>
+<span class="sourceLineNo">20972</span>                                if (it.isOutputDouble()) {<a name="line.20972"></a>
+<span class="sourceLineNo">20973</span>                                        while (it.hasNext()) {<a name="line.20973"></a>
+<span class="sourceLineNo">20974</span>                                                final double ix = it.aDouble;<a name="line.20974"></a>
+<span class="sourceLineNo">20975</span>                                                int ox;<a name="line.20975"></a>
+<span class="sourceLineNo">20976</span>                                                ox = (int) toLong(Math.atan(ix));<a name="line.20976"></a>
+<span class="sourceLineNo">20977</span>                                                oai32data[it.oIndex] = ox;<a name="line.20977"></a>
+<span class="sourceLineNo">20978</span>                                        }<a name="line.20978"></a>
+<span class="sourceLineNo">20979</span>                                } else {<a name="line.20979"></a>
+<span class="sourceLineNo">20980</span>                                        while (it.hasNext()) {<a name="line.20980"></a>
+<span class="sourceLineNo">20981</span>                                                final long ix = it.aLong;<a name="line.20981"></a>
+<span class="sourceLineNo">20982</span>                                                int ox;<a name="line.20982"></a>
+<span class="sourceLineNo">20983</span>                                                ox = (int) toLong(Math.atan(ix));<a name="line.20983"></a>
+<span class="sourceLineNo">20984</span>                                                oai32data[it.oIndex] = ox;<a name="line.20984"></a>
+<span class="sourceLineNo">20985</span>                                        }<a name="line.20985"></a>
+<span class="sourceLineNo">20986</span>                                }<a name="line.20986"></a>
+<span class="sourceLineNo">20987</span>                        } else if (as == 1) {<a name="line.20987"></a>
+<span class="sourceLineNo">20988</span>                                if (it.isOutputDouble()) {<a name="line.20988"></a>
+<span class="sourceLineNo">20989</span>                                        while (it.hasNext()) {<a name="line.20989"></a>
+<span class="sourceLineNo">20990</span>                                                final double ix = it.aDouble;<a name="line.20990"></a>
+<span class="sourceLineNo">20991</span>                                                int ox;<a name="line.20991"></a>
+<span class="sourceLineNo">20992</span>                                                ox = (int) toLong(Math.atan(ix));<a name="line.20992"></a>
+<span class="sourceLineNo">20993</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.20993"></a>
+<span class="sourceLineNo">20994</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.20994"></a>
+<span class="sourceLineNo">20995</span>                                                }<a name="line.20995"></a>
+<span class="sourceLineNo">20996</span>                                        }<a name="line.20996"></a>
+<span class="sourceLineNo">20997</span>                                } else {<a name="line.20997"></a>
+<span class="sourceLineNo">20998</span>                                        while (it.hasNext()) {<a name="line.20998"></a>
+<span class="sourceLineNo">20999</span>                                                final long ix = it.aLong;<a name="line.20999"></a>
+<span class="sourceLineNo">21000</span>                                                int ox;<a name="line.21000"></a>
+<span class="sourceLineNo">21001</span>                                                ox = (int) toLong(Math.atan(ix));<a name="line.21001"></a>
+<span class="sourceLineNo">21002</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21002"></a>
+<span class="sourceLineNo">21003</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.21003"></a>
+<span class="sourceLineNo">21004</span>                                                }<a name="line.21004"></a>
+<span class="sourceLineNo">21005</span>                                        }<a name="line.21005"></a>
+<span class="sourceLineNo">21006</span>                                }<a name="line.21006"></a>
+<span class="sourceLineNo">21007</span>                        } else {<a name="line.21007"></a>
+<span class="sourceLineNo">21008</span>                                if (it.isOutputDouble()) {<a name="line.21008"></a>
+<span class="sourceLineNo">21009</span>                                        while (it.hasNext()) {<a name="line.21009"></a>
+<span class="sourceLineNo">21010</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21010"></a>
+<span class="sourceLineNo">21011</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.21011"></a>
+<span class="sourceLineNo">21012</span>                                                        int ox;<a name="line.21012"></a>
+<span class="sourceLineNo">21013</span>                                                        ox = (int) toLong(Math.atan(ix));<a name="line.21013"></a>
+<span class="sourceLineNo">21014</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.21014"></a>
+<span class="sourceLineNo">21015</span>                                                }<a name="line.21015"></a>
+<span class="sourceLineNo">21016</span>                                        }<a name="line.21016"></a>
+<span class="sourceLineNo">21017</span>                                } else {<a name="line.21017"></a>
+<span class="sourceLineNo">21018</span>                                        while (it.hasNext()) {<a name="line.21018"></a>
+<span class="sourceLineNo">21019</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21019"></a>
+<span class="sourceLineNo">21020</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.21020"></a>
+<span class="sourceLineNo">21021</span>                                                        int ox;<a name="line.21021"></a>
+<span class="sourceLineNo">21022</span>                                                        ox = (int) toLong(Math.atan(ix));<a name="line.21022"></a>
+<span class="sourceLineNo">21023</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.21023"></a>
+<span class="sourceLineNo">21024</span>                                                }<a name="line.21024"></a>
+<span class="sourceLineNo">21025</span>                                        }<a name="line.21025"></a>
+<span class="sourceLineNo">21026</span>                                }<a name="line.21026"></a>
+<span class="sourceLineNo">21027</span>                        }<a name="line.21027"></a>
+<span class="sourceLineNo">21028</span>                        break;<a name="line.21028"></a>
+<span class="sourceLineNo">21029</span>                case Dataset.FLOAT32:<a name="line.21029"></a>
+<span class="sourceLineNo">21030</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.21030"></a>
+<span class="sourceLineNo">21031</span>                        if (it.isOutputDouble()) {<a name="line.21031"></a>
+<span class="sourceLineNo">21032</span>                                while (it.hasNext()) {<a name="line.21032"></a>
+<span class="sourceLineNo">21033</span>                                        final double ix = it.aDouble;<a name="line.21033"></a>
+<span class="sourceLineNo">21034</span>                                        float ox;<a name="line.21034"></a>
+<span class="sourceLineNo">21035</span>                                        ox = (float) (Math.atan(ix));<a name="line.21035"></a>
+<span class="sourceLineNo">21036</span>                                        of32data[it.oIndex] = ox;<a name="line.21036"></a>
+<span class="sourceLineNo">21037</span>                                }<a name="line.21037"></a>
+<span class="sourceLineNo">21038</span>                        } else {<a name="line.21038"></a>
+<span class="sourceLineNo">21039</span>                                while (it.hasNext()) {<a name="line.21039"></a>
+<span class="sourceLineNo">21040</span>                                        final long ix = it.aLong;<a name="line.21040"></a>
+<span class="sourceLineNo">21041</span>                                        float ox;<a name="line.21041"></a>
+<span class="sourceLineNo">21042</span>                                        ox = (float) (Math.atan(ix));<a name="line.21042"></a>
+<span class="sourceLineNo">21043</span>                                        of32data[it.oIndex] = ox;<a name="line.21043"></a>
+<span class="sourceLineNo">21044</span>                                }<a name="line.21044"></a>
+<span class="sourceLineNo">21045</span>                        }<a name="line.21045"></a>
+<span class="sourceLineNo">21046</span>                        break;<a name="line.21046"></a>
+<span class="sourceLineNo">21047</span>                case Dataset.FLOAT64:<a name="line.21047"></a>
+<span class="sourceLineNo">21048</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.21048"></a>
+<span class="sourceLineNo">21049</span>                        if (it.isOutputDouble()) {<a name="line.21049"></a>
+<span class="sourceLineNo">21050</span>                                while (it.hasNext()) {<a name="line.21050"></a>
+<span class="sourceLineNo">21051</span>                                        final double ix = it.aDouble;<a name="line.21051"></a>
+<span class="sourceLineNo">21052</span>                                        double ox;<a name="line.21052"></a>
+<span class="sourceLineNo">21053</span>                                        ox = (Math.atan(ix));<a name="line.21053"></a>
+<span class="sourceLineNo">21054</span>                                        of64data[it.oIndex] = ox;<a name="line.21054"></a>
+<span class="sourceLineNo">21055</span>                                }<a name="line.21055"></a>
+<span class="sourceLineNo">21056</span>                        } else {<a name="line.21056"></a>
+<span class="sourceLineNo">21057</span>                                while (it.hasNext()) {<a name="line.21057"></a>
+<span class="sourceLineNo">21058</span>                                        final long ix = it.aLong;<a name="line.21058"></a>
+<span class="sourceLineNo">21059</span>                                        double ox;<a name="line.21059"></a>
+<span class="sourceLineNo">21060</span>                                        ox = (Math.atan(ix));<a name="line.21060"></a>
+<span class="sourceLineNo">21061</span>                                        of64data[it.oIndex] = ox;<a name="line.21061"></a>
+<span class="sourceLineNo">21062</span>                                }<a name="line.21062"></a>
+<span class="sourceLineNo">21063</span>                        }<a name="line.21063"></a>
+<span class="sourceLineNo">21064</span>                        break;<a name="line.21064"></a>
+<span class="sourceLineNo">21065</span>                case Dataset.ARRAYFLOAT32:<a name="line.21065"></a>
+<span class="sourceLineNo">21066</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.21066"></a>
+<span class="sourceLineNo">21067</span>                        if (is == 1) {<a name="line.21067"></a>
+<span class="sourceLineNo">21068</span>                                if (it.isOutputDouble()) {<a name="line.21068"></a>
+<span class="sourceLineNo">21069</span>                                        while (it.hasNext()) {<a name="line.21069"></a>
+<span class="sourceLineNo">21070</span>                                                final double ix = it.aDouble;<a name="line.21070"></a>
+<span class="sourceLineNo">21071</span>                                                float ox;<a name="line.21071"></a>
+<span class="sourceLineNo">21072</span>                                                ox = (float) (Math.atan(ix));<a name="line.21072"></a>
+<span class="sourceLineNo">21073</span>                                                oaf32data[it.oIndex] = ox;<a name="line.21073"></a>
+<span class="sourceLineNo">21074</span>                                        }<a name="line.21074"></a>
+<span class="sourceLineNo">21075</span>                                } else {<a name="line.21075"></a>
+<span class="sourceLineNo">21076</span>                                        while (it.hasNext()) {<a name="line.21076"></a>
+<span class="sourceLineNo">21077</span>                                                final long ix = it.aLong;<a name="line.21077"></a>
+<span class="sourceLineNo">21078</span>                                                float ox;<a name="line.21078"></a>
+<span class="sourceLineNo">21079</span>                                                ox = (float) (Math.atan(ix));<a name="line.21079"></a>
+<span class="sourceLineNo">21080</span>                                                oaf32data[it.oIndex] = ox;<a name="line.21080"></a>
+<span class="sourceLineNo">21081</span>                                        }<a name="line.21081"></a>
+<span class="sourceLineNo">21082</span>                                }<a name="line.21082"></a>
+<span class="sourceLineNo">21083</span>                        } else if (as == 1) {<a name="line.21083"></a>
+<span class="sourceLineNo">21084</span>                                if (it.isOutputDouble()) {<a name="line.21084"></a>
+<span class="sourceLineNo">21085</span>                                        while (it.hasNext()) {<a name="line.21085"></a>
+<span class="sourceLineNo">21086</span>                                                final double ix = it.aDouble;<a name="line.21086"></a>
+<span class="sourceLineNo">21087</span>                                                float ox;<a name="line.21087"></a>
+<span class="sourceLineNo">21088</span>                                                ox = (float) (Math.atan(ix));<a name="line.21088"></a>
+<span class="sourceLineNo">21089</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21089"></a>
+<span class="sourceLineNo">21090</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.21090"></a>
+<span class="sourceLineNo">21091</span>                                                }<a name="line.21091"></a>
+<span class="sourceLineNo">21092</span>                                        }<a name="line.21092"></a>
+<span class="sourceLineNo">21093</span>                                } else {<a name="line.21093"></a>
+<span class="sourceLineNo">21094</span>                                        while (it.hasNext()) {<a name="line.21094"></a>
+<span class="sourceLineNo">21095</span>                                                final long ix = it.aLong;<a name="line.21095"></a>
+<span class="sourceLineNo">21096</span>                                                float ox;<a name="line.21096"></a>
+<span class="sourceLineNo">21097</span>                                                ox = (float) (Math.atan(ix));<a name="line.21097"></a>
+<span class="sourceLineNo">21098</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21098"></a>
+<span class="sourceLineNo">21099</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.21099"></a>
+<span class="sourceLineNo">21100</span>                                                }<a name="line.21100"></a>
+<span class="sourceLineNo">21101</span>                                        }<a name="line.21101"></a>
+<span class="sourceLineNo">21102</span>                                }<a name="line.21102"></a>
+<span class="sourceLineNo">21103</span>                        } else {<a name="line.21103"></a>
+<span class="sourceLineNo">21104</span>                                if (it.isOutputDouble()) {<a name="line.21104"></a>
+<span class="sourceLineNo">21105</span>                                        while (it.hasNext()) {<a name="line.21105"></a>
+<span class="sourceLineNo">21106</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21106"></a>
+<span class="sourceLineNo">21107</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.21107"></a>
+<span class="sourceLineNo">21108</span>                                                        float ox;<a name="line.21108"></a>
+<span class="sourceLineNo">21109</span>                                                        ox = (float) (Math.atan(ix));<a name="line.21109"></a>
+<span class="sourceLineNo">21110</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.21110"></a>
+<span class="sourceLineNo">21111</span>                                                }<a name="line.21111"></a>
+<span class="sourceLineNo">21112</span>                                        }<a name="line.21112"></a>
+<span class="sourceLineNo">21113</span>                                } else {<a name="line.21113"></a>
+<span class="sourceLineNo">21114</span>                                        while (it.hasNext()) {<a name="line.21114"></a>
+<span class="sourceLineNo">21115</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21115"></a>
+<span class="sourceLineNo">21116</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.21116"></a>
+<span class="sourceLineNo">21117</span>                                                        float ox;<a name="line.21117"></a>
+<span class="sourceLineNo">21118</span>                                                        ox = (float) (Math.atan(ix));<a name="line.21118"></a>
+<span class="sourceLineNo">21119</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.21119"></a>
+<span class="sourceLineNo">21120</span>                                                }<a name="line.21120"></a>
+<span class="sourceLineNo">21121</span>                                        }<a name="line.21121"></a>
+<span class="sourceLineNo">21122</span>                                }<a name="line.21122"></a>
+<span class="sourceLineNo">21123</span>                        }<a name="line.21123"></a>
+<span class="sourceLineNo">21124</span>                        break;<a name="line.21124"></a>
+<span class="sourceLineNo">21125</span>                case Dataset.ARRAYFLOAT64:<a name="line.21125"></a>
+<span class="sourceLineNo">21126</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.21126"></a>
+<span class="sourceLineNo">21127</span>                        if (is == 1) {<a name="line.21127"></a>
+<span class="sourceLineNo">21128</span>                                if (it.isOutputDouble()) {<a name="line.21128"></a>
+<span class="sourceLineNo">21129</span>                                        while (it.hasNext()) {<a name="line.21129"></a>
+<span class="sourceLineNo">21130</span>                                                final double ix = it.aDouble;<a name="line.21130"></a>
+<span class="sourceLineNo">21131</span>                                                double ox;<a name="line.21131"></a>
+<span class="sourceLineNo">21132</span>                                                ox = (Math.atan(ix));<a name="line.21132"></a>
+<span class="sourceLineNo">21133</span>                                                oaf64data[it.oIndex] = ox;<a name="line.21133"></a>
+<span class="sourceLineNo">21134</span>                                        }<a name="line.21134"></a>
+<span class="sourceLineNo">21135</span>                                } else {<a name="line.21135"></a>
+<span class="sourceLineNo">21136</span>                                        while (it.hasNext()) {<a name="line.21136"></a>
+<span class="sourceLineNo">21137</span>                                                final long ix = it.aLong;<a name="line.21137"></a>
+<span class="sourceLineNo">21138</span>                                                double ox;<a name="line.21138"></a>
+<span class="sourceLineNo">21139</span>                                                ox = (Math.atan(ix));<a name="line.21139"></a>
+<span class="sourceLineNo">21140</span>                                                oaf64data[it.oIndex] = ox;<a name="line.21140"></a>
+<span class="sourceLineNo">21141</span>                                        }<a name="line.21141"></a>
+<span class="sourceLineNo">21142</span>                                }<a name="line.21142"></a>
+<span class="sourceLineNo">21143</span>                        } else if (as == 1) {<a name="line.21143"></a>
+<span class="sourceLineNo">21144</span>                                if (it.isOutputDouble()) {<a name="line.21144"></a>
+<span class="sourceLineNo">21145</span>                                        while (it.hasNext()) {<a name="line.21145"></a>
+<span class="sourceLineNo">21146</span>                                                final double ix = it.aDouble;<a name="line.21146"></a>
+<span class="sourceLineNo">21147</span>                                                double ox;<a name="line.21147"></a>
+<span class="sourceLineNo">21148</span>                                                ox = (Math.atan(ix));<a name="line.21148"></a>
+<span class="sourceLineNo">21149</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21149"></a>
+<span class="sourceLineNo">21150</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.21150"></a>
+<span class="sourceLineNo">21151</span>                                                }<a name="line.21151"></a>
+<span class="sourceLineNo">21152</span>                                        }<a name="line.21152"></a>
+<span class="sourceLineNo">21153</span>                                } else {<a name="line.21153"></a>
+<span class="sourceLineNo">21154</span>                                        while (it.hasNext()) {<a name="line.21154"></a>
+<span class="sourceLineNo">21155</span>                                                final long ix = it.aLong;<a name="line.21155"></a>
+<span class="sourceLineNo">21156</span>                                                double ox;<a name="line.21156"></a>
+<span class="sourceLineNo">21157</span>                                                ox = (Math.atan(ix));<a name="line.21157"></a>
+<span class="sourceLineNo">21158</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21158"></a>
+<span class="sourceLineNo">21159</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.21159"></a>
+<span class="sourceLineNo">21160</span>                                                }<a name="line.21160"></a>
+<span class="sourceLineNo">21161</span>                                        }<a name="line.21161"></a>
+<span class="sourceLineNo">21162</span>                                }<a name="line.21162"></a>
+<span class="sourceLineNo">21163</span>                        } else {<a name="line.21163"></a>
+<span class="sourceLineNo">21164</span>                                if (it.isOutputDouble()) {<a name="line.21164"></a>
+<span class="sourceLineNo">21165</span>                                        while (it.hasNext()) {<a name="line.21165"></a>
+<span class="sourceLineNo">21166</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21166"></a>
+<span class="sourceLineNo">21167</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.21167"></a>
+<span class="sourceLineNo">21168</span>                                                        double ox;<a name="line.21168"></a>
+<span class="sourceLineNo">21169</span>                                                        ox = (Math.atan(ix));<a name="line.21169"></a>
+<span class="sourceLineNo">21170</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.21170"></a>
+<span class="sourceLineNo">21171</span>                                                }<a name="line.21171"></a>
+<span class="sourceLineNo">21172</span>                                        }<a name="line.21172"></a>
+<span class="sourceLineNo">21173</span>                                } else {<a name="line.21173"></a>
+<span class="sourceLineNo">21174</span>                                        while (it.hasNext()) {<a name="line.21174"></a>
+<span class="sourceLineNo">21175</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21175"></a>
+<span class="sourceLineNo">21176</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.21176"></a>
+<span class="sourceLineNo">21177</span>                                                        double ox;<a name="line.21177"></a>
+<span class="sourceLineNo">21178</span>                                                        ox = (Math.atan(ix));<a name="line.21178"></a>
+<span class="sourceLineNo">21179</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.21179"></a>
+<span class="sourceLineNo">21180</span>                                                }<a name="line.21180"></a>
+<span class="sourceLineNo">21181</span>                                        }<a name="line.21181"></a>
+<span class="sourceLineNo">21182</span>                                }<a name="line.21182"></a>
+<span class="sourceLineNo">21183</span>                        }<a name="line.21183"></a>
+<span class="sourceLineNo">21184</span>                        break;<a name="line.21184"></a>
+<span class="sourceLineNo">21185</span>                case Dataset.COMPLEX64:<a name="line.21185"></a>
+<span class="sourceLineNo">21186</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.21186"></a>
+<span class="sourceLineNo">21187</span>                        if (!da.isComplex()) {<a name="line.21187"></a>
+<span class="sourceLineNo">21188</span>                                if (it.isOutputDouble()) {<a name="line.21188"></a>
+<span class="sourceLineNo">21189</span>                                        final double iy = 0;<a name="line.21189"></a>
+<span class="sourceLineNo">21190</span>                                        while (it.hasNext()) {<a name="line.21190"></a>
+<span class="sourceLineNo">21191</span>                                                final double ix = it.aDouble;<a name="line.21191"></a>
+<span class="sourceLineNo">21192</span>                                                Complex tz;<a name="line.21192"></a>
+<span class="sourceLineNo">21193</span>                                                float ox;<a name="line.21193"></a>
+<span class="sourceLineNo">21194</span>                                                float oy;<a name="line.21194"></a>
+<span class="sourceLineNo">21195</span>                                                tz = new Complex(ix, iy).atan();<a name="line.21195"></a>
+<span class="sourceLineNo">21196</span>                                                ox = (float) (tz.getReal());<a name="line.21196"></a>
+<span class="sourceLineNo">21197</span>                                                oy = (float) (tz.getImaginary());<a name="line.21197"></a>
+<span class="sourceLineNo">21198</span>                                                oc64data[it.oIndex] = ox;<a name="line.21198"></a>
+<span class="sourceLineNo">21199</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.21199"></a>
+<span class="sourceLineNo">21200</span>                                        }<a name="line.21200"></a>
+<span class="sourceLineNo">21201</span>                                } else {<a name="line.21201"></a>
+<span class="sourceLineNo">21202</span>                                        final long iy = 0;<a name="line.21202"></a>
+<span class="sourceLineNo">21203</span>                                        while (it.hasNext()) {<a name="line.21203"></a>
+<span class="sourceLineNo">21204</span>                                                final long ix = it.aLong;<a name="line.21204"></a>
+<span class="sourceLineNo">21205</span>                                                Complex tz;<a name="line.21205"></a>
+<span class="sourceLineNo">21206</span>                                                float ox;<a name="line.21206"></a>
+<span class="sourceLineNo">21207</span>                                                float oy;<a name="line.21207"></a>
+<span class="sourceLineNo">21208</span>                                                tz = new Complex(ix, iy).atan();<a name="line.21208"></a>
+<span class="sourceLineNo">21209</span>                                                ox = (float) toLong(tz.getReal());<a name="line.21209"></a>
+<span class="sourceLineNo">21210</span>                                                oy = (float) toLong(tz.getImaginary());<a name="line.21210"></a>
+<span class="sourceLineNo">21211</span>                                                oc64data[it.oIndex] = ox;<a name="line.21211"></a>
+<span class="sourceLineNo">21212</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.21212"></a>
+<span class="sourceLineNo">21213</span>                                        }<a name="line.21213"></a>
+<span class="sourceLineNo">21214</span>                                }<a name="line.21214"></a>
+<span class="sourceLineNo">21215</span>                        } else {<a name="line.21215"></a>
+<span class="sourceLineNo">21216</span>                                while (it.hasNext()) {<a name="line.21216"></a>
+<span class="sourceLineNo">21217</span>                                        final double ix = it.aDouble;<a name="line.21217"></a>
+<span class="sourceLineNo">21218</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.21218"></a>
+<span class="sourceLineNo">21219</span>                                        Complex tz;<a name="line.21219"></a>
+<span class="sourceLineNo">21220</span>                                        float ox;<a name="line.21220"></a>
+<span class="sourceLineNo">21221</span>                                        float oy;<a name="line.21221"></a>
+<span class="sourceLineNo">21222</span>                                        tz = new Complex(ix, iy).atan();<a name="line.21222"></a>
+<span class="sourceLineNo">21223</span>                                        ox = (float) (tz.getReal());<a name="line.21223"></a>
+<span class="sourceLineNo">21224</span>                                        oy = (float) (tz.getImaginary());<a name="line.21224"></a>
+<span class="sourceLineNo">21225</span>                                        oc64data[it.oIndex] = ox;<a name="line.21225"></a>
+<span class="sourceLineNo">21226</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.21226"></a>
+<span class="sourceLineNo">21227</span>                                }<a name="line.21227"></a>
+<span class="sourceLineNo">21228</span>                        }<a name="line.21228"></a>
+<span class="sourceLineNo">21229</span>                        break;<a name="line.21229"></a>
+<span class="sourceLineNo">21230</span>                case Dataset.COMPLEX128:<a name="line.21230"></a>
+<span class="sourceLineNo">21231</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.21231"></a>
+<span class="sourceLineNo">21232</span>                        if (!da.isComplex()) {<a name="line.21232"></a>
+<span class="sourceLineNo">21233</span>                                if (it.isOutputDouble()) {<a name="line.21233"></a>
+<span class="sourceLineNo">21234</span>                                        final double iy = 0;<a name="line.21234"></a>
+<span class="sourceLineNo">21235</span>                                        while (it.hasNext()) {<a name="line.21235"></a>
+<span class="sourceLineNo">21236</span>                                                final double ix = it.aDouble;<a name="line.21236"></a>
+<span class="sourceLineNo">21237</span>                                                Complex tz;<a name="line.21237"></a>
+<span class="sourceLineNo">21238</span>                                                double ox;<a name="line.21238"></a>
+<span class="sourceLineNo">21239</span>                                                double oy;<a name="line.21239"></a>
+<span class="sourceLineNo">21240</span>                                                tz = new Complex(ix, iy).atan();<a name="line.21240"></a>
+<span class="sourceLineNo">21241</span>                                                ox = (tz.getReal());<a name="line.21241"></a>
+<span class="sourceLineNo">21242</span>                                                oy = (tz.getImaginary());<a name="line.21242"></a>
+<span class="sourceLineNo">21243</span>                                                oc128data[it.oIndex] = ox;<a name="line.21243"></a>
+<span class="sourceLineNo">21244</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.21244"></a>
+<span class="sourceLineNo">21245</span>                                        }<a name="line.21245"></a>
+<span class="sourceLineNo">21246</span>                                } else {<a name="line.21246"></a>
+<span class="sourceLineNo">21247</span>                                        final long iy = 0;<a name="line.21247"></a>
+<span class="sourceLineNo">21248</span>                                        while (it.hasNext()) {<a name="line.21248"></a>
+<span class="sourceLineNo">21249</span>                                                final long ix = it.aLong;<a name="line.21249"></a>
+<span class="sourceLineNo">21250</span>                                                Complex tz;<a name="line.21250"></a>
+<span class="sourceLineNo">21251</span>                                                double ox;<a name="line.21251"></a>
+<span class="sourceLineNo">21252</span>                                                double oy;<a name="line.21252"></a>
+<span class="sourceLineNo">21253</span>                                                tz = new Complex(ix, iy).atan();<a name="line.21253"></a>
+<span class="sourceLineNo">21254</span>                                                ox = (tz.getReal());<a name="line.21254"></a>
+<span class="sourceLineNo">21255</span>                                                oy = (tz.getImaginary());<a name="line.21255"></a>
+<span class="sourceLineNo">21256</span>                                                oc128data[it.oIndex] = ox;<a name="line.21256"></a>
+<span class="sourceLineNo">21257</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.21257"></a>
+<span class="sourceLineNo">21258</span>                                        }<a name="line.21258"></a>
+<span class="sourceLineNo">21259</span>                                }<a name="line.21259"></a>
+<span class="sourceLineNo">21260</span>                        } else {<a name="line.21260"></a>
+<span class="sourceLineNo">21261</span>                                while (it.hasNext()) {<a name="line.21261"></a>
+<span class="sourceLineNo">21262</span>                                        final double ix = it.aDouble;<a name="line.21262"></a>
+<span class="sourceLineNo">21263</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.21263"></a>
+<span class="sourceLineNo">21264</span>                                        Complex tz;<a name="line.21264"></a>
+<span class="sourceLineNo">21265</span>                                        double ox;<a name="line.21265"></a>
+<span class="sourceLineNo">21266</span>                                        double oy;<a name="line.21266"></a>
+<span class="sourceLineNo">21267</span>                                        tz = new Complex(ix, iy).atan();<a name="line.21267"></a>
+<span class="sourceLineNo">21268</span>                                        ox = (tz.getReal());<a name="line.21268"></a>
+<span class="sourceLineNo">21269</span>                                        oy = (tz.getImaginary());<a name="line.21269"></a>
+<span class="sourceLineNo">21270</span>                                        oc128data[it.oIndex] = ox;<a name="line.21270"></a>
+<span class="sourceLineNo">21271</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.21271"></a>
+<span class="sourceLineNo">21272</span>                                }<a name="line.21272"></a>
+<span class="sourceLineNo">21273</span>                        }<a name="line.21273"></a>
+<span class="sourceLineNo">21274</span>                        break;<a name="line.21274"></a>
+<span class="sourceLineNo">21275</span>                default:<a name="line.21275"></a>
+<span class="sourceLineNo">21276</span>                        throw new IllegalArgumentException("arctan supports integer, compound integer, real, compound real, complex datasets only");<a name="line.21276"></a>
+<span class="sourceLineNo">21277</span>                }<a name="line.21277"></a>
+<span class="sourceLineNo">21278</span><a name="line.21278"></a>
+<span class="sourceLineNo">21279</span>                addFunctionName(result, "arctan");<a name="line.21279"></a>
+<span class="sourceLineNo">21280</span>                return result;<a name="line.21280"></a>
+<span class="sourceLineNo">21281</span>        }<a name="line.21281"></a>
+<span class="sourceLineNo">21282</span><a name="line.21282"></a>
+<span class="sourceLineNo">21283</span>        /**<a name="line.21283"></a>
+<span class="sourceLineNo">21284</span>         * sinh - evaluate the hyperbolic sine function on each element of the dataset<a name="line.21284"></a>
+<span class="sourceLineNo">21285</span>         * @param a<a name="line.21285"></a>
+<span class="sourceLineNo">21286</span>         * @return dataset<a name="line.21286"></a>
+<span class="sourceLineNo">21287</span>         */<a name="line.21287"></a>
+<span class="sourceLineNo">21288</span>        public static Dataset sinh(final Object a) {<a name="line.21288"></a>
+<span class="sourceLineNo">21289</span>                return sinh(a, null);<a name="line.21289"></a>
+<span class="sourceLineNo">21290</span>        }<a name="line.21290"></a>
+<span class="sourceLineNo">21291</span><a name="line.21291"></a>
+<span class="sourceLineNo">21292</span>        /**<a name="line.21292"></a>
+<span class="sourceLineNo">21293</span>         * sinh - evaluate the hyperbolic sine function on each element of the dataset<a name="line.21293"></a>
+<span class="sourceLineNo">21294</span>         * @param a<a name="line.21294"></a>
+<span class="sourceLineNo">21295</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.21295"></a>
+<span class="sourceLineNo">21296</span>         * @return dataset<a name="line.21296"></a>
+<span class="sourceLineNo">21297</span>         */<a name="line.21297"></a>
+<span class="sourceLineNo">21298</span>        public static Dataset sinh(final Object a, final Dataset o) {<a name="line.21298"></a>
+<span class="sourceLineNo">21299</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.21299"></a>
+<span class="sourceLineNo">21300</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.21300"></a>
+<span class="sourceLineNo">21301</span>                final Dataset result = it.getOutput();<a name="line.21301"></a>
+<span class="sourceLineNo">21302</span>                if (!result.isComplex()) {<a name="line.21302"></a>
+<span class="sourceLineNo">21303</span>                        if (da.isComplex()) {<a name="line.21303"></a>
+<span class="sourceLineNo">21304</span>                                da = da.getRealView();<a name="line.21304"></a>
+<span class="sourceLineNo">21305</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.21305"></a>
+<span class="sourceLineNo">21306</span>                        }<a name="line.21306"></a>
+<span class="sourceLineNo">21307</span>                }<a name="line.21307"></a>
+<span class="sourceLineNo">21308</span>                final int is = result.getElementsPerItem();<a name="line.21308"></a>
+<span class="sourceLineNo">21309</span>                final int as = da.getElementsPerItem();<a name="line.21309"></a>
+<span class="sourceLineNo">21310</span>                final int dt = result.getDType();<a name="line.21310"></a>
+<span class="sourceLineNo">21311</span><a name="line.21311"></a>
+<span class="sourceLineNo">21312</span>                switch(dt) {<a name="line.21312"></a>
+<span class="sourceLineNo">21313</span>                case Dataset.INT8:<a name="line.21313"></a>
+<span class="sourceLineNo">21314</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.21314"></a>
+<span class="sourceLineNo">21315</span>                        if (it.isOutputDouble()) {<a name="line.21315"></a>
+<span class="sourceLineNo">21316</span>                                while (it.hasNext()) {<a name="line.21316"></a>
+<span class="sourceLineNo">21317</span>                                        final double ix = it.aDouble;<a name="line.21317"></a>
+<span class="sourceLineNo">21318</span>                                        byte ox;<a name="line.21318"></a>
+<span class="sourceLineNo">21319</span>                                        ox = (byte) toLong(Math.sinh(ix));<a name="line.21319"></a>
+<span class="sourceLineNo">21320</span>                                        oi8data[it.oIndex] = ox;<a name="line.21320"></a>
+<span class="sourceLineNo">21321</span>                                }<a name="line.21321"></a>
+<span class="sourceLineNo">21322</span>                        } else {<a name="line.21322"></a>
+<span class="sourceLineNo">21323</span>                                while (it.hasNext()) {<a name="line.21323"></a>
+<span class="sourceLineNo">21324</span>                                        final long ix = it.aLong;<a name="line.21324"></a>
+<span class="sourceLineNo">21325</span>                                        byte ox;<a name="line.21325"></a>
+<span class="sourceLineNo">21326</span>                                        ox = (byte) toLong(Math.sinh(ix));<a name="line.21326"></a>
+<span class="sourceLineNo">21327</span>                                        oi8data[it.oIndex] = ox;<a name="line.21327"></a>
+<span class="sourceLineNo">21328</span>                                }<a name="line.21328"></a>
+<span class="sourceLineNo">21329</span>                        }<a name="line.21329"></a>
+<span class="sourceLineNo">21330</span>                        break;<a name="line.21330"></a>
+<span class="sourceLineNo">21331</span>                case Dataset.INT16:<a name="line.21331"></a>
+<span class="sourceLineNo">21332</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.21332"></a>
+<span class="sourceLineNo">21333</span>                        if (it.isOutputDouble()) {<a name="line.21333"></a>
+<span class="sourceLineNo">21334</span>                                while (it.hasNext()) {<a name="line.21334"></a>
+<span class="sourceLineNo">21335</span>                                        final double ix = it.aDouble;<a name="line.21335"></a>
+<span class="sourceLineNo">21336</span>                                        short ox;<a name="line.21336"></a>
+<span class="sourceLineNo">21337</span>                                        ox = (short) toLong(Math.sinh(ix));<a name="line.21337"></a>
+<span class="sourceLineNo">21338</span>                                        oi16data[it.oIndex] = ox;<a name="line.21338"></a>
+<span class="sourceLineNo">21339</span>                                }<a name="line.21339"></a>
+<span class="sourceLineNo">21340</span>                        } else {<a name="line.21340"></a>
+<span class="sourceLineNo">21341</span>                                while (it.hasNext()) {<a name="line.21341"></a>
+<span class="sourceLineNo">21342</span>                                        final long ix = it.aLong;<a name="line.21342"></a>
+<span class="sourceLineNo">21343</span>                                        short ox;<a name="line.21343"></a>
+<span class="sourceLineNo">21344</span>                                        ox = (short) toLong(Math.sinh(ix));<a name="line.21344"></a>
+<span class="sourceLineNo">21345</span>                                        oi16data[it.oIndex] = ox;<a name="line.21345"></a>
+<span class="sourceLineNo">21346</span>                                }<a name="line.21346"></a>
+<span class="sourceLineNo">21347</span>                        }<a name="line.21347"></a>
+<span class="sourceLineNo">21348</span>                        break;<a name="line.21348"></a>
+<span class="sourceLineNo">21349</span>                case Dataset.INT64:<a name="line.21349"></a>
+<span class="sourceLineNo">21350</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.21350"></a>
+<span class="sourceLineNo">21351</span>                        if (it.isOutputDouble()) {<a name="line.21351"></a>
+<span class="sourceLineNo">21352</span>                                while (it.hasNext()) {<a name="line.21352"></a>
+<span class="sourceLineNo">21353</span>                                        final double ix = it.aDouble;<a name="line.21353"></a>
+<span class="sourceLineNo">21354</span>                                        long ox;<a name="line.21354"></a>
+<span class="sourceLineNo">21355</span>                                        ox = toLong(Math.sinh(ix));<a name="line.21355"></a>
+<span class="sourceLineNo">21356</span>                                        oi64data[it.oIndex] = ox;<a name="line.21356"></a>
+<span class="sourceLineNo">21357</span>                                }<a name="line.21357"></a>
+<span class="sourceLineNo">21358</span>                        } else {<a name="line.21358"></a>
+<span class="sourceLineNo">21359</span>                                while (it.hasNext()) {<a name="line.21359"></a>
+<span class="sourceLineNo">21360</span>                                        final long ix = it.aLong;<a name="line.21360"></a>
+<span class="sourceLineNo">21361</span>                                        long ox;<a name="line.21361"></a>
+<span class="sourceLineNo">21362</span>                                        ox = toLong(Math.sinh(ix));<a name="line.21362"></a>
+<span class="sourceLineNo">21363</span>                                        oi64data[it.oIndex] = ox;<a name="line.21363"></a>
+<span class="sourceLineNo">21364</span>                                }<a name="line.21364"></a>
+<span class="sourceLineNo">21365</span>                        }<a name="line.21365"></a>
+<span class="sourceLineNo">21366</span>                        break;<a name="line.21366"></a>
+<span class="sourceLineNo">21367</span>                case Dataset.INT32:<a name="line.21367"></a>
+<span class="sourceLineNo">21368</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.21368"></a>
+<span class="sourceLineNo">21369</span>                        if (it.isOutputDouble()) {<a name="line.21369"></a>
+<span class="sourceLineNo">21370</span>                                while (it.hasNext()) {<a name="line.21370"></a>
+<span class="sourceLineNo">21371</span>                                        final double ix = it.aDouble;<a name="line.21371"></a>
+<span class="sourceLineNo">21372</span>                                        int ox;<a name="line.21372"></a>
+<span class="sourceLineNo">21373</span>                                        ox = (int) toLong(Math.sinh(ix));<a name="line.21373"></a>
+<span class="sourceLineNo">21374</span>                                        oi32data[it.oIndex] = ox;<a name="line.21374"></a>
+<span class="sourceLineNo">21375</span>                                }<a name="line.21375"></a>
+<span class="sourceLineNo">21376</span>                        } else {<a name="line.21376"></a>
+<span class="sourceLineNo">21377</span>                                while (it.hasNext()) {<a name="line.21377"></a>
+<span class="sourceLineNo">21378</span>                                        final long ix = it.aLong;<a name="line.21378"></a>
+<span class="sourceLineNo">21379</span>                                        int ox;<a name="line.21379"></a>
+<span class="sourceLineNo">21380</span>                                        ox = (int) toLong(Math.sinh(ix));<a name="line.21380"></a>
+<span class="sourceLineNo">21381</span>                                        oi32data[it.oIndex] = ox;<a name="line.21381"></a>
+<span class="sourceLineNo">21382</span>                                }<a name="line.21382"></a>
+<span class="sourceLineNo">21383</span>                        }<a name="line.21383"></a>
+<span class="sourceLineNo">21384</span>                        break;<a name="line.21384"></a>
+<span class="sourceLineNo">21385</span>                case Dataset.ARRAYINT8:<a name="line.21385"></a>
+<span class="sourceLineNo">21386</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.21386"></a>
+<span class="sourceLineNo">21387</span>                        if (is == 1) {<a name="line.21387"></a>
+<span class="sourceLineNo">21388</span>                                if (it.isOutputDouble()) {<a name="line.21388"></a>
+<span class="sourceLineNo">21389</span>                                        while (it.hasNext()) {<a name="line.21389"></a>
+<span class="sourceLineNo">21390</span>                                                final double ix = it.aDouble;<a name="line.21390"></a>
+<span class="sourceLineNo">21391</span>                                                byte ox;<a name="line.21391"></a>
+<span class="sourceLineNo">21392</span>                                                ox = (byte) toLong(Math.sinh(ix));<a name="line.21392"></a>
+<span class="sourceLineNo">21393</span>                                                oai8data[it.oIndex] = ox;<a name="line.21393"></a>
+<span class="sourceLineNo">21394</span>                                        }<a name="line.21394"></a>
+<span class="sourceLineNo">21395</span>                                } else {<a name="line.21395"></a>
+<span class="sourceLineNo">21396</span>                                        while (it.hasNext()) {<a name="line.21396"></a>
+<span class="sourceLineNo">21397</span>                                                final long ix = it.aLong;<a name="line.21397"></a>
+<span class="sourceLineNo">21398</span>                                                byte ox;<a name="line.21398"></a>
+<span class="sourceLineNo">21399</span>                                                ox = (byte) toLong(Math.sinh(ix));<a name="line.21399"></a>
+<span class="sourceLineNo">21400</span>                                                oai8data[it.oIndex] = ox;<a name="line.21400"></a>
+<span class="sourceLineNo">21401</span>                                        }<a name="line.21401"></a>
+<span class="sourceLineNo">21402</span>                                }<a name="line.21402"></a>
+<span class="sourceLineNo">21403</span>                        } else if (as == 1) {<a name="line.21403"></a>
+<span class="sourceLineNo">21404</span>                                if (it.isOutputDouble()) {<a name="line.21404"></a>
+<span class="sourceLineNo">21405</span>                                        while (it.hasNext()) {<a name="line.21405"></a>
+<span class="sourceLineNo">21406</span>                                                final double ix = it.aDouble;<a name="line.21406"></a>
+<span class="sourceLineNo">21407</span>                                                byte ox;<a name="line.21407"></a>
+<span class="sourceLineNo">21408</span>                                                ox = (byte) toLong(Math.sinh(ix));<a name="line.21408"></a>
+<span class="sourceLineNo">21409</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21409"></a>
+<span class="sourceLineNo">21410</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.21410"></a>
+<span class="sourceLineNo">21411</span>                                                }<a name="line.21411"></a>
+<span class="sourceLineNo">21412</span>                                        }<a name="line.21412"></a>
+<span class="sourceLineNo">21413</span>                                } else {<a name="line.21413"></a>
+<span class="sourceLineNo">21414</span>                                        while (it.hasNext()) {<a name="line.21414"></a>
+<span class="sourceLineNo">21415</span>                                                final long ix = it.aLong;<a name="line.21415"></a>
+<span class="sourceLineNo">21416</span>                                                byte ox;<a name="line.21416"></a>
+<span class="sourceLineNo">21417</span>                                                ox = (byte) toLong(Math.sinh(ix));<a name="line.21417"></a>
+<span class="sourceLineNo">21418</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21418"></a>
+<span class="sourceLineNo">21419</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.21419"></a>
+<span class="sourceLineNo">21420</span>                                                }<a name="line.21420"></a>
+<span class="sourceLineNo">21421</span>                                        }<a name="line.21421"></a>
+<span class="sourceLineNo">21422</span>                                }<a name="line.21422"></a>
+<span class="sourceLineNo">21423</span>                        } else {<a name="line.21423"></a>
+<span class="sourceLineNo">21424</span>                                if (it.isOutputDouble()) {<a name="line.21424"></a>
+<span class="sourceLineNo">21425</span>                                        while (it.hasNext()) {<a name="line.21425"></a>
+<span class="sourceLineNo">21426</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21426"></a>
+<span class="sourceLineNo">21427</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.21427"></a>
+<span class="sourceLineNo">21428</span>                                                        byte ox;<a name="line.21428"></a>
+<span class="sourceLineNo">21429</span>                                                        ox = (byte) toLong(Math.sinh(ix));<a name="line.21429"></a>
+<span class="sourceLineNo">21430</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.21430"></a>
+<span class="sourceLineNo">21431</span>                                                }<a name="line.21431"></a>
+<span class="sourceLineNo">21432</span>                                        }<a name="line.21432"></a>
+<span class="sourceLineNo">21433</span>                                } else {<a name="line.21433"></a>
+<span class="sourceLineNo">21434</span>                                        while (it.hasNext()) {<a name="line.21434"></a>
+<span class="sourceLineNo">21435</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21435"></a>
+<span class="sourceLineNo">21436</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.21436"></a>
+<span class="sourceLineNo">21437</span>                                                        byte ox;<a name="line.21437"></a>
+<span class="sourceLineNo">21438</span>                                                        ox = (byte) toLong(Math.sinh(ix));<a name="line.21438"></a>
+<span class="sourceLineNo">21439</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.21439"></a>
+<span class="sourceLineNo">21440</span>                                                }<a name="line.21440"></a>
+<span class="sourceLineNo">21441</span>                                        }<a name="line.21441"></a>
+<span class="sourceLineNo">21442</span>                                }<a name="line.21442"></a>
+<span class="sourceLineNo">21443</span>                        }<a name="line.21443"></a>
+<span class="sourceLineNo">21444</span>                        break;<a name="line.21444"></a>
+<span class="sourceLineNo">21445</span>                case Dataset.ARRAYINT16:<a name="line.21445"></a>
+<span class="sourceLineNo">21446</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.21446"></a>
+<span class="sourceLineNo">21447</span>                        if (is == 1) {<a name="line.21447"></a>
+<span class="sourceLineNo">21448</span>                                if (it.isOutputDouble()) {<a name="line.21448"></a>
+<span class="sourceLineNo">21449</span>                                        while (it.hasNext()) {<a name="line.21449"></a>
+<span class="sourceLineNo">21450</span>                                                final double ix = it.aDouble;<a name="line.21450"></a>
+<span class="sourceLineNo">21451</span>                                                short ox;<a name="line.21451"></a>
+<span class="sourceLineNo">21452</span>                                                ox = (short) toLong(Math.sinh(ix));<a name="line.21452"></a>
+<span class="sourceLineNo">21453</span>                                                oai16data[it.oIndex] = ox;<a name="line.21453"></a>
+<span class="sourceLineNo">21454</span>                                        }<a name="line.21454"></a>
+<span class="sourceLineNo">21455</span>                                } else {<a name="line.21455"></a>
+<span class="sourceLineNo">21456</span>                                        while (it.hasNext()) {<a name="line.21456"></a>
+<span class="sourceLineNo">21457</span>                                                final long ix = it.aLong;<a name="line.21457"></a>
+<span class="sourceLineNo">21458</span>                                                short ox;<a name="line.21458"></a>
+<span class="sourceLineNo">21459</span>                                                ox = (short) toLong(Math.sinh(ix));<a name="line.21459"></a>
+<span class="sourceLineNo">21460</span>                                                oai16data[it.oIndex] = ox;<a name="line.21460"></a>
+<span class="sourceLineNo">21461</span>                                        }<a name="line.21461"></a>
+<span class="sourceLineNo">21462</span>                                }<a name="line.21462"></a>
+<span class="sourceLineNo">21463</span>                        } else if (as == 1) {<a name="line.21463"></a>
+<span class="sourceLineNo">21464</span>                                if (it.isOutputDouble()) {<a name="line.21464"></a>
+<span class="sourceLineNo">21465</span>                                        while (it.hasNext()) {<a name="line.21465"></a>
+<span class="sourceLineNo">21466</span>                                                final double ix = it.aDouble;<a name="line.21466"></a>
+<span class="sourceLineNo">21467</span>                                                short ox;<a name="line.21467"></a>
+<span class="sourceLineNo">21468</span>                                                ox = (short) toLong(Math.sinh(ix));<a name="line.21468"></a>
+<span class="sourceLineNo">21469</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21469"></a>
+<span class="sourceLineNo">21470</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.21470"></a>
+<span class="sourceLineNo">21471</span>                                                }<a name="line.21471"></a>
+<span class="sourceLineNo">21472</span>                                        }<a name="line.21472"></a>
+<span class="sourceLineNo">21473</span>                                } else {<a name="line.21473"></a>
+<span class="sourceLineNo">21474</span>                                        while (it.hasNext()) {<a name="line.21474"></a>
+<span class="sourceLineNo">21475</span>                                                final long ix = it.aLong;<a name="line.21475"></a>
+<span class="sourceLineNo">21476</span>                                                short ox;<a name="line.21476"></a>
+<span class="sourceLineNo">21477</span>                                                ox = (short) toLong(Math.sinh(ix));<a name="line.21477"></a>
+<span class="sourceLineNo">21478</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21478"></a>
+<span class="sourceLineNo">21479</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.21479"></a>
+<span class="sourceLineNo">21480</span>                                                }<a name="line.21480"></a>
+<span class="sourceLineNo">21481</span>                                        }<a name="line.21481"></a>
+<span class="sourceLineNo">21482</span>                                }<a name="line.21482"></a>
+<span class="sourceLineNo">21483</span>                        } else {<a name="line.21483"></a>
+<span class="sourceLineNo">21484</span>                                if (it.isOutputDouble()) {<a name="line.21484"></a>
+<span class="sourceLineNo">21485</span>                                        while (it.hasNext()) {<a name="line.21485"></a>
+<span class="sourceLineNo">21486</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21486"></a>
+<span class="sourceLineNo">21487</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.21487"></a>
+<span class="sourceLineNo">21488</span>                                                        short ox;<a name="line.21488"></a>
+<span class="sourceLineNo">21489</span>                                                        ox = (short) toLong(Math.sinh(ix));<a name="line.21489"></a>
+<span class="sourceLineNo">21490</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.21490"></a>
+<span class="sourceLineNo">21491</span>                                                }<a name="line.21491"></a>
+<span class="sourceLineNo">21492</span>                                        }<a name="line.21492"></a>
+<span class="sourceLineNo">21493</span>                                } else {<a name="line.21493"></a>
+<span class="sourceLineNo">21494</span>                                        while (it.hasNext()) {<a name="line.21494"></a>
+<span class="sourceLineNo">21495</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21495"></a>
+<span class="sourceLineNo">21496</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.21496"></a>
+<span class="sourceLineNo">21497</span>                                                        short ox;<a name="line.21497"></a>
+<span class="sourceLineNo">21498</span>                                                        ox = (short) toLong(Math.sinh(ix));<a name="line.21498"></a>
+<span class="sourceLineNo">21499</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.21499"></a>
+<span class="sourceLineNo">21500</span>                                                }<a name="line.21500"></a>
+<span class="sourceLineNo">21501</span>                                        }<a name="line.21501"></a>
+<span class="sourceLineNo">21502</span>                                }<a name="line.21502"></a>
+<span class="sourceLineNo">21503</span>                        }<a name="line.21503"></a>
+<span class="sourceLineNo">21504</span>                        break;<a name="line.21504"></a>
+<span class="sourceLineNo">21505</span>                case Dataset.ARRAYINT64:<a name="line.21505"></a>
+<span class="sourceLineNo">21506</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.21506"></a>
+<span class="sourceLineNo">21507</span>                        if (is == 1) {<a name="line.21507"></a>
+<span class="sourceLineNo">21508</span>                                if (it.isOutputDouble()) {<a name="line.21508"></a>
+<span class="sourceLineNo">21509</span>                                        while (it.hasNext()) {<a name="line.21509"></a>
+<span class="sourceLineNo">21510</span>                                                final double ix = it.aDouble;<a name="line.21510"></a>
+<span class="sourceLineNo">21511</span>                                                long ox;<a name="line.21511"></a>
+<span class="sourceLineNo">21512</span>                                                ox = toLong(Math.sinh(ix));<a name="line.21512"></a>
+<span class="sourceLineNo">21513</span>                                                oai64data[it.oIndex] = ox;<a name="line.21513"></a>
+<span class="sourceLineNo">21514</span>                                        }<a name="line.21514"></a>
+<span class="sourceLineNo">21515</span>                                } else {<a name="line.21515"></a>
+<span class="sourceLineNo">21516</span>                                        while (it.hasNext()) {<a name="line.21516"></a>
+<span class="sourceLineNo">21517</span>                                                final long ix = it.aLong;<a name="line.21517"></a>
+<span class="sourceLineNo">21518</span>                                                long ox;<a name="line.21518"></a>
+<span class="sourceLineNo">21519</span>                                                ox = toLong(Math.sinh(ix));<a name="line.21519"></a>
+<span class="sourceLineNo">21520</span>                                                oai64data[it.oIndex] = ox;<a name="line.21520"></a>
+<span class="sourceLineNo">21521</span>                                        }<a name="line.21521"></a>
+<span class="sourceLineNo">21522</span>                                }<a name="line.21522"></a>
+<span class="sourceLineNo">21523</span>                        } else if (as == 1) {<a name="line.21523"></a>
+<span class="sourceLineNo">21524</span>                                if (it.isOutputDouble()) {<a name="line.21524"></a>
+<span class="sourceLineNo">21525</span>                                        while (it.hasNext()) {<a name="line.21525"></a>
+<span class="sourceLineNo">21526</span>                                                final double ix = it.aDouble;<a name="line.21526"></a>
+<span class="sourceLineNo">21527</span>                                                long ox;<a name="line.21527"></a>
+<span class="sourceLineNo">21528</span>                                                ox = toLong(Math.sinh(ix));<a name="line.21528"></a>
+<span class="sourceLineNo">21529</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21529"></a>
+<span class="sourceLineNo">21530</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.21530"></a>
+<span class="sourceLineNo">21531</span>                                                }<a name="line.21531"></a>
+<span class="sourceLineNo">21532</span>                                        }<a name="line.21532"></a>
+<span class="sourceLineNo">21533</span>                                } else {<a name="line.21533"></a>
+<span class="sourceLineNo">21534</span>                                        while (it.hasNext()) {<a name="line.21534"></a>
+<span class="sourceLineNo">21535</span>                                                final long ix = it.aLong;<a name="line.21535"></a>
+<span class="sourceLineNo">21536</span>                                                long ox;<a name="line.21536"></a>
+<span class="sourceLineNo">21537</span>                                                ox = toLong(Math.sinh(ix));<a name="line.21537"></a>
+<span class="sourceLineNo">21538</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21538"></a>
+<span class="sourceLineNo">21539</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.21539"></a>
+<span class="sourceLineNo">21540</span>                                                }<a name="line.21540"></a>
+<span class="sourceLineNo">21541</span>                                        }<a name="line.21541"></a>
+<span class="sourceLineNo">21542</span>                                }<a name="line.21542"></a>
+<span class="sourceLineNo">21543</span>                        } else {<a name="line.21543"></a>
+<span class="sourceLineNo">21544</span>                                if (it.isOutputDouble()) {<a name="line.21544"></a>
+<span class="sourceLineNo">21545</span>                                        while (it.hasNext()) {<a name="line.21545"></a>
+<span class="sourceLineNo">21546</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21546"></a>
+<span class="sourceLineNo">21547</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.21547"></a>
+<span class="sourceLineNo">21548</span>                                                        long ox;<a name="line.21548"></a>
+<span class="sourceLineNo">21549</span>                                                        ox = toLong(Math.sinh(ix));<a name="line.21549"></a>
+<span class="sourceLineNo">21550</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.21550"></a>
+<span class="sourceLineNo">21551</span>                                                }<a name="line.21551"></a>
+<span class="sourceLineNo">21552</span>                                        }<a name="line.21552"></a>
+<span class="sourceLineNo">21553</span>                                } else {<a name="line.21553"></a>
+<span class="sourceLineNo">21554</span>                                        while (it.hasNext()) {<a name="line.21554"></a>
+<span class="sourceLineNo">21555</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21555"></a>
+<span class="sourceLineNo">21556</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.21556"></a>
+<span class="sourceLineNo">21557</span>                                                        long ox;<a name="line.21557"></a>
+<span class="sourceLineNo">21558</span>                                                        ox = toLong(Math.sinh(ix));<a name="line.21558"></a>
+<span class="sourceLineNo">21559</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.21559"></a>
+<span class="sourceLineNo">21560</span>                                                }<a name="line.21560"></a>
+<span class="sourceLineNo">21561</span>                                        }<a name="line.21561"></a>
+<span class="sourceLineNo">21562</span>                                }<a name="line.21562"></a>
+<span class="sourceLineNo">21563</span>                        }<a name="line.21563"></a>
+<span class="sourceLineNo">21564</span>                        break;<a name="line.21564"></a>
+<span class="sourceLineNo">21565</span>                case Dataset.ARRAYINT32:<a name="line.21565"></a>
+<span class="sourceLineNo">21566</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.21566"></a>
+<span class="sourceLineNo">21567</span>                        if (is == 1) {<a name="line.21567"></a>
+<span class="sourceLineNo">21568</span>                                if (it.isOutputDouble()) {<a name="line.21568"></a>
+<span class="sourceLineNo">21569</span>                                        while (it.hasNext()) {<a name="line.21569"></a>
+<span class="sourceLineNo">21570</span>                                                final double ix = it.aDouble;<a name="line.21570"></a>
+<span class="sourceLineNo">21571</span>                                                int ox;<a name="line.21571"></a>
+<span class="sourceLineNo">21572</span>                                                ox = (int) toLong(Math.sinh(ix));<a name="line.21572"></a>
+<span class="sourceLineNo">21573</span>                                                oai32data[it.oIndex] = ox;<a name="line.21573"></a>
+<span class="sourceLineNo">21574</span>                                        }<a name="line.21574"></a>
+<span class="sourceLineNo">21575</span>                                } else {<a name="line.21575"></a>
+<span class="sourceLineNo">21576</span>                                        while (it.hasNext()) {<a name="line.21576"></a>
+<span class="sourceLineNo">21577</span>                                                final long ix = it.aLong;<a name="line.21577"></a>
+<span class="sourceLineNo">21578</span>                                                int ox;<a name="line.21578"></a>
+<span class="sourceLineNo">21579</span>                                                ox = (int) toLong(Math.sinh(ix));<a name="line.21579"></a>
+<span class="sourceLineNo">21580</span>                                                oai32data[it.oIndex] = ox;<a name="line.21580"></a>
+<span class="sourceLineNo">21581</span>                                        }<a name="line.21581"></a>
+<span class="sourceLineNo">21582</span>                                }<a name="line.21582"></a>
+<span class="sourceLineNo">21583</span>                        } else if (as == 1) {<a name="line.21583"></a>
+<span class="sourceLineNo">21584</span>                                if (it.isOutputDouble()) {<a name="line.21584"></a>
+<span class="sourceLineNo">21585</span>                                        while (it.hasNext()) {<a name="line.21585"></a>
+<span class="sourceLineNo">21586</span>                                                final double ix = it.aDouble;<a name="line.21586"></a>
+<span class="sourceLineNo">21587</span>                                                int ox;<a name="line.21587"></a>
+<span class="sourceLineNo">21588</span>                                                ox = (int) toLong(Math.sinh(ix));<a name="line.21588"></a>
+<span class="sourceLineNo">21589</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21589"></a>
+<span class="sourceLineNo">21590</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.21590"></a>
+<span class="sourceLineNo">21591</span>                                                }<a name="line.21591"></a>
+<span class="sourceLineNo">21592</span>                                        }<a name="line.21592"></a>
+<span class="sourceLineNo">21593</span>                                } else {<a name="line.21593"></a>
+<span class="sourceLineNo">21594</span>                                        while (it.hasNext()) {<a name="line.21594"></a>
+<span class="sourceLineNo">21595</span>                                                final long ix = it.aLong;<a name="line.21595"></a>
+<span class="sourceLineNo">21596</span>                                                int ox;<a name="line.21596"></a>
+<span class="sourceLineNo">21597</span>                                                ox = (int) toLong(Math.sinh(ix));<a name="line.21597"></a>
+<span class="sourceLineNo">21598</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21598"></a>
+<span class="sourceLineNo">21599</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.21599"></a>
+<span class="sourceLineNo">21600</span>                                                }<a name="line.21600"></a>
+<span class="sourceLineNo">21601</span>                                        }<a name="line.21601"></a>
+<span class="sourceLineNo">21602</span>                                }<a name="line.21602"></a>
+<span class="sourceLineNo">21603</span>                        } else {<a name="line.21603"></a>
+<span class="sourceLineNo">21604</span>                                if (it.isOutputDouble()) {<a name="line.21604"></a>
+<span class="sourceLineNo">21605</span>                                        while (it.hasNext()) {<a name="line.21605"></a>
+<span class="sourceLineNo">21606</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21606"></a>
+<span class="sourceLineNo">21607</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.21607"></a>
+<span class="sourceLineNo">21608</span>                                                        int ox;<a name="line.21608"></a>
+<span class="sourceLineNo">21609</span>                                                        ox = (int) toLong(Math.sinh(ix));<a name="line.21609"></a>
+<span class="sourceLineNo">21610</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.21610"></a>
+<span class="sourceLineNo">21611</span>                                                }<a name="line.21611"></a>
+<span class="sourceLineNo">21612</span>                                        }<a name="line.21612"></a>
+<span class="sourceLineNo">21613</span>                                } else {<a name="line.21613"></a>
+<span class="sourceLineNo">21614</span>                                        while (it.hasNext()) {<a name="line.21614"></a>
+<span class="sourceLineNo">21615</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21615"></a>
+<span class="sourceLineNo">21616</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.21616"></a>
+<span class="sourceLineNo">21617</span>                                                        int ox;<a name="line.21617"></a>
+<span class="sourceLineNo">21618</span>                                                        ox = (int) toLong(Math.sinh(ix));<a name="line.21618"></a>
+<span class="sourceLineNo">21619</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.21619"></a>
+<span class="sourceLineNo">21620</span>                                                }<a name="line.21620"></a>
+<span class="sourceLineNo">21621</span>                                        }<a name="line.21621"></a>
+<span class="sourceLineNo">21622</span>                                }<a name="line.21622"></a>
+<span class="sourceLineNo">21623</span>                        }<a name="line.21623"></a>
+<span class="sourceLineNo">21624</span>                        break;<a name="line.21624"></a>
+<span class="sourceLineNo">21625</span>                case Dataset.FLOAT32:<a name="line.21625"></a>
+<span class="sourceLineNo">21626</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.21626"></a>
+<span class="sourceLineNo">21627</span>                        if (it.isOutputDouble()) {<a name="line.21627"></a>
+<span class="sourceLineNo">21628</span>                                while (it.hasNext()) {<a name="line.21628"></a>
+<span class="sourceLineNo">21629</span>                                        final double ix = it.aDouble;<a name="line.21629"></a>
+<span class="sourceLineNo">21630</span>                                        float ox;<a name="line.21630"></a>
+<span class="sourceLineNo">21631</span>                                        ox = (float) (Math.sinh(ix));<a name="line.21631"></a>
+<span class="sourceLineNo">21632</span>                                        of32data[it.oIndex] = ox;<a name="line.21632"></a>
+<span class="sourceLineNo">21633</span>                                }<a name="line.21633"></a>
+<span class="sourceLineNo">21634</span>                        } else {<a name="line.21634"></a>
+<span class="sourceLineNo">21635</span>                                while (it.hasNext()) {<a name="line.21635"></a>
+<span class="sourceLineNo">21636</span>                                        final long ix = it.aLong;<a name="line.21636"></a>
+<span class="sourceLineNo">21637</span>                                        float ox;<a name="line.21637"></a>
+<span class="sourceLineNo">21638</span>                                        ox = (float) (Math.sinh(ix));<a name="line.21638"></a>
+<span class="sourceLineNo">21639</span>                                        of32data[it.oIndex] = ox;<a name="line.21639"></a>
+<span class="sourceLineNo">21640</span>                                }<a name="line.21640"></a>
+<span class="sourceLineNo">21641</span>                        }<a name="line.21641"></a>
+<span class="sourceLineNo">21642</span>                        break;<a name="line.21642"></a>
+<span class="sourceLineNo">21643</span>                case Dataset.FLOAT64:<a name="line.21643"></a>
+<span class="sourceLineNo">21644</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.21644"></a>
+<span class="sourceLineNo">21645</span>                        if (it.isOutputDouble()) {<a name="line.21645"></a>
+<span class="sourceLineNo">21646</span>                                while (it.hasNext()) {<a name="line.21646"></a>
+<span class="sourceLineNo">21647</span>                                        final double ix = it.aDouble;<a name="line.21647"></a>
+<span class="sourceLineNo">21648</span>                                        double ox;<a name="line.21648"></a>
+<span class="sourceLineNo">21649</span>                                        ox = (Math.sinh(ix));<a name="line.21649"></a>
+<span class="sourceLineNo">21650</span>                                        of64data[it.oIndex] = ox;<a name="line.21650"></a>
+<span class="sourceLineNo">21651</span>                                }<a name="line.21651"></a>
+<span class="sourceLineNo">21652</span>                        } else {<a name="line.21652"></a>
+<span class="sourceLineNo">21653</span>                                while (it.hasNext()) {<a name="line.21653"></a>
+<span class="sourceLineNo">21654</span>                                        final long ix = it.aLong;<a name="line.21654"></a>
+<span class="sourceLineNo">21655</span>                                        double ox;<a name="line.21655"></a>
+<span class="sourceLineNo">21656</span>                                        ox = (Math.sinh(ix));<a name="line.21656"></a>
+<span class="sourceLineNo">21657</span>                                        of64data[it.oIndex] = ox;<a name="line.21657"></a>
+<span class="sourceLineNo">21658</span>                                }<a name="line.21658"></a>
+<span class="sourceLineNo">21659</span>                        }<a name="line.21659"></a>
+<span class="sourceLineNo">21660</span>                        break;<a name="line.21660"></a>
+<span class="sourceLineNo">21661</span>                case Dataset.ARRAYFLOAT32:<a name="line.21661"></a>
+<span class="sourceLineNo">21662</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.21662"></a>
+<span class="sourceLineNo">21663</span>                        if (is == 1) {<a name="line.21663"></a>
+<span class="sourceLineNo">21664</span>                                if (it.isOutputDouble()) {<a name="line.21664"></a>
+<span class="sourceLineNo">21665</span>                                        while (it.hasNext()) {<a name="line.21665"></a>
+<span class="sourceLineNo">21666</span>                                                final double ix = it.aDouble;<a name="line.21666"></a>
+<span class="sourceLineNo">21667</span>                                                float ox;<a name="line.21667"></a>
+<span class="sourceLineNo">21668</span>                                                ox = (float) (Math.sinh(ix));<a name="line.21668"></a>
+<span class="sourceLineNo">21669</span>                                                oaf32data[it.oIndex] = ox;<a name="line.21669"></a>
+<span class="sourceLineNo">21670</span>                                        }<a name="line.21670"></a>
+<span class="sourceLineNo">21671</span>                                } else {<a name="line.21671"></a>
+<span class="sourceLineNo">21672</span>                                        while (it.hasNext()) {<a name="line.21672"></a>
+<span class="sourceLineNo">21673</span>                                                final long ix = it.aLong;<a name="line.21673"></a>
+<span class="sourceLineNo">21674</span>                                                float ox;<a name="line.21674"></a>
+<span class="sourceLineNo">21675</span>                                                ox = (float) (Math.sinh(ix));<a name="line.21675"></a>
+<span class="sourceLineNo">21676</span>                                                oaf32data[it.oIndex] = ox;<a name="line.21676"></a>
+<span class="sourceLineNo">21677</span>                                        }<a name="line.21677"></a>
+<span class="sourceLineNo">21678</span>                                }<a name="line.21678"></a>
+<span class="sourceLineNo">21679</span>                        } else if (as == 1) {<a name="line.21679"></a>
+<span class="sourceLineNo">21680</span>                                if (it.isOutputDouble()) {<a name="line.21680"></a>
+<span class="sourceLineNo">21681</span>                                        while (it.hasNext()) {<a name="line.21681"></a>
+<span class="sourceLineNo">21682</span>                                                final double ix = it.aDouble;<a name="line.21682"></a>
+<span class="sourceLineNo">21683</span>                                                float ox;<a name="line.21683"></a>
+<span class="sourceLineNo">21684</span>                                                ox = (float) (Math.sinh(ix));<a name="line.21684"></a>
+<span class="sourceLineNo">21685</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21685"></a>
+<span class="sourceLineNo">21686</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.21686"></a>
+<span class="sourceLineNo">21687</span>                                                }<a name="line.21687"></a>
+<span class="sourceLineNo">21688</span>                                        }<a name="line.21688"></a>
+<span class="sourceLineNo">21689</span>                                } else {<a name="line.21689"></a>
+<span class="sourceLineNo">21690</span>                                        while (it.hasNext()) {<a name="line.21690"></a>
+<span class="sourceLineNo">21691</span>                                                final long ix = it.aLong;<a name="line.21691"></a>
+<span class="sourceLineNo">21692</span>                                                float ox;<a name="line.21692"></a>
+<span class="sourceLineNo">21693</span>                                                ox = (float) (Math.sinh(ix));<a name="line.21693"></a>
+<span class="sourceLineNo">21694</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21694"></a>
+<span class="sourceLineNo">21695</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.21695"></a>
+<span class="sourceLineNo">21696</span>                                                }<a name="line.21696"></a>
+<span class="sourceLineNo">21697</span>                                        }<a name="line.21697"></a>
+<span class="sourceLineNo">21698</span>                                }<a name="line.21698"></a>
+<span class="sourceLineNo">21699</span>                        } else {<a name="line.21699"></a>
+<span class="sourceLineNo">21700</span>                                if (it.isOutputDouble()) {<a name="line.21700"></a>
+<span class="sourceLineNo">21701</span>                                        while (it.hasNext()) {<a name="line.21701"></a>
+<span class="sourceLineNo">21702</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21702"></a>
+<span class="sourceLineNo">21703</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.21703"></a>
+<span class="sourceLineNo">21704</span>                                                        float ox;<a name="line.21704"></a>
+<span class="sourceLineNo">21705</span>                                                        ox = (float) (Math.sinh(ix));<a name="line.21705"></a>
+<span class="sourceLineNo">21706</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.21706"></a>
+<span class="sourceLineNo">21707</span>                                                }<a name="line.21707"></a>
+<span class="sourceLineNo">21708</span>                                        }<a name="line.21708"></a>
+<span class="sourceLineNo">21709</span>                                } else {<a name="line.21709"></a>
+<span class="sourceLineNo">21710</span>                                        while (it.hasNext()) {<a name="line.21710"></a>
+<span class="sourceLineNo">21711</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21711"></a>
+<span class="sourceLineNo">21712</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.21712"></a>
+<span class="sourceLineNo">21713</span>                                                        float ox;<a name="line.21713"></a>
+<span class="sourceLineNo">21714</span>                                                        ox = (float) (Math.sinh(ix));<a name="line.21714"></a>
+<span class="sourceLineNo">21715</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.21715"></a>
+<span class="sourceLineNo">21716</span>                                                }<a name="line.21716"></a>
+<span class="sourceLineNo">21717</span>                                        }<a name="line.21717"></a>
+<span class="sourceLineNo">21718</span>                                }<a name="line.21718"></a>
+<span class="sourceLineNo">21719</span>                        }<a name="line.21719"></a>
+<span class="sourceLineNo">21720</span>                        break;<a name="line.21720"></a>
+<span class="sourceLineNo">21721</span>                case Dataset.ARRAYFLOAT64:<a name="line.21721"></a>
+<span class="sourceLineNo">21722</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.21722"></a>
+<span class="sourceLineNo">21723</span>                        if (is == 1) {<a name="line.21723"></a>
+<span class="sourceLineNo">21724</span>                                if (it.isOutputDouble()) {<a name="line.21724"></a>
+<span class="sourceLineNo">21725</span>                                        while (it.hasNext()) {<a name="line.21725"></a>
+<span class="sourceLineNo">21726</span>                                                final double ix = it.aDouble;<a name="line.21726"></a>
+<span class="sourceLineNo">21727</span>                                                double ox;<a name="line.21727"></a>
+<span class="sourceLineNo">21728</span>                                                ox = (Math.sinh(ix));<a name="line.21728"></a>
+<span class="sourceLineNo">21729</span>                                                oaf64data[it.oIndex] = ox;<a name="line.21729"></a>
+<span class="sourceLineNo">21730</span>                                        }<a name="line.21730"></a>
+<span class="sourceLineNo">21731</span>                                } else {<a name="line.21731"></a>
+<span class="sourceLineNo">21732</span>                                        while (it.hasNext()) {<a name="line.21732"></a>
+<span class="sourceLineNo">21733</span>                                                final long ix = it.aLong;<a name="line.21733"></a>
+<span class="sourceLineNo">21734</span>                                                double ox;<a name="line.21734"></a>
+<span class="sourceLineNo">21735</span>                                                ox = (Math.sinh(ix));<a name="line.21735"></a>
+<span class="sourceLineNo">21736</span>                                                oaf64data[it.oIndex] = ox;<a name="line.21736"></a>
+<span class="sourceLineNo">21737</span>                                        }<a name="line.21737"></a>
+<span class="sourceLineNo">21738</span>                                }<a name="line.21738"></a>
+<span class="sourceLineNo">21739</span>                        } else if (as == 1) {<a name="line.21739"></a>
+<span class="sourceLineNo">21740</span>                                if (it.isOutputDouble()) {<a name="line.21740"></a>
+<span class="sourceLineNo">21741</span>                                        while (it.hasNext()) {<a name="line.21741"></a>
+<span class="sourceLineNo">21742</span>                                                final double ix = it.aDouble;<a name="line.21742"></a>
+<span class="sourceLineNo">21743</span>                                                double ox;<a name="line.21743"></a>
+<span class="sourceLineNo">21744</span>                                                ox = (Math.sinh(ix));<a name="line.21744"></a>
+<span class="sourceLineNo">21745</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21745"></a>
+<span class="sourceLineNo">21746</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.21746"></a>
+<span class="sourceLineNo">21747</span>                                                }<a name="line.21747"></a>
+<span class="sourceLineNo">21748</span>                                        }<a name="line.21748"></a>
+<span class="sourceLineNo">21749</span>                                } else {<a name="line.21749"></a>
+<span class="sourceLineNo">21750</span>                                        while (it.hasNext()) {<a name="line.21750"></a>
+<span class="sourceLineNo">21751</span>                                                final long ix = it.aLong;<a name="line.21751"></a>
+<span class="sourceLineNo">21752</span>                                                double ox;<a name="line.21752"></a>
+<span class="sourceLineNo">21753</span>                                                ox = (Math.sinh(ix));<a name="line.21753"></a>
+<span class="sourceLineNo">21754</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21754"></a>
+<span class="sourceLineNo">21755</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.21755"></a>
+<span class="sourceLineNo">21756</span>                                                }<a name="line.21756"></a>
+<span class="sourceLineNo">21757</span>                                        }<a name="line.21757"></a>
+<span class="sourceLineNo">21758</span>                                }<a name="line.21758"></a>
+<span class="sourceLineNo">21759</span>                        } else {<a name="line.21759"></a>
+<span class="sourceLineNo">21760</span>                                if (it.isOutputDouble()) {<a name="line.21760"></a>
+<span class="sourceLineNo">21761</span>                                        while (it.hasNext()) {<a name="line.21761"></a>
+<span class="sourceLineNo">21762</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21762"></a>
+<span class="sourceLineNo">21763</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.21763"></a>
+<span class="sourceLineNo">21764</span>                                                        double ox;<a name="line.21764"></a>
+<span class="sourceLineNo">21765</span>                                                        ox = (Math.sinh(ix));<a name="line.21765"></a>
+<span class="sourceLineNo">21766</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.21766"></a>
+<span class="sourceLineNo">21767</span>                                                }<a name="line.21767"></a>
+<span class="sourceLineNo">21768</span>                                        }<a name="line.21768"></a>
+<span class="sourceLineNo">21769</span>                                } else {<a name="line.21769"></a>
+<span class="sourceLineNo">21770</span>                                        while (it.hasNext()) {<a name="line.21770"></a>
+<span class="sourceLineNo">21771</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21771"></a>
+<span class="sourceLineNo">21772</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.21772"></a>
+<span class="sourceLineNo">21773</span>                                                        double ox;<a name="line.21773"></a>
+<span class="sourceLineNo">21774</span>                                                        ox = (Math.sinh(ix));<a name="line.21774"></a>
+<span class="sourceLineNo">21775</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.21775"></a>
+<span class="sourceLineNo">21776</span>                                                }<a name="line.21776"></a>
+<span class="sourceLineNo">21777</span>                                        }<a name="line.21777"></a>
+<span class="sourceLineNo">21778</span>                                }<a name="line.21778"></a>
+<span class="sourceLineNo">21779</span>                        }<a name="line.21779"></a>
+<span class="sourceLineNo">21780</span>                        break;<a name="line.21780"></a>
+<span class="sourceLineNo">21781</span>                case Dataset.COMPLEX64:<a name="line.21781"></a>
+<span class="sourceLineNo">21782</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.21782"></a>
+<span class="sourceLineNo">21783</span>                        if (!da.isComplex()) {<a name="line.21783"></a>
+<span class="sourceLineNo">21784</span>                                if (it.isOutputDouble()) {<a name="line.21784"></a>
+<span class="sourceLineNo">21785</span>                                        final double iy = 0;<a name="line.21785"></a>
+<span class="sourceLineNo">21786</span>                                        while (it.hasNext()) {<a name="line.21786"></a>
+<span class="sourceLineNo">21787</span>                                                final double ix = it.aDouble;<a name="line.21787"></a>
+<span class="sourceLineNo">21788</span>                                                float ox;<a name="line.21788"></a>
+<span class="sourceLineNo">21789</span>                                                float oy;<a name="line.21789"></a>
+<span class="sourceLineNo">21790</span>                                                ox = (float) (Math.sinh(ix)*Math.cos(iy));<a name="line.21790"></a>
+<span class="sourceLineNo">21791</span>                                                oy = (float) (Math.cosh(ix)*Math.sin(iy));<a name="line.21791"></a>
+<span class="sourceLineNo">21792</span>                                                oc64data[it.oIndex] = ox;<a name="line.21792"></a>
+<span class="sourceLineNo">21793</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.21793"></a>
+<span class="sourceLineNo">21794</span>                                        }<a name="line.21794"></a>
+<span class="sourceLineNo">21795</span>                                } else {<a name="line.21795"></a>
+<span class="sourceLineNo">21796</span>                                        final long iy = 0;<a name="line.21796"></a>
+<span class="sourceLineNo">21797</span>                                        while (it.hasNext()) {<a name="line.21797"></a>
+<span class="sourceLineNo">21798</span>                                                final long ix = it.aLong;<a name="line.21798"></a>
+<span class="sourceLineNo">21799</span>                                                float ox;<a name="line.21799"></a>
+<span class="sourceLineNo">21800</span>                                                float oy;<a name="line.21800"></a>
+<span class="sourceLineNo">21801</span>                                                ox = (float) toLong(Math.sinh(ix)*Math.cos(iy));<a name="line.21801"></a>
+<span class="sourceLineNo">21802</span>                                                oy = (float) toLong(Math.cosh(ix)*Math.sin(iy));<a name="line.21802"></a>
+<span class="sourceLineNo">21803</span>                                                oc64data[it.oIndex] = ox;<a name="line.21803"></a>
+<span class="sourceLineNo">21804</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.21804"></a>
+<span class="sourceLineNo">21805</span>                                        }<a name="line.21805"></a>
+<span class="sourceLineNo">21806</span>                                }<a name="line.21806"></a>
+<span class="sourceLineNo">21807</span>                        } else {<a name="line.21807"></a>
+<span class="sourceLineNo">21808</span>                                while (it.hasNext()) {<a name="line.21808"></a>
+<span class="sourceLineNo">21809</span>                                        final double ix = it.aDouble;<a name="line.21809"></a>
+<span class="sourceLineNo">21810</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.21810"></a>
+<span class="sourceLineNo">21811</span>                                        float ox;<a name="line.21811"></a>
+<span class="sourceLineNo">21812</span>                                        float oy;<a name="line.21812"></a>
+<span class="sourceLineNo">21813</span>                                        ox = (float) (Math.sinh(ix)*Math.cos(iy));<a name="line.21813"></a>
+<span class="sourceLineNo">21814</span>                                        oy = (float) (Math.cosh(ix)*Math.sin(iy));<a name="line.21814"></a>
+<span class="sourceLineNo">21815</span>                                        oc64data[it.oIndex] = ox;<a name="line.21815"></a>
+<span class="sourceLineNo">21816</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.21816"></a>
+<span class="sourceLineNo">21817</span>                                }<a name="line.21817"></a>
+<span class="sourceLineNo">21818</span>                        }<a name="line.21818"></a>
+<span class="sourceLineNo">21819</span>                        break;<a name="line.21819"></a>
+<span class="sourceLineNo">21820</span>                case Dataset.COMPLEX128:<a name="line.21820"></a>
+<span class="sourceLineNo">21821</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.21821"></a>
+<span class="sourceLineNo">21822</span>                        if (!da.isComplex()) {<a name="line.21822"></a>
+<span class="sourceLineNo">21823</span>                                if (it.isOutputDouble()) {<a name="line.21823"></a>
+<span class="sourceLineNo">21824</span>                                        final double iy = 0;<a name="line.21824"></a>
+<span class="sourceLineNo">21825</span>                                        while (it.hasNext()) {<a name="line.21825"></a>
+<span class="sourceLineNo">21826</span>                                                final double ix = it.aDouble;<a name="line.21826"></a>
+<span class="sourceLineNo">21827</span>                                                double ox;<a name="line.21827"></a>
+<span class="sourceLineNo">21828</span>                                                double oy;<a name="line.21828"></a>
+<span class="sourceLineNo">21829</span>                                                ox = (Math.sinh(ix)*Math.cos(iy));<a name="line.21829"></a>
+<span class="sourceLineNo">21830</span>                                                oy = (Math.cosh(ix)*Math.sin(iy));<a name="line.21830"></a>
+<span class="sourceLineNo">21831</span>                                                oc128data[it.oIndex] = ox;<a name="line.21831"></a>
+<span class="sourceLineNo">21832</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.21832"></a>
+<span class="sourceLineNo">21833</span>                                        }<a name="line.21833"></a>
+<span class="sourceLineNo">21834</span>                                } else {<a name="line.21834"></a>
+<span class="sourceLineNo">21835</span>                                        final long iy = 0;<a name="line.21835"></a>
+<span class="sourceLineNo">21836</span>                                        while (it.hasNext()) {<a name="line.21836"></a>
+<span class="sourceLineNo">21837</span>                                                final long ix = it.aLong;<a name="line.21837"></a>
+<span class="sourceLineNo">21838</span>                                                double ox;<a name="line.21838"></a>
+<span class="sourceLineNo">21839</span>                                                double oy;<a name="line.21839"></a>
+<span class="sourceLineNo">21840</span>                                                ox = (double) (Math.sinh(ix)*Math.cos(iy));<a name="line.21840"></a>
+<span class="sourceLineNo">21841</span>                                                oy = (double) (Math.cosh(ix)*Math.sin(iy));<a name="line.21841"></a>
+<span class="sourceLineNo">21842</span>                                                oc128data[it.oIndex] = ox;<a name="line.21842"></a>
+<span class="sourceLineNo">21843</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.21843"></a>
+<span class="sourceLineNo">21844</span>                                        }<a name="line.21844"></a>
+<span class="sourceLineNo">21845</span>                                }<a name="line.21845"></a>
+<span class="sourceLineNo">21846</span>                        } else {<a name="line.21846"></a>
+<span class="sourceLineNo">21847</span>                                while (it.hasNext()) {<a name="line.21847"></a>
+<span class="sourceLineNo">21848</span>                                        final double ix = it.aDouble;<a name="line.21848"></a>
+<span class="sourceLineNo">21849</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.21849"></a>
+<span class="sourceLineNo">21850</span>                                        double ox;<a name="line.21850"></a>
+<span class="sourceLineNo">21851</span>                                        double oy;<a name="line.21851"></a>
+<span class="sourceLineNo">21852</span>                                        ox = (Math.sinh(ix)*Math.cos(iy));<a name="line.21852"></a>
+<span class="sourceLineNo">21853</span>                                        oy = (Math.cosh(ix)*Math.sin(iy));<a name="line.21853"></a>
+<span class="sourceLineNo">21854</span>                                        oc128data[it.oIndex] = ox;<a name="line.21854"></a>
+<span class="sourceLineNo">21855</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.21855"></a>
+<span class="sourceLineNo">21856</span>                                }<a name="line.21856"></a>
+<span class="sourceLineNo">21857</span>                        }<a name="line.21857"></a>
+<span class="sourceLineNo">21858</span>                        break;<a name="line.21858"></a>
+<span class="sourceLineNo">21859</span>                default:<a name="line.21859"></a>
+<span class="sourceLineNo">21860</span>                        throw new IllegalArgumentException("sinh supports integer, compound integer, real, compound real, complex datasets only");<a name="line.21860"></a>
+<span class="sourceLineNo">21861</span>                }<a name="line.21861"></a>
+<span class="sourceLineNo">21862</span><a name="line.21862"></a>
+<span class="sourceLineNo">21863</span>                addFunctionName(result, "sinh");<a name="line.21863"></a>
+<span class="sourceLineNo">21864</span>                return result;<a name="line.21864"></a>
+<span class="sourceLineNo">21865</span>        }<a name="line.21865"></a>
+<span class="sourceLineNo">21866</span><a name="line.21866"></a>
+<span class="sourceLineNo">21867</span>        /**<a name="line.21867"></a>
+<span class="sourceLineNo">21868</span>         * cosh - evaluate the hyperbolic cosine function on each element of the dataset<a name="line.21868"></a>
+<span class="sourceLineNo">21869</span>         * @param a<a name="line.21869"></a>
+<span class="sourceLineNo">21870</span>         * @return dataset<a name="line.21870"></a>
+<span class="sourceLineNo">21871</span>         */<a name="line.21871"></a>
+<span class="sourceLineNo">21872</span>        public static Dataset cosh(final Object a) {<a name="line.21872"></a>
+<span class="sourceLineNo">21873</span>                return cosh(a, null);<a name="line.21873"></a>
+<span class="sourceLineNo">21874</span>        }<a name="line.21874"></a>
+<span class="sourceLineNo">21875</span><a name="line.21875"></a>
+<span class="sourceLineNo">21876</span>        /**<a name="line.21876"></a>
+<span class="sourceLineNo">21877</span>         * cosh - evaluate the hyperbolic cosine function on each element of the dataset<a name="line.21877"></a>
+<span class="sourceLineNo">21878</span>         * @param a<a name="line.21878"></a>
+<span class="sourceLineNo">21879</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.21879"></a>
+<span class="sourceLineNo">21880</span>         * @return dataset<a name="line.21880"></a>
+<span class="sourceLineNo">21881</span>         */<a name="line.21881"></a>
+<span class="sourceLineNo">21882</span>        public static Dataset cosh(final Object a, final Dataset o) {<a name="line.21882"></a>
+<span class="sourceLineNo">21883</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.21883"></a>
+<span class="sourceLineNo">21884</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.21884"></a>
+<span class="sourceLineNo">21885</span>                final Dataset result = it.getOutput();<a name="line.21885"></a>
+<span class="sourceLineNo">21886</span>                if (!result.isComplex()) {<a name="line.21886"></a>
+<span class="sourceLineNo">21887</span>                        if (da.isComplex()) {<a name="line.21887"></a>
+<span class="sourceLineNo">21888</span>                                da = da.getRealView();<a name="line.21888"></a>
+<span class="sourceLineNo">21889</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.21889"></a>
+<span class="sourceLineNo">21890</span>                        }<a name="line.21890"></a>
+<span class="sourceLineNo">21891</span>                }<a name="line.21891"></a>
+<span class="sourceLineNo">21892</span>                final int is = result.getElementsPerItem();<a name="line.21892"></a>
+<span class="sourceLineNo">21893</span>                final int as = da.getElementsPerItem();<a name="line.21893"></a>
+<span class="sourceLineNo">21894</span>                final int dt = result.getDType();<a name="line.21894"></a>
+<span class="sourceLineNo">21895</span><a name="line.21895"></a>
+<span class="sourceLineNo">21896</span>                switch(dt) {<a name="line.21896"></a>
+<span class="sourceLineNo">21897</span>                case Dataset.INT8:<a name="line.21897"></a>
+<span class="sourceLineNo">21898</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.21898"></a>
+<span class="sourceLineNo">21899</span>                        if (it.isOutputDouble()) {<a name="line.21899"></a>
+<span class="sourceLineNo">21900</span>                                while (it.hasNext()) {<a name="line.21900"></a>
+<span class="sourceLineNo">21901</span>                                        final double ix = it.aDouble;<a name="line.21901"></a>
+<span class="sourceLineNo">21902</span>                                        byte ox;<a name="line.21902"></a>
+<span class="sourceLineNo">21903</span>                                        ox = (byte) toLong(Math.cosh(ix));<a name="line.21903"></a>
+<span class="sourceLineNo">21904</span>                                        oi8data[it.oIndex] = ox;<a name="line.21904"></a>
+<span class="sourceLineNo">21905</span>                                }<a name="line.21905"></a>
+<span class="sourceLineNo">21906</span>                        } else {<a name="line.21906"></a>
+<span class="sourceLineNo">21907</span>                                while (it.hasNext()) {<a name="line.21907"></a>
+<span class="sourceLineNo">21908</span>                                        final long ix = it.aLong;<a name="line.21908"></a>
+<span class="sourceLineNo">21909</span>                                        byte ox;<a name="line.21909"></a>
+<span class="sourceLineNo">21910</span>                                        ox = (byte) toLong(Math.cosh(ix));<a name="line.21910"></a>
+<span class="sourceLineNo">21911</span>                                        oi8data[it.oIndex] = ox;<a name="line.21911"></a>
+<span class="sourceLineNo">21912</span>                                }<a name="line.21912"></a>
+<span class="sourceLineNo">21913</span>                        }<a name="line.21913"></a>
+<span class="sourceLineNo">21914</span>                        break;<a name="line.21914"></a>
+<span class="sourceLineNo">21915</span>                case Dataset.INT16:<a name="line.21915"></a>
+<span class="sourceLineNo">21916</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.21916"></a>
+<span class="sourceLineNo">21917</span>                        if (it.isOutputDouble()) {<a name="line.21917"></a>
+<span class="sourceLineNo">21918</span>                                while (it.hasNext()) {<a name="line.21918"></a>
+<span class="sourceLineNo">21919</span>                                        final double ix = it.aDouble;<a name="line.21919"></a>
+<span class="sourceLineNo">21920</span>                                        short ox;<a name="line.21920"></a>
+<span class="sourceLineNo">21921</span>                                        ox = (short) toLong(Math.cosh(ix));<a name="line.21921"></a>
+<span class="sourceLineNo">21922</span>                                        oi16data[it.oIndex] = ox;<a name="line.21922"></a>
+<span class="sourceLineNo">21923</span>                                }<a name="line.21923"></a>
+<span class="sourceLineNo">21924</span>                        } else {<a name="line.21924"></a>
+<span class="sourceLineNo">21925</span>                                while (it.hasNext()) {<a name="line.21925"></a>
+<span class="sourceLineNo">21926</span>                                        final long ix = it.aLong;<a name="line.21926"></a>
+<span class="sourceLineNo">21927</span>                                        short ox;<a name="line.21927"></a>
+<span class="sourceLineNo">21928</span>                                        ox = (short) toLong(Math.cosh(ix));<a name="line.21928"></a>
+<span class="sourceLineNo">21929</span>                                        oi16data[it.oIndex] = ox;<a name="line.21929"></a>
+<span class="sourceLineNo">21930</span>                                }<a name="line.21930"></a>
+<span class="sourceLineNo">21931</span>                        }<a name="line.21931"></a>
+<span class="sourceLineNo">21932</span>                        break;<a name="line.21932"></a>
+<span class="sourceLineNo">21933</span>                case Dataset.INT64:<a name="line.21933"></a>
+<span class="sourceLineNo">21934</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.21934"></a>
+<span class="sourceLineNo">21935</span>                        if (it.isOutputDouble()) {<a name="line.21935"></a>
+<span class="sourceLineNo">21936</span>                                while (it.hasNext()) {<a name="line.21936"></a>
+<span class="sourceLineNo">21937</span>                                        final double ix = it.aDouble;<a name="line.21937"></a>
+<span class="sourceLineNo">21938</span>                                        long ox;<a name="line.21938"></a>
+<span class="sourceLineNo">21939</span>                                        ox = toLong(Math.cosh(ix));<a name="line.21939"></a>
+<span class="sourceLineNo">21940</span>                                        oi64data[it.oIndex] = ox;<a name="line.21940"></a>
+<span class="sourceLineNo">21941</span>                                }<a name="line.21941"></a>
+<span class="sourceLineNo">21942</span>                        } else {<a name="line.21942"></a>
+<span class="sourceLineNo">21943</span>                                while (it.hasNext()) {<a name="line.21943"></a>
+<span class="sourceLineNo">21944</span>                                        final long ix = it.aLong;<a name="line.21944"></a>
+<span class="sourceLineNo">21945</span>                                        long ox;<a name="line.21945"></a>
+<span class="sourceLineNo">21946</span>                                        ox = toLong(Math.cosh(ix));<a name="line.21946"></a>
+<span class="sourceLineNo">21947</span>                                        oi64data[it.oIndex] = ox;<a name="line.21947"></a>
+<span class="sourceLineNo">21948</span>                                }<a name="line.21948"></a>
+<span class="sourceLineNo">21949</span>                        }<a name="line.21949"></a>
+<span class="sourceLineNo">21950</span>                        break;<a name="line.21950"></a>
+<span class="sourceLineNo">21951</span>                case Dataset.INT32:<a name="line.21951"></a>
+<span class="sourceLineNo">21952</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.21952"></a>
+<span class="sourceLineNo">21953</span>                        if (it.isOutputDouble()) {<a name="line.21953"></a>
+<span class="sourceLineNo">21954</span>                                while (it.hasNext()) {<a name="line.21954"></a>
+<span class="sourceLineNo">21955</span>                                        final double ix = it.aDouble;<a name="line.21955"></a>
+<span class="sourceLineNo">21956</span>                                        int ox;<a name="line.21956"></a>
+<span class="sourceLineNo">21957</span>                                        ox = (int) toLong(Math.cosh(ix));<a name="line.21957"></a>
+<span class="sourceLineNo">21958</span>                                        oi32data[it.oIndex] = ox;<a name="line.21958"></a>
+<span class="sourceLineNo">21959</span>                                }<a name="line.21959"></a>
+<span class="sourceLineNo">21960</span>                        } else {<a name="line.21960"></a>
+<span class="sourceLineNo">21961</span>                                while (it.hasNext()) {<a name="line.21961"></a>
+<span class="sourceLineNo">21962</span>                                        final long ix = it.aLong;<a name="line.21962"></a>
+<span class="sourceLineNo">21963</span>                                        int ox;<a name="line.21963"></a>
+<span class="sourceLineNo">21964</span>                                        ox = (int) toLong(Math.cosh(ix));<a name="line.21964"></a>
+<span class="sourceLineNo">21965</span>                                        oi32data[it.oIndex] = ox;<a name="line.21965"></a>
+<span class="sourceLineNo">21966</span>                                }<a name="line.21966"></a>
+<span class="sourceLineNo">21967</span>                        }<a name="line.21967"></a>
+<span class="sourceLineNo">21968</span>                        break;<a name="line.21968"></a>
+<span class="sourceLineNo">21969</span>                case Dataset.ARRAYINT8:<a name="line.21969"></a>
+<span class="sourceLineNo">21970</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.21970"></a>
+<span class="sourceLineNo">21971</span>                        if (is == 1) {<a name="line.21971"></a>
+<span class="sourceLineNo">21972</span>                                if (it.isOutputDouble()) {<a name="line.21972"></a>
+<span class="sourceLineNo">21973</span>                                        while (it.hasNext()) {<a name="line.21973"></a>
+<span class="sourceLineNo">21974</span>                                                final double ix = it.aDouble;<a name="line.21974"></a>
+<span class="sourceLineNo">21975</span>                                                byte ox;<a name="line.21975"></a>
+<span class="sourceLineNo">21976</span>                                                ox = (byte) toLong(Math.cosh(ix));<a name="line.21976"></a>
+<span class="sourceLineNo">21977</span>                                                oai8data[it.oIndex] = ox;<a name="line.21977"></a>
+<span class="sourceLineNo">21978</span>                                        }<a name="line.21978"></a>
+<span class="sourceLineNo">21979</span>                                } else {<a name="line.21979"></a>
+<span class="sourceLineNo">21980</span>                                        while (it.hasNext()) {<a name="line.21980"></a>
+<span class="sourceLineNo">21981</span>                                                final long ix = it.aLong;<a name="line.21981"></a>
+<span class="sourceLineNo">21982</span>                                                byte ox;<a name="line.21982"></a>
+<span class="sourceLineNo">21983</span>                                                ox = (byte) toLong(Math.cosh(ix));<a name="line.21983"></a>
+<span class="sourceLineNo">21984</span>                                                oai8data[it.oIndex] = ox;<a name="line.21984"></a>
+<span class="sourceLineNo">21985</span>                                        }<a name="line.21985"></a>
+<span class="sourceLineNo">21986</span>                                }<a name="line.21986"></a>
+<span class="sourceLineNo">21987</span>                        } else if (as == 1) {<a name="line.21987"></a>
+<span class="sourceLineNo">21988</span>                                if (it.isOutputDouble()) {<a name="line.21988"></a>
+<span class="sourceLineNo">21989</span>                                        while (it.hasNext()) {<a name="line.21989"></a>
+<span class="sourceLineNo">21990</span>                                                final double ix = it.aDouble;<a name="line.21990"></a>
+<span class="sourceLineNo">21991</span>                                                byte ox;<a name="line.21991"></a>
+<span class="sourceLineNo">21992</span>                                                ox = (byte) toLong(Math.cosh(ix));<a name="line.21992"></a>
+<span class="sourceLineNo">21993</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.21993"></a>
+<span class="sourceLineNo">21994</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.21994"></a>
+<span class="sourceLineNo">21995</span>                                                }<a name="line.21995"></a>
+<span class="sourceLineNo">21996</span>                                        }<a name="line.21996"></a>
+<span class="sourceLineNo">21997</span>                                } else {<a name="line.21997"></a>
+<span class="sourceLineNo">21998</span>                                        while (it.hasNext()) {<a name="line.21998"></a>
+<span class="sourceLineNo">21999</span>                                                final long ix = it.aLong;<a name="line.21999"></a>
+<span class="sourceLineNo">22000</span>                                                byte ox;<a name="line.22000"></a>
+<span class="sourceLineNo">22001</span>                                                ox = (byte) toLong(Math.cosh(ix));<a name="line.22001"></a>
+<span class="sourceLineNo">22002</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22002"></a>
+<span class="sourceLineNo">22003</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.22003"></a>
+<span class="sourceLineNo">22004</span>                                                }<a name="line.22004"></a>
+<span class="sourceLineNo">22005</span>                                        }<a name="line.22005"></a>
+<span class="sourceLineNo">22006</span>                                }<a name="line.22006"></a>
+<span class="sourceLineNo">22007</span>                        } else {<a name="line.22007"></a>
+<span class="sourceLineNo">22008</span>                                if (it.isOutputDouble()) {<a name="line.22008"></a>
+<span class="sourceLineNo">22009</span>                                        while (it.hasNext()) {<a name="line.22009"></a>
+<span class="sourceLineNo">22010</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22010"></a>
+<span class="sourceLineNo">22011</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.22011"></a>
+<span class="sourceLineNo">22012</span>                                                        byte ox;<a name="line.22012"></a>
+<span class="sourceLineNo">22013</span>                                                        ox = (byte) toLong(Math.cosh(ix));<a name="line.22013"></a>
+<span class="sourceLineNo">22014</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.22014"></a>
+<span class="sourceLineNo">22015</span>                                                }<a name="line.22015"></a>
+<span class="sourceLineNo">22016</span>                                        }<a name="line.22016"></a>
+<span class="sourceLineNo">22017</span>                                } else {<a name="line.22017"></a>
+<span class="sourceLineNo">22018</span>                                        while (it.hasNext()) {<a name="line.22018"></a>
+<span class="sourceLineNo">22019</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22019"></a>
+<span class="sourceLineNo">22020</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.22020"></a>
+<span class="sourceLineNo">22021</span>                                                        byte ox;<a name="line.22021"></a>
+<span class="sourceLineNo">22022</span>                                                        ox = (byte) toLong(Math.cosh(ix));<a name="line.22022"></a>
+<span class="sourceLineNo">22023</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.22023"></a>
+<span class="sourceLineNo">22024</span>                                                }<a name="line.22024"></a>
+<span class="sourceLineNo">22025</span>                                        }<a name="line.22025"></a>
+<span class="sourceLineNo">22026</span>                                }<a name="line.22026"></a>
+<span class="sourceLineNo">22027</span>                        }<a name="line.22027"></a>
+<span class="sourceLineNo">22028</span>                        break;<a name="line.22028"></a>
+<span class="sourceLineNo">22029</span>                case Dataset.ARRAYINT16:<a name="line.22029"></a>
+<span class="sourceLineNo">22030</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.22030"></a>
+<span class="sourceLineNo">22031</span>                        if (is == 1) {<a name="line.22031"></a>
+<span class="sourceLineNo">22032</span>                                if (it.isOutputDouble()) {<a name="line.22032"></a>
+<span class="sourceLineNo">22033</span>                                        while (it.hasNext()) {<a name="line.22033"></a>
+<span class="sourceLineNo">22034</span>                                                final double ix = it.aDouble;<a name="line.22034"></a>
+<span class="sourceLineNo">22035</span>                                                short ox;<a name="line.22035"></a>
+<span class="sourceLineNo">22036</span>                                                ox = (short) toLong(Math.cosh(ix));<a name="line.22036"></a>
+<span class="sourceLineNo">22037</span>                                                oai16data[it.oIndex] = ox;<a name="line.22037"></a>
+<span class="sourceLineNo">22038</span>                                        }<a name="line.22038"></a>
+<span class="sourceLineNo">22039</span>                                } else {<a name="line.22039"></a>
+<span class="sourceLineNo">22040</span>                                        while (it.hasNext()) {<a name="line.22040"></a>
+<span class="sourceLineNo">22041</span>                                                final long ix = it.aLong;<a name="line.22041"></a>
+<span class="sourceLineNo">22042</span>                                                short ox;<a name="line.22042"></a>
+<span class="sourceLineNo">22043</span>                                                ox = (short) toLong(Math.cosh(ix));<a name="line.22043"></a>
+<span class="sourceLineNo">22044</span>                                                oai16data[it.oIndex] = ox;<a name="line.22044"></a>
+<span class="sourceLineNo">22045</span>                                        }<a name="line.22045"></a>
+<span class="sourceLineNo">22046</span>                                }<a name="line.22046"></a>
+<span class="sourceLineNo">22047</span>                        } else if (as == 1) {<a name="line.22047"></a>
+<span class="sourceLineNo">22048</span>                                if (it.isOutputDouble()) {<a name="line.22048"></a>
+<span class="sourceLineNo">22049</span>                                        while (it.hasNext()) {<a name="line.22049"></a>
+<span class="sourceLineNo">22050</span>                                                final double ix = it.aDouble;<a name="line.22050"></a>
+<span class="sourceLineNo">22051</span>                                                short ox;<a name="line.22051"></a>
+<span class="sourceLineNo">22052</span>                                                ox = (short) toLong(Math.cosh(ix));<a name="line.22052"></a>
+<span class="sourceLineNo">22053</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22053"></a>
+<span class="sourceLineNo">22054</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.22054"></a>
+<span class="sourceLineNo">22055</span>                                                }<a name="line.22055"></a>
+<span class="sourceLineNo">22056</span>                                        }<a name="line.22056"></a>
+<span class="sourceLineNo">22057</span>                                } else {<a name="line.22057"></a>
+<span class="sourceLineNo">22058</span>                                        while (it.hasNext()) {<a name="line.22058"></a>
+<span class="sourceLineNo">22059</span>                                                final long ix = it.aLong;<a name="line.22059"></a>
+<span class="sourceLineNo">22060</span>                                                short ox;<a name="line.22060"></a>
+<span class="sourceLineNo">22061</span>                                                ox = (short) toLong(Math.cosh(ix));<a name="line.22061"></a>
+<span class="sourceLineNo">22062</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22062"></a>
+<span class="sourceLineNo">22063</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.22063"></a>
+<span class="sourceLineNo">22064</span>                                                }<a name="line.22064"></a>
+<span class="sourceLineNo">22065</span>                                        }<a name="line.22065"></a>
+<span class="sourceLineNo">22066</span>                                }<a name="line.22066"></a>
+<span class="sourceLineNo">22067</span>                        } else {<a name="line.22067"></a>
+<span class="sourceLineNo">22068</span>                                if (it.isOutputDouble()) {<a name="line.22068"></a>
+<span class="sourceLineNo">22069</span>                                        while (it.hasNext()) {<a name="line.22069"></a>
+<span class="sourceLineNo">22070</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22070"></a>
+<span class="sourceLineNo">22071</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.22071"></a>
+<span class="sourceLineNo">22072</span>                                                        short ox;<a name="line.22072"></a>
+<span class="sourceLineNo">22073</span>                                                        ox = (short) toLong(Math.cosh(ix));<a name="line.22073"></a>
+<span class="sourceLineNo">22074</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.22074"></a>
+<span class="sourceLineNo">22075</span>                                                }<a name="line.22075"></a>
+<span class="sourceLineNo">22076</span>                                        }<a name="line.22076"></a>
+<span class="sourceLineNo">22077</span>                                } else {<a name="line.22077"></a>
+<span class="sourceLineNo">22078</span>                                        while (it.hasNext()) {<a name="line.22078"></a>
+<span class="sourceLineNo">22079</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22079"></a>
+<span class="sourceLineNo">22080</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.22080"></a>
+<span class="sourceLineNo">22081</span>                                                        short ox;<a name="line.22081"></a>
+<span class="sourceLineNo">22082</span>                                                        ox = (short) toLong(Math.cosh(ix));<a name="line.22082"></a>
+<span class="sourceLineNo">22083</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.22083"></a>
+<span class="sourceLineNo">22084</span>                                                }<a name="line.22084"></a>
+<span class="sourceLineNo">22085</span>                                        }<a name="line.22085"></a>
+<span class="sourceLineNo">22086</span>                                }<a name="line.22086"></a>
+<span class="sourceLineNo">22087</span>                        }<a name="line.22087"></a>
+<span class="sourceLineNo">22088</span>                        break;<a name="line.22088"></a>
+<span class="sourceLineNo">22089</span>                case Dataset.ARRAYINT64:<a name="line.22089"></a>
+<span class="sourceLineNo">22090</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.22090"></a>
+<span class="sourceLineNo">22091</span>                        if (is == 1) {<a name="line.22091"></a>
+<span class="sourceLineNo">22092</span>                                if (it.isOutputDouble()) {<a name="line.22092"></a>
+<span class="sourceLineNo">22093</span>                                        while (it.hasNext()) {<a name="line.22093"></a>
+<span class="sourceLineNo">22094</span>                                                final double ix = it.aDouble;<a name="line.22094"></a>
+<span class="sourceLineNo">22095</span>                                                long ox;<a name="line.22095"></a>
+<span class="sourceLineNo">22096</span>                                                ox = toLong(Math.cosh(ix));<a name="line.22096"></a>
+<span class="sourceLineNo">22097</span>                                                oai64data[it.oIndex] = ox;<a name="line.22097"></a>
+<span class="sourceLineNo">22098</span>                                        }<a name="line.22098"></a>
+<span class="sourceLineNo">22099</span>                                } else {<a name="line.22099"></a>
+<span class="sourceLineNo">22100</span>                                        while (it.hasNext()) {<a name="line.22100"></a>
+<span class="sourceLineNo">22101</span>                                                final long ix = it.aLong;<a name="line.22101"></a>
+<span class="sourceLineNo">22102</span>                                                long ox;<a name="line.22102"></a>
+<span class="sourceLineNo">22103</span>                                                ox = toLong(Math.cosh(ix));<a name="line.22103"></a>
+<span class="sourceLineNo">22104</span>                                                oai64data[it.oIndex] = ox;<a name="line.22104"></a>
+<span class="sourceLineNo">22105</span>                                        }<a name="line.22105"></a>
+<span class="sourceLineNo">22106</span>                                }<a name="line.22106"></a>
+<span class="sourceLineNo">22107</span>                        } else if (as == 1) {<a name="line.22107"></a>
+<span class="sourceLineNo">22108</span>                                if (it.isOutputDouble()) {<a name="line.22108"></a>
+<span class="sourceLineNo">22109</span>                                        while (it.hasNext()) {<a name="line.22109"></a>
+<span class="sourceLineNo">22110</span>                                                final double ix = it.aDouble;<a name="line.22110"></a>
+<span class="sourceLineNo">22111</span>                                                long ox;<a name="line.22111"></a>
+<span class="sourceLineNo">22112</span>                                                ox = toLong(Math.cosh(ix));<a name="line.22112"></a>
+<span class="sourceLineNo">22113</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22113"></a>
+<span class="sourceLineNo">22114</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.22114"></a>
+<span class="sourceLineNo">22115</span>                                                }<a name="line.22115"></a>
+<span class="sourceLineNo">22116</span>                                        }<a name="line.22116"></a>
+<span class="sourceLineNo">22117</span>                                } else {<a name="line.22117"></a>
+<span class="sourceLineNo">22118</span>                                        while (it.hasNext()) {<a name="line.22118"></a>
+<span class="sourceLineNo">22119</span>                                                final long ix = it.aLong;<a name="line.22119"></a>
+<span class="sourceLineNo">22120</span>                                                long ox;<a name="line.22120"></a>
+<span class="sourceLineNo">22121</span>                                                ox = toLong(Math.cosh(ix));<a name="line.22121"></a>
+<span class="sourceLineNo">22122</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22122"></a>
+<span class="sourceLineNo">22123</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.22123"></a>
+<span class="sourceLineNo">22124</span>                                                }<a name="line.22124"></a>
+<span class="sourceLineNo">22125</span>                                        }<a name="line.22125"></a>
+<span class="sourceLineNo">22126</span>                                }<a name="line.22126"></a>
+<span class="sourceLineNo">22127</span>                        } else {<a name="line.22127"></a>
+<span class="sourceLineNo">22128</span>                                if (it.isOutputDouble()) {<a name="line.22128"></a>
+<span class="sourceLineNo">22129</span>                                        while (it.hasNext()) {<a name="line.22129"></a>
+<span class="sourceLineNo">22130</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22130"></a>
+<span class="sourceLineNo">22131</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.22131"></a>
+<span class="sourceLineNo">22132</span>                                                        long ox;<a name="line.22132"></a>
+<span class="sourceLineNo">22133</span>                                                        ox = toLong(Math.cosh(ix));<a name="line.22133"></a>
+<span class="sourceLineNo">22134</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.22134"></a>
+<span class="sourceLineNo">22135</span>                                                }<a name="line.22135"></a>
+<span class="sourceLineNo">22136</span>                                        }<a name="line.22136"></a>
+<span class="sourceLineNo">22137</span>                                } else {<a name="line.22137"></a>
+<span class="sourceLineNo">22138</span>                                        while (it.hasNext()) {<a name="line.22138"></a>
+<span class="sourceLineNo">22139</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22139"></a>
+<span class="sourceLineNo">22140</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.22140"></a>
+<span class="sourceLineNo">22141</span>                                                        long ox;<a name="line.22141"></a>
+<span class="sourceLineNo">22142</span>                                                        ox = toLong(Math.cosh(ix));<a name="line.22142"></a>
+<span class="sourceLineNo">22143</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.22143"></a>
+<span class="sourceLineNo">22144</span>                                                }<a name="line.22144"></a>
+<span class="sourceLineNo">22145</span>                                        }<a name="line.22145"></a>
+<span class="sourceLineNo">22146</span>                                }<a name="line.22146"></a>
+<span class="sourceLineNo">22147</span>                        }<a name="line.22147"></a>
+<span class="sourceLineNo">22148</span>                        break;<a name="line.22148"></a>
+<span class="sourceLineNo">22149</span>                case Dataset.ARRAYINT32:<a name="line.22149"></a>
+<span class="sourceLineNo">22150</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.22150"></a>
+<span class="sourceLineNo">22151</span>                        if (is == 1) {<a name="line.22151"></a>
+<span class="sourceLineNo">22152</span>                                if (it.isOutputDouble()) {<a name="line.22152"></a>
+<span class="sourceLineNo">22153</span>                                        while (it.hasNext()) {<a name="line.22153"></a>
+<span class="sourceLineNo">22154</span>                                                final double ix = it.aDouble;<a name="line.22154"></a>
+<span class="sourceLineNo">22155</span>                                                int ox;<a name="line.22155"></a>
+<span class="sourceLineNo">22156</span>                                                ox = (int) toLong(Math.cosh(ix));<a name="line.22156"></a>
+<span class="sourceLineNo">22157</span>                                                oai32data[it.oIndex] = ox;<a name="line.22157"></a>
+<span class="sourceLineNo">22158</span>                                        }<a name="line.22158"></a>
+<span class="sourceLineNo">22159</span>                                } else {<a name="line.22159"></a>
+<span class="sourceLineNo">22160</span>                                        while (it.hasNext()) {<a name="line.22160"></a>
+<span class="sourceLineNo">22161</span>                                                final long ix = it.aLong;<a name="line.22161"></a>
+<span class="sourceLineNo">22162</span>                                                int ox;<a name="line.22162"></a>
+<span class="sourceLineNo">22163</span>                                                ox = (int) toLong(Math.cosh(ix));<a name="line.22163"></a>
+<span class="sourceLineNo">22164</span>                                                oai32data[it.oIndex] = ox;<a name="line.22164"></a>
+<span class="sourceLineNo">22165</span>                                        }<a name="line.22165"></a>
+<span class="sourceLineNo">22166</span>                                }<a name="line.22166"></a>
+<span class="sourceLineNo">22167</span>                        } else if (as == 1) {<a name="line.22167"></a>
+<span class="sourceLineNo">22168</span>                                if (it.isOutputDouble()) {<a name="line.22168"></a>
+<span class="sourceLineNo">22169</span>                                        while (it.hasNext()) {<a name="line.22169"></a>
+<span class="sourceLineNo">22170</span>                                                final double ix = it.aDouble;<a name="line.22170"></a>
+<span class="sourceLineNo">22171</span>                                                int ox;<a name="line.22171"></a>
+<span class="sourceLineNo">22172</span>                                                ox = (int) toLong(Math.cosh(ix));<a name="line.22172"></a>
+<span class="sourceLineNo">22173</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22173"></a>
+<span class="sourceLineNo">22174</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.22174"></a>
+<span class="sourceLineNo">22175</span>                                                }<a name="line.22175"></a>
+<span class="sourceLineNo">22176</span>                                        }<a name="line.22176"></a>
+<span class="sourceLineNo">22177</span>                                } else {<a name="line.22177"></a>
+<span class="sourceLineNo">22178</span>                                        while (it.hasNext()) {<a name="line.22178"></a>
+<span class="sourceLineNo">22179</span>                                                final long ix = it.aLong;<a name="line.22179"></a>
+<span class="sourceLineNo">22180</span>                                                int ox;<a name="line.22180"></a>
+<span class="sourceLineNo">22181</span>                                                ox = (int) toLong(Math.cosh(ix));<a name="line.22181"></a>
+<span class="sourceLineNo">22182</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22182"></a>
+<span class="sourceLineNo">22183</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.22183"></a>
+<span class="sourceLineNo">22184</span>                                                }<a name="line.22184"></a>
+<span class="sourceLineNo">22185</span>                                        }<a name="line.22185"></a>
+<span class="sourceLineNo">22186</span>                                }<a name="line.22186"></a>
+<span class="sourceLineNo">22187</span>                        } else {<a name="line.22187"></a>
+<span class="sourceLineNo">22188</span>                                if (it.isOutputDouble()) {<a name="line.22188"></a>
+<span class="sourceLineNo">22189</span>                                        while (it.hasNext()) {<a name="line.22189"></a>
+<span class="sourceLineNo">22190</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22190"></a>
+<span class="sourceLineNo">22191</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.22191"></a>
+<span class="sourceLineNo">22192</span>                                                        int ox;<a name="line.22192"></a>
+<span class="sourceLineNo">22193</span>                                                        ox = (int) toLong(Math.cosh(ix));<a name="line.22193"></a>
+<span class="sourceLineNo">22194</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.22194"></a>
+<span class="sourceLineNo">22195</span>                                                }<a name="line.22195"></a>
+<span class="sourceLineNo">22196</span>                                        }<a name="line.22196"></a>
+<span class="sourceLineNo">22197</span>                                } else {<a name="line.22197"></a>
+<span class="sourceLineNo">22198</span>                                        while (it.hasNext()) {<a name="line.22198"></a>
+<span class="sourceLineNo">22199</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22199"></a>
+<span class="sourceLineNo">22200</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.22200"></a>
+<span class="sourceLineNo">22201</span>                                                        int ox;<a name="line.22201"></a>
+<span class="sourceLineNo">22202</span>                                                        ox = (int) toLong(Math.cosh(ix));<a name="line.22202"></a>
+<span class="sourceLineNo">22203</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.22203"></a>
+<span class="sourceLineNo">22204</span>                                                }<a name="line.22204"></a>
+<span class="sourceLineNo">22205</span>                                        }<a name="line.22205"></a>
+<span class="sourceLineNo">22206</span>                                }<a name="line.22206"></a>
+<span class="sourceLineNo">22207</span>                        }<a name="line.22207"></a>
+<span class="sourceLineNo">22208</span>                        break;<a name="line.22208"></a>
+<span class="sourceLineNo">22209</span>                case Dataset.FLOAT32:<a name="line.22209"></a>
+<span class="sourceLineNo">22210</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.22210"></a>
+<span class="sourceLineNo">22211</span>                        if (it.isOutputDouble()) {<a name="line.22211"></a>
+<span class="sourceLineNo">22212</span>                                while (it.hasNext()) {<a name="line.22212"></a>
+<span class="sourceLineNo">22213</span>                                        final double ix = it.aDouble;<a name="line.22213"></a>
+<span class="sourceLineNo">22214</span>                                        float ox;<a name="line.22214"></a>
+<span class="sourceLineNo">22215</span>                                        ox = (float) (Math.cosh(ix));<a name="line.22215"></a>
+<span class="sourceLineNo">22216</span>                                        of32data[it.oIndex] = ox;<a name="line.22216"></a>
+<span class="sourceLineNo">22217</span>                                }<a name="line.22217"></a>
+<span class="sourceLineNo">22218</span>                        } else {<a name="line.22218"></a>
+<span class="sourceLineNo">22219</span>                                while (it.hasNext()) {<a name="line.22219"></a>
+<span class="sourceLineNo">22220</span>                                        final long ix = it.aLong;<a name="line.22220"></a>
+<span class="sourceLineNo">22221</span>                                        float ox;<a name="line.22221"></a>
+<span class="sourceLineNo">22222</span>                                        ox = (float) (Math.cosh(ix));<a name="line.22222"></a>
+<span class="sourceLineNo">22223</span>                                        of32data[it.oIndex] = ox;<a name="line.22223"></a>
+<span class="sourceLineNo">22224</span>                                }<a name="line.22224"></a>
+<span class="sourceLineNo">22225</span>                        }<a name="line.22225"></a>
+<span class="sourceLineNo">22226</span>                        break;<a name="line.22226"></a>
+<span class="sourceLineNo">22227</span>                case Dataset.FLOAT64:<a name="line.22227"></a>
+<span class="sourceLineNo">22228</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.22228"></a>
+<span class="sourceLineNo">22229</span>                        if (it.isOutputDouble()) {<a name="line.22229"></a>
+<span class="sourceLineNo">22230</span>                                while (it.hasNext()) {<a name="line.22230"></a>
+<span class="sourceLineNo">22231</span>                                        final double ix = it.aDouble;<a name="line.22231"></a>
+<span class="sourceLineNo">22232</span>                                        double ox;<a name="line.22232"></a>
+<span class="sourceLineNo">22233</span>                                        ox = (Math.cosh(ix));<a name="line.22233"></a>
+<span class="sourceLineNo">22234</span>                                        of64data[it.oIndex] = ox;<a name="line.22234"></a>
+<span class="sourceLineNo">22235</span>                                }<a name="line.22235"></a>
+<span class="sourceLineNo">22236</span>                        } else {<a name="line.22236"></a>
+<span class="sourceLineNo">22237</span>                                while (it.hasNext()) {<a name="line.22237"></a>
+<span class="sourceLineNo">22238</span>                                        final long ix = it.aLong;<a name="line.22238"></a>
+<span class="sourceLineNo">22239</span>                                        double ox;<a name="line.22239"></a>
+<span class="sourceLineNo">22240</span>                                        ox = (Math.cosh(ix));<a name="line.22240"></a>
+<span class="sourceLineNo">22241</span>                                        of64data[it.oIndex] = ox;<a name="line.22241"></a>
+<span class="sourceLineNo">22242</span>                                }<a name="line.22242"></a>
+<span class="sourceLineNo">22243</span>                        }<a name="line.22243"></a>
+<span class="sourceLineNo">22244</span>                        break;<a name="line.22244"></a>
+<span class="sourceLineNo">22245</span>                case Dataset.ARRAYFLOAT32:<a name="line.22245"></a>
+<span class="sourceLineNo">22246</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.22246"></a>
+<span class="sourceLineNo">22247</span>                        if (is == 1) {<a name="line.22247"></a>
+<span class="sourceLineNo">22248</span>                                if (it.isOutputDouble()) {<a name="line.22248"></a>
+<span class="sourceLineNo">22249</span>                                        while (it.hasNext()) {<a name="line.22249"></a>
+<span class="sourceLineNo">22250</span>                                                final double ix = it.aDouble;<a name="line.22250"></a>
+<span class="sourceLineNo">22251</span>                                                float ox;<a name="line.22251"></a>
+<span class="sourceLineNo">22252</span>                                                ox = (float) (Math.cosh(ix));<a name="line.22252"></a>
+<span class="sourceLineNo">22253</span>                                                oaf32data[it.oIndex] = ox;<a name="line.22253"></a>
+<span class="sourceLineNo">22254</span>                                        }<a name="line.22254"></a>
+<span class="sourceLineNo">22255</span>                                } else {<a name="line.22255"></a>
+<span class="sourceLineNo">22256</span>                                        while (it.hasNext()) {<a name="line.22256"></a>
+<span class="sourceLineNo">22257</span>                                                final long ix = it.aLong;<a name="line.22257"></a>
+<span class="sourceLineNo">22258</span>                                                float ox;<a name="line.22258"></a>
+<span class="sourceLineNo">22259</span>                                                ox = (float) (Math.cosh(ix));<a name="line.22259"></a>
+<span class="sourceLineNo">22260</span>                                                oaf32data[it.oIndex] = ox;<a name="line.22260"></a>
+<span class="sourceLineNo">22261</span>                                        }<a name="line.22261"></a>
+<span class="sourceLineNo">22262</span>                                }<a name="line.22262"></a>
+<span class="sourceLineNo">22263</span>                        } else if (as == 1) {<a name="line.22263"></a>
+<span class="sourceLineNo">22264</span>                                if (it.isOutputDouble()) {<a name="line.22264"></a>
+<span class="sourceLineNo">22265</span>                                        while (it.hasNext()) {<a name="line.22265"></a>
+<span class="sourceLineNo">22266</span>                                                final double ix = it.aDouble;<a name="line.22266"></a>
+<span class="sourceLineNo">22267</span>                                                float ox;<a name="line.22267"></a>
+<span class="sourceLineNo">22268</span>                                                ox = (float) (Math.cosh(ix));<a name="line.22268"></a>
+<span class="sourceLineNo">22269</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22269"></a>
+<span class="sourceLineNo">22270</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.22270"></a>
+<span class="sourceLineNo">22271</span>                                                }<a name="line.22271"></a>
+<span class="sourceLineNo">22272</span>                                        }<a name="line.22272"></a>
+<span class="sourceLineNo">22273</span>                                } else {<a name="line.22273"></a>
+<span class="sourceLineNo">22274</span>                                        while (it.hasNext()) {<a name="line.22274"></a>
+<span class="sourceLineNo">22275</span>                                                final long ix = it.aLong;<a name="line.22275"></a>
+<span class="sourceLineNo">22276</span>                                                float ox;<a name="line.22276"></a>
+<span class="sourceLineNo">22277</span>                                                ox = (float) (Math.cosh(ix));<a name="line.22277"></a>
+<span class="sourceLineNo">22278</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22278"></a>
+<span class="sourceLineNo">22279</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.22279"></a>
+<span class="sourceLineNo">22280</span>                                                }<a name="line.22280"></a>
+<span class="sourceLineNo">22281</span>                                        }<a name="line.22281"></a>
+<span class="sourceLineNo">22282</span>                                }<a name="line.22282"></a>
+<span class="sourceLineNo">22283</span>                        } else {<a name="line.22283"></a>
+<span class="sourceLineNo">22284</span>                                if (it.isOutputDouble()) {<a name="line.22284"></a>
+<span class="sourceLineNo">22285</span>                                        while (it.hasNext()) {<a name="line.22285"></a>
+<span class="sourceLineNo">22286</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22286"></a>
+<span class="sourceLineNo">22287</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.22287"></a>
+<span class="sourceLineNo">22288</span>                                                        float ox;<a name="line.22288"></a>
+<span class="sourceLineNo">22289</span>                                                        ox = (float) (Math.cosh(ix));<a name="line.22289"></a>
+<span class="sourceLineNo">22290</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.22290"></a>
+<span class="sourceLineNo">22291</span>                                                }<a name="line.22291"></a>
+<span class="sourceLineNo">22292</span>                                        }<a name="line.22292"></a>
+<span class="sourceLineNo">22293</span>                                } else {<a name="line.22293"></a>
+<span class="sourceLineNo">22294</span>                                        while (it.hasNext()) {<a name="line.22294"></a>
+<span class="sourceLineNo">22295</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22295"></a>
+<span class="sourceLineNo">22296</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.22296"></a>
+<span class="sourceLineNo">22297</span>                                                        float ox;<a name="line.22297"></a>
+<span class="sourceLineNo">22298</span>                                                        ox = (float) (Math.cosh(ix));<a name="line.22298"></a>
+<span class="sourceLineNo">22299</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.22299"></a>
+<span class="sourceLineNo">22300</span>                                                }<a name="line.22300"></a>
+<span class="sourceLineNo">22301</span>                                        }<a name="line.22301"></a>
+<span class="sourceLineNo">22302</span>                                }<a name="line.22302"></a>
+<span class="sourceLineNo">22303</span>                        }<a name="line.22303"></a>
+<span class="sourceLineNo">22304</span>                        break;<a name="line.22304"></a>
+<span class="sourceLineNo">22305</span>                case Dataset.ARRAYFLOAT64:<a name="line.22305"></a>
+<span class="sourceLineNo">22306</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.22306"></a>
+<span class="sourceLineNo">22307</span>                        if (is == 1) {<a name="line.22307"></a>
+<span class="sourceLineNo">22308</span>                                if (it.isOutputDouble()) {<a name="line.22308"></a>
+<span class="sourceLineNo">22309</span>                                        while (it.hasNext()) {<a name="line.22309"></a>
+<span class="sourceLineNo">22310</span>                                                final double ix = it.aDouble;<a name="line.22310"></a>
+<span class="sourceLineNo">22311</span>                                                double ox;<a name="line.22311"></a>
+<span class="sourceLineNo">22312</span>                                                ox = (Math.cosh(ix));<a name="line.22312"></a>
+<span class="sourceLineNo">22313</span>                                                oaf64data[it.oIndex] = ox;<a name="line.22313"></a>
+<span class="sourceLineNo">22314</span>                                        }<a name="line.22314"></a>
+<span class="sourceLineNo">22315</span>                                } else {<a name="line.22315"></a>
+<span class="sourceLineNo">22316</span>                                        while (it.hasNext()) {<a name="line.22316"></a>
+<span class="sourceLineNo">22317</span>                                                final long ix = it.aLong;<a name="line.22317"></a>
+<span class="sourceLineNo">22318</span>                                                double ox;<a name="line.22318"></a>
+<span class="sourceLineNo">22319</span>                                                ox = (Math.cosh(ix));<a name="line.22319"></a>
+<span class="sourceLineNo">22320</span>                                                oaf64data[it.oIndex] = ox;<a name="line.22320"></a>
+<span class="sourceLineNo">22321</span>                                        }<a name="line.22321"></a>
+<span class="sourceLineNo">22322</span>                                }<a name="line.22322"></a>
+<span class="sourceLineNo">22323</span>                        } else if (as == 1) {<a name="line.22323"></a>
+<span class="sourceLineNo">22324</span>                                if (it.isOutputDouble()) {<a name="line.22324"></a>
+<span class="sourceLineNo">22325</span>                                        while (it.hasNext()) {<a name="line.22325"></a>
+<span class="sourceLineNo">22326</span>                                                final double ix = it.aDouble;<a name="line.22326"></a>
+<span class="sourceLineNo">22327</span>                                                double ox;<a name="line.22327"></a>
+<span class="sourceLineNo">22328</span>                                                ox = (Math.cosh(ix));<a name="line.22328"></a>
+<span class="sourceLineNo">22329</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22329"></a>
+<span class="sourceLineNo">22330</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.22330"></a>
+<span class="sourceLineNo">22331</span>                                                }<a name="line.22331"></a>
+<span class="sourceLineNo">22332</span>                                        }<a name="line.22332"></a>
+<span class="sourceLineNo">22333</span>                                } else {<a name="line.22333"></a>
+<span class="sourceLineNo">22334</span>                                        while (it.hasNext()) {<a name="line.22334"></a>
+<span class="sourceLineNo">22335</span>                                                final long ix = it.aLong;<a name="line.22335"></a>
+<span class="sourceLineNo">22336</span>                                                double ox;<a name="line.22336"></a>
+<span class="sourceLineNo">22337</span>                                                ox = (Math.cosh(ix));<a name="line.22337"></a>
+<span class="sourceLineNo">22338</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22338"></a>
+<span class="sourceLineNo">22339</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.22339"></a>
+<span class="sourceLineNo">22340</span>                                                }<a name="line.22340"></a>
+<span class="sourceLineNo">22341</span>                                        }<a name="line.22341"></a>
+<span class="sourceLineNo">22342</span>                                }<a name="line.22342"></a>
+<span class="sourceLineNo">22343</span>                        } else {<a name="line.22343"></a>
+<span class="sourceLineNo">22344</span>                                if (it.isOutputDouble()) {<a name="line.22344"></a>
+<span class="sourceLineNo">22345</span>                                        while (it.hasNext()) {<a name="line.22345"></a>
+<span class="sourceLineNo">22346</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22346"></a>
+<span class="sourceLineNo">22347</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.22347"></a>
+<span class="sourceLineNo">22348</span>                                                        double ox;<a name="line.22348"></a>
+<span class="sourceLineNo">22349</span>                                                        ox = (Math.cosh(ix));<a name="line.22349"></a>
+<span class="sourceLineNo">22350</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.22350"></a>
+<span class="sourceLineNo">22351</span>                                                }<a name="line.22351"></a>
+<span class="sourceLineNo">22352</span>                                        }<a name="line.22352"></a>
+<span class="sourceLineNo">22353</span>                                } else {<a name="line.22353"></a>
+<span class="sourceLineNo">22354</span>                                        while (it.hasNext()) {<a name="line.22354"></a>
+<span class="sourceLineNo">22355</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22355"></a>
+<span class="sourceLineNo">22356</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.22356"></a>
+<span class="sourceLineNo">22357</span>                                                        double ox;<a name="line.22357"></a>
+<span class="sourceLineNo">22358</span>                                                        ox = (Math.cosh(ix));<a name="line.22358"></a>
+<span class="sourceLineNo">22359</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.22359"></a>
+<span class="sourceLineNo">22360</span>                                                }<a name="line.22360"></a>
+<span class="sourceLineNo">22361</span>                                        }<a name="line.22361"></a>
+<span class="sourceLineNo">22362</span>                                }<a name="line.22362"></a>
+<span class="sourceLineNo">22363</span>                        }<a name="line.22363"></a>
+<span class="sourceLineNo">22364</span>                        break;<a name="line.22364"></a>
+<span class="sourceLineNo">22365</span>                case Dataset.COMPLEX64:<a name="line.22365"></a>
+<span class="sourceLineNo">22366</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.22366"></a>
+<span class="sourceLineNo">22367</span>                        if (!da.isComplex()) {<a name="line.22367"></a>
+<span class="sourceLineNo">22368</span>                                if (it.isOutputDouble()) {<a name="line.22368"></a>
+<span class="sourceLineNo">22369</span>                                        final double iy = 0;<a name="line.22369"></a>
+<span class="sourceLineNo">22370</span>                                        while (it.hasNext()) {<a name="line.22370"></a>
+<span class="sourceLineNo">22371</span>                                                final double ix = it.aDouble;<a name="line.22371"></a>
+<span class="sourceLineNo">22372</span>                                                float ox;<a name="line.22372"></a>
+<span class="sourceLineNo">22373</span>                                                float oy;<a name="line.22373"></a>
+<span class="sourceLineNo">22374</span>                                                ox = (float) (Math.cosh(ix)*Math.cos(iy));<a name="line.22374"></a>
+<span class="sourceLineNo">22375</span>                                                oy = (float) (Math.sinh(ix)*Math.sin(iy));<a name="line.22375"></a>
+<span class="sourceLineNo">22376</span>                                                oc64data[it.oIndex] = ox;<a name="line.22376"></a>
+<span class="sourceLineNo">22377</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.22377"></a>
+<span class="sourceLineNo">22378</span>                                        }<a name="line.22378"></a>
+<span class="sourceLineNo">22379</span>                                } else {<a name="line.22379"></a>
+<span class="sourceLineNo">22380</span>                                        final long iy = 0;<a name="line.22380"></a>
+<span class="sourceLineNo">22381</span>                                        while (it.hasNext()) {<a name="line.22381"></a>
+<span class="sourceLineNo">22382</span>                                                final long ix = it.aLong;<a name="line.22382"></a>
+<span class="sourceLineNo">22383</span>                                                float ox;<a name="line.22383"></a>
+<span class="sourceLineNo">22384</span>                                                float oy;<a name="line.22384"></a>
+<span class="sourceLineNo">22385</span>                                                ox = (float) toLong(Math.cosh(ix)*Math.cos(iy));<a name="line.22385"></a>
+<span class="sourceLineNo">22386</span>                                                oy = (float) toLong(Math.sinh(ix)*Math.sin(iy));<a name="line.22386"></a>
+<span class="sourceLineNo">22387</span>                                                oc64data[it.oIndex] = ox;<a name="line.22387"></a>
+<span class="sourceLineNo">22388</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.22388"></a>
+<span class="sourceLineNo">22389</span>                                        }<a name="line.22389"></a>
+<span class="sourceLineNo">22390</span>                                }<a name="line.22390"></a>
+<span class="sourceLineNo">22391</span>                        } else {<a name="line.22391"></a>
+<span class="sourceLineNo">22392</span>                                while (it.hasNext()) {<a name="line.22392"></a>
+<span class="sourceLineNo">22393</span>                                        final double ix = it.aDouble;<a name="line.22393"></a>
+<span class="sourceLineNo">22394</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.22394"></a>
+<span class="sourceLineNo">22395</span>                                        float ox;<a name="line.22395"></a>
+<span class="sourceLineNo">22396</span>                                        float oy;<a name="line.22396"></a>
+<span class="sourceLineNo">22397</span>                                        ox = (float) (Math.cosh(ix)*Math.cos(iy));<a name="line.22397"></a>
+<span class="sourceLineNo">22398</span>                                        oy = (float) (Math.sinh(ix)*Math.sin(iy));<a name="line.22398"></a>
+<span class="sourceLineNo">22399</span>                                        oc64data[it.oIndex] = ox;<a name="line.22399"></a>
+<span class="sourceLineNo">22400</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.22400"></a>
+<span class="sourceLineNo">22401</span>                                }<a name="line.22401"></a>
+<span class="sourceLineNo">22402</span>                        }<a name="line.22402"></a>
+<span class="sourceLineNo">22403</span>                        break;<a name="line.22403"></a>
+<span class="sourceLineNo">22404</span>                case Dataset.COMPLEX128:<a name="line.22404"></a>
+<span class="sourceLineNo">22405</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.22405"></a>
+<span class="sourceLineNo">22406</span>                        if (!da.isComplex()) {<a name="line.22406"></a>
+<span class="sourceLineNo">22407</span>                                if (it.isOutputDouble()) {<a name="line.22407"></a>
+<span class="sourceLineNo">22408</span>                                        final double iy = 0;<a name="line.22408"></a>
+<span class="sourceLineNo">22409</span>                                        while (it.hasNext()) {<a name="line.22409"></a>
+<span class="sourceLineNo">22410</span>                                                final double ix = it.aDouble;<a name="line.22410"></a>
+<span class="sourceLineNo">22411</span>                                                double ox;<a name="line.22411"></a>
+<span class="sourceLineNo">22412</span>                                                double oy;<a name="line.22412"></a>
+<span class="sourceLineNo">22413</span>                                                ox = (Math.cosh(ix)*Math.cos(iy));<a name="line.22413"></a>
+<span class="sourceLineNo">22414</span>                                                oy = (Math.sinh(ix)*Math.sin(iy));<a name="line.22414"></a>
+<span class="sourceLineNo">22415</span>                                                oc128data[it.oIndex] = ox;<a name="line.22415"></a>
+<span class="sourceLineNo">22416</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.22416"></a>
+<span class="sourceLineNo">22417</span>                                        }<a name="line.22417"></a>
+<span class="sourceLineNo">22418</span>                                } else {<a name="line.22418"></a>
+<span class="sourceLineNo">22419</span>                                        final long iy = 0;<a name="line.22419"></a>
+<span class="sourceLineNo">22420</span>                                        while (it.hasNext()) {<a name="line.22420"></a>
+<span class="sourceLineNo">22421</span>                                                final long ix = it.aLong;<a name="line.22421"></a>
+<span class="sourceLineNo">22422</span>                                                double ox;<a name="line.22422"></a>
+<span class="sourceLineNo">22423</span>                                                double oy;<a name="line.22423"></a>
+<span class="sourceLineNo">22424</span>                                                ox = (double) (Math.cosh(ix)*Math.cos(iy));<a name="line.22424"></a>
+<span class="sourceLineNo">22425</span>                                                oy = (double) (Math.sinh(ix)*Math.sin(iy));<a name="line.22425"></a>
+<span class="sourceLineNo">22426</span>                                                oc128data[it.oIndex] = ox;<a name="line.22426"></a>
+<span class="sourceLineNo">22427</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.22427"></a>
+<span class="sourceLineNo">22428</span>                                        }<a name="line.22428"></a>
+<span class="sourceLineNo">22429</span>                                }<a name="line.22429"></a>
+<span class="sourceLineNo">22430</span>                        } else {<a name="line.22430"></a>
+<span class="sourceLineNo">22431</span>                                while (it.hasNext()) {<a name="line.22431"></a>
+<span class="sourceLineNo">22432</span>                                        final double ix = it.aDouble;<a name="line.22432"></a>
+<span class="sourceLineNo">22433</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.22433"></a>
+<span class="sourceLineNo">22434</span>                                        double ox;<a name="line.22434"></a>
+<span class="sourceLineNo">22435</span>                                        double oy;<a name="line.22435"></a>
+<span class="sourceLineNo">22436</span>                                        ox = (Math.cosh(ix)*Math.cos(iy));<a name="line.22436"></a>
+<span class="sourceLineNo">22437</span>                                        oy = (Math.sinh(ix)*Math.sin(iy));<a name="line.22437"></a>
+<span class="sourceLineNo">22438</span>                                        oc128data[it.oIndex] = ox;<a name="line.22438"></a>
+<span class="sourceLineNo">22439</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.22439"></a>
+<span class="sourceLineNo">22440</span>                                }<a name="line.22440"></a>
+<span class="sourceLineNo">22441</span>                        }<a name="line.22441"></a>
+<span class="sourceLineNo">22442</span>                        break;<a name="line.22442"></a>
+<span class="sourceLineNo">22443</span>                default:<a name="line.22443"></a>
+<span class="sourceLineNo">22444</span>                        throw new IllegalArgumentException("cosh supports integer, compound integer, real, compound real, complex datasets only");<a name="line.22444"></a>
+<span class="sourceLineNo">22445</span>                }<a name="line.22445"></a>
+<span class="sourceLineNo">22446</span><a name="line.22446"></a>
+<span class="sourceLineNo">22447</span>                addFunctionName(result, "cosh");<a name="line.22447"></a>
+<span class="sourceLineNo">22448</span>                return result;<a name="line.22448"></a>
+<span class="sourceLineNo">22449</span>        }<a name="line.22449"></a>
+<span class="sourceLineNo">22450</span><a name="line.22450"></a>
+<span class="sourceLineNo">22451</span>        /**<a name="line.22451"></a>
+<span class="sourceLineNo">22452</span>         * tanh - evaluate the tangent hyperbolic function on each element of the dataset<a name="line.22452"></a>
+<span class="sourceLineNo">22453</span>         * @param a<a name="line.22453"></a>
+<span class="sourceLineNo">22454</span>         * @return dataset<a name="line.22454"></a>
+<span class="sourceLineNo">22455</span>         */<a name="line.22455"></a>
+<span class="sourceLineNo">22456</span>        public static Dataset tanh(final Object a) {<a name="line.22456"></a>
+<span class="sourceLineNo">22457</span>                return tanh(a, null);<a name="line.22457"></a>
+<span class="sourceLineNo">22458</span>        }<a name="line.22458"></a>
+<span class="sourceLineNo">22459</span><a name="line.22459"></a>
+<span class="sourceLineNo">22460</span>        /**<a name="line.22460"></a>
+<span class="sourceLineNo">22461</span>         * tanh - evaluate the tangent hyperbolic function on each element of the dataset<a name="line.22461"></a>
+<span class="sourceLineNo">22462</span>         * @param a<a name="line.22462"></a>
+<span class="sourceLineNo">22463</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.22463"></a>
+<span class="sourceLineNo">22464</span>         * @return dataset<a name="line.22464"></a>
+<span class="sourceLineNo">22465</span>         */<a name="line.22465"></a>
+<span class="sourceLineNo">22466</span>        public static Dataset tanh(final Object a, final Dataset o) {<a name="line.22466"></a>
+<span class="sourceLineNo">22467</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.22467"></a>
+<span class="sourceLineNo">22468</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.22468"></a>
+<span class="sourceLineNo">22469</span>                final Dataset result = it.getOutput();<a name="line.22469"></a>
+<span class="sourceLineNo">22470</span>                if (!result.isComplex()) {<a name="line.22470"></a>
+<span class="sourceLineNo">22471</span>                        if (da.isComplex()) {<a name="line.22471"></a>
+<span class="sourceLineNo">22472</span>                                da = da.getRealView();<a name="line.22472"></a>
+<span class="sourceLineNo">22473</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.22473"></a>
+<span class="sourceLineNo">22474</span>                        }<a name="line.22474"></a>
+<span class="sourceLineNo">22475</span>                }<a name="line.22475"></a>
+<span class="sourceLineNo">22476</span>                final int is = result.getElementsPerItem();<a name="line.22476"></a>
+<span class="sourceLineNo">22477</span>                final int as = da.getElementsPerItem();<a name="line.22477"></a>
+<span class="sourceLineNo">22478</span>                final int dt = result.getDType();<a name="line.22478"></a>
+<span class="sourceLineNo">22479</span><a name="line.22479"></a>
+<span class="sourceLineNo">22480</span>                switch(dt) {<a name="line.22480"></a>
+<span class="sourceLineNo">22481</span>                case Dataset.INT8:<a name="line.22481"></a>
+<span class="sourceLineNo">22482</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.22482"></a>
+<span class="sourceLineNo">22483</span>                        if (it.isOutputDouble()) {<a name="line.22483"></a>
+<span class="sourceLineNo">22484</span>                                while (it.hasNext()) {<a name="line.22484"></a>
+<span class="sourceLineNo">22485</span>                                        final double ix = it.aDouble;<a name="line.22485"></a>
+<span class="sourceLineNo">22486</span>                                        byte ox;<a name="line.22486"></a>
+<span class="sourceLineNo">22487</span>                                        ox = (byte) toLong(Math.tanh(ix));<a name="line.22487"></a>
+<span class="sourceLineNo">22488</span>                                        oi8data[it.oIndex] = ox;<a name="line.22488"></a>
+<span class="sourceLineNo">22489</span>                                }<a name="line.22489"></a>
+<span class="sourceLineNo">22490</span>                        } else {<a name="line.22490"></a>
+<span class="sourceLineNo">22491</span>                                while (it.hasNext()) {<a name="line.22491"></a>
+<span class="sourceLineNo">22492</span>                                        final long ix = it.aLong;<a name="line.22492"></a>
+<span class="sourceLineNo">22493</span>                                        byte ox;<a name="line.22493"></a>
+<span class="sourceLineNo">22494</span>                                        ox = (byte) toLong(Math.tanh(ix));<a name="line.22494"></a>
+<span class="sourceLineNo">22495</span>                                        oi8data[it.oIndex] = ox;<a name="line.22495"></a>
+<span class="sourceLineNo">22496</span>                                }<a name="line.22496"></a>
+<span class="sourceLineNo">22497</span>                        }<a name="line.22497"></a>
+<span class="sourceLineNo">22498</span>                        break;<a name="line.22498"></a>
+<span class="sourceLineNo">22499</span>                case Dataset.INT16:<a name="line.22499"></a>
+<span class="sourceLineNo">22500</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.22500"></a>
+<span class="sourceLineNo">22501</span>                        if (it.isOutputDouble()) {<a name="line.22501"></a>
+<span class="sourceLineNo">22502</span>                                while (it.hasNext()) {<a name="line.22502"></a>
+<span class="sourceLineNo">22503</span>                                        final double ix = it.aDouble;<a name="line.22503"></a>
+<span class="sourceLineNo">22504</span>                                        short ox;<a name="line.22504"></a>
+<span class="sourceLineNo">22505</span>                                        ox = (short) toLong(Math.tanh(ix));<a name="line.22505"></a>
+<span class="sourceLineNo">22506</span>                                        oi16data[it.oIndex] = ox;<a name="line.22506"></a>
+<span class="sourceLineNo">22507</span>                                }<a name="line.22507"></a>
+<span class="sourceLineNo">22508</span>                        } else {<a name="line.22508"></a>
+<span class="sourceLineNo">22509</span>                                while (it.hasNext()) {<a name="line.22509"></a>
+<span class="sourceLineNo">22510</span>                                        final long ix = it.aLong;<a name="line.22510"></a>
+<span class="sourceLineNo">22511</span>                                        short ox;<a name="line.22511"></a>
+<span class="sourceLineNo">22512</span>                                        ox = (short) toLong(Math.tanh(ix));<a name="line.22512"></a>
+<span class="sourceLineNo">22513</span>                                        oi16data[it.oIndex] = ox;<a name="line.22513"></a>
+<span class="sourceLineNo">22514</span>                                }<a name="line.22514"></a>
+<span class="sourceLineNo">22515</span>                        }<a name="line.22515"></a>
+<span class="sourceLineNo">22516</span>                        break;<a name="line.22516"></a>
+<span class="sourceLineNo">22517</span>                case Dataset.INT64:<a name="line.22517"></a>
+<span class="sourceLineNo">22518</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.22518"></a>
+<span class="sourceLineNo">22519</span>                        if (it.isOutputDouble()) {<a name="line.22519"></a>
+<span class="sourceLineNo">22520</span>                                while (it.hasNext()) {<a name="line.22520"></a>
+<span class="sourceLineNo">22521</span>                                        final double ix = it.aDouble;<a name="line.22521"></a>
+<span class="sourceLineNo">22522</span>                                        long ox;<a name="line.22522"></a>
+<span class="sourceLineNo">22523</span>                                        ox = toLong(Math.tanh(ix));<a name="line.22523"></a>
+<span class="sourceLineNo">22524</span>                                        oi64data[it.oIndex] = ox;<a name="line.22524"></a>
+<span class="sourceLineNo">22525</span>                                }<a name="line.22525"></a>
+<span class="sourceLineNo">22526</span>                        } else {<a name="line.22526"></a>
+<span class="sourceLineNo">22527</span>                                while (it.hasNext()) {<a name="line.22527"></a>
+<span class="sourceLineNo">22528</span>                                        final long ix = it.aLong;<a name="line.22528"></a>
+<span class="sourceLineNo">22529</span>                                        long ox;<a name="line.22529"></a>
+<span class="sourceLineNo">22530</span>                                        ox = toLong(Math.tanh(ix));<a name="line.22530"></a>
+<span class="sourceLineNo">22531</span>                                        oi64data[it.oIndex] = ox;<a name="line.22531"></a>
+<span class="sourceLineNo">22532</span>                                }<a name="line.22532"></a>
+<span class="sourceLineNo">22533</span>                        }<a name="line.22533"></a>
+<span class="sourceLineNo">22534</span>                        break;<a name="line.22534"></a>
+<span class="sourceLineNo">22535</span>                case Dataset.INT32:<a name="line.22535"></a>
+<span class="sourceLineNo">22536</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.22536"></a>
+<span class="sourceLineNo">22537</span>                        if (it.isOutputDouble()) {<a name="line.22537"></a>
+<span class="sourceLineNo">22538</span>                                while (it.hasNext()) {<a name="line.22538"></a>
+<span class="sourceLineNo">22539</span>                                        final double ix = it.aDouble;<a name="line.22539"></a>
+<span class="sourceLineNo">22540</span>                                        int ox;<a name="line.22540"></a>
+<span class="sourceLineNo">22541</span>                                        ox = (int) toLong(Math.tanh(ix));<a name="line.22541"></a>
+<span class="sourceLineNo">22542</span>                                        oi32data[it.oIndex] = ox;<a name="line.22542"></a>
+<span class="sourceLineNo">22543</span>                                }<a name="line.22543"></a>
+<span class="sourceLineNo">22544</span>                        } else {<a name="line.22544"></a>
+<span class="sourceLineNo">22545</span>                                while (it.hasNext()) {<a name="line.22545"></a>
+<span class="sourceLineNo">22546</span>                                        final long ix = it.aLong;<a name="line.22546"></a>
+<span class="sourceLineNo">22547</span>                                        int ox;<a name="line.22547"></a>
+<span class="sourceLineNo">22548</span>                                        ox = (int) toLong(Math.tanh(ix));<a name="line.22548"></a>
+<span class="sourceLineNo">22549</span>                                        oi32data[it.oIndex] = ox;<a name="line.22549"></a>
+<span class="sourceLineNo">22550</span>                                }<a name="line.22550"></a>
+<span class="sourceLineNo">22551</span>                        }<a name="line.22551"></a>
+<span class="sourceLineNo">22552</span>                        break;<a name="line.22552"></a>
+<span class="sourceLineNo">22553</span>                case Dataset.ARRAYINT8:<a name="line.22553"></a>
+<span class="sourceLineNo">22554</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.22554"></a>
+<span class="sourceLineNo">22555</span>                        if (is == 1) {<a name="line.22555"></a>
+<span class="sourceLineNo">22556</span>                                if (it.isOutputDouble()) {<a name="line.22556"></a>
+<span class="sourceLineNo">22557</span>                                        while (it.hasNext()) {<a name="line.22557"></a>
+<span class="sourceLineNo">22558</span>                                                final double ix = it.aDouble;<a name="line.22558"></a>
+<span class="sourceLineNo">22559</span>                                                byte ox;<a name="line.22559"></a>
+<span class="sourceLineNo">22560</span>                                                ox = (byte) toLong(Math.tanh(ix));<a name="line.22560"></a>
+<span class="sourceLineNo">22561</span>                                                oai8data[it.oIndex] = ox;<a name="line.22561"></a>
+<span class="sourceLineNo">22562</span>                                        }<a name="line.22562"></a>
+<span class="sourceLineNo">22563</span>                                } else {<a name="line.22563"></a>
+<span class="sourceLineNo">22564</span>                                        while (it.hasNext()) {<a name="line.22564"></a>
+<span class="sourceLineNo">22565</span>                                                final long ix = it.aLong;<a name="line.22565"></a>
+<span class="sourceLineNo">22566</span>                                                byte ox;<a name="line.22566"></a>
+<span class="sourceLineNo">22567</span>                                                ox = (byte) toLong(Math.tanh(ix));<a name="line.22567"></a>
+<span class="sourceLineNo">22568</span>                                                oai8data[it.oIndex] = ox;<a name="line.22568"></a>
+<span class="sourceLineNo">22569</span>                                        }<a name="line.22569"></a>
+<span class="sourceLineNo">22570</span>                                }<a name="line.22570"></a>
+<span class="sourceLineNo">22571</span>                        } else if (as == 1) {<a name="line.22571"></a>
+<span class="sourceLineNo">22572</span>                                if (it.isOutputDouble()) {<a name="line.22572"></a>
+<span class="sourceLineNo">22573</span>                                        while (it.hasNext()) {<a name="line.22573"></a>
+<span class="sourceLineNo">22574</span>                                                final double ix = it.aDouble;<a name="line.22574"></a>
+<span class="sourceLineNo">22575</span>                                                byte ox;<a name="line.22575"></a>
+<span class="sourceLineNo">22576</span>                                                ox = (byte) toLong(Math.tanh(ix));<a name="line.22576"></a>
+<span class="sourceLineNo">22577</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22577"></a>
+<span class="sourceLineNo">22578</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.22578"></a>
+<span class="sourceLineNo">22579</span>                                                }<a name="line.22579"></a>
+<span class="sourceLineNo">22580</span>                                        }<a name="line.22580"></a>
+<span class="sourceLineNo">22581</span>                                } else {<a name="line.22581"></a>
+<span class="sourceLineNo">22582</span>                                        while (it.hasNext()) {<a name="line.22582"></a>
+<span class="sourceLineNo">22583</span>                                                final long ix = it.aLong;<a name="line.22583"></a>
+<span class="sourceLineNo">22584</span>                                                byte ox;<a name="line.22584"></a>
+<span class="sourceLineNo">22585</span>                                                ox = (byte) toLong(Math.tanh(ix));<a name="line.22585"></a>
+<span class="sourceLineNo">22586</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22586"></a>
+<span class="sourceLineNo">22587</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.22587"></a>
+<span class="sourceLineNo">22588</span>                                                }<a name="line.22588"></a>
+<span class="sourceLineNo">22589</span>                                        }<a name="line.22589"></a>
+<span class="sourceLineNo">22590</span>                                }<a name="line.22590"></a>
+<span class="sourceLineNo">22591</span>                        } else {<a name="line.22591"></a>
+<span class="sourceLineNo">22592</span>                                if (it.isOutputDouble()) {<a name="line.22592"></a>
+<span class="sourceLineNo">22593</span>                                        while (it.hasNext()) {<a name="line.22593"></a>
+<span class="sourceLineNo">22594</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22594"></a>
+<span class="sourceLineNo">22595</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.22595"></a>
+<span class="sourceLineNo">22596</span>                                                        byte ox;<a name="line.22596"></a>
+<span class="sourceLineNo">22597</span>                                                        ox = (byte) toLong(Math.tanh(ix));<a name="line.22597"></a>
+<span class="sourceLineNo">22598</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.22598"></a>
+<span class="sourceLineNo">22599</span>                                                }<a name="line.22599"></a>
+<span class="sourceLineNo">22600</span>                                        }<a name="line.22600"></a>
+<span class="sourceLineNo">22601</span>                                } else {<a name="line.22601"></a>
+<span class="sourceLineNo">22602</span>                                        while (it.hasNext()) {<a name="line.22602"></a>
+<span class="sourceLineNo">22603</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22603"></a>
+<span class="sourceLineNo">22604</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.22604"></a>
+<span class="sourceLineNo">22605</span>                                                        byte ox;<a name="line.22605"></a>
+<span class="sourceLineNo">22606</span>                                                        ox = (byte) toLong(Math.tanh(ix));<a name="line.22606"></a>
+<span class="sourceLineNo">22607</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.22607"></a>
+<span class="sourceLineNo">22608</span>                                                }<a name="line.22608"></a>
+<span class="sourceLineNo">22609</span>                                        }<a name="line.22609"></a>
+<span class="sourceLineNo">22610</span>                                }<a name="line.22610"></a>
+<span class="sourceLineNo">22611</span>                        }<a name="line.22611"></a>
+<span class="sourceLineNo">22612</span>                        break;<a name="line.22612"></a>
+<span class="sourceLineNo">22613</span>                case Dataset.ARRAYINT16:<a name="line.22613"></a>
+<span class="sourceLineNo">22614</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.22614"></a>
+<span class="sourceLineNo">22615</span>                        if (is == 1) {<a name="line.22615"></a>
+<span class="sourceLineNo">22616</span>                                if (it.isOutputDouble()) {<a name="line.22616"></a>
+<span class="sourceLineNo">22617</span>                                        while (it.hasNext()) {<a name="line.22617"></a>
+<span class="sourceLineNo">22618</span>                                                final double ix = it.aDouble;<a name="line.22618"></a>
+<span class="sourceLineNo">22619</span>                                                short ox;<a name="line.22619"></a>
+<span class="sourceLineNo">22620</span>                                                ox = (short) toLong(Math.tanh(ix));<a name="line.22620"></a>
+<span class="sourceLineNo">22621</span>                                                oai16data[it.oIndex] = ox;<a name="line.22621"></a>
+<span class="sourceLineNo">22622</span>                                        }<a name="line.22622"></a>
+<span class="sourceLineNo">22623</span>                                } else {<a name="line.22623"></a>
+<span class="sourceLineNo">22624</span>                                        while (it.hasNext()) {<a name="line.22624"></a>
+<span class="sourceLineNo">22625</span>                                                final long ix = it.aLong;<a name="line.22625"></a>
+<span class="sourceLineNo">22626</span>                                                short ox;<a name="line.22626"></a>
+<span class="sourceLineNo">22627</span>                                                ox = (short) toLong(Math.tanh(ix));<a name="line.22627"></a>
+<span class="sourceLineNo">22628</span>                                                oai16data[it.oIndex] = ox;<a name="line.22628"></a>
+<span class="sourceLineNo">22629</span>                                        }<a name="line.22629"></a>
+<span class="sourceLineNo">22630</span>                                }<a name="line.22630"></a>
+<span class="sourceLineNo">22631</span>                        } else if (as == 1) {<a name="line.22631"></a>
+<span class="sourceLineNo">22632</span>                                if (it.isOutputDouble()) {<a name="line.22632"></a>
+<span class="sourceLineNo">22633</span>                                        while (it.hasNext()) {<a name="line.22633"></a>
+<span class="sourceLineNo">22634</span>                                                final double ix = it.aDouble;<a name="line.22634"></a>
+<span class="sourceLineNo">22635</span>                                                short ox;<a name="line.22635"></a>
+<span class="sourceLineNo">22636</span>                                                ox = (short) toLong(Math.tanh(ix));<a name="line.22636"></a>
+<span class="sourceLineNo">22637</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22637"></a>
+<span class="sourceLineNo">22638</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.22638"></a>
+<span class="sourceLineNo">22639</span>                                                }<a name="line.22639"></a>
+<span class="sourceLineNo">22640</span>                                        }<a name="line.22640"></a>
+<span class="sourceLineNo">22641</span>                                } else {<a name="line.22641"></a>
+<span class="sourceLineNo">22642</span>                                        while (it.hasNext()) {<a name="line.22642"></a>
+<span class="sourceLineNo">22643</span>                                                final long ix = it.aLong;<a name="line.22643"></a>
+<span class="sourceLineNo">22644</span>                                                short ox;<a name="line.22644"></a>
+<span class="sourceLineNo">22645</span>                                                ox = (short) toLong(Math.tanh(ix));<a name="line.22645"></a>
+<span class="sourceLineNo">22646</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22646"></a>
+<span class="sourceLineNo">22647</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.22647"></a>
+<span class="sourceLineNo">22648</span>                                                }<a name="line.22648"></a>
+<span class="sourceLineNo">22649</span>                                        }<a name="line.22649"></a>
+<span class="sourceLineNo">22650</span>                                }<a name="line.22650"></a>
+<span class="sourceLineNo">22651</span>                        } else {<a name="line.22651"></a>
+<span class="sourceLineNo">22652</span>                                if (it.isOutputDouble()) {<a name="line.22652"></a>
+<span class="sourceLineNo">22653</span>                                        while (it.hasNext()) {<a name="line.22653"></a>
+<span class="sourceLineNo">22654</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22654"></a>
+<span class="sourceLineNo">22655</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.22655"></a>
+<span class="sourceLineNo">22656</span>                                                        short ox;<a name="line.22656"></a>
+<span class="sourceLineNo">22657</span>                                                        ox = (short) toLong(Math.tanh(ix));<a name="line.22657"></a>
+<span class="sourceLineNo">22658</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.22658"></a>
+<span class="sourceLineNo">22659</span>                                                }<a name="line.22659"></a>
+<span class="sourceLineNo">22660</span>                                        }<a name="line.22660"></a>
+<span class="sourceLineNo">22661</span>                                } else {<a name="line.22661"></a>
+<span class="sourceLineNo">22662</span>                                        while (it.hasNext()) {<a name="line.22662"></a>
+<span class="sourceLineNo">22663</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22663"></a>
+<span class="sourceLineNo">22664</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.22664"></a>
+<span class="sourceLineNo">22665</span>                                                        short ox;<a name="line.22665"></a>
+<span class="sourceLineNo">22666</span>                                                        ox = (short) toLong(Math.tanh(ix));<a name="line.22666"></a>
+<span class="sourceLineNo">22667</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.22667"></a>
+<span class="sourceLineNo">22668</span>                                                }<a name="line.22668"></a>
+<span class="sourceLineNo">22669</span>                                        }<a name="line.22669"></a>
+<span class="sourceLineNo">22670</span>                                }<a name="line.22670"></a>
+<span class="sourceLineNo">22671</span>                        }<a name="line.22671"></a>
+<span class="sourceLineNo">22672</span>                        break;<a name="line.22672"></a>
+<span class="sourceLineNo">22673</span>                case Dataset.ARRAYINT64:<a name="line.22673"></a>
+<span class="sourceLineNo">22674</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.22674"></a>
+<span class="sourceLineNo">22675</span>                        if (is == 1) {<a name="line.22675"></a>
+<span class="sourceLineNo">22676</span>                                if (it.isOutputDouble()) {<a name="line.22676"></a>
+<span class="sourceLineNo">22677</span>                                        while (it.hasNext()) {<a name="line.22677"></a>
+<span class="sourceLineNo">22678</span>                                                final double ix = it.aDouble;<a name="line.22678"></a>
+<span class="sourceLineNo">22679</span>                                                long ox;<a name="line.22679"></a>
+<span class="sourceLineNo">22680</span>                                                ox = toLong(Math.tanh(ix));<a name="line.22680"></a>
+<span class="sourceLineNo">22681</span>                                                oai64data[it.oIndex] = ox;<a name="line.22681"></a>
+<span class="sourceLineNo">22682</span>                                        }<a name="line.22682"></a>
+<span class="sourceLineNo">22683</span>                                } else {<a name="line.22683"></a>
+<span class="sourceLineNo">22684</span>                                        while (it.hasNext()) {<a name="line.22684"></a>
+<span class="sourceLineNo">22685</span>                                                final long ix = it.aLong;<a name="line.22685"></a>
+<span class="sourceLineNo">22686</span>                                                long ox;<a name="line.22686"></a>
+<span class="sourceLineNo">22687</span>                                                ox = toLong(Math.tanh(ix));<a name="line.22687"></a>
+<span class="sourceLineNo">22688</span>                                                oai64data[it.oIndex] = ox;<a name="line.22688"></a>
+<span class="sourceLineNo">22689</span>                                        }<a name="line.22689"></a>
+<span class="sourceLineNo">22690</span>                                }<a name="line.22690"></a>
+<span class="sourceLineNo">22691</span>                        } else if (as == 1) {<a name="line.22691"></a>
+<span class="sourceLineNo">22692</span>                                if (it.isOutputDouble()) {<a name="line.22692"></a>
+<span class="sourceLineNo">22693</span>                                        while (it.hasNext()) {<a name="line.22693"></a>
+<span class="sourceLineNo">22694</span>                                                final double ix = it.aDouble;<a name="line.22694"></a>
+<span class="sourceLineNo">22695</span>                                                long ox;<a name="line.22695"></a>
+<span class="sourceLineNo">22696</span>                                                ox = toLong(Math.tanh(ix));<a name="line.22696"></a>
+<span class="sourceLineNo">22697</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22697"></a>
+<span class="sourceLineNo">22698</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.22698"></a>
+<span class="sourceLineNo">22699</span>                                                }<a name="line.22699"></a>
+<span class="sourceLineNo">22700</span>                                        }<a name="line.22700"></a>
+<span class="sourceLineNo">22701</span>                                } else {<a name="line.22701"></a>
+<span class="sourceLineNo">22702</span>                                        while (it.hasNext()) {<a name="line.22702"></a>
+<span class="sourceLineNo">22703</span>                                                final long ix = it.aLong;<a name="line.22703"></a>
+<span class="sourceLineNo">22704</span>                                                long ox;<a name="line.22704"></a>
+<span class="sourceLineNo">22705</span>                                                ox = toLong(Math.tanh(ix));<a name="line.22705"></a>
+<span class="sourceLineNo">22706</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22706"></a>
+<span class="sourceLineNo">22707</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.22707"></a>
+<span class="sourceLineNo">22708</span>                                                }<a name="line.22708"></a>
+<span class="sourceLineNo">22709</span>                                        }<a name="line.22709"></a>
+<span class="sourceLineNo">22710</span>                                }<a name="line.22710"></a>
+<span class="sourceLineNo">22711</span>                        } else {<a name="line.22711"></a>
+<span class="sourceLineNo">22712</span>                                if (it.isOutputDouble()) {<a name="line.22712"></a>
+<span class="sourceLineNo">22713</span>                                        while (it.hasNext()) {<a name="line.22713"></a>
+<span class="sourceLineNo">22714</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22714"></a>
+<span class="sourceLineNo">22715</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.22715"></a>
+<span class="sourceLineNo">22716</span>                                                        long ox;<a name="line.22716"></a>
+<span class="sourceLineNo">22717</span>                                                        ox = toLong(Math.tanh(ix));<a name="line.22717"></a>
+<span class="sourceLineNo">22718</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.22718"></a>
+<span class="sourceLineNo">22719</span>                                                }<a name="line.22719"></a>
+<span class="sourceLineNo">22720</span>                                        }<a name="line.22720"></a>
+<span class="sourceLineNo">22721</span>                                } else {<a name="line.22721"></a>
+<span class="sourceLineNo">22722</span>                                        while (it.hasNext()) {<a name="line.22722"></a>
+<span class="sourceLineNo">22723</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22723"></a>
+<span class="sourceLineNo">22724</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.22724"></a>
+<span class="sourceLineNo">22725</span>                                                        long ox;<a name="line.22725"></a>
+<span class="sourceLineNo">22726</span>                                                        ox = toLong(Math.tanh(ix));<a name="line.22726"></a>
+<span class="sourceLineNo">22727</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.22727"></a>
+<span class="sourceLineNo">22728</span>                                                }<a name="line.22728"></a>
+<span class="sourceLineNo">22729</span>                                        }<a name="line.22729"></a>
+<span class="sourceLineNo">22730</span>                                }<a name="line.22730"></a>
+<span class="sourceLineNo">22731</span>                        }<a name="line.22731"></a>
+<span class="sourceLineNo">22732</span>                        break;<a name="line.22732"></a>
+<span class="sourceLineNo">22733</span>                case Dataset.ARRAYINT32:<a name="line.22733"></a>
+<span class="sourceLineNo">22734</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.22734"></a>
+<span class="sourceLineNo">22735</span>                        if (is == 1) {<a name="line.22735"></a>
+<span class="sourceLineNo">22736</span>                                if (it.isOutputDouble()) {<a name="line.22736"></a>
+<span class="sourceLineNo">22737</span>                                        while (it.hasNext()) {<a name="line.22737"></a>
+<span class="sourceLineNo">22738</span>                                                final double ix = it.aDouble;<a name="line.22738"></a>
+<span class="sourceLineNo">22739</span>                                                int ox;<a name="line.22739"></a>
+<span class="sourceLineNo">22740</span>                                                ox = (int) toLong(Math.tanh(ix));<a name="line.22740"></a>
+<span class="sourceLineNo">22741</span>                                                oai32data[it.oIndex] = ox;<a name="line.22741"></a>
+<span class="sourceLineNo">22742</span>                                        }<a name="line.22742"></a>
+<span class="sourceLineNo">22743</span>                                } else {<a name="line.22743"></a>
+<span class="sourceLineNo">22744</span>                                        while (it.hasNext()) {<a name="line.22744"></a>
+<span class="sourceLineNo">22745</span>                                                final long ix = it.aLong;<a name="line.22745"></a>
+<span class="sourceLineNo">22746</span>                                                int ox;<a name="line.22746"></a>
+<span class="sourceLineNo">22747</span>                                                ox = (int) toLong(Math.tanh(ix));<a name="line.22747"></a>
+<span class="sourceLineNo">22748</span>                                                oai32data[it.oIndex] = ox;<a name="line.22748"></a>
+<span class="sourceLineNo">22749</span>                                        }<a name="line.22749"></a>
+<span class="sourceLineNo">22750</span>                                }<a name="line.22750"></a>
+<span class="sourceLineNo">22751</span>                        } else if (as == 1) {<a name="line.22751"></a>
+<span class="sourceLineNo">22752</span>                                if (it.isOutputDouble()) {<a name="line.22752"></a>
+<span class="sourceLineNo">22753</span>                                        while (it.hasNext()) {<a name="line.22753"></a>
+<span class="sourceLineNo">22754</span>                                                final double ix = it.aDouble;<a name="line.22754"></a>
+<span class="sourceLineNo">22755</span>                                                int ox;<a name="line.22755"></a>
+<span class="sourceLineNo">22756</span>                                                ox = (int) toLong(Math.tanh(ix));<a name="line.22756"></a>
+<span class="sourceLineNo">22757</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22757"></a>
+<span class="sourceLineNo">22758</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.22758"></a>
+<span class="sourceLineNo">22759</span>                                                }<a name="line.22759"></a>
+<span class="sourceLineNo">22760</span>                                        }<a name="line.22760"></a>
+<span class="sourceLineNo">22761</span>                                } else {<a name="line.22761"></a>
+<span class="sourceLineNo">22762</span>                                        while (it.hasNext()) {<a name="line.22762"></a>
+<span class="sourceLineNo">22763</span>                                                final long ix = it.aLong;<a name="line.22763"></a>
+<span class="sourceLineNo">22764</span>                                                int ox;<a name="line.22764"></a>
+<span class="sourceLineNo">22765</span>                                                ox = (int) toLong(Math.tanh(ix));<a name="line.22765"></a>
+<span class="sourceLineNo">22766</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22766"></a>
+<span class="sourceLineNo">22767</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.22767"></a>
+<span class="sourceLineNo">22768</span>                                                }<a name="line.22768"></a>
+<span class="sourceLineNo">22769</span>                                        }<a name="line.22769"></a>
+<span class="sourceLineNo">22770</span>                                }<a name="line.22770"></a>
+<span class="sourceLineNo">22771</span>                        } else {<a name="line.22771"></a>
+<span class="sourceLineNo">22772</span>                                if (it.isOutputDouble()) {<a name="line.22772"></a>
+<span class="sourceLineNo">22773</span>                                        while (it.hasNext()) {<a name="line.22773"></a>
+<span class="sourceLineNo">22774</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22774"></a>
+<span class="sourceLineNo">22775</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.22775"></a>
+<span class="sourceLineNo">22776</span>                                                        int ox;<a name="line.22776"></a>
+<span class="sourceLineNo">22777</span>                                                        ox = (int) toLong(Math.tanh(ix));<a name="line.22777"></a>
+<span class="sourceLineNo">22778</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.22778"></a>
+<span class="sourceLineNo">22779</span>                                                }<a name="line.22779"></a>
+<span class="sourceLineNo">22780</span>                                        }<a name="line.22780"></a>
+<span class="sourceLineNo">22781</span>                                } else {<a name="line.22781"></a>
+<span class="sourceLineNo">22782</span>                                        while (it.hasNext()) {<a name="line.22782"></a>
+<span class="sourceLineNo">22783</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22783"></a>
+<span class="sourceLineNo">22784</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.22784"></a>
+<span class="sourceLineNo">22785</span>                                                        int ox;<a name="line.22785"></a>
+<span class="sourceLineNo">22786</span>                                                        ox = (int) toLong(Math.tanh(ix));<a name="line.22786"></a>
+<span class="sourceLineNo">22787</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.22787"></a>
+<span class="sourceLineNo">22788</span>                                                }<a name="line.22788"></a>
+<span class="sourceLineNo">22789</span>                                        }<a name="line.22789"></a>
+<span class="sourceLineNo">22790</span>                                }<a name="line.22790"></a>
+<span class="sourceLineNo">22791</span>                        }<a name="line.22791"></a>
+<span class="sourceLineNo">22792</span>                        break;<a name="line.22792"></a>
+<span class="sourceLineNo">22793</span>                case Dataset.FLOAT32:<a name="line.22793"></a>
+<span class="sourceLineNo">22794</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.22794"></a>
+<span class="sourceLineNo">22795</span>                        if (it.isOutputDouble()) {<a name="line.22795"></a>
+<span class="sourceLineNo">22796</span>                                while (it.hasNext()) {<a name="line.22796"></a>
+<span class="sourceLineNo">22797</span>                                        final double ix = it.aDouble;<a name="line.22797"></a>
+<span class="sourceLineNo">22798</span>                                        float ox;<a name="line.22798"></a>
+<span class="sourceLineNo">22799</span>                                        ox = (float) (Math.tanh(ix));<a name="line.22799"></a>
+<span class="sourceLineNo">22800</span>                                        of32data[it.oIndex] = ox;<a name="line.22800"></a>
+<span class="sourceLineNo">22801</span>                                }<a name="line.22801"></a>
+<span class="sourceLineNo">22802</span>                        } else {<a name="line.22802"></a>
+<span class="sourceLineNo">22803</span>                                while (it.hasNext()) {<a name="line.22803"></a>
+<span class="sourceLineNo">22804</span>                                        final long ix = it.aLong;<a name="line.22804"></a>
+<span class="sourceLineNo">22805</span>                                        float ox;<a name="line.22805"></a>
+<span class="sourceLineNo">22806</span>                                        ox = (float) (Math.tanh(ix));<a name="line.22806"></a>
+<span class="sourceLineNo">22807</span>                                        of32data[it.oIndex] = ox;<a name="line.22807"></a>
+<span class="sourceLineNo">22808</span>                                }<a name="line.22808"></a>
+<span class="sourceLineNo">22809</span>                        }<a name="line.22809"></a>
+<span class="sourceLineNo">22810</span>                        break;<a name="line.22810"></a>
+<span class="sourceLineNo">22811</span>                case Dataset.FLOAT64:<a name="line.22811"></a>
+<span class="sourceLineNo">22812</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.22812"></a>
+<span class="sourceLineNo">22813</span>                        if (it.isOutputDouble()) {<a name="line.22813"></a>
+<span class="sourceLineNo">22814</span>                                while (it.hasNext()) {<a name="line.22814"></a>
+<span class="sourceLineNo">22815</span>                                        final double ix = it.aDouble;<a name="line.22815"></a>
+<span class="sourceLineNo">22816</span>                                        double ox;<a name="line.22816"></a>
+<span class="sourceLineNo">22817</span>                                        ox = (Math.tanh(ix));<a name="line.22817"></a>
+<span class="sourceLineNo">22818</span>                                        of64data[it.oIndex] = ox;<a name="line.22818"></a>
+<span class="sourceLineNo">22819</span>                                }<a name="line.22819"></a>
+<span class="sourceLineNo">22820</span>                        } else {<a name="line.22820"></a>
+<span class="sourceLineNo">22821</span>                                while (it.hasNext()) {<a name="line.22821"></a>
+<span class="sourceLineNo">22822</span>                                        final long ix = it.aLong;<a name="line.22822"></a>
+<span class="sourceLineNo">22823</span>                                        double ox;<a name="line.22823"></a>
+<span class="sourceLineNo">22824</span>                                        ox = (Math.tanh(ix));<a name="line.22824"></a>
+<span class="sourceLineNo">22825</span>                                        of64data[it.oIndex] = ox;<a name="line.22825"></a>
+<span class="sourceLineNo">22826</span>                                }<a name="line.22826"></a>
+<span class="sourceLineNo">22827</span>                        }<a name="line.22827"></a>
+<span class="sourceLineNo">22828</span>                        break;<a name="line.22828"></a>
+<span class="sourceLineNo">22829</span>                case Dataset.ARRAYFLOAT32:<a name="line.22829"></a>
+<span class="sourceLineNo">22830</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.22830"></a>
+<span class="sourceLineNo">22831</span>                        if (is == 1) {<a name="line.22831"></a>
+<span class="sourceLineNo">22832</span>                                if (it.isOutputDouble()) {<a name="line.22832"></a>
+<span class="sourceLineNo">22833</span>                                        while (it.hasNext()) {<a name="line.22833"></a>
+<span class="sourceLineNo">22834</span>                                                final double ix = it.aDouble;<a name="line.22834"></a>
+<span class="sourceLineNo">22835</span>                                                float ox;<a name="line.22835"></a>
+<span class="sourceLineNo">22836</span>                                                ox = (float) (Math.tanh(ix));<a name="line.22836"></a>
+<span class="sourceLineNo">22837</span>                                                oaf32data[it.oIndex] = ox;<a name="line.22837"></a>
+<span class="sourceLineNo">22838</span>                                        }<a name="line.22838"></a>
+<span class="sourceLineNo">22839</span>                                } else {<a name="line.22839"></a>
+<span class="sourceLineNo">22840</span>                                        while (it.hasNext()) {<a name="line.22840"></a>
+<span class="sourceLineNo">22841</span>                                                final long ix = it.aLong;<a name="line.22841"></a>
+<span class="sourceLineNo">22842</span>                                                float ox;<a name="line.22842"></a>
+<span class="sourceLineNo">22843</span>                                                ox = (float) (Math.tanh(ix));<a name="line.22843"></a>
+<span class="sourceLineNo">22844</span>                                                oaf32data[it.oIndex] = ox;<a name="line.22844"></a>
+<span class="sourceLineNo">22845</span>                                        }<a name="line.22845"></a>
+<span class="sourceLineNo">22846</span>                                }<a name="line.22846"></a>
+<span class="sourceLineNo">22847</span>                        } else if (as == 1) {<a name="line.22847"></a>
+<span class="sourceLineNo">22848</span>                                if (it.isOutputDouble()) {<a name="line.22848"></a>
+<span class="sourceLineNo">22849</span>                                        while (it.hasNext()) {<a name="line.22849"></a>
+<span class="sourceLineNo">22850</span>                                                final double ix = it.aDouble;<a name="line.22850"></a>
+<span class="sourceLineNo">22851</span>                                                float ox;<a name="line.22851"></a>
+<span class="sourceLineNo">22852</span>                                                ox = (float) (Math.tanh(ix));<a name="line.22852"></a>
+<span class="sourceLineNo">22853</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22853"></a>
+<span class="sourceLineNo">22854</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.22854"></a>
+<span class="sourceLineNo">22855</span>                                                }<a name="line.22855"></a>
+<span class="sourceLineNo">22856</span>                                        }<a name="line.22856"></a>
+<span class="sourceLineNo">22857</span>                                } else {<a name="line.22857"></a>
+<span class="sourceLineNo">22858</span>                                        while (it.hasNext()) {<a name="line.22858"></a>
+<span class="sourceLineNo">22859</span>                                                final long ix = it.aLong;<a name="line.22859"></a>
+<span class="sourceLineNo">22860</span>                                                float ox;<a name="line.22860"></a>
+<span class="sourceLineNo">22861</span>                                                ox = (float) (Math.tanh(ix));<a name="line.22861"></a>
+<span class="sourceLineNo">22862</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22862"></a>
+<span class="sourceLineNo">22863</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.22863"></a>
+<span class="sourceLineNo">22864</span>                                                }<a name="line.22864"></a>
+<span class="sourceLineNo">22865</span>                                        }<a name="line.22865"></a>
+<span class="sourceLineNo">22866</span>                                }<a name="line.22866"></a>
+<span class="sourceLineNo">22867</span>                        } else {<a name="line.22867"></a>
+<span class="sourceLineNo">22868</span>                                if (it.isOutputDouble()) {<a name="line.22868"></a>
+<span class="sourceLineNo">22869</span>                                        while (it.hasNext()) {<a name="line.22869"></a>
+<span class="sourceLineNo">22870</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22870"></a>
+<span class="sourceLineNo">22871</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.22871"></a>
+<span class="sourceLineNo">22872</span>                                                        float ox;<a name="line.22872"></a>
+<span class="sourceLineNo">22873</span>                                                        ox = (float) (Math.tanh(ix));<a name="line.22873"></a>
+<span class="sourceLineNo">22874</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.22874"></a>
+<span class="sourceLineNo">22875</span>                                                }<a name="line.22875"></a>
+<span class="sourceLineNo">22876</span>                                        }<a name="line.22876"></a>
+<span class="sourceLineNo">22877</span>                                } else {<a name="line.22877"></a>
+<span class="sourceLineNo">22878</span>                                        while (it.hasNext()) {<a name="line.22878"></a>
+<span class="sourceLineNo">22879</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22879"></a>
+<span class="sourceLineNo">22880</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.22880"></a>
+<span class="sourceLineNo">22881</span>                                                        float ox;<a name="line.22881"></a>
+<span class="sourceLineNo">22882</span>                                                        ox = (float) (Math.tanh(ix));<a name="line.22882"></a>
+<span class="sourceLineNo">22883</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.22883"></a>
+<span class="sourceLineNo">22884</span>                                                }<a name="line.22884"></a>
+<span class="sourceLineNo">22885</span>                                        }<a name="line.22885"></a>
+<span class="sourceLineNo">22886</span>                                }<a name="line.22886"></a>
+<span class="sourceLineNo">22887</span>                        }<a name="line.22887"></a>
+<span class="sourceLineNo">22888</span>                        break;<a name="line.22888"></a>
+<span class="sourceLineNo">22889</span>                case Dataset.ARRAYFLOAT64:<a name="line.22889"></a>
+<span class="sourceLineNo">22890</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.22890"></a>
+<span class="sourceLineNo">22891</span>                        if (is == 1) {<a name="line.22891"></a>
+<span class="sourceLineNo">22892</span>                                if (it.isOutputDouble()) {<a name="line.22892"></a>
+<span class="sourceLineNo">22893</span>                                        while (it.hasNext()) {<a name="line.22893"></a>
+<span class="sourceLineNo">22894</span>                                                final double ix = it.aDouble;<a name="line.22894"></a>
+<span class="sourceLineNo">22895</span>                                                double ox;<a name="line.22895"></a>
+<span class="sourceLineNo">22896</span>                                                ox = (Math.tanh(ix));<a name="line.22896"></a>
+<span class="sourceLineNo">22897</span>                                                oaf64data[it.oIndex] = ox;<a name="line.22897"></a>
+<span class="sourceLineNo">22898</span>                                        }<a name="line.22898"></a>
+<span class="sourceLineNo">22899</span>                                } else {<a name="line.22899"></a>
+<span class="sourceLineNo">22900</span>                                        while (it.hasNext()) {<a name="line.22900"></a>
+<span class="sourceLineNo">22901</span>                                                final long ix = it.aLong;<a name="line.22901"></a>
+<span class="sourceLineNo">22902</span>                                                double ox;<a name="line.22902"></a>
+<span class="sourceLineNo">22903</span>                                                ox = (Math.tanh(ix));<a name="line.22903"></a>
+<span class="sourceLineNo">22904</span>                                                oaf64data[it.oIndex] = ox;<a name="line.22904"></a>
+<span class="sourceLineNo">22905</span>                                        }<a name="line.22905"></a>
+<span class="sourceLineNo">22906</span>                                }<a name="line.22906"></a>
+<span class="sourceLineNo">22907</span>                        } else if (as == 1) {<a name="line.22907"></a>
+<span class="sourceLineNo">22908</span>                                if (it.isOutputDouble()) {<a name="line.22908"></a>
+<span class="sourceLineNo">22909</span>                                        while (it.hasNext()) {<a name="line.22909"></a>
+<span class="sourceLineNo">22910</span>                                                final double ix = it.aDouble;<a name="line.22910"></a>
+<span class="sourceLineNo">22911</span>                                                double ox;<a name="line.22911"></a>
+<span class="sourceLineNo">22912</span>                                                ox = (Math.tanh(ix));<a name="line.22912"></a>
+<span class="sourceLineNo">22913</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22913"></a>
+<span class="sourceLineNo">22914</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.22914"></a>
+<span class="sourceLineNo">22915</span>                                                }<a name="line.22915"></a>
+<span class="sourceLineNo">22916</span>                                        }<a name="line.22916"></a>
+<span class="sourceLineNo">22917</span>                                } else {<a name="line.22917"></a>
+<span class="sourceLineNo">22918</span>                                        while (it.hasNext()) {<a name="line.22918"></a>
+<span class="sourceLineNo">22919</span>                                                final long ix = it.aLong;<a name="line.22919"></a>
+<span class="sourceLineNo">22920</span>                                                double ox;<a name="line.22920"></a>
+<span class="sourceLineNo">22921</span>                                                ox = (Math.tanh(ix));<a name="line.22921"></a>
+<span class="sourceLineNo">22922</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22922"></a>
+<span class="sourceLineNo">22923</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.22923"></a>
+<span class="sourceLineNo">22924</span>                                                }<a name="line.22924"></a>
+<span class="sourceLineNo">22925</span>                                        }<a name="line.22925"></a>
+<span class="sourceLineNo">22926</span>                                }<a name="line.22926"></a>
+<span class="sourceLineNo">22927</span>                        } else {<a name="line.22927"></a>
+<span class="sourceLineNo">22928</span>                                if (it.isOutputDouble()) {<a name="line.22928"></a>
+<span class="sourceLineNo">22929</span>                                        while (it.hasNext()) {<a name="line.22929"></a>
+<span class="sourceLineNo">22930</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22930"></a>
+<span class="sourceLineNo">22931</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.22931"></a>
+<span class="sourceLineNo">22932</span>                                                        double ox;<a name="line.22932"></a>
+<span class="sourceLineNo">22933</span>                                                        ox = (Math.tanh(ix));<a name="line.22933"></a>
+<span class="sourceLineNo">22934</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.22934"></a>
+<span class="sourceLineNo">22935</span>                                                }<a name="line.22935"></a>
+<span class="sourceLineNo">22936</span>                                        }<a name="line.22936"></a>
+<span class="sourceLineNo">22937</span>                                } else {<a name="line.22937"></a>
+<span class="sourceLineNo">22938</span>                                        while (it.hasNext()) {<a name="line.22938"></a>
+<span class="sourceLineNo">22939</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.22939"></a>
+<span class="sourceLineNo">22940</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.22940"></a>
+<span class="sourceLineNo">22941</span>                                                        double ox;<a name="line.22941"></a>
+<span class="sourceLineNo">22942</span>                                                        ox = (Math.tanh(ix));<a name="line.22942"></a>
+<span class="sourceLineNo">22943</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.22943"></a>
+<span class="sourceLineNo">22944</span>                                                }<a name="line.22944"></a>
+<span class="sourceLineNo">22945</span>                                        }<a name="line.22945"></a>
+<span class="sourceLineNo">22946</span>                                }<a name="line.22946"></a>
+<span class="sourceLineNo">22947</span>                        }<a name="line.22947"></a>
+<span class="sourceLineNo">22948</span>                        break;<a name="line.22948"></a>
+<span class="sourceLineNo">22949</span>                case Dataset.COMPLEX64:<a name="line.22949"></a>
+<span class="sourceLineNo">22950</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.22950"></a>
+<span class="sourceLineNo">22951</span>                        if (!da.isComplex()) {<a name="line.22951"></a>
+<span class="sourceLineNo">22952</span>                                if (it.isOutputDouble()) {<a name="line.22952"></a>
+<span class="sourceLineNo">22953</span>                                        final double iy = 0;<a name="line.22953"></a>
+<span class="sourceLineNo">22954</span>                                        while (it.hasNext()) {<a name="line.22954"></a>
+<span class="sourceLineNo">22955</span>                                                final double ix = it.aDouble;<a name="line.22955"></a>
+<span class="sourceLineNo">22956</span>                                                float tx;<a name="line.22956"></a>
+<span class="sourceLineNo">22957</span>                                                float ty;<a name="line.22957"></a>
+<span class="sourceLineNo">22958</span>                                                float tf;<a name="line.22958"></a>
+<span class="sourceLineNo">22959</span>                                                float ox;<a name="line.22959"></a>
+<span class="sourceLineNo">22960</span>                                                float oy;<a name="line.22960"></a>
+<span class="sourceLineNo">22961</span>                                                tx = (float) (2.*ix);<a name="line.22961"></a>
+<span class="sourceLineNo">22962</span>                                                ty = (float) (2.*iy);<a name="line.22962"></a>
+<span class="sourceLineNo">22963</span>                                                tf = (float) (1./(Math.cos(tx)+Math.cosh(ty)));<a name="line.22963"></a>
+<span class="sourceLineNo">22964</span>                                                ox = (float) (tf*Math.sinh(tx));<a name="line.22964"></a>
+<span class="sourceLineNo">22965</span>                                                oy = (float) (tf*Math.sin(ty));<a name="line.22965"></a>
+<span class="sourceLineNo">22966</span>                                                oc64data[it.oIndex] = ox;<a name="line.22966"></a>
+<span class="sourceLineNo">22967</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.22967"></a>
+<span class="sourceLineNo">22968</span>                                        }<a name="line.22968"></a>
+<span class="sourceLineNo">22969</span>                                } else {<a name="line.22969"></a>
+<span class="sourceLineNo">22970</span>                                        final long iy = 0;<a name="line.22970"></a>
+<span class="sourceLineNo">22971</span>                                        while (it.hasNext()) {<a name="line.22971"></a>
+<span class="sourceLineNo">22972</span>                                                final long ix = it.aLong;<a name="line.22972"></a>
+<span class="sourceLineNo">22973</span>                                                float tx;<a name="line.22973"></a>
+<span class="sourceLineNo">22974</span>                                                float ty;<a name="line.22974"></a>
+<span class="sourceLineNo">22975</span>                                                float tf;<a name="line.22975"></a>
+<span class="sourceLineNo">22976</span>                                                float ox;<a name="line.22976"></a>
+<span class="sourceLineNo">22977</span>                                                float oy;<a name="line.22977"></a>
+<span class="sourceLineNo">22978</span>                                                tx = (float) toLong(2.*ix);<a name="line.22978"></a>
+<span class="sourceLineNo">22979</span>                                                ty = (float) toLong(2.*iy);<a name="line.22979"></a>
+<span class="sourceLineNo">22980</span>                                                tf = (float) toLong(1./(Math.cos(tx)+Math.cosh(ty)));<a name="line.22980"></a>
+<span class="sourceLineNo">22981</span>                                                ox = (float) toLong(tf*Math.sinh(tx));<a name="line.22981"></a>
+<span class="sourceLineNo">22982</span>                                                oy = (float) toLong(tf*Math.sin(ty));<a name="line.22982"></a>
+<span class="sourceLineNo">22983</span>                                                oc64data[it.oIndex] = ox;<a name="line.22983"></a>
+<span class="sourceLineNo">22984</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.22984"></a>
+<span class="sourceLineNo">22985</span>                                        }<a name="line.22985"></a>
+<span class="sourceLineNo">22986</span>                                }<a name="line.22986"></a>
+<span class="sourceLineNo">22987</span>                        } else {<a name="line.22987"></a>
+<span class="sourceLineNo">22988</span>                                while (it.hasNext()) {<a name="line.22988"></a>
+<span class="sourceLineNo">22989</span>                                        final double ix = it.aDouble;<a name="line.22989"></a>
+<span class="sourceLineNo">22990</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.22990"></a>
+<span class="sourceLineNo">22991</span>                                        float tx;<a name="line.22991"></a>
+<span class="sourceLineNo">22992</span>                                        float ty;<a name="line.22992"></a>
+<span class="sourceLineNo">22993</span>                                        float tf;<a name="line.22993"></a>
+<span class="sourceLineNo">22994</span>                                        float ox;<a name="line.22994"></a>
+<span class="sourceLineNo">22995</span>                                        float oy;<a name="line.22995"></a>
+<span class="sourceLineNo">22996</span>                                        tx = (float) (2.*ix);<a name="line.22996"></a>
+<span class="sourceLineNo">22997</span>                                        ty = (float) (2.*iy);<a name="line.22997"></a>
+<span class="sourceLineNo">22998</span>                                        tf = (float) (1./(Math.cos(tx)+Math.cosh(ty)));<a name="line.22998"></a>
+<span class="sourceLineNo">22999</span>                                        ox = (float) (tf*Math.sinh(tx));<a name="line.22999"></a>
+<span class="sourceLineNo">23000</span>                                        oy = (float) (tf*Math.sin(ty));<a name="line.23000"></a>
+<span class="sourceLineNo">23001</span>                                        oc64data[it.oIndex] = ox;<a name="line.23001"></a>
+<span class="sourceLineNo">23002</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.23002"></a>
+<span class="sourceLineNo">23003</span>                                }<a name="line.23003"></a>
+<span class="sourceLineNo">23004</span>                        }<a name="line.23004"></a>
+<span class="sourceLineNo">23005</span>                        break;<a name="line.23005"></a>
+<span class="sourceLineNo">23006</span>                case Dataset.COMPLEX128:<a name="line.23006"></a>
+<span class="sourceLineNo">23007</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.23007"></a>
+<span class="sourceLineNo">23008</span>                        if (!da.isComplex()) {<a name="line.23008"></a>
+<span class="sourceLineNo">23009</span>                                if (it.isOutputDouble()) {<a name="line.23009"></a>
+<span class="sourceLineNo">23010</span>                                        final double iy = 0;<a name="line.23010"></a>
+<span class="sourceLineNo">23011</span>                                        while (it.hasNext()) {<a name="line.23011"></a>
+<span class="sourceLineNo">23012</span>                                                final double ix = it.aDouble;<a name="line.23012"></a>
+<span class="sourceLineNo">23013</span>                                                double tx;<a name="line.23013"></a>
+<span class="sourceLineNo">23014</span>                                                double ty;<a name="line.23014"></a>
+<span class="sourceLineNo">23015</span>                                                double tf;<a name="line.23015"></a>
+<span class="sourceLineNo">23016</span>                                                double ox;<a name="line.23016"></a>
+<span class="sourceLineNo">23017</span>                                                double oy;<a name="line.23017"></a>
+<span class="sourceLineNo">23018</span>                                                tx = (2.*ix);<a name="line.23018"></a>
+<span class="sourceLineNo">23019</span>                                                ty = (2.*iy);<a name="line.23019"></a>
+<span class="sourceLineNo">23020</span>                                                tf = (1./(Math.cos(tx)+Math.cosh(ty)));<a name="line.23020"></a>
+<span class="sourceLineNo">23021</span>                                                ox = (tf*Math.sinh(tx));<a name="line.23021"></a>
+<span class="sourceLineNo">23022</span>                                                oy = (tf*Math.sin(ty));<a name="line.23022"></a>
+<span class="sourceLineNo">23023</span>                                                oc128data[it.oIndex] = ox;<a name="line.23023"></a>
+<span class="sourceLineNo">23024</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.23024"></a>
+<span class="sourceLineNo">23025</span>                                        }<a name="line.23025"></a>
+<span class="sourceLineNo">23026</span>                                } else {<a name="line.23026"></a>
+<span class="sourceLineNo">23027</span>                                        final long iy = 0;<a name="line.23027"></a>
+<span class="sourceLineNo">23028</span>                                        while (it.hasNext()) {<a name="line.23028"></a>
+<span class="sourceLineNo">23029</span>                                                final long ix = it.aLong;<a name="line.23029"></a>
+<span class="sourceLineNo">23030</span>                                                double tx;<a name="line.23030"></a>
+<span class="sourceLineNo">23031</span>                                                double ty;<a name="line.23031"></a>
+<span class="sourceLineNo">23032</span>                                                double tf;<a name="line.23032"></a>
+<span class="sourceLineNo">23033</span>                                                double ox;<a name="line.23033"></a>
+<span class="sourceLineNo">23034</span>                                                double oy;<a name="line.23034"></a>
+<span class="sourceLineNo">23035</span>                                                tx = (2.*ix);<a name="line.23035"></a>
+<span class="sourceLineNo">23036</span>                                                ty = (2.*iy);<a name="line.23036"></a>
+<span class="sourceLineNo">23037</span>                                                tf = (double) (1./(Math.cos(tx)+Math.cosh(ty)));<a name="line.23037"></a>
+<span class="sourceLineNo">23038</span>                                                ox = (double) (tf*Math.sinh(tx));<a name="line.23038"></a>
+<span class="sourceLineNo">23039</span>                                                oy = (double) (tf*Math.sin(ty));<a name="line.23039"></a>
+<span class="sourceLineNo">23040</span>                                                oc128data[it.oIndex] = ox;<a name="line.23040"></a>
+<span class="sourceLineNo">23041</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.23041"></a>
+<span class="sourceLineNo">23042</span>                                        }<a name="line.23042"></a>
+<span class="sourceLineNo">23043</span>                                }<a name="line.23043"></a>
+<span class="sourceLineNo">23044</span>                        } else {<a name="line.23044"></a>
+<span class="sourceLineNo">23045</span>                                while (it.hasNext()) {<a name="line.23045"></a>
+<span class="sourceLineNo">23046</span>                                        final double ix = it.aDouble;<a name="line.23046"></a>
+<span class="sourceLineNo">23047</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.23047"></a>
+<span class="sourceLineNo">23048</span>                                        double tx;<a name="line.23048"></a>
+<span class="sourceLineNo">23049</span>                                        double ty;<a name="line.23049"></a>
+<span class="sourceLineNo">23050</span>                                        double tf;<a name="line.23050"></a>
+<span class="sourceLineNo">23051</span>                                        double ox;<a name="line.23051"></a>
+<span class="sourceLineNo">23052</span>                                        double oy;<a name="line.23052"></a>
+<span class="sourceLineNo">23053</span>                                        tx = (2.*ix);<a name="line.23053"></a>
+<span class="sourceLineNo">23054</span>                                        ty = (2.*iy);<a name="line.23054"></a>
+<span class="sourceLineNo">23055</span>                                        tf = (1./(Math.cos(tx)+Math.cosh(ty)));<a name="line.23055"></a>
+<span class="sourceLineNo">23056</span>                                        ox = (tf*Math.sinh(tx));<a name="line.23056"></a>
+<span class="sourceLineNo">23057</span>                                        oy = (tf*Math.sin(ty));<a name="line.23057"></a>
+<span class="sourceLineNo">23058</span>                                        oc128data[it.oIndex] = ox;<a name="line.23058"></a>
+<span class="sourceLineNo">23059</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.23059"></a>
+<span class="sourceLineNo">23060</span>                                }<a name="line.23060"></a>
+<span class="sourceLineNo">23061</span>                        }<a name="line.23061"></a>
+<span class="sourceLineNo">23062</span>                        break;<a name="line.23062"></a>
+<span class="sourceLineNo">23063</span>                default:<a name="line.23063"></a>
+<span class="sourceLineNo">23064</span>                        throw new IllegalArgumentException("tanh supports integer, compound integer, real, compound real, complex datasets only");<a name="line.23064"></a>
+<span class="sourceLineNo">23065</span>                }<a name="line.23065"></a>
+<span class="sourceLineNo">23066</span><a name="line.23066"></a>
+<span class="sourceLineNo">23067</span>                addFunctionName(result, "tanh");<a name="line.23067"></a>
+<span class="sourceLineNo">23068</span>                return result;<a name="line.23068"></a>
+<span class="sourceLineNo">23069</span>        }<a name="line.23069"></a>
+<span class="sourceLineNo">23070</span><a name="line.23070"></a>
+<span class="sourceLineNo">23071</span>        /**<a name="line.23071"></a>
+<span class="sourceLineNo">23072</span>         * arcsinh - evaluate the inverse hyperbolic sine function on each element of the dataset<a name="line.23072"></a>
+<span class="sourceLineNo">23073</span>         * @param a<a name="line.23073"></a>
+<span class="sourceLineNo">23074</span>         * @return dataset<a name="line.23074"></a>
+<span class="sourceLineNo">23075</span>         */<a name="line.23075"></a>
+<span class="sourceLineNo">23076</span>        public static Dataset arcsinh(final Object a) {<a name="line.23076"></a>
+<span class="sourceLineNo">23077</span>                return arcsinh(a, null);<a name="line.23077"></a>
+<span class="sourceLineNo">23078</span>        }<a name="line.23078"></a>
+<span class="sourceLineNo">23079</span><a name="line.23079"></a>
+<span class="sourceLineNo">23080</span>        /**<a name="line.23080"></a>
+<span class="sourceLineNo">23081</span>         * arcsinh - evaluate the inverse hyperbolic sine function on each element of the dataset<a name="line.23081"></a>
+<span class="sourceLineNo">23082</span>         * @param a<a name="line.23082"></a>
+<span class="sourceLineNo">23083</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.23083"></a>
+<span class="sourceLineNo">23084</span>         * @return dataset<a name="line.23084"></a>
+<span class="sourceLineNo">23085</span>         */<a name="line.23085"></a>
+<span class="sourceLineNo">23086</span>        public static Dataset arcsinh(final Object a, final Dataset o) {<a name="line.23086"></a>
+<span class="sourceLineNo">23087</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.23087"></a>
+<span class="sourceLineNo">23088</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.23088"></a>
+<span class="sourceLineNo">23089</span>                final Dataset result = it.getOutput();<a name="line.23089"></a>
+<span class="sourceLineNo">23090</span>                if (!result.isComplex()) {<a name="line.23090"></a>
+<span class="sourceLineNo">23091</span>                        if (da.isComplex()) {<a name="line.23091"></a>
+<span class="sourceLineNo">23092</span>                                da = da.getRealView();<a name="line.23092"></a>
+<span class="sourceLineNo">23093</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.23093"></a>
+<span class="sourceLineNo">23094</span>                        }<a name="line.23094"></a>
+<span class="sourceLineNo">23095</span>                }<a name="line.23095"></a>
+<span class="sourceLineNo">23096</span>                final int is = result.getElementsPerItem();<a name="line.23096"></a>
+<span class="sourceLineNo">23097</span>                final int as = da.getElementsPerItem();<a name="line.23097"></a>
+<span class="sourceLineNo">23098</span>                final int dt = result.getDType();<a name="line.23098"></a>
+<span class="sourceLineNo">23099</span><a name="line.23099"></a>
+<span class="sourceLineNo">23100</span>                switch(dt) {<a name="line.23100"></a>
+<span class="sourceLineNo">23101</span>                case Dataset.INT8:<a name="line.23101"></a>
+<span class="sourceLineNo">23102</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.23102"></a>
+<span class="sourceLineNo">23103</span>                        if (it.isOutputDouble()) {<a name="line.23103"></a>
+<span class="sourceLineNo">23104</span>                                while (it.hasNext()) {<a name="line.23104"></a>
+<span class="sourceLineNo">23105</span>                                        final double ix = it.aDouble;<a name="line.23105"></a>
+<span class="sourceLineNo">23106</span>                                        byte ox;<a name="line.23106"></a>
+<span class="sourceLineNo">23107</span>                                        ox = (byte) toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23107"></a>
+<span class="sourceLineNo">23108</span>                                        oi8data[it.oIndex] = ox;<a name="line.23108"></a>
+<span class="sourceLineNo">23109</span>                                }<a name="line.23109"></a>
+<span class="sourceLineNo">23110</span>                        } else {<a name="line.23110"></a>
+<span class="sourceLineNo">23111</span>                                while (it.hasNext()) {<a name="line.23111"></a>
+<span class="sourceLineNo">23112</span>                                        final long ix = it.aLong;<a name="line.23112"></a>
+<span class="sourceLineNo">23113</span>                                        byte ox;<a name="line.23113"></a>
+<span class="sourceLineNo">23114</span>                                        ox = (byte) toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23114"></a>
+<span class="sourceLineNo">23115</span>                                        oi8data[it.oIndex] = ox;<a name="line.23115"></a>
+<span class="sourceLineNo">23116</span>                                }<a name="line.23116"></a>
+<span class="sourceLineNo">23117</span>                        }<a name="line.23117"></a>
+<span class="sourceLineNo">23118</span>                        break;<a name="line.23118"></a>
+<span class="sourceLineNo">23119</span>                case Dataset.INT16:<a name="line.23119"></a>
+<span class="sourceLineNo">23120</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.23120"></a>
+<span class="sourceLineNo">23121</span>                        if (it.isOutputDouble()) {<a name="line.23121"></a>
+<span class="sourceLineNo">23122</span>                                while (it.hasNext()) {<a name="line.23122"></a>
+<span class="sourceLineNo">23123</span>                                        final double ix = it.aDouble;<a name="line.23123"></a>
+<span class="sourceLineNo">23124</span>                                        short ox;<a name="line.23124"></a>
+<span class="sourceLineNo">23125</span>                                        ox = (short) toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23125"></a>
+<span class="sourceLineNo">23126</span>                                        oi16data[it.oIndex] = ox;<a name="line.23126"></a>
+<span class="sourceLineNo">23127</span>                                }<a name="line.23127"></a>
+<span class="sourceLineNo">23128</span>                        } else {<a name="line.23128"></a>
+<span class="sourceLineNo">23129</span>                                while (it.hasNext()) {<a name="line.23129"></a>
+<span class="sourceLineNo">23130</span>                                        final long ix = it.aLong;<a name="line.23130"></a>
+<span class="sourceLineNo">23131</span>                                        short ox;<a name="line.23131"></a>
+<span class="sourceLineNo">23132</span>                                        ox = (short) toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23132"></a>
+<span class="sourceLineNo">23133</span>                                        oi16data[it.oIndex] = ox;<a name="line.23133"></a>
+<span class="sourceLineNo">23134</span>                                }<a name="line.23134"></a>
+<span class="sourceLineNo">23135</span>                        }<a name="line.23135"></a>
+<span class="sourceLineNo">23136</span>                        break;<a name="line.23136"></a>
+<span class="sourceLineNo">23137</span>                case Dataset.INT64:<a name="line.23137"></a>
+<span class="sourceLineNo">23138</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.23138"></a>
+<span class="sourceLineNo">23139</span>                        if (it.isOutputDouble()) {<a name="line.23139"></a>
+<span class="sourceLineNo">23140</span>                                while (it.hasNext()) {<a name="line.23140"></a>
+<span class="sourceLineNo">23141</span>                                        final double ix = it.aDouble;<a name="line.23141"></a>
+<span class="sourceLineNo">23142</span>                                        long ox;<a name="line.23142"></a>
+<span class="sourceLineNo">23143</span>                                        ox = toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23143"></a>
+<span class="sourceLineNo">23144</span>                                        oi64data[it.oIndex] = ox;<a name="line.23144"></a>
+<span class="sourceLineNo">23145</span>                                }<a name="line.23145"></a>
+<span class="sourceLineNo">23146</span>                        } else {<a name="line.23146"></a>
+<span class="sourceLineNo">23147</span>                                while (it.hasNext()) {<a name="line.23147"></a>
+<span class="sourceLineNo">23148</span>                                        final long ix = it.aLong;<a name="line.23148"></a>
+<span class="sourceLineNo">23149</span>                                        long ox;<a name="line.23149"></a>
+<span class="sourceLineNo">23150</span>                                        ox = toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23150"></a>
+<span class="sourceLineNo">23151</span>                                        oi64data[it.oIndex] = ox;<a name="line.23151"></a>
+<span class="sourceLineNo">23152</span>                                }<a name="line.23152"></a>
+<span class="sourceLineNo">23153</span>                        }<a name="line.23153"></a>
+<span class="sourceLineNo">23154</span>                        break;<a name="line.23154"></a>
+<span class="sourceLineNo">23155</span>                case Dataset.INT32:<a name="line.23155"></a>
+<span class="sourceLineNo">23156</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.23156"></a>
+<span class="sourceLineNo">23157</span>                        if (it.isOutputDouble()) {<a name="line.23157"></a>
+<span class="sourceLineNo">23158</span>                                while (it.hasNext()) {<a name="line.23158"></a>
+<span class="sourceLineNo">23159</span>                                        final double ix = it.aDouble;<a name="line.23159"></a>
+<span class="sourceLineNo">23160</span>                                        int ox;<a name="line.23160"></a>
+<span class="sourceLineNo">23161</span>                                        ox = (int) toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23161"></a>
+<span class="sourceLineNo">23162</span>                                        oi32data[it.oIndex] = ox;<a name="line.23162"></a>
+<span class="sourceLineNo">23163</span>                                }<a name="line.23163"></a>
+<span class="sourceLineNo">23164</span>                        } else {<a name="line.23164"></a>
+<span class="sourceLineNo">23165</span>                                while (it.hasNext()) {<a name="line.23165"></a>
+<span class="sourceLineNo">23166</span>                                        final long ix = it.aLong;<a name="line.23166"></a>
+<span class="sourceLineNo">23167</span>                                        int ox;<a name="line.23167"></a>
+<span class="sourceLineNo">23168</span>                                        ox = (int) toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23168"></a>
+<span class="sourceLineNo">23169</span>                                        oi32data[it.oIndex] = ox;<a name="line.23169"></a>
+<span class="sourceLineNo">23170</span>                                }<a name="line.23170"></a>
+<span class="sourceLineNo">23171</span>                        }<a name="line.23171"></a>
+<span class="sourceLineNo">23172</span>                        break;<a name="line.23172"></a>
+<span class="sourceLineNo">23173</span>                case Dataset.ARRAYINT8:<a name="line.23173"></a>
+<span class="sourceLineNo">23174</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.23174"></a>
+<span class="sourceLineNo">23175</span>                        if (is == 1) {<a name="line.23175"></a>
+<span class="sourceLineNo">23176</span>                                if (it.isOutputDouble()) {<a name="line.23176"></a>
+<span class="sourceLineNo">23177</span>                                        while (it.hasNext()) {<a name="line.23177"></a>
+<span class="sourceLineNo">23178</span>                                                final double ix = it.aDouble;<a name="line.23178"></a>
+<span class="sourceLineNo">23179</span>                                                byte ox;<a name="line.23179"></a>
+<span class="sourceLineNo">23180</span>                                                ox = (byte) toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23180"></a>
+<span class="sourceLineNo">23181</span>                                                oai8data[it.oIndex] = ox;<a name="line.23181"></a>
+<span class="sourceLineNo">23182</span>                                        }<a name="line.23182"></a>
+<span class="sourceLineNo">23183</span>                                } else {<a name="line.23183"></a>
+<span class="sourceLineNo">23184</span>                                        while (it.hasNext()) {<a name="line.23184"></a>
+<span class="sourceLineNo">23185</span>                                                final long ix = it.aLong;<a name="line.23185"></a>
+<span class="sourceLineNo">23186</span>                                                byte ox;<a name="line.23186"></a>
+<span class="sourceLineNo">23187</span>                                                ox = (byte) toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23187"></a>
+<span class="sourceLineNo">23188</span>                                                oai8data[it.oIndex] = ox;<a name="line.23188"></a>
+<span class="sourceLineNo">23189</span>                                        }<a name="line.23189"></a>
+<span class="sourceLineNo">23190</span>                                }<a name="line.23190"></a>
+<span class="sourceLineNo">23191</span>                        } else if (as == 1) {<a name="line.23191"></a>
+<span class="sourceLineNo">23192</span>                                if (it.isOutputDouble()) {<a name="line.23192"></a>
+<span class="sourceLineNo">23193</span>                                        while (it.hasNext()) {<a name="line.23193"></a>
+<span class="sourceLineNo">23194</span>                                                final double ix = it.aDouble;<a name="line.23194"></a>
+<span class="sourceLineNo">23195</span>                                                byte ox;<a name="line.23195"></a>
+<span class="sourceLineNo">23196</span>                                                ox = (byte) toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23196"></a>
+<span class="sourceLineNo">23197</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23197"></a>
+<span class="sourceLineNo">23198</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.23198"></a>
+<span class="sourceLineNo">23199</span>                                                }<a name="line.23199"></a>
+<span class="sourceLineNo">23200</span>                                        }<a name="line.23200"></a>
+<span class="sourceLineNo">23201</span>                                } else {<a name="line.23201"></a>
+<span class="sourceLineNo">23202</span>                                        while (it.hasNext()) {<a name="line.23202"></a>
+<span class="sourceLineNo">23203</span>                                                final long ix = it.aLong;<a name="line.23203"></a>
+<span class="sourceLineNo">23204</span>                                                byte ox;<a name="line.23204"></a>
+<span class="sourceLineNo">23205</span>                                                ox = (byte) toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23205"></a>
+<span class="sourceLineNo">23206</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23206"></a>
+<span class="sourceLineNo">23207</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.23207"></a>
+<span class="sourceLineNo">23208</span>                                                }<a name="line.23208"></a>
+<span class="sourceLineNo">23209</span>                                        }<a name="line.23209"></a>
+<span class="sourceLineNo">23210</span>                                }<a name="line.23210"></a>
+<span class="sourceLineNo">23211</span>                        } else {<a name="line.23211"></a>
+<span class="sourceLineNo">23212</span>                                if (it.isOutputDouble()) {<a name="line.23212"></a>
+<span class="sourceLineNo">23213</span>                                        while (it.hasNext()) {<a name="line.23213"></a>
+<span class="sourceLineNo">23214</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23214"></a>
+<span class="sourceLineNo">23215</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.23215"></a>
+<span class="sourceLineNo">23216</span>                                                        byte ox;<a name="line.23216"></a>
+<span class="sourceLineNo">23217</span>                                                        ox = (byte) toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23217"></a>
+<span class="sourceLineNo">23218</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.23218"></a>
+<span class="sourceLineNo">23219</span>                                                }<a name="line.23219"></a>
+<span class="sourceLineNo">23220</span>                                        }<a name="line.23220"></a>
+<span class="sourceLineNo">23221</span>                                } else {<a name="line.23221"></a>
+<span class="sourceLineNo">23222</span>                                        while (it.hasNext()) {<a name="line.23222"></a>
+<span class="sourceLineNo">23223</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23223"></a>
+<span class="sourceLineNo">23224</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.23224"></a>
+<span class="sourceLineNo">23225</span>                                                        byte ox;<a name="line.23225"></a>
+<span class="sourceLineNo">23226</span>                                                        ox = (byte) toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23226"></a>
+<span class="sourceLineNo">23227</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.23227"></a>
+<span class="sourceLineNo">23228</span>                                                }<a name="line.23228"></a>
+<span class="sourceLineNo">23229</span>                                        }<a name="line.23229"></a>
+<span class="sourceLineNo">23230</span>                                }<a name="line.23230"></a>
+<span class="sourceLineNo">23231</span>                        }<a name="line.23231"></a>
+<span class="sourceLineNo">23232</span>                        break;<a name="line.23232"></a>
+<span class="sourceLineNo">23233</span>                case Dataset.ARRAYINT16:<a name="line.23233"></a>
+<span class="sourceLineNo">23234</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.23234"></a>
+<span class="sourceLineNo">23235</span>                        if (is == 1) {<a name="line.23235"></a>
+<span class="sourceLineNo">23236</span>                                if (it.isOutputDouble()) {<a name="line.23236"></a>
+<span class="sourceLineNo">23237</span>                                        while (it.hasNext()) {<a name="line.23237"></a>
+<span class="sourceLineNo">23238</span>                                                final double ix = it.aDouble;<a name="line.23238"></a>
+<span class="sourceLineNo">23239</span>                                                short ox;<a name="line.23239"></a>
+<span class="sourceLineNo">23240</span>                                                ox = (short) toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23240"></a>
+<span class="sourceLineNo">23241</span>                                                oai16data[it.oIndex] = ox;<a name="line.23241"></a>
+<span class="sourceLineNo">23242</span>                                        }<a name="line.23242"></a>
+<span class="sourceLineNo">23243</span>                                } else {<a name="line.23243"></a>
+<span class="sourceLineNo">23244</span>                                        while (it.hasNext()) {<a name="line.23244"></a>
+<span class="sourceLineNo">23245</span>                                                final long ix = it.aLong;<a name="line.23245"></a>
+<span class="sourceLineNo">23246</span>                                                short ox;<a name="line.23246"></a>
+<span class="sourceLineNo">23247</span>                                                ox = (short) toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23247"></a>
+<span class="sourceLineNo">23248</span>                                                oai16data[it.oIndex] = ox;<a name="line.23248"></a>
+<span class="sourceLineNo">23249</span>                                        }<a name="line.23249"></a>
+<span class="sourceLineNo">23250</span>                                }<a name="line.23250"></a>
+<span class="sourceLineNo">23251</span>                        } else if (as == 1) {<a name="line.23251"></a>
+<span class="sourceLineNo">23252</span>                                if (it.isOutputDouble()) {<a name="line.23252"></a>
+<span class="sourceLineNo">23253</span>                                        while (it.hasNext()) {<a name="line.23253"></a>
+<span class="sourceLineNo">23254</span>                                                final double ix = it.aDouble;<a name="line.23254"></a>
+<span class="sourceLineNo">23255</span>                                                short ox;<a name="line.23255"></a>
+<span class="sourceLineNo">23256</span>                                                ox = (short) toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23256"></a>
+<span class="sourceLineNo">23257</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23257"></a>
+<span class="sourceLineNo">23258</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.23258"></a>
+<span class="sourceLineNo">23259</span>                                                }<a name="line.23259"></a>
+<span class="sourceLineNo">23260</span>                                        }<a name="line.23260"></a>
+<span class="sourceLineNo">23261</span>                                } else {<a name="line.23261"></a>
+<span class="sourceLineNo">23262</span>                                        while (it.hasNext()) {<a name="line.23262"></a>
+<span class="sourceLineNo">23263</span>                                                final long ix = it.aLong;<a name="line.23263"></a>
+<span class="sourceLineNo">23264</span>                                                short ox;<a name="line.23264"></a>
+<span class="sourceLineNo">23265</span>                                                ox = (short) toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23265"></a>
+<span class="sourceLineNo">23266</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23266"></a>
+<span class="sourceLineNo">23267</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.23267"></a>
+<span class="sourceLineNo">23268</span>                                                }<a name="line.23268"></a>
+<span class="sourceLineNo">23269</span>                                        }<a name="line.23269"></a>
+<span class="sourceLineNo">23270</span>                                }<a name="line.23270"></a>
+<span class="sourceLineNo">23271</span>                        } else {<a name="line.23271"></a>
+<span class="sourceLineNo">23272</span>                                if (it.isOutputDouble()) {<a name="line.23272"></a>
+<span class="sourceLineNo">23273</span>                                        while (it.hasNext()) {<a name="line.23273"></a>
+<span class="sourceLineNo">23274</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23274"></a>
+<span class="sourceLineNo">23275</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.23275"></a>
+<span class="sourceLineNo">23276</span>                                                        short ox;<a name="line.23276"></a>
+<span class="sourceLineNo">23277</span>                                                        ox = (short) toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23277"></a>
+<span class="sourceLineNo">23278</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.23278"></a>
+<span class="sourceLineNo">23279</span>                                                }<a name="line.23279"></a>
+<span class="sourceLineNo">23280</span>                                        }<a name="line.23280"></a>
+<span class="sourceLineNo">23281</span>                                } else {<a name="line.23281"></a>
+<span class="sourceLineNo">23282</span>                                        while (it.hasNext()) {<a name="line.23282"></a>
+<span class="sourceLineNo">23283</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23283"></a>
+<span class="sourceLineNo">23284</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.23284"></a>
+<span class="sourceLineNo">23285</span>                                                        short ox;<a name="line.23285"></a>
+<span class="sourceLineNo">23286</span>                                                        ox = (short) toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23286"></a>
+<span class="sourceLineNo">23287</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.23287"></a>
+<span class="sourceLineNo">23288</span>                                                }<a name="line.23288"></a>
+<span class="sourceLineNo">23289</span>                                        }<a name="line.23289"></a>
+<span class="sourceLineNo">23290</span>                                }<a name="line.23290"></a>
+<span class="sourceLineNo">23291</span>                        }<a name="line.23291"></a>
+<span class="sourceLineNo">23292</span>                        break;<a name="line.23292"></a>
+<span class="sourceLineNo">23293</span>                case Dataset.ARRAYINT64:<a name="line.23293"></a>
+<span class="sourceLineNo">23294</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.23294"></a>
+<span class="sourceLineNo">23295</span>                        if (is == 1) {<a name="line.23295"></a>
+<span class="sourceLineNo">23296</span>                                if (it.isOutputDouble()) {<a name="line.23296"></a>
+<span class="sourceLineNo">23297</span>                                        while (it.hasNext()) {<a name="line.23297"></a>
+<span class="sourceLineNo">23298</span>                                                final double ix = it.aDouble;<a name="line.23298"></a>
+<span class="sourceLineNo">23299</span>                                                long ox;<a name="line.23299"></a>
+<span class="sourceLineNo">23300</span>                                                ox = toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23300"></a>
+<span class="sourceLineNo">23301</span>                                                oai64data[it.oIndex] = ox;<a name="line.23301"></a>
+<span class="sourceLineNo">23302</span>                                        }<a name="line.23302"></a>
+<span class="sourceLineNo">23303</span>                                } else {<a name="line.23303"></a>
+<span class="sourceLineNo">23304</span>                                        while (it.hasNext()) {<a name="line.23304"></a>
+<span class="sourceLineNo">23305</span>                                                final long ix = it.aLong;<a name="line.23305"></a>
+<span class="sourceLineNo">23306</span>                                                long ox;<a name="line.23306"></a>
+<span class="sourceLineNo">23307</span>                                                ox = toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23307"></a>
+<span class="sourceLineNo">23308</span>                                                oai64data[it.oIndex] = ox;<a name="line.23308"></a>
+<span class="sourceLineNo">23309</span>                                        }<a name="line.23309"></a>
+<span class="sourceLineNo">23310</span>                                }<a name="line.23310"></a>
+<span class="sourceLineNo">23311</span>                        } else if (as == 1) {<a name="line.23311"></a>
+<span class="sourceLineNo">23312</span>                                if (it.isOutputDouble()) {<a name="line.23312"></a>
+<span class="sourceLineNo">23313</span>                                        while (it.hasNext()) {<a name="line.23313"></a>
+<span class="sourceLineNo">23314</span>                                                final double ix = it.aDouble;<a name="line.23314"></a>
+<span class="sourceLineNo">23315</span>                                                long ox;<a name="line.23315"></a>
+<span class="sourceLineNo">23316</span>                                                ox = toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23316"></a>
+<span class="sourceLineNo">23317</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23317"></a>
+<span class="sourceLineNo">23318</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.23318"></a>
+<span class="sourceLineNo">23319</span>                                                }<a name="line.23319"></a>
+<span class="sourceLineNo">23320</span>                                        }<a name="line.23320"></a>
+<span class="sourceLineNo">23321</span>                                } else {<a name="line.23321"></a>
+<span class="sourceLineNo">23322</span>                                        while (it.hasNext()) {<a name="line.23322"></a>
+<span class="sourceLineNo">23323</span>                                                final long ix = it.aLong;<a name="line.23323"></a>
+<span class="sourceLineNo">23324</span>                                                long ox;<a name="line.23324"></a>
+<span class="sourceLineNo">23325</span>                                                ox = toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23325"></a>
+<span class="sourceLineNo">23326</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23326"></a>
+<span class="sourceLineNo">23327</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.23327"></a>
+<span class="sourceLineNo">23328</span>                                                }<a name="line.23328"></a>
+<span class="sourceLineNo">23329</span>                                        }<a name="line.23329"></a>
+<span class="sourceLineNo">23330</span>                                }<a name="line.23330"></a>
+<span class="sourceLineNo">23331</span>                        } else {<a name="line.23331"></a>
+<span class="sourceLineNo">23332</span>                                if (it.isOutputDouble()) {<a name="line.23332"></a>
+<span class="sourceLineNo">23333</span>                                        while (it.hasNext()) {<a name="line.23333"></a>
+<span class="sourceLineNo">23334</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23334"></a>
+<span class="sourceLineNo">23335</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.23335"></a>
+<span class="sourceLineNo">23336</span>                                                        long ox;<a name="line.23336"></a>
+<span class="sourceLineNo">23337</span>                                                        ox = toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23337"></a>
+<span class="sourceLineNo">23338</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.23338"></a>
+<span class="sourceLineNo">23339</span>                                                }<a name="line.23339"></a>
+<span class="sourceLineNo">23340</span>                                        }<a name="line.23340"></a>
+<span class="sourceLineNo">23341</span>                                } else {<a name="line.23341"></a>
+<span class="sourceLineNo">23342</span>                                        while (it.hasNext()) {<a name="line.23342"></a>
+<span class="sourceLineNo">23343</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23343"></a>
+<span class="sourceLineNo">23344</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.23344"></a>
+<span class="sourceLineNo">23345</span>                                                        long ox;<a name="line.23345"></a>
+<span class="sourceLineNo">23346</span>                                                        ox = toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23346"></a>
+<span class="sourceLineNo">23347</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.23347"></a>
+<span class="sourceLineNo">23348</span>                                                }<a name="line.23348"></a>
+<span class="sourceLineNo">23349</span>                                        }<a name="line.23349"></a>
+<span class="sourceLineNo">23350</span>                                }<a name="line.23350"></a>
+<span class="sourceLineNo">23351</span>                        }<a name="line.23351"></a>
+<span class="sourceLineNo">23352</span>                        break;<a name="line.23352"></a>
+<span class="sourceLineNo">23353</span>                case Dataset.ARRAYINT32:<a name="line.23353"></a>
+<span class="sourceLineNo">23354</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.23354"></a>
+<span class="sourceLineNo">23355</span>                        if (is == 1) {<a name="line.23355"></a>
+<span class="sourceLineNo">23356</span>                                if (it.isOutputDouble()) {<a name="line.23356"></a>
+<span class="sourceLineNo">23357</span>                                        while (it.hasNext()) {<a name="line.23357"></a>
+<span class="sourceLineNo">23358</span>                                                final double ix = it.aDouble;<a name="line.23358"></a>
+<span class="sourceLineNo">23359</span>                                                int ox;<a name="line.23359"></a>
+<span class="sourceLineNo">23360</span>                                                ox = (int) toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23360"></a>
+<span class="sourceLineNo">23361</span>                                                oai32data[it.oIndex] = ox;<a name="line.23361"></a>
+<span class="sourceLineNo">23362</span>                                        }<a name="line.23362"></a>
+<span class="sourceLineNo">23363</span>                                } else {<a name="line.23363"></a>
+<span class="sourceLineNo">23364</span>                                        while (it.hasNext()) {<a name="line.23364"></a>
+<span class="sourceLineNo">23365</span>                                                final long ix = it.aLong;<a name="line.23365"></a>
+<span class="sourceLineNo">23366</span>                                                int ox;<a name="line.23366"></a>
+<span class="sourceLineNo">23367</span>                                                ox = (int) toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23367"></a>
+<span class="sourceLineNo">23368</span>                                                oai32data[it.oIndex] = ox;<a name="line.23368"></a>
+<span class="sourceLineNo">23369</span>                                        }<a name="line.23369"></a>
+<span class="sourceLineNo">23370</span>                                }<a name="line.23370"></a>
+<span class="sourceLineNo">23371</span>                        } else if (as == 1) {<a name="line.23371"></a>
+<span class="sourceLineNo">23372</span>                                if (it.isOutputDouble()) {<a name="line.23372"></a>
+<span class="sourceLineNo">23373</span>                                        while (it.hasNext()) {<a name="line.23373"></a>
+<span class="sourceLineNo">23374</span>                                                final double ix = it.aDouble;<a name="line.23374"></a>
+<span class="sourceLineNo">23375</span>                                                int ox;<a name="line.23375"></a>
+<span class="sourceLineNo">23376</span>                                                ox = (int) toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23376"></a>
+<span class="sourceLineNo">23377</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23377"></a>
+<span class="sourceLineNo">23378</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.23378"></a>
+<span class="sourceLineNo">23379</span>                                                }<a name="line.23379"></a>
+<span class="sourceLineNo">23380</span>                                        }<a name="line.23380"></a>
+<span class="sourceLineNo">23381</span>                                } else {<a name="line.23381"></a>
+<span class="sourceLineNo">23382</span>                                        while (it.hasNext()) {<a name="line.23382"></a>
+<span class="sourceLineNo">23383</span>                                                final long ix = it.aLong;<a name="line.23383"></a>
+<span class="sourceLineNo">23384</span>                                                int ox;<a name="line.23384"></a>
+<span class="sourceLineNo">23385</span>                                                ox = (int) toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23385"></a>
+<span class="sourceLineNo">23386</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23386"></a>
+<span class="sourceLineNo">23387</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.23387"></a>
+<span class="sourceLineNo">23388</span>                                                }<a name="line.23388"></a>
+<span class="sourceLineNo">23389</span>                                        }<a name="line.23389"></a>
+<span class="sourceLineNo">23390</span>                                }<a name="line.23390"></a>
+<span class="sourceLineNo">23391</span>                        } else {<a name="line.23391"></a>
+<span class="sourceLineNo">23392</span>                                if (it.isOutputDouble()) {<a name="line.23392"></a>
+<span class="sourceLineNo">23393</span>                                        while (it.hasNext()) {<a name="line.23393"></a>
+<span class="sourceLineNo">23394</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23394"></a>
+<span class="sourceLineNo">23395</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.23395"></a>
+<span class="sourceLineNo">23396</span>                                                        int ox;<a name="line.23396"></a>
+<span class="sourceLineNo">23397</span>                                                        ox = (int) toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23397"></a>
+<span class="sourceLineNo">23398</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.23398"></a>
+<span class="sourceLineNo">23399</span>                                                }<a name="line.23399"></a>
+<span class="sourceLineNo">23400</span>                                        }<a name="line.23400"></a>
+<span class="sourceLineNo">23401</span>                                } else {<a name="line.23401"></a>
+<span class="sourceLineNo">23402</span>                                        while (it.hasNext()) {<a name="line.23402"></a>
+<span class="sourceLineNo">23403</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23403"></a>
+<span class="sourceLineNo">23404</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.23404"></a>
+<span class="sourceLineNo">23405</span>                                                        int ox;<a name="line.23405"></a>
+<span class="sourceLineNo">23406</span>                                                        ox = (int) toLong(Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23406"></a>
+<span class="sourceLineNo">23407</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.23407"></a>
+<span class="sourceLineNo">23408</span>                                                }<a name="line.23408"></a>
+<span class="sourceLineNo">23409</span>                                        }<a name="line.23409"></a>
+<span class="sourceLineNo">23410</span>                                }<a name="line.23410"></a>
+<span class="sourceLineNo">23411</span>                        }<a name="line.23411"></a>
+<span class="sourceLineNo">23412</span>                        break;<a name="line.23412"></a>
+<span class="sourceLineNo">23413</span>                case Dataset.FLOAT32:<a name="line.23413"></a>
+<span class="sourceLineNo">23414</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.23414"></a>
+<span class="sourceLineNo">23415</span>                        if (it.isOutputDouble()) {<a name="line.23415"></a>
+<span class="sourceLineNo">23416</span>                                while (it.hasNext()) {<a name="line.23416"></a>
+<span class="sourceLineNo">23417</span>                                        final double ix = it.aDouble;<a name="line.23417"></a>
+<span class="sourceLineNo">23418</span>                                        float ox;<a name="line.23418"></a>
+<span class="sourceLineNo">23419</span>                                        ox = (float) (Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23419"></a>
+<span class="sourceLineNo">23420</span>                                        of32data[it.oIndex] = ox;<a name="line.23420"></a>
+<span class="sourceLineNo">23421</span>                                }<a name="line.23421"></a>
+<span class="sourceLineNo">23422</span>                        } else {<a name="line.23422"></a>
+<span class="sourceLineNo">23423</span>                                while (it.hasNext()) {<a name="line.23423"></a>
+<span class="sourceLineNo">23424</span>                                        final long ix = it.aLong;<a name="line.23424"></a>
+<span class="sourceLineNo">23425</span>                                        float ox;<a name="line.23425"></a>
+<span class="sourceLineNo">23426</span>                                        ox = (float) (Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23426"></a>
+<span class="sourceLineNo">23427</span>                                        of32data[it.oIndex] = ox;<a name="line.23427"></a>
+<span class="sourceLineNo">23428</span>                                }<a name="line.23428"></a>
+<span class="sourceLineNo">23429</span>                        }<a name="line.23429"></a>
+<span class="sourceLineNo">23430</span>                        break;<a name="line.23430"></a>
+<span class="sourceLineNo">23431</span>                case Dataset.FLOAT64:<a name="line.23431"></a>
+<span class="sourceLineNo">23432</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.23432"></a>
+<span class="sourceLineNo">23433</span>                        if (it.isOutputDouble()) {<a name="line.23433"></a>
+<span class="sourceLineNo">23434</span>                                while (it.hasNext()) {<a name="line.23434"></a>
+<span class="sourceLineNo">23435</span>                                        final double ix = it.aDouble;<a name="line.23435"></a>
+<span class="sourceLineNo">23436</span>                                        double ox;<a name="line.23436"></a>
+<span class="sourceLineNo">23437</span>                                        ox = (Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23437"></a>
+<span class="sourceLineNo">23438</span>                                        of64data[it.oIndex] = ox;<a name="line.23438"></a>
+<span class="sourceLineNo">23439</span>                                }<a name="line.23439"></a>
+<span class="sourceLineNo">23440</span>                        } else {<a name="line.23440"></a>
+<span class="sourceLineNo">23441</span>                                while (it.hasNext()) {<a name="line.23441"></a>
+<span class="sourceLineNo">23442</span>                                        final long ix = it.aLong;<a name="line.23442"></a>
+<span class="sourceLineNo">23443</span>                                        double ox;<a name="line.23443"></a>
+<span class="sourceLineNo">23444</span>                                        ox = (Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23444"></a>
+<span class="sourceLineNo">23445</span>                                        of64data[it.oIndex] = ox;<a name="line.23445"></a>
+<span class="sourceLineNo">23446</span>                                }<a name="line.23446"></a>
+<span class="sourceLineNo">23447</span>                        }<a name="line.23447"></a>
+<span class="sourceLineNo">23448</span>                        break;<a name="line.23448"></a>
+<span class="sourceLineNo">23449</span>                case Dataset.ARRAYFLOAT32:<a name="line.23449"></a>
+<span class="sourceLineNo">23450</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.23450"></a>
+<span class="sourceLineNo">23451</span>                        if (is == 1) {<a name="line.23451"></a>
+<span class="sourceLineNo">23452</span>                                if (it.isOutputDouble()) {<a name="line.23452"></a>
+<span class="sourceLineNo">23453</span>                                        while (it.hasNext()) {<a name="line.23453"></a>
+<span class="sourceLineNo">23454</span>                                                final double ix = it.aDouble;<a name="line.23454"></a>
+<span class="sourceLineNo">23455</span>                                                float ox;<a name="line.23455"></a>
+<span class="sourceLineNo">23456</span>                                                ox = (float) (Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23456"></a>
+<span class="sourceLineNo">23457</span>                                                oaf32data[it.oIndex] = ox;<a name="line.23457"></a>
+<span class="sourceLineNo">23458</span>                                        }<a name="line.23458"></a>
+<span class="sourceLineNo">23459</span>                                } else {<a name="line.23459"></a>
+<span class="sourceLineNo">23460</span>                                        while (it.hasNext()) {<a name="line.23460"></a>
+<span class="sourceLineNo">23461</span>                                                final long ix = it.aLong;<a name="line.23461"></a>
+<span class="sourceLineNo">23462</span>                                                float ox;<a name="line.23462"></a>
+<span class="sourceLineNo">23463</span>                                                ox = (float) (Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23463"></a>
+<span class="sourceLineNo">23464</span>                                                oaf32data[it.oIndex] = ox;<a name="line.23464"></a>
+<span class="sourceLineNo">23465</span>                                        }<a name="line.23465"></a>
+<span class="sourceLineNo">23466</span>                                }<a name="line.23466"></a>
+<span class="sourceLineNo">23467</span>                        } else if (as == 1) {<a name="line.23467"></a>
+<span class="sourceLineNo">23468</span>                                if (it.isOutputDouble()) {<a name="line.23468"></a>
+<span class="sourceLineNo">23469</span>                                        while (it.hasNext()) {<a name="line.23469"></a>
+<span class="sourceLineNo">23470</span>                                                final double ix = it.aDouble;<a name="line.23470"></a>
+<span class="sourceLineNo">23471</span>                                                float ox;<a name="line.23471"></a>
+<span class="sourceLineNo">23472</span>                                                ox = (float) (Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23472"></a>
+<span class="sourceLineNo">23473</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23473"></a>
+<span class="sourceLineNo">23474</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.23474"></a>
+<span class="sourceLineNo">23475</span>                                                }<a name="line.23475"></a>
+<span class="sourceLineNo">23476</span>                                        }<a name="line.23476"></a>
+<span class="sourceLineNo">23477</span>                                } else {<a name="line.23477"></a>
+<span class="sourceLineNo">23478</span>                                        while (it.hasNext()) {<a name="line.23478"></a>
+<span class="sourceLineNo">23479</span>                                                final long ix = it.aLong;<a name="line.23479"></a>
+<span class="sourceLineNo">23480</span>                                                float ox;<a name="line.23480"></a>
+<span class="sourceLineNo">23481</span>                                                ox = (float) (Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23481"></a>
+<span class="sourceLineNo">23482</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23482"></a>
+<span class="sourceLineNo">23483</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.23483"></a>
+<span class="sourceLineNo">23484</span>                                                }<a name="line.23484"></a>
+<span class="sourceLineNo">23485</span>                                        }<a name="line.23485"></a>
+<span class="sourceLineNo">23486</span>                                }<a name="line.23486"></a>
+<span class="sourceLineNo">23487</span>                        } else {<a name="line.23487"></a>
+<span class="sourceLineNo">23488</span>                                if (it.isOutputDouble()) {<a name="line.23488"></a>
+<span class="sourceLineNo">23489</span>                                        while (it.hasNext()) {<a name="line.23489"></a>
+<span class="sourceLineNo">23490</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23490"></a>
+<span class="sourceLineNo">23491</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.23491"></a>
+<span class="sourceLineNo">23492</span>                                                        float ox;<a name="line.23492"></a>
+<span class="sourceLineNo">23493</span>                                                        ox = (float) (Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23493"></a>
+<span class="sourceLineNo">23494</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.23494"></a>
+<span class="sourceLineNo">23495</span>                                                }<a name="line.23495"></a>
+<span class="sourceLineNo">23496</span>                                        }<a name="line.23496"></a>
+<span class="sourceLineNo">23497</span>                                } else {<a name="line.23497"></a>
+<span class="sourceLineNo">23498</span>                                        while (it.hasNext()) {<a name="line.23498"></a>
+<span class="sourceLineNo">23499</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23499"></a>
+<span class="sourceLineNo">23500</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.23500"></a>
+<span class="sourceLineNo">23501</span>                                                        float ox;<a name="line.23501"></a>
+<span class="sourceLineNo">23502</span>                                                        ox = (float) (Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23502"></a>
+<span class="sourceLineNo">23503</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.23503"></a>
+<span class="sourceLineNo">23504</span>                                                }<a name="line.23504"></a>
+<span class="sourceLineNo">23505</span>                                        }<a name="line.23505"></a>
+<span class="sourceLineNo">23506</span>                                }<a name="line.23506"></a>
+<span class="sourceLineNo">23507</span>                        }<a name="line.23507"></a>
+<span class="sourceLineNo">23508</span>                        break;<a name="line.23508"></a>
+<span class="sourceLineNo">23509</span>                case Dataset.ARRAYFLOAT64:<a name="line.23509"></a>
+<span class="sourceLineNo">23510</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.23510"></a>
+<span class="sourceLineNo">23511</span>                        if (is == 1) {<a name="line.23511"></a>
+<span class="sourceLineNo">23512</span>                                if (it.isOutputDouble()) {<a name="line.23512"></a>
+<span class="sourceLineNo">23513</span>                                        while (it.hasNext()) {<a name="line.23513"></a>
+<span class="sourceLineNo">23514</span>                                                final double ix = it.aDouble;<a name="line.23514"></a>
+<span class="sourceLineNo">23515</span>                                                double ox;<a name="line.23515"></a>
+<span class="sourceLineNo">23516</span>                                                ox = (Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23516"></a>
+<span class="sourceLineNo">23517</span>                                                oaf64data[it.oIndex] = ox;<a name="line.23517"></a>
+<span class="sourceLineNo">23518</span>                                        }<a name="line.23518"></a>
+<span class="sourceLineNo">23519</span>                                } else {<a name="line.23519"></a>
+<span class="sourceLineNo">23520</span>                                        while (it.hasNext()) {<a name="line.23520"></a>
+<span class="sourceLineNo">23521</span>                                                final long ix = it.aLong;<a name="line.23521"></a>
+<span class="sourceLineNo">23522</span>                                                double ox;<a name="line.23522"></a>
+<span class="sourceLineNo">23523</span>                                                ox = (Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23523"></a>
+<span class="sourceLineNo">23524</span>                                                oaf64data[it.oIndex] = ox;<a name="line.23524"></a>
+<span class="sourceLineNo">23525</span>                                        }<a name="line.23525"></a>
+<span class="sourceLineNo">23526</span>                                }<a name="line.23526"></a>
+<span class="sourceLineNo">23527</span>                        } else if (as == 1) {<a name="line.23527"></a>
+<span class="sourceLineNo">23528</span>                                if (it.isOutputDouble()) {<a name="line.23528"></a>
+<span class="sourceLineNo">23529</span>                                        while (it.hasNext()) {<a name="line.23529"></a>
+<span class="sourceLineNo">23530</span>                                                final double ix = it.aDouble;<a name="line.23530"></a>
+<span class="sourceLineNo">23531</span>                                                double ox;<a name="line.23531"></a>
+<span class="sourceLineNo">23532</span>                                                ox = (Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23532"></a>
+<span class="sourceLineNo">23533</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23533"></a>
+<span class="sourceLineNo">23534</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.23534"></a>
+<span class="sourceLineNo">23535</span>                                                }<a name="line.23535"></a>
+<span class="sourceLineNo">23536</span>                                        }<a name="line.23536"></a>
+<span class="sourceLineNo">23537</span>                                } else {<a name="line.23537"></a>
+<span class="sourceLineNo">23538</span>                                        while (it.hasNext()) {<a name="line.23538"></a>
+<span class="sourceLineNo">23539</span>                                                final long ix = it.aLong;<a name="line.23539"></a>
+<span class="sourceLineNo">23540</span>                                                double ox;<a name="line.23540"></a>
+<span class="sourceLineNo">23541</span>                                                ox = (Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23541"></a>
+<span class="sourceLineNo">23542</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23542"></a>
+<span class="sourceLineNo">23543</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.23543"></a>
+<span class="sourceLineNo">23544</span>                                                }<a name="line.23544"></a>
+<span class="sourceLineNo">23545</span>                                        }<a name="line.23545"></a>
+<span class="sourceLineNo">23546</span>                                }<a name="line.23546"></a>
+<span class="sourceLineNo">23547</span>                        } else {<a name="line.23547"></a>
+<span class="sourceLineNo">23548</span>                                if (it.isOutputDouble()) {<a name="line.23548"></a>
+<span class="sourceLineNo">23549</span>                                        while (it.hasNext()) {<a name="line.23549"></a>
+<span class="sourceLineNo">23550</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23550"></a>
+<span class="sourceLineNo">23551</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.23551"></a>
+<span class="sourceLineNo">23552</span>                                                        double ox;<a name="line.23552"></a>
+<span class="sourceLineNo">23553</span>                                                        ox = (Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23553"></a>
+<span class="sourceLineNo">23554</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.23554"></a>
+<span class="sourceLineNo">23555</span>                                                }<a name="line.23555"></a>
+<span class="sourceLineNo">23556</span>                                        }<a name="line.23556"></a>
+<span class="sourceLineNo">23557</span>                                } else {<a name="line.23557"></a>
+<span class="sourceLineNo">23558</span>                                        while (it.hasNext()) {<a name="line.23558"></a>
+<span class="sourceLineNo">23559</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23559"></a>
+<span class="sourceLineNo">23560</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.23560"></a>
+<span class="sourceLineNo">23561</span>                                                        double ox;<a name="line.23561"></a>
+<span class="sourceLineNo">23562</span>                                                        ox = (Math.log(ix + Math.sqrt(ix*ix + 1)));<a name="line.23562"></a>
+<span class="sourceLineNo">23563</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.23563"></a>
+<span class="sourceLineNo">23564</span>                                                }<a name="line.23564"></a>
+<span class="sourceLineNo">23565</span>                                        }<a name="line.23565"></a>
+<span class="sourceLineNo">23566</span>                                }<a name="line.23566"></a>
+<span class="sourceLineNo">23567</span>                        }<a name="line.23567"></a>
+<span class="sourceLineNo">23568</span>                        break;<a name="line.23568"></a>
+<span class="sourceLineNo">23569</span>                case Dataset.COMPLEX64:<a name="line.23569"></a>
+<span class="sourceLineNo">23570</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.23570"></a>
+<span class="sourceLineNo">23571</span>                        if (!da.isComplex()) {<a name="line.23571"></a>
+<span class="sourceLineNo">23572</span>                                if (it.isOutputDouble()) {<a name="line.23572"></a>
+<span class="sourceLineNo">23573</span>                                        final double iy = 0;<a name="line.23573"></a>
+<span class="sourceLineNo">23574</span>                                        while (it.hasNext()) {<a name="line.23574"></a>
+<span class="sourceLineNo">23575</span>                                                final double ix = it.aDouble;<a name="line.23575"></a>
+<span class="sourceLineNo">23576</span>                                                Complex tz;<a name="line.23576"></a>
+<span class="sourceLineNo">23577</span>                                                float ox;<a name="line.23577"></a>
+<span class="sourceLineNo">23578</span>                                                float oy;<a name="line.23578"></a>
+<span class="sourceLineNo">23579</span>                                                tz = new Complex(-iy, ix).asin();<a name="line.23579"></a>
+<span class="sourceLineNo">23580</span>                                                ox = (float) (tz.getImaginary());<a name="line.23580"></a>
+<span class="sourceLineNo">23581</span>                                                oy = (float) (-tz.getReal());<a name="line.23581"></a>
+<span class="sourceLineNo">23582</span>                                                oc64data[it.oIndex] = ox;<a name="line.23582"></a>
+<span class="sourceLineNo">23583</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.23583"></a>
+<span class="sourceLineNo">23584</span>                                        }<a name="line.23584"></a>
+<span class="sourceLineNo">23585</span>                                } else {<a name="line.23585"></a>
+<span class="sourceLineNo">23586</span>                                        final long iy = 0;<a name="line.23586"></a>
+<span class="sourceLineNo">23587</span>                                        while (it.hasNext()) {<a name="line.23587"></a>
+<span class="sourceLineNo">23588</span>                                                final long ix = it.aLong;<a name="line.23588"></a>
+<span class="sourceLineNo">23589</span>                                                Complex tz;<a name="line.23589"></a>
+<span class="sourceLineNo">23590</span>                                                float ox;<a name="line.23590"></a>
+<span class="sourceLineNo">23591</span>                                                float oy;<a name="line.23591"></a>
+<span class="sourceLineNo">23592</span>                                                tz = new Complex(-iy, ix).asin();<a name="line.23592"></a>
+<span class="sourceLineNo">23593</span>                                                ox = (float) toLong(tz.getImaginary());<a name="line.23593"></a>
+<span class="sourceLineNo">23594</span>                                                oy = (float) toLong(-tz.getReal());<a name="line.23594"></a>
+<span class="sourceLineNo">23595</span>                                                oc64data[it.oIndex] = ox;<a name="line.23595"></a>
+<span class="sourceLineNo">23596</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.23596"></a>
+<span class="sourceLineNo">23597</span>                                        }<a name="line.23597"></a>
+<span class="sourceLineNo">23598</span>                                }<a name="line.23598"></a>
+<span class="sourceLineNo">23599</span>                        } else {<a name="line.23599"></a>
+<span class="sourceLineNo">23600</span>                                while (it.hasNext()) {<a name="line.23600"></a>
+<span class="sourceLineNo">23601</span>                                        final double ix = it.aDouble;<a name="line.23601"></a>
+<span class="sourceLineNo">23602</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.23602"></a>
+<span class="sourceLineNo">23603</span>                                        Complex tz;<a name="line.23603"></a>
+<span class="sourceLineNo">23604</span>                                        float ox;<a name="line.23604"></a>
+<span class="sourceLineNo">23605</span>                                        float oy;<a name="line.23605"></a>
+<span class="sourceLineNo">23606</span>                                        tz = new Complex(-iy, ix).asin();<a name="line.23606"></a>
+<span class="sourceLineNo">23607</span>                                        ox = (float) (tz.getImaginary());<a name="line.23607"></a>
+<span class="sourceLineNo">23608</span>                                        oy = (float) (-tz.getReal());<a name="line.23608"></a>
+<span class="sourceLineNo">23609</span>                                        oc64data[it.oIndex] = ox;<a name="line.23609"></a>
+<span class="sourceLineNo">23610</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.23610"></a>
+<span class="sourceLineNo">23611</span>                                }<a name="line.23611"></a>
+<span class="sourceLineNo">23612</span>                        }<a name="line.23612"></a>
+<span class="sourceLineNo">23613</span>                        break;<a name="line.23613"></a>
+<span class="sourceLineNo">23614</span>                case Dataset.COMPLEX128:<a name="line.23614"></a>
+<span class="sourceLineNo">23615</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.23615"></a>
+<span class="sourceLineNo">23616</span>                        if (!da.isComplex()) {<a name="line.23616"></a>
+<span class="sourceLineNo">23617</span>                                if (it.isOutputDouble()) {<a name="line.23617"></a>
+<span class="sourceLineNo">23618</span>                                        final double iy = 0;<a name="line.23618"></a>
+<span class="sourceLineNo">23619</span>                                        while (it.hasNext()) {<a name="line.23619"></a>
+<span class="sourceLineNo">23620</span>                                                final double ix = it.aDouble;<a name="line.23620"></a>
+<span class="sourceLineNo">23621</span>                                                Complex tz;<a name="line.23621"></a>
+<span class="sourceLineNo">23622</span>                                                double ox;<a name="line.23622"></a>
+<span class="sourceLineNo">23623</span>                                                double oy;<a name="line.23623"></a>
+<span class="sourceLineNo">23624</span>                                                tz = new Complex(-iy, ix).asin();<a name="line.23624"></a>
+<span class="sourceLineNo">23625</span>                                                ox = (tz.getImaginary());<a name="line.23625"></a>
+<span class="sourceLineNo">23626</span>                                                oy = (-tz.getReal());<a name="line.23626"></a>
+<span class="sourceLineNo">23627</span>                                                oc128data[it.oIndex] = ox;<a name="line.23627"></a>
+<span class="sourceLineNo">23628</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.23628"></a>
+<span class="sourceLineNo">23629</span>                                        }<a name="line.23629"></a>
+<span class="sourceLineNo">23630</span>                                } else {<a name="line.23630"></a>
+<span class="sourceLineNo">23631</span>                                        final long iy = 0;<a name="line.23631"></a>
+<span class="sourceLineNo">23632</span>                                        while (it.hasNext()) {<a name="line.23632"></a>
+<span class="sourceLineNo">23633</span>                                                final long ix = it.aLong;<a name="line.23633"></a>
+<span class="sourceLineNo">23634</span>                                                Complex tz;<a name="line.23634"></a>
+<span class="sourceLineNo">23635</span>                                                double ox;<a name="line.23635"></a>
+<span class="sourceLineNo">23636</span>                                                double oy;<a name="line.23636"></a>
+<span class="sourceLineNo">23637</span>                                                tz = new Complex(-iy, ix).asin();<a name="line.23637"></a>
+<span class="sourceLineNo">23638</span>                                                ox = (tz.getImaginary());<a name="line.23638"></a>
+<span class="sourceLineNo">23639</span>                                                oy = (-tz.getReal());<a name="line.23639"></a>
+<span class="sourceLineNo">23640</span>                                                oc128data[it.oIndex] = ox;<a name="line.23640"></a>
+<span class="sourceLineNo">23641</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.23641"></a>
+<span class="sourceLineNo">23642</span>                                        }<a name="line.23642"></a>
+<span class="sourceLineNo">23643</span>                                }<a name="line.23643"></a>
+<span class="sourceLineNo">23644</span>                        } else {<a name="line.23644"></a>
+<span class="sourceLineNo">23645</span>                                while (it.hasNext()) {<a name="line.23645"></a>
+<span class="sourceLineNo">23646</span>                                        final double ix = it.aDouble;<a name="line.23646"></a>
+<span class="sourceLineNo">23647</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.23647"></a>
+<span class="sourceLineNo">23648</span>                                        Complex tz;<a name="line.23648"></a>
+<span class="sourceLineNo">23649</span>                                        double ox;<a name="line.23649"></a>
+<span class="sourceLineNo">23650</span>                                        double oy;<a name="line.23650"></a>
+<span class="sourceLineNo">23651</span>                                        tz = new Complex(-iy, ix).asin();<a name="line.23651"></a>
+<span class="sourceLineNo">23652</span>                                        ox = (tz.getImaginary());<a name="line.23652"></a>
+<span class="sourceLineNo">23653</span>                                        oy = (-tz.getReal());<a name="line.23653"></a>
+<span class="sourceLineNo">23654</span>                                        oc128data[it.oIndex] = ox;<a name="line.23654"></a>
+<span class="sourceLineNo">23655</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.23655"></a>
+<span class="sourceLineNo">23656</span>                                }<a name="line.23656"></a>
+<span class="sourceLineNo">23657</span>                        }<a name="line.23657"></a>
+<span class="sourceLineNo">23658</span>                        break;<a name="line.23658"></a>
+<span class="sourceLineNo">23659</span>                default:<a name="line.23659"></a>
+<span class="sourceLineNo">23660</span>                        throw new IllegalArgumentException("arcsinh supports integer, compound integer, real, compound real, complex datasets only");<a name="line.23660"></a>
+<span class="sourceLineNo">23661</span>                }<a name="line.23661"></a>
+<span class="sourceLineNo">23662</span><a name="line.23662"></a>
+<span class="sourceLineNo">23663</span>                addFunctionName(result, "arcsinh");<a name="line.23663"></a>
+<span class="sourceLineNo">23664</span>                return result;<a name="line.23664"></a>
+<span class="sourceLineNo">23665</span>        }<a name="line.23665"></a>
+<span class="sourceLineNo">23666</span><a name="line.23666"></a>
+<span class="sourceLineNo">23667</span>        /**<a name="line.23667"></a>
+<span class="sourceLineNo">23668</span>         * arccosh - evaluate the inverse hyperbolic cosine function on each element of the dataset<a name="line.23668"></a>
+<span class="sourceLineNo">23669</span>         * @param a<a name="line.23669"></a>
+<span class="sourceLineNo">23670</span>         * @return dataset<a name="line.23670"></a>
+<span class="sourceLineNo">23671</span>         */<a name="line.23671"></a>
+<span class="sourceLineNo">23672</span>        public static Dataset arccosh(final Object a) {<a name="line.23672"></a>
+<span class="sourceLineNo">23673</span>                return arccosh(a, null);<a name="line.23673"></a>
+<span class="sourceLineNo">23674</span>        }<a name="line.23674"></a>
+<span class="sourceLineNo">23675</span><a name="line.23675"></a>
+<span class="sourceLineNo">23676</span>        /**<a name="line.23676"></a>
+<span class="sourceLineNo">23677</span>         * arccosh - evaluate the inverse hyperbolic cosine function on each element of the dataset<a name="line.23677"></a>
+<span class="sourceLineNo">23678</span>         * @param a<a name="line.23678"></a>
+<span class="sourceLineNo">23679</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.23679"></a>
+<span class="sourceLineNo">23680</span>         * @return dataset<a name="line.23680"></a>
+<span class="sourceLineNo">23681</span>         */<a name="line.23681"></a>
+<span class="sourceLineNo">23682</span>        public static Dataset arccosh(final Object a, final Dataset o) {<a name="line.23682"></a>
+<span class="sourceLineNo">23683</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.23683"></a>
+<span class="sourceLineNo">23684</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.23684"></a>
+<span class="sourceLineNo">23685</span>                final Dataset result = it.getOutput();<a name="line.23685"></a>
+<span class="sourceLineNo">23686</span>                if (!result.isComplex()) {<a name="line.23686"></a>
+<span class="sourceLineNo">23687</span>                        if (da.isComplex()) {<a name="line.23687"></a>
+<span class="sourceLineNo">23688</span>                                da = da.getRealView();<a name="line.23688"></a>
+<span class="sourceLineNo">23689</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.23689"></a>
+<span class="sourceLineNo">23690</span>                        }<a name="line.23690"></a>
+<span class="sourceLineNo">23691</span>                }<a name="line.23691"></a>
+<span class="sourceLineNo">23692</span>                final int is = result.getElementsPerItem();<a name="line.23692"></a>
+<span class="sourceLineNo">23693</span>                final int as = da.getElementsPerItem();<a name="line.23693"></a>
+<span class="sourceLineNo">23694</span>                final int dt = result.getDType();<a name="line.23694"></a>
+<span class="sourceLineNo">23695</span><a name="line.23695"></a>
+<span class="sourceLineNo">23696</span>                switch(dt) {<a name="line.23696"></a>
+<span class="sourceLineNo">23697</span>                case Dataset.INT8:<a name="line.23697"></a>
+<span class="sourceLineNo">23698</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.23698"></a>
+<span class="sourceLineNo">23699</span>                        if (it.isOutputDouble()) {<a name="line.23699"></a>
+<span class="sourceLineNo">23700</span>                                while (it.hasNext()) {<a name="line.23700"></a>
+<span class="sourceLineNo">23701</span>                                        final double ix = it.aDouble;<a name="line.23701"></a>
+<span class="sourceLineNo">23702</span>                                        byte ox;<a name="line.23702"></a>
+<span class="sourceLineNo">23703</span>                                        ox = (byte) toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23703"></a>
+<span class="sourceLineNo">23704</span>                                        oi8data[it.oIndex] = ox;<a name="line.23704"></a>
+<span class="sourceLineNo">23705</span>                                }<a name="line.23705"></a>
+<span class="sourceLineNo">23706</span>                        } else {<a name="line.23706"></a>
+<span class="sourceLineNo">23707</span>                                while (it.hasNext()) {<a name="line.23707"></a>
+<span class="sourceLineNo">23708</span>                                        final long ix = it.aLong;<a name="line.23708"></a>
+<span class="sourceLineNo">23709</span>                                        byte ox;<a name="line.23709"></a>
+<span class="sourceLineNo">23710</span>                                        ox = (byte) toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23710"></a>
+<span class="sourceLineNo">23711</span>                                        oi8data[it.oIndex] = ox;<a name="line.23711"></a>
+<span class="sourceLineNo">23712</span>                                }<a name="line.23712"></a>
+<span class="sourceLineNo">23713</span>                        }<a name="line.23713"></a>
+<span class="sourceLineNo">23714</span>                        break;<a name="line.23714"></a>
+<span class="sourceLineNo">23715</span>                case Dataset.INT16:<a name="line.23715"></a>
+<span class="sourceLineNo">23716</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.23716"></a>
+<span class="sourceLineNo">23717</span>                        if (it.isOutputDouble()) {<a name="line.23717"></a>
+<span class="sourceLineNo">23718</span>                                while (it.hasNext()) {<a name="line.23718"></a>
+<span class="sourceLineNo">23719</span>                                        final double ix = it.aDouble;<a name="line.23719"></a>
+<span class="sourceLineNo">23720</span>                                        short ox;<a name="line.23720"></a>
+<span class="sourceLineNo">23721</span>                                        ox = (short) toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23721"></a>
+<span class="sourceLineNo">23722</span>                                        oi16data[it.oIndex] = ox;<a name="line.23722"></a>
+<span class="sourceLineNo">23723</span>                                }<a name="line.23723"></a>
+<span class="sourceLineNo">23724</span>                        } else {<a name="line.23724"></a>
+<span class="sourceLineNo">23725</span>                                while (it.hasNext()) {<a name="line.23725"></a>
+<span class="sourceLineNo">23726</span>                                        final long ix = it.aLong;<a name="line.23726"></a>
+<span class="sourceLineNo">23727</span>                                        short ox;<a name="line.23727"></a>
+<span class="sourceLineNo">23728</span>                                        ox = (short) toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23728"></a>
+<span class="sourceLineNo">23729</span>                                        oi16data[it.oIndex] = ox;<a name="line.23729"></a>
+<span class="sourceLineNo">23730</span>                                }<a name="line.23730"></a>
+<span class="sourceLineNo">23731</span>                        }<a name="line.23731"></a>
+<span class="sourceLineNo">23732</span>                        break;<a name="line.23732"></a>
+<span class="sourceLineNo">23733</span>                case Dataset.INT64:<a name="line.23733"></a>
+<span class="sourceLineNo">23734</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.23734"></a>
+<span class="sourceLineNo">23735</span>                        if (it.isOutputDouble()) {<a name="line.23735"></a>
+<span class="sourceLineNo">23736</span>                                while (it.hasNext()) {<a name="line.23736"></a>
+<span class="sourceLineNo">23737</span>                                        final double ix = it.aDouble;<a name="line.23737"></a>
+<span class="sourceLineNo">23738</span>                                        long ox;<a name="line.23738"></a>
+<span class="sourceLineNo">23739</span>                                        ox = toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23739"></a>
+<span class="sourceLineNo">23740</span>                                        oi64data[it.oIndex] = ox;<a name="line.23740"></a>
+<span class="sourceLineNo">23741</span>                                }<a name="line.23741"></a>
+<span class="sourceLineNo">23742</span>                        } else {<a name="line.23742"></a>
+<span class="sourceLineNo">23743</span>                                while (it.hasNext()) {<a name="line.23743"></a>
+<span class="sourceLineNo">23744</span>                                        final long ix = it.aLong;<a name="line.23744"></a>
+<span class="sourceLineNo">23745</span>                                        long ox;<a name="line.23745"></a>
+<span class="sourceLineNo">23746</span>                                        ox = toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23746"></a>
+<span class="sourceLineNo">23747</span>                                        oi64data[it.oIndex] = ox;<a name="line.23747"></a>
+<span class="sourceLineNo">23748</span>                                }<a name="line.23748"></a>
+<span class="sourceLineNo">23749</span>                        }<a name="line.23749"></a>
+<span class="sourceLineNo">23750</span>                        break;<a name="line.23750"></a>
+<span class="sourceLineNo">23751</span>                case Dataset.INT32:<a name="line.23751"></a>
+<span class="sourceLineNo">23752</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.23752"></a>
+<span class="sourceLineNo">23753</span>                        if (it.isOutputDouble()) {<a name="line.23753"></a>
+<span class="sourceLineNo">23754</span>                                while (it.hasNext()) {<a name="line.23754"></a>
+<span class="sourceLineNo">23755</span>                                        final double ix = it.aDouble;<a name="line.23755"></a>
+<span class="sourceLineNo">23756</span>                                        int ox;<a name="line.23756"></a>
+<span class="sourceLineNo">23757</span>                                        ox = (int) toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23757"></a>
+<span class="sourceLineNo">23758</span>                                        oi32data[it.oIndex] = ox;<a name="line.23758"></a>
+<span class="sourceLineNo">23759</span>                                }<a name="line.23759"></a>
+<span class="sourceLineNo">23760</span>                        } else {<a name="line.23760"></a>
+<span class="sourceLineNo">23761</span>                                while (it.hasNext()) {<a name="line.23761"></a>
+<span class="sourceLineNo">23762</span>                                        final long ix = it.aLong;<a name="line.23762"></a>
+<span class="sourceLineNo">23763</span>                                        int ox;<a name="line.23763"></a>
+<span class="sourceLineNo">23764</span>                                        ox = (int) toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23764"></a>
+<span class="sourceLineNo">23765</span>                                        oi32data[it.oIndex] = ox;<a name="line.23765"></a>
+<span class="sourceLineNo">23766</span>                                }<a name="line.23766"></a>
+<span class="sourceLineNo">23767</span>                        }<a name="line.23767"></a>
+<span class="sourceLineNo">23768</span>                        break;<a name="line.23768"></a>
+<span class="sourceLineNo">23769</span>                case Dataset.ARRAYINT8:<a name="line.23769"></a>
+<span class="sourceLineNo">23770</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.23770"></a>
+<span class="sourceLineNo">23771</span>                        if (is == 1) {<a name="line.23771"></a>
+<span class="sourceLineNo">23772</span>                                if (it.isOutputDouble()) {<a name="line.23772"></a>
+<span class="sourceLineNo">23773</span>                                        while (it.hasNext()) {<a name="line.23773"></a>
+<span class="sourceLineNo">23774</span>                                                final double ix = it.aDouble;<a name="line.23774"></a>
+<span class="sourceLineNo">23775</span>                                                byte ox;<a name="line.23775"></a>
+<span class="sourceLineNo">23776</span>                                                ox = (byte) toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23776"></a>
+<span class="sourceLineNo">23777</span>                                                oai8data[it.oIndex] = ox;<a name="line.23777"></a>
+<span class="sourceLineNo">23778</span>                                        }<a name="line.23778"></a>
+<span class="sourceLineNo">23779</span>                                } else {<a name="line.23779"></a>
+<span class="sourceLineNo">23780</span>                                        while (it.hasNext()) {<a name="line.23780"></a>
+<span class="sourceLineNo">23781</span>                                                final long ix = it.aLong;<a name="line.23781"></a>
+<span class="sourceLineNo">23782</span>                                                byte ox;<a name="line.23782"></a>
+<span class="sourceLineNo">23783</span>                                                ox = (byte) toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23783"></a>
+<span class="sourceLineNo">23784</span>                                                oai8data[it.oIndex] = ox;<a name="line.23784"></a>
+<span class="sourceLineNo">23785</span>                                        }<a name="line.23785"></a>
+<span class="sourceLineNo">23786</span>                                }<a name="line.23786"></a>
+<span class="sourceLineNo">23787</span>                        } else if (as == 1) {<a name="line.23787"></a>
+<span class="sourceLineNo">23788</span>                                if (it.isOutputDouble()) {<a name="line.23788"></a>
+<span class="sourceLineNo">23789</span>                                        while (it.hasNext()) {<a name="line.23789"></a>
+<span class="sourceLineNo">23790</span>                                                final double ix = it.aDouble;<a name="line.23790"></a>
+<span class="sourceLineNo">23791</span>                                                byte ox;<a name="line.23791"></a>
+<span class="sourceLineNo">23792</span>                                                ox = (byte) toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23792"></a>
+<span class="sourceLineNo">23793</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23793"></a>
+<span class="sourceLineNo">23794</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.23794"></a>
+<span class="sourceLineNo">23795</span>                                                }<a name="line.23795"></a>
+<span class="sourceLineNo">23796</span>                                        }<a name="line.23796"></a>
+<span class="sourceLineNo">23797</span>                                } else {<a name="line.23797"></a>
+<span class="sourceLineNo">23798</span>                                        while (it.hasNext()) {<a name="line.23798"></a>
+<span class="sourceLineNo">23799</span>                                                final long ix = it.aLong;<a name="line.23799"></a>
+<span class="sourceLineNo">23800</span>                                                byte ox;<a name="line.23800"></a>
+<span class="sourceLineNo">23801</span>                                                ox = (byte) toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23801"></a>
+<span class="sourceLineNo">23802</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23802"></a>
+<span class="sourceLineNo">23803</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.23803"></a>
+<span class="sourceLineNo">23804</span>                                                }<a name="line.23804"></a>
+<span class="sourceLineNo">23805</span>                                        }<a name="line.23805"></a>
+<span class="sourceLineNo">23806</span>                                }<a name="line.23806"></a>
+<span class="sourceLineNo">23807</span>                        } else {<a name="line.23807"></a>
+<span class="sourceLineNo">23808</span>                                if (it.isOutputDouble()) {<a name="line.23808"></a>
+<span class="sourceLineNo">23809</span>                                        while (it.hasNext()) {<a name="line.23809"></a>
+<span class="sourceLineNo">23810</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23810"></a>
+<span class="sourceLineNo">23811</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.23811"></a>
+<span class="sourceLineNo">23812</span>                                                        byte ox;<a name="line.23812"></a>
+<span class="sourceLineNo">23813</span>                                                        ox = (byte) toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23813"></a>
+<span class="sourceLineNo">23814</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.23814"></a>
+<span class="sourceLineNo">23815</span>                                                }<a name="line.23815"></a>
+<span class="sourceLineNo">23816</span>                                        }<a name="line.23816"></a>
+<span class="sourceLineNo">23817</span>                                } else {<a name="line.23817"></a>
+<span class="sourceLineNo">23818</span>                                        while (it.hasNext()) {<a name="line.23818"></a>
+<span class="sourceLineNo">23819</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23819"></a>
+<span class="sourceLineNo">23820</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.23820"></a>
+<span class="sourceLineNo">23821</span>                                                        byte ox;<a name="line.23821"></a>
+<span class="sourceLineNo">23822</span>                                                        ox = (byte) toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23822"></a>
+<span class="sourceLineNo">23823</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.23823"></a>
+<span class="sourceLineNo">23824</span>                                                }<a name="line.23824"></a>
+<span class="sourceLineNo">23825</span>                                        }<a name="line.23825"></a>
+<span class="sourceLineNo">23826</span>                                }<a name="line.23826"></a>
+<span class="sourceLineNo">23827</span>                        }<a name="line.23827"></a>
+<span class="sourceLineNo">23828</span>                        break;<a name="line.23828"></a>
+<span class="sourceLineNo">23829</span>                case Dataset.ARRAYINT16:<a name="line.23829"></a>
+<span class="sourceLineNo">23830</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.23830"></a>
+<span class="sourceLineNo">23831</span>                        if (is == 1) {<a name="line.23831"></a>
+<span class="sourceLineNo">23832</span>                                if (it.isOutputDouble()) {<a name="line.23832"></a>
+<span class="sourceLineNo">23833</span>                                        while (it.hasNext()) {<a name="line.23833"></a>
+<span class="sourceLineNo">23834</span>                                                final double ix = it.aDouble;<a name="line.23834"></a>
+<span class="sourceLineNo">23835</span>                                                short ox;<a name="line.23835"></a>
+<span class="sourceLineNo">23836</span>                                                ox = (short) toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23836"></a>
+<span class="sourceLineNo">23837</span>                                                oai16data[it.oIndex] = ox;<a name="line.23837"></a>
+<span class="sourceLineNo">23838</span>                                        }<a name="line.23838"></a>
+<span class="sourceLineNo">23839</span>                                } else {<a name="line.23839"></a>
+<span class="sourceLineNo">23840</span>                                        while (it.hasNext()) {<a name="line.23840"></a>
+<span class="sourceLineNo">23841</span>                                                final long ix = it.aLong;<a name="line.23841"></a>
+<span class="sourceLineNo">23842</span>                                                short ox;<a name="line.23842"></a>
+<span class="sourceLineNo">23843</span>                                                ox = (short) toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23843"></a>
+<span class="sourceLineNo">23844</span>                                                oai16data[it.oIndex] = ox;<a name="line.23844"></a>
+<span class="sourceLineNo">23845</span>                                        }<a name="line.23845"></a>
+<span class="sourceLineNo">23846</span>                                }<a name="line.23846"></a>
+<span class="sourceLineNo">23847</span>                        } else if (as == 1) {<a name="line.23847"></a>
+<span class="sourceLineNo">23848</span>                                if (it.isOutputDouble()) {<a name="line.23848"></a>
+<span class="sourceLineNo">23849</span>                                        while (it.hasNext()) {<a name="line.23849"></a>
+<span class="sourceLineNo">23850</span>                                                final double ix = it.aDouble;<a name="line.23850"></a>
+<span class="sourceLineNo">23851</span>                                                short ox;<a name="line.23851"></a>
+<span class="sourceLineNo">23852</span>                                                ox = (short) toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23852"></a>
+<span class="sourceLineNo">23853</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23853"></a>
+<span class="sourceLineNo">23854</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.23854"></a>
+<span class="sourceLineNo">23855</span>                                                }<a name="line.23855"></a>
+<span class="sourceLineNo">23856</span>                                        }<a name="line.23856"></a>
+<span class="sourceLineNo">23857</span>                                } else {<a name="line.23857"></a>
+<span class="sourceLineNo">23858</span>                                        while (it.hasNext()) {<a name="line.23858"></a>
+<span class="sourceLineNo">23859</span>                                                final long ix = it.aLong;<a name="line.23859"></a>
+<span class="sourceLineNo">23860</span>                                                short ox;<a name="line.23860"></a>
+<span class="sourceLineNo">23861</span>                                                ox = (short) toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23861"></a>
+<span class="sourceLineNo">23862</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23862"></a>
+<span class="sourceLineNo">23863</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.23863"></a>
+<span class="sourceLineNo">23864</span>                                                }<a name="line.23864"></a>
+<span class="sourceLineNo">23865</span>                                        }<a name="line.23865"></a>
+<span class="sourceLineNo">23866</span>                                }<a name="line.23866"></a>
+<span class="sourceLineNo">23867</span>                        } else {<a name="line.23867"></a>
+<span class="sourceLineNo">23868</span>                                if (it.isOutputDouble()) {<a name="line.23868"></a>
+<span class="sourceLineNo">23869</span>                                        while (it.hasNext()) {<a name="line.23869"></a>
+<span class="sourceLineNo">23870</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23870"></a>
+<span class="sourceLineNo">23871</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.23871"></a>
+<span class="sourceLineNo">23872</span>                                                        short ox;<a name="line.23872"></a>
+<span class="sourceLineNo">23873</span>                                                        ox = (short) toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23873"></a>
+<span class="sourceLineNo">23874</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.23874"></a>
+<span class="sourceLineNo">23875</span>                                                }<a name="line.23875"></a>
+<span class="sourceLineNo">23876</span>                                        }<a name="line.23876"></a>
+<span class="sourceLineNo">23877</span>                                } else {<a name="line.23877"></a>
+<span class="sourceLineNo">23878</span>                                        while (it.hasNext()) {<a name="line.23878"></a>
+<span class="sourceLineNo">23879</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23879"></a>
+<span class="sourceLineNo">23880</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.23880"></a>
+<span class="sourceLineNo">23881</span>                                                        short ox;<a name="line.23881"></a>
+<span class="sourceLineNo">23882</span>                                                        ox = (short) toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23882"></a>
+<span class="sourceLineNo">23883</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.23883"></a>
+<span class="sourceLineNo">23884</span>                                                }<a name="line.23884"></a>
+<span class="sourceLineNo">23885</span>                                        }<a name="line.23885"></a>
+<span class="sourceLineNo">23886</span>                                }<a name="line.23886"></a>
+<span class="sourceLineNo">23887</span>                        }<a name="line.23887"></a>
+<span class="sourceLineNo">23888</span>                        break;<a name="line.23888"></a>
+<span class="sourceLineNo">23889</span>                case Dataset.ARRAYINT64:<a name="line.23889"></a>
+<span class="sourceLineNo">23890</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.23890"></a>
+<span class="sourceLineNo">23891</span>                        if (is == 1) {<a name="line.23891"></a>
+<span class="sourceLineNo">23892</span>                                if (it.isOutputDouble()) {<a name="line.23892"></a>
+<span class="sourceLineNo">23893</span>                                        while (it.hasNext()) {<a name="line.23893"></a>
+<span class="sourceLineNo">23894</span>                                                final double ix = it.aDouble;<a name="line.23894"></a>
+<span class="sourceLineNo">23895</span>                                                long ox;<a name="line.23895"></a>
+<span class="sourceLineNo">23896</span>                                                ox = toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23896"></a>
+<span class="sourceLineNo">23897</span>                                                oai64data[it.oIndex] = ox;<a name="line.23897"></a>
+<span class="sourceLineNo">23898</span>                                        }<a name="line.23898"></a>
+<span class="sourceLineNo">23899</span>                                } else {<a name="line.23899"></a>
+<span class="sourceLineNo">23900</span>                                        while (it.hasNext()) {<a name="line.23900"></a>
+<span class="sourceLineNo">23901</span>                                                final long ix = it.aLong;<a name="line.23901"></a>
+<span class="sourceLineNo">23902</span>                                                long ox;<a name="line.23902"></a>
+<span class="sourceLineNo">23903</span>                                                ox = toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23903"></a>
+<span class="sourceLineNo">23904</span>                                                oai64data[it.oIndex] = ox;<a name="line.23904"></a>
+<span class="sourceLineNo">23905</span>                                        }<a name="line.23905"></a>
+<span class="sourceLineNo">23906</span>                                }<a name="line.23906"></a>
+<span class="sourceLineNo">23907</span>                        } else if (as == 1) {<a name="line.23907"></a>
+<span class="sourceLineNo">23908</span>                                if (it.isOutputDouble()) {<a name="line.23908"></a>
+<span class="sourceLineNo">23909</span>                                        while (it.hasNext()) {<a name="line.23909"></a>
+<span class="sourceLineNo">23910</span>                                                final double ix = it.aDouble;<a name="line.23910"></a>
+<span class="sourceLineNo">23911</span>                                                long ox;<a name="line.23911"></a>
+<span class="sourceLineNo">23912</span>                                                ox = toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23912"></a>
+<span class="sourceLineNo">23913</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23913"></a>
+<span class="sourceLineNo">23914</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.23914"></a>
+<span class="sourceLineNo">23915</span>                                                }<a name="line.23915"></a>
+<span class="sourceLineNo">23916</span>                                        }<a name="line.23916"></a>
+<span class="sourceLineNo">23917</span>                                } else {<a name="line.23917"></a>
+<span class="sourceLineNo">23918</span>                                        while (it.hasNext()) {<a name="line.23918"></a>
+<span class="sourceLineNo">23919</span>                                                final long ix = it.aLong;<a name="line.23919"></a>
+<span class="sourceLineNo">23920</span>                                                long ox;<a name="line.23920"></a>
+<span class="sourceLineNo">23921</span>                                                ox = toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23921"></a>
+<span class="sourceLineNo">23922</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23922"></a>
+<span class="sourceLineNo">23923</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.23923"></a>
+<span class="sourceLineNo">23924</span>                                                }<a name="line.23924"></a>
+<span class="sourceLineNo">23925</span>                                        }<a name="line.23925"></a>
+<span class="sourceLineNo">23926</span>                                }<a name="line.23926"></a>
+<span class="sourceLineNo">23927</span>                        } else {<a name="line.23927"></a>
+<span class="sourceLineNo">23928</span>                                if (it.isOutputDouble()) {<a name="line.23928"></a>
+<span class="sourceLineNo">23929</span>                                        while (it.hasNext()) {<a name="line.23929"></a>
+<span class="sourceLineNo">23930</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23930"></a>
+<span class="sourceLineNo">23931</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.23931"></a>
+<span class="sourceLineNo">23932</span>                                                        long ox;<a name="line.23932"></a>
+<span class="sourceLineNo">23933</span>                                                        ox = toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23933"></a>
+<span class="sourceLineNo">23934</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.23934"></a>
+<span class="sourceLineNo">23935</span>                                                }<a name="line.23935"></a>
+<span class="sourceLineNo">23936</span>                                        }<a name="line.23936"></a>
+<span class="sourceLineNo">23937</span>                                } else {<a name="line.23937"></a>
+<span class="sourceLineNo">23938</span>                                        while (it.hasNext()) {<a name="line.23938"></a>
+<span class="sourceLineNo">23939</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23939"></a>
+<span class="sourceLineNo">23940</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.23940"></a>
+<span class="sourceLineNo">23941</span>                                                        long ox;<a name="line.23941"></a>
+<span class="sourceLineNo">23942</span>                                                        ox = toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23942"></a>
+<span class="sourceLineNo">23943</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.23943"></a>
+<span class="sourceLineNo">23944</span>                                                }<a name="line.23944"></a>
+<span class="sourceLineNo">23945</span>                                        }<a name="line.23945"></a>
+<span class="sourceLineNo">23946</span>                                }<a name="line.23946"></a>
+<span class="sourceLineNo">23947</span>                        }<a name="line.23947"></a>
+<span class="sourceLineNo">23948</span>                        break;<a name="line.23948"></a>
+<span class="sourceLineNo">23949</span>                case Dataset.ARRAYINT32:<a name="line.23949"></a>
+<span class="sourceLineNo">23950</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.23950"></a>
+<span class="sourceLineNo">23951</span>                        if (is == 1) {<a name="line.23951"></a>
+<span class="sourceLineNo">23952</span>                                if (it.isOutputDouble()) {<a name="line.23952"></a>
+<span class="sourceLineNo">23953</span>                                        while (it.hasNext()) {<a name="line.23953"></a>
+<span class="sourceLineNo">23954</span>                                                final double ix = it.aDouble;<a name="line.23954"></a>
+<span class="sourceLineNo">23955</span>                                                int ox;<a name="line.23955"></a>
+<span class="sourceLineNo">23956</span>                                                ox = (int) toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23956"></a>
+<span class="sourceLineNo">23957</span>                                                oai32data[it.oIndex] = ox;<a name="line.23957"></a>
+<span class="sourceLineNo">23958</span>                                        }<a name="line.23958"></a>
+<span class="sourceLineNo">23959</span>                                } else {<a name="line.23959"></a>
+<span class="sourceLineNo">23960</span>                                        while (it.hasNext()) {<a name="line.23960"></a>
+<span class="sourceLineNo">23961</span>                                                final long ix = it.aLong;<a name="line.23961"></a>
+<span class="sourceLineNo">23962</span>                                                int ox;<a name="line.23962"></a>
+<span class="sourceLineNo">23963</span>                                                ox = (int) toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23963"></a>
+<span class="sourceLineNo">23964</span>                                                oai32data[it.oIndex] = ox;<a name="line.23964"></a>
+<span class="sourceLineNo">23965</span>                                        }<a name="line.23965"></a>
+<span class="sourceLineNo">23966</span>                                }<a name="line.23966"></a>
+<span class="sourceLineNo">23967</span>                        } else if (as == 1) {<a name="line.23967"></a>
+<span class="sourceLineNo">23968</span>                                if (it.isOutputDouble()) {<a name="line.23968"></a>
+<span class="sourceLineNo">23969</span>                                        while (it.hasNext()) {<a name="line.23969"></a>
+<span class="sourceLineNo">23970</span>                                                final double ix = it.aDouble;<a name="line.23970"></a>
+<span class="sourceLineNo">23971</span>                                                int ox;<a name="line.23971"></a>
+<span class="sourceLineNo">23972</span>                                                ox = (int) toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23972"></a>
+<span class="sourceLineNo">23973</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23973"></a>
+<span class="sourceLineNo">23974</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.23974"></a>
+<span class="sourceLineNo">23975</span>                                                }<a name="line.23975"></a>
+<span class="sourceLineNo">23976</span>                                        }<a name="line.23976"></a>
+<span class="sourceLineNo">23977</span>                                } else {<a name="line.23977"></a>
+<span class="sourceLineNo">23978</span>                                        while (it.hasNext()) {<a name="line.23978"></a>
+<span class="sourceLineNo">23979</span>                                                final long ix = it.aLong;<a name="line.23979"></a>
+<span class="sourceLineNo">23980</span>                                                int ox;<a name="line.23980"></a>
+<span class="sourceLineNo">23981</span>                                                ox = (int) toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23981"></a>
+<span class="sourceLineNo">23982</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23982"></a>
+<span class="sourceLineNo">23983</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.23983"></a>
+<span class="sourceLineNo">23984</span>                                                }<a name="line.23984"></a>
+<span class="sourceLineNo">23985</span>                                        }<a name="line.23985"></a>
+<span class="sourceLineNo">23986</span>                                }<a name="line.23986"></a>
+<span class="sourceLineNo">23987</span>                        } else {<a name="line.23987"></a>
+<span class="sourceLineNo">23988</span>                                if (it.isOutputDouble()) {<a name="line.23988"></a>
+<span class="sourceLineNo">23989</span>                                        while (it.hasNext()) {<a name="line.23989"></a>
+<span class="sourceLineNo">23990</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23990"></a>
+<span class="sourceLineNo">23991</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.23991"></a>
+<span class="sourceLineNo">23992</span>                                                        int ox;<a name="line.23992"></a>
+<span class="sourceLineNo">23993</span>                                                        ox = (int) toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.23993"></a>
+<span class="sourceLineNo">23994</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.23994"></a>
+<span class="sourceLineNo">23995</span>                                                }<a name="line.23995"></a>
+<span class="sourceLineNo">23996</span>                                        }<a name="line.23996"></a>
+<span class="sourceLineNo">23997</span>                                } else {<a name="line.23997"></a>
+<span class="sourceLineNo">23998</span>                                        while (it.hasNext()) {<a name="line.23998"></a>
+<span class="sourceLineNo">23999</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.23999"></a>
+<span class="sourceLineNo">24000</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.24000"></a>
+<span class="sourceLineNo">24001</span>                                                        int ox;<a name="line.24001"></a>
+<span class="sourceLineNo">24002</span>                                                        ox = (int) toLong(Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.24002"></a>
+<span class="sourceLineNo">24003</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.24003"></a>
+<span class="sourceLineNo">24004</span>                                                }<a name="line.24004"></a>
+<span class="sourceLineNo">24005</span>                                        }<a name="line.24005"></a>
+<span class="sourceLineNo">24006</span>                                }<a name="line.24006"></a>
+<span class="sourceLineNo">24007</span>                        }<a name="line.24007"></a>
+<span class="sourceLineNo">24008</span>                        break;<a name="line.24008"></a>
+<span class="sourceLineNo">24009</span>                case Dataset.FLOAT32:<a name="line.24009"></a>
+<span class="sourceLineNo">24010</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.24010"></a>
+<span class="sourceLineNo">24011</span>                        if (it.isOutputDouble()) {<a name="line.24011"></a>
+<span class="sourceLineNo">24012</span>                                while (it.hasNext()) {<a name="line.24012"></a>
+<span class="sourceLineNo">24013</span>                                        final double ix = it.aDouble;<a name="line.24013"></a>
+<span class="sourceLineNo">24014</span>                                        float ox;<a name="line.24014"></a>
+<span class="sourceLineNo">24015</span>                                        ox = (float) (Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.24015"></a>
+<span class="sourceLineNo">24016</span>                                        of32data[it.oIndex] = ox;<a name="line.24016"></a>
+<span class="sourceLineNo">24017</span>                                }<a name="line.24017"></a>
+<span class="sourceLineNo">24018</span>                        } else {<a name="line.24018"></a>
+<span class="sourceLineNo">24019</span>                                while (it.hasNext()) {<a name="line.24019"></a>
+<span class="sourceLineNo">24020</span>                                        final long ix = it.aLong;<a name="line.24020"></a>
+<span class="sourceLineNo">24021</span>                                        float ox;<a name="line.24021"></a>
+<span class="sourceLineNo">24022</span>                                        ox = (float) (Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.24022"></a>
+<span class="sourceLineNo">24023</span>                                        of32data[it.oIndex] = ox;<a name="line.24023"></a>
+<span class="sourceLineNo">24024</span>                                }<a name="line.24024"></a>
+<span class="sourceLineNo">24025</span>                        }<a name="line.24025"></a>
+<span class="sourceLineNo">24026</span>                        break;<a name="line.24026"></a>
+<span class="sourceLineNo">24027</span>                case Dataset.FLOAT64:<a name="line.24027"></a>
+<span class="sourceLineNo">24028</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.24028"></a>
+<span class="sourceLineNo">24029</span>                        if (it.isOutputDouble()) {<a name="line.24029"></a>
+<span class="sourceLineNo">24030</span>                                while (it.hasNext()) {<a name="line.24030"></a>
+<span class="sourceLineNo">24031</span>                                        final double ix = it.aDouble;<a name="line.24031"></a>
+<span class="sourceLineNo">24032</span>                                        double ox;<a name="line.24032"></a>
+<span class="sourceLineNo">24033</span>                                        ox = (Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.24033"></a>
+<span class="sourceLineNo">24034</span>                                        of64data[it.oIndex] = ox;<a name="line.24034"></a>
+<span class="sourceLineNo">24035</span>                                }<a name="line.24035"></a>
+<span class="sourceLineNo">24036</span>                        } else {<a name="line.24036"></a>
+<span class="sourceLineNo">24037</span>                                while (it.hasNext()) {<a name="line.24037"></a>
+<span class="sourceLineNo">24038</span>                                        final long ix = it.aLong;<a name="line.24038"></a>
+<span class="sourceLineNo">24039</span>                                        double ox;<a name="line.24039"></a>
+<span class="sourceLineNo">24040</span>                                        ox = (Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.24040"></a>
+<span class="sourceLineNo">24041</span>                                        of64data[it.oIndex] = ox;<a name="line.24041"></a>
+<span class="sourceLineNo">24042</span>                                }<a name="line.24042"></a>
+<span class="sourceLineNo">24043</span>                        }<a name="line.24043"></a>
+<span class="sourceLineNo">24044</span>                        break;<a name="line.24044"></a>
+<span class="sourceLineNo">24045</span>                case Dataset.ARRAYFLOAT32:<a name="line.24045"></a>
+<span class="sourceLineNo">24046</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.24046"></a>
+<span class="sourceLineNo">24047</span>                        if (is == 1) {<a name="line.24047"></a>
+<span class="sourceLineNo">24048</span>                                if (it.isOutputDouble()) {<a name="line.24048"></a>
+<span class="sourceLineNo">24049</span>                                        while (it.hasNext()) {<a name="line.24049"></a>
+<span class="sourceLineNo">24050</span>                                                final double ix = it.aDouble;<a name="line.24050"></a>
+<span class="sourceLineNo">24051</span>                                                float ox;<a name="line.24051"></a>
+<span class="sourceLineNo">24052</span>                                                ox = (float) (Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.24052"></a>
+<span class="sourceLineNo">24053</span>                                                oaf32data[it.oIndex] = ox;<a name="line.24053"></a>
+<span class="sourceLineNo">24054</span>                                        }<a name="line.24054"></a>
+<span class="sourceLineNo">24055</span>                                } else {<a name="line.24055"></a>
+<span class="sourceLineNo">24056</span>                                        while (it.hasNext()) {<a name="line.24056"></a>
+<span class="sourceLineNo">24057</span>                                                final long ix = it.aLong;<a name="line.24057"></a>
+<span class="sourceLineNo">24058</span>                                                float ox;<a name="line.24058"></a>
+<span class="sourceLineNo">24059</span>                                                ox = (float) (Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.24059"></a>
+<span class="sourceLineNo">24060</span>                                                oaf32data[it.oIndex] = ox;<a name="line.24060"></a>
+<span class="sourceLineNo">24061</span>                                        }<a name="line.24061"></a>
+<span class="sourceLineNo">24062</span>                                }<a name="line.24062"></a>
+<span class="sourceLineNo">24063</span>                        } else if (as == 1) {<a name="line.24063"></a>
+<span class="sourceLineNo">24064</span>                                if (it.isOutputDouble()) {<a name="line.24064"></a>
+<span class="sourceLineNo">24065</span>                                        while (it.hasNext()) {<a name="line.24065"></a>
+<span class="sourceLineNo">24066</span>                                                final double ix = it.aDouble;<a name="line.24066"></a>
+<span class="sourceLineNo">24067</span>                                                float ox;<a name="line.24067"></a>
+<span class="sourceLineNo">24068</span>                                                ox = (float) (Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.24068"></a>
+<span class="sourceLineNo">24069</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24069"></a>
+<span class="sourceLineNo">24070</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.24070"></a>
+<span class="sourceLineNo">24071</span>                                                }<a name="line.24071"></a>
+<span class="sourceLineNo">24072</span>                                        }<a name="line.24072"></a>
+<span class="sourceLineNo">24073</span>                                } else {<a name="line.24073"></a>
+<span class="sourceLineNo">24074</span>                                        while (it.hasNext()) {<a name="line.24074"></a>
+<span class="sourceLineNo">24075</span>                                                final long ix = it.aLong;<a name="line.24075"></a>
+<span class="sourceLineNo">24076</span>                                                float ox;<a name="line.24076"></a>
+<span class="sourceLineNo">24077</span>                                                ox = (float) (Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.24077"></a>
+<span class="sourceLineNo">24078</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24078"></a>
+<span class="sourceLineNo">24079</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.24079"></a>
+<span class="sourceLineNo">24080</span>                                                }<a name="line.24080"></a>
+<span class="sourceLineNo">24081</span>                                        }<a name="line.24081"></a>
+<span class="sourceLineNo">24082</span>                                }<a name="line.24082"></a>
+<span class="sourceLineNo">24083</span>                        } else {<a name="line.24083"></a>
+<span class="sourceLineNo">24084</span>                                if (it.isOutputDouble()) {<a name="line.24084"></a>
+<span class="sourceLineNo">24085</span>                                        while (it.hasNext()) {<a name="line.24085"></a>
+<span class="sourceLineNo">24086</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24086"></a>
+<span class="sourceLineNo">24087</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.24087"></a>
+<span class="sourceLineNo">24088</span>                                                        float ox;<a name="line.24088"></a>
+<span class="sourceLineNo">24089</span>                                                        ox = (float) (Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.24089"></a>
+<span class="sourceLineNo">24090</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.24090"></a>
+<span class="sourceLineNo">24091</span>                                                }<a name="line.24091"></a>
+<span class="sourceLineNo">24092</span>                                        }<a name="line.24092"></a>
+<span class="sourceLineNo">24093</span>                                } else {<a name="line.24093"></a>
+<span class="sourceLineNo">24094</span>                                        while (it.hasNext()) {<a name="line.24094"></a>
+<span class="sourceLineNo">24095</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24095"></a>
+<span class="sourceLineNo">24096</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.24096"></a>
+<span class="sourceLineNo">24097</span>                                                        float ox;<a name="line.24097"></a>
+<span class="sourceLineNo">24098</span>                                                        ox = (float) (Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.24098"></a>
+<span class="sourceLineNo">24099</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.24099"></a>
+<span class="sourceLineNo">24100</span>                                                }<a name="line.24100"></a>
+<span class="sourceLineNo">24101</span>                                        }<a name="line.24101"></a>
+<span class="sourceLineNo">24102</span>                                }<a name="line.24102"></a>
+<span class="sourceLineNo">24103</span>                        }<a name="line.24103"></a>
+<span class="sourceLineNo">24104</span>                        break;<a name="line.24104"></a>
+<span class="sourceLineNo">24105</span>                case Dataset.ARRAYFLOAT64:<a name="line.24105"></a>
+<span class="sourceLineNo">24106</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.24106"></a>
+<span class="sourceLineNo">24107</span>                        if (is == 1) {<a name="line.24107"></a>
+<span class="sourceLineNo">24108</span>                                if (it.isOutputDouble()) {<a name="line.24108"></a>
+<span class="sourceLineNo">24109</span>                                        while (it.hasNext()) {<a name="line.24109"></a>
+<span class="sourceLineNo">24110</span>                                                final double ix = it.aDouble;<a name="line.24110"></a>
+<span class="sourceLineNo">24111</span>                                                double ox;<a name="line.24111"></a>
+<span class="sourceLineNo">24112</span>                                                ox = (Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.24112"></a>
+<span class="sourceLineNo">24113</span>                                                oaf64data[it.oIndex] = ox;<a name="line.24113"></a>
+<span class="sourceLineNo">24114</span>                                        }<a name="line.24114"></a>
+<span class="sourceLineNo">24115</span>                                } else {<a name="line.24115"></a>
+<span class="sourceLineNo">24116</span>                                        while (it.hasNext()) {<a name="line.24116"></a>
+<span class="sourceLineNo">24117</span>                                                final long ix = it.aLong;<a name="line.24117"></a>
+<span class="sourceLineNo">24118</span>                                                double ox;<a name="line.24118"></a>
+<span class="sourceLineNo">24119</span>                                                ox = (Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.24119"></a>
+<span class="sourceLineNo">24120</span>                                                oaf64data[it.oIndex] = ox;<a name="line.24120"></a>
+<span class="sourceLineNo">24121</span>                                        }<a name="line.24121"></a>
+<span class="sourceLineNo">24122</span>                                }<a name="line.24122"></a>
+<span class="sourceLineNo">24123</span>                        } else if (as == 1) {<a name="line.24123"></a>
+<span class="sourceLineNo">24124</span>                                if (it.isOutputDouble()) {<a name="line.24124"></a>
+<span class="sourceLineNo">24125</span>                                        while (it.hasNext()) {<a name="line.24125"></a>
+<span class="sourceLineNo">24126</span>                                                final double ix = it.aDouble;<a name="line.24126"></a>
+<span class="sourceLineNo">24127</span>                                                double ox;<a name="line.24127"></a>
+<span class="sourceLineNo">24128</span>                                                ox = (Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.24128"></a>
+<span class="sourceLineNo">24129</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24129"></a>
+<span class="sourceLineNo">24130</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.24130"></a>
+<span class="sourceLineNo">24131</span>                                                }<a name="line.24131"></a>
+<span class="sourceLineNo">24132</span>                                        }<a name="line.24132"></a>
+<span class="sourceLineNo">24133</span>                                } else {<a name="line.24133"></a>
+<span class="sourceLineNo">24134</span>                                        while (it.hasNext()) {<a name="line.24134"></a>
+<span class="sourceLineNo">24135</span>                                                final long ix = it.aLong;<a name="line.24135"></a>
+<span class="sourceLineNo">24136</span>                                                double ox;<a name="line.24136"></a>
+<span class="sourceLineNo">24137</span>                                                ox = (Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.24137"></a>
+<span class="sourceLineNo">24138</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24138"></a>
+<span class="sourceLineNo">24139</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.24139"></a>
+<span class="sourceLineNo">24140</span>                                                }<a name="line.24140"></a>
+<span class="sourceLineNo">24141</span>                                        }<a name="line.24141"></a>
+<span class="sourceLineNo">24142</span>                                }<a name="line.24142"></a>
+<span class="sourceLineNo">24143</span>                        } else {<a name="line.24143"></a>
+<span class="sourceLineNo">24144</span>                                if (it.isOutputDouble()) {<a name="line.24144"></a>
+<span class="sourceLineNo">24145</span>                                        while (it.hasNext()) {<a name="line.24145"></a>
+<span class="sourceLineNo">24146</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24146"></a>
+<span class="sourceLineNo">24147</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.24147"></a>
+<span class="sourceLineNo">24148</span>                                                        double ox;<a name="line.24148"></a>
+<span class="sourceLineNo">24149</span>                                                        ox = (Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.24149"></a>
+<span class="sourceLineNo">24150</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.24150"></a>
+<span class="sourceLineNo">24151</span>                                                }<a name="line.24151"></a>
+<span class="sourceLineNo">24152</span>                                        }<a name="line.24152"></a>
+<span class="sourceLineNo">24153</span>                                } else {<a name="line.24153"></a>
+<span class="sourceLineNo">24154</span>                                        while (it.hasNext()) {<a name="line.24154"></a>
+<span class="sourceLineNo">24155</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24155"></a>
+<span class="sourceLineNo">24156</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.24156"></a>
+<span class="sourceLineNo">24157</span>                                                        double ox;<a name="line.24157"></a>
+<span class="sourceLineNo">24158</span>                                                        ox = (Math.log(ix + Math.sqrt(ix*ix - 1)));<a name="line.24158"></a>
+<span class="sourceLineNo">24159</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.24159"></a>
+<span class="sourceLineNo">24160</span>                                                }<a name="line.24160"></a>
+<span class="sourceLineNo">24161</span>                                        }<a name="line.24161"></a>
+<span class="sourceLineNo">24162</span>                                }<a name="line.24162"></a>
+<span class="sourceLineNo">24163</span>                        }<a name="line.24163"></a>
+<span class="sourceLineNo">24164</span>                        break;<a name="line.24164"></a>
+<span class="sourceLineNo">24165</span>                case Dataset.COMPLEX64:<a name="line.24165"></a>
+<span class="sourceLineNo">24166</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.24166"></a>
+<span class="sourceLineNo">24167</span>                        if (!da.isComplex()) {<a name="line.24167"></a>
+<span class="sourceLineNo">24168</span>                                if (it.isOutputDouble()) {<a name="line.24168"></a>
+<span class="sourceLineNo">24169</span>                                        final double iy = 0;<a name="line.24169"></a>
+<span class="sourceLineNo">24170</span>                                        while (it.hasNext()) {<a name="line.24170"></a>
+<span class="sourceLineNo">24171</span>                                                final double ix = it.aDouble;<a name="line.24171"></a>
+<span class="sourceLineNo">24172</span>                                                Complex tz;<a name="line.24172"></a>
+<span class="sourceLineNo">24173</span>                                                float ox;<a name="line.24173"></a>
+<span class="sourceLineNo">24174</span>                                                float oy;<a name="line.24174"></a>
+<span class="sourceLineNo">24175</span>                                                tz = new Complex(-iy, ix).acos();<a name="line.24175"></a>
+<span class="sourceLineNo">24176</span>                                                ox = (float) (tz.getImaginary());<a name="line.24176"></a>
+<span class="sourceLineNo">24177</span>                                                oy = (float) (-tz.getReal());<a name="line.24177"></a>
+<span class="sourceLineNo">24178</span>                                                oc64data[it.oIndex] = ox;<a name="line.24178"></a>
+<span class="sourceLineNo">24179</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.24179"></a>
+<span class="sourceLineNo">24180</span>                                        }<a name="line.24180"></a>
+<span class="sourceLineNo">24181</span>                                } else {<a name="line.24181"></a>
+<span class="sourceLineNo">24182</span>                                        final long iy = 0;<a name="line.24182"></a>
+<span class="sourceLineNo">24183</span>                                        while (it.hasNext()) {<a name="line.24183"></a>
+<span class="sourceLineNo">24184</span>                                                final long ix = it.aLong;<a name="line.24184"></a>
+<span class="sourceLineNo">24185</span>                                                Complex tz;<a name="line.24185"></a>
+<span class="sourceLineNo">24186</span>                                                float ox;<a name="line.24186"></a>
+<span class="sourceLineNo">24187</span>                                                float oy;<a name="line.24187"></a>
+<span class="sourceLineNo">24188</span>                                                tz = new Complex(-iy, ix).acos();<a name="line.24188"></a>
+<span class="sourceLineNo">24189</span>                                                ox = (float) toLong(tz.getImaginary());<a name="line.24189"></a>
+<span class="sourceLineNo">24190</span>                                                oy = (float) toLong(-tz.getReal());<a name="line.24190"></a>
+<span class="sourceLineNo">24191</span>                                                oc64data[it.oIndex] = ox;<a name="line.24191"></a>
+<span class="sourceLineNo">24192</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.24192"></a>
+<span class="sourceLineNo">24193</span>                                        }<a name="line.24193"></a>
+<span class="sourceLineNo">24194</span>                                }<a name="line.24194"></a>
+<span class="sourceLineNo">24195</span>                        } else {<a name="line.24195"></a>
+<span class="sourceLineNo">24196</span>                                while (it.hasNext()) {<a name="line.24196"></a>
+<span class="sourceLineNo">24197</span>                                        final double ix = it.aDouble;<a name="line.24197"></a>
+<span class="sourceLineNo">24198</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.24198"></a>
+<span class="sourceLineNo">24199</span>                                        Complex tz;<a name="line.24199"></a>
+<span class="sourceLineNo">24200</span>                                        float ox;<a name="line.24200"></a>
+<span class="sourceLineNo">24201</span>                                        float oy;<a name="line.24201"></a>
+<span class="sourceLineNo">24202</span>                                        tz = new Complex(-iy, ix).acos();<a name="line.24202"></a>
+<span class="sourceLineNo">24203</span>                                        ox = (float) (tz.getImaginary());<a name="line.24203"></a>
+<span class="sourceLineNo">24204</span>                                        oy = (float) (-tz.getReal());<a name="line.24204"></a>
+<span class="sourceLineNo">24205</span>                                        oc64data[it.oIndex] = ox;<a name="line.24205"></a>
+<span class="sourceLineNo">24206</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.24206"></a>
+<span class="sourceLineNo">24207</span>                                }<a name="line.24207"></a>
+<span class="sourceLineNo">24208</span>                        }<a name="line.24208"></a>
+<span class="sourceLineNo">24209</span>                        break;<a name="line.24209"></a>
+<span class="sourceLineNo">24210</span>                case Dataset.COMPLEX128:<a name="line.24210"></a>
+<span class="sourceLineNo">24211</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.24211"></a>
+<span class="sourceLineNo">24212</span>                        if (!da.isComplex()) {<a name="line.24212"></a>
+<span class="sourceLineNo">24213</span>                                if (it.isOutputDouble()) {<a name="line.24213"></a>
+<span class="sourceLineNo">24214</span>                                        final double iy = 0;<a name="line.24214"></a>
+<span class="sourceLineNo">24215</span>                                        while (it.hasNext()) {<a name="line.24215"></a>
+<span class="sourceLineNo">24216</span>                                                final double ix = it.aDouble;<a name="line.24216"></a>
+<span class="sourceLineNo">24217</span>                                                Complex tz;<a name="line.24217"></a>
+<span class="sourceLineNo">24218</span>                                                double ox;<a name="line.24218"></a>
+<span class="sourceLineNo">24219</span>                                                double oy;<a name="line.24219"></a>
+<span class="sourceLineNo">24220</span>                                                tz = new Complex(-iy, ix).acos();<a name="line.24220"></a>
+<span class="sourceLineNo">24221</span>                                                ox = (tz.getImaginary());<a name="line.24221"></a>
+<span class="sourceLineNo">24222</span>                                                oy = (-tz.getReal());<a name="line.24222"></a>
+<span class="sourceLineNo">24223</span>                                                oc128data[it.oIndex] = ox;<a name="line.24223"></a>
+<span class="sourceLineNo">24224</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.24224"></a>
+<span class="sourceLineNo">24225</span>                                        }<a name="line.24225"></a>
+<span class="sourceLineNo">24226</span>                                } else {<a name="line.24226"></a>
+<span class="sourceLineNo">24227</span>                                        final long iy = 0;<a name="line.24227"></a>
+<span class="sourceLineNo">24228</span>                                        while (it.hasNext()) {<a name="line.24228"></a>
+<span class="sourceLineNo">24229</span>                                                final long ix = it.aLong;<a name="line.24229"></a>
+<span class="sourceLineNo">24230</span>                                                Complex tz;<a name="line.24230"></a>
+<span class="sourceLineNo">24231</span>                                                double ox;<a name="line.24231"></a>
+<span class="sourceLineNo">24232</span>                                                double oy;<a name="line.24232"></a>
+<span class="sourceLineNo">24233</span>                                                tz = new Complex(-iy, ix).acos();<a name="line.24233"></a>
+<span class="sourceLineNo">24234</span>                                                ox = (tz.getImaginary());<a name="line.24234"></a>
+<span class="sourceLineNo">24235</span>                                                oy = (-tz.getReal());<a name="line.24235"></a>
+<span class="sourceLineNo">24236</span>                                                oc128data[it.oIndex] = ox;<a name="line.24236"></a>
+<span class="sourceLineNo">24237</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.24237"></a>
+<span class="sourceLineNo">24238</span>                                        }<a name="line.24238"></a>
+<span class="sourceLineNo">24239</span>                                }<a name="line.24239"></a>
+<span class="sourceLineNo">24240</span>                        } else {<a name="line.24240"></a>
+<span class="sourceLineNo">24241</span>                                while (it.hasNext()) {<a name="line.24241"></a>
+<span class="sourceLineNo">24242</span>                                        final double ix = it.aDouble;<a name="line.24242"></a>
+<span class="sourceLineNo">24243</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.24243"></a>
+<span class="sourceLineNo">24244</span>                                        Complex tz;<a name="line.24244"></a>
+<span class="sourceLineNo">24245</span>                                        double ox;<a name="line.24245"></a>
+<span class="sourceLineNo">24246</span>                                        double oy;<a name="line.24246"></a>
+<span class="sourceLineNo">24247</span>                                        tz = new Complex(-iy, ix).acos();<a name="line.24247"></a>
+<span class="sourceLineNo">24248</span>                                        ox = (tz.getImaginary());<a name="line.24248"></a>
+<span class="sourceLineNo">24249</span>                                        oy = (-tz.getReal());<a name="line.24249"></a>
+<span class="sourceLineNo">24250</span>                                        oc128data[it.oIndex] = ox;<a name="line.24250"></a>
+<span class="sourceLineNo">24251</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.24251"></a>
+<span class="sourceLineNo">24252</span>                                }<a name="line.24252"></a>
+<span class="sourceLineNo">24253</span>                        }<a name="line.24253"></a>
+<span class="sourceLineNo">24254</span>                        break;<a name="line.24254"></a>
+<span class="sourceLineNo">24255</span>                default:<a name="line.24255"></a>
+<span class="sourceLineNo">24256</span>                        throw new IllegalArgumentException("arccosh supports integer, compound integer, real, compound real, complex datasets only");<a name="line.24256"></a>
+<span class="sourceLineNo">24257</span>                }<a name="line.24257"></a>
+<span class="sourceLineNo">24258</span><a name="line.24258"></a>
+<span class="sourceLineNo">24259</span>                addFunctionName(result, "arccosh");<a name="line.24259"></a>
+<span class="sourceLineNo">24260</span>                return result;<a name="line.24260"></a>
+<span class="sourceLineNo">24261</span>        }<a name="line.24261"></a>
+<span class="sourceLineNo">24262</span><a name="line.24262"></a>
+<span class="sourceLineNo">24263</span>        /**<a name="line.24263"></a>
+<span class="sourceLineNo">24264</span>         * arctanh - evaluate the inverse hyperbolic tangent function on each element of the dataset<a name="line.24264"></a>
+<span class="sourceLineNo">24265</span>         * @param a<a name="line.24265"></a>
+<span class="sourceLineNo">24266</span>         * @return dataset<a name="line.24266"></a>
+<span class="sourceLineNo">24267</span>         */<a name="line.24267"></a>
+<span class="sourceLineNo">24268</span>        public static Dataset arctanh(final Object a) {<a name="line.24268"></a>
+<span class="sourceLineNo">24269</span>                return arctanh(a, null);<a name="line.24269"></a>
+<span class="sourceLineNo">24270</span>        }<a name="line.24270"></a>
+<span class="sourceLineNo">24271</span><a name="line.24271"></a>
+<span class="sourceLineNo">24272</span>        /**<a name="line.24272"></a>
+<span class="sourceLineNo">24273</span>         * arctanh - evaluate the inverse hyperbolic tangent function on each element of the dataset<a name="line.24273"></a>
+<span class="sourceLineNo">24274</span>         * @param a<a name="line.24274"></a>
+<span class="sourceLineNo">24275</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.24275"></a>
+<span class="sourceLineNo">24276</span>         * @return dataset<a name="line.24276"></a>
+<span class="sourceLineNo">24277</span>         */<a name="line.24277"></a>
+<span class="sourceLineNo">24278</span>        public static Dataset arctanh(final Object a, final Dataset o) {<a name="line.24278"></a>
+<span class="sourceLineNo">24279</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.24279"></a>
+<span class="sourceLineNo">24280</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.24280"></a>
+<span class="sourceLineNo">24281</span>                final Dataset result = it.getOutput();<a name="line.24281"></a>
+<span class="sourceLineNo">24282</span>                if (!result.isComplex()) {<a name="line.24282"></a>
+<span class="sourceLineNo">24283</span>                        if (da.isComplex()) {<a name="line.24283"></a>
+<span class="sourceLineNo">24284</span>                                da = da.getRealView();<a name="line.24284"></a>
+<span class="sourceLineNo">24285</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.24285"></a>
+<span class="sourceLineNo">24286</span>                        }<a name="line.24286"></a>
+<span class="sourceLineNo">24287</span>                }<a name="line.24287"></a>
+<span class="sourceLineNo">24288</span>                final int is = result.getElementsPerItem();<a name="line.24288"></a>
+<span class="sourceLineNo">24289</span>                final int as = da.getElementsPerItem();<a name="line.24289"></a>
+<span class="sourceLineNo">24290</span>                final int dt = result.getDType();<a name="line.24290"></a>
+<span class="sourceLineNo">24291</span><a name="line.24291"></a>
+<span class="sourceLineNo">24292</span>                switch(dt) {<a name="line.24292"></a>
+<span class="sourceLineNo">24293</span>                case Dataset.INT8:<a name="line.24293"></a>
+<span class="sourceLineNo">24294</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.24294"></a>
+<span class="sourceLineNo">24295</span>                        if (it.isOutputDouble()) {<a name="line.24295"></a>
+<span class="sourceLineNo">24296</span>                                while (it.hasNext()) {<a name="line.24296"></a>
+<span class="sourceLineNo">24297</span>                                        final double ix = it.aDouble;<a name="line.24297"></a>
+<span class="sourceLineNo">24298</span>                                        byte ox;<a name="line.24298"></a>
+<span class="sourceLineNo">24299</span>                                        ox = (byte) toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24299"></a>
+<span class="sourceLineNo">24300</span>                                        oi8data[it.oIndex] = ox;<a name="line.24300"></a>
+<span class="sourceLineNo">24301</span>                                }<a name="line.24301"></a>
+<span class="sourceLineNo">24302</span>                        } else {<a name="line.24302"></a>
+<span class="sourceLineNo">24303</span>                                while (it.hasNext()) {<a name="line.24303"></a>
+<span class="sourceLineNo">24304</span>                                        final long ix = it.aLong;<a name="line.24304"></a>
+<span class="sourceLineNo">24305</span>                                        byte ox;<a name="line.24305"></a>
+<span class="sourceLineNo">24306</span>                                        ox = (byte) toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24306"></a>
+<span class="sourceLineNo">24307</span>                                        oi8data[it.oIndex] = ox;<a name="line.24307"></a>
+<span class="sourceLineNo">24308</span>                                }<a name="line.24308"></a>
+<span class="sourceLineNo">24309</span>                        }<a name="line.24309"></a>
+<span class="sourceLineNo">24310</span>                        break;<a name="line.24310"></a>
+<span class="sourceLineNo">24311</span>                case Dataset.INT16:<a name="line.24311"></a>
+<span class="sourceLineNo">24312</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.24312"></a>
+<span class="sourceLineNo">24313</span>                        if (it.isOutputDouble()) {<a name="line.24313"></a>
+<span class="sourceLineNo">24314</span>                                while (it.hasNext()) {<a name="line.24314"></a>
+<span class="sourceLineNo">24315</span>                                        final double ix = it.aDouble;<a name="line.24315"></a>
+<span class="sourceLineNo">24316</span>                                        short ox;<a name="line.24316"></a>
+<span class="sourceLineNo">24317</span>                                        ox = (short) toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24317"></a>
+<span class="sourceLineNo">24318</span>                                        oi16data[it.oIndex] = ox;<a name="line.24318"></a>
+<span class="sourceLineNo">24319</span>                                }<a name="line.24319"></a>
+<span class="sourceLineNo">24320</span>                        } else {<a name="line.24320"></a>
+<span class="sourceLineNo">24321</span>                                while (it.hasNext()) {<a name="line.24321"></a>
+<span class="sourceLineNo">24322</span>                                        final long ix = it.aLong;<a name="line.24322"></a>
+<span class="sourceLineNo">24323</span>                                        short ox;<a name="line.24323"></a>
+<span class="sourceLineNo">24324</span>                                        ox = (short) toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24324"></a>
+<span class="sourceLineNo">24325</span>                                        oi16data[it.oIndex] = ox;<a name="line.24325"></a>
+<span class="sourceLineNo">24326</span>                                }<a name="line.24326"></a>
+<span class="sourceLineNo">24327</span>                        }<a name="line.24327"></a>
+<span class="sourceLineNo">24328</span>                        break;<a name="line.24328"></a>
+<span class="sourceLineNo">24329</span>                case Dataset.INT64:<a name="line.24329"></a>
+<span class="sourceLineNo">24330</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.24330"></a>
+<span class="sourceLineNo">24331</span>                        if (it.isOutputDouble()) {<a name="line.24331"></a>
+<span class="sourceLineNo">24332</span>                                while (it.hasNext()) {<a name="line.24332"></a>
+<span class="sourceLineNo">24333</span>                                        final double ix = it.aDouble;<a name="line.24333"></a>
+<span class="sourceLineNo">24334</span>                                        long ox;<a name="line.24334"></a>
+<span class="sourceLineNo">24335</span>                                        ox = toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24335"></a>
+<span class="sourceLineNo">24336</span>                                        oi64data[it.oIndex] = ox;<a name="line.24336"></a>
+<span class="sourceLineNo">24337</span>                                }<a name="line.24337"></a>
+<span class="sourceLineNo">24338</span>                        } else {<a name="line.24338"></a>
+<span class="sourceLineNo">24339</span>                                while (it.hasNext()) {<a name="line.24339"></a>
+<span class="sourceLineNo">24340</span>                                        final long ix = it.aLong;<a name="line.24340"></a>
+<span class="sourceLineNo">24341</span>                                        long ox;<a name="line.24341"></a>
+<span class="sourceLineNo">24342</span>                                        ox = toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24342"></a>
+<span class="sourceLineNo">24343</span>                                        oi64data[it.oIndex] = ox;<a name="line.24343"></a>
+<span class="sourceLineNo">24344</span>                                }<a name="line.24344"></a>
+<span class="sourceLineNo">24345</span>                        }<a name="line.24345"></a>
+<span class="sourceLineNo">24346</span>                        break;<a name="line.24346"></a>
+<span class="sourceLineNo">24347</span>                case Dataset.INT32:<a name="line.24347"></a>
+<span class="sourceLineNo">24348</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.24348"></a>
+<span class="sourceLineNo">24349</span>                        if (it.isOutputDouble()) {<a name="line.24349"></a>
+<span class="sourceLineNo">24350</span>                                while (it.hasNext()) {<a name="line.24350"></a>
+<span class="sourceLineNo">24351</span>                                        final double ix = it.aDouble;<a name="line.24351"></a>
+<span class="sourceLineNo">24352</span>                                        int ox;<a name="line.24352"></a>
+<span class="sourceLineNo">24353</span>                                        ox = (int) toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24353"></a>
+<span class="sourceLineNo">24354</span>                                        oi32data[it.oIndex] = ox;<a name="line.24354"></a>
+<span class="sourceLineNo">24355</span>                                }<a name="line.24355"></a>
+<span class="sourceLineNo">24356</span>                        } else {<a name="line.24356"></a>
+<span class="sourceLineNo">24357</span>                                while (it.hasNext()) {<a name="line.24357"></a>
+<span class="sourceLineNo">24358</span>                                        final long ix = it.aLong;<a name="line.24358"></a>
+<span class="sourceLineNo">24359</span>                                        int ox;<a name="line.24359"></a>
+<span class="sourceLineNo">24360</span>                                        ox = (int) toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24360"></a>
+<span class="sourceLineNo">24361</span>                                        oi32data[it.oIndex] = ox;<a name="line.24361"></a>
+<span class="sourceLineNo">24362</span>                                }<a name="line.24362"></a>
+<span class="sourceLineNo">24363</span>                        }<a name="line.24363"></a>
+<span class="sourceLineNo">24364</span>                        break;<a name="line.24364"></a>
+<span class="sourceLineNo">24365</span>                case Dataset.ARRAYINT8:<a name="line.24365"></a>
+<span class="sourceLineNo">24366</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.24366"></a>
+<span class="sourceLineNo">24367</span>                        if (is == 1) {<a name="line.24367"></a>
+<span class="sourceLineNo">24368</span>                                if (it.isOutputDouble()) {<a name="line.24368"></a>
+<span class="sourceLineNo">24369</span>                                        while (it.hasNext()) {<a name="line.24369"></a>
+<span class="sourceLineNo">24370</span>                                                final double ix = it.aDouble;<a name="line.24370"></a>
+<span class="sourceLineNo">24371</span>                                                byte ox;<a name="line.24371"></a>
+<span class="sourceLineNo">24372</span>                                                ox = (byte) toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24372"></a>
+<span class="sourceLineNo">24373</span>                                                oai8data[it.oIndex] = ox;<a name="line.24373"></a>
+<span class="sourceLineNo">24374</span>                                        }<a name="line.24374"></a>
+<span class="sourceLineNo">24375</span>                                } else {<a name="line.24375"></a>
+<span class="sourceLineNo">24376</span>                                        while (it.hasNext()) {<a name="line.24376"></a>
+<span class="sourceLineNo">24377</span>                                                final long ix = it.aLong;<a name="line.24377"></a>
+<span class="sourceLineNo">24378</span>                                                byte ox;<a name="line.24378"></a>
+<span class="sourceLineNo">24379</span>                                                ox = (byte) toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24379"></a>
+<span class="sourceLineNo">24380</span>                                                oai8data[it.oIndex] = ox;<a name="line.24380"></a>
+<span class="sourceLineNo">24381</span>                                        }<a name="line.24381"></a>
+<span class="sourceLineNo">24382</span>                                }<a name="line.24382"></a>
+<span class="sourceLineNo">24383</span>                        } else if (as == 1) {<a name="line.24383"></a>
+<span class="sourceLineNo">24384</span>                                if (it.isOutputDouble()) {<a name="line.24384"></a>
+<span class="sourceLineNo">24385</span>                                        while (it.hasNext()) {<a name="line.24385"></a>
+<span class="sourceLineNo">24386</span>                                                final double ix = it.aDouble;<a name="line.24386"></a>
+<span class="sourceLineNo">24387</span>                                                byte ox;<a name="line.24387"></a>
+<span class="sourceLineNo">24388</span>                                                ox = (byte) toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24388"></a>
+<span class="sourceLineNo">24389</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24389"></a>
+<span class="sourceLineNo">24390</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.24390"></a>
+<span class="sourceLineNo">24391</span>                                                }<a name="line.24391"></a>
+<span class="sourceLineNo">24392</span>                                        }<a name="line.24392"></a>
+<span class="sourceLineNo">24393</span>                                } else {<a name="line.24393"></a>
+<span class="sourceLineNo">24394</span>                                        while (it.hasNext()) {<a name="line.24394"></a>
+<span class="sourceLineNo">24395</span>                                                final long ix = it.aLong;<a name="line.24395"></a>
+<span class="sourceLineNo">24396</span>                                                byte ox;<a name="line.24396"></a>
+<span class="sourceLineNo">24397</span>                                                ox = (byte) toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24397"></a>
+<span class="sourceLineNo">24398</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24398"></a>
+<span class="sourceLineNo">24399</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.24399"></a>
+<span class="sourceLineNo">24400</span>                                                }<a name="line.24400"></a>
+<span class="sourceLineNo">24401</span>                                        }<a name="line.24401"></a>
+<span class="sourceLineNo">24402</span>                                }<a name="line.24402"></a>
+<span class="sourceLineNo">24403</span>                        } else {<a name="line.24403"></a>
+<span class="sourceLineNo">24404</span>                                if (it.isOutputDouble()) {<a name="line.24404"></a>
+<span class="sourceLineNo">24405</span>                                        while (it.hasNext()) {<a name="line.24405"></a>
+<span class="sourceLineNo">24406</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24406"></a>
+<span class="sourceLineNo">24407</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.24407"></a>
+<span class="sourceLineNo">24408</span>                                                        byte ox;<a name="line.24408"></a>
+<span class="sourceLineNo">24409</span>                                                        ox = (byte) toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24409"></a>
+<span class="sourceLineNo">24410</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.24410"></a>
+<span class="sourceLineNo">24411</span>                                                }<a name="line.24411"></a>
+<span class="sourceLineNo">24412</span>                                        }<a name="line.24412"></a>
+<span class="sourceLineNo">24413</span>                                } else {<a name="line.24413"></a>
+<span class="sourceLineNo">24414</span>                                        while (it.hasNext()) {<a name="line.24414"></a>
+<span class="sourceLineNo">24415</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24415"></a>
+<span class="sourceLineNo">24416</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.24416"></a>
+<span class="sourceLineNo">24417</span>                                                        byte ox;<a name="line.24417"></a>
+<span class="sourceLineNo">24418</span>                                                        ox = (byte) toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24418"></a>
+<span class="sourceLineNo">24419</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.24419"></a>
+<span class="sourceLineNo">24420</span>                                                }<a name="line.24420"></a>
+<span class="sourceLineNo">24421</span>                                        }<a name="line.24421"></a>
+<span class="sourceLineNo">24422</span>                                }<a name="line.24422"></a>
+<span class="sourceLineNo">24423</span>                        }<a name="line.24423"></a>
+<span class="sourceLineNo">24424</span>                        break;<a name="line.24424"></a>
+<span class="sourceLineNo">24425</span>                case Dataset.ARRAYINT16:<a name="line.24425"></a>
+<span class="sourceLineNo">24426</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.24426"></a>
+<span class="sourceLineNo">24427</span>                        if (is == 1) {<a name="line.24427"></a>
+<span class="sourceLineNo">24428</span>                                if (it.isOutputDouble()) {<a name="line.24428"></a>
+<span class="sourceLineNo">24429</span>                                        while (it.hasNext()) {<a name="line.24429"></a>
+<span class="sourceLineNo">24430</span>                                                final double ix = it.aDouble;<a name="line.24430"></a>
+<span class="sourceLineNo">24431</span>                                                short ox;<a name="line.24431"></a>
+<span class="sourceLineNo">24432</span>                                                ox = (short) toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24432"></a>
+<span class="sourceLineNo">24433</span>                                                oai16data[it.oIndex] = ox;<a name="line.24433"></a>
+<span class="sourceLineNo">24434</span>                                        }<a name="line.24434"></a>
+<span class="sourceLineNo">24435</span>                                } else {<a name="line.24435"></a>
+<span class="sourceLineNo">24436</span>                                        while (it.hasNext()) {<a name="line.24436"></a>
+<span class="sourceLineNo">24437</span>                                                final long ix = it.aLong;<a name="line.24437"></a>
+<span class="sourceLineNo">24438</span>                                                short ox;<a name="line.24438"></a>
+<span class="sourceLineNo">24439</span>                                                ox = (short) toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24439"></a>
+<span class="sourceLineNo">24440</span>                                                oai16data[it.oIndex] = ox;<a name="line.24440"></a>
+<span class="sourceLineNo">24441</span>                                        }<a name="line.24441"></a>
+<span class="sourceLineNo">24442</span>                                }<a name="line.24442"></a>
+<span class="sourceLineNo">24443</span>                        } else if (as == 1) {<a name="line.24443"></a>
+<span class="sourceLineNo">24444</span>                                if (it.isOutputDouble()) {<a name="line.24444"></a>
+<span class="sourceLineNo">24445</span>                                        while (it.hasNext()) {<a name="line.24445"></a>
+<span class="sourceLineNo">24446</span>                                                final double ix = it.aDouble;<a name="line.24446"></a>
+<span class="sourceLineNo">24447</span>                                                short ox;<a name="line.24447"></a>
+<span class="sourceLineNo">24448</span>                                                ox = (short) toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24448"></a>
+<span class="sourceLineNo">24449</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24449"></a>
+<span class="sourceLineNo">24450</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.24450"></a>
+<span class="sourceLineNo">24451</span>                                                }<a name="line.24451"></a>
+<span class="sourceLineNo">24452</span>                                        }<a name="line.24452"></a>
+<span class="sourceLineNo">24453</span>                                } else {<a name="line.24453"></a>
+<span class="sourceLineNo">24454</span>                                        while (it.hasNext()) {<a name="line.24454"></a>
+<span class="sourceLineNo">24455</span>                                                final long ix = it.aLong;<a name="line.24455"></a>
+<span class="sourceLineNo">24456</span>                                                short ox;<a name="line.24456"></a>
+<span class="sourceLineNo">24457</span>                                                ox = (short) toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24457"></a>
+<span class="sourceLineNo">24458</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24458"></a>
+<span class="sourceLineNo">24459</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.24459"></a>
+<span class="sourceLineNo">24460</span>                                                }<a name="line.24460"></a>
+<span class="sourceLineNo">24461</span>                                        }<a name="line.24461"></a>
+<span class="sourceLineNo">24462</span>                                }<a name="line.24462"></a>
+<span class="sourceLineNo">24463</span>                        } else {<a name="line.24463"></a>
+<span class="sourceLineNo">24464</span>                                if (it.isOutputDouble()) {<a name="line.24464"></a>
+<span class="sourceLineNo">24465</span>                                        while (it.hasNext()) {<a name="line.24465"></a>
+<span class="sourceLineNo">24466</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24466"></a>
+<span class="sourceLineNo">24467</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.24467"></a>
+<span class="sourceLineNo">24468</span>                                                        short ox;<a name="line.24468"></a>
+<span class="sourceLineNo">24469</span>                                                        ox = (short) toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24469"></a>
+<span class="sourceLineNo">24470</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.24470"></a>
+<span class="sourceLineNo">24471</span>                                                }<a name="line.24471"></a>
+<span class="sourceLineNo">24472</span>                                        }<a name="line.24472"></a>
+<span class="sourceLineNo">24473</span>                                } else {<a name="line.24473"></a>
+<span class="sourceLineNo">24474</span>                                        while (it.hasNext()) {<a name="line.24474"></a>
+<span class="sourceLineNo">24475</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24475"></a>
+<span class="sourceLineNo">24476</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.24476"></a>
+<span class="sourceLineNo">24477</span>                                                        short ox;<a name="line.24477"></a>
+<span class="sourceLineNo">24478</span>                                                        ox = (short) toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24478"></a>
+<span class="sourceLineNo">24479</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.24479"></a>
+<span class="sourceLineNo">24480</span>                                                }<a name="line.24480"></a>
+<span class="sourceLineNo">24481</span>                                        }<a name="line.24481"></a>
+<span class="sourceLineNo">24482</span>                                }<a name="line.24482"></a>
+<span class="sourceLineNo">24483</span>                        }<a name="line.24483"></a>
+<span class="sourceLineNo">24484</span>                        break;<a name="line.24484"></a>
+<span class="sourceLineNo">24485</span>                case Dataset.ARRAYINT64:<a name="line.24485"></a>
+<span class="sourceLineNo">24486</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.24486"></a>
+<span class="sourceLineNo">24487</span>                        if (is == 1) {<a name="line.24487"></a>
+<span class="sourceLineNo">24488</span>                                if (it.isOutputDouble()) {<a name="line.24488"></a>
+<span class="sourceLineNo">24489</span>                                        while (it.hasNext()) {<a name="line.24489"></a>
+<span class="sourceLineNo">24490</span>                                                final double ix = it.aDouble;<a name="line.24490"></a>
+<span class="sourceLineNo">24491</span>                                                long ox;<a name="line.24491"></a>
+<span class="sourceLineNo">24492</span>                                                ox = toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24492"></a>
+<span class="sourceLineNo">24493</span>                                                oai64data[it.oIndex] = ox;<a name="line.24493"></a>
+<span class="sourceLineNo">24494</span>                                        }<a name="line.24494"></a>
+<span class="sourceLineNo">24495</span>                                } else {<a name="line.24495"></a>
+<span class="sourceLineNo">24496</span>                                        while (it.hasNext()) {<a name="line.24496"></a>
+<span class="sourceLineNo">24497</span>                                                final long ix = it.aLong;<a name="line.24497"></a>
+<span class="sourceLineNo">24498</span>                                                long ox;<a name="line.24498"></a>
+<span class="sourceLineNo">24499</span>                                                ox = toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24499"></a>
+<span class="sourceLineNo">24500</span>                                                oai64data[it.oIndex] = ox;<a name="line.24500"></a>
+<span class="sourceLineNo">24501</span>                                        }<a name="line.24501"></a>
+<span class="sourceLineNo">24502</span>                                }<a name="line.24502"></a>
+<span class="sourceLineNo">24503</span>                        } else if (as == 1) {<a name="line.24503"></a>
+<span class="sourceLineNo">24504</span>                                if (it.isOutputDouble()) {<a name="line.24504"></a>
+<span class="sourceLineNo">24505</span>                                        while (it.hasNext()) {<a name="line.24505"></a>
+<span class="sourceLineNo">24506</span>                                                final double ix = it.aDouble;<a name="line.24506"></a>
+<span class="sourceLineNo">24507</span>                                                long ox;<a name="line.24507"></a>
+<span class="sourceLineNo">24508</span>                                                ox = toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24508"></a>
+<span class="sourceLineNo">24509</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24509"></a>
+<span class="sourceLineNo">24510</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.24510"></a>
+<span class="sourceLineNo">24511</span>                                                }<a name="line.24511"></a>
+<span class="sourceLineNo">24512</span>                                        }<a name="line.24512"></a>
+<span class="sourceLineNo">24513</span>                                } else {<a name="line.24513"></a>
+<span class="sourceLineNo">24514</span>                                        while (it.hasNext()) {<a name="line.24514"></a>
+<span class="sourceLineNo">24515</span>                                                final long ix = it.aLong;<a name="line.24515"></a>
+<span class="sourceLineNo">24516</span>                                                long ox;<a name="line.24516"></a>
+<span class="sourceLineNo">24517</span>                                                ox = toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24517"></a>
+<span class="sourceLineNo">24518</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24518"></a>
+<span class="sourceLineNo">24519</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.24519"></a>
+<span class="sourceLineNo">24520</span>                                                }<a name="line.24520"></a>
+<span class="sourceLineNo">24521</span>                                        }<a name="line.24521"></a>
+<span class="sourceLineNo">24522</span>                                }<a name="line.24522"></a>
+<span class="sourceLineNo">24523</span>                        } else {<a name="line.24523"></a>
+<span class="sourceLineNo">24524</span>                                if (it.isOutputDouble()) {<a name="line.24524"></a>
+<span class="sourceLineNo">24525</span>                                        while (it.hasNext()) {<a name="line.24525"></a>
+<span class="sourceLineNo">24526</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24526"></a>
+<span class="sourceLineNo">24527</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.24527"></a>
+<span class="sourceLineNo">24528</span>                                                        long ox;<a name="line.24528"></a>
+<span class="sourceLineNo">24529</span>                                                        ox = toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24529"></a>
+<span class="sourceLineNo">24530</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.24530"></a>
+<span class="sourceLineNo">24531</span>                                                }<a name="line.24531"></a>
+<span class="sourceLineNo">24532</span>                                        }<a name="line.24532"></a>
+<span class="sourceLineNo">24533</span>                                } else {<a name="line.24533"></a>
+<span class="sourceLineNo">24534</span>                                        while (it.hasNext()) {<a name="line.24534"></a>
+<span class="sourceLineNo">24535</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24535"></a>
+<span class="sourceLineNo">24536</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.24536"></a>
+<span class="sourceLineNo">24537</span>                                                        long ox;<a name="line.24537"></a>
+<span class="sourceLineNo">24538</span>                                                        ox = toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24538"></a>
+<span class="sourceLineNo">24539</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.24539"></a>
+<span class="sourceLineNo">24540</span>                                                }<a name="line.24540"></a>
+<span class="sourceLineNo">24541</span>                                        }<a name="line.24541"></a>
+<span class="sourceLineNo">24542</span>                                }<a name="line.24542"></a>
+<span class="sourceLineNo">24543</span>                        }<a name="line.24543"></a>
+<span class="sourceLineNo">24544</span>                        break;<a name="line.24544"></a>
+<span class="sourceLineNo">24545</span>                case Dataset.ARRAYINT32:<a name="line.24545"></a>
+<span class="sourceLineNo">24546</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.24546"></a>
+<span class="sourceLineNo">24547</span>                        if (is == 1) {<a name="line.24547"></a>
+<span class="sourceLineNo">24548</span>                                if (it.isOutputDouble()) {<a name="line.24548"></a>
+<span class="sourceLineNo">24549</span>                                        while (it.hasNext()) {<a name="line.24549"></a>
+<span class="sourceLineNo">24550</span>                                                final double ix = it.aDouble;<a name="line.24550"></a>
+<span class="sourceLineNo">24551</span>                                                int ox;<a name="line.24551"></a>
+<span class="sourceLineNo">24552</span>                                                ox = (int) toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24552"></a>
+<span class="sourceLineNo">24553</span>                                                oai32data[it.oIndex] = ox;<a name="line.24553"></a>
+<span class="sourceLineNo">24554</span>                                        }<a name="line.24554"></a>
+<span class="sourceLineNo">24555</span>                                } else {<a name="line.24555"></a>
+<span class="sourceLineNo">24556</span>                                        while (it.hasNext()) {<a name="line.24556"></a>
+<span class="sourceLineNo">24557</span>                                                final long ix = it.aLong;<a name="line.24557"></a>
+<span class="sourceLineNo">24558</span>                                                int ox;<a name="line.24558"></a>
+<span class="sourceLineNo">24559</span>                                                ox = (int) toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24559"></a>
+<span class="sourceLineNo">24560</span>                                                oai32data[it.oIndex] = ox;<a name="line.24560"></a>
+<span class="sourceLineNo">24561</span>                                        }<a name="line.24561"></a>
+<span class="sourceLineNo">24562</span>                                }<a name="line.24562"></a>
+<span class="sourceLineNo">24563</span>                        } else if (as == 1) {<a name="line.24563"></a>
+<span class="sourceLineNo">24564</span>                                if (it.isOutputDouble()) {<a name="line.24564"></a>
+<span class="sourceLineNo">24565</span>                                        while (it.hasNext()) {<a name="line.24565"></a>
+<span class="sourceLineNo">24566</span>                                                final double ix = it.aDouble;<a name="line.24566"></a>
+<span class="sourceLineNo">24567</span>                                                int ox;<a name="line.24567"></a>
+<span class="sourceLineNo">24568</span>                                                ox = (int) toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24568"></a>
+<span class="sourceLineNo">24569</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24569"></a>
+<span class="sourceLineNo">24570</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.24570"></a>
+<span class="sourceLineNo">24571</span>                                                }<a name="line.24571"></a>
+<span class="sourceLineNo">24572</span>                                        }<a name="line.24572"></a>
+<span class="sourceLineNo">24573</span>                                } else {<a name="line.24573"></a>
+<span class="sourceLineNo">24574</span>                                        while (it.hasNext()) {<a name="line.24574"></a>
+<span class="sourceLineNo">24575</span>                                                final long ix = it.aLong;<a name="line.24575"></a>
+<span class="sourceLineNo">24576</span>                                                int ox;<a name="line.24576"></a>
+<span class="sourceLineNo">24577</span>                                                ox = (int) toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24577"></a>
+<span class="sourceLineNo">24578</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24578"></a>
+<span class="sourceLineNo">24579</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.24579"></a>
+<span class="sourceLineNo">24580</span>                                                }<a name="line.24580"></a>
+<span class="sourceLineNo">24581</span>                                        }<a name="line.24581"></a>
+<span class="sourceLineNo">24582</span>                                }<a name="line.24582"></a>
+<span class="sourceLineNo">24583</span>                        } else {<a name="line.24583"></a>
+<span class="sourceLineNo">24584</span>                                if (it.isOutputDouble()) {<a name="line.24584"></a>
+<span class="sourceLineNo">24585</span>                                        while (it.hasNext()) {<a name="line.24585"></a>
+<span class="sourceLineNo">24586</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24586"></a>
+<span class="sourceLineNo">24587</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.24587"></a>
+<span class="sourceLineNo">24588</span>                                                        int ox;<a name="line.24588"></a>
+<span class="sourceLineNo">24589</span>                                                        ox = (int) toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24589"></a>
+<span class="sourceLineNo">24590</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.24590"></a>
+<span class="sourceLineNo">24591</span>                                                }<a name="line.24591"></a>
+<span class="sourceLineNo">24592</span>                                        }<a name="line.24592"></a>
+<span class="sourceLineNo">24593</span>                                } else {<a name="line.24593"></a>
+<span class="sourceLineNo">24594</span>                                        while (it.hasNext()) {<a name="line.24594"></a>
+<span class="sourceLineNo">24595</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24595"></a>
+<span class="sourceLineNo">24596</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.24596"></a>
+<span class="sourceLineNo">24597</span>                                                        int ox;<a name="line.24597"></a>
+<span class="sourceLineNo">24598</span>                                                        ox = (int) toLong(0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24598"></a>
+<span class="sourceLineNo">24599</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.24599"></a>
+<span class="sourceLineNo">24600</span>                                                }<a name="line.24600"></a>
+<span class="sourceLineNo">24601</span>                                        }<a name="line.24601"></a>
+<span class="sourceLineNo">24602</span>                                }<a name="line.24602"></a>
+<span class="sourceLineNo">24603</span>                        }<a name="line.24603"></a>
+<span class="sourceLineNo">24604</span>                        break;<a name="line.24604"></a>
+<span class="sourceLineNo">24605</span>                case Dataset.FLOAT32:<a name="line.24605"></a>
+<span class="sourceLineNo">24606</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.24606"></a>
+<span class="sourceLineNo">24607</span>                        if (it.isOutputDouble()) {<a name="line.24607"></a>
+<span class="sourceLineNo">24608</span>                                while (it.hasNext()) {<a name="line.24608"></a>
+<span class="sourceLineNo">24609</span>                                        final double ix = it.aDouble;<a name="line.24609"></a>
+<span class="sourceLineNo">24610</span>                                        float ox;<a name="line.24610"></a>
+<span class="sourceLineNo">24611</span>                                        ox = (float) (0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24611"></a>
+<span class="sourceLineNo">24612</span>                                        of32data[it.oIndex] = ox;<a name="line.24612"></a>
+<span class="sourceLineNo">24613</span>                                }<a name="line.24613"></a>
+<span class="sourceLineNo">24614</span>                        } else {<a name="line.24614"></a>
+<span class="sourceLineNo">24615</span>                                while (it.hasNext()) {<a name="line.24615"></a>
+<span class="sourceLineNo">24616</span>                                        final long ix = it.aLong;<a name="line.24616"></a>
+<span class="sourceLineNo">24617</span>                                        float ox;<a name="line.24617"></a>
+<span class="sourceLineNo">24618</span>                                        ox = (float) (0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24618"></a>
+<span class="sourceLineNo">24619</span>                                        of32data[it.oIndex] = ox;<a name="line.24619"></a>
+<span class="sourceLineNo">24620</span>                                }<a name="line.24620"></a>
+<span class="sourceLineNo">24621</span>                        }<a name="line.24621"></a>
+<span class="sourceLineNo">24622</span>                        break;<a name="line.24622"></a>
+<span class="sourceLineNo">24623</span>                case Dataset.FLOAT64:<a name="line.24623"></a>
+<span class="sourceLineNo">24624</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.24624"></a>
+<span class="sourceLineNo">24625</span>                        if (it.isOutputDouble()) {<a name="line.24625"></a>
+<span class="sourceLineNo">24626</span>                                while (it.hasNext()) {<a name="line.24626"></a>
+<span class="sourceLineNo">24627</span>                                        final double ix = it.aDouble;<a name="line.24627"></a>
+<span class="sourceLineNo">24628</span>                                        double ox;<a name="line.24628"></a>
+<span class="sourceLineNo">24629</span>                                        ox = (0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24629"></a>
+<span class="sourceLineNo">24630</span>                                        of64data[it.oIndex] = ox;<a name="line.24630"></a>
+<span class="sourceLineNo">24631</span>                                }<a name="line.24631"></a>
+<span class="sourceLineNo">24632</span>                        } else {<a name="line.24632"></a>
+<span class="sourceLineNo">24633</span>                                while (it.hasNext()) {<a name="line.24633"></a>
+<span class="sourceLineNo">24634</span>                                        final long ix = it.aLong;<a name="line.24634"></a>
+<span class="sourceLineNo">24635</span>                                        double ox;<a name="line.24635"></a>
+<span class="sourceLineNo">24636</span>                                        ox = (0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24636"></a>
+<span class="sourceLineNo">24637</span>                                        of64data[it.oIndex] = ox;<a name="line.24637"></a>
+<span class="sourceLineNo">24638</span>                                }<a name="line.24638"></a>
+<span class="sourceLineNo">24639</span>                        }<a name="line.24639"></a>
+<span class="sourceLineNo">24640</span>                        break;<a name="line.24640"></a>
+<span class="sourceLineNo">24641</span>                case Dataset.ARRAYFLOAT32:<a name="line.24641"></a>
+<span class="sourceLineNo">24642</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.24642"></a>
+<span class="sourceLineNo">24643</span>                        if (is == 1) {<a name="line.24643"></a>
+<span class="sourceLineNo">24644</span>                                if (it.isOutputDouble()) {<a name="line.24644"></a>
+<span class="sourceLineNo">24645</span>                                        while (it.hasNext()) {<a name="line.24645"></a>
+<span class="sourceLineNo">24646</span>                                                final double ix = it.aDouble;<a name="line.24646"></a>
+<span class="sourceLineNo">24647</span>                                                float ox;<a name="line.24647"></a>
+<span class="sourceLineNo">24648</span>                                                ox = (float) (0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24648"></a>
+<span class="sourceLineNo">24649</span>                                                oaf32data[it.oIndex] = ox;<a name="line.24649"></a>
+<span class="sourceLineNo">24650</span>                                        }<a name="line.24650"></a>
+<span class="sourceLineNo">24651</span>                                } else {<a name="line.24651"></a>
+<span class="sourceLineNo">24652</span>                                        while (it.hasNext()) {<a name="line.24652"></a>
+<span class="sourceLineNo">24653</span>                                                final long ix = it.aLong;<a name="line.24653"></a>
+<span class="sourceLineNo">24654</span>                                                float ox;<a name="line.24654"></a>
+<span class="sourceLineNo">24655</span>                                                ox = (float) (0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24655"></a>
+<span class="sourceLineNo">24656</span>                                                oaf32data[it.oIndex] = ox;<a name="line.24656"></a>
+<span class="sourceLineNo">24657</span>                                        }<a name="line.24657"></a>
+<span class="sourceLineNo">24658</span>                                }<a name="line.24658"></a>
+<span class="sourceLineNo">24659</span>                        } else if (as == 1) {<a name="line.24659"></a>
+<span class="sourceLineNo">24660</span>                                if (it.isOutputDouble()) {<a name="line.24660"></a>
+<span class="sourceLineNo">24661</span>                                        while (it.hasNext()) {<a name="line.24661"></a>
+<span class="sourceLineNo">24662</span>                                                final double ix = it.aDouble;<a name="line.24662"></a>
+<span class="sourceLineNo">24663</span>                                                float ox;<a name="line.24663"></a>
+<span class="sourceLineNo">24664</span>                                                ox = (float) (0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24664"></a>
+<span class="sourceLineNo">24665</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24665"></a>
+<span class="sourceLineNo">24666</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.24666"></a>
+<span class="sourceLineNo">24667</span>                                                }<a name="line.24667"></a>
+<span class="sourceLineNo">24668</span>                                        }<a name="line.24668"></a>
+<span class="sourceLineNo">24669</span>                                } else {<a name="line.24669"></a>
+<span class="sourceLineNo">24670</span>                                        while (it.hasNext()) {<a name="line.24670"></a>
+<span class="sourceLineNo">24671</span>                                                final long ix = it.aLong;<a name="line.24671"></a>
+<span class="sourceLineNo">24672</span>                                                float ox;<a name="line.24672"></a>
+<span class="sourceLineNo">24673</span>                                                ox = (float) (0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24673"></a>
+<span class="sourceLineNo">24674</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24674"></a>
+<span class="sourceLineNo">24675</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.24675"></a>
+<span class="sourceLineNo">24676</span>                                                }<a name="line.24676"></a>
+<span class="sourceLineNo">24677</span>                                        }<a name="line.24677"></a>
+<span class="sourceLineNo">24678</span>                                }<a name="line.24678"></a>
+<span class="sourceLineNo">24679</span>                        } else {<a name="line.24679"></a>
+<span class="sourceLineNo">24680</span>                                if (it.isOutputDouble()) {<a name="line.24680"></a>
+<span class="sourceLineNo">24681</span>                                        while (it.hasNext()) {<a name="line.24681"></a>
+<span class="sourceLineNo">24682</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24682"></a>
+<span class="sourceLineNo">24683</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.24683"></a>
+<span class="sourceLineNo">24684</span>                                                        float ox;<a name="line.24684"></a>
+<span class="sourceLineNo">24685</span>                                                        ox = (float) (0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24685"></a>
+<span class="sourceLineNo">24686</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.24686"></a>
+<span class="sourceLineNo">24687</span>                                                }<a name="line.24687"></a>
+<span class="sourceLineNo">24688</span>                                        }<a name="line.24688"></a>
+<span class="sourceLineNo">24689</span>                                } else {<a name="line.24689"></a>
+<span class="sourceLineNo">24690</span>                                        while (it.hasNext()) {<a name="line.24690"></a>
+<span class="sourceLineNo">24691</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24691"></a>
+<span class="sourceLineNo">24692</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.24692"></a>
+<span class="sourceLineNo">24693</span>                                                        float ox;<a name="line.24693"></a>
+<span class="sourceLineNo">24694</span>                                                        ox = (float) (0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24694"></a>
+<span class="sourceLineNo">24695</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.24695"></a>
+<span class="sourceLineNo">24696</span>                                                }<a name="line.24696"></a>
+<span class="sourceLineNo">24697</span>                                        }<a name="line.24697"></a>
+<span class="sourceLineNo">24698</span>                                }<a name="line.24698"></a>
+<span class="sourceLineNo">24699</span>                        }<a name="line.24699"></a>
+<span class="sourceLineNo">24700</span>                        break;<a name="line.24700"></a>
+<span class="sourceLineNo">24701</span>                case Dataset.ARRAYFLOAT64:<a name="line.24701"></a>
+<span class="sourceLineNo">24702</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.24702"></a>
+<span class="sourceLineNo">24703</span>                        if (is == 1) {<a name="line.24703"></a>
+<span class="sourceLineNo">24704</span>                                if (it.isOutputDouble()) {<a name="line.24704"></a>
+<span class="sourceLineNo">24705</span>                                        while (it.hasNext()) {<a name="line.24705"></a>
+<span class="sourceLineNo">24706</span>                                                final double ix = it.aDouble;<a name="line.24706"></a>
+<span class="sourceLineNo">24707</span>                                                double ox;<a name="line.24707"></a>
+<span class="sourceLineNo">24708</span>                                                ox = (0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24708"></a>
+<span class="sourceLineNo">24709</span>                                                oaf64data[it.oIndex] = ox;<a name="line.24709"></a>
+<span class="sourceLineNo">24710</span>                                        }<a name="line.24710"></a>
+<span class="sourceLineNo">24711</span>                                } else {<a name="line.24711"></a>
+<span class="sourceLineNo">24712</span>                                        while (it.hasNext()) {<a name="line.24712"></a>
+<span class="sourceLineNo">24713</span>                                                final long ix = it.aLong;<a name="line.24713"></a>
+<span class="sourceLineNo">24714</span>                                                double ox;<a name="line.24714"></a>
+<span class="sourceLineNo">24715</span>                                                ox = (0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24715"></a>
+<span class="sourceLineNo">24716</span>                                                oaf64data[it.oIndex] = ox;<a name="line.24716"></a>
+<span class="sourceLineNo">24717</span>                                        }<a name="line.24717"></a>
+<span class="sourceLineNo">24718</span>                                }<a name="line.24718"></a>
+<span class="sourceLineNo">24719</span>                        } else if (as == 1) {<a name="line.24719"></a>
+<span class="sourceLineNo">24720</span>                                if (it.isOutputDouble()) {<a name="line.24720"></a>
+<span class="sourceLineNo">24721</span>                                        while (it.hasNext()) {<a name="line.24721"></a>
+<span class="sourceLineNo">24722</span>                                                final double ix = it.aDouble;<a name="line.24722"></a>
+<span class="sourceLineNo">24723</span>                                                double ox;<a name="line.24723"></a>
+<span class="sourceLineNo">24724</span>                                                ox = (0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24724"></a>
+<span class="sourceLineNo">24725</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24725"></a>
+<span class="sourceLineNo">24726</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.24726"></a>
+<span class="sourceLineNo">24727</span>                                                }<a name="line.24727"></a>
+<span class="sourceLineNo">24728</span>                                        }<a name="line.24728"></a>
+<span class="sourceLineNo">24729</span>                                } else {<a name="line.24729"></a>
+<span class="sourceLineNo">24730</span>                                        while (it.hasNext()) {<a name="line.24730"></a>
+<span class="sourceLineNo">24731</span>                                                final long ix = it.aLong;<a name="line.24731"></a>
+<span class="sourceLineNo">24732</span>                                                double ox;<a name="line.24732"></a>
+<span class="sourceLineNo">24733</span>                                                ox = (0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24733"></a>
+<span class="sourceLineNo">24734</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24734"></a>
+<span class="sourceLineNo">24735</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.24735"></a>
+<span class="sourceLineNo">24736</span>                                                }<a name="line.24736"></a>
+<span class="sourceLineNo">24737</span>                                        }<a name="line.24737"></a>
+<span class="sourceLineNo">24738</span>                                }<a name="line.24738"></a>
+<span class="sourceLineNo">24739</span>                        } else {<a name="line.24739"></a>
+<span class="sourceLineNo">24740</span>                                if (it.isOutputDouble()) {<a name="line.24740"></a>
+<span class="sourceLineNo">24741</span>                                        while (it.hasNext()) {<a name="line.24741"></a>
+<span class="sourceLineNo">24742</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24742"></a>
+<span class="sourceLineNo">24743</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.24743"></a>
+<span class="sourceLineNo">24744</span>                                                        double ox;<a name="line.24744"></a>
+<span class="sourceLineNo">24745</span>                                                        ox = (0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24745"></a>
+<span class="sourceLineNo">24746</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.24746"></a>
+<span class="sourceLineNo">24747</span>                                                }<a name="line.24747"></a>
+<span class="sourceLineNo">24748</span>                                        }<a name="line.24748"></a>
+<span class="sourceLineNo">24749</span>                                } else {<a name="line.24749"></a>
+<span class="sourceLineNo">24750</span>                                        while (it.hasNext()) {<a name="line.24750"></a>
+<span class="sourceLineNo">24751</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24751"></a>
+<span class="sourceLineNo">24752</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.24752"></a>
+<span class="sourceLineNo">24753</span>                                                        double ox;<a name="line.24753"></a>
+<span class="sourceLineNo">24754</span>                                                        ox = (0.5*Math.log((1 + ix)/(1 - ix)));<a name="line.24754"></a>
+<span class="sourceLineNo">24755</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.24755"></a>
+<span class="sourceLineNo">24756</span>                                                }<a name="line.24756"></a>
+<span class="sourceLineNo">24757</span>                                        }<a name="line.24757"></a>
+<span class="sourceLineNo">24758</span>                                }<a name="line.24758"></a>
+<span class="sourceLineNo">24759</span>                        }<a name="line.24759"></a>
+<span class="sourceLineNo">24760</span>                        break;<a name="line.24760"></a>
+<span class="sourceLineNo">24761</span>                case Dataset.COMPLEX64:<a name="line.24761"></a>
+<span class="sourceLineNo">24762</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.24762"></a>
+<span class="sourceLineNo">24763</span>                        if (!da.isComplex()) {<a name="line.24763"></a>
+<span class="sourceLineNo">24764</span>                                if (it.isOutputDouble()) {<a name="line.24764"></a>
+<span class="sourceLineNo">24765</span>                                        final double iy = 0;<a name="line.24765"></a>
+<span class="sourceLineNo">24766</span>                                        while (it.hasNext()) {<a name="line.24766"></a>
+<span class="sourceLineNo">24767</span>                                                final double ix = it.aDouble;<a name="line.24767"></a>
+<span class="sourceLineNo">24768</span>                                                Complex tz;<a name="line.24768"></a>
+<span class="sourceLineNo">24769</span>                                                float ox;<a name="line.24769"></a>
+<span class="sourceLineNo">24770</span>                                                float oy;<a name="line.24770"></a>
+<span class="sourceLineNo">24771</span>                                                tz = new Complex(-iy, ix).atan();<a name="line.24771"></a>
+<span class="sourceLineNo">24772</span>                                                ox = (float) (tz.getImaginary());<a name="line.24772"></a>
+<span class="sourceLineNo">24773</span>                                                oy = (float) (-tz.getReal());<a name="line.24773"></a>
+<span class="sourceLineNo">24774</span>                                                oc64data[it.oIndex] = ox;<a name="line.24774"></a>
+<span class="sourceLineNo">24775</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.24775"></a>
+<span class="sourceLineNo">24776</span>                                        }<a name="line.24776"></a>
+<span class="sourceLineNo">24777</span>                                } else {<a name="line.24777"></a>
+<span class="sourceLineNo">24778</span>                                        final long iy = 0;<a name="line.24778"></a>
+<span class="sourceLineNo">24779</span>                                        while (it.hasNext()) {<a name="line.24779"></a>
+<span class="sourceLineNo">24780</span>                                                final long ix = it.aLong;<a name="line.24780"></a>
+<span class="sourceLineNo">24781</span>                                                Complex tz;<a name="line.24781"></a>
+<span class="sourceLineNo">24782</span>                                                float ox;<a name="line.24782"></a>
+<span class="sourceLineNo">24783</span>                                                float oy;<a name="line.24783"></a>
+<span class="sourceLineNo">24784</span>                                                tz = new Complex(-iy, ix).atan();<a name="line.24784"></a>
+<span class="sourceLineNo">24785</span>                                                ox = (float) toLong(tz.getImaginary());<a name="line.24785"></a>
+<span class="sourceLineNo">24786</span>                                                oy = (float) toLong(-tz.getReal());<a name="line.24786"></a>
+<span class="sourceLineNo">24787</span>                                                oc64data[it.oIndex] = ox;<a name="line.24787"></a>
+<span class="sourceLineNo">24788</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.24788"></a>
+<span class="sourceLineNo">24789</span>                                        }<a name="line.24789"></a>
+<span class="sourceLineNo">24790</span>                                }<a name="line.24790"></a>
+<span class="sourceLineNo">24791</span>                        } else {<a name="line.24791"></a>
+<span class="sourceLineNo">24792</span>                                while (it.hasNext()) {<a name="line.24792"></a>
+<span class="sourceLineNo">24793</span>                                        final double ix = it.aDouble;<a name="line.24793"></a>
+<span class="sourceLineNo">24794</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.24794"></a>
+<span class="sourceLineNo">24795</span>                                        Complex tz;<a name="line.24795"></a>
+<span class="sourceLineNo">24796</span>                                        float ox;<a name="line.24796"></a>
+<span class="sourceLineNo">24797</span>                                        float oy;<a name="line.24797"></a>
+<span class="sourceLineNo">24798</span>                                        tz = new Complex(-iy, ix).atan();<a name="line.24798"></a>
+<span class="sourceLineNo">24799</span>                                        ox = (float) (tz.getImaginary());<a name="line.24799"></a>
+<span class="sourceLineNo">24800</span>                                        oy = (float) (-tz.getReal());<a name="line.24800"></a>
+<span class="sourceLineNo">24801</span>                                        oc64data[it.oIndex] = ox;<a name="line.24801"></a>
+<span class="sourceLineNo">24802</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.24802"></a>
+<span class="sourceLineNo">24803</span>                                }<a name="line.24803"></a>
+<span class="sourceLineNo">24804</span>                        }<a name="line.24804"></a>
+<span class="sourceLineNo">24805</span>                        break;<a name="line.24805"></a>
+<span class="sourceLineNo">24806</span>                case Dataset.COMPLEX128:<a name="line.24806"></a>
+<span class="sourceLineNo">24807</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.24807"></a>
+<span class="sourceLineNo">24808</span>                        if (!da.isComplex()) {<a name="line.24808"></a>
+<span class="sourceLineNo">24809</span>                                if (it.isOutputDouble()) {<a name="line.24809"></a>
+<span class="sourceLineNo">24810</span>                                        final double iy = 0;<a name="line.24810"></a>
+<span class="sourceLineNo">24811</span>                                        while (it.hasNext()) {<a name="line.24811"></a>
+<span class="sourceLineNo">24812</span>                                                final double ix = it.aDouble;<a name="line.24812"></a>
+<span class="sourceLineNo">24813</span>                                                Complex tz;<a name="line.24813"></a>
+<span class="sourceLineNo">24814</span>                                                double ox;<a name="line.24814"></a>
+<span class="sourceLineNo">24815</span>                                                double oy;<a name="line.24815"></a>
+<span class="sourceLineNo">24816</span>                                                tz = new Complex(-iy, ix).atan();<a name="line.24816"></a>
+<span class="sourceLineNo">24817</span>                                                ox = (tz.getImaginary());<a name="line.24817"></a>
+<span class="sourceLineNo">24818</span>                                                oy = (-tz.getReal());<a name="line.24818"></a>
+<span class="sourceLineNo">24819</span>                                                oc128data[it.oIndex] = ox;<a name="line.24819"></a>
+<span class="sourceLineNo">24820</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.24820"></a>
+<span class="sourceLineNo">24821</span>                                        }<a name="line.24821"></a>
+<span class="sourceLineNo">24822</span>                                } else {<a name="line.24822"></a>
+<span class="sourceLineNo">24823</span>                                        final long iy = 0;<a name="line.24823"></a>
+<span class="sourceLineNo">24824</span>                                        while (it.hasNext()) {<a name="line.24824"></a>
+<span class="sourceLineNo">24825</span>                                                final long ix = it.aLong;<a name="line.24825"></a>
+<span class="sourceLineNo">24826</span>                                                Complex tz;<a name="line.24826"></a>
+<span class="sourceLineNo">24827</span>                                                double ox;<a name="line.24827"></a>
+<span class="sourceLineNo">24828</span>                                                double oy;<a name="line.24828"></a>
+<span class="sourceLineNo">24829</span>                                                tz = new Complex(-iy, ix).atan();<a name="line.24829"></a>
+<span class="sourceLineNo">24830</span>                                                ox = (tz.getImaginary());<a name="line.24830"></a>
+<span class="sourceLineNo">24831</span>                                                oy = (-tz.getReal());<a name="line.24831"></a>
+<span class="sourceLineNo">24832</span>                                                oc128data[it.oIndex] = ox;<a name="line.24832"></a>
+<span class="sourceLineNo">24833</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.24833"></a>
+<span class="sourceLineNo">24834</span>                                        }<a name="line.24834"></a>
+<span class="sourceLineNo">24835</span>                                }<a name="line.24835"></a>
+<span class="sourceLineNo">24836</span>                        } else {<a name="line.24836"></a>
+<span class="sourceLineNo">24837</span>                                while (it.hasNext()) {<a name="line.24837"></a>
+<span class="sourceLineNo">24838</span>                                        final double ix = it.aDouble;<a name="line.24838"></a>
+<span class="sourceLineNo">24839</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.24839"></a>
+<span class="sourceLineNo">24840</span>                                        Complex tz;<a name="line.24840"></a>
+<span class="sourceLineNo">24841</span>                                        double ox;<a name="line.24841"></a>
+<span class="sourceLineNo">24842</span>                                        double oy;<a name="line.24842"></a>
+<span class="sourceLineNo">24843</span>                                        tz = new Complex(-iy, ix).atan();<a name="line.24843"></a>
+<span class="sourceLineNo">24844</span>                                        ox = (tz.getImaginary());<a name="line.24844"></a>
+<span class="sourceLineNo">24845</span>                                        oy = (-tz.getReal());<a name="line.24845"></a>
+<span class="sourceLineNo">24846</span>                                        oc128data[it.oIndex] = ox;<a name="line.24846"></a>
+<span class="sourceLineNo">24847</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.24847"></a>
+<span class="sourceLineNo">24848</span>                                }<a name="line.24848"></a>
+<span class="sourceLineNo">24849</span>                        }<a name="line.24849"></a>
+<span class="sourceLineNo">24850</span>                        break;<a name="line.24850"></a>
+<span class="sourceLineNo">24851</span>                default:<a name="line.24851"></a>
+<span class="sourceLineNo">24852</span>                        throw new IllegalArgumentException("arctanh supports integer, compound integer, real, compound real, complex datasets only");<a name="line.24852"></a>
+<span class="sourceLineNo">24853</span>                }<a name="line.24853"></a>
+<span class="sourceLineNo">24854</span><a name="line.24854"></a>
+<span class="sourceLineNo">24855</span>                addFunctionName(result, "arctanh");<a name="line.24855"></a>
+<span class="sourceLineNo">24856</span>                return result;<a name="line.24856"></a>
+<span class="sourceLineNo">24857</span>        }<a name="line.24857"></a>
+<span class="sourceLineNo">24858</span><a name="line.24858"></a>
+<span class="sourceLineNo">24859</span>        /**<a name="line.24859"></a>
+<span class="sourceLineNo">24860</span>         * log - evaluate the logarithm function on each element of the dataset<a name="line.24860"></a>
+<span class="sourceLineNo">24861</span>         * @param a<a name="line.24861"></a>
+<span class="sourceLineNo">24862</span>         * @return dataset<a name="line.24862"></a>
+<span class="sourceLineNo">24863</span>         */<a name="line.24863"></a>
+<span class="sourceLineNo">24864</span>        public static Dataset log(final Object a) {<a name="line.24864"></a>
+<span class="sourceLineNo">24865</span>                return log(a, null);<a name="line.24865"></a>
+<span class="sourceLineNo">24866</span>        }<a name="line.24866"></a>
+<span class="sourceLineNo">24867</span><a name="line.24867"></a>
+<span class="sourceLineNo">24868</span>        /**<a name="line.24868"></a>
+<span class="sourceLineNo">24869</span>         * log - evaluate the logarithm function on each element of the dataset<a name="line.24869"></a>
+<span class="sourceLineNo">24870</span>         * @param a<a name="line.24870"></a>
+<span class="sourceLineNo">24871</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.24871"></a>
+<span class="sourceLineNo">24872</span>         * @return dataset<a name="line.24872"></a>
+<span class="sourceLineNo">24873</span>         */<a name="line.24873"></a>
+<span class="sourceLineNo">24874</span>        public static Dataset log(final Object a, final Dataset o) {<a name="line.24874"></a>
+<span class="sourceLineNo">24875</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.24875"></a>
+<span class="sourceLineNo">24876</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.24876"></a>
+<span class="sourceLineNo">24877</span>                final Dataset result = it.getOutput();<a name="line.24877"></a>
+<span class="sourceLineNo">24878</span>                if (!result.isComplex()) {<a name="line.24878"></a>
+<span class="sourceLineNo">24879</span>                        if (da.isComplex()) {<a name="line.24879"></a>
+<span class="sourceLineNo">24880</span>                                da = da.getRealView();<a name="line.24880"></a>
+<span class="sourceLineNo">24881</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.24881"></a>
+<span class="sourceLineNo">24882</span>                        }<a name="line.24882"></a>
+<span class="sourceLineNo">24883</span>                }<a name="line.24883"></a>
+<span class="sourceLineNo">24884</span>                final int is = result.getElementsPerItem();<a name="line.24884"></a>
+<span class="sourceLineNo">24885</span>                final int as = da.getElementsPerItem();<a name="line.24885"></a>
+<span class="sourceLineNo">24886</span>                final int dt = result.getDType();<a name="line.24886"></a>
+<span class="sourceLineNo">24887</span><a name="line.24887"></a>
+<span class="sourceLineNo">24888</span>                switch(dt) {<a name="line.24888"></a>
+<span class="sourceLineNo">24889</span>                case Dataset.INT8:<a name="line.24889"></a>
+<span class="sourceLineNo">24890</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.24890"></a>
+<span class="sourceLineNo">24891</span>                        if (it.isOutputDouble()) {<a name="line.24891"></a>
+<span class="sourceLineNo">24892</span>                                while (it.hasNext()) {<a name="line.24892"></a>
+<span class="sourceLineNo">24893</span>                                        final double ix = it.aDouble;<a name="line.24893"></a>
+<span class="sourceLineNo">24894</span>                                        byte ox;<a name="line.24894"></a>
+<span class="sourceLineNo">24895</span>                                        ox = (byte) toLong(Math.log(ix));<a name="line.24895"></a>
+<span class="sourceLineNo">24896</span>                                        oi8data[it.oIndex] = ox;<a name="line.24896"></a>
+<span class="sourceLineNo">24897</span>                                }<a name="line.24897"></a>
+<span class="sourceLineNo">24898</span>                        } else {<a name="line.24898"></a>
+<span class="sourceLineNo">24899</span>                                while (it.hasNext()) {<a name="line.24899"></a>
+<span class="sourceLineNo">24900</span>                                        final long ix = it.aLong;<a name="line.24900"></a>
+<span class="sourceLineNo">24901</span>                                        byte ox;<a name="line.24901"></a>
+<span class="sourceLineNo">24902</span>                                        ox = (byte) toLong(Math.log(ix));<a name="line.24902"></a>
+<span class="sourceLineNo">24903</span>                                        oi8data[it.oIndex] = ox;<a name="line.24903"></a>
+<span class="sourceLineNo">24904</span>                                }<a name="line.24904"></a>
+<span class="sourceLineNo">24905</span>                        }<a name="line.24905"></a>
+<span class="sourceLineNo">24906</span>                        break;<a name="line.24906"></a>
+<span class="sourceLineNo">24907</span>                case Dataset.INT16:<a name="line.24907"></a>
+<span class="sourceLineNo">24908</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.24908"></a>
+<span class="sourceLineNo">24909</span>                        if (it.isOutputDouble()) {<a name="line.24909"></a>
+<span class="sourceLineNo">24910</span>                                while (it.hasNext()) {<a name="line.24910"></a>
+<span class="sourceLineNo">24911</span>                                        final double ix = it.aDouble;<a name="line.24911"></a>
+<span class="sourceLineNo">24912</span>                                        short ox;<a name="line.24912"></a>
+<span class="sourceLineNo">24913</span>                                        ox = (short) toLong(Math.log(ix));<a name="line.24913"></a>
+<span class="sourceLineNo">24914</span>                                        oi16data[it.oIndex] = ox;<a name="line.24914"></a>
+<span class="sourceLineNo">24915</span>                                }<a name="line.24915"></a>
+<span class="sourceLineNo">24916</span>                        } else {<a name="line.24916"></a>
+<span class="sourceLineNo">24917</span>                                while (it.hasNext()) {<a name="line.24917"></a>
+<span class="sourceLineNo">24918</span>                                        final long ix = it.aLong;<a name="line.24918"></a>
+<span class="sourceLineNo">24919</span>                                        short ox;<a name="line.24919"></a>
+<span class="sourceLineNo">24920</span>                                        ox = (short) toLong(Math.log(ix));<a name="line.24920"></a>
+<span class="sourceLineNo">24921</span>                                        oi16data[it.oIndex] = ox;<a name="line.24921"></a>
+<span class="sourceLineNo">24922</span>                                }<a name="line.24922"></a>
+<span class="sourceLineNo">24923</span>                        }<a name="line.24923"></a>
+<span class="sourceLineNo">24924</span>                        break;<a name="line.24924"></a>
+<span class="sourceLineNo">24925</span>                case Dataset.INT64:<a name="line.24925"></a>
+<span class="sourceLineNo">24926</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.24926"></a>
+<span class="sourceLineNo">24927</span>                        if (it.isOutputDouble()) {<a name="line.24927"></a>
+<span class="sourceLineNo">24928</span>                                while (it.hasNext()) {<a name="line.24928"></a>
+<span class="sourceLineNo">24929</span>                                        final double ix = it.aDouble;<a name="line.24929"></a>
+<span class="sourceLineNo">24930</span>                                        long ox;<a name="line.24930"></a>
+<span class="sourceLineNo">24931</span>                                        ox = toLong(Math.log(ix));<a name="line.24931"></a>
+<span class="sourceLineNo">24932</span>                                        oi64data[it.oIndex] = ox;<a name="line.24932"></a>
+<span class="sourceLineNo">24933</span>                                }<a name="line.24933"></a>
+<span class="sourceLineNo">24934</span>                        } else {<a name="line.24934"></a>
+<span class="sourceLineNo">24935</span>                                while (it.hasNext()) {<a name="line.24935"></a>
+<span class="sourceLineNo">24936</span>                                        final long ix = it.aLong;<a name="line.24936"></a>
+<span class="sourceLineNo">24937</span>                                        long ox;<a name="line.24937"></a>
+<span class="sourceLineNo">24938</span>                                        ox = toLong(Math.log(ix));<a name="line.24938"></a>
+<span class="sourceLineNo">24939</span>                                        oi64data[it.oIndex] = ox;<a name="line.24939"></a>
+<span class="sourceLineNo">24940</span>                                }<a name="line.24940"></a>
+<span class="sourceLineNo">24941</span>                        }<a name="line.24941"></a>
+<span class="sourceLineNo">24942</span>                        break;<a name="line.24942"></a>
+<span class="sourceLineNo">24943</span>                case Dataset.INT32:<a name="line.24943"></a>
+<span class="sourceLineNo">24944</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.24944"></a>
+<span class="sourceLineNo">24945</span>                        if (it.isOutputDouble()) {<a name="line.24945"></a>
+<span class="sourceLineNo">24946</span>                                while (it.hasNext()) {<a name="line.24946"></a>
+<span class="sourceLineNo">24947</span>                                        final double ix = it.aDouble;<a name="line.24947"></a>
+<span class="sourceLineNo">24948</span>                                        int ox;<a name="line.24948"></a>
+<span class="sourceLineNo">24949</span>                                        ox = (int) toLong(Math.log(ix));<a name="line.24949"></a>
+<span class="sourceLineNo">24950</span>                                        oi32data[it.oIndex] = ox;<a name="line.24950"></a>
+<span class="sourceLineNo">24951</span>                                }<a name="line.24951"></a>
+<span class="sourceLineNo">24952</span>                        } else {<a name="line.24952"></a>
+<span class="sourceLineNo">24953</span>                                while (it.hasNext()) {<a name="line.24953"></a>
+<span class="sourceLineNo">24954</span>                                        final long ix = it.aLong;<a name="line.24954"></a>
+<span class="sourceLineNo">24955</span>                                        int ox;<a name="line.24955"></a>
+<span class="sourceLineNo">24956</span>                                        ox = (int) toLong(Math.log(ix));<a name="line.24956"></a>
+<span class="sourceLineNo">24957</span>                                        oi32data[it.oIndex] = ox;<a name="line.24957"></a>
+<span class="sourceLineNo">24958</span>                                }<a name="line.24958"></a>
+<span class="sourceLineNo">24959</span>                        }<a name="line.24959"></a>
+<span class="sourceLineNo">24960</span>                        break;<a name="line.24960"></a>
+<span class="sourceLineNo">24961</span>                case Dataset.ARRAYINT8:<a name="line.24961"></a>
+<span class="sourceLineNo">24962</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.24962"></a>
+<span class="sourceLineNo">24963</span>                        if (is == 1) {<a name="line.24963"></a>
+<span class="sourceLineNo">24964</span>                                if (it.isOutputDouble()) {<a name="line.24964"></a>
+<span class="sourceLineNo">24965</span>                                        while (it.hasNext()) {<a name="line.24965"></a>
+<span class="sourceLineNo">24966</span>                                                final double ix = it.aDouble;<a name="line.24966"></a>
+<span class="sourceLineNo">24967</span>                                                byte ox;<a name="line.24967"></a>
+<span class="sourceLineNo">24968</span>                                                ox = (byte) toLong(Math.log(ix));<a name="line.24968"></a>
+<span class="sourceLineNo">24969</span>                                                oai8data[it.oIndex] = ox;<a name="line.24969"></a>
+<span class="sourceLineNo">24970</span>                                        }<a name="line.24970"></a>
+<span class="sourceLineNo">24971</span>                                } else {<a name="line.24971"></a>
+<span class="sourceLineNo">24972</span>                                        while (it.hasNext()) {<a name="line.24972"></a>
+<span class="sourceLineNo">24973</span>                                                final long ix = it.aLong;<a name="line.24973"></a>
+<span class="sourceLineNo">24974</span>                                                byte ox;<a name="line.24974"></a>
+<span class="sourceLineNo">24975</span>                                                ox = (byte) toLong(Math.log(ix));<a name="line.24975"></a>
+<span class="sourceLineNo">24976</span>                                                oai8data[it.oIndex] = ox;<a name="line.24976"></a>
+<span class="sourceLineNo">24977</span>                                        }<a name="line.24977"></a>
+<span class="sourceLineNo">24978</span>                                }<a name="line.24978"></a>
+<span class="sourceLineNo">24979</span>                        } else if (as == 1) {<a name="line.24979"></a>
+<span class="sourceLineNo">24980</span>                                if (it.isOutputDouble()) {<a name="line.24980"></a>
+<span class="sourceLineNo">24981</span>                                        while (it.hasNext()) {<a name="line.24981"></a>
+<span class="sourceLineNo">24982</span>                                                final double ix = it.aDouble;<a name="line.24982"></a>
+<span class="sourceLineNo">24983</span>                                                byte ox;<a name="line.24983"></a>
+<span class="sourceLineNo">24984</span>                                                ox = (byte) toLong(Math.log(ix));<a name="line.24984"></a>
+<span class="sourceLineNo">24985</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24985"></a>
+<span class="sourceLineNo">24986</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.24986"></a>
+<span class="sourceLineNo">24987</span>                                                }<a name="line.24987"></a>
+<span class="sourceLineNo">24988</span>                                        }<a name="line.24988"></a>
+<span class="sourceLineNo">24989</span>                                } else {<a name="line.24989"></a>
+<span class="sourceLineNo">24990</span>                                        while (it.hasNext()) {<a name="line.24990"></a>
+<span class="sourceLineNo">24991</span>                                                final long ix = it.aLong;<a name="line.24991"></a>
+<span class="sourceLineNo">24992</span>                                                byte ox;<a name="line.24992"></a>
+<span class="sourceLineNo">24993</span>                                                ox = (byte) toLong(Math.log(ix));<a name="line.24993"></a>
+<span class="sourceLineNo">24994</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.24994"></a>
+<span class="sourceLineNo">24995</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.24995"></a>
+<span class="sourceLineNo">24996</span>                                                }<a name="line.24996"></a>
+<span class="sourceLineNo">24997</span>                                        }<a name="line.24997"></a>
+<span class="sourceLineNo">24998</span>                                }<a name="line.24998"></a>
+<span class="sourceLineNo">24999</span>                        } else {<a name="line.24999"></a>
+<span class="sourceLineNo">25000</span>                                if (it.isOutputDouble()) {<a name="line.25000"></a>
+<span class="sourceLineNo">25001</span>                                        while (it.hasNext()) {<a name="line.25001"></a>
+<span class="sourceLineNo">25002</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25002"></a>
+<span class="sourceLineNo">25003</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.25003"></a>
+<span class="sourceLineNo">25004</span>                                                        byte ox;<a name="line.25004"></a>
+<span class="sourceLineNo">25005</span>                                                        ox = (byte) toLong(Math.log(ix));<a name="line.25005"></a>
+<span class="sourceLineNo">25006</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.25006"></a>
+<span class="sourceLineNo">25007</span>                                                }<a name="line.25007"></a>
+<span class="sourceLineNo">25008</span>                                        }<a name="line.25008"></a>
+<span class="sourceLineNo">25009</span>                                } else {<a name="line.25009"></a>
+<span class="sourceLineNo">25010</span>                                        while (it.hasNext()) {<a name="line.25010"></a>
+<span class="sourceLineNo">25011</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25011"></a>
+<span class="sourceLineNo">25012</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.25012"></a>
+<span class="sourceLineNo">25013</span>                                                        byte ox;<a name="line.25013"></a>
+<span class="sourceLineNo">25014</span>                                                        ox = (byte) toLong(Math.log(ix));<a name="line.25014"></a>
+<span class="sourceLineNo">25015</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.25015"></a>
+<span class="sourceLineNo">25016</span>                                                }<a name="line.25016"></a>
+<span class="sourceLineNo">25017</span>                                        }<a name="line.25017"></a>
+<span class="sourceLineNo">25018</span>                                }<a name="line.25018"></a>
+<span class="sourceLineNo">25019</span>                        }<a name="line.25019"></a>
+<span class="sourceLineNo">25020</span>                        break;<a name="line.25020"></a>
+<span class="sourceLineNo">25021</span>                case Dataset.ARRAYINT16:<a name="line.25021"></a>
+<span class="sourceLineNo">25022</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.25022"></a>
+<span class="sourceLineNo">25023</span>                        if (is == 1) {<a name="line.25023"></a>
+<span class="sourceLineNo">25024</span>                                if (it.isOutputDouble()) {<a name="line.25024"></a>
+<span class="sourceLineNo">25025</span>                                        while (it.hasNext()) {<a name="line.25025"></a>
+<span class="sourceLineNo">25026</span>                                                final double ix = it.aDouble;<a name="line.25026"></a>
+<span class="sourceLineNo">25027</span>                                                short ox;<a name="line.25027"></a>
+<span class="sourceLineNo">25028</span>                                                ox = (short) toLong(Math.log(ix));<a name="line.25028"></a>
+<span class="sourceLineNo">25029</span>                                                oai16data[it.oIndex] = ox;<a name="line.25029"></a>
+<span class="sourceLineNo">25030</span>                                        }<a name="line.25030"></a>
+<span class="sourceLineNo">25031</span>                                } else {<a name="line.25031"></a>
+<span class="sourceLineNo">25032</span>                                        while (it.hasNext()) {<a name="line.25032"></a>
+<span class="sourceLineNo">25033</span>                                                final long ix = it.aLong;<a name="line.25033"></a>
+<span class="sourceLineNo">25034</span>                                                short ox;<a name="line.25034"></a>
+<span class="sourceLineNo">25035</span>                                                ox = (short) toLong(Math.log(ix));<a name="line.25035"></a>
+<span class="sourceLineNo">25036</span>                                                oai16data[it.oIndex] = ox;<a name="line.25036"></a>
+<span class="sourceLineNo">25037</span>                                        }<a name="line.25037"></a>
+<span class="sourceLineNo">25038</span>                                }<a name="line.25038"></a>
+<span class="sourceLineNo">25039</span>                        } else if (as == 1) {<a name="line.25039"></a>
+<span class="sourceLineNo">25040</span>                                if (it.isOutputDouble()) {<a name="line.25040"></a>
+<span class="sourceLineNo">25041</span>                                        while (it.hasNext()) {<a name="line.25041"></a>
+<span class="sourceLineNo">25042</span>                                                final double ix = it.aDouble;<a name="line.25042"></a>
+<span class="sourceLineNo">25043</span>                                                short ox;<a name="line.25043"></a>
+<span class="sourceLineNo">25044</span>                                                ox = (short) toLong(Math.log(ix));<a name="line.25044"></a>
+<span class="sourceLineNo">25045</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25045"></a>
+<span class="sourceLineNo">25046</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.25046"></a>
+<span class="sourceLineNo">25047</span>                                                }<a name="line.25047"></a>
+<span class="sourceLineNo">25048</span>                                        }<a name="line.25048"></a>
+<span class="sourceLineNo">25049</span>                                } else {<a name="line.25049"></a>
+<span class="sourceLineNo">25050</span>                                        while (it.hasNext()) {<a name="line.25050"></a>
+<span class="sourceLineNo">25051</span>                                                final long ix = it.aLong;<a name="line.25051"></a>
+<span class="sourceLineNo">25052</span>                                                short ox;<a name="line.25052"></a>
+<span class="sourceLineNo">25053</span>                                                ox = (short) toLong(Math.log(ix));<a name="line.25053"></a>
+<span class="sourceLineNo">25054</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25054"></a>
+<span class="sourceLineNo">25055</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.25055"></a>
+<span class="sourceLineNo">25056</span>                                                }<a name="line.25056"></a>
+<span class="sourceLineNo">25057</span>                                        }<a name="line.25057"></a>
+<span class="sourceLineNo">25058</span>                                }<a name="line.25058"></a>
+<span class="sourceLineNo">25059</span>                        } else {<a name="line.25059"></a>
+<span class="sourceLineNo">25060</span>                                if (it.isOutputDouble()) {<a name="line.25060"></a>
+<span class="sourceLineNo">25061</span>                                        while (it.hasNext()) {<a name="line.25061"></a>
+<span class="sourceLineNo">25062</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25062"></a>
+<span class="sourceLineNo">25063</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.25063"></a>
+<span class="sourceLineNo">25064</span>                                                        short ox;<a name="line.25064"></a>
+<span class="sourceLineNo">25065</span>                                                        ox = (short) toLong(Math.log(ix));<a name="line.25065"></a>
+<span class="sourceLineNo">25066</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.25066"></a>
+<span class="sourceLineNo">25067</span>                                                }<a name="line.25067"></a>
+<span class="sourceLineNo">25068</span>                                        }<a name="line.25068"></a>
+<span class="sourceLineNo">25069</span>                                } else {<a name="line.25069"></a>
+<span class="sourceLineNo">25070</span>                                        while (it.hasNext()) {<a name="line.25070"></a>
+<span class="sourceLineNo">25071</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25071"></a>
+<span class="sourceLineNo">25072</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.25072"></a>
+<span class="sourceLineNo">25073</span>                                                        short ox;<a name="line.25073"></a>
+<span class="sourceLineNo">25074</span>                                                        ox = (short) toLong(Math.log(ix));<a name="line.25074"></a>
+<span class="sourceLineNo">25075</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.25075"></a>
+<span class="sourceLineNo">25076</span>                                                }<a name="line.25076"></a>
+<span class="sourceLineNo">25077</span>                                        }<a name="line.25077"></a>
+<span class="sourceLineNo">25078</span>                                }<a name="line.25078"></a>
+<span class="sourceLineNo">25079</span>                        }<a name="line.25079"></a>
+<span class="sourceLineNo">25080</span>                        break;<a name="line.25080"></a>
+<span class="sourceLineNo">25081</span>                case Dataset.ARRAYINT64:<a name="line.25081"></a>
+<span class="sourceLineNo">25082</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.25082"></a>
+<span class="sourceLineNo">25083</span>                        if (is == 1) {<a name="line.25083"></a>
+<span class="sourceLineNo">25084</span>                                if (it.isOutputDouble()) {<a name="line.25084"></a>
+<span class="sourceLineNo">25085</span>                                        while (it.hasNext()) {<a name="line.25085"></a>
+<span class="sourceLineNo">25086</span>                                                final double ix = it.aDouble;<a name="line.25086"></a>
+<span class="sourceLineNo">25087</span>                                                long ox;<a name="line.25087"></a>
+<span class="sourceLineNo">25088</span>                                                ox = toLong(Math.log(ix));<a name="line.25088"></a>
+<span class="sourceLineNo">25089</span>                                                oai64data[it.oIndex] = ox;<a name="line.25089"></a>
+<span class="sourceLineNo">25090</span>                                        }<a name="line.25090"></a>
+<span class="sourceLineNo">25091</span>                                } else {<a name="line.25091"></a>
+<span class="sourceLineNo">25092</span>                                        while (it.hasNext()) {<a name="line.25092"></a>
+<span class="sourceLineNo">25093</span>                                                final long ix = it.aLong;<a name="line.25093"></a>
+<span class="sourceLineNo">25094</span>                                                long ox;<a name="line.25094"></a>
+<span class="sourceLineNo">25095</span>                                                ox = toLong(Math.log(ix));<a name="line.25095"></a>
+<span class="sourceLineNo">25096</span>                                                oai64data[it.oIndex] = ox;<a name="line.25096"></a>
+<span class="sourceLineNo">25097</span>                                        }<a name="line.25097"></a>
+<span class="sourceLineNo">25098</span>                                }<a name="line.25098"></a>
+<span class="sourceLineNo">25099</span>                        } else if (as == 1) {<a name="line.25099"></a>
+<span class="sourceLineNo">25100</span>                                if (it.isOutputDouble()) {<a name="line.25100"></a>
+<span class="sourceLineNo">25101</span>                                        while (it.hasNext()) {<a name="line.25101"></a>
+<span class="sourceLineNo">25102</span>                                                final double ix = it.aDouble;<a name="line.25102"></a>
+<span class="sourceLineNo">25103</span>                                                long ox;<a name="line.25103"></a>
+<span class="sourceLineNo">25104</span>                                                ox = toLong(Math.log(ix));<a name="line.25104"></a>
+<span class="sourceLineNo">25105</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25105"></a>
+<span class="sourceLineNo">25106</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.25106"></a>
+<span class="sourceLineNo">25107</span>                                                }<a name="line.25107"></a>
+<span class="sourceLineNo">25108</span>                                        }<a name="line.25108"></a>
+<span class="sourceLineNo">25109</span>                                } else {<a name="line.25109"></a>
+<span class="sourceLineNo">25110</span>                                        while (it.hasNext()) {<a name="line.25110"></a>
+<span class="sourceLineNo">25111</span>                                                final long ix = it.aLong;<a name="line.25111"></a>
+<span class="sourceLineNo">25112</span>                                                long ox;<a name="line.25112"></a>
+<span class="sourceLineNo">25113</span>                                                ox = toLong(Math.log(ix));<a name="line.25113"></a>
+<span class="sourceLineNo">25114</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25114"></a>
+<span class="sourceLineNo">25115</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.25115"></a>
+<span class="sourceLineNo">25116</span>                                                }<a name="line.25116"></a>
+<span class="sourceLineNo">25117</span>                                        }<a name="line.25117"></a>
+<span class="sourceLineNo">25118</span>                                }<a name="line.25118"></a>
+<span class="sourceLineNo">25119</span>                        } else {<a name="line.25119"></a>
+<span class="sourceLineNo">25120</span>                                if (it.isOutputDouble()) {<a name="line.25120"></a>
+<span class="sourceLineNo">25121</span>                                        while (it.hasNext()) {<a name="line.25121"></a>
+<span class="sourceLineNo">25122</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25122"></a>
+<span class="sourceLineNo">25123</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.25123"></a>
+<span class="sourceLineNo">25124</span>                                                        long ox;<a name="line.25124"></a>
+<span class="sourceLineNo">25125</span>                                                        ox = toLong(Math.log(ix));<a name="line.25125"></a>
+<span class="sourceLineNo">25126</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.25126"></a>
+<span class="sourceLineNo">25127</span>                                                }<a name="line.25127"></a>
+<span class="sourceLineNo">25128</span>                                        }<a name="line.25128"></a>
+<span class="sourceLineNo">25129</span>                                } else {<a name="line.25129"></a>
+<span class="sourceLineNo">25130</span>                                        while (it.hasNext()) {<a name="line.25130"></a>
+<span class="sourceLineNo">25131</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25131"></a>
+<span class="sourceLineNo">25132</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.25132"></a>
+<span class="sourceLineNo">25133</span>                                                        long ox;<a name="line.25133"></a>
+<span class="sourceLineNo">25134</span>                                                        ox = toLong(Math.log(ix));<a name="line.25134"></a>
+<span class="sourceLineNo">25135</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.25135"></a>
+<span class="sourceLineNo">25136</span>                                                }<a name="line.25136"></a>
+<span class="sourceLineNo">25137</span>                                        }<a name="line.25137"></a>
+<span class="sourceLineNo">25138</span>                                }<a name="line.25138"></a>
+<span class="sourceLineNo">25139</span>                        }<a name="line.25139"></a>
+<span class="sourceLineNo">25140</span>                        break;<a name="line.25140"></a>
+<span class="sourceLineNo">25141</span>                case Dataset.ARRAYINT32:<a name="line.25141"></a>
+<span class="sourceLineNo">25142</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.25142"></a>
+<span class="sourceLineNo">25143</span>                        if (is == 1) {<a name="line.25143"></a>
+<span class="sourceLineNo">25144</span>                                if (it.isOutputDouble()) {<a name="line.25144"></a>
+<span class="sourceLineNo">25145</span>                                        while (it.hasNext()) {<a name="line.25145"></a>
+<span class="sourceLineNo">25146</span>                                                final double ix = it.aDouble;<a name="line.25146"></a>
+<span class="sourceLineNo">25147</span>                                                int ox;<a name="line.25147"></a>
+<span class="sourceLineNo">25148</span>                                                ox = (int) toLong(Math.log(ix));<a name="line.25148"></a>
+<span class="sourceLineNo">25149</span>                                                oai32data[it.oIndex] = ox;<a name="line.25149"></a>
+<span class="sourceLineNo">25150</span>                                        }<a name="line.25150"></a>
+<span class="sourceLineNo">25151</span>                                } else {<a name="line.25151"></a>
+<span class="sourceLineNo">25152</span>                                        while (it.hasNext()) {<a name="line.25152"></a>
+<span class="sourceLineNo">25153</span>                                                final long ix = it.aLong;<a name="line.25153"></a>
+<span class="sourceLineNo">25154</span>                                                int ox;<a name="line.25154"></a>
+<span class="sourceLineNo">25155</span>                                                ox = (int) toLong(Math.log(ix));<a name="line.25155"></a>
+<span class="sourceLineNo">25156</span>                                                oai32data[it.oIndex] = ox;<a name="line.25156"></a>
+<span class="sourceLineNo">25157</span>                                        }<a name="line.25157"></a>
+<span class="sourceLineNo">25158</span>                                }<a name="line.25158"></a>
+<span class="sourceLineNo">25159</span>                        } else if (as == 1) {<a name="line.25159"></a>
+<span class="sourceLineNo">25160</span>                                if (it.isOutputDouble()) {<a name="line.25160"></a>
+<span class="sourceLineNo">25161</span>                                        while (it.hasNext()) {<a name="line.25161"></a>
+<span class="sourceLineNo">25162</span>                                                final double ix = it.aDouble;<a name="line.25162"></a>
+<span class="sourceLineNo">25163</span>                                                int ox;<a name="line.25163"></a>
+<span class="sourceLineNo">25164</span>                                                ox = (int) toLong(Math.log(ix));<a name="line.25164"></a>
+<span class="sourceLineNo">25165</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25165"></a>
+<span class="sourceLineNo">25166</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.25166"></a>
+<span class="sourceLineNo">25167</span>                                                }<a name="line.25167"></a>
+<span class="sourceLineNo">25168</span>                                        }<a name="line.25168"></a>
+<span class="sourceLineNo">25169</span>                                } else {<a name="line.25169"></a>
+<span class="sourceLineNo">25170</span>                                        while (it.hasNext()) {<a name="line.25170"></a>
+<span class="sourceLineNo">25171</span>                                                final long ix = it.aLong;<a name="line.25171"></a>
+<span class="sourceLineNo">25172</span>                                                int ox;<a name="line.25172"></a>
+<span class="sourceLineNo">25173</span>                                                ox = (int) toLong(Math.log(ix));<a name="line.25173"></a>
+<span class="sourceLineNo">25174</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25174"></a>
+<span class="sourceLineNo">25175</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.25175"></a>
+<span class="sourceLineNo">25176</span>                                                }<a name="line.25176"></a>
+<span class="sourceLineNo">25177</span>                                        }<a name="line.25177"></a>
+<span class="sourceLineNo">25178</span>                                }<a name="line.25178"></a>
+<span class="sourceLineNo">25179</span>                        } else {<a name="line.25179"></a>
+<span class="sourceLineNo">25180</span>                                if (it.isOutputDouble()) {<a name="line.25180"></a>
+<span class="sourceLineNo">25181</span>                                        while (it.hasNext()) {<a name="line.25181"></a>
+<span class="sourceLineNo">25182</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25182"></a>
+<span class="sourceLineNo">25183</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.25183"></a>
+<span class="sourceLineNo">25184</span>                                                        int ox;<a name="line.25184"></a>
+<span class="sourceLineNo">25185</span>                                                        ox = (int) toLong(Math.log(ix));<a name="line.25185"></a>
+<span class="sourceLineNo">25186</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.25186"></a>
+<span class="sourceLineNo">25187</span>                                                }<a name="line.25187"></a>
+<span class="sourceLineNo">25188</span>                                        }<a name="line.25188"></a>
+<span class="sourceLineNo">25189</span>                                } else {<a name="line.25189"></a>
+<span class="sourceLineNo">25190</span>                                        while (it.hasNext()) {<a name="line.25190"></a>
+<span class="sourceLineNo">25191</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25191"></a>
+<span class="sourceLineNo">25192</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.25192"></a>
+<span class="sourceLineNo">25193</span>                                                        int ox;<a name="line.25193"></a>
+<span class="sourceLineNo">25194</span>                                                        ox = (int) toLong(Math.log(ix));<a name="line.25194"></a>
+<span class="sourceLineNo">25195</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.25195"></a>
+<span class="sourceLineNo">25196</span>                                                }<a name="line.25196"></a>
+<span class="sourceLineNo">25197</span>                                        }<a name="line.25197"></a>
+<span class="sourceLineNo">25198</span>                                }<a name="line.25198"></a>
+<span class="sourceLineNo">25199</span>                        }<a name="line.25199"></a>
+<span class="sourceLineNo">25200</span>                        break;<a name="line.25200"></a>
+<span class="sourceLineNo">25201</span>                case Dataset.FLOAT32:<a name="line.25201"></a>
+<span class="sourceLineNo">25202</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.25202"></a>
+<span class="sourceLineNo">25203</span>                        if (it.isOutputDouble()) {<a name="line.25203"></a>
+<span class="sourceLineNo">25204</span>                                while (it.hasNext()) {<a name="line.25204"></a>
+<span class="sourceLineNo">25205</span>                                        final double ix = it.aDouble;<a name="line.25205"></a>
+<span class="sourceLineNo">25206</span>                                        float ox;<a name="line.25206"></a>
+<span class="sourceLineNo">25207</span>                                        ox = (float) (Math.log(ix));<a name="line.25207"></a>
+<span class="sourceLineNo">25208</span>                                        of32data[it.oIndex] = ox;<a name="line.25208"></a>
+<span class="sourceLineNo">25209</span>                                }<a name="line.25209"></a>
+<span class="sourceLineNo">25210</span>                        } else {<a name="line.25210"></a>
+<span class="sourceLineNo">25211</span>                                while (it.hasNext()) {<a name="line.25211"></a>
+<span class="sourceLineNo">25212</span>                                        final long ix = it.aLong;<a name="line.25212"></a>
+<span class="sourceLineNo">25213</span>                                        float ox;<a name="line.25213"></a>
+<span class="sourceLineNo">25214</span>                                        ox = (float) (Math.log(ix));<a name="line.25214"></a>
+<span class="sourceLineNo">25215</span>                                        of32data[it.oIndex] = ox;<a name="line.25215"></a>
+<span class="sourceLineNo">25216</span>                                }<a name="line.25216"></a>
+<span class="sourceLineNo">25217</span>                        }<a name="line.25217"></a>
+<span class="sourceLineNo">25218</span>                        break;<a name="line.25218"></a>
+<span class="sourceLineNo">25219</span>                case Dataset.FLOAT64:<a name="line.25219"></a>
+<span class="sourceLineNo">25220</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.25220"></a>
+<span class="sourceLineNo">25221</span>                        if (it.isOutputDouble()) {<a name="line.25221"></a>
+<span class="sourceLineNo">25222</span>                                while (it.hasNext()) {<a name="line.25222"></a>
+<span class="sourceLineNo">25223</span>                                        final double ix = it.aDouble;<a name="line.25223"></a>
+<span class="sourceLineNo">25224</span>                                        double ox;<a name="line.25224"></a>
+<span class="sourceLineNo">25225</span>                                        ox = (Math.log(ix));<a name="line.25225"></a>
+<span class="sourceLineNo">25226</span>                                        of64data[it.oIndex] = ox;<a name="line.25226"></a>
+<span class="sourceLineNo">25227</span>                                }<a name="line.25227"></a>
+<span class="sourceLineNo">25228</span>                        } else {<a name="line.25228"></a>
+<span class="sourceLineNo">25229</span>                                while (it.hasNext()) {<a name="line.25229"></a>
+<span class="sourceLineNo">25230</span>                                        final long ix = it.aLong;<a name="line.25230"></a>
+<span class="sourceLineNo">25231</span>                                        double ox;<a name="line.25231"></a>
+<span class="sourceLineNo">25232</span>                                        ox = (Math.log(ix));<a name="line.25232"></a>
+<span class="sourceLineNo">25233</span>                                        of64data[it.oIndex] = ox;<a name="line.25233"></a>
+<span class="sourceLineNo">25234</span>                                }<a name="line.25234"></a>
+<span class="sourceLineNo">25235</span>                        }<a name="line.25235"></a>
+<span class="sourceLineNo">25236</span>                        break;<a name="line.25236"></a>
+<span class="sourceLineNo">25237</span>                case Dataset.ARRAYFLOAT32:<a name="line.25237"></a>
+<span class="sourceLineNo">25238</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.25238"></a>
+<span class="sourceLineNo">25239</span>                        if (is == 1) {<a name="line.25239"></a>
+<span class="sourceLineNo">25240</span>                                if (it.isOutputDouble()) {<a name="line.25240"></a>
+<span class="sourceLineNo">25241</span>                                        while (it.hasNext()) {<a name="line.25241"></a>
+<span class="sourceLineNo">25242</span>                                                final double ix = it.aDouble;<a name="line.25242"></a>
+<span class="sourceLineNo">25243</span>                                                float ox;<a name="line.25243"></a>
+<span class="sourceLineNo">25244</span>                                                ox = (float) (Math.log(ix));<a name="line.25244"></a>
+<span class="sourceLineNo">25245</span>                                                oaf32data[it.oIndex] = ox;<a name="line.25245"></a>
+<span class="sourceLineNo">25246</span>                                        }<a name="line.25246"></a>
+<span class="sourceLineNo">25247</span>                                } else {<a name="line.25247"></a>
+<span class="sourceLineNo">25248</span>                                        while (it.hasNext()) {<a name="line.25248"></a>
+<span class="sourceLineNo">25249</span>                                                final long ix = it.aLong;<a name="line.25249"></a>
+<span class="sourceLineNo">25250</span>                                                float ox;<a name="line.25250"></a>
+<span class="sourceLineNo">25251</span>                                                ox = (float) (Math.log(ix));<a name="line.25251"></a>
+<span class="sourceLineNo">25252</span>                                                oaf32data[it.oIndex] = ox;<a name="line.25252"></a>
+<span class="sourceLineNo">25253</span>                                        }<a name="line.25253"></a>
+<span class="sourceLineNo">25254</span>                                }<a name="line.25254"></a>
+<span class="sourceLineNo">25255</span>                        } else if (as == 1) {<a name="line.25255"></a>
+<span class="sourceLineNo">25256</span>                                if (it.isOutputDouble()) {<a name="line.25256"></a>
+<span class="sourceLineNo">25257</span>                                        while (it.hasNext()) {<a name="line.25257"></a>
+<span class="sourceLineNo">25258</span>                                                final double ix = it.aDouble;<a name="line.25258"></a>
+<span class="sourceLineNo">25259</span>                                                float ox;<a name="line.25259"></a>
+<span class="sourceLineNo">25260</span>                                                ox = (float) (Math.log(ix));<a name="line.25260"></a>
+<span class="sourceLineNo">25261</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25261"></a>
+<span class="sourceLineNo">25262</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.25262"></a>
+<span class="sourceLineNo">25263</span>                                                }<a name="line.25263"></a>
+<span class="sourceLineNo">25264</span>                                        }<a name="line.25264"></a>
+<span class="sourceLineNo">25265</span>                                } else {<a name="line.25265"></a>
+<span class="sourceLineNo">25266</span>                                        while (it.hasNext()) {<a name="line.25266"></a>
+<span class="sourceLineNo">25267</span>                                                final long ix = it.aLong;<a name="line.25267"></a>
+<span class="sourceLineNo">25268</span>                                                float ox;<a name="line.25268"></a>
+<span class="sourceLineNo">25269</span>                                                ox = (float) (Math.log(ix));<a name="line.25269"></a>
+<span class="sourceLineNo">25270</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25270"></a>
+<span class="sourceLineNo">25271</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.25271"></a>
+<span class="sourceLineNo">25272</span>                                                }<a name="line.25272"></a>
+<span class="sourceLineNo">25273</span>                                        }<a name="line.25273"></a>
+<span class="sourceLineNo">25274</span>                                }<a name="line.25274"></a>
+<span class="sourceLineNo">25275</span>                        } else {<a name="line.25275"></a>
+<span class="sourceLineNo">25276</span>                                if (it.isOutputDouble()) {<a name="line.25276"></a>
+<span class="sourceLineNo">25277</span>                                        while (it.hasNext()) {<a name="line.25277"></a>
+<span class="sourceLineNo">25278</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25278"></a>
+<span class="sourceLineNo">25279</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.25279"></a>
+<span class="sourceLineNo">25280</span>                                                        float ox;<a name="line.25280"></a>
+<span class="sourceLineNo">25281</span>                                                        ox = (float) (Math.log(ix));<a name="line.25281"></a>
+<span class="sourceLineNo">25282</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.25282"></a>
+<span class="sourceLineNo">25283</span>                                                }<a name="line.25283"></a>
+<span class="sourceLineNo">25284</span>                                        }<a name="line.25284"></a>
+<span class="sourceLineNo">25285</span>                                } else {<a name="line.25285"></a>
+<span class="sourceLineNo">25286</span>                                        while (it.hasNext()) {<a name="line.25286"></a>
+<span class="sourceLineNo">25287</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25287"></a>
+<span class="sourceLineNo">25288</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.25288"></a>
+<span class="sourceLineNo">25289</span>                                                        float ox;<a name="line.25289"></a>
+<span class="sourceLineNo">25290</span>                                                        ox = (float) (Math.log(ix));<a name="line.25290"></a>
+<span class="sourceLineNo">25291</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.25291"></a>
+<span class="sourceLineNo">25292</span>                                                }<a name="line.25292"></a>
+<span class="sourceLineNo">25293</span>                                        }<a name="line.25293"></a>
+<span class="sourceLineNo">25294</span>                                }<a name="line.25294"></a>
+<span class="sourceLineNo">25295</span>                        }<a name="line.25295"></a>
+<span class="sourceLineNo">25296</span>                        break;<a name="line.25296"></a>
+<span class="sourceLineNo">25297</span>                case Dataset.ARRAYFLOAT64:<a name="line.25297"></a>
+<span class="sourceLineNo">25298</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.25298"></a>
+<span class="sourceLineNo">25299</span>                        if (is == 1) {<a name="line.25299"></a>
+<span class="sourceLineNo">25300</span>                                if (it.isOutputDouble()) {<a name="line.25300"></a>
+<span class="sourceLineNo">25301</span>                                        while (it.hasNext()) {<a name="line.25301"></a>
+<span class="sourceLineNo">25302</span>                                                final double ix = it.aDouble;<a name="line.25302"></a>
+<span class="sourceLineNo">25303</span>                                                double ox;<a name="line.25303"></a>
+<span class="sourceLineNo">25304</span>                                                ox = (Math.log(ix));<a name="line.25304"></a>
+<span class="sourceLineNo">25305</span>                                                oaf64data[it.oIndex] = ox;<a name="line.25305"></a>
+<span class="sourceLineNo">25306</span>                                        }<a name="line.25306"></a>
+<span class="sourceLineNo">25307</span>                                } else {<a name="line.25307"></a>
+<span class="sourceLineNo">25308</span>                                        while (it.hasNext()) {<a name="line.25308"></a>
+<span class="sourceLineNo">25309</span>                                                final long ix = it.aLong;<a name="line.25309"></a>
+<span class="sourceLineNo">25310</span>                                                double ox;<a name="line.25310"></a>
+<span class="sourceLineNo">25311</span>                                                ox = (Math.log(ix));<a name="line.25311"></a>
+<span class="sourceLineNo">25312</span>                                                oaf64data[it.oIndex] = ox;<a name="line.25312"></a>
+<span class="sourceLineNo">25313</span>                                        }<a name="line.25313"></a>
+<span class="sourceLineNo">25314</span>                                }<a name="line.25314"></a>
+<span class="sourceLineNo">25315</span>                        } else if (as == 1) {<a name="line.25315"></a>
+<span class="sourceLineNo">25316</span>                                if (it.isOutputDouble()) {<a name="line.25316"></a>
+<span class="sourceLineNo">25317</span>                                        while (it.hasNext()) {<a name="line.25317"></a>
+<span class="sourceLineNo">25318</span>                                                final double ix = it.aDouble;<a name="line.25318"></a>
+<span class="sourceLineNo">25319</span>                                                double ox;<a name="line.25319"></a>
+<span class="sourceLineNo">25320</span>                                                ox = (Math.log(ix));<a name="line.25320"></a>
+<span class="sourceLineNo">25321</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25321"></a>
+<span class="sourceLineNo">25322</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.25322"></a>
+<span class="sourceLineNo">25323</span>                                                }<a name="line.25323"></a>
+<span class="sourceLineNo">25324</span>                                        }<a name="line.25324"></a>
+<span class="sourceLineNo">25325</span>                                } else {<a name="line.25325"></a>
+<span class="sourceLineNo">25326</span>                                        while (it.hasNext()) {<a name="line.25326"></a>
+<span class="sourceLineNo">25327</span>                                                final long ix = it.aLong;<a name="line.25327"></a>
+<span class="sourceLineNo">25328</span>                                                double ox;<a name="line.25328"></a>
+<span class="sourceLineNo">25329</span>                                                ox = (Math.log(ix));<a name="line.25329"></a>
+<span class="sourceLineNo">25330</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25330"></a>
+<span class="sourceLineNo">25331</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.25331"></a>
+<span class="sourceLineNo">25332</span>                                                }<a name="line.25332"></a>
+<span class="sourceLineNo">25333</span>                                        }<a name="line.25333"></a>
+<span class="sourceLineNo">25334</span>                                }<a name="line.25334"></a>
+<span class="sourceLineNo">25335</span>                        } else {<a name="line.25335"></a>
+<span class="sourceLineNo">25336</span>                                if (it.isOutputDouble()) {<a name="line.25336"></a>
+<span class="sourceLineNo">25337</span>                                        while (it.hasNext()) {<a name="line.25337"></a>
+<span class="sourceLineNo">25338</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25338"></a>
+<span class="sourceLineNo">25339</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.25339"></a>
+<span class="sourceLineNo">25340</span>                                                        double ox;<a name="line.25340"></a>
+<span class="sourceLineNo">25341</span>                                                        ox = (Math.log(ix));<a name="line.25341"></a>
+<span class="sourceLineNo">25342</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.25342"></a>
+<span class="sourceLineNo">25343</span>                                                }<a name="line.25343"></a>
+<span class="sourceLineNo">25344</span>                                        }<a name="line.25344"></a>
+<span class="sourceLineNo">25345</span>                                } else {<a name="line.25345"></a>
+<span class="sourceLineNo">25346</span>                                        while (it.hasNext()) {<a name="line.25346"></a>
+<span class="sourceLineNo">25347</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25347"></a>
+<span class="sourceLineNo">25348</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.25348"></a>
+<span class="sourceLineNo">25349</span>                                                        double ox;<a name="line.25349"></a>
+<span class="sourceLineNo">25350</span>                                                        ox = (Math.log(ix));<a name="line.25350"></a>
+<span class="sourceLineNo">25351</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.25351"></a>
+<span class="sourceLineNo">25352</span>                                                }<a name="line.25352"></a>
+<span class="sourceLineNo">25353</span>                                        }<a name="line.25353"></a>
+<span class="sourceLineNo">25354</span>                                }<a name="line.25354"></a>
+<span class="sourceLineNo">25355</span>                        }<a name="line.25355"></a>
+<span class="sourceLineNo">25356</span>                        break;<a name="line.25356"></a>
+<span class="sourceLineNo">25357</span>                case Dataset.COMPLEX64:<a name="line.25357"></a>
+<span class="sourceLineNo">25358</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.25358"></a>
+<span class="sourceLineNo">25359</span>                        if (!da.isComplex()) {<a name="line.25359"></a>
+<span class="sourceLineNo">25360</span>                                if (it.isOutputDouble()) {<a name="line.25360"></a>
+<span class="sourceLineNo">25361</span>                                        final double iy = 0;<a name="line.25361"></a>
+<span class="sourceLineNo">25362</span>                                        while (it.hasNext()) {<a name="line.25362"></a>
+<span class="sourceLineNo">25363</span>                                                final double ix = it.aDouble;<a name="line.25363"></a>
+<span class="sourceLineNo">25364</span>                                                float ox;<a name="line.25364"></a>
+<span class="sourceLineNo">25365</span>                                                float oy;<a name="line.25365"></a>
+<span class="sourceLineNo">25366</span>                                                ox = (float) (Math.log(Math.hypot(ix, iy)));<a name="line.25366"></a>
+<span class="sourceLineNo">25367</span>                                                oy = (float) (Math.atan2(iy, ix));<a name="line.25367"></a>
+<span class="sourceLineNo">25368</span>                                                oc64data[it.oIndex] = ox;<a name="line.25368"></a>
+<span class="sourceLineNo">25369</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.25369"></a>
+<span class="sourceLineNo">25370</span>                                        }<a name="line.25370"></a>
+<span class="sourceLineNo">25371</span>                                } else {<a name="line.25371"></a>
+<span class="sourceLineNo">25372</span>                                        final long iy = 0;<a name="line.25372"></a>
+<span class="sourceLineNo">25373</span>                                        while (it.hasNext()) {<a name="line.25373"></a>
+<span class="sourceLineNo">25374</span>                                                final long ix = it.aLong;<a name="line.25374"></a>
+<span class="sourceLineNo">25375</span>                                                float ox;<a name="line.25375"></a>
+<span class="sourceLineNo">25376</span>                                                float oy;<a name="line.25376"></a>
+<span class="sourceLineNo">25377</span>                                                ox = (float) toLong(Math.log(Math.hypot(ix, iy)));<a name="line.25377"></a>
+<span class="sourceLineNo">25378</span>                                                oy = (float) toLong(Math.atan2(iy, ix));<a name="line.25378"></a>
+<span class="sourceLineNo">25379</span>                                                oc64data[it.oIndex] = ox;<a name="line.25379"></a>
+<span class="sourceLineNo">25380</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.25380"></a>
+<span class="sourceLineNo">25381</span>                                        }<a name="line.25381"></a>
+<span class="sourceLineNo">25382</span>                                }<a name="line.25382"></a>
+<span class="sourceLineNo">25383</span>                        } else {<a name="line.25383"></a>
+<span class="sourceLineNo">25384</span>                                while (it.hasNext()) {<a name="line.25384"></a>
+<span class="sourceLineNo">25385</span>                                        final double ix = it.aDouble;<a name="line.25385"></a>
+<span class="sourceLineNo">25386</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.25386"></a>
+<span class="sourceLineNo">25387</span>                                        float ox;<a name="line.25387"></a>
+<span class="sourceLineNo">25388</span>                                        float oy;<a name="line.25388"></a>
+<span class="sourceLineNo">25389</span>                                        ox = (float) (Math.log(Math.hypot(ix, iy)));<a name="line.25389"></a>
+<span class="sourceLineNo">25390</span>                                        oy = (float) (Math.atan2(iy, ix));<a name="line.25390"></a>
+<span class="sourceLineNo">25391</span>                                        oc64data[it.oIndex] = ox;<a name="line.25391"></a>
+<span class="sourceLineNo">25392</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.25392"></a>
+<span class="sourceLineNo">25393</span>                                }<a name="line.25393"></a>
+<span class="sourceLineNo">25394</span>                        }<a name="line.25394"></a>
+<span class="sourceLineNo">25395</span>                        break;<a name="line.25395"></a>
+<span class="sourceLineNo">25396</span>                case Dataset.COMPLEX128:<a name="line.25396"></a>
+<span class="sourceLineNo">25397</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.25397"></a>
+<span class="sourceLineNo">25398</span>                        if (!da.isComplex()) {<a name="line.25398"></a>
+<span class="sourceLineNo">25399</span>                                if (it.isOutputDouble()) {<a name="line.25399"></a>
+<span class="sourceLineNo">25400</span>                                        final double iy = 0;<a name="line.25400"></a>
+<span class="sourceLineNo">25401</span>                                        while (it.hasNext()) {<a name="line.25401"></a>
+<span class="sourceLineNo">25402</span>                                                final double ix = it.aDouble;<a name="line.25402"></a>
+<span class="sourceLineNo">25403</span>                                                double ox;<a name="line.25403"></a>
+<span class="sourceLineNo">25404</span>                                                double oy;<a name="line.25404"></a>
+<span class="sourceLineNo">25405</span>                                                ox = (Math.log(Math.hypot(ix, iy)));<a name="line.25405"></a>
+<span class="sourceLineNo">25406</span>                                                oy = (Math.atan2(iy, ix));<a name="line.25406"></a>
+<span class="sourceLineNo">25407</span>                                                oc128data[it.oIndex] = ox;<a name="line.25407"></a>
+<span class="sourceLineNo">25408</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.25408"></a>
+<span class="sourceLineNo">25409</span>                                        }<a name="line.25409"></a>
+<span class="sourceLineNo">25410</span>                                } else {<a name="line.25410"></a>
+<span class="sourceLineNo">25411</span>                                        final long iy = 0;<a name="line.25411"></a>
+<span class="sourceLineNo">25412</span>                                        while (it.hasNext()) {<a name="line.25412"></a>
+<span class="sourceLineNo">25413</span>                                                final long ix = it.aLong;<a name="line.25413"></a>
+<span class="sourceLineNo">25414</span>                                                double ox;<a name="line.25414"></a>
+<span class="sourceLineNo">25415</span>                                                double oy;<a name="line.25415"></a>
+<span class="sourceLineNo">25416</span>                                                ox = (double) (Math.log(Math.hypot(ix, iy)));<a name="line.25416"></a>
+<span class="sourceLineNo">25417</span>                                                oy = (double) (Math.atan2(iy, ix));<a name="line.25417"></a>
+<span class="sourceLineNo">25418</span>                                                oc128data[it.oIndex] = ox;<a name="line.25418"></a>
+<span class="sourceLineNo">25419</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.25419"></a>
+<span class="sourceLineNo">25420</span>                                        }<a name="line.25420"></a>
+<span class="sourceLineNo">25421</span>                                }<a name="line.25421"></a>
+<span class="sourceLineNo">25422</span>                        } else {<a name="line.25422"></a>
+<span class="sourceLineNo">25423</span>                                while (it.hasNext()) {<a name="line.25423"></a>
+<span class="sourceLineNo">25424</span>                                        final double ix = it.aDouble;<a name="line.25424"></a>
+<span class="sourceLineNo">25425</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.25425"></a>
+<span class="sourceLineNo">25426</span>                                        double ox;<a name="line.25426"></a>
+<span class="sourceLineNo">25427</span>                                        double oy;<a name="line.25427"></a>
+<span class="sourceLineNo">25428</span>                                        ox = (Math.log(Math.hypot(ix, iy)));<a name="line.25428"></a>
+<span class="sourceLineNo">25429</span>                                        oy = (Math.atan2(iy, ix));<a name="line.25429"></a>
+<span class="sourceLineNo">25430</span>                                        oc128data[it.oIndex] = ox;<a name="line.25430"></a>
+<span class="sourceLineNo">25431</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.25431"></a>
+<span class="sourceLineNo">25432</span>                                }<a name="line.25432"></a>
+<span class="sourceLineNo">25433</span>                        }<a name="line.25433"></a>
+<span class="sourceLineNo">25434</span>                        break;<a name="line.25434"></a>
+<span class="sourceLineNo">25435</span>                default:<a name="line.25435"></a>
+<span class="sourceLineNo">25436</span>                        throw new IllegalArgumentException("log supports integer, compound integer, real, compound real, complex datasets only");<a name="line.25436"></a>
+<span class="sourceLineNo">25437</span>                }<a name="line.25437"></a>
+<span class="sourceLineNo">25438</span><a name="line.25438"></a>
+<span class="sourceLineNo">25439</span>                addFunctionName(result, "log");<a name="line.25439"></a>
+<span class="sourceLineNo">25440</span>                return result;<a name="line.25440"></a>
+<span class="sourceLineNo">25441</span>        }<a name="line.25441"></a>
+<span class="sourceLineNo">25442</span><a name="line.25442"></a>
+<span class="sourceLineNo">25443</span>        /**<a name="line.25443"></a>
+<span class="sourceLineNo">25444</span>         * log2 - evaluate the logarithm function on each element of the dataset<a name="line.25444"></a>
+<span class="sourceLineNo">25445</span>         * @param a<a name="line.25445"></a>
+<span class="sourceLineNo">25446</span>         * @return dataset<a name="line.25446"></a>
+<span class="sourceLineNo">25447</span>         */<a name="line.25447"></a>
+<span class="sourceLineNo">25448</span>        public static Dataset log2(final Object a) {<a name="line.25448"></a>
+<span class="sourceLineNo">25449</span>                return log2(a, null);<a name="line.25449"></a>
+<span class="sourceLineNo">25450</span>        }<a name="line.25450"></a>
+<span class="sourceLineNo">25451</span><a name="line.25451"></a>
+<span class="sourceLineNo">25452</span>        /**<a name="line.25452"></a>
+<span class="sourceLineNo">25453</span>         * log2 - evaluate the logarithm function on each element of the dataset<a name="line.25453"></a>
+<span class="sourceLineNo">25454</span>         * @param a<a name="line.25454"></a>
+<span class="sourceLineNo">25455</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.25455"></a>
+<span class="sourceLineNo">25456</span>         * @return dataset<a name="line.25456"></a>
+<span class="sourceLineNo">25457</span>         */<a name="line.25457"></a>
+<span class="sourceLineNo">25458</span>        public static Dataset log2(final Object a, final Dataset o) {<a name="line.25458"></a>
+<span class="sourceLineNo">25459</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.25459"></a>
+<span class="sourceLineNo">25460</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.25460"></a>
+<span class="sourceLineNo">25461</span>                final Dataset result = it.getOutput();<a name="line.25461"></a>
+<span class="sourceLineNo">25462</span>                if (!result.isComplex()) {<a name="line.25462"></a>
+<span class="sourceLineNo">25463</span>                        if (da.isComplex()) {<a name="line.25463"></a>
+<span class="sourceLineNo">25464</span>                                da = da.getRealView();<a name="line.25464"></a>
+<span class="sourceLineNo">25465</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.25465"></a>
+<span class="sourceLineNo">25466</span>                        }<a name="line.25466"></a>
+<span class="sourceLineNo">25467</span>                }<a name="line.25467"></a>
+<span class="sourceLineNo">25468</span>                final int is = result.getElementsPerItem();<a name="line.25468"></a>
+<span class="sourceLineNo">25469</span>                final int as = da.getElementsPerItem();<a name="line.25469"></a>
+<span class="sourceLineNo">25470</span>                final int dt = result.getDType();<a name="line.25470"></a>
+<span class="sourceLineNo">25471</span><a name="line.25471"></a>
+<span class="sourceLineNo">25472</span>                switch(dt) {<a name="line.25472"></a>
+<span class="sourceLineNo">25473</span>                case Dataset.INT8:<a name="line.25473"></a>
+<span class="sourceLineNo">25474</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.25474"></a>
+<span class="sourceLineNo">25475</span>                        if (it.isOutputDouble()) {<a name="line.25475"></a>
+<span class="sourceLineNo">25476</span>                                while (it.hasNext()) {<a name="line.25476"></a>
+<span class="sourceLineNo">25477</span>                                        final double ix = it.aDouble;<a name="line.25477"></a>
+<span class="sourceLineNo">25478</span>                                        byte ox;<a name="line.25478"></a>
+<span class="sourceLineNo">25479</span>                                        ox = (byte) toLong(Math.log(ix)/Math.log(2.));<a name="line.25479"></a>
+<span class="sourceLineNo">25480</span>                                        oi8data[it.oIndex] = ox;<a name="line.25480"></a>
+<span class="sourceLineNo">25481</span>                                }<a name="line.25481"></a>
+<span class="sourceLineNo">25482</span>                        } else {<a name="line.25482"></a>
+<span class="sourceLineNo">25483</span>                                while (it.hasNext()) {<a name="line.25483"></a>
+<span class="sourceLineNo">25484</span>                                        final long ix = it.aLong;<a name="line.25484"></a>
+<span class="sourceLineNo">25485</span>                                        byte ox;<a name="line.25485"></a>
+<span class="sourceLineNo">25486</span>                                        ox = (byte) toLong(Math.log(ix)/Math.log(2.));<a name="line.25486"></a>
+<span class="sourceLineNo">25487</span>                                        oi8data[it.oIndex] = ox;<a name="line.25487"></a>
+<span class="sourceLineNo">25488</span>                                }<a name="line.25488"></a>
+<span class="sourceLineNo">25489</span>                        }<a name="line.25489"></a>
+<span class="sourceLineNo">25490</span>                        break;<a name="line.25490"></a>
+<span class="sourceLineNo">25491</span>                case Dataset.INT16:<a name="line.25491"></a>
+<span class="sourceLineNo">25492</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.25492"></a>
+<span class="sourceLineNo">25493</span>                        if (it.isOutputDouble()) {<a name="line.25493"></a>
+<span class="sourceLineNo">25494</span>                                while (it.hasNext()) {<a name="line.25494"></a>
+<span class="sourceLineNo">25495</span>                                        final double ix = it.aDouble;<a name="line.25495"></a>
+<span class="sourceLineNo">25496</span>                                        short ox;<a name="line.25496"></a>
+<span class="sourceLineNo">25497</span>                                        ox = (short) toLong(Math.log(ix)/Math.log(2.));<a name="line.25497"></a>
+<span class="sourceLineNo">25498</span>                                        oi16data[it.oIndex] = ox;<a name="line.25498"></a>
+<span class="sourceLineNo">25499</span>                                }<a name="line.25499"></a>
+<span class="sourceLineNo">25500</span>                        } else {<a name="line.25500"></a>
+<span class="sourceLineNo">25501</span>                                while (it.hasNext()) {<a name="line.25501"></a>
+<span class="sourceLineNo">25502</span>                                        final long ix = it.aLong;<a name="line.25502"></a>
+<span class="sourceLineNo">25503</span>                                        short ox;<a name="line.25503"></a>
+<span class="sourceLineNo">25504</span>                                        ox = (short) toLong(Math.log(ix)/Math.log(2.));<a name="line.25504"></a>
+<span class="sourceLineNo">25505</span>                                        oi16data[it.oIndex] = ox;<a name="line.25505"></a>
+<span class="sourceLineNo">25506</span>                                }<a name="line.25506"></a>
+<span class="sourceLineNo">25507</span>                        }<a name="line.25507"></a>
+<span class="sourceLineNo">25508</span>                        break;<a name="line.25508"></a>
+<span class="sourceLineNo">25509</span>                case Dataset.INT64:<a name="line.25509"></a>
+<span class="sourceLineNo">25510</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.25510"></a>
+<span class="sourceLineNo">25511</span>                        if (it.isOutputDouble()) {<a name="line.25511"></a>
+<span class="sourceLineNo">25512</span>                                while (it.hasNext()) {<a name="line.25512"></a>
+<span class="sourceLineNo">25513</span>                                        final double ix = it.aDouble;<a name="line.25513"></a>
+<span class="sourceLineNo">25514</span>                                        long ox;<a name="line.25514"></a>
+<span class="sourceLineNo">25515</span>                                        ox = toLong(Math.log(ix)/Math.log(2.));<a name="line.25515"></a>
+<span class="sourceLineNo">25516</span>                                        oi64data[it.oIndex] = ox;<a name="line.25516"></a>
+<span class="sourceLineNo">25517</span>                                }<a name="line.25517"></a>
+<span class="sourceLineNo">25518</span>                        } else {<a name="line.25518"></a>
+<span class="sourceLineNo">25519</span>                                while (it.hasNext()) {<a name="line.25519"></a>
+<span class="sourceLineNo">25520</span>                                        final long ix = it.aLong;<a name="line.25520"></a>
+<span class="sourceLineNo">25521</span>                                        long ox;<a name="line.25521"></a>
+<span class="sourceLineNo">25522</span>                                        ox = toLong(Math.log(ix)/Math.log(2.));<a name="line.25522"></a>
+<span class="sourceLineNo">25523</span>                                        oi64data[it.oIndex] = ox;<a name="line.25523"></a>
+<span class="sourceLineNo">25524</span>                                }<a name="line.25524"></a>
+<span class="sourceLineNo">25525</span>                        }<a name="line.25525"></a>
+<span class="sourceLineNo">25526</span>                        break;<a name="line.25526"></a>
+<span class="sourceLineNo">25527</span>                case Dataset.INT32:<a name="line.25527"></a>
+<span class="sourceLineNo">25528</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.25528"></a>
+<span class="sourceLineNo">25529</span>                        if (it.isOutputDouble()) {<a name="line.25529"></a>
+<span class="sourceLineNo">25530</span>                                while (it.hasNext()) {<a name="line.25530"></a>
+<span class="sourceLineNo">25531</span>                                        final double ix = it.aDouble;<a name="line.25531"></a>
+<span class="sourceLineNo">25532</span>                                        int ox;<a name="line.25532"></a>
+<span class="sourceLineNo">25533</span>                                        ox = (int) toLong(Math.log(ix)/Math.log(2.));<a name="line.25533"></a>
+<span class="sourceLineNo">25534</span>                                        oi32data[it.oIndex] = ox;<a name="line.25534"></a>
+<span class="sourceLineNo">25535</span>                                }<a name="line.25535"></a>
+<span class="sourceLineNo">25536</span>                        } else {<a name="line.25536"></a>
+<span class="sourceLineNo">25537</span>                                while (it.hasNext()) {<a name="line.25537"></a>
+<span class="sourceLineNo">25538</span>                                        final long ix = it.aLong;<a name="line.25538"></a>
+<span class="sourceLineNo">25539</span>                                        int ox;<a name="line.25539"></a>
+<span class="sourceLineNo">25540</span>                                        ox = (int) toLong(Math.log(ix)/Math.log(2.));<a name="line.25540"></a>
+<span class="sourceLineNo">25541</span>                                        oi32data[it.oIndex] = ox;<a name="line.25541"></a>
+<span class="sourceLineNo">25542</span>                                }<a name="line.25542"></a>
+<span class="sourceLineNo">25543</span>                        }<a name="line.25543"></a>
+<span class="sourceLineNo">25544</span>                        break;<a name="line.25544"></a>
+<span class="sourceLineNo">25545</span>                case Dataset.ARRAYINT8:<a name="line.25545"></a>
+<span class="sourceLineNo">25546</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.25546"></a>
+<span class="sourceLineNo">25547</span>                        if (is == 1) {<a name="line.25547"></a>
+<span class="sourceLineNo">25548</span>                                if (it.isOutputDouble()) {<a name="line.25548"></a>
+<span class="sourceLineNo">25549</span>                                        while (it.hasNext()) {<a name="line.25549"></a>
+<span class="sourceLineNo">25550</span>                                                final double ix = it.aDouble;<a name="line.25550"></a>
+<span class="sourceLineNo">25551</span>                                                byte ox;<a name="line.25551"></a>
+<span class="sourceLineNo">25552</span>                                                ox = (byte) toLong(Math.log(ix)/Math.log(2.));<a name="line.25552"></a>
+<span class="sourceLineNo">25553</span>                                                oai8data[it.oIndex] = ox;<a name="line.25553"></a>
+<span class="sourceLineNo">25554</span>                                        }<a name="line.25554"></a>
+<span class="sourceLineNo">25555</span>                                } else {<a name="line.25555"></a>
+<span class="sourceLineNo">25556</span>                                        while (it.hasNext()) {<a name="line.25556"></a>
+<span class="sourceLineNo">25557</span>                                                final long ix = it.aLong;<a name="line.25557"></a>
+<span class="sourceLineNo">25558</span>                                                byte ox;<a name="line.25558"></a>
+<span class="sourceLineNo">25559</span>                                                ox = (byte) toLong(Math.log(ix)/Math.log(2.));<a name="line.25559"></a>
+<span class="sourceLineNo">25560</span>                                                oai8data[it.oIndex] = ox;<a name="line.25560"></a>
+<span class="sourceLineNo">25561</span>                                        }<a name="line.25561"></a>
+<span class="sourceLineNo">25562</span>                                }<a name="line.25562"></a>
+<span class="sourceLineNo">25563</span>                        } else if (as == 1) {<a name="line.25563"></a>
+<span class="sourceLineNo">25564</span>                                if (it.isOutputDouble()) {<a name="line.25564"></a>
+<span class="sourceLineNo">25565</span>                                        while (it.hasNext()) {<a name="line.25565"></a>
+<span class="sourceLineNo">25566</span>                                                final double ix = it.aDouble;<a name="line.25566"></a>
+<span class="sourceLineNo">25567</span>                                                byte ox;<a name="line.25567"></a>
+<span class="sourceLineNo">25568</span>                                                ox = (byte) toLong(Math.log(ix)/Math.log(2.));<a name="line.25568"></a>
+<span class="sourceLineNo">25569</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25569"></a>
+<span class="sourceLineNo">25570</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.25570"></a>
+<span class="sourceLineNo">25571</span>                                                }<a name="line.25571"></a>
+<span class="sourceLineNo">25572</span>                                        }<a name="line.25572"></a>
+<span class="sourceLineNo">25573</span>                                } else {<a name="line.25573"></a>
+<span class="sourceLineNo">25574</span>                                        while (it.hasNext()) {<a name="line.25574"></a>
+<span class="sourceLineNo">25575</span>                                                final long ix = it.aLong;<a name="line.25575"></a>
+<span class="sourceLineNo">25576</span>                                                byte ox;<a name="line.25576"></a>
+<span class="sourceLineNo">25577</span>                                                ox = (byte) toLong(Math.log(ix)/Math.log(2.));<a name="line.25577"></a>
+<span class="sourceLineNo">25578</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25578"></a>
+<span class="sourceLineNo">25579</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.25579"></a>
+<span class="sourceLineNo">25580</span>                                                }<a name="line.25580"></a>
+<span class="sourceLineNo">25581</span>                                        }<a name="line.25581"></a>
+<span class="sourceLineNo">25582</span>                                }<a name="line.25582"></a>
+<span class="sourceLineNo">25583</span>                        } else {<a name="line.25583"></a>
+<span class="sourceLineNo">25584</span>                                if (it.isOutputDouble()) {<a name="line.25584"></a>
+<span class="sourceLineNo">25585</span>                                        while (it.hasNext()) {<a name="line.25585"></a>
+<span class="sourceLineNo">25586</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25586"></a>
+<span class="sourceLineNo">25587</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.25587"></a>
+<span class="sourceLineNo">25588</span>                                                        byte ox;<a name="line.25588"></a>
+<span class="sourceLineNo">25589</span>                                                        ox = (byte) toLong(Math.log(ix)/Math.log(2.));<a name="line.25589"></a>
+<span class="sourceLineNo">25590</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.25590"></a>
+<span class="sourceLineNo">25591</span>                                                }<a name="line.25591"></a>
+<span class="sourceLineNo">25592</span>                                        }<a name="line.25592"></a>
+<span class="sourceLineNo">25593</span>                                } else {<a name="line.25593"></a>
+<span class="sourceLineNo">25594</span>                                        while (it.hasNext()) {<a name="line.25594"></a>
+<span class="sourceLineNo">25595</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25595"></a>
+<span class="sourceLineNo">25596</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.25596"></a>
+<span class="sourceLineNo">25597</span>                                                        byte ox;<a name="line.25597"></a>
+<span class="sourceLineNo">25598</span>                                                        ox = (byte) toLong(Math.log(ix)/Math.log(2.));<a name="line.25598"></a>
+<span class="sourceLineNo">25599</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.25599"></a>
+<span class="sourceLineNo">25600</span>                                                }<a name="line.25600"></a>
+<span class="sourceLineNo">25601</span>                                        }<a name="line.25601"></a>
+<span class="sourceLineNo">25602</span>                                }<a name="line.25602"></a>
+<span class="sourceLineNo">25603</span>                        }<a name="line.25603"></a>
+<span class="sourceLineNo">25604</span>                        break;<a name="line.25604"></a>
+<span class="sourceLineNo">25605</span>                case Dataset.ARRAYINT16:<a name="line.25605"></a>
+<span class="sourceLineNo">25606</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.25606"></a>
+<span class="sourceLineNo">25607</span>                        if (is == 1) {<a name="line.25607"></a>
+<span class="sourceLineNo">25608</span>                                if (it.isOutputDouble()) {<a name="line.25608"></a>
+<span class="sourceLineNo">25609</span>                                        while (it.hasNext()) {<a name="line.25609"></a>
+<span class="sourceLineNo">25610</span>                                                final double ix = it.aDouble;<a name="line.25610"></a>
+<span class="sourceLineNo">25611</span>                                                short ox;<a name="line.25611"></a>
+<span class="sourceLineNo">25612</span>                                                ox = (short) toLong(Math.log(ix)/Math.log(2.));<a name="line.25612"></a>
+<span class="sourceLineNo">25613</span>                                                oai16data[it.oIndex] = ox;<a name="line.25613"></a>
+<span class="sourceLineNo">25614</span>                                        }<a name="line.25614"></a>
+<span class="sourceLineNo">25615</span>                                } else {<a name="line.25615"></a>
+<span class="sourceLineNo">25616</span>                                        while (it.hasNext()) {<a name="line.25616"></a>
+<span class="sourceLineNo">25617</span>                                                final long ix = it.aLong;<a name="line.25617"></a>
+<span class="sourceLineNo">25618</span>                                                short ox;<a name="line.25618"></a>
+<span class="sourceLineNo">25619</span>                                                ox = (short) toLong(Math.log(ix)/Math.log(2.));<a name="line.25619"></a>
+<span class="sourceLineNo">25620</span>                                                oai16data[it.oIndex] = ox;<a name="line.25620"></a>
+<span class="sourceLineNo">25621</span>                                        }<a name="line.25621"></a>
+<span class="sourceLineNo">25622</span>                                }<a name="line.25622"></a>
+<span class="sourceLineNo">25623</span>                        } else if (as == 1) {<a name="line.25623"></a>
+<span class="sourceLineNo">25624</span>                                if (it.isOutputDouble()) {<a name="line.25624"></a>
+<span class="sourceLineNo">25625</span>                                        while (it.hasNext()) {<a name="line.25625"></a>
+<span class="sourceLineNo">25626</span>                                                final double ix = it.aDouble;<a name="line.25626"></a>
+<span class="sourceLineNo">25627</span>                                                short ox;<a name="line.25627"></a>
+<span class="sourceLineNo">25628</span>                                                ox = (short) toLong(Math.log(ix)/Math.log(2.));<a name="line.25628"></a>
+<span class="sourceLineNo">25629</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25629"></a>
+<span class="sourceLineNo">25630</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.25630"></a>
+<span class="sourceLineNo">25631</span>                                                }<a name="line.25631"></a>
+<span class="sourceLineNo">25632</span>                                        }<a name="line.25632"></a>
+<span class="sourceLineNo">25633</span>                                } else {<a name="line.25633"></a>
+<span class="sourceLineNo">25634</span>                                        while (it.hasNext()) {<a name="line.25634"></a>
+<span class="sourceLineNo">25635</span>                                                final long ix = it.aLong;<a name="line.25635"></a>
+<span class="sourceLineNo">25636</span>                                                short ox;<a name="line.25636"></a>
+<span class="sourceLineNo">25637</span>                                                ox = (short) toLong(Math.log(ix)/Math.log(2.));<a name="line.25637"></a>
+<span class="sourceLineNo">25638</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25638"></a>
+<span class="sourceLineNo">25639</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.25639"></a>
+<span class="sourceLineNo">25640</span>                                                }<a name="line.25640"></a>
+<span class="sourceLineNo">25641</span>                                        }<a name="line.25641"></a>
+<span class="sourceLineNo">25642</span>                                }<a name="line.25642"></a>
+<span class="sourceLineNo">25643</span>                        } else {<a name="line.25643"></a>
+<span class="sourceLineNo">25644</span>                                if (it.isOutputDouble()) {<a name="line.25644"></a>
+<span class="sourceLineNo">25645</span>                                        while (it.hasNext()) {<a name="line.25645"></a>
+<span class="sourceLineNo">25646</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25646"></a>
+<span class="sourceLineNo">25647</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.25647"></a>
+<span class="sourceLineNo">25648</span>                                                        short ox;<a name="line.25648"></a>
+<span class="sourceLineNo">25649</span>                                                        ox = (short) toLong(Math.log(ix)/Math.log(2.));<a name="line.25649"></a>
+<span class="sourceLineNo">25650</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.25650"></a>
+<span class="sourceLineNo">25651</span>                                                }<a name="line.25651"></a>
+<span class="sourceLineNo">25652</span>                                        }<a name="line.25652"></a>
+<span class="sourceLineNo">25653</span>                                } else {<a name="line.25653"></a>
+<span class="sourceLineNo">25654</span>                                        while (it.hasNext()) {<a name="line.25654"></a>
+<span class="sourceLineNo">25655</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25655"></a>
+<span class="sourceLineNo">25656</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.25656"></a>
+<span class="sourceLineNo">25657</span>                                                        short ox;<a name="line.25657"></a>
+<span class="sourceLineNo">25658</span>                                                        ox = (short) toLong(Math.log(ix)/Math.log(2.));<a name="line.25658"></a>
+<span class="sourceLineNo">25659</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.25659"></a>
+<span class="sourceLineNo">25660</span>                                                }<a name="line.25660"></a>
+<span class="sourceLineNo">25661</span>                                        }<a name="line.25661"></a>
+<span class="sourceLineNo">25662</span>                                }<a name="line.25662"></a>
+<span class="sourceLineNo">25663</span>                        }<a name="line.25663"></a>
+<span class="sourceLineNo">25664</span>                        break;<a name="line.25664"></a>
+<span class="sourceLineNo">25665</span>                case Dataset.ARRAYINT64:<a name="line.25665"></a>
+<span class="sourceLineNo">25666</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.25666"></a>
+<span class="sourceLineNo">25667</span>                        if (is == 1) {<a name="line.25667"></a>
+<span class="sourceLineNo">25668</span>                                if (it.isOutputDouble()) {<a name="line.25668"></a>
+<span class="sourceLineNo">25669</span>                                        while (it.hasNext()) {<a name="line.25669"></a>
+<span class="sourceLineNo">25670</span>                                                final double ix = it.aDouble;<a name="line.25670"></a>
+<span class="sourceLineNo">25671</span>                                                long ox;<a name="line.25671"></a>
+<span class="sourceLineNo">25672</span>                                                ox = toLong(Math.log(ix)/Math.log(2.));<a name="line.25672"></a>
+<span class="sourceLineNo">25673</span>                                                oai64data[it.oIndex] = ox;<a name="line.25673"></a>
+<span class="sourceLineNo">25674</span>                                        }<a name="line.25674"></a>
+<span class="sourceLineNo">25675</span>                                } else {<a name="line.25675"></a>
+<span class="sourceLineNo">25676</span>                                        while (it.hasNext()) {<a name="line.25676"></a>
+<span class="sourceLineNo">25677</span>                                                final long ix = it.aLong;<a name="line.25677"></a>
+<span class="sourceLineNo">25678</span>                                                long ox;<a name="line.25678"></a>
+<span class="sourceLineNo">25679</span>                                                ox = toLong(Math.log(ix)/Math.log(2.));<a name="line.25679"></a>
+<span class="sourceLineNo">25680</span>                                                oai64data[it.oIndex] = ox;<a name="line.25680"></a>
+<span class="sourceLineNo">25681</span>                                        }<a name="line.25681"></a>
+<span class="sourceLineNo">25682</span>                                }<a name="line.25682"></a>
+<span class="sourceLineNo">25683</span>                        } else if (as == 1) {<a name="line.25683"></a>
+<span class="sourceLineNo">25684</span>                                if (it.isOutputDouble()) {<a name="line.25684"></a>
+<span class="sourceLineNo">25685</span>                                        while (it.hasNext()) {<a name="line.25685"></a>
+<span class="sourceLineNo">25686</span>                                                final double ix = it.aDouble;<a name="line.25686"></a>
+<span class="sourceLineNo">25687</span>                                                long ox;<a name="line.25687"></a>
+<span class="sourceLineNo">25688</span>                                                ox = toLong(Math.log(ix)/Math.log(2.));<a name="line.25688"></a>
+<span class="sourceLineNo">25689</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25689"></a>
+<span class="sourceLineNo">25690</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.25690"></a>
+<span class="sourceLineNo">25691</span>                                                }<a name="line.25691"></a>
+<span class="sourceLineNo">25692</span>                                        }<a name="line.25692"></a>
+<span class="sourceLineNo">25693</span>                                } else {<a name="line.25693"></a>
+<span class="sourceLineNo">25694</span>                                        while (it.hasNext()) {<a name="line.25694"></a>
+<span class="sourceLineNo">25695</span>                                                final long ix = it.aLong;<a name="line.25695"></a>
+<span class="sourceLineNo">25696</span>                                                long ox;<a name="line.25696"></a>
+<span class="sourceLineNo">25697</span>                                                ox = toLong(Math.log(ix)/Math.log(2.));<a name="line.25697"></a>
+<span class="sourceLineNo">25698</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25698"></a>
+<span class="sourceLineNo">25699</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.25699"></a>
+<span class="sourceLineNo">25700</span>                                                }<a name="line.25700"></a>
+<span class="sourceLineNo">25701</span>                                        }<a name="line.25701"></a>
+<span class="sourceLineNo">25702</span>                                }<a name="line.25702"></a>
+<span class="sourceLineNo">25703</span>                        } else {<a name="line.25703"></a>
+<span class="sourceLineNo">25704</span>                                if (it.isOutputDouble()) {<a name="line.25704"></a>
+<span class="sourceLineNo">25705</span>                                        while (it.hasNext()) {<a name="line.25705"></a>
+<span class="sourceLineNo">25706</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25706"></a>
+<span class="sourceLineNo">25707</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.25707"></a>
+<span class="sourceLineNo">25708</span>                                                        long ox;<a name="line.25708"></a>
+<span class="sourceLineNo">25709</span>                                                        ox = toLong(Math.log(ix)/Math.log(2.));<a name="line.25709"></a>
+<span class="sourceLineNo">25710</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.25710"></a>
+<span class="sourceLineNo">25711</span>                                                }<a name="line.25711"></a>
+<span class="sourceLineNo">25712</span>                                        }<a name="line.25712"></a>
+<span class="sourceLineNo">25713</span>                                } else {<a name="line.25713"></a>
+<span class="sourceLineNo">25714</span>                                        while (it.hasNext()) {<a name="line.25714"></a>
+<span class="sourceLineNo">25715</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25715"></a>
+<span class="sourceLineNo">25716</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.25716"></a>
+<span class="sourceLineNo">25717</span>                                                        long ox;<a name="line.25717"></a>
+<span class="sourceLineNo">25718</span>                                                        ox = toLong(Math.log(ix)/Math.log(2.));<a name="line.25718"></a>
+<span class="sourceLineNo">25719</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.25719"></a>
+<span class="sourceLineNo">25720</span>                                                }<a name="line.25720"></a>
+<span class="sourceLineNo">25721</span>                                        }<a name="line.25721"></a>
+<span class="sourceLineNo">25722</span>                                }<a name="line.25722"></a>
+<span class="sourceLineNo">25723</span>                        }<a name="line.25723"></a>
+<span class="sourceLineNo">25724</span>                        break;<a name="line.25724"></a>
+<span class="sourceLineNo">25725</span>                case Dataset.ARRAYINT32:<a name="line.25725"></a>
+<span class="sourceLineNo">25726</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.25726"></a>
+<span class="sourceLineNo">25727</span>                        if (is == 1) {<a name="line.25727"></a>
+<span class="sourceLineNo">25728</span>                                if (it.isOutputDouble()) {<a name="line.25728"></a>
+<span class="sourceLineNo">25729</span>                                        while (it.hasNext()) {<a name="line.25729"></a>
+<span class="sourceLineNo">25730</span>                                                final double ix = it.aDouble;<a name="line.25730"></a>
+<span class="sourceLineNo">25731</span>                                                int ox;<a name="line.25731"></a>
+<span class="sourceLineNo">25732</span>                                                ox = (int) toLong(Math.log(ix)/Math.log(2.));<a name="line.25732"></a>
+<span class="sourceLineNo">25733</span>                                                oai32data[it.oIndex] = ox;<a name="line.25733"></a>
+<span class="sourceLineNo">25734</span>                                        }<a name="line.25734"></a>
+<span class="sourceLineNo">25735</span>                                } else {<a name="line.25735"></a>
+<span class="sourceLineNo">25736</span>                                        while (it.hasNext()) {<a name="line.25736"></a>
+<span class="sourceLineNo">25737</span>                                                final long ix = it.aLong;<a name="line.25737"></a>
+<span class="sourceLineNo">25738</span>                                                int ox;<a name="line.25738"></a>
+<span class="sourceLineNo">25739</span>                                                ox = (int) toLong(Math.log(ix)/Math.log(2.));<a name="line.25739"></a>
+<span class="sourceLineNo">25740</span>                                                oai32data[it.oIndex] = ox;<a name="line.25740"></a>
+<span class="sourceLineNo">25741</span>                                        }<a name="line.25741"></a>
+<span class="sourceLineNo">25742</span>                                }<a name="line.25742"></a>
+<span class="sourceLineNo">25743</span>                        } else if (as == 1) {<a name="line.25743"></a>
+<span class="sourceLineNo">25744</span>                                if (it.isOutputDouble()) {<a name="line.25744"></a>
+<span class="sourceLineNo">25745</span>                                        while (it.hasNext()) {<a name="line.25745"></a>
+<span class="sourceLineNo">25746</span>                                                final double ix = it.aDouble;<a name="line.25746"></a>
+<span class="sourceLineNo">25747</span>                                                int ox;<a name="line.25747"></a>
+<span class="sourceLineNo">25748</span>                                                ox = (int) toLong(Math.log(ix)/Math.log(2.));<a name="line.25748"></a>
+<span class="sourceLineNo">25749</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25749"></a>
+<span class="sourceLineNo">25750</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.25750"></a>
+<span class="sourceLineNo">25751</span>                                                }<a name="line.25751"></a>
+<span class="sourceLineNo">25752</span>                                        }<a name="line.25752"></a>
+<span class="sourceLineNo">25753</span>                                } else {<a name="line.25753"></a>
+<span class="sourceLineNo">25754</span>                                        while (it.hasNext()) {<a name="line.25754"></a>
+<span class="sourceLineNo">25755</span>                                                final long ix = it.aLong;<a name="line.25755"></a>
+<span class="sourceLineNo">25756</span>                                                int ox;<a name="line.25756"></a>
+<span class="sourceLineNo">25757</span>                                                ox = (int) toLong(Math.log(ix)/Math.log(2.));<a name="line.25757"></a>
+<span class="sourceLineNo">25758</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25758"></a>
+<span class="sourceLineNo">25759</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.25759"></a>
+<span class="sourceLineNo">25760</span>                                                }<a name="line.25760"></a>
+<span class="sourceLineNo">25761</span>                                        }<a name="line.25761"></a>
+<span class="sourceLineNo">25762</span>                                }<a name="line.25762"></a>
+<span class="sourceLineNo">25763</span>                        } else {<a name="line.25763"></a>
+<span class="sourceLineNo">25764</span>                                if (it.isOutputDouble()) {<a name="line.25764"></a>
+<span class="sourceLineNo">25765</span>                                        while (it.hasNext()) {<a name="line.25765"></a>
+<span class="sourceLineNo">25766</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25766"></a>
+<span class="sourceLineNo">25767</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.25767"></a>
+<span class="sourceLineNo">25768</span>                                                        int ox;<a name="line.25768"></a>
+<span class="sourceLineNo">25769</span>                                                        ox = (int) toLong(Math.log(ix)/Math.log(2.));<a name="line.25769"></a>
+<span class="sourceLineNo">25770</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.25770"></a>
+<span class="sourceLineNo">25771</span>                                                }<a name="line.25771"></a>
+<span class="sourceLineNo">25772</span>                                        }<a name="line.25772"></a>
+<span class="sourceLineNo">25773</span>                                } else {<a name="line.25773"></a>
+<span class="sourceLineNo">25774</span>                                        while (it.hasNext()) {<a name="line.25774"></a>
+<span class="sourceLineNo">25775</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25775"></a>
+<span class="sourceLineNo">25776</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.25776"></a>
+<span class="sourceLineNo">25777</span>                                                        int ox;<a name="line.25777"></a>
+<span class="sourceLineNo">25778</span>                                                        ox = (int) toLong(Math.log(ix)/Math.log(2.));<a name="line.25778"></a>
+<span class="sourceLineNo">25779</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.25779"></a>
+<span class="sourceLineNo">25780</span>                                                }<a name="line.25780"></a>
+<span class="sourceLineNo">25781</span>                                        }<a name="line.25781"></a>
+<span class="sourceLineNo">25782</span>                                }<a name="line.25782"></a>
+<span class="sourceLineNo">25783</span>                        }<a name="line.25783"></a>
+<span class="sourceLineNo">25784</span>                        break;<a name="line.25784"></a>
+<span class="sourceLineNo">25785</span>                case Dataset.FLOAT32:<a name="line.25785"></a>
+<span class="sourceLineNo">25786</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.25786"></a>
+<span class="sourceLineNo">25787</span>                        if (it.isOutputDouble()) {<a name="line.25787"></a>
+<span class="sourceLineNo">25788</span>                                while (it.hasNext()) {<a name="line.25788"></a>
+<span class="sourceLineNo">25789</span>                                        final double ix = it.aDouble;<a name="line.25789"></a>
+<span class="sourceLineNo">25790</span>                                        float ox;<a name="line.25790"></a>
+<span class="sourceLineNo">25791</span>                                        ox = (float) (Math.log(ix)/Math.log(2.));<a name="line.25791"></a>
+<span class="sourceLineNo">25792</span>                                        of32data[it.oIndex] = ox;<a name="line.25792"></a>
+<span class="sourceLineNo">25793</span>                                }<a name="line.25793"></a>
+<span class="sourceLineNo">25794</span>                        } else {<a name="line.25794"></a>
+<span class="sourceLineNo">25795</span>                                while (it.hasNext()) {<a name="line.25795"></a>
+<span class="sourceLineNo">25796</span>                                        final long ix = it.aLong;<a name="line.25796"></a>
+<span class="sourceLineNo">25797</span>                                        float ox;<a name="line.25797"></a>
+<span class="sourceLineNo">25798</span>                                        ox = (float) (Math.log(ix)/Math.log(2.));<a name="line.25798"></a>
+<span class="sourceLineNo">25799</span>                                        of32data[it.oIndex] = ox;<a name="line.25799"></a>
+<span class="sourceLineNo">25800</span>                                }<a name="line.25800"></a>
+<span class="sourceLineNo">25801</span>                        }<a name="line.25801"></a>
+<span class="sourceLineNo">25802</span>                        break;<a name="line.25802"></a>
+<span class="sourceLineNo">25803</span>                case Dataset.FLOAT64:<a name="line.25803"></a>
+<span class="sourceLineNo">25804</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.25804"></a>
+<span class="sourceLineNo">25805</span>                        if (it.isOutputDouble()) {<a name="line.25805"></a>
+<span class="sourceLineNo">25806</span>                                while (it.hasNext()) {<a name="line.25806"></a>
+<span class="sourceLineNo">25807</span>                                        final double ix = it.aDouble;<a name="line.25807"></a>
+<span class="sourceLineNo">25808</span>                                        double ox;<a name="line.25808"></a>
+<span class="sourceLineNo">25809</span>                                        ox = (Math.log(ix)/Math.log(2.));<a name="line.25809"></a>
+<span class="sourceLineNo">25810</span>                                        of64data[it.oIndex] = ox;<a name="line.25810"></a>
+<span class="sourceLineNo">25811</span>                                }<a name="line.25811"></a>
+<span class="sourceLineNo">25812</span>                        } else {<a name="line.25812"></a>
+<span class="sourceLineNo">25813</span>                                while (it.hasNext()) {<a name="line.25813"></a>
+<span class="sourceLineNo">25814</span>                                        final long ix = it.aLong;<a name="line.25814"></a>
+<span class="sourceLineNo">25815</span>                                        double ox;<a name="line.25815"></a>
+<span class="sourceLineNo">25816</span>                                        ox = (Math.log(ix)/Math.log(2.));<a name="line.25816"></a>
+<span class="sourceLineNo">25817</span>                                        of64data[it.oIndex] = ox;<a name="line.25817"></a>
+<span class="sourceLineNo">25818</span>                                }<a name="line.25818"></a>
+<span class="sourceLineNo">25819</span>                        }<a name="line.25819"></a>
+<span class="sourceLineNo">25820</span>                        break;<a name="line.25820"></a>
+<span class="sourceLineNo">25821</span>                case Dataset.ARRAYFLOAT32:<a name="line.25821"></a>
+<span class="sourceLineNo">25822</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.25822"></a>
+<span class="sourceLineNo">25823</span>                        if (is == 1) {<a name="line.25823"></a>
+<span class="sourceLineNo">25824</span>                                if (it.isOutputDouble()) {<a name="line.25824"></a>
+<span class="sourceLineNo">25825</span>                                        while (it.hasNext()) {<a name="line.25825"></a>
+<span class="sourceLineNo">25826</span>                                                final double ix = it.aDouble;<a name="line.25826"></a>
+<span class="sourceLineNo">25827</span>                                                float ox;<a name="line.25827"></a>
+<span class="sourceLineNo">25828</span>                                                ox = (float) (Math.log(ix)/Math.log(2.));<a name="line.25828"></a>
+<span class="sourceLineNo">25829</span>                                                oaf32data[it.oIndex] = ox;<a name="line.25829"></a>
+<span class="sourceLineNo">25830</span>                                        }<a name="line.25830"></a>
+<span class="sourceLineNo">25831</span>                                } else {<a name="line.25831"></a>
+<span class="sourceLineNo">25832</span>                                        while (it.hasNext()) {<a name="line.25832"></a>
+<span class="sourceLineNo">25833</span>                                                final long ix = it.aLong;<a name="line.25833"></a>
+<span class="sourceLineNo">25834</span>                                                float ox;<a name="line.25834"></a>
+<span class="sourceLineNo">25835</span>                                                ox = (float) (Math.log(ix)/Math.log(2.));<a name="line.25835"></a>
+<span class="sourceLineNo">25836</span>                                                oaf32data[it.oIndex] = ox;<a name="line.25836"></a>
+<span class="sourceLineNo">25837</span>                                        }<a name="line.25837"></a>
+<span class="sourceLineNo">25838</span>                                }<a name="line.25838"></a>
+<span class="sourceLineNo">25839</span>                        } else if (as == 1) {<a name="line.25839"></a>
+<span class="sourceLineNo">25840</span>                                if (it.isOutputDouble()) {<a name="line.25840"></a>
+<span class="sourceLineNo">25841</span>                                        while (it.hasNext()) {<a name="line.25841"></a>
+<span class="sourceLineNo">25842</span>                                                final double ix = it.aDouble;<a name="line.25842"></a>
+<span class="sourceLineNo">25843</span>                                                float ox;<a name="line.25843"></a>
+<span class="sourceLineNo">25844</span>                                                ox = (float) (Math.log(ix)/Math.log(2.));<a name="line.25844"></a>
+<span class="sourceLineNo">25845</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25845"></a>
+<span class="sourceLineNo">25846</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.25846"></a>
+<span class="sourceLineNo">25847</span>                                                }<a name="line.25847"></a>
+<span class="sourceLineNo">25848</span>                                        }<a name="line.25848"></a>
+<span class="sourceLineNo">25849</span>                                } else {<a name="line.25849"></a>
+<span class="sourceLineNo">25850</span>                                        while (it.hasNext()) {<a name="line.25850"></a>
+<span class="sourceLineNo">25851</span>                                                final long ix = it.aLong;<a name="line.25851"></a>
+<span class="sourceLineNo">25852</span>                                                float ox;<a name="line.25852"></a>
+<span class="sourceLineNo">25853</span>                                                ox = (float) (Math.log(ix)/Math.log(2.));<a name="line.25853"></a>
+<span class="sourceLineNo">25854</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25854"></a>
+<span class="sourceLineNo">25855</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.25855"></a>
+<span class="sourceLineNo">25856</span>                                                }<a name="line.25856"></a>
+<span class="sourceLineNo">25857</span>                                        }<a name="line.25857"></a>
+<span class="sourceLineNo">25858</span>                                }<a name="line.25858"></a>
+<span class="sourceLineNo">25859</span>                        } else {<a name="line.25859"></a>
+<span class="sourceLineNo">25860</span>                                if (it.isOutputDouble()) {<a name="line.25860"></a>
+<span class="sourceLineNo">25861</span>                                        while (it.hasNext()) {<a name="line.25861"></a>
+<span class="sourceLineNo">25862</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25862"></a>
+<span class="sourceLineNo">25863</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.25863"></a>
+<span class="sourceLineNo">25864</span>                                                        float ox;<a name="line.25864"></a>
+<span class="sourceLineNo">25865</span>                                                        ox = (float) (Math.log(ix)/Math.log(2.));<a name="line.25865"></a>
+<span class="sourceLineNo">25866</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.25866"></a>
+<span class="sourceLineNo">25867</span>                                                }<a name="line.25867"></a>
+<span class="sourceLineNo">25868</span>                                        }<a name="line.25868"></a>
+<span class="sourceLineNo">25869</span>                                } else {<a name="line.25869"></a>
+<span class="sourceLineNo">25870</span>                                        while (it.hasNext()) {<a name="line.25870"></a>
+<span class="sourceLineNo">25871</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25871"></a>
+<span class="sourceLineNo">25872</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.25872"></a>
+<span class="sourceLineNo">25873</span>                                                        float ox;<a name="line.25873"></a>
+<span class="sourceLineNo">25874</span>                                                        ox = (float) (Math.log(ix)/Math.log(2.));<a name="line.25874"></a>
+<span class="sourceLineNo">25875</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.25875"></a>
+<span class="sourceLineNo">25876</span>                                                }<a name="line.25876"></a>
+<span class="sourceLineNo">25877</span>                                        }<a name="line.25877"></a>
+<span class="sourceLineNo">25878</span>                                }<a name="line.25878"></a>
+<span class="sourceLineNo">25879</span>                        }<a name="line.25879"></a>
+<span class="sourceLineNo">25880</span>                        break;<a name="line.25880"></a>
+<span class="sourceLineNo">25881</span>                case Dataset.ARRAYFLOAT64:<a name="line.25881"></a>
+<span class="sourceLineNo">25882</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.25882"></a>
+<span class="sourceLineNo">25883</span>                        if (is == 1) {<a name="line.25883"></a>
+<span class="sourceLineNo">25884</span>                                if (it.isOutputDouble()) {<a name="line.25884"></a>
+<span class="sourceLineNo">25885</span>                                        while (it.hasNext()) {<a name="line.25885"></a>
+<span class="sourceLineNo">25886</span>                                                final double ix = it.aDouble;<a name="line.25886"></a>
+<span class="sourceLineNo">25887</span>                                                double ox;<a name="line.25887"></a>
+<span class="sourceLineNo">25888</span>                                                ox = (Math.log(ix)/Math.log(2.));<a name="line.25888"></a>
+<span class="sourceLineNo">25889</span>                                                oaf64data[it.oIndex] = ox;<a name="line.25889"></a>
+<span class="sourceLineNo">25890</span>                                        }<a name="line.25890"></a>
+<span class="sourceLineNo">25891</span>                                } else {<a name="line.25891"></a>
+<span class="sourceLineNo">25892</span>                                        while (it.hasNext()) {<a name="line.25892"></a>
+<span class="sourceLineNo">25893</span>                                                final long ix = it.aLong;<a name="line.25893"></a>
+<span class="sourceLineNo">25894</span>                                                double ox;<a name="line.25894"></a>
+<span class="sourceLineNo">25895</span>                                                ox = (Math.log(ix)/Math.log(2.));<a name="line.25895"></a>
+<span class="sourceLineNo">25896</span>                                                oaf64data[it.oIndex] = ox;<a name="line.25896"></a>
+<span class="sourceLineNo">25897</span>                                        }<a name="line.25897"></a>
+<span class="sourceLineNo">25898</span>                                }<a name="line.25898"></a>
+<span class="sourceLineNo">25899</span>                        } else if (as == 1) {<a name="line.25899"></a>
+<span class="sourceLineNo">25900</span>                                if (it.isOutputDouble()) {<a name="line.25900"></a>
+<span class="sourceLineNo">25901</span>                                        while (it.hasNext()) {<a name="line.25901"></a>
+<span class="sourceLineNo">25902</span>                                                final double ix = it.aDouble;<a name="line.25902"></a>
+<span class="sourceLineNo">25903</span>                                                double ox;<a name="line.25903"></a>
+<span class="sourceLineNo">25904</span>                                                ox = (Math.log(ix)/Math.log(2.));<a name="line.25904"></a>
+<span class="sourceLineNo">25905</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25905"></a>
+<span class="sourceLineNo">25906</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.25906"></a>
+<span class="sourceLineNo">25907</span>                                                }<a name="line.25907"></a>
+<span class="sourceLineNo">25908</span>                                        }<a name="line.25908"></a>
+<span class="sourceLineNo">25909</span>                                } else {<a name="line.25909"></a>
+<span class="sourceLineNo">25910</span>                                        while (it.hasNext()) {<a name="line.25910"></a>
+<span class="sourceLineNo">25911</span>                                                final long ix = it.aLong;<a name="line.25911"></a>
+<span class="sourceLineNo">25912</span>                                                double ox;<a name="line.25912"></a>
+<span class="sourceLineNo">25913</span>                                                ox = (Math.log(ix)/Math.log(2.));<a name="line.25913"></a>
+<span class="sourceLineNo">25914</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25914"></a>
+<span class="sourceLineNo">25915</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.25915"></a>
+<span class="sourceLineNo">25916</span>                                                }<a name="line.25916"></a>
+<span class="sourceLineNo">25917</span>                                        }<a name="line.25917"></a>
+<span class="sourceLineNo">25918</span>                                }<a name="line.25918"></a>
+<span class="sourceLineNo">25919</span>                        } else {<a name="line.25919"></a>
+<span class="sourceLineNo">25920</span>                                if (it.isOutputDouble()) {<a name="line.25920"></a>
+<span class="sourceLineNo">25921</span>                                        while (it.hasNext()) {<a name="line.25921"></a>
+<span class="sourceLineNo">25922</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25922"></a>
+<span class="sourceLineNo">25923</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.25923"></a>
+<span class="sourceLineNo">25924</span>                                                        double ox;<a name="line.25924"></a>
+<span class="sourceLineNo">25925</span>                                                        ox = (Math.log(ix)/Math.log(2.));<a name="line.25925"></a>
+<span class="sourceLineNo">25926</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.25926"></a>
+<span class="sourceLineNo">25927</span>                                                }<a name="line.25927"></a>
+<span class="sourceLineNo">25928</span>                                        }<a name="line.25928"></a>
+<span class="sourceLineNo">25929</span>                                } else {<a name="line.25929"></a>
+<span class="sourceLineNo">25930</span>                                        while (it.hasNext()) {<a name="line.25930"></a>
+<span class="sourceLineNo">25931</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.25931"></a>
+<span class="sourceLineNo">25932</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.25932"></a>
+<span class="sourceLineNo">25933</span>                                                        double ox;<a name="line.25933"></a>
+<span class="sourceLineNo">25934</span>                                                        ox = (Math.log(ix)/Math.log(2.));<a name="line.25934"></a>
+<span class="sourceLineNo">25935</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.25935"></a>
+<span class="sourceLineNo">25936</span>                                                }<a name="line.25936"></a>
+<span class="sourceLineNo">25937</span>                                        }<a name="line.25937"></a>
+<span class="sourceLineNo">25938</span>                                }<a name="line.25938"></a>
+<span class="sourceLineNo">25939</span>                        }<a name="line.25939"></a>
+<span class="sourceLineNo">25940</span>                        break;<a name="line.25940"></a>
+<span class="sourceLineNo">25941</span>                case Dataset.COMPLEX64:<a name="line.25941"></a>
+<span class="sourceLineNo">25942</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.25942"></a>
+<span class="sourceLineNo">25943</span>                        if (!da.isComplex()) {<a name="line.25943"></a>
+<span class="sourceLineNo">25944</span>                                if (it.isOutputDouble()) {<a name="line.25944"></a>
+<span class="sourceLineNo">25945</span>                                        final double iy = 0;<a name="line.25945"></a>
+<span class="sourceLineNo">25946</span>                                        while (it.hasNext()) {<a name="line.25946"></a>
+<span class="sourceLineNo">25947</span>                                                final double ix = it.aDouble;<a name="line.25947"></a>
+<span class="sourceLineNo">25948</span>                                                float ox;<a name="line.25948"></a>
+<span class="sourceLineNo">25949</span>                                                float oy;<a name="line.25949"></a>
+<span class="sourceLineNo">25950</span>                                                ox = (float) (Math.log(Math.hypot(ix, iy))/Math.log(2.));<a name="line.25950"></a>
+<span class="sourceLineNo">25951</span>                                                oy = (float) (Math.atan2(iy, ix));<a name="line.25951"></a>
+<span class="sourceLineNo">25952</span>                                                oc64data[it.oIndex] = ox;<a name="line.25952"></a>
+<span class="sourceLineNo">25953</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.25953"></a>
+<span class="sourceLineNo">25954</span>                                        }<a name="line.25954"></a>
+<span class="sourceLineNo">25955</span>                                } else {<a name="line.25955"></a>
+<span class="sourceLineNo">25956</span>                                        final long iy = 0;<a name="line.25956"></a>
+<span class="sourceLineNo">25957</span>                                        while (it.hasNext()) {<a name="line.25957"></a>
+<span class="sourceLineNo">25958</span>                                                final long ix = it.aLong;<a name="line.25958"></a>
+<span class="sourceLineNo">25959</span>                                                float ox;<a name="line.25959"></a>
+<span class="sourceLineNo">25960</span>                                                float oy;<a name="line.25960"></a>
+<span class="sourceLineNo">25961</span>                                                ox = (float) toLong(Math.log(Math.hypot(ix, iy))/Math.log(2.));<a name="line.25961"></a>
+<span class="sourceLineNo">25962</span>                                                oy = (float) toLong(Math.atan2(iy, ix));<a name="line.25962"></a>
+<span class="sourceLineNo">25963</span>                                                oc64data[it.oIndex] = ox;<a name="line.25963"></a>
+<span class="sourceLineNo">25964</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.25964"></a>
+<span class="sourceLineNo">25965</span>                                        }<a name="line.25965"></a>
+<span class="sourceLineNo">25966</span>                                }<a name="line.25966"></a>
+<span class="sourceLineNo">25967</span>                        } else {<a name="line.25967"></a>
+<span class="sourceLineNo">25968</span>                                while (it.hasNext()) {<a name="line.25968"></a>
+<span class="sourceLineNo">25969</span>                                        final double ix = it.aDouble;<a name="line.25969"></a>
+<span class="sourceLineNo">25970</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.25970"></a>
+<span class="sourceLineNo">25971</span>                                        float ox;<a name="line.25971"></a>
+<span class="sourceLineNo">25972</span>                                        float oy;<a name="line.25972"></a>
+<span class="sourceLineNo">25973</span>                                        ox = (float) (Math.log(Math.hypot(ix, iy))/Math.log(2.));<a name="line.25973"></a>
+<span class="sourceLineNo">25974</span>                                        oy = (float) (Math.atan2(iy, ix));<a name="line.25974"></a>
+<span class="sourceLineNo">25975</span>                                        oc64data[it.oIndex] = ox;<a name="line.25975"></a>
+<span class="sourceLineNo">25976</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.25976"></a>
+<span class="sourceLineNo">25977</span>                                }<a name="line.25977"></a>
+<span class="sourceLineNo">25978</span>                        }<a name="line.25978"></a>
+<span class="sourceLineNo">25979</span>                        break;<a name="line.25979"></a>
+<span class="sourceLineNo">25980</span>                case Dataset.COMPLEX128:<a name="line.25980"></a>
+<span class="sourceLineNo">25981</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.25981"></a>
+<span class="sourceLineNo">25982</span>                        if (!da.isComplex()) {<a name="line.25982"></a>
+<span class="sourceLineNo">25983</span>                                if (it.isOutputDouble()) {<a name="line.25983"></a>
+<span class="sourceLineNo">25984</span>                                        final double iy = 0;<a name="line.25984"></a>
+<span class="sourceLineNo">25985</span>                                        while (it.hasNext()) {<a name="line.25985"></a>
+<span class="sourceLineNo">25986</span>                                                final double ix = it.aDouble;<a name="line.25986"></a>
+<span class="sourceLineNo">25987</span>                                                double ox;<a name="line.25987"></a>
+<span class="sourceLineNo">25988</span>                                                double oy;<a name="line.25988"></a>
+<span class="sourceLineNo">25989</span>                                                ox = (Math.log(Math.hypot(ix, iy))/Math.log(2.));<a name="line.25989"></a>
+<span class="sourceLineNo">25990</span>                                                oy = (Math.atan2(iy, ix));<a name="line.25990"></a>
+<span class="sourceLineNo">25991</span>                                                oc128data[it.oIndex] = ox;<a name="line.25991"></a>
+<span class="sourceLineNo">25992</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.25992"></a>
+<span class="sourceLineNo">25993</span>                                        }<a name="line.25993"></a>
+<span class="sourceLineNo">25994</span>                                } else {<a name="line.25994"></a>
+<span class="sourceLineNo">25995</span>                                        final long iy = 0;<a name="line.25995"></a>
+<span class="sourceLineNo">25996</span>                                        while (it.hasNext()) {<a name="line.25996"></a>
+<span class="sourceLineNo">25997</span>                                                final long ix = it.aLong;<a name="line.25997"></a>
+<span class="sourceLineNo">25998</span>                                                double ox;<a name="line.25998"></a>
+<span class="sourceLineNo">25999</span>                                                double oy;<a name="line.25999"></a>
+<span class="sourceLineNo">26000</span>                                                ox = (double) (Math.log(Math.hypot(ix, iy))/Math.log(2.));<a name="line.26000"></a>
+<span class="sourceLineNo">26001</span>                                                oy = (double) (Math.atan2(iy, ix));<a name="line.26001"></a>
+<span class="sourceLineNo">26002</span>                                                oc128data[it.oIndex] = ox;<a name="line.26002"></a>
+<span class="sourceLineNo">26003</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.26003"></a>
+<span class="sourceLineNo">26004</span>                                        }<a name="line.26004"></a>
+<span class="sourceLineNo">26005</span>                                }<a name="line.26005"></a>
+<span class="sourceLineNo">26006</span>                        } else {<a name="line.26006"></a>
+<span class="sourceLineNo">26007</span>                                while (it.hasNext()) {<a name="line.26007"></a>
+<span class="sourceLineNo">26008</span>                                        final double ix = it.aDouble;<a name="line.26008"></a>
+<span class="sourceLineNo">26009</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.26009"></a>
+<span class="sourceLineNo">26010</span>                                        double ox;<a name="line.26010"></a>
+<span class="sourceLineNo">26011</span>                                        double oy;<a name="line.26011"></a>
+<span class="sourceLineNo">26012</span>                                        ox = (Math.log(Math.hypot(ix, iy))/Math.log(2.));<a name="line.26012"></a>
+<span class="sourceLineNo">26013</span>                                        oy = (Math.atan2(iy, ix));<a name="line.26013"></a>
+<span class="sourceLineNo">26014</span>                                        oc128data[it.oIndex] = ox;<a name="line.26014"></a>
+<span class="sourceLineNo">26015</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.26015"></a>
+<span class="sourceLineNo">26016</span>                                }<a name="line.26016"></a>
+<span class="sourceLineNo">26017</span>                        }<a name="line.26017"></a>
+<span class="sourceLineNo">26018</span>                        break;<a name="line.26018"></a>
+<span class="sourceLineNo">26019</span>                default:<a name="line.26019"></a>
+<span class="sourceLineNo">26020</span>                        throw new IllegalArgumentException("log2 supports integer, compound integer, real, compound real, complex datasets only");<a name="line.26020"></a>
+<span class="sourceLineNo">26021</span>                }<a name="line.26021"></a>
+<span class="sourceLineNo">26022</span><a name="line.26022"></a>
+<span class="sourceLineNo">26023</span>                addFunctionName(result, "log2");<a name="line.26023"></a>
+<span class="sourceLineNo">26024</span>                return result;<a name="line.26024"></a>
+<span class="sourceLineNo">26025</span>        }<a name="line.26025"></a>
+<span class="sourceLineNo">26026</span><a name="line.26026"></a>
+<span class="sourceLineNo">26027</span>        /**<a name="line.26027"></a>
+<span class="sourceLineNo">26028</span>         * log10 - evaluate the logarithm function on each element of the dataset<a name="line.26028"></a>
+<span class="sourceLineNo">26029</span>         * @param a<a name="line.26029"></a>
+<span class="sourceLineNo">26030</span>         * @return dataset<a name="line.26030"></a>
+<span class="sourceLineNo">26031</span>         */<a name="line.26031"></a>
+<span class="sourceLineNo">26032</span>        public static Dataset log10(final Object a) {<a name="line.26032"></a>
+<span class="sourceLineNo">26033</span>                return log10(a, null);<a name="line.26033"></a>
+<span class="sourceLineNo">26034</span>        }<a name="line.26034"></a>
+<span class="sourceLineNo">26035</span><a name="line.26035"></a>
+<span class="sourceLineNo">26036</span>        /**<a name="line.26036"></a>
+<span class="sourceLineNo">26037</span>         * log10 - evaluate the logarithm function on each element of the dataset<a name="line.26037"></a>
+<span class="sourceLineNo">26038</span>         * @param a<a name="line.26038"></a>
+<span class="sourceLineNo">26039</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.26039"></a>
+<span class="sourceLineNo">26040</span>         * @return dataset<a name="line.26040"></a>
+<span class="sourceLineNo">26041</span>         */<a name="line.26041"></a>
+<span class="sourceLineNo">26042</span>        public static Dataset log10(final Object a, final Dataset o) {<a name="line.26042"></a>
+<span class="sourceLineNo">26043</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.26043"></a>
+<span class="sourceLineNo">26044</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.26044"></a>
+<span class="sourceLineNo">26045</span>                final Dataset result = it.getOutput();<a name="line.26045"></a>
+<span class="sourceLineNo">26046</span>                if (!result.isComplex()) {<a name="line.26046"></a>
+<span class="sourceLineNo">26047</span>                        if (da.isComplex()) {<a name="line.26047"></a>
+<span class="sourceLineNo">26048</span>                                da = da.getRealView();<a name="line.26048"></a>
+<span class="sourceLineNo">26049</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.26049"></a>
+<span class="sourceLineNo">26050</span>                        }<a name="line.26050"></a>
+<span class="sourceLineNo">26051</span>                }<a name="line.26051"></a>
+<span class="sourceLineNo">26052</span>                final int is = result.getElementsPerItem();<a name="line.26052"></a>
+<span class="sourceLineNo">26053</span>                final int as = da.getElementsPerItem();<a name="line.26053"></a>
+<span class="sourceLineNo">26054</span>                final int dt = result.getDType();<a name="line.26054"></a>
+<span class="sourceLineNo">26055</span><a name="line.26055"></a>
+<span class="sourceLineNo">26056</span>                switch(dt) {<a name="line.26056"></a>
+<span class="sourceLineNo">26057</span>                case Dataset.INT8:<a name="line.26057"></a>
+<span class="sourceLineNo">26058</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.26058"></a>
+<span class="sourceLineNo">26059</span>                        if (it.isOutputDouble()) {<a name="line.26059"></a>
+<span class="sourceLineNo">26060</span>                                while (it.hasNext()) {<a name="line.26060"></a>
+<span class="sourceLineNo">26061</span>                                        final double ix = it.aDouble;<a name="line.26061"></a>
+<span class="sourceLineNo">26062</span>                                        byte ox;<a name="line.26062"></a>
+<span class="sourceLineNo">26063</span>                                        ox = (byte) toLong(Math.log10(ix));<a name="line.26063"></a>
+<span class="sourceLineNo">26064</span>                                        oi8data[it.oIndex] = ox;<a name="line.26064"></a>
+<span class="sourceLineNo">26065</span>                                }<a name="line.26065"></a>
+<span class="sourceLineNo">26066</span>                        } else {<a name="line.26066"></a>
+<span class="sourceLineNo">26067</span>                                while (it.hasNext()) {<a name="line.26067"></a>
+<span class="sourceLineNo">26068</span>                                        final long ix = it.aLong;<a name="line.26068"></a>
+<span class="sourceLineNo">26069</span>                                        byte ox;<a name="line.26069"></a>
+<span class="sourceLineNo">26070</span>                                        ox = (byte) toLong(Math.log10(ix));<a name="line.26070"></a>
+<span class="sourceLineNo">26071</span>                                        oi8data[it.oIndex] = ox;<a name="line.26071"></a>
+<span class="sourceLineNo">26072</span>                                }<a name="line.26072"></a>
+<span class="sourceLineNo">26073</span>                        }<a name="line.26073"></a>
+<span class="sourceLineNo">26074</span>                        break;<a name="line.26074"></a>
+<span class="sourceLineNo">26075</span>                case Dataset.INT16:<a name="line.26075"></a>
+<span class="sourceLineNo">26076</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.26076"></a>
+<span class="sourceLineNo">26077</span>                        if (it.isOutputDouble()) {<a name="line.26077"></a>
+<span class="sourceLineNo">26078</span>                                while (it.hasNext()) {<a name="line.26078"></a>
+<span class="sourceLineNo">26079</span>                                        final double ix = it.aDouble;<a name="line.26079"></a>
+<span class="sourceLineNo">26080</span>                                        short ox;<a name="line.26080"></a>
+<span class="sourceLineNo">26081</span>                                        ox = (short) toLong(Math.log10(ix));<a name="line.26081"></a>
+<span class="sourceLineNo">26082</span>                                        oi16data[it.oIndex] = ox;<a name="line.26082"></a>
+<span class="sourceLineNo">26083</span>                                }<a name="line.26083"></a>
+<span class="sourceLineNo">26084</span>                        } else {<a name="line.26084"></a>
+<span class="sourceLineNo">26085</span>                                while (it.hasNext()) {<a name="line.26085"></a>
+<span class="sourceLineNo">26086</span>                                        final long ix = it.aLong;<a name="line.26086"></a>
+<span class="sourceLineNo">26087</span>                                        short ox;<a name="line.26087"></a>
+<span class="sourceLineNo">26088</span>                                        ox = (short) toLong(Math.log10(ix));<a name="line.26088"></a>
+<span class="sourceLineNo">26089</span>                                        oi16data[it.oIndex] = ox;<a name="line.26089"></a>
+<span class="sourceLineNo">26090</span>                                }<a name="line.26090"></a>
+<span class="sourceLineNo">26091</span>                        }<a name="line.26091"></a>
+<span class="sourceLineNo">26092</span>                        break;<a name="line.26092"></a>
+<span class="sourceLineNo">26093</span>                case Dataset.INT64:<a name="line.26093"></a>
+<span class="sourceLineNo">26094</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.26094"></a>
+<span class="sourceLineNo">26095</span>                        if (it.isOutputDouble()) {<a name="line.26095"></a>
+<span class="sourceLineNo">26096</span>                                while (it.hasNext()) {<a name="line.26096"></a>
+<span class="sourceLineNo">26097</span>                                        final double ix = it.aDouble;<a name="line.26097"></a>
+<span class="sourceLineNo">26098</span>                                        long ox;<a name="line.26098"></a>
+<span class="sourceLineNo">26099</span>                                        ox = toLong(Math.log10(ix));<a name="line.26099"></a>
+<span class="sourceLineNo">26100</span>                                        oi64data[it.oIndex] = ox;<a name="line.26100"></a>
+<span class="sourceLineNo">26101</span>                                }<a name="line.26101"></a>
+<span class="sourceLineNo">26102</span>                        } else {<a name="line.26102"></a>
+<span class="sourceLineNo">26103</span>                                while (it.hasNext()) {<a name="line.26103"></a>
+<span class="sourceLineNo">26104</span>                                        final long ix = it.aLong;<a name="line.26104"></a>
+<span class="sourceLineNo">26105</span>                                        long ox;<a name="line.26105"></a>
+<span class="sourceLineNo">26106</span>                                        ox = toLong(Math.log10(ix));<a name="line.26106"></a>
+<span class="sourceLineNo">26107</span>                                        oi64data[it.oIndex] = ox;<a name="line.26107"></a>
+<span class="sourceLineNo">26108</span>                                }<a name="line.26108"></a>
+<span class="sourceLineNo">26109</span>                        }<a name="line.26109"></a>
+<span class="sourceLineNo">26110</span>                        break;<a name="line.26110"></a>
+<span class="sourceLineNo">26111</span>                case Dataset.INT32:<a name="line.26111"></a>
+<span class="sourceLineNo">26112</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.26112"></a>
+<span class="sourceLineNo">26113</span>                        if (it.isOutputDouble()) {<a name="line.26113"></a>
+<span class="sourceLineNo">26114</span>                                while (it.hasNext()) {<a name="line.26114"></a>
+<span class="sourceLineNo">26115</span>                                        final double ix = it.aDouble;<a name="line.26115"></a>
+<span class="sourceLineNo">26116</span>                                        int ox;<a name="line.26116"></a>
+<span class="sourceLineNo">26117</span>                                        ox = (int) toLong(Math.log10(ix));<a name="line.26117"></a>
+<span class="sourceLineNo">26118</span>                                        oi32data[it.oIndex] = ox;<a name="line.26118"></a>
+<span class="sourceLineNo">26119</span>                                }<a name="line.26119"></a>
+<span class="sourceLineNo">26120</span>                        } else {<a name="line.26120"></a>
+<span class="sourceLineNo">26121</span>                                while (it.hasNext()) {<a name="line.26121"></a>
+<span class="sourceLineNo">26122</span>                                        final long ix = it.aLong;<a name="line.26122"></a>
+<span class="sourceLineNo">26123</span>                                        int ox;<a name="line.26123"></a>
+<span class="sourceLineNo">26124</span>                                        ox = (int) toLong(Math.log10(ix));<a name="line.26124"></a>
+<span class="sourceLineNo">26125</span>                                        oi32data[it.oIndex] = ox;<a name="line.26125"></a>
+<span class="sourceLineNo">26126</span>                                }<a name="line.26126"></a>
+<span class="sourceLineNo">26127</span>                        }<a name="line.26127"></a>
+<span class="sourceLineNo">26128</span>                        break;<a name="line.26128"></a>
+<span class="sourceLineNo">26129</span>                case Dataset.ARRAYINT8:<a name="line.26129"></a>
+<span class="sourceLineNo">26130</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.26130"></a>
+<span class="sourceLineNo">26131</span>                        if (is == 1) {<a name="line.26131"></a>
+<span class="sourceLineNo">26132</span>                                if (it.isOutputDouble()) {<a name="line.26132"></a>
+<span class="sourceLineNo">26133</span>                                        while (it.hasNext()) {<a name="line.26133"></a>
+<span class="sourceLineNo">26134</span>                                                final double ix = it.aDouble;<a name="line.26134"></a>
+<span class="sourceLineNo">26135</span>                                                byte ox;<a name="line.26135"></a>
+<span class="sourceLineNo">26136</span>                                                ox = (byte) toLong(Math.log10(ix));<a name="line.26136"></a>
+<span class="sourceLineNo">26137</span>                                                oai8data[it.oIndex] = ox;<a name="line.26137"></a>
+<span class="sourceLineNo">26138</span>                                        }<a name="line.26138"></a>
+<span class="sourceLineNo">26139</span>                                } else {<a name="line.26139"></a>
+<span class="sourceLineNo">26140</span>                                        while (it.hasNext()) {<a name="line.26140"></a>
+<span class="sourceLineNo">26141</span>                                                final long ix = it.aLong;<a name="line.26141"></a>
+<span class="sourceLineNo">26142</span>                                                byte ox;<a name="line.26142"></a>
+<span class="sourceLineNo">26143</span>                                                ox = (byte) toLong(Math.log10(ix));<a name="line.26143"></a>
+<span class="sourceLineNo">26144</span>                                                oai8data[it.oIndex] = ox;<a name="line.26144"></a>
+<span class="sourceLineNo">26145</span>                                        }<a name="line.26145"></a>
+<span class="sourceLineNo">26146</span>                                }<a name="line.26146"></a>
+<span class="sourceLineNo">26147</span>                        } else if (as == 1) {<a name="line.26147"></a>
+<span class="sourceLineNo">26148</span>                                if (it.isOutputDouble()) {<a name="line.26148"></a>
+<span class="sourceLineNo">26149</span>                                        while (it.hasNext()) {<a name="line.26149"></a>
+<span class="sourceLineNo">26150</span>                                                final double ix = it.aDouble;<a name="line.26150"></a>
+<span class="sourceLineNo">26151</span>                                                byte ox;<a name="line.26151"></a>
+<span class="sourceLineNo">26152</span>                                                ox = (byte) toLong(Math.log10(ix));<a name="line.26152"></a>
+<span class="sourceLineNo">26153</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26153"></a>
+<span class="sourceLineNo">26154</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.26154"></a>
+<span class="sourceLineNo">26155</span>                                                }<a name="line.26155"></a>
+<span class="sourceLineNo">26156</span>                                        }<a name="line.26156"></a>
+<span class="sourceLineNo">26157</span>                                } else {<a name="line.26157"></a>
+<span class="sourceLineNo">26158</span>                                        while (it.hasNext()) {<a name="line.26158"></a>
+<span class="sourceLineNo">26159</span>                                                final long ix = it.aLong;<a name="line.26159"></a>
+<span class="sourceLineNo">26160</span>                                                byte ox;<a name="line.26160"></a>
+<span class="sourceLineNo">26161</span>                                                ox = (byte) toLong(Math.log10(ix));<a name="line.26161"></a>
+<span class="sourceLineNo">26162</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26162"></a>
+<span class="sourceLineNo">26163</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.26163"></a>
+<span class="sourceLineNo">26164</span>                                                }<a name="line.26164"></a>
+<span class="sourceLineNo">26165</span>                                        }<a name="line.26165"></a>
+<span class="sourceLineNo">26166</span>                                }<a name="line.26166"></a>
+<span class="sourceLineNo">26167</span>                        } else {<a name="line.26167"></a>
+<span class="sourceLineNo">26168</span>                                if (it.isOutputDouble()) {<a name="line.26168"></a>
+<span class="sourceLineNo">26169</span>                                        while (it.hasNext()) {<a name="line.26169"></a>
+<span class="sourceLineNo">26170</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26170"></a>
+<span class="sourceLineNo">26171</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.26171"></a>
+<span class="sourceLineNo">26172</span>                                                        byte ox;<a name="line.26172"></a>
+<span class="sourceLineNo">26173</span>                                                        ox = (byte) toLong(Math.log10(ix));<a name="line.26173"></a>
+<span class="sourceLineNo">26174</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.26174"></a>
+<span class="sourceLineNo">26175</span>                                                }<a name="line.26175"></a>
+<span class="sourceLineNo">26176</span>                                        }<a name="line.26176"></a>
+<span class="sourceLineNo">26177</span>                                } else {<a name="line.26177"></a>
+<span class="sourceLineNo">26178</span>                                        while (it.hasNext()) {<a name="line.26178"></a>
+<span class="sourceLineNo">26179</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26179"></a>
+<span class="sourceLineNo">26180</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.26180"></a>
+<span class="sourceLineNo">26181</span>                                                        byte ox;<a name="line.26181"></a>
+<span class="sourceLineNo">26182</span>                                                        ox = (byte) toLong(Math.log10(ix));<a name="line.26182"></a>
+<span class="sourceLineNo">26183</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.26183"></a>
+<span class="sourceLineNo">26184</span>                                                }<a name="line.26184"></a>
+<span class="sourceLineNo">26185</span>                                        }<a name="line.26185"></a>
+<span class="sourceLineNo">26186</span>                                }<a name="line.26186"></a>
+<span class="sourceLineNo">26187</span>                        }<a name="line.26187"></a>
+<span class="sourceLineNo">26188</span>                        break;<a name="line.26188"></a>
+<span class="sourceLineNo">26189</span>                case Dataset.ARRAYINT16:<a name="line.26189"></a>
+<span class="sourceLineNo">26190</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.26190"></a>
+<span class="sourceLineNo">26191</span>                        if (is == 1) {<a name="line.26191"></a>
+<span class="sourceLineNo">26192</span>                                if (it.isOutputDouble()) {<a name="line.26192"></a>
+<span class="sourceLineNo">26193</span>                                        while (it.hasNext()) {<a name="line.26193"></a>
+<span class="sourceLineNo">26194</span>                                                final double ix = it.aDouble;<a name="line.26194"></a>
+<span class="sourceLineNo">26195</span>                                                short ox;<a name="line.26195"></a>
+<span class="sourceLineNo">26196</span>                                                ox = (short) toLong(Math.log10(ix));<a name="line.26196"></a>
+<span class="sourceLineNo">26197</span>                                                oai16data[it.oIndex] = ox;<a name="line.26197"></a>
+<span class="sourceLineNo">26198</span>                                        }<a name="line.26198"></a>
+<span class="sourceLineNo">26199</span>                                } else {<a name="line.26199"></a>
+<span class="sourceLineNo">26200</span>                                        while (it.hasNext()) {<a name="line.26200"></a>
+<span class="sourceLineNo">26201</span>                                                final long ix = it.aLong;<a name="line.26201"></a>
+<span class="sourceLineNo">26202</span>                                                short ox;<a name="line.26202"></a>
+<span class="sourceLineNo">26203</span>                                                ox = (short) toLong(Math.log10(ix));<a name="line.26203"></a>
+<span class="sourceLineNo">26204</span>                                                oai16data[it.oIndex] = ox;<a name="line.26204"></a>
+<span class="sourceLineNo">26205</span>                                        }<a name="line.26205"></a>
+<span class="sourceLineNo">26206</span>                                }<a name="line.26206"></a>
+<span class="sourceLineNo">26207</span>                        } else if (as == 1) {<a name="line.26207"></a>
+<span class="sourceLineNo">26208</span>                                if (it.isOutputDouble()) {<a name="line.26208"></a>
+<span class="sourceLineNo">26209</span>                                        while (it.hasNext()) {<a name="line.26209"></a>
+<span class="sourceLineNo">26210</span>                                                final double ix = it.aDouble;<a name="line.26210"></a>
+<span class="sourceLineNo">26211</span>                                                short ox;<a name="line.26211"></a>
+<span class="sourceLineNo">26212</span>                                                ox = (short) toLong(Math.log10(ix));<a name="line.26212"></a>
+<span class="sourceLineNo">26213</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26213"></a>
+<span class="sourceLineNo">26214</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.26214"></a>
+<span class="sourceLineNo">26215</span>                                                }<a name="line.26215"></a>
+<span class="sourceLineNo">26216</span>                                        }<a name="line.26216"></a>
+<span class="sourceLineNo">26217</span>                                } else {<a name="line.26217"></a>
+<span class="sourceLineNo">26218</span>                                        while (it.hasNext()) {<a name="line.26218"></a>
+<span class="sourceLineNo">26219</span>                                                final long ix = it.aLong;<a name="line.26219"></a>
+<span class="sourceLineNo">26220</span>                                                short ox;<a name="line.26220"></a>
+<span class="sourceLineNo">26221</span>                                                ox = (short) toLong(Math.log10(ix));<a name="line.26221"></a>
+<span class="sourceLineNo">26222</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26222"></a>
+<span class="sourceLineNo">26223</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.26223"></a>
+<span class="sourceLineNo">26224</span>                                                }<a name="line.26224"></a>
+<span class="sourceLineNo">26225</span>                                        }<a name="line.26225"></a>
+<span class="sourceLineNo">26226</span>                                }<a name="line.26226"></a>
+<span class="sourceLineNo">26227</span>                        } else {<a name="line.26227"></a>
+<span class="sourceLineNo">26228</span>                                if (it.isOutputDouble()) {<a name="line.26228"></a>
+<span class="sourceLineNo">26229</span>                                        while (it.hasNext()) {<a name="line.26229"></a>
+<span class="sourceLineNo">26230</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26230"></a>
+<span class="sourceLineNo">26231</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.26231"></a>
+<span class="sourceLineNo">26232</span>                                                        short ox;<a name="line.26232"></a>
+<span class="sourceLineNo">26233</span>                                                        ox = (short) toLong(Math.log10(ix));<a name="line.26233"></a>
+<span class="sourceLineNo">26234</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.26234"></a>
+<span class="sourceLineNo">26235</span>                                                }<a name="line.26235"></a>
+<span class="sourceLineNo">26236</span>                                        }<a name="line.26236"></a>
+<span class="sourceLineNo">26237</span>                                } else {<a name="line.26237"></a>
+<span class="sourceLineNo">26238</span>                                        while (it.hasNext()) {<a name="line.26238"></a>
+<span class="sourceLineNo">26239</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26239"></a>
+<span class="sourceLineNo">26240</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.26240"></a>
+<span class="sourceLineNo">26241</span>                                                        short ox;<a name="line.26241"></a>
+<span class="sourceLineNo">26242</span>                                                        ox = (short) toLong(Math.log10(ix));<a name="line.26242"></a>
+<span class="sourceLineNo">26243</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.26243"></a>
+<span class="sourceLineNo">26244</span>                                                }<a name="line.26244"></a>
+<span class="sourceLineNo">26245</span>                                        }<a name="line.26245"></a>
+<span class="sourceLineNo">26246</span>                                }<a name="line.26246"></a>
+<span class="sourceLineNo">26247</span>                        }<a name="line.26247"></a>
+<span class="sourceLineNo">26248</span>                        break;<a name="line.26248"></a>
+<span class="sourceLineNo">26249</span>                case Dataset.ARRAYINT64:<a name="line.26249"></a>
+<span class="sourceLineNo">26250</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.26250"></a>
+<span class="sourceLineNo">26251</span>                        if (is == 1) {<a name="line.26251"></a>
+<span class="sourceLineNo">26252</span>                                if (it.isOutputDouble()) {<a name="line.26252"></a>
+<span class="sourceLineNo">26253</span>                                        while (it.hasNext()) {<a name="line.26253"></a>
+<span class="sourceLineNo">26254</span>                                                final double ix = it.aDouble;<a name="line.26254"></a>
+<span class="sourceLineNo">26255</span>                                                long ox;<a name="line.26255"></a>
+<span class="sourceLineNo">26256</span>                                                ox = toLong(Math.log10(ix));<a name="line.26256"></a>
+<span class="sourceLineNo">26257</span>                                                oai64data[it.oIndex] = ox;<a name="line.26257"></a>
+<span class="sourceLineNo">26258</span>                                        }<a name="line.26258"></a>
+<span class="sourceLineNo">26259</span>                                } else {<a name="line.26259"></a>
+<span class="sourceLineNo">26260</span>                                        while (it.hasNext()) {<a name="line.26260"></a>
+<span class="sourceLineNo">26261</span>                                                final long ix = it.aLong;<a name="line.26261"></a>
+<span class="sourceLineNo">26262</span>                                                long ox;<a name="line.26262"></a>
+<span class="sourceLineNo">26263</span>                                                ox = toLong(Math.log10(ix));<a name="line.26263"></a>
+<span class="sourceLineNo">26264</span>                                                oai64data[it.oIndex] = ox;<a name="line.26264"></a>
+<span class="sourceLineNo">26265</span>                                        }<a name="line.26265"></a>
+<span class="sourceLineNo">26266</span>                                }<a name="line.26266"></a>
+<span class="sourceLineNo">26267</span>                        } else if (as == 1) {<a name="line.26267"></a>
+<span class="sourceLineNo">26268</span>                                if (it.isOutputDouble()) {<a name="line.26268"></a>
+<span class="sourceLineNo">26269</span>                                        while (it.hasNext()) {<a name="line.26269"></a>
+<span class="sourceLineNo">26270</span>                                                final double ix = it.aDouble;<a name="line.26270"></a>
+<span class="sourceLineNo">26271</span>                                                long ox;<a name="line.26271"></a>
+<span class="sourceLineNo">26272</span>                                                ox = toLong(Math.log10(ix));<a name="line.26272"></a>
+<span class="sourceLineNo">26273</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26273"></a>
+<span class="sourceLineNo">26274</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.26274"></a>
+<span class="sourceLineNo">26275</span>                                                }<a name="line.26275"></a>
+<span class="sourceLineNo">26276</span>                                        }<a name="line.26276"></a>
+<span class="sourceLineNo">26277</span>                                } else {<a name="line.26277"></a>
+<span class="sourceLineNo">26278</span>                                        while (it.hasNext()) {<a name="line.26278"></a>
+<span class="sourceLineNo">26279</span>                                                final long ix = it.aLong;<a name="line.26279"></a>
+<span class="sourceLineNo">26280</span>                                                long ox;<a name="line.26280"></a>
+<span class="sourceLineNo">26281</span>                                                ox = toLong(Math.log10(ix));<a name="line.26281"></a>
+<span class="sourceLineNo">26282</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26282"></a>
+<span class="sourceLineNo">26283</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.26283"></a>
+<span class="sourceLineNo">26284</span>                                                }<a name="line.26284"></a>
+<span class="sourceLineNo">26285</span>                                        }<a name="line.26285"></a>
+<span class="sourceLineNo">26286</span>                                }<a name="line.26286"></a>
+<span class="sourceLineNo">26287</span>                        } else {<a name="line.26287"></a>
+<span class="sourceLineNo">26288</span>                                if (it.isOutputDouble()) {<a name="line.26288"></a>
+<span class="sourceLineNo">26289</span>                                        while (it.hasNext()) {<a name="line.26289"></a>
+<span class="sourceLineNo">26290</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26290"></a>
+<span class="sourceLineNo">26291</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.26291"></a>
+<span class="sourceLineNo">26292</span>                                                        long ox;<a name="line.26292"></a>
+<span class="sourceLineNo">26293</span>                                                        ox = toLong(Math.log10(ix));<a name="line.26293"></a>
+<span class="sourceLineNo">26294</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.26294"></a>
+<span class="sourceLineNo">26295</span>                                                }<a name="line.26295"></a>
+<span class="sourceLineNo">26296</span>                                        }<a name="line.26296"></a>
+<span class="sourceLineNo">26297</span>                                } else {<a name="line.26297"></a>
+<span class="sourceLineNo">26298</span>                                        while (it.hasNext()) {<a name="line.26298"></a>
+<span class="sourceLineNo">26299</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26299"></a>
+<span class="sourceLineNo">26300</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.26300"></a>
+<span class="sourceLineNo">26301</span>                                                        long ox;<a name="line.26301"></a>
+<span class="sourceLineNo">26302</span>                                                        ox = toLong(Math.log10(ix));<a name="line.26302"></a>
+<span class="sourceLineNo">26303</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.26303"></a>
+<span class="sourceLineNo">26304</span>                                                }<a name="line.26304"></a>
+<span class="sourceLineNo">26305</span>                                        }<a name="line.26305"></a>
+<span class="sourceLineNo">26306</span>                                }<a name="line.26306"></a>
+<span class="sourceLineNo">26307</span>                        }<a name="line.26307"></a>
+<span class="sourceLineNo">26308</span>                        break;<a name="line.26308"></a>
+<span class="sourceLineNo">26309</span>                case Dataset.ARRAYINT32:<a name="line.26309"></a>
+<span class="sourceLineNo">26310</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.26310"></a>
+<span class="sourceLineNo">26311</span>                        if (is == 1) {<a name="line.26311"></a>
+<span class="sourceLineNo">26312</span>                                if (it.isOutputDouble()) {<a name="line.26312"></a>
+<span class="sourceLineNo">26313</span>                                        while (it.hasNext()) {<a name="line.26313"></a>
+<span class="sourceLineNo">26314</span>                                                final double ix = it.aDouble;<a name="line.26314"></a>
+<span class="sourceLineNo">26315</span>                                                int ox;<a name="line.26315"></a>
+<span class="sourceLineNo">26316</span>                                                ox = (int) toLong(Math.log10(ix));<a name="line.26316"></a>
+<span class="sourceLineNo">26317</span>                                                oai32data[it.oIndex] = ox;<a name="line.26317"></a>
+<span class="sourceLineNo">26318</span>                                        }<a name="line.26318"></a>
+<span class="sourceLineNo">26319</span>                                } else {<a name="line.26319"></a>
+<span class="sourceLineNo">26320</span>                                        while (it.hasNext()) {<a name="line.26320"></a>
+<span class="sourceLineNo">26321</span>                                                final long ix = it.aLong;<a name="line.26321"></a>
+<span class="sourceLineNo">26322</span>                                                int ox;<a name="line.26322"></a>
+<span class="sourceLineNo">26323</span>                                                ox = (int) toLong(Math.log10(ix));<a name="line.26323"></a>
+<span class="sourceLineNo">26324</span>                                                oai32data[it.oIndex] = ox;<a name="line.26324"></a>
+<span class="sourceLineNo">26325</span>                                        }<a name="line.26325"></a>
+<span class="sourceLineNo">26326</span>                                }<a name="line.26326"></a>
+<span class="sourceLineNo">26327</span>                        } else if (as == 1) {<a name="line.26327"></a>
+<span class="sourceLineNo">26328</span>                                if (it.isOutputDouble()) {<a name="line.26328"></a>
+<span class="sourceLineNo">26329</span>                                        while (it.hasNext()) {<a name="line.26329"></a>
+<span class="sourceLineNo">26330</span>                                                final double ix = it.aDouble;<a name="line.26330"></a>
+<span class="sourceLineNo">26331</span>                                                int ox;<a name="line.26331"></a>
+<span class="sourceLineNo">26332</span>                                                ox = (int) toLong(Math.log10(ix));<a name="line.26332"></a>
+<span class="sourceLineNo">26333</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26333"></a>
+<span class="sourceLineNo">26334</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.26334"></a>
+<span class="sourceLineNo">26335</span>                                                }<a name="line.26335"></a>
+<span class="sourceLineNo">26336</span>                                        }<a name="line.26336"></a>
+<span class="sourceLineNo">26337</span>                                } else {<a name="line.26337"></a>
+<span class="sourceLineNo">26338</span>                                        while (it.hasNext()) {<a name="line.26338"></a>
+<span class="sourceLineNo">26339</span>                                                final long ix = it.aLong;<a name="line.26339"></a>
+<span class="sourceLineNo">26340</span>                                                int ox;<a name="line.26340"></a>
+<span class="sourceLineNo">26341</span>                                                ox = (int) toLong(Math.log10(ix));<a name="line.26341"></a>
+<span class="sourceLineNo">26342</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26342"></a>
+<span class="sourceLineNo">26343</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.26343"></a>
+<span class="sourceLineNo">26344</span>                                                }<a name="line.26344"></a>
+<span class="sourceLineNo">26345</span>                                        }<a name="line.26345"></a>
+<span class="sourceLineNo">26346</span>                                }<a name="line.26346"></a>
+<span class="sourceLineNo">26347</span>                        } else {<a name="line.26347"></a>
+<span class="sourceLineNo">26348</span>                                if (it.isOutputDouble()) {<a name="line.26348"></a>
+<span class="sourceLineNo">26349</span>                                        while (it.hasNext()) {<a name="line.26349"></a>
+<span class="sourceLineNo">26350</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26350"></a>
+<span class="sourceLineNo">26351</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.26351"></a>
+<span class="sourceLineNo">26352</span>                                                        int ox;<a name="line.26352"></a>
+<span class="sourceLineNo">26353</span>                                                        ox = (int) toLong(Math.log10(ix));<a name="line.26353"></a>
+<span class="sourceLineNo">26354</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.26354"></a>
+<span class="sourceLineNo">26355</span>                                                }<a name="line.26355"></a>
+<span class="sourceLineNo">26356</span>                                        }<a name="line.26356"></a>
+<span class="sourceLineNo">26357</span>                                } else {<a name="line.26357"></a>
+<span class="sourceLineNo">26358</span>                                        while (it.hasNext()) {<a name="line.26358"></a>
+<span class="sourceLineNo">26359</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26359"></a>
+<span class="sourceLineNo">26360</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.26360"></a>
+<span class="sourceLineNo">26361</span>                                                        int ox;<a name="line.26361"></a>
+<span class="sourceLineNo">26362</span>                                                        ox = (int) toLong(Math.log10(ix));<a name="line.26362"></a>
+<span class="sourceLineNo">26363</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.26363"></a>
+<span class="sourceLineNo">26364</span>                                                }<a name="line.26364"></a>
+<span class="sourceLineNo">26365</span>                                        }<a name="line.26365"></a>
+<span class="sourceLineNo">26366</span>                                }<a name="line.26366"></a>
+<span class="sourceLineNo">26367</span>                        }<a name="line.26367"></a>
+<span class="sourceLineNo">26368</span>                        break;<a name="line.26368"></a>
+<span class="sourceLineNo">26369</span>                case Dataset.FLOAT32:<a name="line.26369"></a>
+<span class="sourceLineNo">26370</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.26370"></a>
+<span class="sourceLineNo">26371</span>                        if (it.isOutputDouble()) {<a name="line.26371"></a>
+<span class="sourceLineNo">26372</span>                                while (it.hasNext()) {<a name="line.26372"></a>
+<span class="sourceLineNo">26373</span>                                        final double ix = it.aDouble;<a name="line.26373"></a>
+<span class="sourceLineNo">26374</span>                                        float ox;<a name="line.26374"></a>
+<span class="sourceLineNo">26375</span>                                        ox = (float) (Math.log10(ix));<a name="line.26375"></a>
+<span class="sourceLineNo">26376</span>                                        of32data[it.oIndex] = ox;<a name="line.26376"></a>
+<span class="sourceLineNo">26377</span>                                }<a name="line.26377"></a>
+<span class="sourceLineNo">26378</span>                        } else {<a name="line.26378"></a>
+<span class="sourceLineNo">26379</span>                                while (it.hasNext()) {<a name="line.26379"></a>
+<span class="sourceLineNo">26380</span>                                        final long ix = it.aLong;<a name="line.26380"></a>
+<span class="sourceLineNo">26381</span>                                        float ox;<a name="line.26381"></a>
+<span class="sourceLineNo">26382</span>                                        ox = (float) (Math.log10(ix));<a name="line.26382"></a>
+<span class="sourceLineNo">26383</span>                                        of32data[it.oIndex] = ox;<a name="line.26383"></a>
+<span class="sourceLineNo">26384</span>                                }<a name="line.26384"></a>
+<span class="sourceLineNo">26385</span>                        }<a name="line.26385"></a>
+<span class="sourceLineNo">26386</span>                        break;<a name="line.26386"></a>
+<span class="sourceLineNo">26387</span>                case Dataset.FLOAT64:<a name="line.26387"></a>
+<span class="sourceLineNo">26388</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.26388"></a>
+<span class="sourceLineNo">26389</span>                        if (it.isOutputDouble()) {<a name="line.26389"></a>
+<span class="sourceLineNo">26390</span>                                while (it.hasNext()) {<a name="line.26390"></a>
+<span class="sourceLineNo">26391</span>                                        final double ix = it.aDouble;<a name="line.26391"></a>
+<span class="sourceLineNo">26392</span>                                        double ox;<a name="line.26392"></a>
+<span class="sourceLineNo">26393</span>                                        ox = (Math.log10(ix));<a name="line.26393"></a>
+<span class="sourceLineNo">26394</span>                                        of64data[it.oIndex] = ox;<a name="line.26394"></a>
+<span class="sourceLineNo">26395</span>                                }<a name="line.26395"></a>
+<span class="sourceLineNo">26396</span>                        } else {<a name="line.26396"></a>
+<span class="sourceLineNo">26397</span>                                while (it.hasNext()) {<a name="line.26397"></a>
+<span class="sourceLineNo">26398</span>                                        final long ix = it.aLong;<a name="line.26398"></a>
+<span class="sourceLineNo">26399</span>                                        double ox;<a name="line.26399"></a>
+<span class="sourceLineNo">26400</span>                                        ox = (Math.log10(ix));<a name="line.26400"></a>
+<span class="sourceLineNo">26401</span>                                        of64data[it.oIndex] = ox;<a name="line.26401"></a>
+<span class="sourceLineNo">26402</span>                                }<a name="line.26402"></a>
+<span class="sourceLineNo">26403</span>                        }<a name="line.26403"></a>
+<span class="sourceLineNo">26404</span>                        break;<a name="line.26404"></a>
+<span class="sourceLineNo">26405</span>                case Dataset.ARRAYFLOAT32:<a name="line.26405"></a>
+<span class="sourceLineNo">26406</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.26406"></a>
+<span class="sourceLineNo">26407</span>                        if (is == 1) {<a name="line.26407"></a>
+<span class="sourceLineNo">26408</span>                                if (it.isOutputDouble()) {<a name="line.26408"></a>
+<span class="sourceLineNo">26409</span>                                        while (it.hasNext()) {<a name="line.26409"></a>
+<span class="sourceLineNo">26410</span>                                                final double ix = it.aDouble;<a name="line.26410"></a>
+<span class="sourceLineNo">26411</span>                                                float ox;<a name="line.26411"></a>
+<span class="sourceLineNo">26412</span>                                                ox = (float) (Math.log10(ix));<a name="line.26412"></a>
+<span class="sourceLineNo">26413</span>                                                oaf32data[it.oIndex] = ox;<a name="line.26413"></a>
+<span class="sourceLineNo">26414</span>                                        }<a name="line.26414"></a>
+<span class="sourceLineNo">26415</span>                                } else {<a name="line.26415"></a>
+<span class="sourceLineNo">26416</span>                                        while (it.hasNext()) {<a name="line.26416"></a>
+<span class="sourceLineNo">26417</span>                                                final long ix = it.aLong;<a name="line.26417"></a>
+<span class="sourceLineNo">26418</span>                                                float ox;<a name="line.26418"></a>
+<span class="sourceLineNo">26419</span>                                                ox = (float) (Math.log10(ix));<a name="line.26419"></a>
+<span class="sourceLineNo">26420</span>                                                oaf32data[it.oIndex] = ox;<a name="line.26420"></a>
+<span class="sourceLineNo">26421</span>                                        }<a name="line.26421"></a>
+<span class="sourceLineNo">26422</span>                                }<a name="line.26422"></a>
+<span class="sourceLineNo">26423</span>                        } else if (as == 1) {<a name="line.26423"></a>
+<span class="sourceLineNo">26424</span>                                if (it.isOutputDouble()) {<a name="line.26424"></a>
+<span class="sourceLineNo">26425</span>                                        while (it.hasNext()) {<a name="line.26425"></a>
+<span class="sourceLineNo">26426</span>                                                final double ix = it.aDouble;<a name="line.26426"></a>
+<span class="sourceLineNo">26427</span>                                                float ox;<a name="line.26427"></a>
+<span class="sourceLineNo">26428</span>                                                ox = (float) (Math.log10(ix));<a name="line.26428"></a>
+<span class="sourceLineNo">26429</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26429"></a>
+<span class="sourceLineNo">26430</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.26430"></a>
+<span class="sourceLineNo">26431</span>                                                }<a name="line.26431"></a>
+<span class="sourceLineNo">26432</span>                                        }<a name="line.26432"></a>
+<span class="sourceLineNo">26433</span>                                } else {<a name="line.26433"></a>
+<span class="sourceLineNo">26434</span>                                        while (it.hasNext()) {<a name="line.26434"></a>
+<span class="sourceLineNo">26435</span>                                                final long ix = it.aLong;<a name="line.26435"></a>
+<span class="sourceLineNo">26436</span>                                                float ox;<a name="line.26436"></a>
+<span class="sourceLineNo">26437</span>                                                ox = (float) (Math.log10(ix));<a name="line.26437"></a>
+<span class="sourceLineNo">26438</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26438"></a>
+<span class="sourceLineNo">26439</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.26439"></a>
+<span class="sourceLineNo">26440</span>                                                }<a name="line.26440"></a>
+<span class="sourceLineNo">26441</span>                                        }<a name="line.26441"></a>
+<span class="sourceLineNo">26442</span>                                }<a name="line.26442"></a>
+<span class="sourceLineNo">26443</span>                        } else {<a name="line.26443"></a>
+<span class="sourceLineNo">26444</span>                                if (it.isOutputDouble()) {<a name="line.26444"></a>
+<span class="sourceLineNo">26445</span>                                        while (it.hasNext()) {<a name="line.26445"></a>
+<span class="sourceLineNo">26446</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26446"></a>
+<span class="sourceLineNo">26447</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.26447"></a>
+<span class="sourceLineNo">26448</span>                                                        float ox;<a name="line.26448"></a>
+<span class="sourceLineNo">26449</span>                                                        ox = (float) (Math.log10(ix));<a name="line.26449"></a>
+<span class="sourceLineNo">26450</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.26450"></a>
+<span class="sourceLineNo">26451</span>                                                }<a name="line.26451"></a>
+<span class="sourceLineNo">26452</span>                                        }<a name="line.26452"></a>
+<span class="sourceLineNo">26453</span>                                } else {<a name="line.26453"></a>
+<span class="sourceLineNo">26454</span>                                        while (it.hasNext()) {<a name="line.26454"></a>
+<span class="sourceLineNo">26455</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26455"></a>
+<span class="sourceLineNo">26456</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.26456"></a>
+<span class="sourceLineNo">26457</span>                                                        float ox;<a name="line.26457"></a>
+<span class="sourceLineNo">26458</span>                                                        ox = (float) (Math.log10(ix));<a name="line.26458"></a>
+<span class="sourceLineNo">26459</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.26459"></a>
+<span class="sourceLineNo">26460</span>                                                }<a name="line.26460"></a>
+<span class="sourceLineNo">26461</span>                                        }<a name="line.26461"></a>
+<span class="sourceLineNo">26462</span>                                }<a name="line.26462"></a>
+<span class="sourceLineNo">26463</span>                        }<a name="line.26463"></a>
+<span class="sourceLineNo">26464</span>                        break;<a name="line.26464"></a>
+<span class="sourceLineNo">26465</span>                case Dataset.ARRAYFLOAT64:<a name="line.26465"></a>
+<span class="sourceLineNo">26466</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.26466"></a>
+<span class="sourceLineNo">26467</span>                        if (is == 1) {<a name="line.26467"></a>
+<span class="sourceLineNo">26468</span>                                if (it.isOutputDouble()) {<a name="line.26468"></a>
+<span class="sourceLineNo">26469</span>                                        while (it.hasNext()) {<a name="line.26469"></a>
+<span class="sourceLineNo">26470</span>                                                final double ix = it.aDouble;<a name="line.26470"></a>
+<span class="sourceLineNo">26471</span>                                                double ox;<a name="line.26471"></a>
+<span class="sourceLineNo">26472</span>                                                ox = (Math.log10(ix));<a name="line.26472"></a>
+<span class="sourceLineNo">26473</span>                                                oaf64data[it.oIndex] = ox;<a name="line.26473"></a>
+<span class="sourceLineNo">26474</span>                                        }<a name="line.26474"></a>
+<span class="sourceLineNo">26475</span>                                } else {<a name="line.26475"></a>
+<span class="sourceLineNo">26476</span>                                        while (it.hasNext()) {<a name="line.26476"></a>
+<span class="sourceLineNo">26477</span>                                                final long ix = it.aLong;<a name="line.26477"></a>
+<span class="sourceLineNo">26478</span>                                                double ox;<a name="line.26478"></a>
+<span class="sourceLineNo">26479</span>                                                ox = (Math.log10(ix));<a name="line.26479"></a>
+<span class="sourceLineNo">26480</span>                                                oaf64data[it.oIndex] = ox;<a name="line.26480"></a>
+<span class="sourceLineNo">26481</span>                                        }<a name="line.26481"></a>
+<span class="sourceLineNo">26482</span>                                }<a name="line.26482"></a>
+<span class="sourceLineNo">26483</span>                        } else if (as == 1) {<a name="line.26483"></a>
+<span class="sourceLineNo">26484</span>                                if (it.isOutputDouble()) {<a name="line.26484"></a>
+<span class="sourceLineNo">26485</span>                                        while (it.hasNext()) {<a name="line.26485"></a>
+<span class="sourceLineNo">26486</span>                                                final double ix = it.aDouble;<a name="line.26486"></a>
+<span class="sourceLineNo">26487</span>                                                double ox;<a name="line.26487"></a>
+<span class="sourceLineNo">26488</span>                                                ox = (Math.log10(ix));<a name="line.26488"></a>
+<span class="sourceLineNo">26489</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26489"></a>
+<span class="sourceLineNo">26490</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.26490"></a>
+<span class="sourceLineNo">26491</span>                                                }<a name="line.26491"></a>
+<span class="sourceLineNo">26492</span>                                        }<a name="line.26492"></a>
+<span class="sourceLineNo">26493</span>                                } else {<a name="line.26493"></a>
+<span class="sourceLineNo">26494</span>                                        while (it.hasNext()) {<a name="line.26494"></a>
+<span class="sourceLineNo">26495</span>                                                final long ix = it.aLong;<a name="line.26495"></a>
+<span class="sourceLineNo">26496</span>                                                double ox;<a name="line.26496"></a>
+<span class="sourceLineNo">26497</span>                                                ox = (Math.log10(ix));<a name="line.26497"></a>
+<span class="sourceLineNo">26498</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26498"></a>
+<span class="sourceLineNo">26499</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.26499"></a>
+<span class="sourceLineNo">26500</span>                                                }<a name="line.26500"></a>
+<span class="sourceLineNo">26501</span>                                        }<a name="line.26501"></a>
+<span class="sourceLineNo">26502</span>                                }<a name="line.26502"></a>
+<span class="sourceLineNo">26503</span>                        } else {<a name="line.26503"></a>
+<span class="sourceLineNo">26504</span>                                if (it.isOutputDouble()) {<a name="line.26504"></a>
+<span class="sourceLineNo">26505</span>                                        while (it.hasNext()) {<a name="line.26505"></a>
+<span class="sourceLineNo">26506</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26506"></a>
+<span class="sourceLineNo">26507</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.26507"></a>
+<span class="sourceLineNo">26508</span>                                                        double ox;<a name="line.26508"></a>
+<span class="sourceLineNo">26509</span>                                                        ox = (Math.log10(ix));<a name="line.26509"></a>
+<span class="sourceLineNo">26510</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.26510"></a>
+<span class="sourceLineNo">26511</span>                                                }<a name="line.26511"></a>
+<span class="sourceLineNo">26512</span>                                        }<a name="line.26512"></a>
+<span class="sourceLineNo">26513</span>                                } else {<a name="line.26513"></a>
+<span class="sourceLineNo">26514</span>                                        while (it.hasNext()) {<a name="line.26514"></a>
+<span class="sourceLineNo">26515</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26515"></a>
+<span class="sourceLineNo">26516</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.26516"></a>
+<span class="sourceLineNo">26517</span>                                                        double ox;<a name="line.26517"></a>
+<span class="sourceLineNo">26518</span>                                                        ox = (Math.log10(ix));<a name="line.26518"></a>
+<span class="sourceLineNo">26519</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.26519"></a>
+<span class="sourceLineNo">26520</span>                                                }<a name="line.26520"></a>
+<span class="sourceLineNo">26521</span>                                        }<a name="line.26521"></a>
+<span class="sourceLineNo">26522</span>                                }<a name="line.26522"></a>
+<span class="sourceLineNo">26523</span>                        }<a name="line.26523"></a>
+<span class="sourceLineNo">26524</span>                        break;<a name="line.26524"></a>
+<span class="sourceLineNo">26525</span>                case Dataset.COMPLEX64:<a name="line.26525"></a>
+<span class="sourceLineNo">26526</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.26526"></a>
+<span class="sourceLineNo">26527</span>                        if (!da.isComplex()) {<a name="line.26527"></a>
+<span class="sourceLineNo">26528</span>                                if (it.isOutputDouble()) {<a name="line.26528"></a>
+<span class="sourceLineNo">26529</span>                                        final double iy = 0;<a name="line.26529"></a>
+<span class="sourceLineNo">26530</span>                                        while (it.hasNext()) {<a name="line.26530"></a>
+<span class="sourceLineNo">26531</span>                                                final double ix = it.aDouble;<a name="line.26531"></a>
+<span class="sourceLineNo">26532</span>                                                float ox;<a name="line.26532"></a>
+<span class="sourceLineNo">26533</span>                                                float oy;<a name="line.26533"></a>
+<span class="sourceLineNo">26534</span>                                                ox = (float) (Math.log10(Math.hypot(ix, iy)));<a name="line.26534"></a>
+<span class="sourceLineNo">26535</span>                                                oy = (float) (Math.atan2(iy, ix));<a name="line.26535"></a>
+<span class="sourceLineNo">26536</span>                                                oc64data[it.oIndex] = ox;<a name="line.26536"></a>
+<span class="sourceLineNo">26537</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.26537"></a>
+<span class="sourceLineNo">26538</span>                                        }<a name="line.26538"></a>
+<span class="sourceLineNo">26539</span>                                } else {<a name="line.26539"></a>
+<span class="sourceLineNo">26540</span>                                        final long iy = 0;<a name="line.26540"></a>
+<span class="sourceLineNo">26541</span>                                        while (it.hasNext()) {<a name="line.26541"></a>
+<span class="sourceLineNo">26542</span>                                                final long ix = it.aLong;<a name="line.26542"></a>
+<span class="sourceLineNo">26543</span>                                                float ox;<a name="line.26543"></a>
+<span class="sourceLineNo">26544</span>                                                float oy;<a name="line.26544"></a>
+<span class="sourceLineNo">26545</span>                                                ox = (float) toLong(Math.log10(Math.hypot(ix, iy)));<a name="line.26545"></a>
+<span class="sourceLineNo">26546</span>                                                oy = (float) toLong(Math.atan2(iy, ix));<a name="line.26546"></a>
+<span class="sourceLineNo">26547</span>                                                oc64data[it.oIndex] = ox;<a name="line.26547"></a>
+<span class="sourceLineNo">26548</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.26548"></a>
+<span class="sourceLineNo">26549</span>                                        }<a name="line.26549"></a>
+<span class="sourceLineNo">26550</span>                                }<a name="line.26550"></a>
+<span class="sourceLineNo">26551</span>                        } else {<a name="line.26551"></a>
+<span class="sourceLineNo">26552</span>                                while (it.hasNext()) {<a name="line.26552"></a>
+<span class="sourceLineNo">26553</span>                                        final double ix = it.aDouble;<a name="line.26553"></a>
+<span class="sourceLineNo">26554</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.26554"></a>
+<span class="sourceLineNo">26555</span>                                        float ox;<a name="line.26555"></a>
+<span class="sourceLineNo">26556</span>                                        float oy;<a name="line.26556"></a>
+<span class="sourceLineNo">26557</span>                                        ox = (float) (Math.log10(Math.hypot(ix, iy)));<a name="line.26557"></a>
+<span class="sourceLineNo">26558</span>                                        oy = (float) (Math.atan2(iy, ix));<a name="line.26558"></a>
+<span class="sourceLineNo">26559</span>                                        oc64data[it.oIndex] = ox;<a name="line.26559"></a>
+<span class="sourceLineNo">26560</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.26560"></a>
+<span class="sourceLineNo">26561</span>                                }<a name="line.26561"></a>
+<span class="sourceLineNo">26562</span>                        }<a name="line.26562"></a>
+<span class="sourceLineNo">26563</span>                        break;<a name="line.26563"></a>
+<span class="sourceLineNo">26564</span>                case Dataset.COMPLEX128:<a name="line.26564"></a>
+<span class="sourceLineNo">26565</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.26565"></a>
+<span class="sourceLineNo">26566</span>                        if (!da.isComplex()) {<a name="line.26566"></a>
+<span class="sourceLineNo">26567</span>                                if (it.isOutputDouble()) {<a name="line.26567"></a>
+<span class="sourceLineNo">26568</span>                                        final double iy = 0;<a name="line.26568"></a>
+<span class="sourceLineNo">26569</span>                                        while (it.hasNext()) {<a name="line.26569"></a>
+<span class="sourceLineNo">26570</span>                                                final double ix = it.aDouble;<a name="line.26570"></a>
+<span class="sourceLineNo">26571</span>                                                double ox;<a name="line.26571"></a>
+<span class="sourceLineNo">26572</span>                                                double oy;<a name="line.26572"></a>
+<span class="sourceLineNo">26573</span>                                                ox = (Math.log10(Math.hypot(ix, iy)));<a name="line.26573"></a>
+<span class="sourceLineNo">26574</span>                                                oy = (Math.atan2(iy, ix));<a name="line.26574"></a>
+<span class="sourceLineNo">26575</span>                                                oc128data[it.oIndex] = ox;<a name="line.26575"></a>
+<span class="sourceLineNo">26576</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.26576"></a>
+<span class="sourceLineNo">26577</span>                                        }<a name="line.26577"></a>
+<span class="sourceLineNo">26578</span>                                } else {<a name="line.26578"></a>
+<span class="sourceLineNo">26579</span>                                        final long iy = 0;<a name="line.26579"></a>
+<span class="sourceLineNo">26580</span>                                        while (it.hasNext()) {<a name="line.26580"></a>
+<span class="sourceLineNo">26581</span>                                                final long ix = it.aLong;<a name="line.26581"></a>
+<span class="sourceLineNo">26582</span>                                                double ox;<a name="line.26582"></a>
+<span class="sourceLineNo">26583</span>                                                double oy;<a name="line.26583"></a>
+<span class="sourceLineNo">26584</span>                                                ox = (double) (Math.log10(Math.hypot(ix, iy)));<a name="line.26584"></a>
+<span class="sourceLineNo">26585</span>                                                oy = (double) (Math.atan2(iy, ix));<a name="line.26585"></a>
+<span class="sourceLineNo">26586</span>                                                oc128data[it.oIndex] = ox;<a name="line.26586"></a>
+<span class="sourceLineNo">26587</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.26587"></a>
+<span class="sourceLineNo">26588</span>                                        }<a name="line.26588"></a>
+<span class="sourceLineNo">26589</span>                                }<a name="line.26589"></a>
+<span class="sourceLineNo">26590</span>                        } else {<a name="line.26590"></a>
+<span class="sourceLineNo">26591</span>                                while (it.hasNext()) {<a name="line.26591"></a>
+<span class="sourceLineNo">26592</span>                                        final double ix = it.aDouble;<a name="line.26592"></a>
+<span class="sourceLineNo">26593</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.26593"></a>
+<span class="sourceLineNo">26594</span>                                        double ox;<a name="line.26594"></a>
+<span class="sourceLineNo">26595</span>                                        double oy;<a name="line.26595"></a>
+<span class="sourceLineNo">26596</span>                                        ox = (Math.log10(Math.hypot(ix, iy)));<a name="line.26596"></a>
+<span class="sourceLineNo">26597</span>                                        oy = (Math.atan2(iy, ix));<a name="line.26597"></a>
+<span class="sourceLineNo">26598</span>                                        oc128data[it.oIndex] = ox;<a name="line.26598"></a>
+<span class="sourceLineNo">26599</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.26599"></a>
+<span class="sourceLineNo">26600</span>                                }<a name="line.26600"></a>
+<span class="sourceLineNo">26601</span>                        }<a name="line.26601"></a>
+<span class="sourceLineNo">26602</span>                        break;<a name="line.26602"></a>
+<span class="sourceLineNo">26603</span>                default:<a name="line.26603"></a>
+<span class="sourceLineNo">26604</span>                        throw new IllegalArgumentException("log10 supports integer, compound integer, real, compound real, complex datasets only");<a name="line.26604"></a>
+<span class="sourceLineNo">26605</span>                }<a name="line.26605"></a>
+<span class="sourceLineNo">26606</span><a name="line.26606"></a>
+<span class="sourceLineNo">26607</span>                addFunctionName(result, "log10");<a name="line.26607"></a>
+<span class="sourceLineNo">26608</span>                return result;<a name="line.26608"></a>
+<span class="sourceLineNo">26609</span>        }<a name="line.26609"></a>
+<span class="sourceLineNo">26610</span><a name="line.26610"></a>
+<span class="sourceLineNo">26611</span>        /**<a name="line.26611"></a>
+<span class="sourceLineNo">26612</span>         * log1p - evaluate the logarithm function of 1 plus on each element of the dataset<a name="line.26612"></a>
+<span class="sourceLineNo">26613</span>         * @param a<a name="line.26613"></a>
+<span class="sourceLineNo">26614</span>         * @return dataset<a name="line.26614"></a>
+<span class="sourceLineNo">26615</span>         */<a name="line.26615"></a>
+<span class="sourceLineNo">26616</span>        public static Dataset log1p(final Object a) {<a name="line.26616"></a>
+<span class="sourceLineNo">26617</span>                return log1p(a, null);<a name="line.26617"></a>
+<span class="sourceLineNo">26618</span>        }<a name="line.26618"></a>
+<span class="sourceLineNo">26619</span><a name="line.26619"></a>
+<span class="sourceLineNo">26620</span>        /**<a name="line.26620"></a>
+<span class="sourceLineNo">26621</span>         * log1p - evaluate the logarithm function of 1 plus on each element of the dataset<a name="line.26621"></a>
+<span class="sourceLineNo">26622</span>         * @param a<a name="line.26622"></a>
+<span class="sourceLineNo">26623</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.26623"></a>
+<span class="sourceLineNo">26624</span>         * @return dataset<a name="line.26624"></a>
+<span class="sourceLineNo">26625</span>         */<a name="line.26625"></a>
+<span class="sourceLineNo">26626</span>        public static Dataset log1p(final Object a, final Dataset o) {<a name="line.26626"></a>
+<span class="sourceLineNo">26627</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.26627"></a>
+<span class="sourceLineNo">26628</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.26628"></a>
+<span class="sourceLineNo">26629</span>                final Dataset result = it.getOutput();<a name="line.26629"></a>
+<span class="sourceLineNo">26630</span>                if (!result.isComplex()) {<a name="line.26630"></a>
+<span class="sourceLineNo">26631</span>                        if (da.isComplex()) {<a name="line.26631"></a>
+<span class="sourceLineNo">26632</span>                                da = da.getRealView();<a name="line.26632"></a>
+<span class="sourceLineNo">26633</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.26633"></a>
+<span class="sourceLineNo">26634</span>                        }<a name="line.26634"></a>
+<span class="sourceLineNo">26635</span>                }<a name="line.26635"></a>
+<span class="sourceLineNo">26636</span>                final int is = result.getElementsPerItem();<a name="line.26636"></a>
+<span class="sourceLineNo">26637</span>                final int as = da.getElementsPerItem();<a name="line.26637"></a>
+<span class="sourceLineNo">26638</span>                final int dt = result.getDType();<a name="line.26638"></a>
+<span class="sourceLineNo">26639</span><a name="line.26639"></a>
+<span class="sourceLineNo">26640</span>                switch(dt) {<a name="line.26640"></a>
+<span class="sourceLineNo">26641</span>                case Dataset.INT8:<a name="line.26641"></a>
+<span class="sourceLineNo">26642</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.26642"></a>
+<span class="sourceLineNo">26643</span>                        if (it.isOutputDouble()) {<a name="line.26643"></a>
+<span class="sourceLineNo">26644</span>                                while (it.hasNext()) {<a name="line.26644"></a>
+<span class="sourceLineNo">26645</span>                                        final double ix = it.aDouble;<a name="line.26645"></a>
+<span class="sourceLineNo">26646</span>                                        byte ox;<a name="line.26646"></a>
+<span class="sourceLineNo">26647</span>                                        ox = (byte) toLong(Math.log1p(ix));<a name="line.26647"></a>
+<span class="sourceLineNo">26648</span>                                        oi8data[it.oIndex] = ox;<a name="line.26648"></a>
+<span class="sourceLineNo">26649</span>                                }<a name="line.26649"></a>
+<span class="sourceLineNo">26650</span>                        } else {<a name="line.26650"></a>
+<span class="sourceLineNo">26651</span>                                while (it.hasNext()) {<a name="line.26651"></a>
+<span class="sourceLineNo">26652</span>                                        final long ix = it.aLong;<a name="line.26652"></a>
+<span class="sourceLineNo">26653</span>                                        byte ox;<a name="line.26653"></a>
+<span class="sourceLineNo">26654</span>                                        ox = (byte) toLong(Math.log1p(ix));<a name="line.26654"></a>
+<span class="sourceLineNo">26655</span>                                        oi8data[it.oIndex] = ox;<a name="line.26655"></a>
+<span class="sourceLineNo">26656</span>                                }<a name="line.26656"></a>
+<span class="sourceLineNo">26657</span>                        }<a name="line.26657"></a>
+<span class="sourceLineNo">26658</span>                        break;<a name="line.26658"></a>
+<span class="sourceLineNo">26659</span>                case Dataset.INT16:<a name="line.26659"></a>
+<span class="sourceLineNo">26660</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.26660"></a>
+<span class="sourceLineNo">26661</span>                        if (it.isOutputDouble()) {<a name="line.26661"></a>
+<span class="sourceLineNo">26662</span>                                while (it.hasNext()) {<a name="line.26662"></a>
+<span class="sourceLineNo">26663</span>                                        final double ix = it.aDouble;<a name="line.26663"></a>
+<span class="sourceLineNo">26664</span>                                        short ox;<a name="line.26664"></a>
+<span class="sourceLineNo">26665</span>                                        ox = (short) toLong(Math.log1p(ix));<a name="line.26665"></a>
+<span class="sourceLineNo">26666</span>                                        oi16data[it.oIndex] = ox;<a name="line.26666"></a>
+<span class="sourceLineNo">26667</span>                                }<a name="line.26667"></a>
+<span class="sourceLineNo">26668</span>                        } else {<a name="line.26668"></a>
+<span class="sourceLineNo">26669</span>                                while (it.hasNext()) {<a name="line.26669"></a>
+<span class="sourceLineNo">26670</span>                                        final long ix = it.aLong;<a name="line.26670"></a>
+<span class="sourceLineNo">26671</span>                                        short ox;<a name="line.26671"></a>
+<span class="sourceLineNo">26672</span>                                        ox = (short) toLong(Math.log1p(ix));<a name="line.26672"></a>
+<span class="sourceLineNo">26673</span>                                        oi16data[it.oIndex] = ox;<a name="line.26673"></a>
+<span class="sourceLineNo">26674</span>                                }<a name="line.26674"></a>
+<span class="sourceLineNo">26675</span>                        }<a name="line.26675"></a>
+<span class="sourceLineNo">26676</span>                        break;<a name="line.26676"></a>
+<span class="sourceLineNo">26677</span>                case Dataset.INT64:<a name="line.26677"></a>
+<span class="sourceLineNo">26678</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.26678"></a>
+<span class="sourceLineNo">26679</span>                        if (it.isOutputDouble()) {<a name="line.26679"></a>
+<span class="sourceLineNo">26680</span>                                while (it.hasNext()) {<a name="line.26680"></a>
+<span class="sourceLineNo">26681</span>                                        final double ix = it.aDouble;<a name="line.26681"></a>
+<span class="sourceLineNo">26682</span>                                        long ox;<a name="line.26682"></a>
+<span class="sourceLineNo">26683</span>                                        ox = toLong(Math.log1p(ix));<a name="line.26683"></a>
+<span class="sourceLineNo">26684</span>                                        oi64data[it.oIndex] = ox;<a name="line.26684"></a>
+<span class="sourceLineNo">26685</span>                                }<a name="line.26685"></a>
+<span class="sourceLineNo">26686</span>                        } else {<a name="line.26686"></a>
+<span class="sourceLineNo">26687</span>                                while (it.hasNext()) {<a name="line.26687"></a>
+<span class="sourceLineNo">26688</span>                                        final long ix = it.aLong;<a name="line.26688"></a>
+<span class="sourceLineNo">26689</span>                                        long ox;<a name="line.26689"></a>
+<span class="sourceLineNo">26690</span>                                        ox = toLong(Math.log1p(ix));<a name="line.26690"></a>
+<span class="sourceLineNo">26691</span>                                        oi64data[it.oIndex] = ox;<a name="line.26691"></a>
+<span class="sourceLineNo">26692</span>                                }<a name="line.26692"></a>
+<span class="sourceLineNo">26693</span>                        }<a name="line.26693"></a>
+<span class="sourceLineNo">26694</span>                        break;<a name="line.26694"></a>
+<span class="sourceLineNo">26695</span>                case Dataset.INT32:<a name="line.26695"></a>
+<span class="sourceLineNo">26696</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.26696"></a>
+<span class="sourceLineNo">26697</span>                        if (it.isOutputDouble()) {<a name="line.26697"></a>
+<span class="sourceLineNo">26698</span>                                while (it.hasNext()) {<a name="line.26698"></a>
+<span class="sourceLineNo">26699</span>                                        final double ix = it.aDouble;<a name="line.26699"></a>
+<span class="sourceLineNo">26700</span>                                        int ox;<a name="line.26700"></a>
+<span class="sourceLineNo">26701</span>                                        ox = (int) toLong(Math.log1p(ix));<a name="line.26701"></a>
+<span class="sourceLineNo">26702</span>                                        oi32data[it.oIndex] = ox;<a name="line.26702"></a>
+<span class="sourceLineNo">26703</span>                                }<a name="line.26703"></a>
+<span class="sourceLineNo">26704</span>                        } else {<a name="line.26704"></a>
+<span class="sourceLineNo">26705</span>                                while (it.hasNext()) {<a name="line.26705"></a>
+<span class="sourceLineNo">26706</span>                                        final long ix = it.aLong;<a name="line.26706"></a>
+<span class="sourceLineNo">26707</span>                                        int ox;<a name="line.26707"></a>
+<span class="sourceLineNo">26708</span>                                        ox = (int) toLong(Math.log1p(ix));<a name="line.26708"></a>
+<span class="sourceLineNo">26709</span>                                        oi32data[it.oIndex] = ox;<a name="line.26709"></a>
+<span class="sourceLineNo">26710</span>                                }<a name="line.26710"></a>
+<span class="sourceLineNo">26711</span>                        }<a name="line.26711"></a>
+<span class="sourceLineNo">26712</span>                        break;<a name="line.26712"></a>
+<span class="sourceLineNo">26713</span>                case Dataset.ARRAYINT8:<a name="line.26713"></a>
+<span class="sourceLineNo">26714</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.26714"></a>
+<span class="sourceLineNo">26715</span>                        if (is == 1) {<a name="line.26715"></a>
+<span class="sourceLineNo">26716</span>                                if (it.isOutputDouble()) {<a name="line.26716"></a>
+<span class="sourceLineNo">26717</span>                                        while (it.hasNext()) {<a name="line.26717"></a>
+<span class="sourceLineNo">26718</span>                                                final double ix = it.aDouble;<a name="line.26718"></a>
+<span class="sourceLineNo">26719</span>                                                byte ox;<a name="line.26719"></a>
+<span class="sourceLineNo">26720</span>                                                ox = (byte) toLong(Math.log1p(ix));<a name="line.26720"></a>
+<span class="sourceLineNo">26721</span>                                                oai8data[it.oIndex] = ox;<a name="line.26721"></a>
+<span class="sourceLineNo">26722</span>                                        }<a name="line.26722"></a>
+<span class="sourceLineNo">26723</span>                                } else {<a name="line.26723"></a>
+<span class="sourceLineNo">26724</span>                                        while (it.hasNext()) {<a name="line.26724"></a>
+<span class="sourceLineNo">26725</span>                                                final long ix = it.aLong;<a name="line.26725"></a>
+<span class="sourceLineNo">26726</span>                                                byte ox;<a name="line.26726"></a>
+<span class="sourceLineNo">26727</span>                                                ox = (byte) toLong(Math.log1p(ix));<a name="line.26727"></a>
+<span class="sourceLineNo">26728</span>                                                oai8data[it.oIndex] = ox;<a name="line.26728"></a>
+<span class="sourceLineNo">26729</span>                                        }<a name="line.26729"></a>
+<span class="sourceLineNo">26730</span>                                }<a name="line.26730"></a>
+<span class="sourceLineNo">26731</span>                        } else if (as == 1) {<a name="line.26731"></a>
+<span class="sourceLineNo">26732</span>                                if (it.isOutputDouble()) {<a name="line.26732"></a>
+<span class="sourceLineNo">26733</span>                                        while (it.hasNext()) {<a name="line.26733"></a>
+<span class="sourceLineNo">26734</span>                                                final double ix = it.aDouble;<a name="line.26734"></a>
+<span class="sourceLineNo">26735</span>                                                byte ox;<a name="line.26735"></a>
+<span class="sourceLineNo">26736</span>                                                ox = (byte) toLong(Math.log1p(ix));<a name="line.26736"></a>
+<span class="sourceLineNo">26737</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26737"></a>
+<span class="sourceLineNo">26738</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.26738"></a>
+<span class="sourceLineNo">26739</span>                                                }<a name="line.26739"></a>
+<span class="sourceLineNo">26740</span>                                        }<a name="line.26740"></a>
+<span class="sourceLineNo">26741</span>                                } else {<a name="line.26741"></a>
+<span class="sourceLineNo">26742</span>                                        while (it.hasNext()) {<a name="line.26742"></a>
+<span class="sourceLineNo">26743</span>                                                final long ix = it.aLong;<a name="line.26743"></a>
+<span class="sourceLineNo">26744</span>                                                byte ox;<a name="line.26744"></a>
+<span class="sourceLineNo">26745</span>                                                ox = (byte) toLong(Math.log1p(ix));<a name="line.26745"></a>
+<span class="sourceLineNo">26746</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26746"></a>
+<span class="sourceLineNo">26747</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.26747"></a>
+<span class="sourceLineNo">26748</span>                                                }<a name="line.26748"></a>
+<span class="sourceLineNo">26749</span>                                        }<a name="line.26749"></a>
+<span class="sourceLineNo">26750</span>                                }<a name="line.26750"></a>
+<span class="sourceLineNo">26751</span>                        } else {<a name="line.26751"></a>
+<span class="sourceLineNo">26752</span>                                if (it.isOutputDouble()) {<a name="line.26752"></a>
+<span class="sourceLineNo">26753</span>                                        while (it.hasNext()) {<a name="line.26753"></a>
+<span class="sourceLineNo">26754</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26754"></a>
+<span class="sourceLineNo">26755</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.26755"></a>
+<span class="sourceLineNo">26756</span>                                                        byte ox;<a name="line.26756"></a>
+<span class="sourceLineNo">26757</span>                                                        ox = (byte) toLong(Math.log1p(ix));<a name="line.26757"></a>
+<span class="sourceLineNo">26758</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.26758"></a>
+<span class="sourceLineNo">26759</span>                                                }<a name="line.26759"></a>
+<span class="sourceLineNo">26760</span>                                        }<a name="line.26760"></a>
+<span class="sourceLineNo">26761</span>                                } else {<a name="line.26761"></a>
+<span class="sourceLineNo">26762</span>                                        while (it.hasNext()) {<a name="line.26762"></a>
+<span class="sourceLineNo">26763</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26763"></a>
+<span class="sourceLineNo">26764</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.26764"></a>
+<span class="sourceLineNo">26765</span>                                                        byte ox;<a name="line.26765"></a>
+<span class="sourceLineNo">26766</span>                                                        ox = (byte) toLong(Math.log1p(ix));<a name="line.26766"></a>
+<span class="sourceLineNo">26767</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.26767"></a>
+<span class="sourceLineNo">26768</span>                                                }<a name="line.26768"></a>
+<span class="sourceLineNo">26769</span>                                        }<a name="line.26769"></a>
+<span class="sourceLineNo">26770</span>                                }<a name="line.26770"></a>
+<span class="sourceLineNo">26771</span>                        }<a name="line.26771"></a>
+<span class="sourceLineNo">26772</span>                        break;<a name="line.26772"></a>
+<span class="sourceLineNo">26773</span>                case Dataset.ARRAYINT16:<a name="line.26773"></a>
+<span class="sourceLineNo">26774</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.26774"></a>
+<span class="sourceLineNo">26775</span>                        if (is == 1) {<a name="line.26775"></a>
+<span class="sourceLineNo">26776</span>                                if (it.isOutputDouble()) {<a name="line.26776"></a>
+<span class="sourceLineNo">26777</span>                                        while (it.hasNext()) {<a name="line.26777"></a>
+<span class="sourceLineNo">26778</span>                                                final double ix = it.aDouble;<a name="line.26778"></a>
+<span class="sourceLineNo">26779</span>                                                short ox;<a name="line.26779"></a>
+<span class="sourceLineNo">26780</span>                                                ox = (short) toLong(Math.log1p(ix));<a name="line.26780"></a>
+<span class="sourceLineNo">26781</span>                                                oai16data[it.oIndex] = ox;<a name="line.26781"></a>
+<span class="sourceLineNo">26782</span>                                        }<a name="line.26782"></a>
+<span class="sourceLineNo">26783</span>                                } else {<a name="line.26783"></a>
+<span class="sourceLineNo">26784</span>                                        while (it.hasNext()) {<a name="line.26784"></a>
+<span class="sourceLineNo">26785</span>                                                final long ix = it.aLong;<a name="line.26785"></a>
+<span class="sourceLineNo">26786</span>                                                short ox;<a name="line.26786"></a>
+<span class="sourceLineNo">26787</span>                                                ox = (short) toLong(Math.log1p(ix));<a name="line.26787"></a>
+<span class="sourceLineNo">26788</span>                                                oai16data[it.oIndex] = ox;<a name="line.26788"></a>
+<span class="sourceLineNo">26789</span>                                        }<a name="line.26789"></a>
+<span class="sourceLineNo">26790</span>                                }<a name="line.26790"></a>
+<span class="sourceLineNo">26791</span>                        } else if (as == 1) {<a name="line.26791"></a>
+<span class="sourceLineNo">26792</span>                                if (it.isOutputDouble()) {<a name="line.26792"></a>
+<span class="sourceLineNo">26793</span>                                        while (it.hasNext()) {<a name="line.26793"></a>
+<span class="sourceLineNo">26794</span>                                                final double ix = it.aDouble;<a name="line.26794"></a>
+<span class="sourceLineNo">26795</span>                                                short ox;<a name="line.26795"></a>
+<span class="sourceLineNo">26796</span>                                                ox = (short) toLong(Math.log1p(ix));<a name="line.26796"></a>
+<span class="sourceLineNo">26797</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26797"></a>
+<span class="sourceLineNo">26798</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.26798"></a>
+<span class="sourceLineNo">26799</span>                                                }<a name="line.26799"></a>
+<span class="sourceLineNo">26800</span>                                        }<a name="line.26800"></a>
+<span class="sourceLineNo">26801</span>                                } else {<a name="line.26801"></a>
+<span class="sourceLineNo">26802</span>                                        while (it.hasNext()) {<a name="line.26802"></a>
+<span class="sourceLineNo">26803</span>                                                final long ix = it.aLong;<a name="line.26803"></a>
+<span class="sourceLineNo">26804</span>                                                short ox;<a name="line.26804"></a>
+<span class="sourceLineNo">26805</span>                                                ox = (short) toLong(Math.log1p(ix));<a name="line.26805"></a>
+<span class="sourceLineNo">26806</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26806"></a>
+<span class="sourceLineNo">26807</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.26807"></a>
+<span class="sourceLineNo">26808</span>                                                }<a name="line.26808"></a>
+<span class="sourceLineNo">26809</span>                                        }<a name="line.26809"></a>
+<span class="sourceLineNo">26810</span>                                }<a name="line.26810"></a>
+<span class="sourceLineNo">26811</span>                        } else {<a name="line.26811"></a>
+<span class="sourceLineNo">26812</span>                                if (it.isOutputDouble()) {<a name="line.26812"></a>
+<span class="sourceLineNo">26813</span>                                        while (it.hasNext()) {<a name="line.26813"></a>
+<span class="sourceLineNo">26814</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26814"></a>
+<span class="sourceLineNo">26815</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.26815"></a>
+<span class="sourceLineNo">26816</span>                                                        short ox;<a name="line.26816"></a>
+<span class="sourceLineNo">26817</span>                                                        ox = (short) toLong(Math.log1p(ix));<a name="line.26817"></a>
+<span class="sourceLineNo">26818</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.26818"></a>
+<span class="sourceLineNo">26819</span>                                                }<a name="line.26819"></a>
+<span class="sourceLineNo">26820</span>                                        }<a name="line.26820"></a>
+<span class="sourceLineNo">26821</span>                                } else {<a name="line.26821"></a>
+<span class="sourceLineNo">26822</span>                                        while (it.hasNext()) {<a name="line.26822"></a>
+<span class="sourceLineNo">26823</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26823"></a>
+<span class="sourceLineNo">26824</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.26824"></a>
+<span class="sourceLineNo">26825</span>                                                        short ox;<a name="line.26825"></a>
+<span class="sourceLineNo">26826</span>                                                        ox = (short) toLong(Math.log1p(ix));<a name="line.26826"></a>
+<span class="sourceLineNo">26827</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.26827"></a>
+<span class="sourceLineNo">26828</span>                                                }<a name="line.26828"></a>
+<span class="sourceLineNo">26829</span>                                        }<a name="line.26829"></a>
+<span class="sourceLineNo">26830</span>                                }<a name="line.26830"></a>
+<span class="sourceLineNo">26831</span>                        }<a name="line.26831"></a>
+<span class="sourceLineNo">26832</span>                        break;<a name="line.26832"></a>
+<span class="sourceLineNo">26833</span>                case Dataset.ARRAYINT64:<a name="line.26833"></a>
+<span class="sourceLineNo">26834</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.26834"></a>
+<span class="sourceLineNo">26835</span>                        if (is == 1) {<a name="line.26835"></a>
+<span class="sourceLineNo">26836</span>                                if (it.isOutputDouble()) {<a name="line.26836"></a>
+<span class="sourceLineNo">26837</span>                                        while (it.hasNext()) {<a name="line.26837"></a>
+<span class="sourceLineNo">26838</span>                                                final double ix = it.aDouble;<a name="line.26838"></a>
+<span class="sourceLineNo">26839</span>                                                long ox;<a name="line.26839"></a>
+<span class="sourceLineNo">26840</span>                                                ox = toLong(Math.log1p(ix));<a name="line.26840"></a>
+<span class="sourceLineNo">26841</span>                                                oai64data[it.oIndex] = ox;<a name="line.26841"></a>
+<span class="sourceLineNo">26842</span>                                        }<a name="line.26842"></a>
+<span class="sourceLineNo">26843</span>                                } else {<a name="line.26843"></a>
+<span class="sourceLineNo">26844</span>                                        while (it.hasNext()) {<a name="line.26844"></a>
+<span class="sourceLineNo">26845</span>                                                final long ix = it.aLong;<a name="line.26845"></a>
+<span class="sourceLineNo">26846</span>                                                long ox;<a name="line.26846"></a>
+<span class="sourceLineNo">26847</span>                                                ox = toLong(Math.log1p(ix));<a name="line.26847"></a>
+<span class="sourceLineNo">26848</span>                                                oai64data[it.oIndex] = ox;<a name="line.26848"></a>
+<span class="sourceLineNo">26849</span>                                        }<a name="line.26849"></a>
+<span class="sourceLineNo">26850</span>                                }<a name="line.26850"></a>
+<span class="sourceLineNo">26851</span>                        } else if (as == 1) {<a name="line.26851"></a>
+<span class="sourceLineNo">26852</span>                                if (it.isOutputDouble()) {<a name="line.26852"></a>
+<span class="sourceLineNo">26853</span>                                        while (it.hasNext()) {<a name="line.26853"></a>
+<span class="sourceLineNo">26854</span>                                                final double ix = it.aDouble;<a name="line.26854"></a>
+<span class="sourceLineNo">26855</span>                                                long ox;<a name="line.26855"></a>
+<span class="sourceLineNo">26856</span>                                                ox = toLong(Math.log1p(ix));<a name="line.26856"></a>
+<span class="sourceLineNo">26857</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26857"></a>
+<span class="sourceLineNo">26858</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.26858"></a>
+<span class="sourceLineNo">26859</span>                                                }<a name="line.26859"></a>
+<span class="sourceLineNo">26860</span>                                        }<a name="line.26860"></a>
+<span class="sourceLineNo">26861</span>                                } else {<a name="line.26861"></a>
+<span class="sourceLineNo">26862</span>                                        while (it.hasNext()) {<a name="line.26862"></a>
+<span class="sourceLineNo">26863</span>                                                final long ix = it.aLong;<a name="line.26863"></a>
+<span class="sourceLineNo">26864</span>                                                long ox;<a name="line.26864"></a>
+<span class="sourceLineNo">26865</span>                                                ox = toLong(Math.log1p(ix));<a name="line.26865"></a>
+<span class="sourceLineNo">26866</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26866"></a>
+<span class="sourceLineNo">26867</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.26867"></a>
+<span class="sourceLineNo">26868</span>                                                }<a name="line.26868"></a>
+<span class="sourceLineNo">26869</span>                                        }<a name="line.26869"></a>
+<span class="sourceLineNo">26870</span>                                }<a name="line.26870"></a>
+<span class="sourceLineNo">26871</span>                        } else {<a name="line.26871"></a>
+<span class="sourceLineNo">26872</span>                                if (it.isOutputDouble()) {<a name="line.26872"></a>
+<span class="sourceLineNo">26873</span>                                        while (it.hasNext()) {<a name="line.26873"></a>
+<span class="sourceLineNo">26874</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26874"></a>
+<span class="sourceLineNo">26875</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.26875"></a>
+<span class="sourceLineNo">26876</span>                                                        long ox;<a name="line.26876"></a>
+<span class="sourceLineNo">26877</span>                                                        ox = toLong(Math.log1p(ix));<a name="line.26877"></a>
+<span class="sourceLineNo">26878</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.26878"></a>
+<span class="sourceLineNo">26879</span>                                                }<a name="line.26879"></a>
+<span class="sourceLineNo">26880</span>                                        }<a name="line.26880"></a>
+<span class="sourceLineNo">26881</span>                                } else {<a name="line.26881"></a>
+<span class="sourceLineNo">26882</span>                                        while (it.hasNext()) {<a name="line.26882"></a>
+<span class="sourceLineNo">26883</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26883"></a>
+<span class="sourceLineNo">26884</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.26884"></a>
+<span class="sourceLineNo">26885</span>                                                        long ox;<a name="line.26885"></a>
+<span class="sourceLineNo">26886</span>                                                        ox = toLong(Math.log1p(ix));<a name="line.26886"></a>
+<span class="sourceLineNo">26887</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.26887"></a>
+<span class="sourceLineNo">26888</span>                                                }<a name="line.26888"></a>
+<span class="sourceLineNo">26889</span>                                        }<a name="line.26889"></a>
+<span class="sourceLineNo">26890</span>                                }<a name="line.26890"></a>
+<span class="sourceLineNo">26891</span>                        }<a name="line.26891"></a>
+<span class="sourceLineNo">26892</span>                        break;<a name="line.26892"></a>
+<span class="sourceLineNo">26893</span>                case Dataset.ARRAYINT32:<a name="line.26893"></a>
+<span class="sourceLineNo">26894</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.26894"></a>
+<span class="sourceLineNo">26895</span>                        if (is == 1) {<a name="line.26895"></a>
+<span class="sourceLineNo">26896</span>                                if (it.isOutputDouble()) {<a name="line.26896"></a>
+<span class="sourceLineNo">26897</span>                                        while (it.hasNext()) {<a name="line.26897"></a>
+<span class="sourceLineNo">26898</span>                                                final double ix = it.aDouble;<a name="line.26898"></a>
+<span class="sourceLineNo">26899</span>                                                int ox;<a name="line.26899"></a>
+<span class="sourceLineNo">26900</span>                                                ox = (int) toLong(Math.log1p(ix));<a name="line.26900"></a>
+<span class="sourceLineNo">26901</span>                                                oai32data[it.oIndex] = ox;<a name="line.26901"></a>
+<span class="sourceLineNo">26902</span>                                        }<a name="line.26902"></a>
+<span class="sourceLineNo">26903</span>                                } else {<a name="line.26903"></a>
+<span class="sourceLineNo">26904</span>                                        while (it.hasNext()) {<a name="line.26904"></a>
+<span class="sourceLineNo">26905</span>                                                final long ix = it.aLong;<a name="line.26905"></a>
+<span class="sourceLineNo">26906</span>                                                int ox;<a name="line.26906"></a>
+<span class="sourceLineNo">26907</span>                                                ox = (int) toLong(Math.log1p(ix));<a name="line.26907"></a>
+<span class="sourceLineNo">26908</span>                                                oai32data[it.oIndex] = ox;<a name="line.26908"></a>
+<span class="sourceLineNo">26909</span>                                        }<a name="line.26909"></a>
+<span class="sourceLineNo">26910</span>                                }<a name="line.26910"></a>
+<span class="sourceLineNo">26911</span>                        } else if (as == 1) {<a name="line.26911"></a>
+<span class="sourceLineNo">26912</span>                                if (it.isOutputDouble()) {<a name="line.26912"></a>
+<span class="sourceLineNo">26913</span>                                        while (it.hasNext()) {<a name="line.26913"></a>
+<span class="sourceLineNo">26914</span>                                                final double ix = it.aDouble;<a name="line.26914"></a>
+<span class="sourceLineNo">26915</span>                                                int ox;<a name="line.26915"></a>
+<span class="sourceLineNo">26916</span>                                                ox = (int) toLong(Math.log1p(ix));<a name="line.26916"></a>
+<span class="sourceLineNo">26917</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26917"></a>
+<span class="sourceLineNo">26918</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.26918"></a>
+<span class="sourceLineNo">26919</span>                                                }<a name="line.26919"></a>
+<span class="sourceLineNo">26920</span>                                        }<a name="line.26920"></a>
+<span class="sourceLineNo">26921</span>                                } else {<a name="line.26921"></a>
+<span class="sourceLineNo">26922</span>                                        while (it.hasNext()) {<a name="line.26922"></a>
+<span class="sourceLineNo">26923</span>                                                final long ix = it.aLong;<a name="line.26923"></a>
+<span class="sourceLineNo">26924</span>                                                int ox;<a name="line.26924"></a>
+<span class="sourceLineNo">26925</span>                                                ox = (int) toLong(Math.log1p(ix));<a name="line.26925"></a>
+<span class="sourceLineNo">26926</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26926"></a>
+<span class="sourceLineNo">26927</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.26927"></a>
+<span class="sourceLineNo">26928</span>                                                }<a name="line.26928"></a>
+<span class="sourceLineNo">26929</span>                                        }<a name="line.26929"></a>
+<span class="sourceLineNo">26930</span>                                }<a name="line.26930"></a>
+<span class="sourceLineNo">26931</span>                        } else {<a name="line.26931"></a>
+<span class="sourceLineNo">26932</span>                                if (it.isOutputDouble()) {<a name="line.26932"></a>
+<span class="sourceLineNo">26933</span>                                        while (it.hasNext()) {<a name="line.26933"></a>
+<span class="sourceLineNo">26934</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26934"></a>
+<span class="sourceLineNo">26935</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.26935"></a>
+<span class="sourceLineNo">26936</span>                                                        int ox;<a name="line.26936"></a>
+<span class="sourceLineNo">26937</span>                                                        ox = (int) toLong(Math.log1p(ix));<a name="line.26937"></a>
+<span class="sourceLineNo">26938</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.26938"></a>
+<span class="sourceLineNo">26939</span>                                                }<a name="line.26939"></a>
+<span class="sourceLineNo">26940</span>                                        }<a name="line.26940"></a>
+<span class="sourceLineNo">26941</span>                                } else {<a name="line.26941"></a>
+<span class="sourceLineNo">26942</span>                                        while (it.hasNext()) {<a name="line.26942"></a>
+<span class="sourceLineNo">26943</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.26943"></a>
+<span class="sourceLineNo">26944</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.26944"></a>
+<span class="sourceLineNo">26945</span>                                                        int ox;<a name="line.26945"></a>
+<span class="sourceLineNo">26946</span>                                                        ox = (int) toLong(Math.log1p(ix));<a name="line.26946"></a>
+<span class="sourceLineNo">26947</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.26947"></a>
+<span class="sourceLineNo">26948</span>                                                }<a name="line.26948"></a>
+<span class="sourceLineNo">26949</span>                                        }<a name="line.26949"></a>
+<span class="sourceLineNo">26950</span>                                }<a name="line.26950"></a>
+<span class="sourceLineNo">26951</span>                        }<a name="line.26951"></a>
+<span class="sourceLineNo">26952</span>                        break;<a name="line.26952"></a>
+<span class="sourceLineNo">26953</span>                case Dataset.FLOAT32:<a name="line.26953"></a>
+<span class="sourceLineNo">26954</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.26954"></a>
+<span class="sourceLineNo">26955</span>                        if (it.isOutputDouble()) {<a name="line.26955"></a>
+<span class="sourceLineNo">26956</span>                                while (it.hasNext()) {<a name="line.26956"></a>
+<span class="sourceLineNo">26957</span>                                        final double ix = it.aDouble;<a name="line.26957"></a>
+<span class="sourceLineNo">26958</span>                                        float ox;<a name="line.26958"></a>
+<span class="sourceLineNo">26959</span>                                        ox = (float) (Math.log1p(ix));<a name="line.26959"></a>
+<span class="sourceLineNo">26960</span>                                        of32data[it.oIndex] = ox;<a name="line.26960"></a>
+<span class="sourceLineNo">26961</span>                                }<a name="line.26961"></a>
+<span class="sourceLineNo">26962</span>                        } else {<a name="line.26962"></a>
+<span class="sourceLineNo">26963</span>                                while (it.hasNext()) {<a name="line.26963"></a>
+<span class="sourceLineNo">26964</span>                                        final long ix = it.aLong;<a name="line.26964"></a>
+<span class="sourceLineNo">26965</span>                                        float ox;<a name="line.26965"></a>
+<span class="sourceLineNo">26966</span>                                        ox = (float) (Math.log1p(ix));<a name="line.26966"></a>
+<span class="sourceLineNo">26967</span>                                        of32data[it.oIndex] = ox;<a name="line.26967"></a>
+<span class="sourceLineNo">26968</span>                                }<a name="line.26968"></a>
+<span class="sourceLineNo">26969</span>                        }<a name="line.26969"></a>
+<span class="sourceLineNo">26970</span>                        break;<a name="line.26970"></a>
+<span class="sourceLineNo">26971</span>                case Dataset.FLOAT64:<a name="line.26971"></a>
+<span class="sourceLineNo">26972</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.26972"></a>
+<span class="sourceLineNo">26973</span>                        if (it.isOutputDouble()) {<a name="line.26973"></a>
+<span class="sourceLineNo">26974</span>                                while (it.hasNext()) {<a name="line.26974"></a>
+<span class="sourceLineNo">26975</span>                                        final double ix = it.aDouble;<a name="line.26975"></a>
+<span class="sourceLineNo">26976</span>                                        double ox;<a name="line.26976"></a>
+<span class="sourceLineNo">26977</span>                                        ox = (Math.log1p(ix));<a name="line.26977"></a>
+<span class="sourceLineNo">26978</span>                                        of64data[it.oIndex] = ox;<a name="line.26978"></a>
+<span class="sourceLineNo">26979</span>                                }<a name="line.26979"></a>
+<span class="sourceLineNo">26980</span>                        } else {<a name="line.26980"></a>
+<span class="sourceLineNo">26981</span>                                while (it.hasNext()) {<a name="line.26981"></a>
+<span class="sourceLineNo">26982</span>                                        final long ix = it.aLong;<a name="line.26982"></a>
+<span class="sourceLineNo">26983</span>                                        double ox;<a name="line.26983"></a>
+<span class="sourceLineNo">26984</span>                                        ox = (Math.log1p(ix));<a name="line.26984"></a>
+<span class="sourceLineNo">26985</span>                                        of64data[it.oIndex] = ox;<a name="line.26985"></a>
+<span class="sourceLineNo">26986</span>                                }<a name="line.26986"></a>
+<span class="sourceLineNo">26987</span>                        }<a name="line.26987"></a>
+<span class="sourceLineNo">26988</span>                        break;<a name="line.26988"></a>
+<span class="sourceLineNo">26989</span>                case Dataset.ARRAYFLOAT32:<a name="line.26989"></a>
+<span class="sourceLineNo">26990</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.26990"></a>
+<span class="sourceLineNo">26991</span>                        if (is == 1) {<a name="line.26991"></a>
+<span class="sourceLineNo">26992</span>                                if (it.isOutputDouble()) {<a name="line.26992"></a>
+<span class="sourceLineNo">26993</span>                                        while (it.hasNext()) {<a name="line.26993"></a>
+<span class="sourceLineNo">26994</span>                                                final double ix = it.aDouble;<a name="line.26994"></a>
+<span class="sourceLineNo">26995</span>                                                float ox;<a name="line.26995"></a>
+<span class="sourceLineNo">26996</span>                                                ox = (float) (Math.log1p(ix));<a name="line.26996"></a>
+<span class="sourceLineNo">26997</span>                                                oaf32data[it.oIndex] = ox;<a name="line.26997"></a>
+<span class="sourceLineNo">26998</span>                                        }<a name="line.26998"></a>
+<span class="sourceLineNo">26999</span>                                } else {<a name="line.26999"></a>
+<span class="sourceLineNo">27000</span>                                        while (it.hasNext()) {<a name="line.27000"></a>
+<span class="sourceLineNo">27001</span>                                                final long ix = it.aLong;<a name="line.27001"></a>
+<span class="sourceLineNo">27002</span>                                                float ox;<a name="line.27002"></a>
+<span class="sourceLineNo">27003</span>                                                ox = (float) (Math.log1p(ix));<a name="line.27003"></a>
+<span class="sourceLineNo">27004</span>                                                oaf32data[it.oIndex] = ox;<a name="line.27004"></a>
+<span class="sourceLineNo">27005</span>                                        }<a name="line.27005"></a>
+<span class="sourceLineNo">27006</span>                                }<a name="line.27006"></a>
+<span class="sourceLineNo">27007</span>                        } else if (as == 1) {<a name="line.27007"></a>
+<span class="sourceLineNo">27008</span>                                if (it.isOutputDouble()) {<a name="line.27008"></a>
+<span class="sourceLineNo">27009</span>                                        while (it.hasNext()) {<a name="line.27009"></a>
+<span class="sourceLineNo">27010</span>                                                final double ix = it.aDouble;<a name="line.27010"></a>
+<span class="sourceLineNo">27011</span>                                                float ox;<a name="line.27011"></a>
+<span class="sourceLineNo">27012</span>                                                ox = (float) (Math.log1p(ix));<a name="line.27012"></a>
+<span class="sourceLineNo">27013</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27013"></a>
+<span class="sourceLineNo">27014</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.27014"></a>
+<span class="sourceLineNo">27015</span>                                                }<a name="line.27015"></a>
+<span class="sourceLineNo">27016</span>                                        }<a name="line.27016"></a>
+<span class="sourceLineNo">27017</span>                                } else {<a name="line.27017"></a>
+<span class="sourceLineNo">27018</span>                                        while (it.hasNext()) {<a name="line.27018"></a>
+<span class="sourceLineNo">27019</span>                                                final long ix = it.aLong;<a name="line.27019"></a>
+<span class="sourceLineNo">27020</span>                                                float ox;<a name="line.27020"></a>
+<span class="sourceLineNo">27021</span>                                                ox = (float) (Math.log1p(ix));<a name="line.27021"></a>
+<span class="sourceLineNo">27022</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27022"></a>
+<span class="sourceLineNo">27023</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.27023"></a>
+<span class="sourceLineNo">27024</span>                                                }<a name="line.27024"></a>
+<span class="sourceLineNo">27025</span>                                        }<a name="line.27025"></a>
+<span class="sourceLineNo">27026</span>                                }<a name="line.27026"></a>
+<span class="sourceLineNo">27027</span>                        } else {<a name="line.27027"></a>
+<span class="sourceLineNo">27028</span>                                if (it.isOutputDouble()) {<a name="line.27028"></a>
+<span class="sourceLineNo">27029</span>                                        while (it.hasNext()) {<a name="line.27029"></a>
+<span class="sourceLineNo">27030</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27030"></a>
+<span class="sourceLineNo">27031</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.27031"></a>
+<span class="sourceLineNo">27032</span>                                                        float ox;<a name="line.27032"></a>
+<span class="sourceLineNo">27033</span>                                                        ox = (float) (Math.log1p(ix));<a name="line.27033"></a>
+<span class="sourceLineNo">27034</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.27034"></a>
+<span class="sourceLineNo">27035</span>                                                }<a name="line.27035"></a>
+<span class="sourceLineNo">27036</span>                                        }<a name="line.27036"></a>
+<span class="sourceLineNo">27037</span>                                } else {<a name="line.27037"></a>
+<span class="sourceLineNo">27038</span>                                        while (it.hasNext()) {<a name="line.27038"></a>
+<span class="sourceLineNo">27039</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27039"></a>
+<span class="sourceLineNo">27040</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.27040"></a>
+<span class="sourceLineNo">27041</span>                                                        float ox;<a name="line.27041"></a>
+<span class="sourceLineNo">27042</span>                                                        ox = (float) (Math.log1p(ix));<a name="line.27042"></a>
+<span class="sourceLineNo">27043</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.27043"></a>
+<span class="sourceLineNo">27044</span>                                                }<a name="line.27044"></a>
+<span class="sourceLineNo">27045</span>                                        }<a name="line.27045"></a>
+<span class="sourceLineNo">27046</span>                                }<a name="line.27046"></a>
+<span class="sourceLineNo">27047</span>                        }<a name="line.27047"></a>
+<span class="sourceLineNo">27048</span>                        break;<a name="line.27048"></a>
+<span class="sourceLineNo">27049</span>                case Dataset.ARRAYFLOAT64:<a name="line.27049"></a>
+<span class="sourceLineNo">27050</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.27050"></a>
+<span class="sourceLineNo">27051</span>                        if (is == 1) {<a name="line.27051"></a>
+<span class="sourceLineNo">27052</span>                                if (it.isOutputDouble()) {<a name="line.27052"></a>
+<span class="sourceLineNo">27053</span>                                        while (it.hasNext()) {<a name="line.27053"></a>
+<span class="sourceLineNo">27054</span>                                                final double ix = it.aDouble;<a name="line.27054"></a>
+<span class="sourceLineNo">27055</span>                                                double ox;<a name="line.27055"></a>
+<span class="sourceLineNo">27056</span>                                                ox = (Math.log1p(ix));<a name="line.27056"></a>
+<span class="sourceLineNo">27057</span>                                                oaf64data[it.oIndex] = ox;<a name="line.27057"></a>
+<span class="sourceLineNo">27058</span>                                        }<a name="line.27058"></a>
+<span class="sourceLineNo">27059</span>                                } else {<a name="line.27059"></a>
+<span class="sourceLineNo">27060</span>                                        while (it.hasNext()) {<a name="line.27060"></a>
+<span class="sourceLineNo">27061</span>                                                final long ix = it.aLong;<a name="line.27061"></a>
+<span class="sourceLineNo">27062</span>                                                double ox;<a name="line.27062"></a>
+<span class="sourceLineNo">27063</span>                                                ox = (Math.log1p(ix));<a name="line.27063"></a>
+<span class="sourceLineNo">27064</span>                                                oaf64data[it.oIndex] = ox;<a name="line.27064"></a>
+<span class="sourceLineNo">27065</span>                                        }<a name="line.27065"></a>
+<span class="sourceLineNo">27066</span>                                }<a name="line.27066"></a>
+<span class="sourceLineNo">27067</span>                        } else if (as == 1) {<a name="line.27067"></a>
+<span class="sourceLineNo">27068</span>                                if (it.isOutputDouble()) {<a name="line.27068"></a>
+<span class="sourceLineNo">27069</span>                                        while (it.hasNext()) {<a name="line.27069"></a>
+<span class="sourceLineNo">27070</span>                                                final double ix = it.aDouble;<a name="line.27070"></a>
+<span class="sourceLineNo">27071</span>                                                double ox;<a name="line.27071"></a>
+<span class="sourceLineNo">27072</span>                                                ox = (Math.log1p(ix));<a name="line.27072"></a>
+<span class="sourceLineNo">27073</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27073"></a>
+<span class="sourceLineNo">27074</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.27074"></a>
+<span class="sourceLineNo">27075</span>                                                }<a name="line.27075"></a>
+<span class="sourceLineNo">27076</span>                                        }<a name="line.27076"></a>
+<span class="sourceLineNo">27077</span>                                } else {<a name="line.27077"></a>
+<span class="sourceLineNo">27078</span>                                        while (it.hasNext()) {<a name="line.27078"></a>
+<span class="sourceLineNo">27079</span>                                                final long ix = it.aLong;<a name="line.27079"></a>
+<span class="sourceLineNo">27080</span>                                                double ox;<a name="line.27080"></a>
+<span class="sourceLineNo">27081</span>                                                ox = (Math.log1p(ix));<a name="line.27081"></a>
+<span class="sourceLineNo">27082</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27082"></a>
+<span class="sourceLineNo">27083</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.27083"></a>
+<span class="sourceLineNo">27084</span>                                                }<a name="line.27084"></a>
+<span class="sourceLineNo">27085</span>                                        }<a name="line.27085"></a>
+<span class="sourceLineNo">27086</span>                                }<a name="line.27086"></a>
+<span class="sourceLineNo">27087</span>                        } else {<a name="line.27087"></a>
+<span class="sourceLineNo">27088</span>                                if (it.isOutputDouble()) {<a name="line.27088"></a>
+<span class="sourceLineNo">27089</span>                                        while (it.hasNext()) {<a name="line.27089"></a>
+<span class="sourceLineNo">27090</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27090"></a>
+<span class="sourceLineNo">27091</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.27091"></a>
+<span class="sourceLineNo">27092</span>                                                        double ox;<a name="line.27092"></a>
+<span class="sourceLineNo">27093</span>                                                        ox = (Math.log1p(ix));<a name="line.27093"></a>
+<span class="sourceLineNo">27094</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.27094"></a>
+<span class="sourceLineNo">27095</span>                                                }<a name="line.27095"></a>
+<span class="sourceLineNo">27096</span>                                        }<a name="line.27096"></a>
+<span class="sourceLineNo">27097</span>                                } else {<a name="line.27097"></a>
+<span class="sourceLineNo">27098</span>                                        while (it.hasNext()) {<a name="line.27098"></a>
+<span class="sourceLineNo">27099</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27099"></a>
+<span class="sourceLineNo">27100</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.27100"></a>
+<span class="sourceLineNo">27101</span>                                                        double ox;<a name="line.27101"></a>
+<span class="sourceLineNo">27102</span>                                                        ox = (Math.log1p(ix));<a name="line.27102"></a>
+<span class="sourceLineNo">27103</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.27103"></a>
+<span class="sourceLineNo">27104</span>                                                }<a name="line.27104"></a>
+<span class="sourceLineNo">27105</span>                                        }<a name="line.27105"></a>
+<span class="sourceLineNo">27106</span>                                }<a name="line.27106"></a>
+<span class="sourceLineNo">27107</span>                        }<a name="line.27107"></a>
+<span class="sourceLineNo">27108</span>                        break;<a name="line.27108"></a>
+<span class="sourceLineNo">27109</span>                case Dataset.COMPLEX64:<a name="line.27109"></a>
+<span class="sourceLineNo">27110</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.27110"></a>
+<span class="sourceLineNo">27111</span>                        if (!da.isComplex()) {<a name="line.27111"></a>
+<span class="sourceLineNo">27112</span>                                if (it.isOutputDouble()) {<a name="line.27112"></a>
+<span class="sourceLineNo">27113</span>                                        final double iy = 0;<a name="line.27113"></a>
+<span class="sourceLineNo">27114</span>                                        while (it.hasNext()) {<a name="line.27114"></a>
+<span class="sourceLineNo">27115</span>                                                final double ix = it.aDouble;<a name="line.27115"></a>
+<span class="sourceLineNo">27116</span>                                                float ox;<a name="line.27116"></a>
+<span class="sourceLineNo">27117</span>                                                float oy;<a name="line.27117"></a>
+<span class="sourceLineNo">27118</span>                                                ox = (float) (0.5*Math.log1p(ix*ix + 2.*ix + iy*iy));<a name="line.27118"></a>
+<span class="sourceLineNo">27119</span>                                                oy = (float) (Math.atan2(iy, ix+1));<a name="line.27119"></a>
+<span class="sourceLineNo">27120</span>                                                oc64data[it.oIndex] = ox;<a name="line.27120"></a>
+<span class="sourceLineNo">27121</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.27121"></a>
+<span class="sourceLineNo">27122</span>                                        }<a name="line.27122"></a>
+<span class="sourceLineNo">27123</span>                                } else {<a name="line.27123"></a>
+<span class="sourceLineNo">27124</span>                                        final long iy = 0;<a name="line.27124"></a>
+<span class="sourceLineNo">27125</span>                                        while (it.hasNext()) {<a name="line.27125"></a>
+<span class="sourceLineNo">27126</span>                                                final long ix = it.aLong;<a name="line.27126"></a>
+<span class="sourceLineNo">27127</span>                                                float ox;<a name="line.27127"></a>
+<span class="sourceLineNo">27128</span>                                                float oy;<a name="line.27128"></a>
+<span class="sourceLineNo">27129</span>                                                ox = (float) toLong(0.5*Math.log1p(ix*ix + 2.*ix + iy*iy));<a name="line.27129"></a>
+<span class="sourceLineNo">27130</span>                                                oy = (float) toLong(Math.atan2(iy, ix+1));<a name="line.27130"></a>
+<span class="sourceLineNo">27131</span>                                                oc64data[it.oIndex] = ox;<a name="line.27131"></a>
+<span class="sourceLineNo">27132</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.27132"></a>
+<span class="sourceLineNo">27133</span>                                        }<a name="line.27133"></a>
+<span class="sourceLineNo">27134</span>                                }<a name="line.27134"></a>
+<span class="sourceLineNo">27135</span>                        } else {<a name="line.27135"></a>
+<span class="sourceLineNo">27136</span>                                while (it.hasNext()) {<a name="line.27136"></a>
+<span class="sourceLineNo">27137</span>                                        final double ix = it.aDouble;<a name="line.27137"></a>
+<span class="sourceLineNo">27138</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.27138"></a>
+<span class="sourceLineNo">27139</span>                                        float ox;<a name="line.27139"></a>
+<span class="sourceLineNo">27140</span>                                        float oy;<a name="line.27140"></a>
+<span class="sourceLineNo">27141</span>                                        ox = (float) (0.5*Math.log1p(ix*ix + 2.*ix + iy*iy));<a name="line.27141"></a>
+<span class="sourceLineNo">27142</span>                                        oy = (float) (Math.atan2(iy, ix+1));<a name="line.27142"></a>
+<span class="sourceLineNo">27143</span>                                        oc64data[it.oIndex] = ox;<a name="line.27143"></a>
+<span class="sourceLineNo">27144</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.27144"></a>
+<span class="sourceLineNo">27145</span>                                }<a name="line.27145"></a>
+<span class="sourceLineNo">27146</span>                        }<a name="line.27146"></a>
+<span class="sourceLineNo">27147</span>                        break;<a name="line.27147"></a>
+<span class="sourceLineNo">27148</span>                case Dataset.COMPLEX128:<a name="line.27148"></a>
+<span class="sourceLineNo">27149</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.27149"></a>
+<span class="sourceLineNo">27150</span>                        if (!da.isComplex()) {<a name="line.27150"></a>
+<span class="sourceLineNo">27151</span>                                if (it.isOutputDouble()) {<a name="line.27151"></a>
+<span class="sourceLineNo">27152</span>                                        final double iy = 0;<a name="line.27152"></a>
+<span class="sourceLineNo">27153</span>                                        while (it.hasNext()) {<a name="line.27153"></a>
+<span class="sourceLineNo">27154</span>                                                final double ix = it.aDouble;<a name="line.27154"></a>
+<span class="sourceLineNo">27155</span>                                                double ox;<a name="line.27155"></a>
+<span class="sourceLineNo">27156</span>                                                double oy;<a name="line.27156"></a>
+<span class="sourceLineNo">27157</span>                                                ox = (0.5*Math.log1p(ix*ix + 2.*ix + iy*iy));<a name="line.27157"></a>
+<span class="sourceLineNo">27158</span>                                                oy = (Math.atan2(iy, ix+1));<a name="line.27158"></a>
+<span class="sourceLineNo">27159</span>                                                oc128data[it.oIndex] = ox;<a name="line.27159"></a>
+<span class="sourceLineNo">27160</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.27160"></a>
+<span class="sourceLineNo">27161</span>                                        }<a name="line.27161"></a>
+<span class="sourceLineNo">27162</span>                                } else {<a name="line.27162"></a>
+<span class="sourceLineNo">27163</span>                                        final long iy = 0;<a name="line.27163"></a>
+<span class="sourceLineNo">27164</span>                                        while (it.hasNext()) {<a name="line.27164"></a>
+<span class="sourceLineNo">27165</span>                                                final long ix = it.aLong;<a name="line.27165"></a>
+<span class="sourceLineNo">27166</span>                                                double ox;<a name="line.27166"></a>
+<span class="sourceLineNo">27167</span>                                                double oy;<a name="line.27167"></a>
+<span class="sourceLineNo">27168</span>                                                ox = (double) (0.5*Math.log1p(ix*ix + 2.*ix + iy*iy));<a name="line.27168"></a>
+<span class="sourceLineNo">27169</span>                                                oy = (double) (Math.atan2(iy, ix+1));<a name="line.27169"></a>
+<span class="sourceLineNo">27170</span>                                                oc128data[it.oIndex] = ox;<a name="line.27170"></a>
+<span class="sourceLineNo">27171</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.27171"></a>
+<span class="sourceLineNo">27172</span>                                        }<a name="line.27172"></a>
+<span class="sourceLineNo">27173</span>                                }<a name="line.27173"></a>
+<span class="sourceLineNo">27174</span>                        } else {<a name="line.27174"></a>
+<span class="sourceLineNo">27175</span>                                while (it.hasNext()) {<a name="line.27175"></a>
+<span class="sourceLineNo">27176</span>                                        final double ix = it.aDouble;<a name="line.27176"></a>
+<span class="sourceLineNo">27177</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.27177"></a>
+<span class="sourceLineNo">27178</span>                                        double ox;<a name="line.27178"></a>
+<span class="sourceLineNo">27179</span>                                        double oy;<a name="line.27179"></a>
+<span class="sourceLineNo">27180</span>                                        ox = (0.5*Math.log1p(ix*ix + 2.*ix + iy*iy));<a name="line.27180"></a>
+<span class="sourceLineNo">27181</span>                                        oy = (Math.atan2(iy, ix+1));<a name="line.27181"></a>
+<span class="sourceLineNo">27182</span>                                        oc128data[it.oIndex] = ox;<a name="line.27182"></a>
+<span class="sourceLineNo">27183</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.27183"></a>
+<span class="sourceLineNo">27184</span>                                }<a name="line.27184"></a>
+<span class="sourceLineNo">27185</span>                        }<a name="line.27185"></a>
+<span class="sourceLineNo">27186</span>                        break;<a name="line.27186"></a>
+<span class="sourceLineNo">27187</span>                default:<a name="line.27187"></a>
+<span class="sourceLineNo">27188</span>                        throw new IllegalArgumentException("log1p supports integer, compound integer, real, compound real, complex datasets only");<a name="line.27188"></a>
+<span class="sourceLineNo">27189</span>                }<a name="line.27189"></a>
+<span class="sourceLineNo">27190</span><a name="line.27190"></a>
+<span class="sourceLineNo">27191</span>                addFunctionName(result, "log1p");<a name="line.27191"></a>
+<span class="sourceLineNo">27192</span>                return result;<a name="line.27192"></a>
+<span class="sourceLineNo">27193</span>        }<a name="line.27193"></a>
+<span class="sourceLineNo">27194</span><a name="line.27194"></a>
+<span class="sourceLineNo">27195</span>        /**<a name="line.27195"></a>
+<span class="sourceLineNo">27196</span>         * exp - evaluate the exponential function on each element of the dataset<a name="line.27196"></a>
+<span class="sourceLineNo">27197</span>         * @param a<a name="line.27197"></a>
+<span class="sourceLineNo">27198</span>         * @return dataset<a name="line.27198"></a>
+<span class="sourceLineNo">27199</span>         */<a name="line.27199"></a>
+<span class="sourceLineNo">27200</span>        public static Dataset exp(final Object a) {<a name="line.27200"></a>
+<span class="sourceLineNo">27201</span>                return exp(a, null);<a name="line.27201"></a>
+<span class="sourceLineNo">27202</span>        }<a name="line.27202"></a>
+<span class="sourceLineNo">27203</span><a name="line.27203"></a>
+<span class="sourceLineNo">27204</span>        /**<a name="line.27204"></a>
+<span class="sourceLineNo">27205</span>         * exp - evaluate the exponential function on each element of the dataset<a name="line.27205"></a>
+<span class="sourceLineNo">27206</span>         * @param a<a name="line.27206"></a>
+<span class="sourceLineNo">27207</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.27207"></a>
+<span class="sourceLineNo">27208</span>         * @return dataset<a name="line.27208"></a>
+<span class="sourceLineNo">27209</span>         */<a name="line.27209"></a>
+<span class="sourceLineNo">27210</span>        public static Dataset exp(final Object a, final Dataset o) {<a name="line.27210"></a>
+<span class="sourceLineNo">27211</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.27211"></a>
+<span class="sourceLineNo">27212</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.27212"></a>
+<span class="sourceLineNo">27213</span>                final Dataset result = it.getOutput();<a name="line.27213"></a>
+<span class="sourceLineNo">27214</span>                if (!result.isComplex()) {<a name="line.27214"></a>
+<span class="sourceLineNo">27215</span>                        if (da.isComplex()) {<a name="line.27215"></a>
+<span class="sourceLineNo">27216</span>                                da = da.getRealView();<a name="line.27216"></a>
+<span class="sourceLineNo">27217</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.27217"></a>
+<span class="sourceLineNo">27218</span>                        }<a name="line.27218"></a>
+<span class="sourceLineNo">27219</span>                }<a name="line.27219"></a>
+<span class="sourceLineNo">27220</span>                final int is = result.getElementsPerItem();<a name="line.27220"></a>
+<span class="sourceLineNo">27221</span>                final int as = da.getElementsPerItem();<a name="line.27221"></a>
+<span class="sourceLineNo">27222</span>                final int dt = result.getDType();<a name="line.27222"></a>
+<span class="sourceLineNo">27223</span><a name="line.27223"></a>
+<span class="sourceLineNo">27224</span>                switch(dt) {<a name="line.27224"></a>
+<span class="sourceLineNo">27225</span>                case Dataset.INT8:<a name="line.27225"></a>
+<span class="sourceLineNo">27226</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.27226"></a>
+<span class="sourceLineNo">27227</span>                        if (it.isOutputDouble()) {<a name="line.27227"></a>
+<span class="sourceLineNo">27228</span>                                while (it.hasNext()) {<a name="line.27228"></a>
+<span class="sourceLineNo">27229</span>                                        final double ix = it.aDouble;<a name="line.27229"></a>
+<span class="sourceLineNo">27230</span>                                        byte ox;<a name="line.27230"></a>
+<span class="sourceLineNo">27231</span>                                        ox = (byte) toLong(Math.exp(ix));<a name="line.27231"></a>
+<span class="sourceLineNo">27232</span>                                        oi8data[it.oIndex] = ox;<a name="line.27232"></a>
+<span class="sourceLineNo">27233</span>                                }<a name="line.27233"></a>
+<span class="sourceLineNo">27234</span>                        } else {<a name="line.27234"></a>
+<span class="sourceLineNo">27235</span>                                while (it.hasNext()) {<a name="line.27235"></a>
+<span class="sourceLineNo">27236</span>                                        final long ix = it.aLong;<a name="line.27236"></a>
+<span class="sourceLineNo">27237</span>                                        byte ox;<a name="line.27237"></a>
+<span class="sourceLineNo">27238</span>                                        ox = (byte) toLong(Math.exp(ix));<a name="line.27238"></a>
+<span class="sourceLineNo">27239</span>                                        oi8data[it.oIndex] = ox;<a name="line.27239"></a>
+<span class="sourceLineNo">27240</span>                                }<a name="line.27240"></a>
+<span class="sourceLineNo">27241</span>                        }<a name="line.27241"></a>
+<span class="sourceLineNo">27242</span>                        break;<a name="line.27242"></a>
+<span class="sourceLineNo">27243</span>                case Dataset.INT16:<a name="line.27243"></a>
+<span class="sourceLineNo">27244</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.27244"></a>
+<span class="sourceLineNo">27245</span>                        if (it.isOutputDouble()) {<a name="line.27245"></a>
+<span class="sourceLineNo">27246</span>                                while (it.hasNext()) {<a name="line.27246"></a>
+<span class="sourceLineNo">27247</span>                                        final double ix = it.aDouble;<a name="line.27247"></a>
+<span class="sourceLineNo">27248</span>                                        short ox;<a name="line.27248"></a>
+<span class="sourceLineNo">27249</span>                                        ox = (short) toLong(Math.exp(ix));<a name="line.27249"></a>
+<span class="sourceLineNo">27250</span>                                        oi16data[it.oIndex] = ox;<a name="line.27250"></a>
+<span class="sourceLineNo">27251</span>                                }<a name="line.27251"></a>
+<span class="sourceLineNo">27252</span>                        } else {<a name="line.27252"></a>
+<span class="sourceLineNo">27253</span>                                while (it.hasNext()) {<a name="line.27253"></a>
+<span class="sourceLineNo">27254</span>                                        final long ix = it.aLong;<a name="line.27254"></a>
+<span class="sourceLineNo">27255</span>                                        short ox;<a name="line.27255"></a>
+<span class="sourceLineNo">27256</span>                                        ox = (short) toLong(Math.exp(ix));<a name="line.27256"></a>
+<span class="sourceLineNo">27257</span>                                        oi16data[it.oIndex] = ox;<a name="line.27257"></a>
+<span class="sourceLineNo">27258</span>                                }<a name="line.27258"></a>
+<span class="sourceLineNo">27259</span>                        }<a name="line.27259"></a>
+<span class="sourceLineNo">27260</span>                        break;<a name="line.27260"></a>
+<span class="sourceLineNo">27261</span>                case Dataset.INT64:<a name="line.27261"></a>
+<span class="sourceLineNo">27262</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.27262"></a>
+<span class="sourceLineNo">27263</span>                        if (it.isOutputDouble()) {<a name="line.27263"></a>
+<span class="sourceLineNo">27264</span>                                while (it.hasNext()) {<a name="line.27264"></a>
+<span class="sourceLineNo">27265</span>                                        final double ix = it.aDouble;<a name="line.27265"></a>
+<span class="sourceLineNo">27266</span>                                        long ox;<a name="line.27266"></a>
+<span class="sourceLineNo">27267</span>                                        ox = toLong(Math.exp(ix));<a name="line.27267"></a>
+<span class="sourceLineNo">27268</span>                                        oi64data[it.oIndex] = ox;<a name="line.27268"></a>
+<span class="sourceLineNo">27269</span>                                }<a name="line.27269"></a>
+<span class="sourceLineNo">27270</span>                        } else {<a name="line.27270"></a>
+<span class="sourceLineNo">27271</span>                                while (it.hasNext()) {<a name="line.27271"></a>
+<span class="sourceLineNo">27272</span>                                        final long ix = it.aLong;<a name="line.27272"></a>
+<span class="sourceLineNo">27273</span>                                        long ox;<a name="line.27273"></a>
+<span class="sourceLineNo">27274</span>                                        ox = toLong(Math.exp(ix));<a name="line.27274"></a>
+<span class="sourceLineNo">27275</span>                                        oi64data[it.oIndex] = ox;<a name="line.27275"></a>
+<span class="sourceLineNo">27276</span>                                }<a name="line.27276"></a>
+<span class="sourceLineNo">27277</span>                        }<a name="line.27277"></a>
+<span class="sourceLineNo">27278</span>                        break;<a name="line.27278"></a>
+<span class="sourceLineNo">27279</span>                case Dataset.INT32:<a name="line.27279"></a>
+<span class="sourceLineNo">27280</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.27280"></a>
+<span class="sourceLineNo">27281</span>                        if (it.isOutputDouble()) {<a name="line.27281"></a>
+<span class="sourceLineNo">27282</span>                                while (it.hasNext()) {<a name="line.27282"></a>
+<span class="sourceLineNo">27283</span>                                        final double ix = it.aDouble;<a name="line.27283"></a>
+<span class="sourceLineNo">27284</span>                                        int ox;<a name="line.27284"></a>
+<span class="sourceLineNo">27285</span>                                        ox = (int) toLong(Math.exp(ix));<a name="line.27285"></a>
+<span class="sourceLineNo">27286</span>                                        oi32data[it.oIndex] = ox;<a name="line.27286"></a>
+<span class="sourceLineNo">27287</span>                                }<a name="line.27287"></a>
+<span class="sourceLineNo">27288</span>                        } else {<a name="line.27288"></a>
+<span class="sourceLineNo">27289</span>                                while (it.hasNext()) {<a name="line.27289"></a>
+<span class="sourceLineNo">27290</span>                                        final long ix = it.aLong;<a name="line.27290"></a>
+<span class="sourceLineNo">27291</span>                                        int ox;<a name="line.27291"></a>
+<span class="sourceLineNo">27292</span>                                        ox = (int) toLong(Math.exp(ix));<a name="line.27292"></a>
+<span class="sourceLineNo">27293</span>                                        oi32data[it.oIndex] = ox;<a name="line.27293"></a>
+<span class="sourceLineNo">27294</span>                                }<a name="line.27294"></a>
+<span class="sourceLineNo">27295</span>                        }<a name="line.27295"></a>
+<span class="sourceLineNo">27296</span>                        break;<a name="line.27296"></a>
+<span class="sourceLineNo">27297</span>                case Dataset.ARRAYINT8:<a name="line.27297"></a>
+<span class="sourceLineNo">27298</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.27298"></a>
+<span class="sourceLineNo">27299</span>                        if (is == 1) {<a name="line.27299"></a>
+<span class="sourceLineNo">27300</span>                                if (it.isOutputDouble()) {<a name="line.27300"></a>
+<span class="sourceLineNo">27301</span>                                        while (it.hasNext()) {<a name="line.27301"></a>
+<span class="sourceLineNo">27302</span>                                                final double ix = it.aDouble;<a name="line.27302"></a>
+<span class="sourceLineNo">27303</span>                                                byte ox;<a name="line.27303"></a>
+<span class="sourceLineNo">27304</span>                                                ox = (byte) toLong(Math.exp(ix));<a name="line.27304"></a>
+<span class="sourceLineNo">27305</span>                                                oai8data[it.oIndex] = ox;<a name="line.27305"></a>
+<span class="sourceLineNo">27306</span>                                        }<a name="line.27306"></a>
+<span class="sourceLineNo">27307</span>                                } else {<a name="line.27307"></a>
+<span class="sourceLineNo">27308</span>                                        while (it.hasNext()) {<a name="line.27308"></a>
+<span class="sourceLineNo">27309</span>                                                final long ix = it.aLong;<a name="line.27309"></a>
+<span class="sourceLineNo">27310</span>                                                byte ox;<a name="line.27310"></a>
+<span class="sourceLineNo">27311</span>                                                ox = (byte) toLong(Math.exp(ix));<a name="line.27311"></a>
+<span class="sourceLineNo">27312</span>                                                oai8data[it.oIndex] = ox;<a name="line.27312"></a>
+<span class="sourceLineNo">27313</span>                                        }<a name="line.27313"></a>
+<span class="sourceLineNo">27314</span>                                }<a name="line.27314"></a>
+<span class="sourceLineNo">27315</span>                        } else if (as == 1) {<a name="line.27315"></a>
+<span class="sourceLineNo">27316</span>                                if (it.isOutputDouble()) {<a name="line.27316"></a>
+<span class="sourceLineNo">27317</span>                                        while (it.hasNext()) {<a name="line.27317"></a>
+<span class="sourceLineNo">27318</span>                                                final double ix = it.aDouble;<a name="line.27318"></a>
+<span class="sourceLineNo">27319</span>                                                byte ox;<a name="line.27319"></a>
+<span class="sourceLineNo">27320</span>                                                ox = (byte) toLong(Math.exp(ix));<a name="line.27320"></a>
+<span class="sourceLineNo">27321</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27321"></a>
+<span class="sourceLineNo">27322</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.27322"></a>
+<span class="sourceLineNo">27323</span>                                                }<a name="line.27323"></a>
+<span class="sourceLineNo">27324</span>                                        }<a name="line.27324"></a>
+<span class="sourceLineNo">27325</span>                                } else {<a name="line.27325"></a>
+<span class="sourceLineNo">27326</span>                                        while (it.hasNext()) {<a name="line.27326"></a>
+<span class="sourceLineNo">27327</span>                                                final long ix = it.aLong;<a name="line.27327"></a>
+<span class="sourceLineNo">27328</span>                                                byte ox;<a name="line.27328"></a>
+<span class="sourceLineNo">27329</span>                                                ox = (byte) toLong(Math.exp(ix));<a name="line.27329"></a>
+<span class="sourceLineNo">27330</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27330"></a>
+<span class="sourceLineNo">27331</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.27331"></a>
+<span class="sourceLineNo">27332</span>                                                }<a name="line.27332"></a>
+<span class="sourceLineNo">27333</span>                                        }<a name="line.27333"></a>
+<span class="sourceLineNo">27334</span>                                }<a name="line.27334"></a>
+<span class="sourceLineNo">27335</span>                        } else {<a name="line.27335"></a>
+<span class="sourceLineNo">27336</span>                                if (it.isOutputDouble()) {<a name="line.27336"></a>
+<span class="sourceLineNo">27337</span>                                        while (it.hasNext()) {<a name="line.27337"></a>
+<span class="sourceLineNo">27338</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27338"></a>
+<span class="sourceLineNo">27339</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.27339"></a>
+<span class="sourceLineNo">27340</span>                                                        byte ox;<a name="line.27340"></a>
+<span class="sourceLineNo">27341</span>                                                        ox = (byte) toLong(Math.exp(ix));<a name="line.27341"></a>
+<span class="sourceLineNo">27342</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.27342"></a>
+<span class="sourceLineNo">27343</span>                                                }<a name="line.27343"></a>
+<span class="sourceLineNo">27344</span>                                        }<a name="line.27344"></a>
+<span class="sourceLineNo">27345</span>                                } else {<a name="line.27345"></a>
+<span class="sourceLineNo">27346</span>                                        while (it.hasNext()) {<a name="line.27346"></a>
+<span class="sourceLineNo">27347</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27347"></a>
+<span class="sourceLineNo">27348</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.27348"></a>
+<span class="sourceLineNo">27349</span>                                                        byte ox;<a name="line.27349"></a>
+<span class="sourceLineNo">27350</span>                                                        ox = (byte) toLong(Math.exp(ix));<a name="line.27350"></a>
+<span class="sourceLineNo">27351</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.27351"></a>
+<span class="sourceLineNo">27352</span>                                                }<a name="line.27352"></a>
+<span class="sourceLineNo">27353</span>                                        }<a name="line.27353"></a>
+<span class="sourceLineNo">27354</span>                                }<a name="line.27354"></a>
+<span class="sourceLineNo">27355</span>                        }<a name="line.27355"></a>
+<span class="sourceLineNo">27356</span>                        break;<a name="line.27356"></a>
+<span class="sourceLineNo">27357</span>                case Dataset.ARRAYINT16:<a name="line.27357"></a>
+<span class="sourceLineNo">27358</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.27358"></a>
+<span class="sourceLineNo">27359</span>                        if (is == 1) {<a name="line.27359"></a>
+<span class="sourceLineNo">27360</span>                                if (it.isOutputDouble()) {<a name="line.27360"></a>
+<span class="sourceLineNo">27361</span>                                        while (it.hasNext()) {<a name="line.27361"></a>
+<span class="sourceLineNo">27362</span>                                                final double ix = it.aDouble;<a name="line.27362"></a>
+<span class="sourceLineNo">27363</span>                                                short ox;<a name="line.27363"></a>
+<span class="sourceLineNo">27364</span>                                                ox = (short) toLong(Math.exp(ix));<a name="line.27364"></a>
+<span class="sourceLineNo">27365</span>                                                oai16data[it.oIndex] = ox;<a name="line.27365"></a>
+<span class="sourceLineNo">27366</span>                                        }<a name="line.27366"></a>
+<span class="sourceLineNo">27367</span>                                } else {<a name="line.27367"></a>
+<span class="sourceLineNo">27368</span>                                        while (it.hasNext()) {<a name="line.27368"></a>
+<span class="sourceLineNo">27369</span>                                                final long ix = it.aLong;<a name="line.27369"></a>
+<span class="sourceLineNo">27370</span>                                                short ox;<a name="line.27370"></a>
+<span class="sourceLineNo">27371</span>                                                ox = (short) toLong(Math.exp(ix));<a name="line.27371"></a>
+<span class="sourceLineNo">27372</span>                                                oai16data[it.oIndex] = ox;<a name="line.27372"></a>
+<span class="sourceLineNo">27373</span>                                        }<a name="line.27373"></a>
+<span class="sourceLineNo">27374</span>                                }<a name="line.27374"></a>
+<span class="sourceLineNo">27375</span>                        } else if (as == 1) {<a name="line.27375"></a>
+<span class="sourceLineNo">27376</span>                                if (it.isOutputDouble()) {<a name="line.27376"></a>
+<span class="sourceLineNo">27377</span>                                        while (it.hasNext()) {<a name="line.27377"></a>
+<span class="sourceLineNo">27378</span>                                                final double ix = it.aDouble;<a name="line.27378"></a>
+<span class="sourceLineNo">27379</span>                                                short ox;<a name="line.27379"></a>
+<span class="sourceLineNo">27380</span>                                                ox = (short) toLong(Math.exp(ix));<a name="line.27380"></a>
+<span class="sourceLineNo">27381</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27381"></a>
+<span class="sourceLineNo">27382</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.27382"></a>
+<span class="sourceLineNo">27383</span>                                                }<a name="line.27383"></a>
+<span class="sourceLineNo">27384</span>                                        }<a name="line.27384"></a>
+<span class="sourceLineNo">27385</span>                                } else {<a name="line.27385"></a>
+<span class="sourceLineNo">27386</span>                                        while (it.hasNext()) {<a name="line.27386"></a>
+<span class="sourceLineNo">27387</span>                                                final long ix = it.aLong;<a name="line.27387"></a>
+<span class="sourceLineNo">27388</span>                                                short ox;<a name="line.27388"></a>
+<span class="sourceLineNo">27389</span>                                                ox = (short) toLong(Math.exp(ix));<a name="line.27389"></a>
+<span class="sourceLineNo">27390</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27390"></a>
+<span class="sourceLineNo">27391</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.27391"></a>
+<span class="sourceLineNo">27392</span>                                                }<a name="line.27392"></a>
+<span class="sourceLineNo">27393</span>                                        }<a name="line.27393"></a>
+<span class="sourceLineNo">27394</span>                                }<a name="line.27394"></a>
+<span class="sourceLineNo">27395</span>                        } else {<a name="line.27395"></a>
+<span class="sourceLineNo">27396</span>                                if (it.isOutputDouble()) {<a name="line.27396"></a>
+<span class="sourceLineNo">27397</span>                                        while (it.hasNext()) {<a name="line.27397"></a>
+<span class="sourceLineNo">27398</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27398"></a>
+<span class="sourceLineNo">27399</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.27399"></a>
+<span class="sourceLineNo">27400</span>                                                        short ox;<a name="line.27400"></a>
+<span class="sourceLineNo">27401</span>                                                        ox = (short) toLong(Math.exp(ix));<a name="line.27401"></a>
+<span class="sourceLineNo">27402</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.27402"></a>
+<span class="sourceLineNo">27403</span>                                                }<a name="line.27403"></a>
+<span class="sourceLineNo">27404</span>                                        }<a name="line.27404"></a>
+<span class="sourceLineNo">27405</span>                                } else {<a name="line.27405"></a>
+<span class="sourceLineNo">27406</span>                                        while (it.hasNext()) {<a name="line.27406"></a>
+<span class="sourceLineNo">27407</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27407"></a>
+<span class="sourceLineNo">27408</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.27408"></a>
+<span class="sourceLineNo">27409</span>                                                        short ox;<a name="line.27409"></a>
+<span class="sourceLineNo">27410</span>                                                        ox = (short) toLong(Math.exp(ix));<a name="line.27410"></a>
+<span class="sourceLineNo">27411</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.27411"></a>
+<span class="sourceLineNo">27412</span>                                                }<a name="line.27412"></a>
+<span class="sourceLineNo">27413</span>                                        }<a name="line.27413"></a>
+<span class="sourceLineNo">27414</span>                                }<a name="line.27414"></a>
+<span class="sourceLineNo">27415</span>                        }<a name="line.27415"></a>
+<span class="sourceLineNo">27416</span>                        break;<a name="line.27416"></a>
+<span class="sourceLineNo">27417</span>                case Dataset.ARRAYINT64:<a name="line.27417"></a>
+<span class="sourceLineNo">27418</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.27418"></a>
+<span class="sourceLineNo">27419</span>                        if (is == 1) {<a name="line.27419"></a>
+<span class="sourceLineNo">27420</span>                                if (it.isOutputDouble()) {<a name="line.27420"></a>
+<span class="sourceLineNo">27421</span>                                        while (it.hasNext()) {<a name="line.27421"></a>
+<span class="sourceLineNo">27422</span>                                                final double ix = it.aDouble;<a name="line.27422"></a>
+<span class="sourceLineNo">27423</span>                                                long ox;<a name="line.27423"></a>
+<span class="sourceLineNo">27424</span>                                                ox = toLong(Math.exp(ix));<a name="line.27424"></a>
+<span class="sourceLineNo">27425</span>                                                oai64data[it.oIndex] = ox;<a name="line.27425"></a>
+<span class="sourceLineNo">27426</span>                                        }<a name="line.27426"></a>
+<span class="sourceLineNo">27427</span>                                } else {<a name="line.27427"></a>
+<span class="sourceLineNo">27428</span>                                        while (it.hasNext()) {<a name="line.27428"></a>
+<span class="sourceLineNo">27429</span>                                                final long ix = it.aLong;<a name="line.27429"></a>
+<span class="sourceLineNo">27430</span>                                                long ox;<a name="line.27430"></a>
+<span class="sourceLineNo">27431</span>                                                ox = toLong(Math.exp(ix));<a name="line.27431"></a>
+<span class="sourceLineNo">27432</span>                                                oai64data[it.oIndex] = ox;<a name="line.27432"></a>
+<span class="sourceLineNo">27433</span>                                        }<a name="line.27433"></a>
+<span class="sourceLineNo">27434</span>                                }<a name="line.27434"></a>
+<span class="sourceLineNo">27435</span>                        } else if (as == 1) {<a name="line.27435"></a>
+<span class="sourceLineNo">27436</span>                                if (it.isOutputDouble()) {<a name="line.27436"></a>
+<span class="sourceLineNo">27437</span>                                        while (it.hasNext()) {<a name="line.27437"></a>
+<span class="sourceLineNo">27438</span>                                                final double ix = it.aDouble;<a name="line.27438"></a>
+<span class="sourceLineNo">27439</span>                                                long ox;<a name="line.27439"></a>
+<span class="sourceLineNo">27440</span>                                                ox = toLong(Math.exp(ix));<a name="line.27440"></a>
+<span class="sourceLineNo">27441</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27441"></a>
+<span class="sourceLineNo">27442</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.27442"></a>
+<span class="sourceLineNo">27443</span>                                                }<a name="line.27443"></a>
+<span class="sourceLineNo">27444</span>                                        }<a name="line.27444"></a>
+<span class="sourceLineNo">27445</span>                                } else {<a name="line.27445"></a>
+<span class="sourceLineNo">27446</span>                                        while (it.hasNext()) {<a name="line.27446"></a>
+<span class="sourceLineNo">27447</span>                                                final long ix = it.aLong;<a name="line.27447"></a>
+<span class="sourceLineNo">27448</span>                                                long ox;<a name="line.27448"></a>
+<span class="sourceLineNo">27449</span>                                                ox = toLong(Math.exp(ix));<a name="line.27449"></a>
+<span class="sourceLineNo">27450</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27450"></a>
+<span class="sourceLineNo">27451</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.27451"></a>
+<span class="sourceLineNo">27452</span>                                                }<a name="line.27452"></a>
+<span class="sourceLineNo">27453</span>                                        }<a name="line.27453"></a>
+<span class="sourceLineNo">27454</span>                                }<a name="line.27454"></a>
+<span class="sourceLineNo">27455</span>                        } else {<a name="line.27455"></a>
+<span class="sourceLineNo">27456</span>                                if (it.isOutputDouble()) {<a name="line.27456"></a>
+<span class="sourceLineNo">27457</span>                                        while (it.hasNext()) {<a name="line.27457"></a>
+<span class="sourceLineNo">27458</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27458"></a>
+<span class="sourceLineNo">27459</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.27459"></a>
+<span class="sourceLineNo">27460</span>                                                        long ox;<a name="line.27460"></a>
+<span class="sourceLineNo">27461</span>                                                        ox = toLong(Math.exp(ix));<a name="line.27461"></a>
+<span class="sourceLineNo">27462</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.27462"></a>
+<span class="sourceLineNo">27463</span>                                                }<a name="line.27463"></a>
+<span class="sourceLineNo">27464</span>                                        }<a name="line.27464"></a>
+<span class="sourceLineNo">27465</span>                                } else {<a name="line.27465"></a>
+<span class="sourceLineNo">27466</span>                                        while (it.hasNext()) {<a name="line.27466"></a>
+<span class="sourceLineNo">27467</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27467"></a>
+<span class="sourceLineNo">27468</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.27468"></a>
+<span class="sourceLineNo">27469</span>                                                        long ox;<a name="line.27469"></a>
+<span class="sourceLineNo">27470</span>                                                        ox = toLong(Math.exp(ix));<a name="line.27470"></a>
+<span class="sourceLineNo">27471</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.27471"></a>
+<span class="sourceLineNo">27472</span>                                                }<a name="line.27472"></a>
+<span class="sourceLineNo">27473</span>                                        }<a name="line.27473"></a>
+<span class="sourceLineNo">27474</span>                                }<a name="line.27474"></a>
+<span class="sourceLineNo">27475</span>                        }<a name="line.27475"></a>
+<span class="sourceLineNo">27476</span>                        break;<a name="line.27476"></a>
+<span class="sourceLineNo">27477</span>                case Dataset.ARRAYINT32:<a name="line.27477"></a>
+<span class="sourceLineNo">27478</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.27478"></a>
+<span class="sourceLineNo">27479</span>                        if (is == 1) {<a name="line.27479"></a>
+<span class="sourceLineNo">27480</span>                                if (it.isOutputDouble()) {<a name="line.27480"></a>
+<span class="sourceLineNo">27481</span>                                        while (it.hasNext()) {<a name="line.27481"></a>
+<span class="sourceLineNo">27482</span>                                                final double ix = it.aDouble;<a name="line.27482"></a>
+<span class="sourceLineNo">27483</span>                                                int ox;<a name="line.27483"></a>
+<span class="sourceLineNo">27484</span>                                                ox = (int) toLong(Math.exp(ix));<a name="line.27484"></a>
+<span class="sourceLineNo">27485</span>                                                oai32data[it.oIndex] = ox;<a name="line.27485"></a>
+<span class="sourceLineNo">27486</span>                                        }<a name="line.27486"></a>
+<span class="sourceLineNo">27487</span>                                } else {<a name="line.27487"></a>
+<span class="sourceLineNo">27488</span>                                        while (it.hasNext()) {<a name="line.27488"></a>
+<span class="sourceLineNo">27489</span>                                                final long ix = it.aLong;<a name="line.27489"></a>
+<span class="sourceLineNo">27490</span>                                                int ox;<a name="line.27490"></a>
+<span class="sourceLineNo">27491</span>                                                ox = (int) toLong(Math.exp(ix));<a name="line.27491"></a>
+<span class="sourceLineNo">27492</span>                                                oai32data[it.oIndex] = ox;<a name="line.27492"></a>
+<span class="sourceLineNo">27493</span>                                        }<a name="line.27493"></a>
+<span class="sourceLineNo">27494</span>                                }<a name="line.27494"></a>
+<span class="sourceLineNo">27495</span>                        } else if (as == 1) {<a name="line.27495"></a>
+<span class="sourceLineNo">27496</span>                                if (it.isOutputDouble()) {<a name="line.27496"></a>
+<span class="sourceLineNo">27497</span>                                        while (it.hasNext()) {<a name="line.27497"></a>
+<span class="sourceLineNo">27498</span>                                                final double ix = it.aDouble;<a name="line.27498"></a>
+<span class="sourceLineNo">27499</span>                                                int ox;<a name="line.27499"></a>
+<span class="sourceLineNo">27500</span>                                                ox = (int) toLong(Math.exp(ix));<a name="line.27500"></a>
+<span class="sourceLineNo">27501</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27501"></a>
+<span class="sourceLineNo">27502</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.27502"></a>
+<span class="sourceLineNo">27503</span>                                                }<a name="line.27503"></a>
+<span class="sourceLineNo">27504</span>                                        }<a name="line.27504"></a>
+<span class="sourceLineNo">27505</span>                                } else {<a name="line.27505"></a>
+<span class="sourceLineNo">27506</span>                                        while (it.hasNext()) {<a name="line.27506"></a>
+<span class="sourceLineNo">27507</span>                                                final long ix = it.aLong;<a name="line.27507"></a>
+<span class="sourceLineNo">27508</span>                                                int ox;<a name="line.27508"></a>
+<span class="sourceLineNo">27509</span>                                                ox = (int) toLong(Math.exp(ix));<a name="line.27509"></a>
+<span class="sourceLineNo">27510</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27510"></a>
+<span class="sourceLineNo">27511</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.27511"></a>
+<span class="sourceLineNo">27512</span>                                                }<a name="line.27512"></a>
+<span class="sourceLineNo">27513</span>                                        }<a name="line.27513"></a>
+<span class="sourceLineNo">27514</span>                                }<a name="line.27514"></a>
+<span class="sourceLineNo">27515</span>                        } else {<a name="line.27515"></a>
+<span class="sourceLineNo">27516</span>                                if (it.isOutputDouble()) {<a name="line.27516"></a>
+<span class="sourceLineNo">27517</span>                                        while (it.hasNext()) {<a name="line.27517"></a>
+<span class="sourceLineNo">27518</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27518"></a>
+<span class="sourceLineNo">27519</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.27519"></a>
+<span class="sourceLineNo">27520</span>                                                        int ox;<a name="line.27520"></a>
+<span class="sourceLineNo">27521</span>                                                        ox = (int) toLong(Math.exp(ix));<a name="line.27521"></a>
+<span class="sourceLineNo">27522</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.27522"></a>
+<span class="sourceLineNo">27523</span>                                                }<a name="line.27523"></a>
+<span class="sourceLineNo">27524</span>                                        }<a name="line.27524"></a>
+<span class="sourceLineNo">27525</span>                                } else {<a name="line.27525"></a>
+<span class="sourceLineNo">27526</span>                                        while (it.hasNext()) {<a name="line.27526"></a>
+<span class="sourceLineNo">27527</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27527"></a>
+<span class="sourceLineNo">27528</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.27528"></a>
+<span class="sourceLineNo">27529</span>                                                        int ox;<a name="line.27529"></a>
+<span class="sourceLineNo">27530</span>                                                        ox = (int) toLong(Math.exp(ix));<a name="line.27530"></a>
+<span class="sourceLineNo">27531</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.27531"></a>
+<span class="sourceLineNo">27532</span>                                                }<a name="line.27532"></a>
+<span class="sourceLineNo">27533</span>                                        }<a name="line.27533"></a>
+<span class="sourceLineNo">27534</span>                                }<a name="line.27534"></a>
+<span class="sourceLineNo">27535</span>                        }<a name="line.27535"></a>
+<span class="sourceLineNo">27536</span>                        break;<a name="line.27536"></a>
+<span class="sourceLineNo">27537</span>                case Dataset.FLOAT32:<a name="line.27537"></a>
+<span class="sourceLineNo">27538</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.27538"></a>
+<span class="sourceLineNo">27539</span>                        if (it.isOutputDouble()) {<a name="line.27539"></a>
+<span class="sourceLineNo">27540</span>                                while (it.hasNext()) {<a name="line.27540"></a>
+<span class="sourceLineNo">27541</span>                                        final double ix = it.aDouble;<a name="line.27541"></a>
+<span class="sourceLineNo">27542</span>                                        float ox;<a name="line.27542"></a>
+<span class="sourceLineNo">27543</span>                                        ox = (float) (Math.exp(ix));<a name="line.27543"></a>
+<span class="sourceLineNo">27544</span>                                        of32data[it.oIndex] = ox;<a name="line.27544"></a>
+<span class="sourceLineNo">27545</span>                                }<a name="line.27545"></a>
+<span class="sourceLineNo">27546</span>                        } else {<a name="line.27546"></a>
+<span class="sourceLineNo">27547</span>                                while (it.hasNext()) {<a name="line.27547"></a>
+<span class="sourceLineNo">27548</span>                                        final long ix = it.aLong;<a name="line.27548"></a>
+<span class="sourceLineNo">27549</span>                                        float ox;<a name="line.27549"></a>
+<span class="sourceLineNo">27550</span>                                        ox = (float) (Math.exp(ix));<a name="line.27550"></a>
+<span class="sourceLineNo">27551</span>                                        of32data[it.oIndex] = ox;<a name="line.27551"></a>
+<span class="sourceLineNo">27552</span>                                }<a name="line.27552"></a>
+<span class="sourceLineNo">27553</span>                        }<a name="line.27553"></a>
+<span class="sourceLineNo">27554</span>                        break;<a name="line.27554"></a>
+<span class="sourceLineNo">27555</span>                case Dataset.FLOAT64:<a name="line.27555"></a>
+<span class="sourceLineNo">27556</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.27556"></a>
+<span class="sourceLineNo">27557</span>                        if (it.isOutputDouble()) {<a name="line.27557"></a>
+<span class="sourceLineNo">27558</span>                                while (it.hasNext()) {<a name="line.27558"></a>
+<span class="sourceLineNo">27559</span>                                        final double ix = it.aDouble;<a name="line.27559"></a>
+<span class="sourceLineNo">27560</span>                                        double ox;<a name="line.27560"></a>
+<span class="sourceLineNo">27561</span>                                        ox = (Math.exp(ix));<a name="line.27561"></a>
+<span class="sourceLineNo">27562</span>                                        of64data[it.oIndex] = ox;<a name="line.27562"></a>
+<span class="sourceLineNo">27563</span>                                }<a name="line.27563"></a>
+<span class="sourceLineNo">27564</span>                        } else {<a name="line.27564"></a>
+<span class="sourceLineNo">27565</span>                                while (it.hasNext()) {<a name="line.27565"></a>
+<span class="sourceLineNo">27566</span>                                        final long ix = it.aLong;<a name="line.27566"></a>
+<span class="sourceLineNo">27567</span>                                        double ox;<a name="line.27567"></a>
+<span class="sourceLineNo">27568</span>                                        ox = (Math.exp(ix));<a name="line.27568"></a>
+<span class="sourceLineNo">27569</span>                                        of64data[it.oIndex] = ox;<a name="line.27569"></a>
+<span class="sourceLineNo">27570</span>                                }<a name="line.27570"></a>
+<span class="sourceLineNo">27571</span>                        }<a name="line.27571"></a>
+<span class="sourceLineNo">27572</span>                        break;<a name="line.27572"></a>
+<span class="sourceLineNo">27573</span>                case Dataset.ARRAYFLOAT32:<a name="line.27573"></a>
+<span class="sourceLineNo">27574</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.27574"></a>
+<span class="sourceLineNo">27575</span>                        if (is == 1) {<a name="line.27575"></a>
+<span class="sourceLineNo">27576</span>                                if (it.isOutputDouble()) {<a name="line.27576"></a>
+<span class="sourceLineNo">27577</span>                                        while (it.hasNext()) {<a name="line.27577"></a>
+<span class="sourceLineNo">27578</span>                                                final double ix = it.aDouble;<a name="line.27578"></a>
+<span class="sourceLineNo">27579</span>                                                float ox;<a name="line.27579"></a>
+<span class="sourceLineNo">27580</span>                                                ox = (float) (Math.exp(ix));<a name="line.27580"></a>
+<span class="sourceLineNo">27581</span>                                                oaf32data[it.oIndex] = ox;<a name="line.27581"></a>
+<span class="sourceLineNo">27582</span>                                        }<a name="line.27582"></a>
+<span class="sourceLineNo">27583</span>                                } else {<a name="line.27583"></a>
+<span class="sourceLineNo">27584</span>                                        while (it.hasNext()) {<a name="line.27584"></a>
+<span class="sourceLineNo">27585</span>                                                final long ix = it.aLong;<a name="line.27585"></a>
+<span class="sourceLineNo">27586</span>                                                float ox;<a name="line.27586"></a>
+<span class="sourceLineNo">27587</span>                                                ox = (float) (Math.exp(ix));<a name="line.27587"></a>
+<span class="sourceLineNo">27588</span>                                                oaf32data[it.oIndex] = ox;<a name="line.27588"></a>
+<span class="sourceLineNo">27589</span>                                        }<a name="line.27589"></a>
+<span class="sourceLineNo">27590</span>                                }<a name="line.27590"></a>
+<span class="sourceLineNo">27591</span>                        } else if (as == 1) {<a name="line.27591"></a>
+<span class="sourceLineNo">27592</span>                                if (it.isOutputDouble()) {<a name="line.27592"></a>
+<span class="sourceLineNo">27593</span>                                        while (it.hasNext()) {<a name="line.27593"></a>
+<span class="sourceLineNo">27594</span>                                                final double ix = it.aDouble;<a name="line.27594"></a>
+<span class="sourceLineNo">27595</span>                                                float ox;<a name="line.27595"></a>
+<span class="sourceLineNo">27596</span>                                                ox = (float) (Math.exp(ix));<a name="line.27596"></a>
+<span class="sourceLineNo">27597</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27597"></a>
+<span class="sourceLineNo">27598</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.27598"></a>
+<span class="sourceLineNo">27599</span>                                                }<a name="line.27599"></a>
+<span class="sourceLineNo">27600</span>                                        }<a name="line.27600"></a>
+<span class="sourceLineNo">27601</span>                                } else {<a name="line.27601"></a>
+<span class="sourceLineNo">27602</span>                                        while (it.hasNext()) {<a name="line.27602"></a>
+<span class="sourceLineNo">27603</span>                                                final long ix = it.aLong;<a name="line.27603"></a>
+<span class="sourceLineNo">27604</span>                                                float ox;<a name="line.27604"></a>
+<span class="sourceLineNo">27605</span>                                                ox = (float) (Math.exp(ix));<a name="line.27605"></a>
+<span class="sourceLineNo">27606</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27606"></a>
+<span class="sourceLineNo">27607</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.27607"></a>
+<span class="sourceLineNo">27608</span>                                                }<a name="line.27608"></a>
+<span class="sourceLineNo">27609</span>                                        }<a name="line.27609"></a>
+<span class="sourceLineNo">27610</span>                                }<a name="line.27610"></a>
+<span class="sourceLineNo">27611</span>                        } else {<a name="line.27611"></a>
+<span class="sourceLineNo">27612</span>                                if (it.isOutputDouble()) {<a name="line.27612"></a>
+<span class="sourceLineNo">27613</span>                                        while (it.hasNext()) {<a name="line.27613"></a>
+<span class="sourceLineNo">27614</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27614"></a>
+<span class="sourceLineNo">27615</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.27615"></a>
+<span class="sourceLineNo">27616</span>                                                        float ox;<a name="line.27616"></a>
+<span class="sourceLineNo">27617</span>                                                        ox = (float) (Math.exp(ix));<a name="line.27617"></a>
+<span class="sourceLineNo">27618</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.27618"></a>
+<span class="sourceLineNo">27619</span>                                                }<a name="line.27619"></a>
+<span class="sourceLineNo">27620</span>                                        }<a name="line.27620"></a>
+<span class="sourceLineNo">27621</span>                                } else {<a name="line.27621"></a>
+<span class="sourceLineNo">27622</span>                                        while (it.hasNext()) {<a name="line.27622"></a>
+<span class="sourceLineNo">27623</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27623"></a>
+<span class="sourceLineNo">27624</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.27624"></a>
+<span class="sourceLineNo">27625</span>                                                        float ox;<a name="line.27625"></a>
+<span class="sourceLineNo">27626</span>                                                        ox = (float) (Math.exp(ix));<a name="line.27626"></a>
+<span class="sourceLineNo">27627</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.27627"></a>
+<span class="sourceLineNo">27628</span>                                                }<a name="line.27628"></a>
+<span class="sourceLineNo">27629</span>                                        }<a name="line.27629"></a>
+<span class="sourceLineNo">27630</span>                                }<a name="line.27630"></a>
+<span class="sourceLineNo">27631</span>                        }<a name="line.27631"></a>
+<span class="sourceLineNo">27632</span>                        break;<a name="line.27632"></a>
+<span class="sourceLineNo">27633</span>                case Dataset.ARRAYFLOAT64:<a name="line.27633"></a>
+<span class="sourceLineNo">27634</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.27634"></a>
+<span class="sourceLineNo">27635</span>                        if (is == 1) {<a name="line.27635"></a>
+<span class="sourceLineNo">27636</span>                                if (it.isOutputDouble()) {<a name="line.27636"></a>
+<span class="sourceLineNo">27637</span>                                        while (it.hasNext()) {<a name="line.27637"></a>
+<span class="sourceLineNo">27638</span>                                                final double ix = it.aDouble;<a name="line.27638"></a>
+<span class="sourceLineNo">27639</span>                                                double ox;<a name="line.27639"></a>
+<span class="sourceLineNo">27640</span>                                                ox = (Math.exp(ix));<a name="line.27640"></a>
+<span class="sourceLineNo">27641</span>                                                oaf64data[it.oIndex] = ox;<a name="line.27641"></a>
+<span class="sourceLineNo">27642</span>                                        }<a name="line.27642"></a>
+<span class="sourceLineNo">27643</span>                                } else {<a name="line.27643"></a>
+<span class="sourceLineNo">27644</span>                                        while (it.hasNext()) {<a name="line.27644"></a>
+<span class="sourceLineNo">27645</span>                                                final long ix = it.aLong;<a name="line.27645"></a>
+<span class="sourceLineNo">27646</span>                                                double ox;<a name="line.27646"></a>
+<span class="sourceLineNo">27647</span>                                                ox = (Math.exp(ix));<a name="line.27647"></a>
+<span class="sourceLineNo">27648</span>                                                oaf64data[it.oIndex] = ox;<a name="line.27648"></a>
+<span class="sourceLineNo">27649</span>                                        }<a name="line.27649"></a>
+<span class="sourceLineNo">27650</span>                                }<a name="line.27650"></a>
+<span class="sourceLineNo">27651</span>                        } else if (as == 1) {<a name="line.27651"></a>
+<span class="sourceLineNo">27652</span>                                if (it.isOutputDouble()) {<a name="line.27652"></a>
+<span class="sourceLineNo">27653</span>                                        while (it.hasNext()) {<a name="line.27653"></a>
+<span class="sourceLineNo">27654</span>                                                final double ix = it.aDouble;<a name="line.27654"></a>
+<span class="sourceLineNo">27655</span>                                                double ox;<a name="line.27655"></a>
+<span class="sourceLineNo">27656</span>                                                ox = (Math.exp(ix));<a name="line.27656"></a>
+<span class="sourceLineNo">27657</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27657"></a>
+<span class="sourceLineNo">27658</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.27658"></a>
+<span class="sourceLineNo">27659</span>                                                }<a name="line.27659"></a>
+<span class="sourceLineNo">27660</span>                                        }<a name="line.27660"></a>
+<span class="sourceLineNo">27661</span>                                } else {<a name="line.27661"></a>
+<span class="sourceLineNo">27662</span>                                        while (it.hasNext()) {<a name="line.27662"></a>
+<span class="sourceLineNo">27663</span>                                                final long ix = it.aLong;<a name="line.27663"></a>
+<span class="sourceLineNo">27664</span>                                                double ox;<a name="line.27664"></a>
+<span class="sourceLineNo">27665</span>                                                ox = (Math.exp(ix));<a name="line.27665"></a>
+<span class="sourceLineNo">27666</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27666"></a>
+<span class="sourceLineNo">27667</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.27667"></a>
+<span class="sourceLineNo">27668</span>                                                }<a name="line.27668"></a>
+<span class="sourceLineNo">27669</span>                                        }<a name="line.27669"></a>
+<span class="sourceLineNo">27670</span>                                }<a name="line.27670"></a>
+<span class="sourceLineNo">27671</span>                        } else {<a name="line.27671"></a>
+<span class="sourceLineNo">27672</span>                                if (it.isOutputDouble()) {<a name="line.27672"></a>
+<span class="sourceLineNo">27673</span>                                        while (it.hasNext()) {<a name="line.27673"></a>
+<span class="sourceLineNo">27674</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27674"></a>
+<span class="sourceLineNo">27675</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.27675"></a>
+<span class="sourceLineNo">27676</span>                                                        double ox;<a name="line.27676"></a>
+<span class="sourceLineNo">27677</span>                                                        ox = (Math.exp(ix));<a name="line.27677"></a>
+<span class="sourceLineNo">27678</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.27678"></a>
+<span class="sourceLineNo">27679</span>                                                }<a name="line.27679"></a>
+<span class="sourceLineNo">27680</span>                                        }<a name="line.27680"></a>
+<span class="sourceLineNo">27681</span>                                } else {<a name="line.27681"></a>
+<span class="sourceLineNo">27682</span>                                        while (it.hasNext()) {<a name="line.27682"></a>
+<span class="sourceLineNo">27683</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27683"></a>
+<span class="sourceLineNo">27684</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.27684"></a>
+<span class="sourceLineNo">27685</span>                                                        double ox;<a name="line.27685"></a>
+<span class="sourceLineNo">27686</span>                                                        ox = (Math.exp(ix));<a name="line.27686"></a>
+<span class="sourceLineNo">27687</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.27687"></a>
+<span class="sourceLineNo">27688</span>                                                }<a name="line.27688"></a>
+<span class="sourceLineNo">27689</span>                                        }<a name="line.27689"></a>
+<span class="sourceLineNo">27690</span>                                }<a name="line.27690"></a>
+<span class="sourceLineNo">27691</span>                        }<a name="line.27691"></a>
+<span class="sourceLineNo">27692</span>                        break;<a name="line.27692"></a>
+<span class="sourceLineNo">27693</span>                case Dataset.COMPLEX64:<a name="line.27693"></a>
+<span class="sourceLineNo">27694</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.27694"></a>
+<span class="sourceLineNo">27695</span>                        if (!da.isComplex()) {<a name="line.27695"></a>
+<span class="sourceLineNo">27696</span>                                if (it.isOutputDouble()) {<a name="line.27696"></a>
+<span class="sourceLineNo">27697</span>                                        final double iy = 0;<a name="line.27697"></a>
+<span class="sourceLineNo">27698</span>                                        while (it.hasNext()) {<a name="line.27698"></a>
+<span class="sourceLineNo">27699</span>                                                final double ix = it.aDouble;<a name="line.27699"></a>
+<span class="sourceLineNo">27700</span>                                                float tf;<a name="line.27700"></a>
+<span class="sourceLineNo">27701</span>                                                float ox;<a name="line.27701"></a>
+<span class="sourceLineNo">27702</span>                                                float oy;<a name="line.27702"></a>
+<span class="sourceLineNo">27703</span>                                                tf = (float) (Math.exp(ix));<a name="line.27703"></a>
+<span class="sourceLineNo">27704</span>                                                ox = (float) (tf*Math.cos(iy));<a name="line.27704"></a>
+<span class="sourceLineNo">27705</span>                                                oy = (float) (tf*Math.sin(iy));<a name="line.27705"></a>
+<span class="sourceLineNo">27706</span>                                                oc64data[it.oIndex] = ox;<a name="line.27706"></a>
+<span class="sourceLineNo">27707</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.27707"></a>
+<span class="sourceLineNo">27708</span>                                        }<a name="line.27708"></a>
+<span class="sourceLineNo">27709</span>                                } else {<a name="line.27709"></a>
+<span class="sourceLineNo">27710</span>                                        final long iy = 0;<a name="line.27710"></a>
+<span class="sourceLineNo">27711</span>                                        while (it.hasNext()) {<a name="line.27711"></a>
+<span class="sourceLineNo">27712</span>                                                final long ix = it.aLong;<a name="line.27712"></a>
+<span class="sourceLineNo">27713</span>                                                float tf;<a name="line.27713"></a>
+<span class="sourceLineNo">27714</span>                                                float ox;<a name="line.27714"></a>
+<span class="sourceLineNo">27715</span>                                                float oy;<a name="line.27715"></a>
+<span class="sourceLineNo">27716</span>                                                tf = (float) toLong(Math.exp(ix));<a name="line.27716"></a>
+<span class="sourceLineNo">27717</span>                                                ox = (float) toLong(tf*Math.cos(iy));<a name="line.27717"></a>
+<span class="sourceLineNo">27718</span>                                                oy = (float) toLong(tf*Math.sin(iy));<a name="line.27718"></a>
+<span class="sourceLineNo">27719</span>                                                oc64data[it.oIndex] = ox;<a name="line.27719"></a>
+<span class="sourceLineNo">27720</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.27720"></a>
+<span class="sourceLineNo">27721</span>                                        }<a name="line.27721"></a>
+<span class="sourceLineNo">27722</span>                                }<a name="line.27722"></a>
+<span class="sourceLineNo">27723</span>                        } else {<a name="line.27723"></a>
+<span class="sourceLineNo">27724</span>                                while (it.hasNext()) {<a name="line.27724"></a>
+<span class="sourceLineNo">27725</span>                                        final double ix = it.aDouble;<a name="line.27725"></a>
+<span class="sourceLineNo">27726</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.27726"></a>
+<span class="sourceLineNo">27727</span>                                        float tf;<a name="line.27727"></a>
+<span class="sourceLineNo">27728</span>                                        float ox;<a name="line.27728"></a>
+<span class="sourceLineNo">27729</span>                                        float oy;<a name="line.27729"></a>
+<span class="sourceLineNo">27730</span>                                        tf = (float) (Math.exp(ix));<a name="line.27730"></a>
+<span class="sourceLineNo">27731</span>                                        ox = (float) (tf*Math.cos(iy));<a name="line.27731"></a>
+<span class="sourceLineNo">27732</span>                                        oy = (float) (tf*Math.sin(iy));<a name="line.27732"></a>
+<span class="sourceLineNo">27733</span>                                        oc64data[it.oIndex] = ox;<a name="line.27733"></a>
+<span class="sourceLineNo">27734</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.27734"></a>
+<span class="sourceLineNo">27735</span>                                }<a name="line.27735"></a>
+<span class="sourceLineNo">27736</span>                        }<a name="line.27736"></a>
+<span class="sourceLineNo">27737</span>                        break;<a name="line.27737"></a>
+<span class="sourceLineNo">27738</span>                case Dataset.COMPLEX128:<a name="line.27738"></a>
+<span class="sourceLineNo">27739</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.27739"></a>
+<span class="sourceLineNo">27740</span>                        if (!da.isComplex()) {<a name="line.27740"></a>
+<span class="sourceLineNo">27741</span>                                if (it.isOutputDouble()) {<a name="line.27741"></a>
+<span class="sourceLineNo">27742</span>                                        final double iy = 0;<a name="line.27742"></a>
+<span class="sourceLineNo">27743</span>                                        while (it.hasNext()) {<a name="line.27743"></a>
+<span class="sourceLineNo">27744</span>                                                final double ix = it.aDouble;<a name="line.27744"></a>
+<span class="sourceLineNo">27745</span>                                                double tf;<a name="line.27745"></a>
+<span class="sourceLineNo">27746</span>                                                double ox;<a name="line.27746"></a>
+<span class="sourceLineNo">27747</span>                                                double oy;<a name="line.27747"></a>
+<span class="sourceLineNo">27748</span>                                                tf = (Math.exp(ix));<a name="line.27748"></a>
+<span class="sourceLineNo">27749</span>                                                ox = (tf*Math.cos(iy));<a name="line.27749"></a>
+<span class="sourceLineNo">27750</span>                                                oy = (tf*Math.sin(iy));<a name="line.27750"></a>
+<span class="sourceLineNo">27751</span>                                                oc128data[it.oIndex] = ox;<a name="line.27751"></a>
+<span class="sourceLineNo">27752</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.27752"></a>
+<span class="sourceLineNo">27753</span>                                        }<a name="line.27753"></a>
+<span class="sourceLineNo">27754</span>                                } else {<a name="line.27754"></a>
+<span class="sourceLineNo">27755</span>                                        final long iy = 0;<a name="line.27755"></a>
+<span class="sourceLineNo">27756</span>                                        while (it.hasNext()) {<a name="line.27756"></a>
+<span class="sourceLineNo">27757</span>                                                final long ix = it.aLong;<a name="line.27757"></a>
+<span class="sourceLineNo">27758</span>                                                double tf;<a name="line.27758"></a>
+<span class="sourceLineNo">27759</span>                                                double ox;<a name="line.27759"></a>
+<span class="sourceLineNo">27760</span>                                                double oy;<a name="line.27760"></a>
+<span class="sourceLineNo">27761</span>                                                tf = (double) (Math.exp(ix));<a name="line.27761"></a>
+<span class="sourceLineNo">27762</span>                                                ox = (double) (tf*Math.cos(iy));<a name="line.27762"></a>
+<span class="sourceLineNo">27763</span>                                                oy = (double) (tf*Math.sin(iy));<a name="line.27763"></a>
+<span class="sourceLineNo">27764</span>                                                oc128data[it.oIndex] = ox;<a name="line.27764"></a>
+<span class="sourceLineNo">27765</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.27765"></a>
+<span class="sourceLineNo">27766</span>                                        }<a name="line.27766"></a>
+<span class="sourceLineNo">27767</span>                                }<a name="line.27767"></a>
+<span class="sourceLineNo">27768</span>                        } else {<a name="line.27768"></a>
+<span class="sourceLineNo">27769</span>                                while (it.hasNext()) {<a name="line.27769"></a>
+<span class="sourceLineNo">27770</span>                                        final double ix = it.aDouble;<a name="line.27770"></a>
+<span class="sourceLineNo">27771</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.27771"></a>
+<span class="sourceLineNo">27772</span>                                        double tf;<a name="line.27772"></a>
+<span class="sourceLineNo">27773</span>                                        double ox;<a name="line.27773"></a>
+<span class="sourceLineNo">27774</span>                                        double oy;<a name="line.27774"></a>
+<span class="sourceLineNo">27775</span>                                        tf = (Math.exp(ix));<a name="line.27775"></a>
+<span class="sourceLineNo">27776</span>                                        ox = (tf*Math.cos(iy));<a name="line.27776"></a>
+<span class="sourceLineNo">27777</span>                                        oy = (tf*Math.sin(iy));<a name="line.27777"></a>
+<span class="sourceLineNo">27778</span>                                        oc128data[it.oIndex] = ox;<a name="line.27778"></a>
+<span class="sourceLineNo">27779</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.27779"></a>
+<span class="sourceLineNo">27780</span>                                }<a name="line.27780"></a>
+<span class="sourceLineNo">27781</span>                        }<a name="line.27781"></a>
+<span class="sourceLineNo">27782</span>                        break;<a name="line.27782"></a>
+<span class="sourceLineNo">27783</span>                default:<a name="line.27783"></a>
+<span class="sourceLineNo">27784</span>                        throw new IllegalArgumentException("exp supports integer, compound integer, real, compound real, complex datasets only");<a name="line.27784"></a>
+<span class="sourceLineNo">27785</span>                }<a name="line.27785"></a>
+<span class="sourceLineNo">27786</span><a name="line.27786"></a>
+<span class="sourceLineNo">27787</span>                addFunctionName(result, "exp");<a name="line.27787"></a>
+<span class="sourceLineNo">27788</span>                return result;<a name="line.27788"></a>
+<span class="sourceLineNo">27789</span>        }<a name="line.27789"></a>
+<span class="sourceLineNo">27790</span><a name="line.27790"></a>
+<span class="sourceLineNo">27791</span>        /**<a name="line.27791"></a>
+<span class="sourceLineNo">27792</span>         * expm1 - evaluate the exponential function - 1 on each element of the dataset<a name="line.27792"></a>
+<span class="sourceLineNo">27793</span>         * @param a<a name="line.27793"></a>
+<span class="sourceLineNo">27794</span>         * @return dataset<a name="line.27794"></a>
+<span class="sourceLineNo">27795</span>         */<a name="line.27795"></a>
+<span class="sourceLineNo">27796</span>        public static Dataset expm1(final Object a) {<a name="line.27796"></a>
+<span class="sourceLineNo">27797</span>                return expm1(a, null);<a name="line.27797"></a>
+<span class="sourceLineNo">27798</span>        }<a name="line.27798"></a>
+<span class="sourceLineNo">27799</span><a name="line.27799"></a>
+<span class="sourceLineNo">27800</span>        /**<a name="line.27800"></a>
+<span class="sourceLineNo">27801</span>         * expm1 - evaluate the exponential function - 1 on each element of the dataset<a name="line.27801"></a>
+<span class="sourceLineNo">27802</span>         * @param a<a name="line.27802"></a>
+<span class="sourceLineNo">27803</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.27803"></a>
+<span class="sourceLineNo">27804</span>         * @return dataset<a name="line.27804"></a>
+<span class="sourceLineNo">27805</span>         */<a name="line.27805"></a>
+<span class="sourceLineNo">27806</span>        public static Dataset expm1(final Object a, final Dataset o) {<a name="line.27806"></a>
+<span class="sourceLineNo">27807</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.27807"></a>
+<span class="sourceLineNo">27808</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.27808"></a>
+<span class="sourceLineNo">27809</span>                final Dataset result = it.getOutput();<a name="line.27809"></a>
+<span class="sourceLineNo">27810</span>                if (!result.isComplex()) {<a name="line.27810"></a>
+<span class="sourceLineNo">27811</span>                        if (da.isComplex()) {<a name="line.27811"></a>
+<span class="sourceLineNo">27812</span>                                da = da.getRealView();<a name="line.27812"></a>
+<span class="sourceLineNo">27813</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.27813"></a>
+<span class="sourceLineNo">27814</span>                        }<a name="line.27814"></a>
+<span class="sourceLineNo">27815</span>                }<a name="line.27815"></a>
+<span class="sourceLineNo">27816</span>                final int is = result.getElementsPerItem();<a name="line.27816"></a>
+<span class="sourceLineNo">27817</span>                final int as = da.getElementsPerItem();<a name="line.27817"></a>
+<span class="sourceLineNo">27818</span>                final int dt = result.getDType();<a name="line.27818"></a>
+<span class="sourceLineNo">27819</span><a name="line.27819"></a>
+<span class="sourceLineNo">27820</span>                switch(dt) {<a name="line.27820"></a>
+<span class="sourceLineNo">27821</span>                case Dataset.INT8:<a name="line.27821"></a>
+<span class="sourceLineNo">27822</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.27822"></a>
+<span class="sourceLineNo">27823</span>                        if (it.isOutputDouble()) {<a name="line.27823"></a>
+<span class="sourceLineNo">27824</span>                                while (it.hasNext()) {<a name="line.27824"></a>
+<span class="sourceLineNo">27825</span>                                        final double ix = it.aDouble;<a name="line.27825"></a>
+<span class="sourceLineNo">27826</span>                                        byte ox;<a name="line.27826"></a>
+<span class="sourceLineNo">27827</span>                                        ox = (byte) toLong(Math.expm1(ix));<a name="line.27827"></a>
+<span class="sourceLineNo">27828</span>                                        oi8data[it.oIndex] = ox;<a name="line.27828"></a>
+<span class="sourceLineNo">27829</span>                                }<a name="line.27829"></a>
+<span class="sourceLineNo">27830</span>                        } else {<a name="line.27830"></a>
+<span class="sourceLineNo">27831</span>                                while (it.hasNext()) {<a name="line.27831"></a>
+<span class="sourceLineNo">27832</span>                                        final long ix = it.aLong;<a name="line.27832"></a>
+<span class="sourceLineNo">27833</span>                                        byte ox;<a name="line.27833"></a>
+<span class="sourceLineNo">27834</span>                                        ox = (byte) toLong(Math.expm1(ix));<a name="line.27834"></a>
+<span class="sourceLineNo">27835</span>                                        oi8data[it.oIndex] = ox;<a name="line.27835"></a>
+<span class="sourceLineNo">27836</span>                                }<a name="line.27836"></a>
+<span class="sourceLineNo">27837</span>                        }<a name="line.27837"></a>
+<span class="sourceLineNo">27838</span>                        break;<a name="line.27838"></a>
+<span class="sourceLineNo">27839</span>                case Dataset.INT16:<a name="line.27839"></a>
+<span class="sourceLineNo">27840</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.27840"></a>
+<span class="sourceLineNo">27841</span>                        if (it.isOutputDouble()) {<a name="line.27841"></a>
+<span class="sourceLineNo">27842</span>                                while (it.hasNext()) {<a name="line.27842"></a>
+<span class="sourceLineNo">27843</span>                                        final double ix = it.aDouble;<a name="line.27843"></a>
+<span class="sourceLineNo">27844</span>                                        short ox;<a name="line.27844"></a>
+<span class="sourceLineNo">27845</span>                                        ox = (short) toLong(Math.expm1(ix));<a name="line.27845"></a>
+<span class="sourceLineNo">27846</span>                                        oi16data[it.oIndex] = ox;<a name="line.27846"></a>
+<span class="sourceLineNo">27847</span>                                }<a name="line.27847"></a>
+<span class="sourceLineNo">27848</span>                        } else {<a name="line.27848"></a>
+<span class="sourceLineNo">27849</span>                                while (it.hasNext()) {<a name="line.27849"></a>
+<span class="sourceLineNo">27850</span>                                        final long ix = it.aLong;<a name="line.27850"></a>
+<span class="sourceLineNo">27851</span>                                        short ox;<a name="line.27851"></a>
+<span class="sourceLineNo">27852</span>                                        ox = (short) toLong(Math.expm1(ix));<a name="line.27852"></a>
+<span class="sourceLineNo">27853</span>                                        oi16data[it.oIndex] = ox;<a name="line.27853"></a>
+<span class="sourceLineNo">27854</span>                                }<a name="line.27854"></a>
+<span class="sourceLineNo">27855</span>                        }<a name="line.27855"></a>
+<span class="sourceLineNo">27856</span>                        break;<a name="line.27856"></a>
+<span class="sourceLineNo">27857</span>                case Dataset.INT64:<a name="line.27857"></a>
+<span class="sourceLineNo">27858</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.27858"></a>
+<span class="sourceLineNo">27859</span>                        if (it.isOutputDouble()) {<a name="line.27859"></a>
+<span class="sourceLineNo">27860</span>                                while (it.hasNext()) {<a name="line.27860"></a>
+<span class="sourceLineNo">27861</span>                                        final double ix = it.aDouble;<a name="line.27861"></a>
+<span class="sourceLineNo">27862</span>                                        long ox;<a name="line.27862"></a>
+<span class="sourceLineNo">27863</span>                                        ox = toLong(Math.expm1(ix));<a name="line.27863"></a>
+<span class="sourceLineNo">27864</span>                                        oi64data[it.oIndex] = ox;<a name="line.27864"></a>
+<span class="sourceLineNo">27865</span>                                }<a name="line.27865"></a>
+<span class="sourceLineNo">27866</span>                        } else {<a name="line.27866"></a>
+<span class="sourceLineNo">27867</span>                                while (it.hasNext()) {<a name="line.27867"></a>
+<span class="sourceLineNo">27868</span>                                        final long ix = it.aLong;<a name="line.27868"></a>
+<span class="sourceLineNo">27869</span>                                        long ox;<a name="line.27869"></a>
+<span class="sourceLineNo">27870</span>                                        ox = toLong(Math.expm1(ix));<a name="line.27870"></a>
+<span class="sourceLineNo">27871</span>                                        oi64data[it.oIndex] = ox;<a name="line.27871"></a>
+<span class="sourceLineNo">27872</span>                                }<a name="line.27872"></a>
+<span class="sourceLineNo">27873</span>                        }<a name="line.27873"></a>
+<span class="sourceLineNo">27874</span>                        break;<a name="line.27874"></a>
+<span class="sourceLineNo">27875</span>                case Dataset.INT32:<a name="line.27875"></a>
+<span class="sourceLineNo">27876</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.27876"></a>
+<span class="sourceLineNo">27877</span>                        if (it.isOutputDouble()) {<a name="line.27877"></a>
+<span class="sourceLineNo">27878</span>                                while (it.hasNext()) {<a name="line.27878"></a>
+<span class="sourceLineNo">27879</span>                                        final double ix = it.aDouble;<a name="line.27879"></a>
+<span class="sourceLineNo">27880</span>                                        int ox;<a name="line.27880"></a>
+<span class="sourceLineNo">27881</span>                                        ox = (int) toLong(Math.expm1(ix));<a name="line.27881"></a>
+<span class="sourceLineNo">27882</span>                                        oi32data[it.oIndex] = ox;<a name="line.27882"></a>
+<span class="sourceLineNo">27883</span>                                }<a name="line.27883"></a>
+<span class="sourceLineNo">27884</span>                        } else {<a name="line.27884"></a>
+<span class="sourceLineNo">27885</span>                                while (it.hasNext()) {<a name="line.27885"></a>
+<span class="sourceLineNo">27886</span>                                        final long ix = it.aLong;<a name="line.27886"></a>
+<span class="sourceLineNo">27887</span>                                        int ox;<a name="line.27887"></a>
+<span class="sourceLineNo">27888</span>                                        ox = (int) toLong(Math.expm1(ix));<a name="line.27888"></a>
+<span class="sourceLineNo">27889</span>                                        oi32data[it.oIndex] = ox;<a name="line.27889"></a>
+<span class="sourceLineNo">27890</span>                                }<a name="line.27890"></a>
+<span class="sourceLineNo">27891</span>                        }<a name="line.27891"></a>
+<span class="sourceLineNo">27892</span>                        break;<a name="line.27892"></a>
+<span class="sourceLineNo">27893</span>                case Dataset.ARRAYINT8:<a name="line.27893"></a>
+<span class="sourceLineNo">27894</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.27894"></a>
+<span class="sourceLineNo">27895</span>                        if (is == 1) {<a name="line.27895"></a>
+<span class="sourceLineNo">27896</span>                                if (it.isOutputDouble()) {<a name="line.27896"></a>
+<span class="sourceLineNo">27897</span>                                        while (it.hasNext()) {<a name="line.27897"></a>
+<span class="sourceLineNo">27898</span>                                                final double ix = it.aDouble;<a name="line.27898"></a>
+<span class="sourceLineNo">27899</span>                                                byte ox;<a name="line.27899"></a>
+<span class="sourceLineNo">27900</span>                                                ox = (byte) toLong(Math.expm1(ix));<a name="line.27900"></a>
+<span class="sourceLineNo">27901</span>                                                oai8data[it.oIndex] = ox;<a name="line.27901"></a>
+<span class="sourceLineNo">27902</span>                                        }<a name="line.27902"></a>
+<span class="sourceLineNo">27903</span>                                } else {<a name="line.27903"></a>
+<span class="sourceLineNo">27904</span>                                        while (it.hasNext()) {<a name="line.27904"></a>
+<span class="sourceLineNo">27905</span>                                                final long ix = it.aLong;<a name="line.27905"></a>
+<span class="sourceLineNo">27906</span>                                                byte ox;<a name="line.27906"></a>
+<span class="sourceLineNo">27907</span>                                                ox = (byte) toLong(Math.expm1(ix));<a name="line.27907"></a>
+<span class="sourceLineNo">27908</span>                                                oai8data[it.oIndex] = ox;<a name="line.27908"></a>
+<span class="sourceLineNo">27909</span>                                        }<a name="line.27909"></a>
+<span class="sourceLineNo">27910</span>                                }<a name="line.27910"></a>
+<span class="sourceLineNo">27911</span>                        } else if (as == 1) {<a name="line.27911"></a>
+<span class="sourceLineNo">27912</span>                                if (it.isOutputDouble()) {<a name="line.27912"></a>
+<span class="sourceLineNo">27913</span>                                        while (it.hasNext()) {<a name="line.27913"></a>
+<span class="sourceLineNo">27914</span>                                                final double ix = it.aDouble;<a name="line.27914"></a>
+<span class="sourceLineNo">27915</span>                                                byte ox;<a name="line.27915"></a>
+<span class="sourceLineNo">27916</span>                                                ox = (byte) toLong(Math.expm1(ix));<a name="line.27916"></a>
+<span class="sourceLineNo">27917</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27917"></a>
+<span class="sourceLineNo">27918</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.27918"></a>
+<span class="sourceLineNo">27919</span>                                                }<a name="line.27919"></a>
+<span class="sourceLineNo">27920</span>                                        }<a name="line.27920"></a>
+<span class="sourceLineNo">27921</span>                                } else {<a name="line.27921"></a>
+<span class="sourceLineNo">27922</span>                                        while (it.hasNext()) {<a name="line.27922"></a>
+<span class="sourceLineNo">27923</span>                                                final long ix = it.aLong;<a name="line.27923"></a>
+<span class="sourceLineNo">27924</span>                                                byte ox;<a name="line.27924"></a>
+<span class="sourceLineNo">27925</span>                                                ox = (byte) toLong(Math.expm1(ix));<a name="line.27925"></a>
+<span class="sourceLineNo">27926</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27926"></a>
+<span class="sourceLineNo">27927</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.27927"></a>
+<span class="sourceLineNo">27928</span>                                                }<a name="line.27928"></a>
+<span class="sourceLineNo">27929</span>                                        }<a name="line.27929"></a>
+<span class="sourceLineNo">27930</span>                                }<a name="line.27930"></a>
+<span class="sourceLineNo">27931</span>                        } else {<a name="line.27931"></a>
+<span class="sourceLineNo">27932</span>                                if (it.isOutputDouble()) {<a name="line.27932"></a>
+<span class="sourceLineNo">27933</span>                                        while (it.hasNext()) {<a name="line.27933"></a>
+<span class="sourceLineNo">27934</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27934"></a>
+<span class="sourceLineNo">27935</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.27935"></a>
+<span class="sourceLineNo">27936</span>                                                        byte ox;<a name="line.27936"></a>
+<span class="sourceLineNo">27937</span>                                                        ox = (byte) toLong(Math.expm1(ix));<a name="line.27937"></a>
+<span class="sourceLineNo">27938</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.27938"></a>
+<span class="sourceLineNo">27939</span>                                                }<a name="line.27939"></a>
+<span class="sourceLineNo">27940</span>                                        }<a name="line.27940"></a>
+<span class="sourceLineNo">27941</span>                                } else {<a name="line.27941"></a>
+<span class="sourceLineNo">27942</span>                                        while (it.hasNext()) {<a name="line.27942"></a>
+<span class="sourceLineNo">27943</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27943"></a>
+<span class="sourceLineNo">27944</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.27944"></a>
+<span class="sourceLineNo">27945</span>                                                        byte ox;<a name="line.27945"></a>
+<span class="sourceLineNo">27946</span>                                                        ox = (byte) toLong(Math.expm1(ix));<a name="line.27946"></a>
+<span class="sourceLineNo">27947</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.27947"></a>
+<span class="sourceLineNo">27948</span>                                                }<a name="line.27948"></a>
+<span class="sourceLineNo">27949</span>                                        }<a name="line.27949"></a>
+<span class="sourceLineNo">27950</span>                                }<a name="line.27950"></a>
+<span class="sourceLineNo">27951</span>                        }<a name="line.27951"></a>
+<span class="sourceLineNo">27952</span>                        break;<a name="line.27952"></a>
+<span class="sourceLineNo">27953</span>                case Dataset.ARRAYINT16:<a name="line.27953"></a>
+<span class="sourceLineNo">27954</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.27954"></a>
+<span class="sourceLineNo">27955</span>                        if (is == 1) {<a name="line.27955"></a>
+<span class="sourceLineNo">27956</span>                                if (it.isOutputDouble()) {<a name="line.27956"></a>
+<span class="sourceLineNo">27957</span>                                        while (it.hasNext()) {<a name="line.27957"></a>
+<span class="sourceLineNo">27958</span>                                                final double ix = it.aDouble;<a name="line.27958"></a>
+<span class="sourceLineNo">27959</span>                                                short ox;<a name="line.27959"></a>
+<span class="sourceLineNo">27960</span>                                                ox = (short) toLong(Math.expm1(ix));<a name="line.27960"></a>
+<span class="sourceLineNo">27961</span>                                                oai16data[it.oIndex] = ox;<a name="line.27961"></a>
+<span class="sourceLineNo">27962</span>                                        }<a name="line.27962"></a>
+<span class="sourceLineNo">27963</span>                                } else {<a name="line.27963"></a>
+<span class="sourceLineNo">27964</span>                                        while (it.hasNext()) {<a name="line.27964"></a>
+<span class="sourceLineNo">27965</span>                                                final long ix = it.aLong;<a name="line.27965"></a>
+<span class="sourceLineNo">27966</span>                                                short ox;<a name="line.27966"></a>
+<span class="sourceLineNo">27967</span>                                                ox = (short) toLong(Math.expm1(ix));<a name="line.27967"></a>
+<span class="sourceLineNo">27968</span>                                                oai16data[it.oIndex] = ox;<a name="line.27968"></a>
+<span class="sourceLineNo">27969</span>                                        }<a name="line.27969"></a>
+<span class="sourceLineNo">27970</span>                                }<a name="line.27970"></a>
+<span class="sourceLineNo">27971</span>                        } else if (as == 1) {<a name="line.27971"></a>
+<span class="sourceLineNo">27972</span>                                if (it.isOutputDouble()) {<a name="line.27972"></a>
+<span class="sourceLineNo">27973</span>                                        while (it.hasNext()) {<a name="line.27973"></a>
+<span class="sourceLineNo">27974</span>                                                final double ix = it.aDouble;<a name="line.27974"></a>
+<span class="sourceLineNo">27975</span>                                                short ox;<a name="line.27975"></a>
+<span class="sourceLineNo">27976</span>                                                ox = (short) toLong(Math.expm1(ix));<a name="line.27976"></a>
+<span class="sourceLineNo">27977</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27977"></a>
+<span class="sourceLineNo">27978</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.27978"></a>
+<span class="sourceLineNo">27979</span>                                                }<a name="line.27979"></a>
+<span class="sourceLineNo">27980</span>                                        }<a name="line.27980"></a>
+<span class="sourceLineNo">27981</span>                                } else {<a name="line.27981"></a>
+<span class="sourceLineNo">27982</span>                                        while (it.hasNext()) {<a name="line.27982"></a>
+<span class="sourceLineNo">27983</span>                                                final long ix = it.aLong;<a name="line.27983"></a>
+<span class="sourceLineNo">27984</span>                                                short ox;<a name="line.27984"></a>
+<span class="sourceLineNo">27985</span>                                                ox = (short) toLong(Math.expm1(ix));<a name="line.27985"></a>
+<span class="sourceLineNo">27986</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27986"></a>
+<span class="sourceLineNo">27987</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.27987"></a>
+<span class="sourceLineNo">27988</span>                                                }<a name="line.27988"></a>
+<span class="sourceLineNo">27989</span>                                        }<a name="line.27989"></a>
+<span class="sourceLineNo">27990</span>                                }<a name="line.27990"></a>
+<span class="sourceLineNo">27991</span>                        } else {<a name="line.27991"></a>
+<span class="sourceLineNo">27992</span>                                if (it.isOutputDouble()) {<a name="line.27992"></a>
+<span class="sourceLineNo">27993</span>                                        while (it.hasNext()) {<a name="line.27993"></a>
+<span class="sourceLineNo">27994</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.27994"></a>
+<span class="sourceLineNo">27995</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.27995"></a>
+<span class="sourceLineNo">27996</span>                                                        short ox;<a name="line.27996"></a>
+<span class="sourceLineNo">27997</span>                                                        ox = (short) toLong(Math.expm1(ix));<a name="line.27997"></a>
+<span class="sourceLineNo">27998</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.27998"></a>
+<span class="sourceLineNo">27999</span>                                                }<a name="line.27999"></a>
+<span class="sourceLineNo">28000</span>                                        }<a name="line.28000"></a>
+<span class="sourceLineNo">28001</span>                                } else {<a name="line.28001"></a>
+<span class="sourceLineNo">28002</span>                                        while (it.hasNext()) {<a name="line.28002"></a>
+<span class="sourceLineNo">28003</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28003"></a>
+<span class="sourceLineNo">28004</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.28004"></a>
+<span class="sourceLineNo">28005</span>                                                        short ox;<a name="line.28005"></a>
+<span class="sourceLineNo">28006</span>                                                        ox = (short) toLong(Math.expm1(ix));<a name="line.28006"></a>
+<span class="sourceLineNo">28007</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.28007"></a>
+<span class="sourceLineNo">28008</span>                                                }<a name="line.28008"></a>
+<span class="sourceLineNo">28009</span>                                        }<a name="line.28009"></a>
+<span class="sourceLineNo">28010</span>                                }<a name="line.28010"></a>
+<span class="sourceLineNo">28011</span>                        }<a name="line.28011"></a>
+<span class="sourceLineNo">28012</span>                        break;<a name="line.28012"></a>
+<span class="sourceLineNo">28013</span>                case Dataset.ARRAYINT64:<a name="line.28013"></a>
+<span class="sourceLineNo">28014</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.28014"></a>
+<span class="sourceLineNo">28015</span>                        if (is == 1) {<a name="line.28015"></a>
+<span class="sourceLineNo">28016</span>                                if (it.isOutputDouble()) {<a name="line.28016"></a>
+<span class="sourceLineNo">28017</span>                                        while (it.hasNext()) {<a name="line.28017"></a>
+<span class="sourceLineNo">28018</span>                                                final double ix = it.aDouble;<a name="line.28018"></a>
+<span class="sourceLineNo">28019</span>                                                long ox;<a name="line.28019"></a>
+<span class="sourceLineNo">28020</span>                                                ox = toLong(Math.expm1(ix));<a name="line.28020"></a>
+<span class="sourceLineNo">28021</span>                                                oai64data[it.oIndex] = ox;<a name="line.28021"></a>
+<span class="sourceLineNo">28022</span>                                        }<a name="line.28022"></a>
+<span class="sourceLineNo">28023</span>                                } else {<a name="line.28023"></a>
+<span class="sourceLineNo">28024</span>                                        while (it.hasNext()) {<a name="line.28024"></a>
+<span class="sourceLineNo">28025</span>                                                final long ix = it.aLong;<a name="line.28025"></a>
+<span class="sourceLineNo">28026</span>                                                long ox;<a name="line.28026"></a>
+<span class="sourceLineNo">28027</span>                                                ox = toLong(Math.expm1(ix));<a name="line.28027"></a>
+<span class="sourceLineNo">28028</span>                                                oai64data[it.oIndex] = ox;<a name="line.28028"></a>
+<span class="sourceLineNo">28029</span>                                        }<a name="line.28029"></a>
+<span class="sourceLineNo">28030</span>                                }<a name="line.28030"></a>
+<span class="sourceLineNo">28031</span>                        } else if (as == 1) {<a name="line.28031"></a>
+<span class="sourceLineNo">28032</span>                                if (it.isOutputDouble()) {<a name="line.28032"></a>
+<span class="sourceLineNo">28033</span>                                        while (it.hasNext()) {<a name="line.28033"></a>
+<span class="sourceLineNo">28034</span>                                                final double ix = it.aDouble;<a name="line.28034"></a>
+<span class="sourceLineNo">28035</span>                                                long ox;<a name="line.28035"></a>
+<span class="sourceLineNo">28036</span>                                                ox = toLong(Math.expm1(ix));<a name="line.28036"></a>
+<span class="sourceLineNo">28037</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28037"></a>
+<span class="sourceLineNo">28038</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.28038"></a>
+<span class="sourceLineNo">28039</span>                                                }<a name="line.28039"></a>
+<span class="sourceLineNo">28040</span>                                        }<a name="line.28040"></a>
+<span class="sourceLineNo">28041</span>                                } else {<a name="line.28041"></a>
+<span class="sourceLineNo">28042</span>                                        while (it.hasNext()) {<a name="line.28042"></a>
+<span class="sourceLineNo">28043</span>                                                final long ix = it.aLong;<a name="line.28043"></a>
+<span class="sourceLineNo">28044</span>                                                long ox;<a name="line.28044"></a>
+<span class="sourceLineNo">28045</span>                                                ox = toLong(Math.expm1(ix));<a name="line.28045"></a>
+<span class="sourceLineNo">28046</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28046"></a>
+<span class="sourceLineNo">28047</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.28047"></a>
+<span class="sourceLineNo">28048</span>                                                }<a name="line.28048"></a>
+<span class="sourceLineNo">28049</span>                                        }<a name="line.28049"></a>
+<span class="sourceLineNo">28050</span>                                }<a name="line.28050"></a>
+<span class="sourceLineNo">28051</span>                        } else {<a name="line.28051"></a>
+<span class="sourceLineNo">28052</span>                                if (it.isOutputDouble()) {<a name="line.28052"></a>
+<span class="sourceLineNo">28053</span>                                        while (it.hasNext()) {<a name="line.28053"></a>
+<span class="sourceLineNo">28054</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28054"></a>
+<span class="sourceLineNo">28055</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.28055"></a>
+<span class="sourceLineNo">28056</span>                                                        long ox;<a name="line.28056"></a>
+<span class="sourceLineNo">28057</span>                                                        ox = toLong(Math.expm1(ix));<a name="line.28057"></a>
+<span class="sourceLineNo">28058</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.28058"></a>
+<span class="sourceLineNo">28059</span>                                                }<a name="line.28059"></a>
+<span class="sourceLineNo">28060</span>                                        }<a name="line.28060"></a>
+<span class="sourceLineNo">28061</span>                                } else {<a name="line.28061"></a>
+<span class="sourceLineNo">28062</span>                                        while (it.hasNext()) {<a name="line.28062"></a>
+<span class="sourceLineNo">28063</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28063"></a>
+<span class="sourceLineNo">28064</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.28064"></a>
+<span class="sourceLineNo">28065</span>                                                        long ox;<a name="line.28065"></a>
+<span class="sourceLineNo">28066</span>                                                        ox = toLong(Math.expm1(ix));<a name="line.28066"></a>
+<span class="sourceLineNo">28067</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.28067"></a>
+<span class="sourceLineNo">28068</span>                                                }<a name="line.28068"></a>
+<span class="sourceLineNo">28069</span>                                        }<a name="line.28069"></a>
+<span class="sourceLineNo">28070</span>                                }<a name="line.28070"></a>
+<span class="sourceLineNo">28071</span>                        }<a name="line.28071"></a>
+<span class="sourceLineNo">28072</span>                        break;<a name="line.28072"></a>
+<span class="sourceLineNo">28073</span>                case Dataset.ARRAYINT32:<a name="line.28073"></a>
+<span class="sourceLineNo">28074</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.28074"></a>
+<span class="sourceLineNo">28075</span>                        if (is == 1) {<a name="line.28075"></a>
+<span class="sourceLineNo">28076</span>                                if (it.isOutputDouble()) {<a name="line.28076"></a>
+<span class="sourceLineNo">28077</span>                                        while (it.hasNext()) {<a name="line.28077"></a>
+<span class="sourceLineNo">28078</span>                                                final double ix = it.aDouble;<a name="line.28078"></a>
+<span class="sourceLineNo">28079</span>                                                int ox;<a name="line.28079"></a>
+<span class="sourceLineNo">28080</span>                                                ox = (int) toLong(Math.expm1(ix));<a name="line.28080"></a>
+<span class="sourceLineNo">28081</span>                                                oai32data[it.oIndex] = ox;<a name="line.28081"></a>
+<span class="sourceLineNo">28082</span>                                        }<a name="line.28082"></a>
+<span class="sourceLineNo">28083</span>                                } else {<a name="line.28083"></a>
+<span class="sourceLineNo">28084</span>                                        while (it.hasNext()) {<a name="line.28084"></a>
+<span class="sourceLineNo">28085</span>                                                final long ix = it.aLong;<a name="line.28085"></a>
+<span class="sourceLineNo">28086</span>                                                int ox;<a name="line.28086"></a>
+<span class="sourceLineNo">28087</span>                                                ox = (int) toLong(Math.expm1(ix));<a name="line.28087"></a>
+<span class="sourceLineNo">28088</span>                                                oai32data[it.oIndex] = ox;<a name="line.28088"></a>
+<span class="sourceLineNo">28089</span>                                        }<a name="line.28089"></a>
+<span class="sourceLineNo">28090</span>                                }<a name="line.28090"></a>
+<span class="sourceLineNo">28091</span>                        } else if (as == 1) {<a name="line.28091"></a>
+<span class="sourceLineNo">28092</span>                                if (it.isOutputDouble()) {<a name="line.28092"></a>
+<span class="sourceLineNo">28093</span>                                        while (it.hasNext()) {<a name="line.28093"></a>
+<span class="sourceLineNo">28094</span>                                                final double ix = it.aDouble;<a name="line.28094"></a>
+<span class="sourceLineNo">28095</span>                                                int ox;<a name="line.28095"></a>
+<span class="sourceLineNo">28096</span>                                                ox = (int) toLong(Math.expm1(ix));<a name="line.28096"></a>
+<span class="sourceLineNo">28097</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28097"></a>
+<span class="sourceLineNo">28098</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.28098"></a>
+<span class="sourceLineNo">28099</span>                                                }<a name="line.28099"></a>
+<span class="sourceLineNo">28100</span>                                        }<a name="line.28100"></a>
+<span class="sourceLineNo">28101</span>                                } else {<a name="line.28101"></a>
+<span class="sourceLineNo">28102</span>                                        while (it.hasNext()) {<a name="line.28102"></a>
+<span class="sourceLineNo">28103</span>                                                final long ix = it.aLong;<a name="line.28103"></a>
+<span class="sourceLineNo">28104</span>                                                int ox;<a name="line.28104"></a>
+<span class="sourceLineNo">28105</span>                                                ox = (int) toLong(Math.expm1(ix));<a name="line.28105"></a>
+<span class="sourceLineNo">28106</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28106"></a>
+<span class="sourceLineNo">28107</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.28107"></a>
+<span class="sourceLineNo">28108</span>                                                }<a name="line.28108"></a>
+<span class="sourceLineNo">28109</span>                                        }<a name="line.28109"></a>
+<span class="sourceLineNo">28110</span>                                }<a name="line.28110"></a>
+<span class="sourceLineNo">28111</span>                        } else {<a name="line.28111"></a>
+<span class="sourceLineNo">28112</span>                                if (it.isOutputDouble()) {<a name="line.28112"></a>
+<span class="sourceLineNo">28113</span>                                        while (it.hasNext()) {<a name="line.28113"></a>
+<span class="sourceLineNo">28114</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28114"></a>
+<span class="sourceLineNo">28115</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.28115"></a>
+<span class="sourceLineNo">28116</span>                                                        int ox;<a name="line.28116"></a>
+<span class="sourceLineNo">28117</span>                                                        ox = (int) toLong(Math.expm1(ix));<a name="line.28117"></a>
+<span class="sourceLineNo">28118</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.28118"></a>
+<span class="sourceLineNo">28119</span>                                                }<a name="line.28119"></a>
+<span class="sourceLineNo">28120</span>                                        }<a name="line.28120"></a>
+<span class="sourceLineNo">28121</span>                                } else {<a name="line.28121"></a>
+<span class="sourceLineNo">28122</span>                                        while (it.hasNext()) {<a name="line.28122"></a>
+<span class="sourceLineNo">28123</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28123"></a>
+<span class="sourceLineNo">28124</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.28124"></a>
+<span class="sourceLineNo">28125</span>                                                        int ox;<a name="line.28125"></a>
+<span class="sourceLineNo">28126</span>                                                        ox = (int) toLong(Math.expm1(ix));<a name="line.28126"></a>
+<span class="sourceLineNo">28127</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.28127"></a>
+<span class="sourceLineNo">28128</span>                                                }<a name="line.28128"></a>
+<span class="sourceLineNo">28129</span>                                        }<a name="line.28129"></a>
+<span class="sourceLineNo">28130</span>                                }<a name="line.28130"></a>
+<span class="sourceLineNo">28131</span>                        }<a name="line.28131"></a>
+<span class="sourceLineNo">28132</span>                        break;<a name="line.28132"></a>
+<span class="sourceLineNo">28133</span>                case Dataset.FLOAT32:<a name="line.28133"></a>
+<span class="sourceLineNo">28134</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.28134"></a>
+<span class="sourceLineNo">28135</span>                        if (it.isOutputDouble()) {<a name="line.28135"></a>
+<span class="sourceLineNo">28136</span>                                while (it.hasNext()) {<a name="line.28136"></a>
+<span class="sourceLineNo">28137</span>                                        final double ix = it.aDouble;<a name="line.28137"></a>
+<span class="sourceLineNo">28138</span>                                        float ox;<a name="line.28138"></a>
+<span class="sourceLineNo">28139</span>                                        ox = (float) (Math.expm1(ix));<a name="line.28139"></a>
+<span class="sourceLineNo">28140</span>                                        of32data[it.oIndex] = ox;<a name="line.28140"></a>
+<span class="sourceLineNo">28141</span>                                }<a name="line.28141"></a>
+<span class="sourceLineNo">28142</span>                        } else {<a name="line.28142"></a>
+<span class="sourceLineNo">28143</span>                                while (it.hasNext()) {<a name="line.28143"></a>
+<span class="sourceLineNo">28144</span>                                        final long ix = it.aLong;<a name="line.28144"></a>
+<span class="sourceLineNo">28145</span>                                        float ox;<a name="line.28145"></a>
+<span class="sourceLineNo">28146</span>                                        ox = (float) (Math.expm1(ix));<a name="line.28146"></a>
+<span class="sourceLineNo">28147</span>                                        of32data[it.oIndex] = ox;<a name="line.28147"></a>
+<span class="sourceLineNo">28148</span>                                }<a name="line.28148"></a>
+<span class="sourceLineNo">28149</span>                        }<a name="line.28149"></a>
+<span class="sourceLineNo">28150</span>                        break;<a name="line.28150"></a>
+<span class="sourceLineNo">28151</span>                case Dataset.FLOAT64:<a name="line.28151"></a>
+<span class="sourceLineNo">28152</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.28152"></a>
+<span class="sourceLineNo">28153</span>                        if (it.isOutputDouble()) {<a name="line.28153"></a>
+<span class="sourceLineNo">28154</span>                                while (it.hasNext()) {<a name="line.28154"></a>
+<span class="sourceLineNo">28155</span>                                        final double ix = it.aDouble;<a name="line.28155"></a>
+<span class="sourceLineNo">28156</span>                                        double ox;<a name="line.28156"></a>
+<span class="sourceLineNo">28157</span>                                        ox = (Math.expm1(ix));<a name="line.28157"></a>
+<span class="sourceLineNo">28158</span>                                        of64data[it.oIndex] = ox;<a name="line.28158"></a>
+<span class="sourceLineNo">28159</span>                                }<a name="line.28159"></a>
+<span class="sourceLineNo">28160</span>                        } else {<a name="line.28160"></a>
+<span class="sourceLineNo">28161</span>                                while (it.hasNext()) {<a name="line.28161"></a>
+<span class="sourceLineNo">28162</span>                                        final long ix = it.aLong;<a name="line.28162"></a>
+<span class="sourceLineNo">28163</span>                                        double ox;<a name="line.28163"></a>
+<span class="sourceLineNo">28164</span>                                        ox = (Math.expm1(ix));<a name="line.28164"></a>
+<span class="sourceLineNo">28165</span>                                        of64data[it.oIndex] = ox;<a name="line.28165"></a>
+<span class="sourceLineNo">28166</span>                                }<a name="line.28166"></a>
+<span class="sourceLineNo">28167</span>                        }<a name="line.28167"></a>
+<span class="sourceLineNo">28168</span>                        break;<a name="line.28168"></a>
+<span class="sourceLineNo">28169</span>                case Dataset.ARRAYFLOAT32:<a name="line.28169"></a>
+<span class="sourceLineNo">28170</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.28170"></a>
+<span class="sourceLineNo">28171</span>                        if (is == 1) {<a name="line.28171"></a>
+<span class="sourceLineNo">28172</span>                                if (it.isOutputDouble()) {<a name="line.28172"></a>
+<span class="sourceLineNo">28173</span>                                        while (it.hasNext()) {<a name="line.28173"></a>
+<span class="sourceLineNo">28174</span>                                                final double ix = it.aDouble;<a name="line.28174"></a>
+<span class="sourceLineNo">28175</span>                                                float ox;<a name="line.28175"></a>
+<span class="sourceLineNo">28176</span>                                                ox = (float) (Math.expm1(ix));<a name="line.28176"></a>
+<span class="sourceLineNo">28177</span>                                                oaf32data[it.oIndex] = ox;<a name="line.28177"></a>
+<span class="sourceLineNo">28178</span>                                        }<a name="line.28178"></a>
+<span class="sourceLineNo">28179</span>                                } else {<a name="line.28179"></a>
+<span class="sourceLineNo">28180</span>                                        while (it.hasNext()) {<a name="line.28180"></a>
+<span class="sourceLineNo">28181</span>                                                final long ix = it.aLong;<a name="line.28181"></a>
+<span class="sourceLineNo">28182</span>                                                float ox;<a name="line.28182"></a>
+<span class="sourceLineNo">28183</span>                                                ox = (float) (Math.expm1(ix));<a name="line.28183"></a>
+<span class="sourceLineNo">28184</span>                                                oaf32data[it.oIndex] = ox;<a name="line.28184"></a>
+<span class="sourceLineNo">28185</span>                                        }<a name="line.28185"></a>
+<span class="sourceLineNo">28186</span>                                }<a name="line.28186"></a>
+<span class="sourceLineNo">28187</span>                        } else if (as == 1) {<a name="line.28187"></a>
+<span class="sourceLineNo">28188</span>                                if (it.isOutputDouble()) {<a name="line.28188"></a>
+<span class="sourceLineNo">28189</span>                                        while (it.hasNext()) {<a name="line.28189"></a>
+<span class="sourceLineNo">28190</span>                                                final double ix = it.aDouble;<a name="line.28190"></a>
+<span class="sourceLineNo">28191</span>                                                float ox;<a name="line.28191"></a>
+<span class="sourceLineNo">28192</span>                                                ox = (float) (Math.expm1(ix));<a name="line.28192"></a>
+<span class="sourceLineNo">28193</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28193"></a>
+<span class="sourceLineNo">28194</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.28194"></a>
+<span class="sourceLineNo">28195</span>                                                }<a name="line.28195"></a>
+<span class="sourceLineNo">28196</span>                                        }<a name="line.28196"></a>
+<span class="sourceLineNo">28197</span>                                } else {<a name="line.28197"></a>
+<span class="sourceLineNo">28198</span>                                        while (it.hasNext()) {<a name="line.28198"></a>
+<span class="sourceLineNo">28199</span>                                                final long ix = it.aLong;<a name="line.28199"></a>
+<span class="sourceLineNo">28200</span>                                                float ox;<a name="line.28200"></a>
+<span class="sourceLineNo">28201</span>                                                ox = (float) (Math.expm1(ix));<a name="line.28201"></a>
+<span class="sourceLineNo">28202</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28202"></a>
+<span class="sourceLineNo">28203</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.28203"></a>
+<span class="sourceLineNo">28204</span>                                                }<a name="line.28204"></a>
+<span class="sourceLineNo">28205</span>                                        }<a name="line.28205"></a>
+<span class="sourceLineNo">28206</span>                                }<a name="line.28206"></a>
+<span class="sourceLineNo">28207</span>                        } else {<a name="line.28207"></a>
+<span class="sourceLineNo">28208</span>                                if (it.isOutputDouble()) {<a name="line.28208"></a>
+<span class="sourceLineNo">28209</span>                                        while (it.hasNext()) {<a name="line.28209"></a>
+<span class="sourceLineNo">28210</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28210"></a>
+<span class="sourceLineNo">28211</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.28211"></a>
+<span class="sourceLineNo">28212</span>                                                        float ox;<a name="line.28212"></a>
+<span class="sourceLineNo">28213</span>                                                        ox = (float) (Math.expm1(ix));<a name="line.28213"></a>
+<span class="sourceLineNo">28214</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.28214"></a>
+<span class="sourceLineNo">28215</span>                                                }<a name="line.28215"></a>
+<span class="sourceLineNo">28216</span>                                        }<a name="line.28216"></a>
+<span class="sourceLineNo">28217</span>                                } else {<a name="line.28217"></a>
+<span class="sourceLineNo">28218</span>                                        while (it.hasNext()) {<a name="line.28218"></a>
+<span class="sourceLineNo">28219</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28219"></a>
+<span class="sourceLineNo">28220</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.28220"></a>
+<span class="sourceLineNo">28221</span>                                                        float ox;<a name="line.28221"></a>
+<span class="sourceLineNo">28222</span>                                                        ox = (float) (Math.expm1(ix));<a name="line.28222"></a>
+<span class="sourceLineNo">28223</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.28223"></a>
+<span class="sourceLineNo">28224</span>                                                }<a name="line.28224"></a>
+<span class="sourceLineNo">28225</span>                                        }<a name="line.28225"></a>
+<span class="sourceLineNo">28226</span>                                }<a name="line.28226"></a>
+<span class="sourceLineNo">28227</span>                        }<a name="line.28227"></a>
+<span class="sourceLineNo">28228</span>                        break;<a name="line.28228"></a>
+<span class="sourceLineNo">28229</span>                case Dataset.ARRAYFLOAT64:<a name="line.28229"></a>
+<span class="sourceLineNo">28230</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.28230"></a>
+<span class="sourceLineNo">28231</span>                        if (is == 1) {<a name="line.28231"></a>
+<span class="sourceLineNo">28232</span>                                if (it.isOutputDouble()) {<a name="line.28232"></a>
+<span class="sourceLineNo">28233</span>                                        while (it.hasNext()) {<a name="line.28233"></a>
+<span class="sourceLineNo">28234</span>                                                final double ix = it.aDouble;<a name="line.28234"></a>
+<span class="sourceLineNo">28235</span>                                                double ox;<a name="line.28235"></a>
+<span class="sourceLineNo">28236</span>                                                ox = (Math.expm1(ix));<a name="line.28236"></a>
+<span class="sourceLineNo">28237</span>                                                oaf64data[it.oIndex] = ox;<a name="line.28237"></a>
+<span class="sourceLineNo">28238</span>                                        }<a name="line.28238"></a>
+<span class="sourceLineNo">28239</span>                                } else {<a name="line.28239"></a>
+<span class="sourceLineNo">28240</span>                                        while (it.hasNext()) {<a name="line.28240"></a>
+<span class="sourceLineNo">28241</span>                                                final long ix = it.aLong;<a name="line.28241"></a>
+<span class="sourceLineNo">28242</span>                                                double ox;<a name="line.28242"></a>
+<span class="sourceLineNo">28243</span>                                                ox = (Math.expm1(ix));<a name="line.28243"></a>
+<span class="sourceLineNo">28244</span>                                                oaf64data[it.oIndex] = ox;<a name="line.28244"></a>
+<span class="sourceLineNo">28245</span>                                        }<a name="line.28245"></a>
+<span class="sourceLineNo">28246</span>                                }<a name="line.28246"></a>
+<span class="sourceLineNo">28247</span>                        } else if (as == 1) {<a name="line.28247"></a>
+<span class="sourceLineNo">28248</span>                                if (it.isOutputDouble()) {<a name="line.28248"></a>
+<span class="sourceLineNo">28249</span>                                        while (it.hasNext()) {<a name="line.28249"></a>
+<span class="sourceLineNo">28250</span>                                                final double ix = it.aDouble;<a name="line.28250"></a>
+<span class="sourceLineNo">28251</span>                                                double ox;<a name="line.28251"></a>
+<span class="sourceLineNo">28252</span>                                                ox = (Math.expm1(ix));<a name="line.28252"></a>
+<span class="sourceLineNo">28253</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28253"></a>
+<span class="sourceLineNo">28254</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.28254"></a>
+<span class="sourceLineNo">28255</span>                                                }<a name="line.28255"></a>
+<span class="sourceLineNo">28256</span>                                        }<a name="line.28256"></a>
+<span class="sourceLineNo">28257</span>                                } else {<a name="line.28257"></a>
+<span class="sourceLineNo">28258</span>                                        while (it.hasNext()) {<a name="line.28258"></a>
+<span class="sourceLineNo">28259</span>                                                final long ix = it.aLong;<a name="line.28259"></a>
+<span class="sourceLineNo">28260</span>                                                double ox;<a name="line.28260"></a>
+<span class="sourceLineNo">28261</span>                                                ox = (Math.expm1(ix));<a name="line.28261"></a>
+<span class="sourceLineNo">28262</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28262"></a>
+<span class="sourceLineNo">28263</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.28263"></a>
+<span class="sourceLineNo">28264</span>                                                }<a name="line.28264"></a>
+<span class="sourceLineNo">28265</span>                                        }<a name="line.28265"></a>
+<span class="sourceLineNo">28266</span>                                }<a name="line.28266"></a>
+<span class="sourceLineNo">28267</span>                        } else {<a name="line.28267"></a>
+<span class="sourceLineNo">28268</span>                                if (it.isOutputDouble()) {<a name="line.28268"></a>
+<span class="sourceLineNo">28269</span>                                        while (it.hasNext()) {<a name="line.28269"></a>
+<span class="sourceLineNo">28270</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28270"></a>
+<span class="sourceLineNo">28271</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.28271"></a>
+<span class="sourceLineNo">28272</span>                                                        double ox;<a name="line.28272"></a>
+<span class="sourceLineNo">28273</span>                                                        ox = (Math.expm1(ix));<a name="line.28273"></a>
+<span class="sourceLineNo">28274</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.28274"></a>
+<span class="sourceLineNo">28275</span>                                                }<a name="line.28275"></a>
+<span class="sourceLineNo">28276</span>                                        }<a name="line.28276"></a>
+<span class="sourceLineNo">28277</span>                                } else {<a name="line.28277"></a>
+<span class="sourceLineNo">28278</span>                                        while (it.hasNext()) {<a name="line.28278"></a>
+<span class="sourceLineNo">28279</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28279"></a>
+<span class="sourceLineNo">28280</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.28280"></a>
+<span class="sourceLineNo">28281</span>                                                        double ox;<a name="line.28281"></a>
+<span class="sourceLineNo">28282</span>                                                        ox = (Math.expm1(ix));<a name="line.28282"></a>
+<span class="sourceLineNo">28283</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.28283"></a>
+<span class="sourceLineNo">28284</span>                                                }<a name="line.28284"></a>
+<span class="sourceLineNo">28285</span>                                        }<a name="line.28285"></a>
+<span class="sourceLineNo">28286</span>                                }<a name="line.28286"></a>
+<span class="sourceLineNo">28287</span>                        }<a name="line.28287"></a>
+<span class="sourceLineNo">28288</span>                        break;<a name="line.28288"></a>
+<span class="sourceLineNo">28289</span>                case Dataset.COMPLEX64:<a name="line.28289"></a>
+<span class="sourceLineNo">28290</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.28290"></a>
+<span class="sourceLineNo">28291</span>                        if (!da.isComplex()) {<a name="line.28291"></a>
+<span class="sourceLineNo">28292</span>                                if (it.isOutputDouble()) {<a name="line.28292"></a>
+<span class="sourceLineNo">28293</span>                                        final double iy = 0;<a name="line.28293"></a>
+<span class="sourceLineNo">28294</span>                                        while (it.hasNext()) {<a name="line.28294"></a>
+<span class="sourceLineNo">28295</span>                                                final double ix = it.aDouble;<a name="line.28295"></a>
+<span class="sourceLineNo">28296</span>                                                float tf;<a name="line.28296"></a>
+<span class="sourceLineNo">28297</span>                                                float ox;<a name="line.28297"></a>
+<span class="sourceLineNo">28298</span>                                                float oy;<a name="line.28298"></a>
+<span class="sourceLineNo">28299</span>                                                tf = (float) (Math.expm1(ix));<a name="line.28299"></a>
+<span class="sourceLineNo">28300</span>                                                ox = (float) (tf*Math.cos(iy));<a name="line.28300"></a>
+<span class="sourceLineNo">28301</span>                                                oy = (float) (tf*Math.sin(iy));<a name="line.28301"></a>
+<span class="sourceLineNo">28302</span>                                                oc64data[it.oIndex] = ox;<a name="line.28302"></a>
+<span class="sourceLineNo">28303</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.28303"></a>
+<span class="sourceLineNo">28304</span>                                        }<a name="line.28304"></a>
+<span class="sourceLineNo">28305</span>                                } else {<a name="line.28305"></a>
+<span class="sourceLineNo">28306</span>                                        final long iy = 0;<a name="line.28306"></a>
+<span class="sourceLineNo">28307</span>                                        while (it.hasNext()) {<a name="line.28307"></a>
+<span class="sourceLineNo">28308</span>                                                final long ix = it.aLong;<a name="line.28308"></a>
+<span class="sourceLineNo">28309</span>                                                float tf;<a name="line.28309"></a>
+<span class="sourceLineNo">28310</span>                                                float ox;<a name="line.28310"></a>
+<span class="sourceLineNo">28311</span>                                                float oy;<a name="line.28311"></a>
+<span class="sourceLineNo">28312</span>                                                tf = (float) toLong(Math.expm1(ix));<a name="line.28312"></a>
+<span class="sourceLineNo">28313</span>                                                ox = (float) toLong(tf*Math.cos(iy));<a name="line.28313"></a>
+<span class="sourceLineNo">28314</span>                                                oy = (float) toLong(tf*Math.sin(iy));<a name="line.28314"></a>
+<span class="sourceLineNo">28315</span>                                                oc64data[it.oIndex] = ox;<a name="line.28315"></a>
+<span class="sourceLineNo">28316</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.28316"></a>
+<span class="sourceLineNo">28317</span>                                        }<a name="line.28317"></a>
+<span class="sourceLineNo">28318</span>                                }<a name="line.28318"></a>
+<span class="sourceLineNo">28319</span>                        } else {<a name="line.28319"></a>
+<span class="sourceLineNo">28320</span>                                while (it.hasNext()) {<a name="line.28320"></a>
+<span class="sourceLineNo">28321</span>                                        final double ix = it.aDouble;<a name="line.28321"></a>
+<span class="sourceLineNo">28322</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.28322"></a>
+<span class="sourceLineNo">28323</span>                                        float tf;<a name="line.28323"></a>
+<span class="sourceLineNo">28324</span>                                        float ox;<a name="line.28324"></a>
+<span class="sourceLineNo">28325</span>                                        float oy;<a name="line.28325"></a>
+<span class="sourceLineNo">28326</span>                                        tf = (float) (Math.expm1(ix));<a name="line.28326"></a>
+<span class="sourceLineNo">28327</span>                                        ox = (float) (tf*Math.cos(iy));<a name="line.28327"></a>
+<span class="sourceLineNo">28328</span>                                        oy = (float) (tf*Math.sin(iy));<a name="line.28328"></a>
+<span class="sourceLineNo">28329</span>                                        oc64data[it.oIndex] = ox;<a name="line.28329"></a>
+<span class="sourceLineNo">28330</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.28330"></a>
+<span class="sourceLineNo">28331</span>                                }<a name="line.28331"></a>
+<span class="sourceLineNo">28332</span>                        }<a name="line.28332"></a>
+<span class="sourceLineNo">28333</span>                        break;<a name="line.28333"></a>
+<span class="sourceLineNo">28334</span>                case Dataset.COMPLEX128:<a name="line.28334"></a>
+<span class="sourceLineNo">28335</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.28335"></a>
+<span class="sourceLineNo">28336</span>                        if (!da.isComplex()) {<a name="line.28336"></a>
+<span class="sourceLineNo">28337</span>                                if (it.isOutputDouble()) {<a name="line.28337"></a>
+<span class="sourceLineNo">28338</span>                                        final double iy = 0;<a name="line.28338"></a>
+<span class="sourceLineNo">28339</span>                                        while (it.hasNext()) {<a name="line.28339"></a>
+<span class="sourceLineNo">28340</span>                                                final double ix = it.aDouble;<a name="line.28340"></a>
+<span class="sourceLineNo">28341</span>                                                double tf;<a name="line.28341"></a>
+<span class="sourceLineNo">28342</span>                                                double ox;<a name="line.28342"></a>
+<span class="sourceLineNo">28343</span>                                                double oy;<a name="line.28343"></a>
+<span class="sourceLineNo">28344</span>                                                tf = (Math.expm1(ix));<a name="line.28344"></a>
+<span class="sourceLineNo">28345</span>                                                ox = (tf*Math.cos(iy));<a name="line.28345"></a>
+<span class="sourceLineNo">28346</span>                                                oy = (tf*Math.sin(iy));<a name="line.28346"></a>
+<span class="sourceLineNo">28347</span>                                                oc128data[it.oIndex] = ox;<a name="line.28347"></a>
+<span class="sourceLineNo">28348</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.28348"></a>
+<span class="sourceLineNo">28349</span>                                        }<a name="line.28349"></a>
+<span class="sourceLineNo">28350</span>                                } else {<a name="line.28350"></a>
+<span class="sourceLineNo">28351</span>                                        final long iy = 0;<a name="line.28351"></a>
+<span class="sourceLineNo">28352</span>                                        while (it.hasNext()) {<a name="line.28352"></a>
+<span class="sourceLineNo">28353</span>                                                final long ix = it.aLong;<a name="line.28353"></a>
+<span class="sourceLineNo">28354</span>                                                double tf;<a name="line.28354"></a>
+<span class="sourceLineNo">28355</span>                                                double ox;<a name="line.28355"></a>
+<span class="sourceLineNo">28356</span>                                                double oy;<a name="line.28356"></a>
+<span class="sourceLineNo">28357</span>                                                tf = (double) (Math.expm1(ix));<a name="line.28357"></a>
+<span class="sourceLineNo">28358</span>                                                ox = (double) (tf*Math.cos(iy));<a name="line.28358"></a>
+<span class="sourceLineNo">28359</span>                                                oy = (double) (tf*Math.sin(iy));<a name="line.28359"></a>
+<span class="sourceLineNo">28360</span>                                                oc128data[it.oIndex] = ox;<a name="line.28360"></a>
+<span class="sourceLineNo">28361</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.28361"></a>
+<span class="sourceLineNo">28362</span>                                        }<a name="line.28362"></a>
+<span class="sourceLineNo">28363</span>                                }<a name="line.28363"></a>
+<span class="sourceLineNo">28364</span>                        } else {<a name="line.28364"></a>
+<span class="sourceLineNo">28365</span>                                while (it.hasNext()) {<a name="line.28365"></a>
+<span class="sourceLineNo">28366</span>                                        final double ix = it.aDouble;<a name="line.28366"></a>
+<span class="sourceLineNo">28367</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.28367"></a>
+<span class="sourceLineNo">28368</span>                                        double tf;<a name="line.28368"></a>
+<span class="sourceLineNo">28369</span>                                        double ox;<a name="line.28369"></a>
+<span class="sourceLineNo">28370</span>                                        double oy;<a name="line.28370"></a>
+<span class="sourceLineNo">28371</span>                                        tf = (Math.expm1(ix));<a name="line.28371"></a>
+<span class="sourceLineNo">28372</span>                                        ox = (tf*Math.cos(iy));<a name="line.28372"></a>
+<span class="sourceLineNo">28373</span>                                        oy = (tf*Math.sin(iy));<a name="line.28373"></a>
+<span class="sourceLineNo">28374</span>                                        oc128data[it.oIndex] = ox;<a name="line.28374"></a>
+<span class="sourceLineNo">28375</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.28375"></a>
+<span class="sourceLineNo">28376</span>                                }<a name="line.28376"></a>
+<span class="sourceLineNo">28377</span>                        }<a name="line.28377"></a>
+<span class="sourceLineNo">28378</span>                        break;<a name="line.28378"></a>
+<span class="sourceLineNo">28379</span>                default:<a name="line.28379"></a>
+<span class="sourceLineNo">28380</span>                        throw new IllegalArgumentException("expm1 supports integer, compound integer, real, compound real, complex datasets only");<a name="line.28380"></a>
+<span class="sourceLineNo">28381</span>                }<a name="line.28381"></a>
+<span class="sourceLineNo">28382</span><a name="line.28382"></a>
+<span class="sourceLineNo">28383</span>                addFunctionName(result, "expm1");<a name="line.28383"></a>
+<span class="sourceLineNo">28384</span>                return result;<a name="line.28384"></a>
+<span class="sourceLineNo">28385</span>        }<a name="line.28385"></a>
+<span class="sourceLineNo">28386</span><a name="line.28386"></a>
+<span class="sourceLineNo">28387</span>        /**<a name="line.28387"></a>
+<span class="sourceLineNo">28388</span>         * sqrt - evaluate the square root function on each element of the dataset<a name="line.28388"></a>
+<span class="sourceLineNo">28389</span>         * @param a<a name="line.28389"></a>
+<span class="sourceLineNo">28390</span>         * @return dataset<a name="line.28390"></a>
+<span class="sourceLineNo">28391</span>         */<a name="line.28391"></a>
+<span class="sourceLineNo">28392</span>        public static Dataset sqrt(final Object a) {<a name="line.28392"></a>
+<span class="sourceLineNo">28393</span>                return sqrt(a, null);<a name="line.28393"></a>
+<span class="sourceLineNo">28394</span>        }<a name="line.28394"></a>
+<span class="sourceLineNo">28395</span><a name="line.28395"></a>
+<span class="sourceLineNo">28396</span>        /**<a name="line.28396"></a>
+<span class="sourceLineNo">28397</span>         * sqrt - evaluate the square root function on each element of the dataset<a name="line.28397"></a>
+<span class="sourceLineNo">28398</span>         * @param a<a name="line.28398"></a>
+<span class="sourceLineNo">28399</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.28399"></a>
+<span class="sourceLineNo">28400</span>         * @return dataset<a name="line.28400"></a>
+<span class="sourceLineNo">28401</span>         */<a name="line.28401"></a>
+<span class="sourceLineNo">28402</span>        public static Dataset sqrt(final Object a, final Dataset o) {<a name="line.28402"></a>
+<span class="sourceLineNo">28403</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.28403"></a>
+<span class="sourceLineNo">28404</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.28404"></a>
+<span class="sourceLineNo">28405</span>                final Dataset result = it.getOutput();<a name="line.28405"></a>
+<span class="sourceLineNo">28406</span>                if (!result.isComplex()) {<a name="line.28406"></a>
+<span class="sourceLineNo">28407</span>                        if (da.isComplex()) {<a name="line.28407"></a>
+<span class="sourceLineNo">28408</span>                                da = da.getRealView();<a name="line.28408"></a>
+<span class="sourceLineNo">28409</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.28409"></a>
+<span class="sourceLineNo">28410</span>                        }<a name="line.28410"></a>
+<span class="sourceLineNo">28411</span>                }<a name="line.28411"></a>
+<span class="sourceLineNo">28412</span>                final int is = result.getElementsPerItem();<a name="line.28412"></a>
+<span class="sourceLineNo">28413</span>                final int as = da.getElementsPerItem();<a name="line.28413"></a>
+<span class="sourceLineNo">28414</span>                final int dt = result.getDType();<a name="line.28414"></a>
+<span class="sourceLineNo">28415</span><a name="line.28415"></a>
+<span class="sourceLineNo">28416</span>                switch(dt) {<a name="line.28416"></a>
+<span class="sourceLineNo">28417</span>                case Dataset.INT8:<a name="line.28417"></a>
+<span class="sourceLineNo">28418</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.28418"></a>
+<span class="sourceLineNo">28419</span>                        if (it.isOutputDouble()) {<a name="line.28419"></a>
+<span class="sourceLineNo">28420</span>                                while (it.hasNext()) {<a name="line.28420"></a>
+<span class="sourceLineNo">28421</span>                                        final double ix = it.aDouble;<a name="line.28421"></a>
+<span class="sourceLineNo">28422</span>                                        byte ox;<a name="line.28422"></a>
+<span class="sourceLineNo">28423</span>                                        ox = (byte) toLong(Math.sqrt(ix));<a name="line.28423"></a>
+<span class="sourceLineNo">28424</span>                                        oi8data[it.oIndex] = ox;<a name="line.28424"></a>
+<span class="sourceLineNo">28425</span>                                }<a name="line.28425"></a>
+<span class="sourceLineNo">28426</span>                        } else {<a name="line.28426"></a>
+<span class="sourceLineNo">28427</span>                                while (it.hasNext()) {<a name="line.28427"></a>
+<span class="sourceLineNo">28428</span>                                        final long ix = it.aLong;<a name="line.28428"></a>
+<span class="sourceLineNo">28429</span>                                        byte ox;<a name="line.28429"></a>
+<span class="sourceLineNo">28430</span>                                        ox = (byte) toLong(Math.sqrt(ix));<a name="line.28430"></a>
+<span class="sourceLineNo">28431</span>                                        oi8data[it.oIndex] = ox;<a name="line.28431"></a>
+<span class="sourceLineNo">28432</span>                                }<a name="line.28432"></a>
+<span class="sourceLineNo">28433</span>                        }<a name="line.28433"></a>
+<span class="sourceLineNo">28434</span>                        break;<a name="line.28434"></a>
+<span class="sourceLineNo">28435</span>                case Dataset.INT16:<a name="line.28435"></a>
+<span class="sourceLineNo">28436</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.28436"></a>
+<span class="sourceLineNo">28437</span>                        if (it.isOutputDouble()) {<a name="line.28437"></a>
+<span class="sourceLineNo">28438</span>                                while (it.hasNext()) {<a name="line.28438"></a>
+<span class="sourceLineNo">28439</span>                                        final double ix = it.aDouble;<a name="line.28439"></a>
+<span class="sourceLineNo">28440</span>                                        short ox;<a name="line.28440"></a>
+<span class="sourceLineNo">28441</span>                                        ox = (short) toLong(Math.sqrt(ix));<a name="line.28441"></a>
+<span class="sourceLineNo">28442</span>                                        oi16data[it.oIndex] = ox;<a name="line.28442"></a>
+<span class="sourceLineNo">28443</span>                                }<a name="line.28443"></a>
+<span class="sourceLineNo">28444</span>                        } else {<a name="line.28444"></a>
+<span class="sourceLineNo">28445</span>                                while (it.hasNext()) {<a name="line.28445"></a>
+<span class="sourceLineNo">28446</span>                                        final long ix = it.aLong;<a name="line.28446"></a>
+<span class="sourceLineNo">28447</span>                                        short ox;<a name="line.28447"></a>
+<span class="sourceLineNo">28448</span>                                        ox = (short) toLong(Math.sqrt(ix));<a name="line.28448"></a>
+<span class="sourceLineNo">28449</span>                                        oi16data[it.oIndex] = ox;<a name="line.28449"></a>
+<span class="sourceLineNo">28450</span>                                }<a name="line.28450"></a>
+<span class="sourceLineNo">28451</span>                        }<a name="line.28451"></a>
+<span class="sourceLineNo">28452</span>                        break;<a name="line.28452"></a>
+<span class="sourceLineNo">28453</span>                case Dataset.INT64:<a name="line.28453"></a>
+<span class="sourceLineNo">28454</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.28454"></a>
+<span class="sourceLineNo">28455</span>                        if (it.isOutputDouble()) {<a name="line.28455"></a>
+<span class="sourceLineNo">28456</span>                                while (it.hasNext()) {<a name="line.28456"></a>
+<span class="sourceLineNo">28457</span>                                        final double ix = it.aDouble;<a name="line.28457"></a>
+<span class="sourceLineNo">28458</span>                                        long ox;<a name="line.28458"></a>
+<span class="sourceLineNo">28459</span>                                        ox = toLong(Math.sqrt(ix));<a name="line.28459"></a>
+<span class="sourceLineNo">28460</span>                                        oi64data[it.oIndex] = ox;<a name="line.28460"></a>
+<span class="sourceLineNo">28461</span>                                }<a name="line.28461"></a>
+<span class="sourceLineNo">28462</span>                        } else {<a name="line.28462"></a>
+<span class="sourceLineNo">28463</span>                                while (it.hasNext()) {<a name="line.28463"></a>
+<span class="sourceLineNo">28464</span>                                        final long ix = it.aLong;<a name="line.28464"></a>
+<span class="sourceLineNo">28465</span>                                        long ox;<a name="line.28465"></a>
+<span class="sourceLineNo">28466</span>                                        ox = toLong(Math.sqrt(ix));<a name="line.28466"></a>
+<span class="sourceLineNo">28467</span>                                        oi64data[it.oIndex] = ox;<a name="line.28467"></a>
+<span class="sourceLineNo">28468</span>                                }<a name="line.28468"></a>
+<span class="sourceLineNo">28469</span>                        }<a name="line.28469"></a>
+<span class="sourceLineNo">28470</span>                        break;<a name="line.28470"></a>
+<span class="sourceLineNo">28471</span>                case Dataset.INT32:<a name="line.28471"></a>
+<span class="sourceLineNo">28472</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.28472"></a>
+<span class="sourceLineNo">28473</span>                        if (it.isOutputDouble()) {<a name="line.28473"></a>
+<span class="sourceLineNo">28474</span>                                while (it.hasNext()) {<a name="line.28474"></a>
+<span class="sourceLineNo">28475</span>                                        final double ix = it.aDouble;<a name="line.28475"></a>
+<span class="sourceLineNo">28476</span>                                        int ox;<a name="line.28476"></a>
+<span class="sourceLineNo">28477</span>                                        ox = (int) toLong(Math.sqrt(ix));<a name="line.28477"></a>
+<span class="sourceLineNo">28478</span>                                        oi32data[it.oIndex] = ox;<a name="line.28478"></a>
+<span class="sourceLineNo">28479</span>                                }<a name="line.28479"></a>
+<span class="sourceLineNo">28480</span>                        } else {<a name="line.28480"></a>
+<span class="sourceLineNo">28481</span>                                while (it.hasNext()) {<a name="line.28481"></a>
+<span class="sourceLineNo">28482</span>                                        final long ix = it.aLong;<a name="line.28482"></a>
+<span class="sourceLineNo">28483</span>                                        int ox;<a name="line.28483"></a>
+<span class="sourceLineNo">28484</span>                                        ox = (int) toLong(Math.sqrt(ix));<a name="line.28484"></a>
+<span class="sourceLineNo">28485</span>                                        oi32data[it.oIndex] = ox;<a name="line.28485"></a>
+<span class="sourceLineNo">28486</span>                                }<a name="line.28486"></a>
+<span class="sourceLineNo">28487</span>                        }<a name="line.28487"></a>
+<span class="sourceLineNo">28488</span>                        break;<a name="line.28488"></a>
+<span class="sourceLineNo">28489</span>                case Dataset.ARRAYINT8:<a name="line.28489"></a>
+<span class="sourceLineNo">28490</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.28490"></a>
+<span class="sourceLineNo">28491</span>                        if (is == 1) {<a name="line.28491"></a>
+<span class="sourceLineNo">28492</span>                                if (it.isOutputDouble()) {<a name="line.28492"></a>
+<span class="sourceLineNo">28493</span>                                        while (it.hasNext()) {<a name="line.28493"></a>
+<span class="sourceLineNo">28494</span>                                                final double ix = it.aDouble;<a name="line.28494"></a>
+<span class="sourceLineNo">28495</span>                                                byte ox;<a name="line.28495"></a>
+<span class="sourceLineNo">28496</span>                                                ox = (byte) toLong(Math.sqrt(ix));<a name="line.28496"></a>
+<span class="sourceLineNo">28497</span>                                                oai8data[it.oIndex] = ox;<a name="line.28497"></a>
+<span class="sourceLineNo">28498</span>                                        }<a name="line.28498"></a>
+<span class="sourceLineNo">28499</span>                                } else {<a name="line.28499"></a>
+<span class="sourceLineNo">28500</span>                                        while (it.hasNext()) {<a name="line.28500"></a>
+<span class="sourceLineNo">28501</span>                                                final long ix = it.aLong;<a name="line.28501"></a>
+<span class="sourceLineNo">28502</span>                                                byte ox;<a name="line.28502"></a>
+<span class="sourceLineNo">28503</span>                                                ox = (byte) toLong(Math.sqrt(ix));<a name="line.28503"></a>
+<span class="sourceLineNo">28504</span>                                                oai8data[it.oIndex] = ox;<a name="line.28504"></a>
+<span class="sourceLineNo">28505</span>                                        }<a name="line.28505"></a>
+<span class="sourceLineNo">28506</span>                                }<a name="line.28506"></a>
+<span class="sourceLineNo">28507</span>                        } else if (as == 1) {<a name="line.28507"></a>
+<span class="sourceLineNo">28508</span>                                if (it.isOutputDouble()) {<a name="line.28508"></a>
+<span class="sourceLineNo">28509</span>                                        while (it.hasNext()) {<a name="line.28509"></a>
+<span class="sourceLineNo">28510</span>                                                final double ix = it.aDouble;<a name="line.28510"></a>
+<span class="sourceLineNo">28511</span>                                                byte ox;<a name="line.28511"></a>
+<span class="sourceLineNo">28512</span>                                                ox = (byte) toLong(Math.sqrt(ix));<a name="line.28512"></a>
+<span class="sourceLineNo">28513</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28513"></a>
+<span class="sourceLineNo">28514</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.28514"></a>
+<span class="sourceLineNo">28515</span>                                                }<a name="line.28515"></a>
+<span class="sourceLineNo">28516</span>                                        }<a name="line.28516"></a>
+<span class="sourceLineNo">28517</span>                                } else {<a name="line.28517"></a>
+<span class="sourceLineNo">28518</span>                                        while (it.hasNext()) {<a name="line.28518"></a>
+<span class="sourceLineNo">28519</span>                                                final long ix = it.aLong;<a name="line.28519"></a>
+<span class="sourceLineNo">28520</span>                                                byte ox;<a name="line.28520"></a>
+<span class="sourceLineNo">28521</span>                                                ox = (byte) toLong(Math.sqrt(ix));<a name="line.28521"></a>
+<span class="sourceLineNo">28522</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28522"></a>
+<span class="sourceLineNo">28523</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.28523"></a>
+<span class="sourceLineNo">28524</span>                                                }<a name="line.28524"></a>
+<span class="sourceLineNo">28525</span>                                        }<a name="line.28525"></a>
+<span class="sourceLineNo">28526</span>                                }<a name="line.28526"></a>
+<span class="sourceLineNo">28527</span>                        } else {<a name="line.28527"></a>
+<span class="sourceLineNo">28528</span>                                if (it.isOutputDouble()) {<a name="line.28528"></a>
+<span class="sourceLineNo">28529</span>                                        while (it.hasNext()) {<a name="line.28529"></a>
+<span class="sourceLineNo">28530</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28530"></a>
+<span class="sourceLineNo">28531</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.28531"></a>
+<span class="sourceLineNo">28532</span>                                                        byte ox;<a name="line.28532"></a>
+<span class="sourceLineNo">28533</span>                                                        ox = (byte) toLong(Math.sqrt(ix));<a name="line.28533"></a>
+<span class="sourceLineNo">28534</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.28534"></a>
+<span class="sourceLineNo">28535</span>                                                }<a name="line.28535"></a>
+<span class="sourceLineNo">28536</span>                                        }<a name="line.28536"></a>
+<span class="sourceLineNo">28537</span>                                } else {<a name="line.28537"></a>
+<span class="sourceLineNo">28538</span>                                        while (it.hasNext()) {<a name="line.28538"></a>
+<span class="sourceLineNo">28539</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28539"></a>
+<span class="sourceLineNo">28540</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.28540"></a>
+<span class="sourceLineNo">28541</span>                                                        byte ox;<a name="line.28541"></a>
+<span class="sourceLineNo">28542</span>                                                        ox = (byte) toLong(Math.sqrt(ix));<a name="line.28542"></a>
+<span class="sourceLineNo">28543</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.28543"></a>
+<span class="sourceLineNo">28544</span>                                                }<a name="line.28544"></a>
+<span class="sourceLineNo">28545</span>                                        }<a name="line.28545"></a>
+<span class="sourceLineNo">28546</span>                                }<a name="line.28546"></a>
+<span class="sourceLineNo">28547</span>                        }<a name="line.28547"></a>
+<span class="sourceLineNo">28548</span>                        break;<a name="line.28548"></a>
+<span class="sourceLineNo">28549</span>                case Dataset.ARRAYINT16:<a name="line.28549"></a>
+<span class="sourceLineNo">28550</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.28550"></a>
+<span class="sourceLineNo">28551</span>                        if (is == 1) {<a name="line.28551"></a>
+<span class="sourceLineNo">28552</span>                                if (it.isOutputDouble()) {<a name="line.28552"></a>
+<span class="sourceLineNo">28553</span>                                        while (it.hasNext()) {<a name="line.28553"></a>
+<span class="sourceLineNo">28554</span>                                                final double ix = it.aDouble;<a name="line.28554"></a>
+<span class="sourceLineNo">28555</span>                                                short ox;<a name="line.28555"></a>
+<span class="sourceLineNo">28556</span>                                                ox = (short) toLong(Math.sqrt(ix));<a name="line.28556"></a>
+<span class="sourceLineNo">28557</span>                                                oai16data[it.oIndex] = ox;<a name="line.28557"></a>
+<span class="sourceLineNo">28558</span>                                        }<a name="line.28558"></a>
+<span class="sourceLineNo">28559</span>                                } else {<a name="line.28559"></a>
+<span class="sourceLineNo">28560</span>                                        while (it.hasNext()) {<a name="line.28560"></a>
+<span class="sourceLineNo">28561</span>                                                final long ix = it.aLong;<a name="line.28561"></a>
+<span class="sourceLineNo">28562</span>                                                short ox;<a name="line.28562"></a>
+<span class="sourceLineNo">28563</span>                                                ox = (short) toLong(Math.sqrt(ix));<a name="line.28563"></a>
+<span class="sourceLineNo">28564</span>                                                oai16data[it.oIndex] = ox;<a name="line.28564"></a>
+<span class="sourceLineNo">28565</span>                                        }<a name="line.28565"></a>
+<span class="sourceLineNo">28566</span>                                }<a name="line.28566"></a>
+<span class="sourceLineNo">28567</span>                        } else if (as == 1) {<a name="line.28567"></a>
+<span class="sourceLineNo">28568</span>                                if (it.isOutputDouble()) {<a name="line.28568"></a>
+<span class="sourceLineNo">28569</span>                                        while (it.hasNext()) {<a name="line.28569"></a>
+<span class="sourceLineNo">28570</span>                                                final double ix = it.aDouble;<a name="line.28570"></a>
+<span class="sourceLineNo">28571</span>                                                short ox;<a name="line.28571"></a>
+<span class="sourceLineNo">28572</span>                                                ox = (short) toLong(Math.sqrt(ix));<a name="line.28572"></a>
+<span class="sourceLineNo">28573</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28573"></a>
+<span class="sourceLineNo">28574</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.28574"></a>
+<span class="sourceLineNo">28575</span>                                                }<a name="line.28575"></a>
+<span class="sourceLineNo">28576</span>                                        }<a name="line.28576"></a>
+<span class="sourceLineNo">28577</span>                                } else {<a name="line.28577"></a>
+<span class="sourceLineNo">28578</span>                                        while (it.hasNext()) {<a name="line.28578"></a>
+<span class="sourceLineNo">28579</span>                                                final long ix = it.aLong;<a name="line.28579"></a>
+<span class="sourceLineNo">28580</span>                                                short ox;<a name="line.28580"></a>
+<span class="sourceLineNo">28581</span>                                                ox = (short) toLong(Math.sqrt(ix));<a name="line.28581"></a>
+<span class="sourceLineNo">28582</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28582"></a>
+<span class="sourceLineNo">28583</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.28583"></a>
+<span class="sourceLineNo">28584</span>                                                }<a name="line.28584"></a>
+<span class="sourceLineNo">28585</span>                                        }<a name="line.28585"></a>
+<span class="sourceLineNo">28586</span>                                }<a name="line.28586"></a>
+<span class="sourceLineNo">28587</span>                        } else {<a name="line.28587"></a>
+<span class="sourceLineNo">28588</span>                                if (it.isOutputDouble()) {<a name="line.28588"></a>
+<span class="sourceLineNo">28589</span>                                        while (it.hasNext()) {<a name="line.28589"></a>
+<span class="sourceLineNo">28590</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28590"></a>
+<span class="sourceLineNo">28591</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.28591"></a>
+<span class="sourceLineNo">28592</span>                                                        short ox;<a name="line.28592"></a>
+<span class="sourceLineNo">28593</span>                                                        ox = (short) toLong(Math.sqrt(ix));<a name="line.28593"></a>
+<span class="sourceLineNo">28594</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.28594"></a>
+<span class="sourceLineNo">28595</span>                                                }<a name="line.28595"></a>
+<span class="sourceLineNo">28596</span>                                        }<a name="line.28596"></a>
+<span class="sourceLineNo">28597</span>                                } else {<a name="line.28597"></a>
+<span class="sourceLineNo">28598</span>                                        while (it.hasNext()) {<a name="line.28598"></a>
+<span class="sourceLineNo">28599</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28599"></a>
+<span class="sourceLineNo">28600</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.28600"></a>
+<span class="sourceLineNo">28601</span>                                                        short ox;<a name="line.28601"></a>
+<span class="sourceLineNo">28602</span>                                                        ox = (short) toLong(Math.sqrt(ix));<a name="line.28602"></a>
+<span class="sourceLineNo">28603</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.28603"></a>
+<span class="sourceLineNo">28604</span>                                                }<a name="line.28604"></a>
+<span class="sourceLineNo">28605</span>                                        }<a name="line.28605"></a>
+<span class="sourceLineNo">28606</span>                                }<a name="line.28606"></a>
+<span class="sourceLineNo">28607</span>                        }<a name="line.28607"></a>
+<span class="sourceLineNo">28608</span>                        break;<a name="line.28608"></a>
+<span class="sourceLineNo">28609</span>                case Dataset.ARRAYINT64:<a name="line.28609"></a>
+<span class="sourceLineNo">28610</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.28610"></a>
+<span class="sourceLineNo">28611</span>                        if (is == 1) {<a name="line.28611"></a>
+<span class="sourceLineNo">28612</span>                                if (it.isOutputDouble()) {<a name="line.28612"></a>
+<span class="sourceLineNo">28613</span>                                        while (it.hasNext()) {<a name="line.28613"></a>
+<span class="sourceLineNo">28614</span>                                                final double ix = it.aDouble;<a name="line.28614"></a>
+<span class="sourceLineNo">28615</span>                                                long ox;<a name="line.28615"></a>
+<span class="sourceLineNo">28616</span>                                                ox = toLong(Math.sqrt(ix));<a name="line.28616"></a>
+<span class="sourceLineNo">28617</span>                                                oai64data[it.oIndex] = ox;<a name="line.28617"></a>
+<span class="sourceLineNo">28618</span>                                        }<a name="line.28618"></a>
+<span class="sourceLineNo">28619</span>                                } else {<a name="line.28619"></a>
+<span class="sourceLineNo">28620</span>                                        while (it.hasNext()) {<a name="line.28620"></a>
+<span class="sourceLineNo">28621</span>                                                final long ix = it.aLong;<a name="line.28621"></a>
+<span class="sourceLineNo">28622</span>                                                long ox;<a name="line.28622"></a>
+<span class="sourceLineNo">28623</span>                                                ox = toLong(Math.sqrt(ix));<a name="line.28623"></a>
+<span class="sourceLineNo">28624</span>                                                oai64data[it.oIndex] = ox;<a name="line.28624"></a>
+<span class="sourceLineNo">28625</span>                                        }<a name="line.28625"></a>
+<span class="sourceLineNo">28626</span>                                }<a name="line.28626"></a>
+<span class="sourceLineNo">28627</span>                        } else if (as == 1) {<a name="line.28627"></a>
+<span class="sourceLineNo">28628</span>                                if (it.isOutputDouble()) {<a name="line.28628"></a>
+<span class="sourceLineNo">28629</span>                                        while (it.hasNext()) {<a name="line.28629"></a>
+<span class="sourceLineNo">28630</span>                                                final double ix = it.aDouble;<a name="line.28630"></a>
+<span class="sourceLineNo">28631</span>                                                long ox;<a name="line.28631"></a>
+<span class="sourceLineNo">28632</span>                                                ox = toLong(Math.sqrt(ix));<a name="line.28632"></a>
+<span class="sourceLineNo">28633</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28633"></a>
+<span class="sourceLineNo">28634</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.28634"></a>
+<span class="sourceLineNo">28635</span>                                                }<a name="line.28635"></a>
+<span class="sourceLineNo">28636</span>                                        }<a name="line.28636"></a>
+<span class="sourceLineNo">28637</span>                                } else {<a name="line.28637"></a>
+<span class="sourceLineNo">28638</span>                                        while (it.hasNext()) {<a name="line.28638"></a>
+<span class="sourceLineNo">28639</span>                                                final long ix = it.aLong;<a name="line.28639"></a>
+<span class="sourceLineNo">28640</span>                                                long ox;<a name="line.28640"></a>
+<span class="sourceLineNo">28641</span>                                                ox = toLong(Math.sqrt(ix));<a name="line.28641"></a>
+<span class="sourceLineNo">28642</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28642"></a>
+<span class="sourceLineNo">28643</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.28643"></a>
+<span class="sourceLineNo">28644</span>                                                }<a name="line.28644"></a>
+<span class="sourceLineNo">28645</span>                                        }<a name="line.28645"></a>
+<span class="sourceLineNo">28646</span>                                }<a name="line.28646"></a>
+<span class="sourceLineNo">28647</span>                        } else {<a name="line.28647"></a>
+<span class="sourceLineNo">28648</span>                                if (it.isOutputDouble()) {<a name="line.28648"></a>
+<span class="sourceLineNo">28649</span>                                        while (it.hasNext()) {<a name="line.28649"></a>
+<span class="sourceLineNo">28650</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28650"></a>
+<span class="sourceLineNo">28651</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.28651"></a>
+<span class="sourceLineNo">28652</span>                                                        long ox;<a name="line.28652"></a>
+<span class="sourceLineNo">28653</span>                                                        ox = toLong(Math.sqrt(ix));<a name="line.28653"></a>
+<span class="sourceLineNo">28654</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.28654"></a>
+<span class="sourceLineNo">28655</span>                                                }<a name="line.28655"></a>
+<span class="sourceLineNo">28656</span>                                        }<a name="line.28656"></a>
+<span class="sourceLineNo">28657</span>                                } else {<a name="line.28657"></a>
+<span class="sourceLineNo">28658</span>                                        while (it.hasNext()) {<a name="line.28658"></a>
+<span class="sourceLineNo">28659</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28659"></a>
+<span class="sourceLineNo">28660</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.28660"></a>
+<span class="sourceLineNo">28661</span>                                                        long ox;<a name="line.28661"></a>
+<span class="sourceLineNo">28662</span>                                                        ox = toLong(Math.sqrt(ix));<a name="line.28662"></a>
+<span class="sourceLineNo">28663</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.28663"></a>
+<span class="sourceLineNo">28664</span>                                                }<a name="line.28664"></a>
+<span class="sourceLineNo">28665</span>                                        }<a name="line.28665"></a>
+<span class="sourceLineNo">28666</span>                                }<a name="line.28666"></a>
+<span class="sourceLineNo">28667</span>                        }<a name="line.28667"></a>
+<span class="sourceLineNo">28668</span>                        break;<a name="line.28668"></a>
+<span class="sourceLineNo">28669</span>                case Dataset.ARRAYINT32:<a name="line.28669"></a>
+<span class="sourceLineNo">28670</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.28670"></a>
+<span class="sourceLineNo">28671</span>                        if (is == 1) {<a name="line.28671"></a>
+<span class="sourceLineNo">28672</span>                                if (it.isOutputDouble()) {<a name="line.28672"></a>
+<span class="sourceLineNo">28673</span>                                        while (it.hasNext()) {<a name="line.28673"></a>
+<span class="sourceLineNo">28674</span>                                                final double ix = it.aDouble;<a name="line.28674"></a>
+<span class="sourceLineNo">28675</span>                                                int ox;<a name="line.28675"></a>
+<span class="sourceLineNo">28676</span>                                                ox = (int) toLong(Math.sqrt(ix));<a name="line.28676"></a>
+<span class="sourceLineNo">28677</span>                                                oai32data[it.oIndex] = ox;<a name="line.28677"></a>
+<span class="sourceLineNo">28678</span>                                        }<a name="line.28678"></a>
+<span class="sourceLineNo">28679</span>                                } else {<a name="line.28679"></a>
+<span class="sourceLineNo">28680</span>                                        while (it.hasNext()) {<a name="line.28680"></a>
+<span class="sourceLineNo">28681</span>                                                final long ix = it.aLong;<a name="line.28681"></a>
+<span class="sourceLineNo">28682</span>                                                int ox;<a name="line.28682"></a>
+<span class="sourceLineNo">28683</span>                                                ox = (int) toLong(Math.sqrt(ix));<a name="line.28683"></a>
+<span class="sourceLineNo">28684</span>                                                oai32data[it.oIndex] = ox;<a name="line.28684"></a>
+<span class="sourceLineNo">28685</span>                                        }<a name="line.28685"></a>
+<span class="sourceLineNo">28686</span>                                }<a name="line.28686"></a>
+<span class="sourceLineNo">28687</span>                        } else if (as == 1) {<a name="line.28687"></a>
+<span class="sourceLineNo">28688</span>                                if (it.isOutputDouble()) {<a name="line.28688"></a>
+<span class="sourceLineNo">28689</span>                                        while (it.hasNext()) {<a name="line.28689"></a>
+<span class="sourceLineNo">28690</span>                                                final double ix = it.aDouble;<a name="line.28690"></a>
+<span class="sourceLineNo">28691</span>                                                int ox;<a name="line.28691"></a>
+<span class="sourceLineNo">28692</span>                                                ox = (int) toLong(Math.sqrt(ix));<a name="line.28692"></a>
+<span class="sourceLineNo">28693</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28693"></a>
+<span class="sourceLineNo">28694</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.28694"></a>
+<span class="sourceLineNo">28695</span>                                                }<a name="line.28695"></a>
+<span class="sourceLineNo">28696</span>                                        }<a name="line.28696"></a>
+<span class="sourceLineNo">28697</span>                                } else {<a name="line.28697"></a>
+<span class="sourceLineNo">28698</span>                                        while (it.hasNext()) {<a name="line.28698"></a>
+<span class="sourceLineNo">28699</span>                                                final long ix = it.aLong;<a name="line.28699"></a>
+<span class="sourceLineNo">28700</span>                                                int ox;<a name="line.28700"></a>
+<span class="sourceLineNo">28701</span>                                                ox = (int) toLong(Math.sqrt(ix));<a name="line.28701"></a>
+<span class="sourceLineNo">28702</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28702"></a>
+<span class="sourceLineNo">28703</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.28703"></a>
+<span class="sourceLineNo">28704</span>                                                }<a name="line.28704"></a>
+<span class="sourceLineNo">28705</span>                                        }<a name="line.28705"></a>
+<span class="sourceLineNo">28706</span>                                }<a name="line.28706"></a>
+<span class="sourceLineNo">28707</span>                        } else {<a name="line.28707"></a>
+<span class="sourceLineNo">28708</span>                                if (it.isOutputDouble()) {<a name="line.28708"></a>
+<span class="sourceLineNo">28709</span>                                        while (it.hasNext()) {<a name="line.28709"></a>
+<span class="sourceLineNo">28710</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28710"></a>
+<span class="sourceLineNo">28711</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.28711"></a>
+<span class="sourceLineNo">28712</span>                                                        int ox;<a name="line.28712"></a>
+<span class="sourceLineNo">28713</span>                                                        ox = (int) toLong(Math.sqrt(ix));<a name="line.28713"></a>
+<span class="sourceLineNo">28714</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.28714"></a>
+<span class="sourceLineNo">28715</span>                                                }<a name="line.28715"></a>
+<span class="sourceLineNo">28716</span>                                        }<a name="line.28716"></a>
+<span class="sourceLineNo">28717</span>                                } else {<a name="line.28717"></a>
+<span class="sourceLineNo">28718</span>                                        while (it.hasNext()) {<a name="line.28718"></a>
+<span class="sourceLineNo">28719</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28719"></a>
+<span class="sourceLineNo">28720</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.28720"></a>
+<span class="sourceLineNo">28721</span>                                                        int ox;<a name="line.28721"></a>
+<span class="sourceLineNo">28722</span>                                                        ox = (int) toLong(Math.sqrt(ix));<a name="line.28722"></a>
+<span class="sourceLineNo">28723</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.28723"></a>
+<span class="sourceLineNo">28724</span>                                                }<a name="line.28724"></a>
+<span class="sourceLineNo">28725</span>                                        }<a name="line.28725"></a>
+<span class="sourceLineNo">28726</span>                                }<a name="line.28726"></a>
+<span class="sourceLineNo">28727</span>                        }<a name="line.28727"></a>
+<span class="sourceLineNo">28728</span>                        break;<a name="line.28728"></a>
+<span class="sourceLineNo">28729</span>                case Dataset.FLOAT32:<a name="line.28729"></a>
+<span class="sourceLineNo">28730</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.28730"></a>
+<span class="sourceLineNo">28731</span>                        if (it.isOutputDouble()) {<a name="line.28731"></a>
+<span class="sourceLineNo">28732</span>                                while (it.hasNext()) {<a name="line.28732"></a>
+<span class="sourceLineNo">28733</span>                                        final double ix = it.aDouble;<a name="line.28733"></a>
+<span class="sourceLineNo">28734</span>                                        float ox;<a name="line.28734"></a>
+<span class="sourceLineNo">28735</span>                                        ox = (float) (Math.sqrt(ix));<a name="line.28735"></a>
+<span class="sourceLineNo">28736</span>                                        of32data[it.oIndex] = ox;<a name="line.28736"></a>
+<span class="sourceLineNo">28737</span>                                }<a name="line.28737"></a>
+<span class="sourceLineNo">28738</span>                        } else {<a name="line.28738"></a>
+<span class="sourceLineNo">28739</span>                                while (it.hasNext()) {<a name="line.28739"></a>
+<span class="sourceLineNo">28740</span>                                        final long ix = it.aLong;<a name="line.28740"></a>
+<span class="sourceLineNo">28741</span>                                        float ox;<a name="line.28741"></a>
+<span class="sourceLineNo">28742</span>                                        ox = (float) (Math.sqrt(ix));<a name="line.28742"></a>
+<span class="sourceLineNo">28743</span>                                        of32data[it.oIndex] = ox;<a name="line.28743"></a>
+<span class="sourceLineNo">28744</span>                                }<a name="line.28744"></a>
+<span class="sourceLineNo">28745</span>                        }<a name="line.28745"></a>
+<span class="sourceLineNo">28746</span>                        break;<a name="line.28746"></a>
+<span class="sourceLineNo">28747</span>                case Dataset.FLOAT64:<a name="line.28747"></a>
+<span class="sourceLineNo">28748</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.28748"></a>
+<span class="sourceLineNo">28749</span>                        if (it.isOutputDouble()) {<a name="line.28749"></a>
+<span class="sourceLineNo">28750</span>                                while (it.hasNext()) {<a name="line.28750"></a>
+<span class="sourceLineNo">28751</span>                                        final double ix = it.aDouble;<a name="line.28751"></a>
+<span class="sourceLineNo">28752</span>                                        double ox;<a name="line.28752"></a>
+<span class="sourceLineNo">28753</span>                                        ox = (Math.sqrt(ix));<a name="line.28753"></a>
+<span class="sourceLineNo">28754</span>                                        of64data[it.oIndex] = ox;<a name="line.28754"></a>
+<span class="sourceLineNo">28755</span>                                }<a name="line.28755"></a>
+<span class="sourceLineNo">28756</span>                        } else {<a name="line.28756"></a>
+<span class="sourceLineNo">28757</span>                                while (it.hasNext()) {<a name="line.28757"></a>
+<span class="sourceLineNo">28758</span>                                        final long ix = it.aLong;<a name="line.28758"></a>
+<span class="sourceLineNo">28759</span>                                        double ox;<a name="line.28759"></a>
+<span class="sourceLineNo">28760</span>                                        ox = (Math.sqrt(ix));<a name="line.28760"></a>
+<span class="sourceLineNo">28761</span>                                        of64data[it.oIndex] = ox;<a name="line.28761"></a>
+<span class="sourceLineNo">28762</span>                                }<a name="line.28762"></a>
+<span class="sourceLineNo">28763</span>                        }<a name="line.28763"></a>
+<span class="sourceLineNo">28764</span>                        break;<a name="line.28764"></a>
+<span class="sourceLineNo">28765</span>                case Dataset.ARRAYFLOAT32:<a name="line.28765"></a>
+<span class="sourceLineNo">28766</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.28766"></a>
+<span class="sourceLineNo">28767</span>                        if (is == 1) {<a name="line.28767"></a>
+<span class="sourceLineNo">28768</span>                                if (it.isOutputDouble()) {<a name="line.28768"></a>
+<span class="sourceLineNo">28769</span>                                        while (it.hasNext()) {<a name="line.28769"></a>
+<span class="sourceLineNo">28770</span>                                                final double ix = it.aDouble;<a name="line.28770"></a>
+<span class="sourceLineNo">28771</span>                                                float ox;<a name="line.28771"></a>
+<span class="sourceLineNo">28772</span>                                                ox = (float) (Math.sqrt(ix));<a name="line.28772"></a>
+<span class="sourceLineNo">28773</span>                                                oaf32data[it.oIndex] = ox;<a name="line.28773"></a>
+<span class="sourceLineNo">28774</span>                                        }<a name="line.28774"></a>
+<span class="sourceLineNo">28775</span>                                } else {<a name="line.28775"></a>
+<span class="sourceLineNo">28776</span>                                        while (it.hasNext()) {<a name="line.28776"></a>
+<span class="sourceLineNo">28777</span>                                                final long ix = it.aLong;<a name="line.28777"></a>
+<span class="sourceLineNo">28778</span>                                                float ox;<a name="line.28778"></a>
+<span class="sourceLineNo">28779</span>                                                ox = (float) (Math.sqrt(ix));<a name="line.28779"></a>
+<span class="sourceLineNo">28780</span>                                                oaf32data[it.oIndex] = ox;<a name="line.28780"></a>
+<span class="sourceLineNo">28781</span>                                        }<a name="line.28781"></a>
+<span class="sourceLineNo">28782</span>                                }<a name="line.28782"></a>
+<span class="sourceLineNo">28783</span>                        } else if (as == 1) {<a name="line.28783"></a>
+<span class="sourceLineNo">28784</span>                                if (it.isOutputDouble()) {<a name="line.28784"></a>
+<span class="sourceLineNo">28785</span>                                        while (it.hasNext()) {<a name="line.28785"></a>
+<span class="sourceLineNo">28786</span>                                                final double ix = it.aDouble;<a name="line.28786"></a>
+<span class="sourceLineNo">28787</span>                                                float ox;<a name="line.28787"></a>
+<span class="sourceLineNo">28788</span>                                                ox = (float) (Math.sqrt(ix));<a name="line.28788"></a>
+<span class="sourceLineNo">28789</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28789"></a>
+<span class="sourceLineNo">28790</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.28790"></a>
+<span class="sourceLineNo">28791</span>                                                }<a name="line.28791"></a>
+<span class="sourceLineNo">28792</span>                                        }<a name="line.28792"></a>
+<span class="sourceLineNo">28793</span>                                } else {<a name="line.28793"></a>
+<span class="sourceLineNo">28794</span>                                        while (it.hasNext()) {<a name="line.28794"></a>
+<span class="sourceLineNo">28795</span>                                                final long ix = it.aLong;<a name="line.28795"></a>
+<span class="sourceLineNo">28796</span>                                                float ox;<a name="line.28796"></a>
+<span class="sourceLineNo">28797</span>                                                ox = (float) (Math.sqrt(ix));<a name="line.28797"></a>
+<span class="sourceLineNo">28798</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28798"></a>
+<span class="sourceLineNo">28799</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.28799"></a>
+<span class="sourceLineNo">28800</span>                                                }<a name="line.28800"></a>
+<span class="sourceLineNo">28801</span>                                        }<a name="line.28801"></a>
+<span class="sourceLineNo">28802</span>                                }<a name="line.28802"></a>
+<span class="sourceLineNo">28803</span>                        } else {<a name="line.28803"></a>
+<span class="sourceLineNo">28804</span>                                if (it.isOutputDouble()) {<a name="line.28804"></a>
+<span class="sourceLineNo">28805</span>                                        while (it.hasNext()) {<a name="line.28805"></a>
+<span class="sourceLineNo">28806</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28806"></a>
+<span class="sourceLineNo">28807</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.28807"></a>
+<span class="sourceLineNo">28808</span>                                                        float ox;<a name="line.28808"></a>
+<span class="sourceLineNo">28809</span>                                                        ox = (float) (Math.sqrt(ix));<a name="line.28809"></a>
+<span class="sourceLineNo">28810</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.28810"></a>
+<span class="sourceLineNo">28811</span>                                                }<a name="line.28811"></a>
+<span class="sourceLineNo">28812</span>                                        }<a name="line.28812"></a>
+<span class="sourceLineNo">28813</span>                                } else {<a name="line.28813"></a>
+<span class="sourceLineNo">28814</span>                                        while (it.hasNext()) {<a name="line.28814"></a>
+<span class="sourceLineNo">28815</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28815"></a>
+<span class="sourceLineNo">28816</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.28816"></a>
+<span class="sourceLineNo">28817</span>                                                        float ox;<a name="line.28817"></a>
+<span class="sourceLineNo">28818</span>                                                        ox = (float) (Math.sqrt(ix));<a name="line.28818"></a>
+<span class="sourceLineNo">28819</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.28819"></a>
+<span class="sourceLineNo">28820</span>                                                }<a name="line.28820"></a>
+<span class="sourceLineNo">28821</span>                                        }<a name="line.28821"></a>
+<span class="sourceLineNo">28822</span>                                }<a name="line.28822"></a>
+<span class="sourceLineNo">28823</span>                        }<a name="line.28823"></a>
+<span class="sourceLineNo">28824</span>                        break;<a name="line.28824"></a>
+<span class="sourceLineNo">28825</span>                case Dataset.ARRAYFLOAT64:<a name="line.28825"></a>
+<span class="sourceLineNo">28826</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.28826"></a>
+<span class="sourceLineNo">28827</span>                        if (is == 1) {<a name="line.28827"></a>
+<span class="sourceLineNo">28828</span>                                if (it.isOutputDouble()) {<a name="line.28828"></a>
+<span class="sourceLineNo">28829</span>                                        while (it.hasNext()) {<a name="line.28829"></a>
+<span class="sourceLineNo">28830</span>                                                final double ix = it.aDouble;<a name="line.28830"></a>
+<span class="sourceLineNo">28831</span>                                                double ox;<a name="line.28831"></a>
+<span class="sourceLineNo">28832</span>                                                ox = (Math.sqrt(ix));<a name="line.28832"></a>
+<span class="sourceLineNo">28833</span>                                                oaf64data[it.oIndex] = ox;<a name="line.28833"></a>
+<span class="sourceLineNo">28834</span>                                        }<a name="line.28834"></a>
+<span class="sourceLineNo">28835</span>                                } else {<a name="line.28835"></a>
+<span class="sourceLineNo">28836</span>                                        while (it.hasNext()) {<a name="line.28836"></a>
+<span class="sourceLineNo">28837</span>                                                final long ix = it.aLong;<a name="line.28837"></a>
+<span class="sourceLineNo">28838</span>                                                double ox;<a name="line.28838"></a>
+<span class="sourceLineNo">28839</span>                                                ox = (Math.sqrt(ix));<a name="line.28839"></a>
+<span class="sourceLineNo">28840</span>                                                oaf64data[it.oIndex] = ox;<a name="line.28840"></a>
+<span class="sourceLineNo">28841</span>                                        }<a name="line.28841"></a>
+<span class="sourceLineNo">28842</span>                                }<a name="line.28842"></a>
+<span class="sourceLineNo">28843</span>                        } else if (as == 1) {<a name="line.28843"></a>
+<span class="sourceLineNo">28844</span>                                if (it.isOutputDouble()) {<a name="line.28844"></a>
+<span class="sourceLineNo">28845</span>                                        while (it.hasNext()) {<a name="line.28845"></a>
+<span class="sourceLineNo">28846</span>                                                final double ix = it.aDouble;<a name="line.28846"></a>
+<span class="sourceLineNo">28847</span>                                                double ox;<a name="line.28847"></a>
+<span class="sourceLineNo">28848</span>                                                ox = (Math.sqrt(ix));<a name="line.28848"></a>
+<span class="sourceLineNo">28849</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28849"></a>
+<span class="sourceLineNo">28850</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.28850"></a>
+<span class="sourceLineNo">28851</span>                                                }<a name="line.28851"></a>
+<span class="sourceLineNo">28852</span>                                        }<a name="line.28852"></a>
+<span class="sourceLineNo">28853</span>                                } else {<a name="line.28853"></a>
+<span class="sourceLineNo">28854</span>                                        while (it.hasNext()) {<a name="line.28854"></a>
+<span class="sourceLineNo">28855</span>                                                final long ix = it.aLong;<a name="line.28855"></a>
+<span class="sourceLineNo">28856</span>                                                double ox;<a name="line.28856"></a>
+<span class="sourceLineNo">28857</span>                                                ox = (Math.sqrt(ix));<a name="line.28857"></a>
+<span class="sourceLineNo">28858</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28858"></a>
+<span class="sourceLineNo">28859</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.28859"></a>
+<span class="sourceLineNo">28860</span>                                                }<a name="line.28860"></a>
+<span class="sourceLineNo">28861</span>                                        }<a name="line.28861"></a>
+<span class="sourceLineNo">28862</span>                                }<a name="line.28862"></a>
+<span class="sourceLineNo">28863</span>                        } else {<a name="line.28863"></a>
+<span class="sourceLineNo">28864</span>                                if (it.isOutputDouble()) {<a name="line.28864"></a>
+<span class="sourceLineNo">28865</span>                                        while (it.hasNext()) {<a name="line.28865"></a>
+<span class="sourceLineNo">28866</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28866"></a>
+<span class="sourceLineNo">28867</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.28867"></a>
+<span class="sourceLineNo">28868</span>                                                        double ox;<a name="line.28868"></a>
+<span class="sourceLineNo">28869</span>                                                        ox = (Math.sqrt(ix));<a name="line.28869"></a>
+<span class="sourceLineNo">28870</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.28870"></a>
+<span class="sourceLineNo">28871</span>                                                }<a name="line.28871"></a>
+<span class="sourceLineNo">28872</span>                                        }<a name="line.28872"></a>
+<span class="sourceLineNo">28873</span>                                } else {<a name="line.28873"></a>
+<span class="sourceLineNo">28874</span>                                        while (it.hasNext()) {<a name="line.28874"></a>
+<span class="sourceLineNo">28875</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.28875"></a>
+<span class="sourceLineNo">28876</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.28876"></a>
+<span class="sourceLineNo">28877</span>                                                        double ox;<a name="line.28877"></a>
+<span class="sourceLineNo">28878</span>                                                        ox = (Math.sqrt(ix));<a name="line.28878"></a>
+<span class="sourceLineNo">28879</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.28879"></a>
+<span class="sourceLineNo">28880</span>                                                }<a name="line.28880"></a>
+<span class="sourceLineNo">28881</span>                                        }<a name="line.28881"></a>
+<span class="sourceLineNo">28882</span>                                }<a name="line.28882"></a>
+<span class="sourceLineNo">28883</span>                        }<a name="line.28883"></a>
+<span class="sourceLineNo">28884</span>                        break;<a name="line.28884"></a>
+<span class="sourceLineNo">28885</span>                case Dataset.COMPLEX64:<a name="line.28885"></a>
+<span class="sourceLineNo">28886</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.28886"></a>
+<span class="sourceLineNo">28887</span>                        if (!da.isComplex()) {<a name="line.28887"></a>
+<span class="sourceLineNo">28888</span>                                if (it.isOutputDouble()) {<a name="line.28888"></a>
+<span class="sourceLineNo">28889</span>                                        final double iy = 0;<a name="line.28889"></a>
+<span class="sourceLineNo">28890</span>                                        while (it.hasNext()) {<a name="line.28890"></a>
+<span class="sourceLineNo">28891</span>                                                final double ix = it.aDouble;<a name="line.28891"></a>
+<span class="sourceLineNo">28892</span>                                                Complex tz;<a name="line.28892"></a>
+<span class="sourceLineNo">28893</span>                                                float ox;<a name="line.28893"></a>
+<span class="sourceLineNo">28894</span>                                                float oy;<a name="line.28894"></a>
+<span class="sourceLineNo">28895</span>                                                tz = new Complex(ix, iy).sqrt();<a name="line.28895"></a>
+<span class="sourceLineNo">28896</span>                                                ox = (float) (tz.getReal());<a name="line.28896"></a>
+<span class="sourceLineNo">28897</span>                                                oy = (float) (tz.getImaginary());<a name="line.28897"></a>
+<span class="sourceLineNo">28898</span>                                                oc64data[it.oIndex] = ox;<a name="line.28898"></a>
+<span class="sourceLineNo">28899</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.28899"></a>
+<span class="sourceLineNo">28900</span>                                        }<a name="line.28900"></a>
+<span class="sourceLineNo">28901</span>                                } else {<a name="line.28901"></a>
+<span class="sourceLineNo">28902</span>                                        final long iy = 0;<a name="line.28902"></a>
+<span class="sourceLineNo">28903</span>                                        while (it.hasNext()) {<a name="line.28903"></a>
+<span class="sourceLineNo">28904</span>                                                final long ix = it.aLong;<a name="line.28904"></a>
+<span class="sourceLineNo">28905</span>                                                Complex tz;<a name="line.28905"></a>
+<span class="sourceLineNo">28906</span>                                                float ox;<a name="line.28906"></a>
+<span class="sourceLineNo">28907</span>                                                float oy;<a name="line.28907"></a>
+<span class="sourceLineNo">28908</span>                                                tz = new Complex(ix, iy).sqrt();<a name="line.28908"></a>
+<span class="sourceLineNo">28909</span>                                                ox = (float) toLong(tz.getReal());<a name="line.28909"></a>
+<span class="sourceLineNo">28910</span>                                                oy = (float) toLong(tz.getImaginary());<a name="line.28910"></a>
+<span class="sourceLineNo">28911</span>                                                oc64data[it.oIndex] = ox;<a name="line.28911"></a>
+<span class="sourceLineNo">28912</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.28912"></a>
+<span class="sourceLineNo">28913</span>                                        }<a name="line.28913"></a>
+<span class="sourceLineNo">28914</span>                                }<a name="line.28914"></a>
+<span class="sourceLineNo">28915</span>                        } else {<a name="line.28915"></a>
+<span class="sourceLineNo">28916</span>                                while (it.hasNext()) {<a name="line.28916"></a>
+<span class="sourceLineNo">28917</span>                                        final double ix = it.aDouble;<a name="line.28917"></a>
+<span class="sourceLineNo">28918</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.28918"></a>
+<span class="sourceLineNo">28919</span>                                        Complex tz;<a name="line.28919"></a>
+<span class="sourceLineNo">28920</span>                                        float ox;<a name="line.28920"></a>
+<span class="sourceLineNo">28921</span>                                        float oy;<a name="line.28921"></a>
+<span class="sourceLineNo">28922</span>                                        tz = new Complex(ix, iy).sqrt();<a name="line.28922"></a>
+<span class="sourceLineNo">28923</span>                                        ox = (float) (tz.getReal());<a name="line.28923"></a>
+<span class="sourceLineNo">28924</span>                                        oy = (float) (tz.getImaginary());<a name="line.28924"></a>
+<span class="sourceLineNo">28925</span>                                        oc64data[it.oIndex] = ox;<a name="line.28925"></a>
+<span class="sourceLineNo">28926</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.28926"></a>
+<span class="sourceLineNo">28927</span>                                }<a name="line.28927"></a>
+<span class="sourceLineNo">28928</span>                        }<a name="line.28928"></a>
+<span class="sourceLineNo">28929</span>                        break;<a name="line.28929"></a>
+<span class="sourceLineNo">28930</span>                case Dataset.COMPLEX128:<a name="line.28930"></a>
+<span class="sourceLineNo">28931</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.28931"></a>
+<span class="sourceLineNo">28932</span>                        if (!da.isComplex()) {<a name="line.28932"></a>
+<span class="sourceLineNo">28933</span>                                if (it.isOutputDouble()) {<a name="line.28933"></a>
+<span class="sourceLineNo">28934</span>                                        final double iy = 0;<a name="line.28934"></a>
+<span class="sourceLineNo">28935</span>                                        while (it.hasNext()) {<a name="line.28935"></a>
+<span class="sourceLineNo">28936</span>                                                final double ix = it.aDouble;<a name="line.28936"></a>
+<span class="sourceLineNo">28937</span>                                                Complex tz;<a name="line.28937"></a>
+<span class="sourceLineNo">28938</span>                                                double ox;<a name="line.28938"></a>
+<span class="sourceLineNo">28939</span>                                                double oy;<a name="line.28939"></a>
+<span class="sourceLineNo">28940</span>                                                tz = new Complex(ix, iy).sqrt();<a name="line.28940"></a>
+<span class="sourceLineNo">28941</span>                                                ox = (tz.getReal());<a name="line.28941"></a>
+<span class="sourceLineNo">28942</span>                                                oy = (tz.getImaginary());<a name="line.28942"></a>
+<span class="sourceLineNo">28943</span>                                                oc128data[it.oIndex] = ox;<a name="line.28943"></a>
+<span class="sourceLineNo">28944</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.28944"></a>
+<span class="sourceLineNo">28945</span>                                        }<a name="line.28945"></a>
+<span class="sourceLineNo">28946</span>                                } else {<a name="line.28946"></a>
+<span class="sourceLineNo">28947</span>                                        final long iy = 0;<a name="line.28947"></a>
+<span class="sourceLineNo">28948</span>                                        while (it.hasNext()) {<a name="line.28948"></a>
+<span class="sourceLineNo">28949</span>                                                final long ix = it.aLong;<a name="line.28949"></a>
+<span class="sourceLineNo">28950</span>                                                Complex tz;<a name="line.28950"></a>
+<span class="sourceLineNo">28951</span>                                                double ox;<a name="line.28951"></a>
+<span class="sourceLineNo">28952</span>                                                double oy;<a name="line.28952"></a>
+<span class="sourceLineNo">28953</span>                                                tz = new Complex(ix, iy).sqrt();<a name="line.28953"></a>
+<span class="sourceLineNo">28954</span>                                                ox = (tz.getReal());<a name="line.28954"></a>
+<span class="sourceLineNo">28955</span>                                                oy = (tz.getImaginary());<a name="line.28955"></a>
+<span class="sourceLineNo">28956</span>                                                oc128data[it.oIndex] = ox;<a name="line.28956"></a>
+<span class="sourceLineNo">28957</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.28957"></a>
+<span class="sourceLineNo">28958</span>                                        }<a name="line.28958"></a>
+<span class="sourceLineNo">28959</span>                                }<a name="line.28959"></a>
+<span class="sourceLineNo">28960</span>                        } else {<a name="line.28960"></a>
+<span class="sourceLineNo">28961</span>                                while (it.hasNext()) {<a name="line.28961"></a>
+<span class="sourceLineNo">28962</span>                                        final double ix = it.aDouble;<a name="line.28962"></a>
+<span class="sourceLineNo">28963</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.28963"></a>
+<span class="sourceLineNo">28964</span>                                        Complex tz;<a name="line.28964"></a>
+<span class="sourceLineNo">28965</span>                                        double ox;<a name="line.28965"></a>
+<span class="sourceLineNo">28966</span>                                        double oy;<a name="line.28966"></a>
+<span class="sourceLineNo">28967</span>                                        tz = new Complex(ix, iy).sqrt();<a name="line.28967"></a>
+<span class="sourceLineNo">28968</span>                                        ox = (tz.getReal());<a name="line.28968"></a>
+<span class="sourceLineNo">28969</span>                                        oy = (tz.getImaginary());<a name="line.28969"></a>
+<span class="sourceLineNo">28970</span>                                        oc128data[it.oIndex] = ox;<a name="line.28970"></a>
+<span class="sourceLineNo">28971</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.28971"></a>
+<span class="sourceLineNo">28972</span>                                }<a name="line.28972"></a>
+<span class="sourceLineNo">28973</span>                        }<a name="line.28973"></a>
+<span class="sourceLineNo">28974</span>                        break;<a name="line.28974"></a>
+<span class="sourceLineNo">28975</span>                default:<a name="line.28975"></a>
+<span class="sourceLineNo">28976</span>                        throw new IllegalArgumentException("sqrt supports integer, compound integer, real, compound real, complex datasets only");<a name="line.28976"></a>
+<span class="sourceLineNo">28977</span>                }<a name="line.28977"></a>
+<span class="sourceLineNo">28978</span><a name="line.28978"></a>
+<span class="sourceLineNo">28979</span>                addFunctionName(result, "sqrt");<a name="line.28979"></a>
+<span class="sourceLineNo">28980</span>                return result;<a name="line.28980"></a>
+<span class="sourceLineNo">28981</span>        }<a name="line.28981"></a>
+<span class="sourceLineNo">28982</span><a name="line.28982"></a>
+<span class="sourceLineNo">28983</span>        /**<a name="line.28983"></a>
+<span class="sourceLineNo">28984</span>         * cbrt - evaluate the cube root function on each element of the dataset<a name="line.28984"></a>
+<span class="sourceLineNo">28985</span>         * @param a<a name="line.28985"></a>
+<span class="sourceLineNo">28986</span>         * @return dataset<a name="line.28986"></a>
+<span class="sourceLineNo">28987</span>         */<a name="line.28987"></a>
+<span class="sourceLineNo">28988</span>        public static Dataset cbrt(final Object a) {<a name="line.28988"></a>
+<span class="sourceLineNo">28989</span>                return cbrt(a, null);<a name="line.28989"></a>
+<span class="sourceLineNo">28990</span>        }<a name="line.28990"></a>
+<span class="sourceLineNo">28991</span><a name="line.28991"></a>
+<span class="sourceLineNo">28992</span>        /**<a name="line.28992"></a>
+<span class="sourceLineNo">28993</span>         * cbrt - evaluate the cube root function on each element of the dataset<a name="line.28993"></a>
+<span class="sourceLineNo">28994</span>         * @param a<a name="line.28994"></a>
+<span class="sourceLineNo">28995</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.28995"></a>
+<span class="sourceLineNo">28996</span>         * @return dataset<a name="line.28996"></a>
+<span class="sourceLineNo">28997</span>         */<a name="line.28997"></a>
+<span class="sourceLineNo">28998</span>        public static Dataset cbrt(final Object a, final Dataset o) {<a name="line.28998"></a>
+<span class="sourceLineNo">28999</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.28999"></a>
+<span class="sourceLineNo">29000</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.29000"></a>
+<span class="sourceLineNo">29001</span>                final Dataset result = it.getOutput();<a name="line.29001"></a>
+<span class="sourceLineNo">29002</span>                if (!result.isComplex()) {<a name="line.29002"></a>
+<span class="sourceLineNo">29003</span>                        if (da.isComplex()) {<a name="line.29003"></a>
+<span class="sourceLineNo">29004</span>                                da = da.getRealView();<a name="line.29004"></a>
+<span class="sourceLineNo">29005</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.29005"></a>
+<span class="sourceLineNo">29006</span>                        }<a name="line.29006"></a>
+<span class="sourceLineNo">29007</span>                }<a name="line.29007"></a>
+<span class="sourceLineNo">29008</span>                final int is = result.getElementsPerItem();<a name="line.29008"></a>
+<span class="sourceLineNo">29009</span>                final int as = da.getElementsPerItem();<a name="line.29009"></a>
+<span class="sourceLineNo">29010</span>                final int dt = result.getDType();<a name="line.29010"></a>
+<span class="sourceLineNo">29011</span><a name="line.29011"></a>
+<span class="sourceLineNo">29012</span>                switch(dt) {<a name="line.29012"></a>
+<span class="sourceLineNo">29013</span>                case Dataset.INT8:<a name="line.29013"></a>
+<span class="sourceLineNo">29014</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.29014"></a>
+<span class="sourceLineNo">29015</span>                        if (it.isOutputDouble()) {<a name="line.29015"></a>
+<span class="sourceLineNo">29016</span>                                while (it.hasNext()) {<a name="line.29016"></a>
+<span class="sourceLineNo">29017</span>                                        final double ix = it.aDouble;<a name="line.29017"></a>
+<span class="sourceLineNo">29018</span>                                        byte ox;<a name="line.29018"></a>
+<span class="sourceLineNo">29019</span>                                        ox = (byte) toLong(Math.cbrt(ix));<a name="line.29019"></a>
+<span class="sourceLineNo">29020</span>                                        oi8data[it.oIndex] = ox;<a name="line.29020"></a>
+<span class="sourceLineNo">29021</span>                                }<a name="line.29021"></a>
+<span class="sourceLineNo">29022</span>                        } else {<a name="line.29022"></a>
+<span class="sourceLineNo">29023</span>                                while (it.hasNext()) {<a name="line.29023"></a>
+<span class="sourceLineNo">29024</span>                                        final long ix = it.aLong;<a name="line.29024"></a>
+<span class="sourceLineNo">29025</span>                                        byte ox;<a name="line.29025"></a>
+<span class="sourceLineNo">29026</span>                                        ox = (byte) toLong(Math.cbrt(ix));<a name="line.29026"></a>
+<span class="sourceLineNo">29027</span>                                        oi8data[it.oIndex] = ox;<a name="line.29027"></a>
+<span class="sourceLineNo">29028</span>                                }<a name="line.29028"></a>
+<span class="sourceLineNo">29029</span>                        }<a name="line.29029"></a>
+<span class="sourceLineNo">29030</span>                        break;<a name="line.29030"></a>
+<span class="sourceLineNo">29031</span>                case Dataset.INT16:<a name="line.29031"></a>
+<span class="sourceLineNo">29032</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.29032"></a>
+<span class="sourceLineNo">29033</span>                        if (it.isOutputDouble()) {<a name="line.29033"></a>
+<span class="sourceLineNo">29034</span>                                while (it.hasNext()) {<a name="line.29034"></a>
+<span class="sourceLineNo">29035</span>                                        final double ix = it.aDouble;<a name="line.29035"></a>
+<span class="sourceLineNo">29036</span>                                        short ox;<a name="line.29036"></a>
+<span class="sourceLineNo">29037</span>                                        ox = (short) toLong(Math.cbrt(ix));<a name="line.29037"></a>
+<span class="sourceLineNo">29038</span>                                        oi16data[it.oIndex] = ox;<a name="line.29038"></a>
+<span class="sourceLineNo">29039</span>                                }<a name="line.29039"></a>
+<span class="sourceLineNo">29040</span>                        } else {<a name="line.29040"></a>
+<span class="sourceLineNo">29041</span>                                while (it.hasNext()) {<a name="line.29041"></a>
+<span class="sourceLineNo">29042</span>                                        final long ix = it.aLong;<a name="line.29042"></a>
+<span class="sourceLineNo">29043</span>                                        short ox;<a name="line.29043"></a>
+<span class="sourceLineNo">29044</span>                                        ox = (short) toLong(Math.cbrt(ix));<a name="line.29044"></a>
+<span class="sourceLineNo">29045</span>                                        oi16data[it.oIndex] = ox;<a name="line.29045"></a>
+<span class="sourceLineNo">29046</span>                                }<a name="line.29046"></a>
+<span class="sourceLineNo">29047</span>                        }<a name="line.29047"></a>
+<span class="sourceLineNo">29048</span>                        break;<a name="line.29048"></a>
+<span class="sourceLineNo">29049</span>                case Dataset.INT64:<a name="line.29049"></a>
+<span class="sourceLineNo">29050</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.29050"></a>
+<span class="sourceLineNo">29051</span>                        if (it.isOutputDouble()) {<a name="line.29051"></a>
+<span class="sourceLineNo">29052</span>                                while (it.hasNext()) {<a name="line.29052"></a>
+<span class="sourceLineNo">29053</span>                                        final double ix = it.aDouble;<a name="line.29053"></a>
+<span class="sourceLineNo">29054</span>                                        long ox;<a name="line.29054"></a>
+<span class="sourceLineNo">29055</span>                                        ox = toLong(Math.cbrt(ix));<a name="line.29055"></a>
+<span class="sourceLineNo">29056</span>                                        oi64data[it.oIndex] = ox;<a name="line.29056"></a>
+<span class="sourceLineNo">29057</span>                                }<a name="line.29057"></a>
+<span class="sourceLineNo">29058</span>                        } else {<a name="line.29058"></a>
+<span class="sourceLineNo">29059</span>                                while (it.hasNext()) {<a name="line.29059"></a>
+<span class="sourceLineNo">29060</span>                                        final long ix = it.aLong;<a name="line.29060"></a>
+<span class="sourceLineNo">29061</span>                                        long ox;<a name="line.29061"></a>
+<span class="sourceLineNo">29062</span>                                        ox = toLong(Math.cbrt(ix));<a name="line.29062"></a>
+<span class="sourceLineNo">29063</span>                                        oi64data[it.oIndex] = ox;<a name="line.29063"></a>
+<span class="sourceLineNo">29064</span>                                }<a name="line.29064"></a>
+<span class="sourceLineNo">29065</span>                        }<a name="line.29065"></a>
+<span class="sourceLineNo">29066</span>                        break;<a name="line.29066"></a>
+<span class="sourceLineNo">29067</span>                case Dataset.INT32:<a name="line.29067"></a>
+<span class="sourceLineNo">29068</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.29068"></a>
+<span class="sourceLineNo">29069</span>                        if (it.isOutputDouble()) {<a name="line.29069"></a>
+<span class="sourceLineNo">29070</span>                                while (it.hasNext()) {<a name="line.29070"></a>
+<span class="sourceLineNo">29071</span>                                        final double ix = it.aDouble;<a name="line.29071"></a>
+<span class="sourceLineNo">29072</span>                                        int ox;<a name="line.29072"></a>
+<span class="sourceLineNo">29073</span>                                        ox = (int) toLong(Math.cbrt(ix));<a name="line.29073"></a>
+<span class="sourceLineNo">29074</span>                                        oi32data[it.oIndex] = ox;<a name="line.29074"></a>
+<span class="sourceLineNo">29075</span>                                }<a name="line.29075"></a>
+<span class="sourceLineNo">29076</span>                        } else {<a name="line.29076"></a>
+<span class="sourceLineNo">29077</span>                                while (it.hasNext()) {<a name="line.29077"></a>
+<span class="sourceLineNo">29078</span>                                        final long ix = it.aLong;<a name="line.29078"></a>
+<span class="sourceLineNo">29079</span>                                        int ox;<a name="line.29079"></a>
+<span class="sourceLineNo">29080</span>                                        ox = (int) toLong(Math.cbrt(ix));<a name="line.29080"></a>
+<span class="sourceLineNo">29081</span>                                        oi32data[it.oIndex] = ox;<a name="line.29081"></a>
+<span class="sourceLineNo">29082</span>                                }<a name="line.29082"></a>
+<span class="sourceLineNo">29083</span>                        }<a name="line.29083"></a>
+<span class="sourceLineNo">29084</span>                        break;<a name="line.29084"></a>
+<span class="sourceLineNo">29085</span>                case Dataset.ARRAYINT8:<a name="line.29085"></a>
+<span class="sourceLineNo">29086</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.29086"></a>
+<span class="sourceLineNo">29087</span>                        if (is == 1) {<a name="line.29087"></a>
+<span class="sourceLineNo">29088</span>                                if (it.isOutputDouble()) {<a name="line.29088"></a>
+<span class="sourceLineNo">29089</span>                                        while (it.hasNext()) {<a name="line.29089"></a>
+<span class="sourceLineNo">29090</span>                                                final double ix = it.aDouble;<a name="line.29090"></a>
+<span class="sourceLineNo">29091</span>                                                byte ox;<a name="line.29091"></a>
+<span class="sourceLineNo">29092</span>                                                ox = (byte) toLong(Math.cbrt(ix));<a name="line.29092"></a>
+<span class="sourceLineNo">29093</span>                                                oai8data[it.oIndex] = ox;<a name="line.29093"></a>
+<span class="sourceLineNo">29094</span>                                        }<a name="line.29094"></a>
+<span class="sourceLineNo">29095</span>                                } else {<a name="line.29095"></a>
+<span class="sourceLineNo">29096</span>                                        while (it.hasNext()) {<a name="line.29096"></a>
+<span class="sourceLineNo">29097</span>                                                final long ix = it.aLong;<a name="line.29097"></a>
+<span class="sourceLineNo">29098</span>                                                byte ox;<a name="line.29098"></a>
+<span class="sourceLineNo">29099</span>                                                ox = (byte) toLong(Math.cbrt(ix));<a name="line.29099"></a>
+<span class="sourceLineNo">29100</span>                                                oai8data[it.oIndex] = ox;<a name="line.29100"></a>
+<span class="sourceLineNo">29101</span>                                        }<a name="line.29101"></a>
+<span class="sourceLineNo">29102</span>                                }<a name="line.29102"></a>
+<span class="sourceLineNo">29103</span>                        } else if (as == 1) {<a name="line.29103"></a>
+<span class="sourceLineNo">29104</span>                                if (it.isOutputDouble()) {<a name="line.29104"></a>
+<span class="sourceLineNo">29105</span>                                        while (it.hasNext()) {<a name="line.29105"></a>
+<span class="sourceLineNo">29106</span>                                                final double ix = it.aDouble;<a name="line.29106"></a>
+<span class="sourceLineNo">29107</span>                                                byte ox;<a name="line.29107"></a>
+<span class="sourceLineNo">29108</span>                                                ox = (byte) toLong(Math.cbrt(ix));<a name="line.29108"></a>
+<span class="sourceLineNo">29109</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29109"></a>
+<span class="sourceLineNo">29110</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.29110"></a>
+<span class="sourceLineNo">29111</span>                                                }<a name="line.29111"></a>
+<span class="sourceLineNo">29112</span>                                        }<a name="line.29112"></a>
+<span class="sourceLineNo">29113</span>                                } else {<a name="line.29113"></a>
+<span class="sourceLineNo">29114</span>                                        while (it.hasNext()) {<a name="line.29114"></a>
+<span class="sourceLineNo">29115</span>                                                final long ix = it.aLong;<a name="line.29115"></a>
+<span class="sourceLineNo">29116</span>                                                byte ox;<a name="line.29116"></a>
+<span class="sourceLineNo">29117</span>                                                ox = (byte) toLong(Math.cbrt(ix));<a name="line.29117"></a>
+<span class="sourceLineNo">29118</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29118"></a>
+<span class="sourceLineNo">29119</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.29119"></a>
+<span class="sourceLineNo">29120</span>                                                }<a name="line.29120"></a>
+<span class="sourceLineNo">29121</span>                                        }<a name="line.29121"></a>
+<span class="sourceLineNo">29122</span>                                }<a name="line.29122"></a>
+<span class="sourceLineNo">29123</span>                        } else {<a name="line.29123"></a>
+<span class="sourceLineNo">29124</span>                                if (it.isOutputDouble()) {<a name="line.29124"></a>
+<span class="sourceLineNo">29125</span>                                        while (it.hasNext()) {<a name="line.29125"></a>
+<span class="sourceLineNo">29126</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29126"></a>
+<span class="sourceLineNo">29127</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.29127"></a>
+<span class="sourceLineNo">29128</span>                                                        byte ox;<a name="line.29128"></a>
+<span class="sourceLineNo">29129</span>                                                        ox = (byte) toLong(Math.cbrt(ix));<a name="line.29129"></a>
+<span class="sourceLineNo">29130</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.29130"></a>
+<span class="sourceLineNo">29131</span>                                                }<a name="line.29131"></a>
+<span class="sourceLineNo">29132</span>                                        }<a name="line.29132"></a>
+<span class="sourceLineNo">29133</span>                                } else {<a name="line.29133"></a>
+<span class="sourceLineNo">29134</span>                                        while (it.hasNext()) {<a name="line.29134"></a>
+<span class="sourceLineNo">29135</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29135"></a>
+<span class="sourceLineNo">29136</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.29136"></a>
+<span class="sourceLineNo">29137</span>                                                        byte ox;<a name="line.29137"></a>
+<span class="sourceLineNo">29138</span>                                                        ox = (byte) toLong(Math.cbrt(ix));<a name="line.29138"></a>
+<span class="sourceLineNo">29139</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.29139"></a>
+<span class="sourceLineNo">29140</span>                                                }<a name="line.29140"></a>
+<span class="sourceLineNo">29141</span>                                        }<a name="line.29141"></a>
+<span class="sourceLineNo">29142</span>                                }<a name="line.29142"></a>
+<span class="sourceLineNo">29143</span>                        }<a name="line.29143"></a>
+<span class="sourceLineNo">29144</span>                        break;<a name="line.29144"></a>
+<span class="sourceLineNo">29145</span>                case Dataset.ARRAYINT16:<a name="line.29145"></a>
+<span class="sourceLineNo">29146</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.29146"></a>
+<span class="sourceLineNo">29147</span>                        if (is == 1) {<a name="line.29147"></a>
+<span class="sourceLineNo">29148</span>                                if (it.isOutputDouble()) {<a name="line.29148"></a>
+<span class="sourceLineNo">29149</span>                                        while (it.hasNext()) {<a name="line.29149"></a>
+<span class="sourceLineNo">29150</span>                                                final double ix = it.aDouble;<a name="line.29150"></a>
+<span class="sourceLineNo">29151</span>                                                short ox;<a name="line.29151"></a>
+<span class="sourceLineNo">29152</span>                                                ox = (short) toLong(Math.cbrt(ix));<a name="line.29152"></a>
+<span class="sourceLineNo">29153</span>                                                oai16data[it.oIndex] = ox;<a name="line.29153"></a>
+<span class="sourceLineNo">29154</span>                                        }<a name="line.29154"></a>
+<span class="sourceLineNo">29155</span>                                } else {<a name="line.29155"></a>
+<span class="sourceLineNo">29156</span>                                        while (it.hasNext()) {<a name="line.29156"></a>
+<span class="sourceLineNo">29157</span>                                                final long ix = it.aLong;<a name="line.29157"></a>
+<span class="sourceLineNo">29158</span>                                                short ox;<a name="line.29158"></a>
+<span class="sourceLineNo">29159</span>                                                ox = (short) toLong(Math.cbrt(ix));<a name="line.29159"></a>
+<span class="sourceLineNo">29160</span>                                                oai16data[it.oIndex] = ox;<a name="line.29160"></a>
+<span class="sourceLineNo">29161</span>                                        }<a name="line.29161"></a>
+<span class="sourceLineNo">29162</span>                                }<a name="line.29162"></a>
+<span class="sourceLineNo">29163</span>                        } else if (as == 1) {<a name="line.29163"></a>
+<span class="sourceLineNo">29164</span>                                if (it.isOutputDouble()) {<a name="line.29164"></a>
+<span class="sourceLineNo">29165</span>                                        while (it.hasNext()) {<a name="line.29165"></a>
+<span class="sourceLineNo">29166</span>                                                final double ix = it.aDouble;<a name="line.29166"></a>
+<span class="sourceLineNo">29167</span>                                                short ox;<a name="line.29167"></a>
+<span class="sourceLineNo">29168</span>                                                ox = (short) toLong(Math.cbrt(ix));<a name="line.29168"></a>
+<span class="sourceLineNo">29169</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29169"></a>
+<span class="sourceLineNo">29170</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.29170"></a>
+<span class="sourceLineNo">29171</span>                                                }<a name="line.29171"></a>
+<span class="sourceLineNo">29172</span>                                        }<a name="line.29172"></a>
+<span class="sourceLineNo">29173</span>                                } else {<a name="line.29173"></a>
+<span class="sourceLineNo">29174</span>                                        while (it.hasNext()) {<a name="line.29174"></a>
+<span class="sourceLineNo">29175</span>                                                final long ix = it.aLong;<a name="line.29175"></a>
+<span class="sourceLineNo">29176</span>                                                short ox;<a name="line.29176"></a>
+<span class="sourceLineNo">29177</span>                                                ox = (short) toLong(Math.cbrt(ix));<a name="line.29177"></a>
+<span class="sourceLineNo">29178</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29178"></a>
+<span class="sourceLineNo">29179</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.29179"></a>
+<span class="sourceLineNo">29180</span>                                                }<a name="line.29180"></a>
+<span class="sourceLineNo">29181</span>                                        }<a name="line.29181"></a>
+<span class="sourceLineNo">29182</span>                                }<a name="line.29182"></a>
+<span class="sourceLineNo">29183</span>                        } else {<a name="line.29183"></a>
+<span class="sourceLineNo">29184</span>                                if (it.isOutputDouble()) {<a name="line.29184"></a>
+<span class="sourceLineNo">29185</span>                                        while (it.hasNext()) {<a name="line.29185"></a>
+<span class="sourceLineNo">29186</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29186"></a>
+<span class="sourceLineNo">29187</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.29187"></a>
+<span class="sourceLineNo">29188</span>                                                        short ox;<a name="line.29188"></a>
+<span class="sourceLineNo">29189</span>                                                        ox = (short) toLong(Math.cbrt(ix));<a name="line.29189"></a>
+<span class="sourceLineNo">29190</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.29190"></a>
+<span class="sourceLineNo">29191</span>                                                }<a name="line.29191"></a>
+<span class="sourceLineNo">29192</span>                                        }<a name="line.29192"></a>
+<span class="sourceLineNo">29193</span>                                } else {<a name="line.29193"></a>
+<span class="sourceLineNo">29194</span>                                        while (it.hasNext()) {<a name="line.29194"></a>
+<span class="sourceLineNo">29195</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29195"></a>
+<span class="sourceLineNo">29196</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.29196"></a>
+<span class="sourceLineNo">29197</span>                                                        short ox;<a name="line.29197"></a>
+<span class="sourceLineNo">29198</span>                                                        ox = (short) toLong(Math.cbrt(ix));<a name="line.29198"></a>
+<span class="sourceLineNo">29199</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.29199"></a>
+<span class="sourceLineNo">29200</span>                                                }<a name="line.29200"></a>
+<span class="sourceLineNo">29201</span>                                        }<a name="line.29201"></a>
+<span class="sourceLineNo">29202</span>                                }<a name="line.29202"></a>
+<span class="sourceLineNo">29203</span>                        }<a name="line.29203"></a>
+<span class="sourceLineNo">29204</span>                        break;<a name="line.29204"></a>
+<span class="sourceLineNo">29205</span>                case Dataset.ARRAYINT64:<a name="line.29205"></a>
+<span class="sourceLineNo">29206</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.29206"></a>
+<span class="sourceLineNo">29207</span>                        if (is == 1) {<a name="line.29207"></a>
+<span class="sourceLineNo">29208</span>                                if (it.isOutputDouble()) {<a name="line.29208"></a>
+<span class="sourceLineNo">29209</span>                                        while (it.hasNext()) {<a name="line.29209"></a>
+<span class="sourceLineNo">29210</span>                                                final double ix = it.aDouble;<a name="line.29210"></a>
+<span class="sourceLineNo">29211</span>                                                long ox;<a name="line.29211"></a>
+<span class="sourceLineNo">29212</span>                                                ox = toLong(Math.cbrt(ix));<a name="line.29212"></a>
+<span class="sourceLineNo">29213</span>                                                oai64data[it.oIndex] = ox;<a name="line.29213"></a>
+<span class="sourceLineNo">29214</span>                                        }<a name="line.29214"></a>
+<span class="sourceLineNo">29215</span>                                } else {<a name="line.29215"></a>
+<span class="sourceLineNo">29216</span>                                        while (it.hasNext()) {<a name="line.29216"></a>
+<span class="sourceLineNo">29217</span>                                                final long ix = it.aLong;<a name="line.29217"></a>
+<span class="sourceLineNo">29218</span>                                                long ox;<a name="line.29218"></a>
+<span class="sourceLineNo">29219</span>                                                ox = toLong(Math.cbrt(ix));<a name="line.29219"></a>
+<span class="sourceLineNo">29220</span>                                                oai64data[it.oIndex] = ox;<a name="line.29220"></a>
+<span class="sourceLineNo">29221</span>                                        }<a name="line.29221"></a>
+<span class="sourceLineNo">29222</span>                                }<a name="line.29222"></a>
+<span class="sourceLineNo">29223</span>                        } else if (as == 1) {<a name="line.29223"></a>
+<span class="sourceLineNo">29224</span>                                if (it.isOutputDouble()) {<a name="line.29224"></a>
+<span class="sourceLineNo">29225</span>                                        while (it.hasNext()) {<a name="line.29225"></a>
+<span class="sourceLineNo">29226</span>                                                final double ix = it.aDouble;<a name="line.29226"></a>
+<span class="sourceLineNo">29227</span>                                                long ox;<a name="line.29227"></a>
+<span class="sourceLineNo">29228</span>                                                ox = toLong(Math.cbrt(ix));<a name="line.29228"></a>
+<span class="sourceLineNo">29229</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29229"></a>
+<span class="sourceLineNo">29230</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.29230"></a>
+<span class="sourceLineNo">29231</span>                                                }<a name="line.29231"></a>
+<span class="sourceLineNo">29232</span>                                        }<a name="line.29232"></a>
+<span class="sourceLineNo">29233</span>                                } else {<a name="line.29233"></a>
+<span class="sourceLineNo">29234</span>                                        while (it.hasNext()) {<a name="line.29234"></a>
+<span class="sourceLineNo">29235</span>                                                final long ix = it.aLong;<a name="line.29235"></a>
+<span class="sourceLineNo">29236</span>                                                long ox;<a name="line.29236"></a>
+<span class="sourceLineNo">29237</span>                                                ox = toLong(Math.cbrt(ix));<a name="line.29237"></a>
+<span class="sourceLineNo">29238</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29238"></a>
+<span class="sourceLineNo">29239</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.29239"></a>
+<span class="sourceLineNo">29240</span>                                                }<a name="line.29240"></a>
+<span class="sourceLineNo">29241</span>                                        }<a name="line.29241"></a>
+<span class="sourceLineNo">29242</span>                                }<a name="line.29242"></a>
+<span class="sourceLineNo">29243</span>                        } else {<a name="line.29243"></a>
+<span class="sourceLineNo">29244</span>                                if (it.isOutputDouble()) {<a name="line.29244"></a>
+<span class="sourceLineNo">29245</span>                                        while (it.hasNext()) {<a name="line.29245"></a>
+<span class="sourceLineNo">29246</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29246"></a>
+<span class="sourceLineNo">29247</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.29247"></a>
+<span class="sourceLineNo">29248</span>                                                        long ox;<a name="line.29248"></a>
+<span class="sourceLineNo">29249</span>                                                        ox = toLong(Math.cbrt(ix));<a name="line.29249"></a>
+<span class="sourceLineNo">29250</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.29250"></a>
+<span class="sourceLineNo">29251</span>                                                }<a name="line.29251"></a>
+<span class="sourceLineNo">29252</span>                                        }<a name="line.29252"></a>
+<span class="sourceLineNo">29253</span>                                } else {<a name="line.29253"></a>
+<span class="sourceLineNo">29254</span>                                        while (it.hasNext()) {<a name="line.29254"></a>
+<span class="sourceLineNo">29255</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29255"></a>
+<span class="sourceLineNo">29256</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.29256"></a>
+<span class="sourceLineNo">29257</span>                                                        long ox;<a name="line.29257"></a>
+<span class="sourceLineNo">29258</span>                                                        ox = toLong(Math.cbrt(ix));<a name="line.29258"></a>
+<span class="sourceLineNo">29259</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.29259"></a>
+<span class="sourceLineNo">29260</span>                                                }<a name="line.29260"></a>
+<span class="sourceLineNo">29261</span>                                        }<a name="line.29261"></a>
+<span class="sourceLineNo">29262</span>                                }<a name="line.29262"></a>
+<span class="sourceLineNo">29263</span>                        }<a name="line.29263"></a>
+<span class="sourceLineNo">29264</span>                        break;<a name="line.29264"></a>
+<span class="sourceLineNo">29265</span>                case Dataset.ARRAYINT32:<a name="line.29265"></a>
+<span class="sourceLineNo">29266</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.29266"></a>
+<span class="sourceLineNo">29267</span>                        if (is == 1) {<a name="line.29267"></a>
+<span class="sourceLineNo">29268</span>                                if (it.isOutputDouble()) {<a name="line.29268"></a>
+<span class="sourceLineNo">29269</span>                                        while (it.hasNext()) {<a name="line.29269"></a>
+<span class="sourceLineNo">29270</span>                                                final double ix = it.aDouble;<a name="line.29270"></a>
+<span class="sourceLineNo">29271</span>                                                int ox;<a name="line.29271"></a>
+<span class="sourceLineNo">29272</span>                                                ox = (int) toLong(Math.cbrt(ix));<a name="line.29272"></a>
+<span class="sourceLineNo">29273</span>                                                oai32data[it.oIndex] = ox;<a name="line.29273"></a>
+<span class="sourceLineNo">29274</span>                                        }<a name="line.29274"></a>
+<span class="sourceLineNo">29275</span>                                } else {<a name="line.29275"></a>
+<span class="sourceLineNo">29276</span>                                        while (it.hasNext()) {<a name="line.29276"></a>
+<span class="sourceLineNo">29277</span>                                                final long ix = it.aLong;<a name="line.29277"></a>
+<span class="sourceLineNo">29278</span>                                                int ox;<a name="line.29278"></a>
+<span class="sourceLineNo">29279</span>                                                ox = (int) toLong(Math.cbrt(ix));<a name="line.29279"></a>
+<span class="sourceLineNo">29280</span>                                                oai32data[it.oIndex] = ox;<a name="line.29280"></a>
+<span class="sourceLineNo">29281</span>                                        }<a name="line.29281"></a>
+<span class="sourceLineNo">29282</span>                                }<a name="line.29282"></a>
+<span class="sourceLineNo">29283</span>                        } else if (as == 1) {<a name="line.29283"></a>
+<span class="sourceLineNo">29284</span>                                if (it.isOutputDouble()) {<a name="line.29284"></a>
+<span class="sourceLineNo">29285</span>                                        while (it.hasNext()) {<a name="line.29285"></a>
+<span class="sourceLineNo">29286</span>                                                final double ix = it.aDouble;<a name="line.29286"></a>
+<span class="sourceLineNo">29287</span>                                                int ox;<a name="line.29287"></a>
+<span class="sourceLineNo">29288</span>                                                ox = (int) toLong(Math.cbrt(ix));<a name="line.29288"></a>
+<span class="sourceLineNo">29289</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29289"></a>
+<span class="sourceLineNo">29290</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.29290"></a>
+<span class="sourceLineNo">29291</span>                                                }<a name="line.29291"></a>
+<span class="sourceLineNo">29292</span>                                        }<a name="line.29292"></a>
+<span class="sourceLineNo">29293</span>                                } else {<a name="line.29293"></a>
+<span class="sourceLineNo">29294</span>                                        while (it.hasNext()) {<a name="line.29294"></a>
+<span class="sourceLineNo">29295</span>                                                final long ix = it.aLong;<a name="line.29295"></a>
+<span class="sourceLineNo">29296</span>                                                int ox;<a name="line.29296"></a>
+<span class="sourceLineNo">29297</span>                                                ox = (int) toLong(Math.cbrt(ix));<a name="line.29297"></a>
+<span class="sourceLineNo">29298</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29298"></a>
+<span class="sourceLineNo">29299</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.29299"></a>
+<span class="sourceLineNo">29300</span>                                                }<a name="line.29300"></a>
+<span class="sourceLineNo">29301</span>                                        }<a name="line.29301"></a>
+<span class="sourceLineNo">29302</span>                                }<a name="line.29302"></a>
+<span class="sourceLineNo">29303</span>                        } else {<a name="line.29303"></a>
+<span class="sourceLineNo">29304</span>                                if (it.isOutputDouble()) {<a name="line.29304"></a>
+<span class="sourceLineNo">29305</span>                                        while (it.hasNext()) {<a name="line.29305"></a>
+<span class="sourceLineNo">29306</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29306"></a>
+<span class="sourceLineNo">29307</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.29307"></a>
+<span class="sourceLineNo">29308</span>                                                        int ox;<a name="line.29308"></a>
+<span class="sourceLineNo">29309</span>                                                        ox = (int) toLong(Math.cbrt(ix));<a name="line.29309"></a>
+<span class="sourceLineNo">29310</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.29310"></a>
+<span class="sourceLineNo">29311</span>                                                }<a name="line.29311"></a>
+<span class="sourceLineNo">29312</span>                                        }<a name="line.29312"></a>
+<span class="sourceLineNo">29313</span>                                } else {<a name="line.29313"></a>
+<span class="sourceLineNo">29314</span>                                        while (it.hasNext()) {<a name="line.29314"></a>
+<span class="sourceLineNo">29315</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29315"></a>
+<span class="sourceLineNo">29316</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.29316"></a>
+<span class="sourceLineNo">29317</span>                                                        int ox;<a name="line.29317"></a>
+<span class="sourceLineNo">29318</span>                                                        ox = (int) toLong(Math.cbrt(ix));<a name="line.29318"></a>
+<span class="sourceLineNo">29319</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.29319"></a>
+<span class="sourceLineNo">29320</span>                                                }<a name="line.29320"></a>
+<span class="sourceLineNo">29321</span>                                        }<a name="line.29321"></a>
+<span class="sourceLineNo">29322</span>                                }<a name="line.29322"></a>
+<span class="sourceLineNo">29323</span>                        }<a name="line.29323"></a>
+<span class="sourceLineNo">29324</span>                        break;<a name="line.29324"></a>
+<span class="sourceLineNo">29325</span>                case Dataset.FLOAT32:<a name="line.29325"></a>
+<span class="sourceLineNo">29326</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.29326"></a>
+<span class="sourceLineNo">29327</span>                        if (it.isOutputDouble()) {<a name="line.29327"></a>
+<span class="sourceLineNo">29328</span>                                while (it.hasNext()) {<a name="line.29328"></a>
+<span class="sourceLineNo">29329</span>                                        final double ix = it.aDouble;<a name="line.29329"></a>
+<span class="sourceLineNo">29330</span>                                        float ox;<a name="line.29330"></a>
+<span class="sourceLineNo">29331</span>                                        ox = (float) (Math.cbrt(ix));<a name="line.29331"></a>
+<span class="sourceLineNo">29332</span>                                        of32data[it.oIndex] = ox;<a name="line.29332"></a>
+<span class="sourceLineNo">29333</span>                                }<a name="line.29333"></a>
+<span class="sourceLineNo">29334</span>                        } else {<a name="line.29334"></a>
+<span class="sourceLineNo">29335</span>                                while (it.hasNext()) {<a name="line.29335"></a>
+<span class="sourceLineNo">29336</span>                                        final long ix = it.aLong;<a name="line.29336"></a>
+<span class="sourceLineNo">29337</span>                                        float ox;<a name="line.29337"></a>
+<span class="sourceLineNo">29338</span>                                        ox = (float) (Math.cbrt(ix));<a name="line.29338"></a>
+<span class="sourceLineNo">29339</span>                                        of32data[it.oIndex] = ox;<a name="line.29339"></a>
+<span class="sourceLineNo">29340</span>                                }<a name="line.29340"></a>
+<span class="sourceLineNo">29341</span>                        }<a name="line.29341"></a>
+<span class="sourceLineNo">29342</span>                        break;<a name="line.29342"></a>
+<span class="sourceLineNo">29343</span>                case Dataset.FLOAT64:<a name="line.29343"></a>
+<span class="sourceLineNo">29344</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.29344"></a>
+<span class="sourceLineNo">29345</span>                        if (it.isOutputDouble()) {<a name="line.29345"></a>
+<span class="sourceLineNo">29346</span>                                while (it.hasNext()) {<a name="line.29346"></a>
+<span class="sourceLineNo">29347</span>                                        final double ix = it.aDouble;<a name="line.29347"></a>
+<span class="sourceLineNo">29348</span>                                        double ox;<a name="line.29348"></a>
+<span class="sourceLineNo">29349</span>                                        ox = (Math.cbrt(ix));<a name="line.29349"></a>
+<span class="sourceLineNo">29350</span>                                        of64data[it.oIndex] = ox;<a name="line.29350"></a>
+<span class="sourceLineNo">29351</span>                                }<a name="line.29351"></a>
+<span class="sourceLineNo">29352</span>                        } else {<a name="line.29352"></a>
+<span class="sourceLineNo">29353</span>                                while (it.hasNext()) {<a name="line.29353"></a>
+<span class="sourceLineNo">29354</span>                                        final long ix = it.aLong;<a name="line.29354"></a>
+<span class="sourceLineNo">29355</span>                                        double ox;<a name="line.29355"></a>
+<span class="sourceLineNo">29356</span>                                        ox = (Math.cbrt(ix));<a name="line.29356"></a>
+<span class="sourceLineNo">29357</span>                                        of64data[it.oIndex] = ox;<a name="line.29357"></a>
+<span class="sourceLineNo">29358</span>                                }<a name="line.29358"></a>
+<span class="sourceLineNo">29359</span>                        }<a name="line.29359"></a>
+<span class="sourceLineNo">29360</span>                        break;<a name="line.29360"></a>
+<span class="sourceLineNo">29361</span>                case Dataset.ARRAYFLOAT32:<a name="line.29361"></a>
+<span class="sourceLineNo">29362</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.29362"></a>
+<span class="sourceLineNo">29363</span>                        if (is == 1) {<a name="line.29363"></a>
+<span class="sourceLineNo">29364</span>                                if (it.isOutputDouble()) {<a name="line.29364"></a>
+<span class="sourceLineNo">29365</span>                                        while (it.hasNext()) {<a name="line.29365"></a>
+<span class="sourceLineNo">29366</span>                                                final double ix = it.aDouble;<a name="line.29366"></a>
+<span class="sourceLineNo">29367</span>                                                float ox;<a name="line.29367"></a>
+<span class="sourceLineNo">29368</span>                                                ox = (float) (Math.cbrt(ix));<a name="line.29368"></a>
+<span class="sourceLineNo">29369</span>                                                oaf32data[it.oIndex] = ox;<a name="line.29369"></a>
+<span class="sourceLineNo">29370</span>                                        }<a name="line.29370"></a>
+<span class="sourceLineNo">29371</span>                                } else {<a name="line.29371"></a>
+<span class="sourceLineNo">29372</span>                                        while (it.hasNext()) {<a name="line.29372"></a>
+<span class="sourceLineNo">29373</span>                                                final long ix = it.aLong;<a name="line.29373"></a>
+<span class="sourceLineNo">29374</span>                                                float ox;<a name="line.29374"></a>
+<span class="sourceLineNo">29375</span>                                                ox = (float) (Math.cbrt(ix));<a name="line.29375"></a>
+<span class="sourceLineNo">29376</span>                                                oaf32data[it.oIndex] = ox;<a name="line.29376"></a>
+<span class="sourceLineNo">29377</span>                                        }<a name="line.29377"></a>
+<span class="sourceLineNo">29378</span>                                }<a name="line.29378"></a>
+<span class="sourceLineNo">29379</span>                        } else if (as == 1) {<a name="line.29379"></a>
+<span class="sourceLineNo">29380</span>                                if (it.isOutputDouble()) {<a name="line.29380"></a>
+<span class="sourceLineNo">29381</span>                                        while (it.hasNext()) {<a name="line.29381"></a>
+<span class="sourceLineNo">29382</span>                                                final double ix = it.aDouble;<a name="line.29382"></a>
+<span class="sourceLineNo">29383</span>                                                float ox;<a name="line.29383"></a>
+<span class="sourceLineNo">29384</span>                                                ox = (float) (Math.cbrt(ix));<a name="line.29384"></a>
+<span class="sourceLineNo">29385</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29385"></a>
+<span class="sourceLineNo">29386</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.29386"></a>
+<span class="sourceLineNo">29387</span>                                                }<a name="line.29387"></a>
+<span class="sourceLineNo">29388</span>                                        }<a name="line.29388"></a>
+<span class="sourceLineNo">29389</span>                                } else {<a name="line.29389"></a>
+<span class="sourceLineNo">29390</span>                                        while (it.hasNext()) {<a name="line.29390"></a>
+<span class="sourceLineNo">29391</span>                                                final long ix = it.aLong;<a name="line.29391"></a>
+<span class="sourceLineNo">29392</span>                                                float ox;<a name="line.29392"></a>
+<span class="sourceLineNo">29393</span>                                                ox = (float) (Math.cbrt(ix));<a name="line.29393"></a>
+<span class="sourceLineNo">29394</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29394"></a>
+<span class="sourceLineNo">29395</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.29395"></a>
+<span class="sourceLineNo">29396</span>                                                }<a name="line.29396"></a>
+<span class="sourceLineNo">29397</span>                                        }<a name="line.29397"></a>
+<span class="sourceLineNo">29398</span>                                }<a name="line.29398"></a>
+<span class="sourceLineNo">29399</span>                        } else {<a name="line.29399"></a>
+<span class="sourceLineNo">29400</span>                                if (it.isOutputDouble()) {<a name="line.29400"></a>
+<span class="sourceLineNo">29401</span>                                        while (it.hasNext()) {<a name="line.29401"></a>
+<span class="sourceLineNo">29402</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29402"></a>
+<span class="sourceLineNo">29403</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.29403"></a>
+<span class="sourceLineNo">29404</span>                                                        float ox;<a name="line.29404"></a>
+<span class="sourceLineNo">29405</span>                                                        ox = (float) (Math.cbrt(ix));<a name="line.29405"></a>
+<span class="sourceLineNo">29406</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.29406"></a>
+<span class="sourceLineNo">29407</span>                                                }<a name="line.29407"></a>
+<span class="sourceLineNo">29408</span>                                        }<a name="line.29408"></a>
+<span class="sourceLineNo">29409</span>                                } else {<a name="line.29409"></a>
+<span class="sourceLineNo">29410</span>                                        while (it.hasNext()) {<a name="line.29410"></a>
+<span class="sourceLineNo">29411</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29411"></a>
+<span class="sourceLineNo">29412</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.29412"></a>
+<span class="sourceLineNo">29413</span>                                                        float ox;<a name="line.29413"></a>
+<span class="sourceLineNo">29414</span>                                                        ox = (float) (Math.cbrt(ix));<a name="line.29414"></a>
+<span class="sourceLineNo">29415</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.29415"></a>
+<span class="sourceLineNo">29416</span>                                                }<a name="line.29416"></a>
+<span class="sourceLineNo">29417</span>                                        }<a name="line.29417"></a>
+<span class="sourceLineNo">29418</span>                                }<a name="line.29418"></a>
+<span class="sourceLineNo">29419</span>                        }<a name="line.29419"></a>
+<span class="sourceLineNo">29420</span>                        break;<a name="line.29420"></a>
+<span class="sourceLineNo">29421</span>                case Dataset.ARRAYFLOAT64:<a name="line.29421"></a>
+<span class="sourceLineNo">29422</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.29422"></a>
+<span class="sourceLineNo">29423</span>                        if (is == 1) {<a name="line.29423"></a>
+<span class="sourceLineNo">29424</span>                                if (it.isOutputDouble()) {<a name="line.29424"></a>
+<span class="sourceLineNo">29425</span>                                        while (it.hasNext()) {<a name="line.29425"></a>
+<span class="sourceLineNo">29426</span>                                                final double ix = it.aDouble;<a name="line.29426"></a>
+<span class="sourceLineNo">29427</span>                                                double ox;<a name="line.29427"></a>
+<span class="sourceLineNo">29428</span>                                                ox = (Math.cbrt(ix));<a name="line.29428"></a>
+<span class="sourceLineNo">29429</span>                                                oaf64data[it.oIndex] = ox;<a name="line.29429"></a>
+<span class="sourceLineNo">29430</span>                                        }<a name="line.29430"></a>
+<span class="sourceLineNo">29431</span>                                } else {<a name="line.29431"></a>
+<span class="sourceLineNo">29432</span>                                        while (it.hasNext()) {<a name="line.29432"></a>
+<span class="sourceLineNo">29433</span>                                                final long ix = it.aLong;<a name="line.29433"></a>
+<span class="sourceLineNo">29434</span>                                                double ox;<a name="line.29434"></a>
+<span class="sourceLineNo">29435</span>                                                ox = (Math.cbrt(ix));<a name="line.29435"></a>
+<span class="sourceLineNo">29436</span>                                                oaf64data[it.oIndex] = ox;<a name="line.29436"></a>
+<span class="sourceLineNo">29437</span>                                        }<a name="line.29437"></a>
+<span class="sourceLineNo">29438</span>                                }<a name="line.29438"></a>
+<span class="sourceLineNo">29439</span>                        } else if (as == 1) {<a name="line.29439"></a>
+<span class="sourceLineNo">29440</span>                                if (it.isOutputDouble()) {<a name="line.29440"></a>
+<span class="sourceLineNo">29441</span>                                        while (it.hasNext()) {<a name="line.29441"></a>
+<span class="sourceLineNo">29442</span>                                                final double ix = it.aDouble;<a name="line.29442"></a>
+<span class="sourceLineNo">29443</span>                                                double ox;<a name="line.29443"></a>
+<span class="sourceLineNo">29444</span>                                                ox = (Math.cbrt(ix));<a name="line.29444"></a>
+<span class="sourceLineNo">29445</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29445"></a>
+<span class="sourceLineNo">29446</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.29446"></a>
+<span class="sourceLineNo">29447</span>                                                }<a name="line.29447"></a>
+<span class="sourceLineNo">29448</span>                                        }<a name="line.29448"></a>
+<span class="sourceLineNo">29449</span>                                } else {<a name="line.29449"></a>
+<span class="sourceLineNo">29450</span>                                        while (it.hasNext()) {<a name="line.29450"></a>
+<span class="sourceLineNo">29451</span>                                                final long ix = it.aLong;<a name="line.29451"></a>
+<span class="sourceLineNo">29452</span>                                                double ox;<a name="line.29452"></a>
+<span class="sourceLineNo">29453</span>                                                ox = (Math.cbrt(ix));<a name="line.29453"></a>
+<span class="sourceLineNo">29454</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29454"></a>
+<span class="sourceLineNo">29455</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.29455"></a>
+<span class="sourceLineNo">29456</span>                                                }<a name="line.29456"></a>
+<span class="sourceLineNo">29457</span>                                        }<a name="line.29457"></a>
+<span class="sourceLineNo">29458</span>                                }<a name="line.29458"></a>
+<span class="sourceLineNo">29459</span>                        } else {<a name="line.29459"></a>
+<span class="sourceLineNo">29460</span>                                if (it.isOutputDouble()) {<a name="line.29460"></a>
+<span class="sourceLineNo">29461</span>                                        while (it.hasNext()) {<a name="line.29461"></a>
+<span class="sourceLineNo">29462</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29462"></a>
+<span class="sourceLineNo">29463</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.29463"></a>
+<span class="sourceLineNo">29464</span>                                                        double ox;<a name="line.29464"></a>
+<span class="sourceLineNo">29465</span>                                                        ox = (Math.cbrt(ix));<a name="line.29465"></a>
+<span class="sourceLineNo">29466</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.29466"></a>
+<span class="sourceLineNo">29467</span>                                                }<a name="line.29467"></a>
+<span class="sourceLineNo">29468</span>                                        }<a name="line.29468"></a>
+<span class="sourceLineNo">29469</span>                                } else {<a name="line.29469"></a>
+<span class="sourceLineNo">29470</span>                                        while (it.hasNext()) {<a name="line.29470"></a>
+<span class="sourceLineNo">29471</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29471"></a>
+<span class="sourceLineNo">29472</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.29472"></a>
+<span class="sourceLineNo">29473</span>                                                        double ox;<a name="line.29473"></a>
+<span class="sourceLineNo">29474</span>                                                        ox = (Math.cbrt(ix));<a name="line.29474"></a>
+<span class="sourceLineNo">29475</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.29475"></a>
+<span class="sourceLineNo">29476</span>                                                }<a name="line.29476"></a>
+<span class="sourceLineNo">29477</span>                                        }<a name="line.29477"></a>
+<span class="sourceLineNo">29478</span>                                }<a name="line.29478"></a>
+<span class="sourceLineNo">29479</span>                        }<a name="line.29479"></a>
+<span class="sourceLineNo">29480</span>                        break;<a name="line.29480"></a>
+<span class="sourceLineNo">29481</span>                case Dataset.COMPLEX64:<a name="line.29481"></a>
+<span class="sourceLineNo">29482</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.29482"></a>
+<span class="sourceLineNo">29483</span>                        if (!da.isComplex()) {<a name="line.29483"></a>
+<span class="sourceLineNo">29484</span>                                if (it.isOutputDouble()) {<a name="line.29484"></a>
+<span class="sourceLineNo">29485</span>                                        final double iy = 0;<a name="line.29485"></a>
+<span class="sourceLineNo">29486</span>                                        while (it.hasNext()) {<a name="line.29486"></a>
+<span class="sourceLineNo">29487</span>                                                final double ix = it.aDouble;<a name="line.29487"></a>
+<span class="sourceLineNo">29488</span>                                                Complex tz;<a name="line.29488"></a>
+<span class="sourceLineNo">29489</span>                                                float ox;<a name="line.29489"></a>
+<span class="sourceLineNo">29490</span>                                                float oy;<a name="line.29490"></a>
+<span class="sourceLineNo">29491</span>                                                tz = new Complex(ix, iy).pow(new Complex(1./3.,0));<a name="line.29491"></a>
+<span class="sourceLineNo">29492</span>                                                ox = (float) (tz.getReal());<a name="line.29492"></a>
+<span class="sourceLineNo">29493</span>                                                oy = (float) (tz.getImaginary());<a name="line.29493"></a>
+<span class="sourceLineNo">29494</span>                                                oc64data[it.oIndex] = ox;<a name="line.29494"></a>
+<span class="sourceLineNo">29495</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.29495"></a>
+<span class="sourceLineNo">29496</span>                                        }<a name="line.29496"></a>
+<span class="sourceLineNo">29497</span>                                } else {<a name="line.29497"></a>
+<span class="sourceLineNo">29498</span>                                        final long iy = 0;<a name="line.29498"></a>
+<span class="sourceLineNo">29499</span>                                        while (it.hasNext()) {<a name="line.29499"></a>
+<span class="sourceLineNo">29500</span>                                                final long ix = it.aLong;<a name="line.29500"></a>
+<span class="sourceLineNo">29501</span>                                                Complex tz;<a name="line.29501"></a>
+<span class="sourceLineNo">29502</span>                                                float ox;<a name="line.29502"></a>
+<span class="sourceLineNo">29503</span>                                                float oy;<a name="line.29503"></a>
+<span class="sourceLineNo">29504</span>                                                tz = new Complex(ix, iy).pow(new Complex(1./3.,0));<a name="line.29504"></a>
+<span class="sourceLineNo">29505</span>                                                ox = (float) toLong(tz.getReal());<a name="line.29505"></a>
+<span class="sourceLineNo">29506</span>                                                oy = (float) toLong(tz.getImaginary());<a name="line.29506"></a>
+<span class="sourceLineNo">29507</span>                                                oc64data[it.oIndex] = ox;<a name="line.29507"></a>
+<span class="sourceLineNo">29508</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.29508"></a>
+<span class="sourceLineNo">29509</span>                                        }<a name="line.29509"></a>
+<span class="sourceLineNo">29510</span>                                }<a name="line.29510"></a>
+<span class="sourceLineNo">29511</span>                        } else {<a name="line.29511"></a>
+<span class="sourceLineNo">29512</span>                                while (it.hasNext()) {<a name="line.29512"></a>
+<span class="sourceLineNo">29513</span>                                        final double ix = it.aDouble;<a name="line.29513"></a>
+<span class="sourceLineNo">29514</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.29514"></a>
+<span class="sourceLineNo">29515</span>                                        Complex tz;<a name="line.29515"></a>
+<span class="sourceLineNo">29516</span>                                        float ox;<a name="line.29516"></a>
+<span class="sourceLineNo">29517</span>                                        float oy;<a name="line.29517"></a>
+<span class="sourceLineNo">29518</span>                                        tz = new Complex(ix, iy).pow(new Complex(1./3.,0));<a name="line.29518"></a>
+<span class="sourceLineNo">29519</span>                                        ox = (float) (tz.getReal());<a name="line.29519"></a>
+<span class="sourceLineNo">29520</span>                                        oy = (float) (tz.getImaginary());<a name="line.29520"></a>
+<span class="sourceLineNo">29521</span>                                        oc64data[it.oIndex] = ox;<a name="line.29521"></a>
+<span class="sourceLineNo">29522</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.29522"></a>
+<span class="sourceLineNo">29523</span>                                }<a name="line.29523"></a>
+<span class="sourceLineNo">29524</span>                        }<a name="line.29524"></a>
+<span class="sourceLineNo">29525</span>                        break;<a name="line.29525"></a>
+<span class="sourceLineNo">29526</span>                case Dataset.COMPLEX128:<a name="line.29526"></a>
+<span class="sourceLineNo">29527</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.29527"></a>
+<span class="sourceLineNo">29528</span>                        if (!da.isComplex()) {<a name="line.29528"></a>
+<span class="sourceLineNo">29529</span>                                if (it.isOutputDouble()) {<a name="line.29529"></a>
+<span class="sourceLineNo">29530</span>                                        final double iy = 0;<a name="line.29530"></a>
+<span class="sourceLineNo">29531</span>                                        while (it.hasNext()) {<a name="line.29531"></a>
+<span class="sourceLineNo">29532</span>                                                final double ix = it.aDouble;<a name="line.29532"></a>
+<span class="sourceLineNo">29533</span>                                                Complex tz;<a name="line.29533"></a>
+<span class="sourceLineNo">29534</span>                                                double ox;<a name="line.29534"></a>
+<span class="sourceLineNo">29535</span>                                                double oy;<a name="line.29535"></a>
+<span class="sourceLineNo">29536</span>                                                tz = new Complex(ix, iy).pow(new Complex(1./3.,0));<a name="line.29536"></a>
+<span class="sourceLineNo">29537</span>                                                ox = (tz.getReal());<a name="line.29537"></a>
+<span class="sourceLineNo">29538</span>                                                oy = (tz.getImaginary());<a name="line.29538"></a>
+<span class="sourceLineNo">29539</span>                                                oc128data[it.oIndex] = ox;<a name="line.29539"></a>
+<span class="sourceLineNo">29540</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.29540"></a>
+<span class="sourceLineNo">29541</span>                                        }<a name="line.29541"></a>
+<span class="sourceLineNo">29542</span>                                } else {<a name="line.29542"></a>
+<span class="sourceLineNo">29543</span>                                        final long iy = 0;<a name="line.29543"></a>
+<span class="sourceLineNo">29544</span>                                        while (it.hasNext()) {<a name="line.29544"></a>
+<span class="sourceLineNo">29545</span>                                                final long ix = it.aLong;<a name="line.29545"></a>
+<span class="sourceLineNo">29546</span>                                                Complex tz;<a name="line.29546"></a>
+<span class="sourceLineNo">29547</span>                                                double ox;<a name="line.29547"></a>
+<span class="sourceLineNo">29548</span>                                                double oy;<a name="line.29548"></a>
+<span class="sourceLineNo">29549</span>                                                tz = new Complex(ix, iy).pow(new Complex(1./3.,0));<a name="line.29549"></a>
+<span class="sourceLineNo">29550</span>                                                ox = (tz.getReal());<a name="line.29550"></a>
+<span class="sourceLineNo">29551</span>                                                oy = (tz.getImaginary());<a name="line.29551"></a>
+<span class="sourceLineNo">29552</span>                                                oc128data[it.oIndex] = ox;<a name="line.29552"></a>
+<span class="sourceLineNo">29553</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.29553"></a>
+<span class="sourceLineNo">29554</span>                                        }<a name="line.29554"></a>
+<span class="sourceLineNo">29555</span>                                }<a name="line.29555"></a>
+<span class="sourceLineNo">29556</span>                        } else {<a name="line.29556"></a>
+<span class="sourceLineNo">29557</span>                                while (it.hasNext()) {<a name="line.29557"></a>
+<span class="sourceLineNo">29558</span>                                        final double ix = it.aDouble;<a name="line.29558"></a>
+<span class="sourceLineNo">29559</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.29559"></a>
+<span class="sourceLineNo">29560</span>                                        Complex tz;<a name="line.29560"></a>
+<span class="sourceLineNo">29561</span>                                        double ox;<a name="line.29561"></a>
+<span class="sourceLineNo">29562</span>                                        double oy;<a name="line.29562"></a>
+<span class="sourceLineNo">29563</span>                                        tz = new Complex(ix, iy).pow(new Complex(1./3.,0));<a name="line.29563"></a>
+<span class="sourceLineNo">29564</span>                                        ox = (tz.getReal());<a name="line.29564"></a>
+<span class="sourceLineNo">29565</span>                                        oy = (tz.getImaginary());<a name="line.29565"></a>
+<span class="sourceLineNo">29566</span>                                        oc128data[it.oIndex] = ox;<a name="line.29566"></a>
+<span class="sourceLineNo">29567</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.29567"></a>
+<span class="sourceLineNo">29568</span>                                }<a name="line.29568"></a>
+<span class="sourceLineNo">29569</span>                        }<a name="line.29569"></a>
+<span class="sourceLineNo">29570</span>                        break;<a name="line.29570"></a>
+<span class="sourceLineNo">29571</span>                default:<a name="line.29571"></a>
+<span class="sourceLineNo">29572</span>                        throw new IllegalArgumentException("cbrt supports integer, compound integer, real, compound real, complex datasets only");<a name="line.29572"></a>
+<span class="sourceLineNo">29573</span>                }<a name="line.29573"></a>
+<span class="sourceLineNo">29574</span><a name="line.29574"></a>
+<span class="sourceLineNo">29575</span>                addFunctionName(result, "cbrt");<a name="line.29575"></a>
+<span class="sourceLineNo">29576</span>                return result;<a name="line.29576"></a>
+<span class="sourceLineNo">29577</span>        }<a name="line.29577"></a>
+<span class="sourceLineNo">29578</span><a name="line.29578"></a>
+<span class="sourceLineNo">29579</span>        /**<a name="line.29579"></a>
+<span class="sourceLineNo">29580</span>         * square - square each element<a name="line.29580"></a>
+<span class="sourceLineNo">29581</span>         * @param a<a name="line.29581"></a>
+<span class="sourceLineNo">29582</span>         * @return dataset<a name="line.29582"></a>
+<span class="sourceLineNo">29583</span>         */<a name="line.29583"></a>
+<span class="sourceLineNo">29584</span>        public static Dataset square(final Object a) {<a name="line.29584"></a>
+<span class="sourceLineNo">29585</span>                return square(a, null);<a name="line.29585"></a>
+<span class="sourceLineNo">29586</span>        }<a name="line.29586"></a>
+<span class="sourceLineNo">29587</span><a name="line.29587"></a>
+<span class="sourceLineNo">29588</span>        /**<a name="line.29588"></a>
+<span class="sourceLineNo">29589</span>         * square - square each element<a name="line.29589"></a>
+<span class="sourceLineNo">29590</span>         * @param a<a name="line.29590"></a>
+<span class="sourceLineNo">29591</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.29591"></a>
+<span class="sourceLineNo">29592</span>         * @return dataset<a name="line.29592"></a>
+<span class="sourceLineNo">29593</span>         */<a name="line.29593"></a>
+<span class="sourceLineNo">29594</span>        public static Dataset square(final Object a, final Dataset o) {<a name="line.29594"></a>
+<span class="sourceLineNo">29595</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.29595"></a>
+<span class="sourceLineNo">29596</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.29596"></a>
+<span class="sourceLineNo">29597</span>                final Dataset result = it.getOutput();<a name="line.29597"></a>
+<span class="sourceLineNo">29598</span>                if (!result.isComplex()) {<a name="line.29598"></a>
+<span class="sourceLineNo">29599</span>                        if (da.isComplex()) {<a name="line.29599"></a>
+<span class="sourceLineNo">29600</span>                                da = da.getRealView();<a name="line.29600"></a>
+<span class="sourceLineNo">29601</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.29601"></a>
+<span class="sourceLineNo">29602</span>                        }<a name="line.29602"></a>
+<span class="sourceLineNo">29603</span>                }<a name="line.29603"></a>
+<span class="sourceLineNo">29604</span>                final int is = result.getElementsPerItem();<a name="line.29604"></a>
+<span class="sourceLineNo">29605</span>                final int as = da.getElementsPerItem();<a name="line.29605"></a>
+<span class="sourceLineNo">29606</span>                final int dt = result.getDType();<a name="line.29606"></a>
+<span class="sourceLineNo">29607</span><a name="line.29607"></a>
+<span class="sourceLineNo">29608</span>                switch(dt) {<a name="line.29608"></a>
+<span class="sourceLineNo">29609</span>                case Dataset.INT8:<a name="line.29609"></a>
+<span class="sourceLineNo">29610</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.29610"></a>
+<span class="sourceLineNo">29611</span>                        if (it.isOutputDouble()) {<a name="line.29611"></a>
+<span class="sourceLineNo">29612</span>                                while (it.hasNext()) {<a name="line.29612"></a>
+<span class="sourceLineNo">29613</span>                                        final double ix = it.aDouble;<a name="line.29613"></a>
+<span class="sourceLineNo">29614</span>                                        byte ox;<a name="line.29614"></a>
+<span class="sourceLineNo">29615</span>                                        ox = (byte) toLong(ix*ix);<a name="line.29615"></a>
+<span class="sourceLineNo">29616</span>                                        oi8data[it.oIndex] = ox;<a name="line.29616"></a>
+<span class="sourceLineNo">29617</span>                                }<a name="line.29617"></a>
+<span class="sourceLineNo">29618</span>                        } else {<a name="line.29618"></a>
+<span class="sourceLineNo">29619</span>                                while (it.hasNext()) {<a name="line.29619"></a>
+<span class="sourceLineNo">29620</span>                                        final long ix = it.aLong;<a name="line.29620"></a>
+<span class="sourceLineNo">29621</span>                                        byte ox;<a name="line.29621"></a>
+<span class="sourceLineNo">29622</span>                                        ox = (byte) toLong(ix*ix);<a name="line.29622"></a>
+<span class="sourceLineNo">29623</span>                                        oi8data[it.oIndex] = ox;<a name="line.29623"></a>
+<span class="sourceLineNo">29624</span>                                }<a name="line.29624"></a>
+<span class="sourceLineNo">29625</span>                        }<a name="line.29625"></a>
+<span class="sourceLineNo">29626</span>                        break;<a name="line.29626"></a>
+<span class="sourceLineNo">29627</span>                case Dataset.INT16:<a name="line.29627"></a>
+<span class="sourceLineNo">29628</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.29628"></a>
+<span class="sourceLineNo">29629</span>                        if (it.isOutputDouble()) {<a name="line.29629"></a>
+<span class="sourceLineNo">29630</span>                                while (it.hasNext()) {<a name="line.29630"></a>
+<span class="sourceLineNo">29631</span>                                        final double ix = it.aDouble;<a name="line.29631"></a>
+<span class="sourceLineNo">29632</span>                                        short ox;<a name="line.29632"></a>
+<span class="sourceLineNo">29633</span>                                        ox = (short) toLong(ix*ix);<a name="line.29633"></a>
+<span class="sourceLineNo">29634</span>                                        oi16data[it.oIndex] = ox;<a name="line.29634"></a>
+<span class="sourceLineNo">29635</span>                                }<a name="line.29635"></a>
+<span class="sourceLineNo">29636</span>                        } else {<a name="line.29636"></a>
+<span class="sourceLineNo">29637</span>                                while (it.hasNext()) {<a name="line.29637"></a>
+<span class="sourceLineNo">29638</span>                                        final long ix = it.aLong;<a name="line.29638"></a>
+<span class="sourceLineNo">29639</span>                                        short ox;<a name="line.29639"></a>
+<span class="sourceLineNo">29640</span>                                        ox = (short) toLong(ix*ix);<a name="line.29640"></a>
+<span class="sourceLineNo">29641</span>                                        oi16data[it.oIndex] = ox;<a name="line.29641"></a>
+<span class="sourceLineNo">29642</span>                                }<a name="line.29642"></a>
+<span class="sourceLineNo">29643</span>                        }<a name="line.29643"></a>
+<span class="sourceLineNo">29644</span>                        break;<a name="line.29644"></a>
+<span class="sourceLineNo">29645</span>                case Dataset.INT64:<a name="line.29645"></a>
+<span class="sourceLineNo">29646</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.29646"></a>
+<span class="sourceLineNo">29647</span>                        if (it.isOutputDouble()) {<a name="line.29647"></a>
+<span class="sourceLineNo">29648</span>                                while (it.hasNext()) {<a name="line.29648"></a>
+<span class="sourceLineNo">29649</span>                                        final double ix = it.aDouble;<a name="line.29649"></a>
+<span class="sourceLineNo">29650</span>                                        long ox;<a name="line.29650"></a>
+<span class="sourceLineNo">29651</span>                                        ox = toLong(ix*ix);<a name="line.29651"></a>
+<span class="sourceLineNo">29652</span>                                        oi64data[it.oIndex] = ox;<a name="line.29652"></a>
+<span class="sourceLineNo">29653</span>                                }<a name="line.29653"></a>
+<span class="sourceLineNo">29654</span>                        } else {<a name="line.29654"></a>
+<span class="sourceLineNo">29655</span>                                while (it.hasNext()) {<a name="line.29655"></a>
+<span class="sourceLineNo">29656</span>                                        final long ix = it.aLong;<a name="line.29656"></a>
+<span class="sourceLineNo">29657</span>                                        long ox;<a name="line.29657"></a>
+<span class="sourceLineNo">29658</span>                                        ox = toLong(ix*ix);<a name="line.29658"></a>
+<span class="sourceLineNo">29659</span>                                        oi64data[it.oIndex] = ox;<a name="line.29659"></a>
+<span class="sourceLineNo">29660</span>                                }<a name="line.29660"></a>
+<span class="sourceLineNo">29661</span>                        }<a name="line.29661"></a>
+<span class="sourceLineNo">29662</span>                        break;<a name="line.29662"></a>
+<span class="sourceLineNo">29663</span>                case Dataset.INT32:<a name="line.29663"></a>
+<span class="sourceLineNo">29664</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.29664"></a>
+<span class="sourceLineNo">29665</span>                        if (it.isOutputDouble()) {<a name="line.29665"></a>
+<span class="sourceLineNo">29666</span>                                while (it.hasNext()) {<a name="line.29666"></a>
+<span class="sourceLineNo">29667</span>                                        final double ix = it.aDouble;<a name="line.29667"></a>
+<span class="sourceLineNo">29668</span>                                        int ox;<a name="line.29668"></a>
+<span class="sourceLineNo">29669</span>                                        ox = (int) toLong(ix*ix);<a name="line.29669"></a>
+<span class="sourceLineNo">29670</span>                                        oi32data[it.oIndex] = ox;<a name="line.29670"></a>
+<span class="sourceLineNo">29671</span>                                }<a name="line.29671"></a>
+<span class="sourceLineNo">29672</span>                        } else {<a name="line.29672"></a>
+<span class="sourceLineNo">29673</span>                                while (it.hasNext()) {<a name="line.29673"></a>
+<span class="sourceLineNo">29674</span>                                        final long ix = it.aLong;<a name="line.29674"></a>
+<span class="sourceLineNo">29675</span>                                        int ox;<a name="line.29675"></a>
+<span class="sourceLineNo">29676</span>                                        ox = (int) toLong(ix*ix);<a name="line.29676"></a>
+<span class="sourceLineNo">29677</span>                                        oi32data[it.oIndex] = ox;<a name="line.29677"></a>
+<span class="sourceLineNo">29678</span>                                }<a name="line.29678"></a>
+<span class="sourceLineNo">29679</span>                        }<a name="line.29679"></a>
+<span class="sourceLineNo">29680</span>                        break;<a name="line.29680"></a>
+<span class="sourceLineNo">29681</span>                case Dataset.ARRAYINT8:<a name="line.29681"></a>
+<span class="sourceLineNo">29682</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.29682"></a>
+<span class="sourceLineNo">29683</span>                        if (is == 1) {<a name="line.29683"></a>
+<span class="sourceLineNo">29684</span>                                if (it.isOutputDouble()) {<a name="line.29684"></a>
+<span class="sourceLineNo">29685</span>                                        while (it.hasNext()) {<a name="line.29685"></a>
+<span class="sourceLineNo">29686</span>                                                final double ix = it.aDouble;<a name="line.29686"></a>
+<span class="sourceLineNo">29687</span>                                                byte ox;<a name="line.29687"></a>
+<span class="sourceLineNo">29688</span>                                                ox = (byte) toLong(ix*ix);<a name="line.29688"></a>
+<span class="sourceLineNo">29689</span>                                                oai8data[it.oIndex] = ox;<a name="line.29689"></a>
+<span class="sourceLineNo">29690</span>                                        }<a name="line.29690"></a>
+<span class="sourceLineNo">29691</span>                                } else {<a name="line.29691"></a>
+<span class="sourceLineNo">29692</span>                                        while (it.hasNext()) {<a name="line.29692"></a>
+<span class="sourceLineNo">29693</span>                                                final long ix = it.aLong;<a name="line.29693"></a>
+<span class="sourceLineNo">29694</span>                                                byte ox;<a name="line.29694"></a>
+<span class="sourceLineNo">29695</span>                                                ox = (byte) toLong(ix*ix);<a name="line.29695"></a>
+<span class="sourceLineNo">29696</span>                                                oai8data[it.oIndex] = ox;<a name="line.29696"></a>
+<span class="sourceLineNo">29697</span>                                        }<a name="line.29697"></a>
+<span class="sourceLineNo">29698</span>                                }<a name="line.29698"></a>
+<span class="sourceLineNo">29699</span>                        } else if (as == 1) {<a name="line.29699"></a>
+<span class="sourceLineNo">29700</span>                                if (it.isOutputDouble()) {<a name="line.29700"></a>
+<span class="sourceLineNo">29701</span>                                        while (it.hasNext()) {<a name="line.29701"></a>
+<span class="sourceLineNo">29702</span>                                                final double ix = it.aDouble;<a name="line.29702"></a>
+<span class="sourceLineNo">29703</span>                                                byte ox;<a name="line.29703"></a>
+<span class="sourceLineNo">29704</span>                                                ox = (byte) toLong(ix*ix);<a name="line.29704"></a>
+<span class="sourceLineNo">29705</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29705"></a>
+<span class="sourceLineNo">29706</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.29706"></a>
+<span class="sourceLineNo">29707</span>                                                }<a name="line.29707"></a>
+<span class="sourceLineNo">29708</span>                                        }<a name="line.29708"></a>
+<span class="sourceLineNo">29709</span>                                } else {<a name="line.29709"></a>
+<span class="sourceLineNo">29710</span>                                        while (it.hasNext()) {<a name="line.29710"></a>
+<span class="sourceLineNo">29711</span>                                                final long ix = it.aLong;<a name="line.29711"></a>
+<span class="sourceLineNo">29712</span>                                                byte ox;<a name="line.29712"></a>
+<span class="sourceLineNo">29713</span>                                                ox = (byte) toLong(ix*ix);<a name="line.29713"></a>
+<span class="sourceLineNo">29714</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29714"></a>
+<span class="sourceLineNo">29715</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.29715"></a>
+<span class="sourceLineNo">29716</span>                                                }<a name="line.29716"></a>
+<span class="sourceLineNo">29717</span>                                        }<a name="line.29717"></a>
+<span class="sourceLineNo">29718</span>                                }<a name="line.29718"></a>
+<span class="sourceLineNo">29719</span>                        } else {<a name="line.29719"></a>
+<span class="sourceLineNo">29720</span>                                if (it.isOutputDouble()) {<a name="line.29720"></a>
+<span class="sourceLineNo">29721</span>                                        while (it.hasNext()) {<a name="line.29721"></a>
+<span class="sourceLineNo">29722</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29722"></a>
+<span class="sourceLineNo">29723</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.29723"></a>
+<span class="sourceLineNo">29724</span>                                                        byte ox;<a name="line.29724"></a>
+<span class="sourceLineNo">29725</span>                                                        ox = (byte) toLong(ix*ix);<a name="line.29725"></a>
+<span class="sourceLineNo">29726</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.29726"></a>
+<span class="sourceLineNo">29727</span>                                                }<a name="line.29727"></a>
+<span class="sourceLineNo">29728</span>                                        }<a name="line.29728"></a>
+<span class="sourceLineNo">29729</span>                                } else {<a name="line.29729"></a>
+<span class="sourceLineNo">29730</span>                                        while (it.hasNext()) {<a name="line.29730"></a>
+<span class="sourceLineNo">29731</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29731"></a>
+<span class="sourceLineNo">29732</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.29732"></a>
+<span class="sourceLineNo">29733</span>                                                        byte ox;<a name="line.29733"></a>
+<span class="sourceLineNo">29734</span>                                                        ox = (byte) toLong(ix*ix);<a name="line.29734"></a>
+<span class="sourceLineNo">29735</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.29735"></a>
+<span class="sourceLineNo">29736</span>                                                }<a name="line.29736"></a>
+<span class="sourceLineNo">29737</span>                                        }<a name="line.29737"></a>
+<span class="sourceLineNo">29738</span>                                }<a name="line.29738"></a>
+<span class="sourceLineNo">29739</span>                        }<a name="line.29739"></a>
+<span class="sourceLineNo">29740</span>                        break;<a name="line.29740"></a>
+<span class="sourceLineNo">29741</span>                case Dataset.ARRAYINT16:<a name="line.29741"></a>
+<span class="sourceLineNo">29742</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.29742"></a>
+<span class="sourceLineNo">29743</span>                        if (is == 1) {<a name="line.29743"></a>
+<span class="sourceLineNo">29744</span>                                if (it.isOutputDouble()) {<a name="line.29744"></a>
+<span class="sourceLineNo">29745</span>                                        while (it.hasNext()) {<a name="line.29745"></a>
+<span class="sourceLineNo">29746</span>                                                final double ix = it.aDouble;<a name="line.29746"></a>
+<span class="sourceLineNo">29747</span>                                                short ox;<a name="line.29747"></a>
+<span class="sourceLineNo">29748</span>                                                ox = (short) toLong(ix*ix);<a name="line.29748"></a>
+<span class="sourceLineNo">29749</span>                                                oai16data[it.oIndex] = ox;<a name="line.29749"></a>
+<span class="sourceLineNo">29750</span>                                        }<a name="line.29750"></a>
+<span class="sourceLineNo">29751</span>                                } else {<a name="line.29751"></a>
+<span class="sourceLineNo">29752</span>                                        while (it.hasNext()) {<a name="line.29752"></a>
+<span class="sourceLineNo">29753</span>                                                final long ix = it.aLong;<a name="line.29753"></a>
+<span class="sourceLineNo">29754</span>                                                short ox;<a name="line.29754"></a>
+<span class="sourceLineNo">29755</span>                                                ox = (short) toLong(ix*ix);<a name="line.29755"></a>
+<span class="sourceLineNo">29756</span>                                                oai16data[it.oIndex] = ox;<a name="line.29756"></a>
+<span class="sourceLineNo">29757</span>                                        }<a name="line.29757"></a>
+<span class="sourceLineNo">29758</span>                                }<a name="line.29758"></a>
+<span class="sourceLineNo">29759</span>                        } else if (as == 1) {<a name="line.29759"></a>
+<span class="sourceLineNo">29760</span>                                if (it.isOutputDouble()) {<a name="line.29760"></a>
+<span class="sourceLineNo">29761</span>                                        while (it.hasNext()) {<a name="line.29761"></a>
+<span class="sourceLineNo">29762</span>                                                final double ix = it.aDouble;<a name="line.29762"></a>
+<span class="sourceLineNo">29763</span>                                                short ox;<a name="line.29763"></a>
+<span class="sourceLineNo">29764</span>                                                ox = (short) toLong(ix*ix);<a name="line.29764"></a>
+<span class="sourceLineNo">29765</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29765"></a>
+<span class="sourceLineNo">29766</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.29766"></a>
+<span class="sourceLineNo">29767</span>                                                }<a name="line.29767"></a>
+<span class="sourceLineNo">29768</span>                                        }<a name="line.29768"></a>
+<span class="sourceLineNo">29769</span>                                } else {<a name="line.29769"></a>
+<span class="sourceLineNo">29770</span>                                        while (it.hasNext()) {<a name="line.29770"></a>
+<span class="sourceLineNo">29771</span>                                                final long ix = it.aLong;<a name="line.29771"></a>
+<span class="sourceLineNo">29772</span>                                                short ox;<a name="line.29772"></a>
+<span class="sourceLineNo">29773</span>                                                ox = (short) toLong(ix*ix);<a name="line.29773"></a>
+<span class="sourceLineNo">29774</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29774"></a>
+<span class="sourceLineNo">29775</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.29775"></a>
+<span class="sourceLineNo">29776</span>                                                }<a name="line.29776"></a>
+<span class="sourceLineNo">29777</span>                                        }<a name="line.29777"></a>
+<span class="sourceLineNo">29778</span>                                }<a name="line.29778"></a>
+<span class="sourceLineNo">29779</span>                        } else {<a name="line.29779"></a>
+<span class="sourceLineNo">29780</span>                                if (it.isOutputDouble()) {<a name="line.29780"></a>
+<span class="sourceLineNo">29781</span>                                        while (it.hasNext()) {<a name="line.29781"></a>
+<span class="sourceLineNo">29782</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29782"></a>
+<span class="sourceLineNo">29783</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.29783"></a>
+<span class="sourceLineNo">29784</span>                                                        short ox;<a name="line.29784"></a>
+<span class="sourceLineNo">29785</span>                                                        ox = (short) toLong(ix*ix);<a name="line.29785"></a>
+<span class="sourceLineNo">29786</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.29786"></a>
+<span class="sourceLineNo">29787</span>                                                }<a name="line.29787"></a>
+<span class="sourceLineNo">29788</span>                                        }<a name="line.29788"></a>
+<span class="sourceLineNo">29789</span>                                } else {<a name="line.29789"></a>
+<span class="sourceLineNo">29790</span>                                        while (it.hasNext()) {<a name="line.29790"></a>
+<span class="sourceLineNo">29791</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29791"></a>
+<span class="sourceLineNo">29792</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.29792"></a>
+<span class="sourceLineNo">29793</span>                                                        short ox;<a name="line.29793"></a>
+<span class="sourceLineNo">29794</span>                                                        ox = (short) toLong(ix*ix);<a name="line.29794"></a>
+<span class="sourceLineNo">29795</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.29795"></a>
+<span class="sourceLineNo">29796</span>                                                }<a name="line.29796"></a>
+<span class="sourceLineNo">29797</span>                                        }<a name="line.29797"></a>
+<span class="sourceLineNo">29798</span>                                }<a name="line.29798"></a>
+<span class="sourceLineNo">29799</span>                        }<a name="line.29799"></a>
+<span class="sourceLineNo">29800</span>                        break;<a name="line.29800"></a>
+<span class="sourceLineNo">29801</span>                case Dataset.ARRAYINT64:<a name="line.29801"></a>
+<span class="sourceLineNo">29802</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.29802"></a>
+<span class="sourceLineNo">29803</span>                        if (is == 1) {<a name="line.29803"></a>
+<span class="sourceLineNo">29804</span>                                if (it.isOutputDouble()) {<a name="line.29804"></a>
+<span class="sourceLineNo">29805</span>                                        while (it.hasNext()) {<a name="line.29805"></a>
+<span class="sourceLineNo">29806</span>                                                final double ix = it.aDouble;<a name="line.29806"></a>
+<span class="sourceLineNo">29807</span>                                                long ox;<a name="line.29807"></a>
+<span class="sourceLineNo">29808</span>                                                ox = toLong(ix*ix);<a name="line.29808"></a>
+<span class="sourceLineNo">29809</span>                                                oai64data[it.oIndex] = ox;<a name="line.29809"></a>
+<span class="sourceLineNo">29810</span>                                        }<a name="line.29810"></a>
+<span class="sourceLineNo">29811</span>                                } else {<a name="line.29811"></a>
+<span class="sourceLineNo">29812</span>                                        while (it.hasNext()) {<a name="line.29812"></a>
+<span class="sourceLineNo">29813</span>                                                final long ix = it.aLong;<a name="line.29813"></a>
+<span class="sourceLineNo">29814</span>                                                long ox;<a name="line.29814"></a>
+<span class="sourceLineNo">29815</span>                                                ox = toLong(ix*ix);<a name="line.29815"></a>
+<span class="sourceLineNo">29816</span>                                                oai64data[it.oIndex] = ox;<a name="line.29816"></a>
+<span class="sourceLineNo">29817</span>                                        }<a name="line.29817"></a>
+<span class="sourceLineNo">29818</span>                                }<a name="line.29818"></a>
+<span class="sourceLineNo">29819</span>                        } else if (as == 1) {<a name="line.29819"></a>
+<span class="sourceLineNo">29820</span>                                if (it.isOutputDouble()) {<a name="line.29820"></a>
+<span class="sourceLineNo">29821</span>                                        while (it.hasNext()) {<a name="line.29821"></a>
+<span class="sourceLineNo">29822</span>                                                final double ix = it.aDouble;<a name="line.29822"></a>
+<span class="sourceLineNo">29823</span>                                                long ox;<a name="line.29823"></a>
+<span class="sourceLineNo">29824</span>                                                ox = toLong(ix*ix);<a name="line.29824"></a>
+<span class="sourceLineNo">29825</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29825"></a>
+<span class="sourceLineNo">29826</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.29826"></a>
+<span class="sourceLineNo">29827</span>                                                }<a name="line.29827"></a>
+<span class="sourceLineNo">29828</span>                                        }<a name="line.29828"></a>
+<span class="sourceLineNo">29829</span>                                } else {<a name="line.29829"></a>
+<span class="sourceLineNo">29830</span>                                        while (it.hasNext()) {<a name="line.29830"></a>
+<span class="sourceLineNo">29831</span>                                                final long ix = it.aLong;<a name="line.29831"></a>
+<span class="sourceLineNo">29832</span>                                                long ox;<a name="line.29832"></a>
+<span class="sourceLineNo">29833</span>                                                ox = toLong(ix*ix);<a name="line.29833"></a>
+<span class="sourceLineNo">29834</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29834"></a>
+<span class="sourceLineNo">29835</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.29835"></a>
+<span class="sourceLineNo">29836</span>                                                }<a name="line.29836"></a>
+<span class="sourceLineNo">29837</span>                                        }<a name="line.29837"></a>
+<span class="sourceLineNo">29838</span>                                }<a name="line.29838"></a>
+<span class="sourceLineNo">29839</span>                        } else {<a name="line.29839"></a>
+<span class="sourceLineNo">29840</span>                                if (it.isOutputDouble()) {<a name="line.29840"></a>
+<span class="sourceLineNo">29841</span>                                        while (it.hasNext()) {<a name="line.29841"></a>
+<span class="sourceLineNo">29842</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29842"></a>
+<span class="sourceLineNo">29843</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.29843"></a>
+<span class="sourceLineNo">29844</span>                                                        long ox;<a name="line.29844"></a>
+<span class="sourceLineNo">29845</span>                                                        ox = toLong(ix*ix);<a name="line.29845"></a>
+<span class="sourceLineNo">29846</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.29846"></a>
+<span class="sourceLineNo">29847</span>                                                }<a name="line.29847"></a>
+<span class="sourceLineNo">29848</span>                                        }<a name="line.29848"></a>
+<span class="sourceLineNo">29849</span>                                } else {<a name="line.29849"></a>
+<span class="sourceLineNo">29850</span>                                        while (it.hasNext()) {<a name="line.29850"></a>
+<span class="sourceLineNo">29851</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29851"></a>
+<span class="sourceLineNo">29852</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.29852"></a>
+<span class="sourceLineNo">29853</span>                                                        long ox;<a name="line.29853"></a>
+<span class="sourceLineNo">29854</span>                                                        ox = toLong(ix*ix);<a name="line.29854"></a>
+<span class="sourceLineNo">29855</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.29855"></a>
+<span class="sourceLineNo">29856</span>                                                }<a name="line.29856"></a>
+<span class="sourceLineNo">29857</span>                                        }<a name="line.29857"></a>
+<span class="sourceLineNo">29858</span>                                }<a name="line.29858"></a>
+<span class="sourceLineNo">29859</span>                        }<a name="line.29859"></a>
+<span class="sourceLineNo">29860</span>                        break;<a name="line.29860"></a>
+<span class="sourceLineNo">29861</span>                case Dataset.ARRAYINT32:<a name="line.29861"></a>
+<span class="sourceLineNo">29862</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.29862"></a>
+<span class="sourceLineNo">29863</span>                        if (is == 1) {<a name="line.29863"></a>
+<span class="sourceLineNo">29864</span>                                if (it.isOutputDouble()) {<a name="line.29864"></a>
+<span class="sourceLineNo">29865</span>                                        while (it.hasNext()) {<a name="line.29865"></a>
+<span class="sourceLineNo">29866</span>                                                final double ix = it.aDouble;<a name="line.29866"></a>
+<span class="sourceLineNo">29867</span>                                                int ox;<a name="line.29867"></a>
+<span class="sourceLineNo">29868</span>                                                ox = (int) toLong(ix*ix);<a name="line.29868"></a>
+<span class="sourceLineNo">29869</span>                                                oai32data[it.oIndex] = ox;<a name="line.29869"></a>
+<span class="sourceLineNo">29870</span>                                        }<a name="line.29870"></a>
+<span class="sourceLineNo">29871</span>                                } else {<a name="line.29871"></a>
+<span class="sourceLineNo">29872</span>                                        while (it.hasNext()) {<a name="line.29872"></a>
+<span class="sourceLineNo">29873</span>                                                final long ix = it.aLong;<a name="line.29873"></a>
+<span class="sourceLineNo">29874</span>                                                int ox;<a name="line.29874"></a>
+<span class="sourceLineNo">29875</span>                                                ox = (int) toLong(ix*ix);<a name="line.29875"></a>
+<span class="sourceLineNo">29876</span>                                                oai32data[it.oIndex] = ox;<a name="line.29876"></a>
+<span class="sourceLineNo">29877</span>                                        }<a name="line.29877"></a>
+<span class="sourceLineNo">29878</span>                                }<a name="line.29878"></a>
+<span class="sourceLineNo">29879</span>                        } else if (as == 1) {<a name="line.29879"></a>
+<span class="sourceLineNo">29880</span>                                if (it.isOutputDouble()) {<a name="line.29880"></a>
+<span class="sourceLineNo">29881</span>                                        while (it.hasNext()) {<a name="line.29881"></a>
+<span class="sourceLineNo">29882</span>                                                final double ix = it.aDouble;<a name="line.29882"></a>
+<span class="sourceLineNo">29883</span>                                                int ox;<a name="line.29883"></a>
+<span class="sourceLineNo">29884</span>                                                ox = (int) toLong(ix*ix);<a name="line.29884"></a>
+<span class="sourceLineNo">29885</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29885"></a>
+<span class="sourceLineNo">29886</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.29886"></a>
+<span class="sourceLineNo">29887</span>                                                }<a name="line.29887"></a>
+<span class="sourceLineNo">29888</span>                                        }<a name="line.29888"></a>
+<span class="sourceLineNo">29889</span>                                } else {<a name="line.29889"></a>
+<span class="sourceLineNo">29890</span>                                        while (it.hasNext()) {<a name="line.29890"></a>
+<span class="sourceLineNo">29891</span>                                                final long ix = it.aLong;<a name="line.29891"></a>
+<span class="sourceLineNo">29892</span>                                                int ox;<a name="line.29892"></a>
+<span class="sourceLineNo">29893</span>                                                ox = (int) toLong(ix*ix);<a name="line.29893"></a>
+<span class="sourceLineNo">29894</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29894"></a>
+<span class="sourceLineNo">29895</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.29895"></a>
+<span class="sourceLineNo">29896</span>                                                }<a name="line.29896"></a>
+<span class="sourceLineNo">29897</span>                                        }<a name="line.29897"></a>
+<span class="sourceLineNo">29898</span>                                }<a name="line.29898"></a>
+<span class="sourceLineNo">29899</span>                        } else {<a name="line.29899"></a>
+<span class="sourceLineNo">29900</span>                                if (it.isOutputDouble()) {<a name="line.29900"></a>
+<span class="sourceLineNo">29901</span>                                        while (it.hasNext()) {<a name="line.29901"></a>
+<span class="sourceLineNo">29902</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29902"></a>
+<span class="sourceLineNo">29903</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.29903"></a>
+<span class="sourceLineNo">29904</span>                                                        int ox;<a name="line.29904"></a>
+<span class="sourceLineNo">29905</span>                                                        ox = (int) toLong(ix*ix);<a name="line.29905"></a>
+<span class="sourceLineNo">29906</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.29906"></a>
+<span class="sourceLineNo">29907</span>                                                }<a name="line.29907"></a>
+<span class="sourceLineNo">29908</span>                                        }<a name="line.29908"></a>
+<span class="sourceLineNo">29909</span>                                } else {<a name="line.29909"></a>
+<span class="sourceLineNo">29910</span>                                        while (it.hasNext()) {<a name="line.29910"></a>
+<span class="sourceLineNo">29911</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29911"></a>
+<span class="sourceLineNo">29912</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.29912"></a>
+<span class="sourceLineNo">29913</span>                                                        int ox;<a name="line.29913"></a>
+<span class="sourceLineNo">29914</span>                                                        ox = (int) toLong(ix*ix);<a name="line.29914"></a>
+<span class="sourceLineNo">29915</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.29915"></a>
+<span class="sourceLineNo">29916</span>                                                }<a name="line.29916"></a>
+<span class="sourceLineNo">29917</span>                                        }<a name="line.29917"></a>
+<span class="sourceLineNo">29918</span>                                }<a name="line.29918"></a>
+<span class="sourceLineNo">29919</span>                        }<a name="line.29919"></a>
+<span class="sourceLineNo">29920</span>                        break;<a name="line.29920"></a>
+<span class="sourceLineNo">29921</span>                case Dataset.FLOAT32:<a name="line.29921"></a>
+<span class="sourceLineNo">29922</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.29922"></a>
+<span class="sourceLineNo">29923</span>                        if (it.isOutputDouble()) {<a name="line.29923"></a>
+<span class="sourceLineNo">29924</span>                                while (it.hasNext()) {<a name="line.29924"></a>
+<span class="sourceLineNo">29925</span>                                        final double ix = it.aDouble;<a name="line.29925"></a>
+<span class="sourceLineNo">29926</span>                                        float ox;<a name="line.29926"></a>
+<span class="sourceLineNo">29927</span>                                        ox = (float) (ix*ix);<a name="line.29927"></a>
+<span class="sourceLineNo">29928</span>                                        of32data[it.oIndex] = ox;<a name="line.29928"></a>
+<span class="sourceLineNo">29929</span>                                }<a name="line.29929"></a>
+<span class="sourceLineNo">29930</span>                        } else {<a name="line.29930"></a>
+<span class="sourceLineNo">29931</span>                                while (it.hasNext()) {<a name="line.29931"></a>
+<span class="sourceLineNo">29932</span>                                        final long ix = it.aLong;<a name="line.29932"></a>
+<span class="sourceLineNo">29933</span>                                        float ox;<a name="line.29933"></a>
+<span class="sourceLineNo">29934</span>                                        ox = (ix*ix);<a name="line.29934"></a>
+<span class="sourceLineNo">29935</span>                                        of32data[it.oIndex] = ox;<a name="line.29935"></a>
+<span class="sourceLineNo">29936</span>                                }<a name="line.29936"></a>
+<span class="sourceLineNo">29937</span>                        }<a name="line.29937"></a>
+<span class="sourceLineNo">29938</span>                        break;<a name="line.29938"></a>
+<span class="sourceLineNo">29939</span>                case Dataset.FLOAT64:<a name="line.29939"></a>
+<span class="sourceLineNo">29940</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.29940"></a>
+<span class="sourceLineNo">29941</span>                        if (it.isOutputDouble()) {<a name="line.29941"></a>
+<span class="sourceLineNo">29942</span>                                while (it.hasNext()) {<a name="line.29942"></a>
+<span class="sourceLineNo">29943</span>                                        final double ix = it.aDouble;<a name="line.29943"></a>
+<span class="sourceLineNo">29944</span>                                        double ox;<a name="line.29944"></a>
+<span class="sourceLineNo">29945</span>                                        ox = (ix*ix);<a name="line.29945"></a>
+<span class="sourceLineNo">29946</span>                                        of64data[it.oIndex] = ox;<a name="line.29946"></a>
+<span class="sourceLineNo">29947</span>                                }<a name="line.29947"></a>
+<span class="sourceLineNo">29948</span>                        } else {<a name="line.29948"></a>
+<span class="sourceLineNo">29949</span>                                while (it.hasNext()) {<a name="line.29949"></a>
+<span class="sourceLineNo">29950</span>                                        final long ix = it.aLong;<a name="line.29950"></a>
+<span class="sourceLineNo">29951</span>                                        double ox;<a name="line.29951"></a>
+<span class="sourceLineNo">29952</span>                                        ox = (ix*ix);<a name="line.29952"></a>
+<span class="sourceLineNo">29953</span>                                        of64data[it.oIndex] = ox;<a name="line.29953"></a>
+<span class="sourceLineNo">29954</span>                                }<a name="line.29954"></a>
+<span class="sourceLineNo">29955</span>                        }<a name="line.29955"></a>
+<span class="sourceLineNo">29956</span>                        break;<a name="line.29956"></a>
+<span class="sourceLineNo">29957</span>                case Dataset.ARRAYFLOAT32:<a name="line.29957"></a>
+<span class="sourceLineNo">29958</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.29958"></a>
+<span class="sourceLineNo">29959</span>                        if (is == 1) {<a name="line.29959"></a>
+<span class="sourceLineNo">29960</span>                                if (it.isOutputDouble()) {<a name="line.29960"></a>
+<span class="sourceLineNo">29961</span>                                        while (it.hasNext()) {<a name="line.29961"></a>
+<span class="sourceLineNo">29962</span>                                                final double ix = it.aDouble;<a name="line.29962"></a>
+<span class="sourceLineNo">29963</span>                                                float ox;<a name="line.29963"></a>
+<span class="sourceLineNo">29964</span>                                                ox = (float) (ix*ix);<a name="line.29964"></a>
+<span class="sourceLineNo">29965</span>                                                oaf32data[it.oIndex] = ox;<a name="line.29965"></a>
+<span class="sourceLineNo">29966</span>                                        }<a name="line.29966"></a>
+<span class="sourceLineNo">29967</span>                                } else {<a name="line.29967"></a>
+<span class="sourceLineNo">29968</span>                                        while (it.hasNext()) {<a name="line.29968"></a>
+<span class="sourceLineNo">29969</span>                                                final long ix = it.aLong;<a name="line.29969"></a>
+<span class="sourceLineNo">29970</span>                                                float ox;<a name="line.29970"></a>
+<span class="sourceLineNo">29971</span>                                                ox = (ix*ix);<a name="line.29971"></a>
+<span class="sourceLineNo">29972</span>                                                oaf32data[it.oIndex] = ox;<a name="line.29972"></a>
+<span class="sourceLineNo">29973</span>                                        }<a name="line.29973"></a>
+<span class="sourceLineNo">29974</span>                                }<a name="line.29974"></a>
+<span class="sourceLineNo">29975</span>                        } else if (as == 1) {<a name="line.29975"></a>
+<span class="sourceLineNo">29976</span>                                if (it.isOutputDouble()) {<a name="line.29976"></a>
+<span class="sourceLineNo">29977</span>                                        while (it.hasNext()) {<a name="line.29977"></a>
+<span class="sourceLineNo">29978</span>                                                final double ix = it.aDouble;<a name="line.29978"></a>
+<span class="sourceLineNo">29979</span>                                                float ox;<a name="line.29979"></a>
+<span class="sourceLineNo">29980</span>                                                ox = (float) (ix*ix);<a name="line.29980"></a>
+<span class="sourceLineNo">29981</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29981"></a>
+<span class="sourceLineNo">29982</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.29982"></a>
+<span class="sourceLineNo">29983</span>                                                }<a name="line.29983"></a>
+<span class="sourceLineNo">29984</span>                                        }<a name="line.29984"></a>
+<span class="sourceLineNo">29985</span>                                } else {<a name="line.29985"></a>
+<span class="sourceLineNo">29986</span>                                        while (it.hasNext()) {<a name="line.29986"></a>
+<span class="sourceLineNo">29987</span>                                                final long ix = it.aLong;<a name="line.29987"></a>
+<span class="sourceLineNo">29988</span>                                                float ox;<a name="line.29988"></a>
+<span class="sourceLineNo">29989</span>                                                ox = (ix*ix);<a name="line.29989"></a>
+<span class="sourceLineNo">29990</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29990"></a>
+<span class="sourceLineNo">29991</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.29991"></a>
+<span class="sourceLineNo">29992</span>                                                }<a name="line.29992"></a>
+<span class="sourceLineNo">29993</span>                                        }<a name="line.29993"></a>
+<span class="sourceLineNo">29994</span>                                }<a name="line.29994"></a>
+<span class="sourceLineNo">29995</span>                        } else {<a name="line.29995"></a>
+<span class="sourceLineNo">29996</span>                                if (it.isOutputDouble()) {<a name="line.29996"></a>
+<span class="sourceLineNo">29997</span>                                        while (it.hasNext()) {<a name="line.29997"></a>
+<span class="sourceLineNo">29998</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.29998"></a>
+<span class="sourceLineNo">29999</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.29999"></a>
+<span class="sourceLineNo">30000</span>                                                        float ox;<a name="line.30000"></a>
+<span class="sourceLineNo">30001</span>                                                        ox = (float) (ix*ix);<a name="line.30001"></a>
+<span class="sourceLineNo">30002</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.30002"></a>
+<span class="sourceLineNo">30003</span>                                                }<a name="line.30003"></a>
+<span class="sourceLineNo">30004</span>                                        }<a name="line.30004"></a>
+<span class="sourceLineNo">30005</span>                                } else {<a name="line.30005"></a>
+<span class="sourceLineNo">30006</span>                                        while (it.hasNext()) {<a name="line.30006"></a>
+<span class="sourceLineNo">30007</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30007"></a>
+<span class="sourceLineNo">30008</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.30008"></a>
+<span class="sourceLineNo">30009</span>                                                        float ox;<a name="line.30009"></a>
+<span class="sourceLineNo">30010</span>                                                        ox = (ix*ix);<a name="line.30010"></a>
+<span class="sourceLineNo">30011</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.30011"></a>
+<span class="sourceLineNo">30012</span>                                                }<a name="line.30012"></a>
+<span class="sourceLineNo">30013</span>                                        }<a name="line.30013"></a>
+<span class="sourceLineNo">30014</span>                                }<a name="line.30014"></a>
+<span class="sourceLineNo">30015</span>                        }<a name="line.30015"></a>
+<span class="sourceLineNo">30016</span>                        break;<a name="line.30016"></a>
+<span class="sourceLineNo">30017</span>                case Dataset.ARRAYFLOAT64:<a name="line.30017"></a>
+<span class="sourceLineNo">30018</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.30018"></a>
+<span class="sourceLineNo">30019</span>                        if (is == 1) {<a name="line.30019"></a>
+<span class="sourceLineNo">30020</span>                                if (it.isOutputDouble()) {<a name="line.30020"></a>
+<span class="sourceLineNo">30021</span>                                        while (it.hasNext()) {<a name="line.30021"></a>
+<span class="sourceLineNo">30022</span>                                                final double ix = it.aDouble;<a name="line.30022"></a>
+<span class="sourceLineNo">30023</span>                                                double ox;<a name="line.30023"></a>
+<span class="sourceLineNo">30024</span>                                                ox = (ix*ix);<a name="line.30024"></a>
+<span class="sourceLineNo">30025</span>                                                oaf64data[it.oIndex] = ox;<a name="line.30025"></a>
+<span class="sourceLineNo">30026</span>                                        }<a name="line.30026"></a>
+<span class="sourceLineNo">30027</span>                                } else {<a name="line.30027"></a>
+<span class="sourceLineNo">30028</span>                                        while (it.hasNext()) {<a name="line.30028"></a>
+<span class="sourceLineNo">30029</span>                                                final long ix = it.aLong;<a name="line.30029"></a>
+<span class="sourceLineNo">30030</span>                                                double ox;<a name="line.30030"></a>
+<span class="sourceLineNo">30031</span>                                                ox = (ix*ix);<a name="line.30031"></a>
+<span class="sourceLineNo">30032</span>                                                oaf64data[it.oIndex] = ox;<a name="line.30032"></a>
+<span class="sourceLineNo">30033</span>                                        }<a name="line.30033"></a>
+<span class="sourceLineNo">30034</span>                                }<a name="line.30034"></a>
+<span class="sourceLineNo">30035</span>                        } else if (as == 1) {<a name="line.30035"></a>
+<span class="sourceLineNo">30036</span>                                if (it.isOutputDouble()) {<a name="line.30036"></a>
+<span class="sourceLineNo">30037</span>                                        while (it.hasNext()) {<a name="line.30037"></a>
+<span class="sourceLineNo">30038</span>                                                final double ix = it.aDouble;<a name="line.30038"></a>
+<span class="sourceLineNo">30039</span>                                                double ox;<a name="line.30039"></a>
+<span class="sourceLineNo">30040</span>                                                ox = (ix*ix);<a name="line.30040"></a>
+<span class="sourceLineNo">30041</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30041"></a>
+<span class="sourceLineNo">30042</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.30042"></a>
+<span class="sourceLineNo">30043</span>                                                }<a name="line.30043"></a>
+<span class="sourceLineNo">30044</span>                                        }<a name="line.30044"></a>
+<span class="sourceLineNo">30045</span>                                } else {<a name="line.30045"></a>
+<span class="sourceLineNo">30046</span>                                        while (it.hasNext()) {<a name="line.30046"></a>
+<span class="sourceLineNo">30047</span>                                                final long ix = it.aLong;<a name="line.30047"></a>
+<span class="sourceLineNo">30048</span>                                                double ox;<a name="line.30048"></a>
+<span class="sourceLineNo">30049</span>                                                ox = (ix*ix);<a name="line.30049"></a>
+<span class="sourceLineNo">30050</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30050"></a>
+<span class="sourceLineNo">30051</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.30051"></a>
+<span class="sourceLineNo">30052</span>                                                }<a name="line.30052"></a>
+<span class="sourceLineNo">30053</span>                                        }<a name="line.30053"></a>
+<span class="sourceLineNo">30054</span>                                }<a name="line.30054"></a>
+<span class="sourceLineNo">30055</span>                        } else {<a name="line.30055"></a>
+<span class="sourceLineNo">30056</span>                                if (it.isOutputDouble()) {<a name="line.30056"></a>
+<span class="sourceLineNo">30057</span>                                        while (it.hasNext()) {<a name="line.30057"></a>
+<span class="sourceLineNo">30058</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30058"></a>
+<span class="sourceLineNo">30059</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.30059"></a>
+<span class="sourceLineNo">30060</span>                                                        double ox;<a name="line.30060"></a>
+<span class="sourceLineNo">30061</span>                                                        ox = (ix*ix);<a name="line.30061"></a>
+<span class="sourceLineNo">30062</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.30062"></a>
+<span class="sourceLineNo">30063</span>                                                }<a name="line.30063"></a>
+<span class="sourceLineNo">30064</span>                                        }<a name="line.30064"></a>
+<span class="sourceLineNo">30065</span>                                } else {<a name="line.30065"></a>
+<span class="sourceLineNo">30066</span>                                        while (it.hasNext()) {<a name="line.30066"></a>
+<span class="sourceLineNo">30067</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30067"></a>
+<span class="sourceLineNo">30068</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.30068"></a>
+<span class="sourceLineNo">30069</span>                                                        double ox;<a name="line.30069"></a>
+<span class="sourceLineNo">30070</span>                                                        ox = (ix*ix);<a name="line.30070"></a>
+<span class="sourceLineNo">30071</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.30071"></a>
+<span class="sourceLineNo">30072</span>                                                }<a name="line.30072"></a>
+<span class="sourceLineNo">30073</span>                                        }<a name="line.30073"></a>
+<span class="sourceLineNo">30074</span>                                }<a name="line.30074"></a>
+<span class="sourceLineNo">30075</span>                        }<a name="line.30075"></a>
+<span class="sourceLineNo">30076</span>                        break;<a name="line.30076"></a>
+<span class="sourceLineNo">30077</span>                case Dataset.COMPLEX64:<a name="line.30077"></a>
+<span class="sourceLineNo">30078</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.30078"></a>
+<span class="sourceLineNo">30079</span>                        if (!da.isComplex()) {<a name="line.30079"></a>
+<span class="sourceLineNo">30080</span>                                if (it.isOutputDouble()) {<a name="line.30080"></a>
+<span class="sourceLineNo">30081</span>                                        final double iy = 0;<a name="line.30081"></a>
+<span class="sourceLineNo">30082</span>                                        while (it.hasNext()) {<a name="line.30082"></a>
+<span class="sourceLineNo">30083</span>                                                final double ix = it.aDouble;<a name="line.30083"></a>
+<span class="sourceLineNo">30084</span>                                                float ox;<a name="line.30084"></a>
+<span class="sourceLineNo">30085</span>                                                float oy;<a name="line.30085"></a>
+<span class="sourceLineNo">30086</span>                                                ox = (float) (ix*ix - iy*iy);<a name="line.30086"></a>
+<span class="sourceLineNo">30087</span>                                                oy = (float) (2.*ix*iy);<a name="line.30087"></a>
+<span class="sourceLineNo">30088</span>                                                oc64data[it.oIndex] = ox;<a name="line.30088"></a>
+<span class="sourceLineNo">30089</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.30089"></a>
+<span class="sourceLineNo">30090</span>                                        }<a name="line.30090"></a>
+<span class="sourceLineNo">30091</span>                                } else {<a name="line.30091"></a>
+<span class="sourceLineNo">30092</span>                                        final long iy = 0;<a name="line.30092"></a>
+<span class="sourceLineNo">30093</span>                                        while (it.hasNext()) {<a name="line.30093"></a>
+<span class="sourceLineNo">30094</span>                                                final long ix = it.aLong;<a name="line.30094"></a>
+<span class="sourceLineNo">30095</span>                                                float ox;<a name="line.30095"></a>
+<span class="sourceLineNo">30096</span>                                                float oy;<a name="line.30096"></a>
+<span class="sourceLineNo">30097</span>                                                ox = (float) toLong(ix*ix - iy*iy);<a name="line.30097"></a>
+<span class="sourceLineNo">30098</span>                                                oy = (float) toLong(2.*ix*iy);<a name="line.30098"></a>
+<span class="sourceLineNo">30099</span>                                                oc64data[it.oIndex] = ox;<a name="line.30099"></a>
+<span class="sourceLineNo">30100</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.30100"></a>
+<span class="sourceLineNo">30101</span>                                        }<a name="line.30101"></a>
+<span class="sourceLineNo">30102</span>                                }<a name="line.30102"></a>
+<span class="sourceLineNo">30103</span>                        } else {<a name="line.30103"></a>
+<span class="sourceLineNo">30104</span>                                while (it.hasNext()) {<a name="line.30104"></a>
+<span class="sourceLineNo">30105</span>                                        final double ix = it.aDouble;<a name="line.30105"></a>
+<span class="sourceLineNo">30106</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.30106"></a>
+<span class="sourceLineNo">30107</span>                                        float ox;<a name="line.30107"></a>
+<span class="sourceLineNo">30108</span>                                        float oy;<a name="line.30108"></a>
+<span class="sourceLineNo">30109</span>                                        ox = (float) (ix*ix - iy*iy);<a name="line.30109"></a>
+<span class="sourceLineNo">30110</span>                                        oy = (float) (2.*ix*iy);<a name="line.30110"></a>
+<span class="sourceLineNo">30111</span>                                        oc64data[it.oIndex] = ox;<a name="line.30111"></a>
+<span class="sourceLineNo">30112</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.30112"></a>
+<span class="sourceLineNo">30113</span>                                }<a name="line.30113"></a>
+<span class="sourceLineNo">30114</span>                        }<a name="line.30114"></a>
+<span class="sourceLineNo">30115</span>                        break;<a name="line.30115"></a>
+<span class="sourceLineNo">30116</span>                case Dataset.COMPLEX128:<a name="line.30116"></a>
+<span class="sourceLineNo">30117</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.30117"></a>
+<span class="sourceLineNo">30118</span>                        if (!da.isComplex()) {<a name="line.30118"></a>
+<span class="sourceLineNo">30119</span>                                if (it.isOutputDouble()) {<a name="line.30119"></a>
+<span class="sourceLineNo">30120</span>                                        final double iy = 0;<a name="line.30120"></a>
+<span class="sourceLineNo">30121</span>                                        while (it.hasNext()) {<a name="line.30121"></a>
+<span class="sourceLineNo">30122</span>                                                final double ix = it.aDouble;<a name="line.30122"></a>
+<span class="sourceLineNo">30123</span>                                                double ox;<a name="line.30123"></a>
+<span class="sourceLineNo">30124</span>                                                double oy;<a name="line.30124"></a>
+<span class="sourceLineNo">30125</span>                                                ox = (ix*ix - iy*iy);<a name="line.30125"></a>
+<span class="sourceLineNo">30126</span>                                                oy = (2.*ix*iy);<a name="line.30126"></a>
+<span class="sourceLineNo">30127</span>                                                oc128data[it.oIndex] = ox;<a name="line.30127"></a>
+<span class="sourceLineNo">30128</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.30128"></a>
+<span class="sourceLineNo">30129</span>                                        }<a name="line.30129"></a>
+<span class="sourceLineNo">30130</span>                                } else {<a name="line.30130"></a>
+<span class="sourceLineNo">30131</span>                                        final long iy = 0;<a name="line.30131"></a>
+<span class="sourceLineNo">30132</span>                                        while (it.hasNext()) {<a name="line.30132"></a>
+<span class="sourceLineNo">30133</span>                                                final long ix = it.aLong;<a name="line.30133"></a>
+<span class="sourceLineNo">30134</span>                                                double ox;<a name="line.30134"></a>
+<span class="sourceLineNo">30135</span>                                                double oy;<a name="line.30135"></a>
+<span class="sourceLineNo">30136</span>                                                ox = (ix*ix - iy*iy);<a name="line.30136"></a>
+<span class="sourceLineNo">30137</span>                                                oy = (2.*ix*iy);<a name="line.30137"></a>
+<span class="sourceLineNo">30138</span>                                                oc128data[it.oIndex] = ox;<a name="line.30138"></a>
+<span class="sourceLineNo">30139</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.30139"></a>
+<span class="sourceLineNo">30140</span>                                        }<a name="line.30140"></a>
+<span class="sourceLineNo">30141</span>                                }<a name="line.30141"></a>
+<span class="sourceLineNo">30142</span>                        } else {<a name="line.30142"></a>
+<span class="sourceLineNo">30143</span>                                while (it.hasNext()) {<a name="line.30143"></a>
+<span class="sourceLineNo">30144</span>                                        final double ix = it.aDouble;<a name="line.30144"></a>
+<span class="sourceLineNo">30145</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.30145"></a>
+<span class="sourceLineNo">30146</span>                                        double ox;<a name="line.30146"></a>
+<span class="sourceLineNo">30147</span>                                        double oy;<a name="line.30147"></a>
+<span class="sourceLineNo">30148</span>                                        ox = (ix*ix - iy*iy);<a name="line.30148"></a>
+<span class="sourceLineNo">30149</span>                                        oy = (2.*ix*iy);<a name="line.30149"></a>
+<span class="sourceLineNo">30150</span>                                        oc128data[it.oIndex] = ox;<a name="line.30150"></a>
+<span class="sourceLineNo">30151</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.30151"></a>
+<span class="sourceLineNo">30152</span>                                }<a name="line.30152"></a>
+<span class="sourceLineNo">30153</span>                        }<a name="line.30153"></a>
+<span class="sourceLineNo">30154</span>                        break;<a name="line.30154"></a>
+<span class="sourceLineNo">30155</span>                default:<a name="line.30155"></a>
+<span class="sourceLineNo">30156</span>                        throw new IllegalArgumentException("square supports integer, compound integer, real, compound real, complex datasets only");<a name="line.30156"></a>
+<span class="sourceLineNo">30157</span>                }<a name="line.30157"></a>
+<span class="sourceLineNo">30158</span><a name="line.30158"></a>
+<span class="sourceLineNo">30159</span>                addFunctionName(result, "square");<a name="line.30159"></a>
+<span class="sourceLineNo">30160</span>                return result;<a name="line.30160"></a>
+<span class="sourceLineNo">30161</span>        }<a name="line.30161"></a>
+<span class="sourceLineNo">30162</span><a name="line.30162"></a>
+<span class="sourceLineNo">30163</span>        /**<a name="line.30163"></a>
+<span class="sourceLineNo">30164</span>         * floor - evaluate the floor function on each element of the dataset<a name="line.30164"></a>
+<span class="sourceLineNo">30165</span>         * @param a<a name="line.30165"></a>
+<span class="sourceLineNo">30166</span>         * @return dataset<a name="line.30166"></a>
+<span class="sourceLineNo">30167</span>         */<a name="line.30167"></a>
+<span class="sourceLineNo">30168</span>        public static Dataset floor(final Object a) {<a name="line.30168"></a>
+<span class="sourceLineNo">30169</span>                return floor(a, null);<a name="line.30169"></a>
+<span class="sourceLineNo">30170</span>        }<a name="line.30170"></a>
+<span class="sourceLineNo">30171</span><a name="line.30171"></a>
+<span class="sourceLineNo">30172</span>        /**<a name="line.30172"></a>
+<span class="sourceLineNo">30173</span>         * floor - evaluate the floor function on each element of the dataset<a name="line.30173"></a>
+<span class="sourceLineNo">30174</span>         * @param a<a name="line.30174"></a>
+<span class="sourceLineNo">30175</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.30175"></a>
+<span class="sourceLineNo">30176</span>         * @return dataset<a name="line.30176"></a>
+<span class="sourceLineNo">30177</span>         */<a name="line.30177"></a>
+<span class="sourceLineNo">30178</span>        public static Dataset floor(final Object a, final Dataset o) {<a name="line.30178"></a>
+<span class="sourceLineNo">30179</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.30179"></a>
+<span class="sourceLineNo">30180</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.30180"></a>
+<span class="sourceLineNo">30181</span>                final Dataset result = it.getOutput();<a name="line.30181"></a>
+<span class="sourceLineNo">30182</span>                if (!result.isComplex()) {<a name="line.30182"></a>
+<span class="sourceLineNo">30183</span>                        if (da.isComplex()) {<a name="line.30183"></a>
+<span class="sourceLineNo">30184</span>                                da = da.getRealView();<a name="line.30184"></a>
+<span class="sourceLineNo">30185</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.30185"></a>
+<span class="sourceLineNo">30186</span>                        }<a name="line.30186"></a>
+<span class="sourceLineNo">30187</span>                }<a name="line.30187"></a>
+<span class="sourceLineNo">30188</span>                final int is = result.getElementsPerItem();<a name="line.30188"></a>
+<span class="sourceLineNo">30189</span>                final int as = da.getElementsPerItem();<a name="line.30189"></a>
+<span class="sourceLineNo">30190</span>                final int dt = result.getDType();<a name="line.30190"></a>
+<span class="sourceLineNo">30191</span><a name="line.30191"></a>
+<span class="sourceLineNo">30192</span>                switch(dt) {<a name="line.30192"></a>
+<span class="sourceLineNo">30193</span>                case Dataset.INT8:<a name="line.30193"></a>
+<span class="sourceLineNo">30194</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.30194"></a>
+<span class="sourceLineNo">30195</span>                        if (it.isOutputDouble()) {<a name="line.30195"></a>
+<span class="sourceLineNo">30196</span>                                while (it.hasNext()) {<a name="line.30196"></a>
+<span class="sourceLineNo">30197</span>                                        final double ix = it.aDouble;<a name="line.30197"></a>
+<span class="sourceLineNo">30198</span>                                        byte ox;<a name="line.30198"></a>
+<span class="sourceLineNo">30199</span>                                        ox = (byte) toLong(ix);<a name="line.30199"></a>
+<span class="sourceLineNo">30200</span>                                        oi8data[it.oIndex] = ox;<a name="line.30200"></a>
+<span class="sourceLineNo">30201</span>                                }<a name="line.30201"></a>
+<span class="sourceLineNo">30202</span>                        } else {<a name="line.30202"></a>
+<span class="sourceLineNo">30203</span>                                while (it.hasNext()) {<a name="line.30203"></a>
+<span class="sourceLineNo">30204</span>                                        final long ix = it.aLong;<a name="line.30204"></a>
+<span class="sourceLineNo">30205</span>                                        byte ox;<a name="line.30205"></a>
+<span class="sourceLineNo">30206</span>                                        ox = (byte) toLong(ix);<a name="line.30206"></a>
+<span class="sourceLineNo">30207</span>                                        oi8data[it.oIndex] = ox;<a name="line.30207"></a>
+<span class="sourceLineNo">30208</span>                                }<a name="line.30208"></a>
+<span class="sourceLineNo">30209</span>                        }<a name="line.30209"></a>
+<span class="sourceLineNo">30210</span>                        break;<a name="line.30210"></a>
+<span class="sourceLineNo">30211</span>                case Dataset.INT16:<a name="line.30211"></a>
+<span class="sourceLineNo">30212</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.30212"></a>
+<span class="sourceLineNo">30213</span>                        if (it.isOutputDouble()) {<a name="line.30213"></a>
+<span class="sourceLineNo">30214</span>                                while (it.hasNext()) {<a name="line.30214"></a>
+<span class="sourceLineNo">30215</span>                                        final double ix = it.aDouble;<a name="line.30215"></a>
+<span class="sourceLineNo">30216</span>                                        short ox;<a name="line.30216"></a>
+<span class="sourceLineNo">30217</span>                                        ox = (short) toLong(ix);<a name="line.30217"></a>
+<span class="sourceLineNo">30218</span>                                        oi16data[it.oIndex] = ox;<a name="line.30218"></a>
+<span class="sourceLineNo">30219</span>                                }<a name="line.30219"></a>
+<span class="sourceLineNo">30220</span>                        } else {<a name="line.30220"></a>
+<span class="sourceLineNo">30221</span>                                while (it.hasNext()) {<a name="line.30221"></a>
+<span class="sourceLineNo">30222</span>                                        final long ix = it.aLong;<a name="line.30222"></a>
+<span class="sourceLineNo">30223</span>                                        short ox;<a name="line.30223"></a>
+<span class="sourceLineNo">30224</span>                                        ox = (short) toLong(ix);<a name="line.30224"></a>
+<span class="sourceLineNo">30225</span>                                        oi16data[it.oIndex] = ox;<a name="line.30225"></a>
+<span class="sourceLineNo">30226</span>                                }<a name="line.30226"></a>
+<span class="sourceLineNo">30227</span>                        }<a name="line.30227"></a>
+<span class="sourceLineNo">30228</span>                        break;<a name="line.30228"></a>
+<span class="sourceLineNo">30229</span>                case Dataset.INT64:<a name="line.30229"></a>
+<span class="sourceLineNo">30230</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.30230"></a>
+<span class="sourceLineNo">30231</span>                        if (it.isOutputDouble()) {<a name="line.30231"></a>
+<span class="sourceLineNo">30232</span>                                while (it.hasNext()) {<a name="line.30232"></a>
+<span class="sourceLineNo">30233</span>                                        final double ix = it.aDouble;<a name="line.30233"></a>
+<span class="sourceLineNo">30234</span>                                        long ox;<a name="line.30234"></a>
+<span class="sourceLineNo">30235</span>                                        ox = toLong(ix);<a name="line.30235"></a>
+<span class="sourceLineNo">30236</span>                                        oi64data[it.oIndex] = ox;<a name="line.30236"></a>
+<span class="sourceLineNo">30237</span>                                }<a name="line.30237"></a>
+<span class="sourceLineNo">30238</span>                        } else {<a name="line.30238"></a>
+<span class="sourceLineNo">30239</span>                                while (it.hasNext()) {<a name="line.30239"></a>
+<span class="sourceLineNo">30240</span>                                        final long ix = it.aLong;<a name="line.30240"></a>
+<span class="sourceLineNo">30241</span>                                        long ox;<a name="line.30241"></a>
+<span class="sourceLineNo">30242</span>                                        ox = toLong(ix);<a name="line.30242"></a>
+<span class="sourceLineNo">30243</span>                                        oi64data[it.oIndex] = ox;<a name="line.30243"></a>
+<span class="sourceLineNo">30244</span>                                }<a name="line.30244"></a>
+<span class="sourceLineNo">30245</span>                        }<a name="line.30245"></a>
+<span class="sourceLineNo">30246</span>                        break;<a name="line.30246"></a>
+<span class="sourceLineNo">30247</span>                case Dataset.INT32:<a name="line.30247"></a>
+<span class="sourceLineNo">30248</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.30248"></a>
+<span class="sourceLineNo">30249</span>                        if (it.isOutputDouble()) {<a name="line.30249"></a>
+<span class="sourceLineNo">30250</span>                                while (it.hasNext()) {<a name="line.30250"></a>
+<span class="sourceLineNo">30251</span>                                        final double ix = it.aDouble;<a name="line.30251"></a>
+<span class="sourceLineNo">30252</span>                                        int ox;<a name="line.30252"></a>
+<span class="sourceLineNo">30253</span>                                        ox = (int) toLong(ix);<a name="line.30253"></a>
+<span class="sourceLineNo">30254</span>                                        oi32data[it.oIndex] = ox;<a name="line.30254"></a>
+<span class="sourceLineNo">30255</span>                                }<a name="line.30255"></a>
+<span class="sourceLineNo">30256</span>                        } else {<a name="line.30256"></a>
+<span class="sourceLineNo">30257</span>                                while (it.hasNext()) {<a name="line.30257"></a>
+<span class="sourceLineNo">30258</span>                                        final long ix = it.aLong;<a name="line.30258"></a>
+<span class="sourceLineNo">30259</span>                                        int ox;<a name="line.30259"></a>
+<span class="sourceLineNo">30260</span>                                        ox = (int) toLong(ix);<a name="line.30260"></a>
+<span class="sourceLineNo">30261</span>                                        oi32data[it.oIndex] = ox;<a name="line.30261"></a>
+<span class="sourceLineNo">30262</span>                                }<a name="line.30262"></a>
+<span class="sourceLineNo">30263</span>                        }<a name="line.30263"></a>
+<span class="sourceLineNo">30264</span>                        break;<a name="line.30264"></a>
+<span class="sourceLineNo">30265</span>                case Dataset.ARRAYINT8:<a name="line.30265"></a>
+<span class="sourceLineNo">30266</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.30266"></a>
+<span class="sourceLineNo">30267</span>                        if (is == 1) {<a name="line.30267"></a>
+<span class="sourceLineNo">30268</span>                                if (it.isOutputDouble()) {<a name="line.30268"></a>
+<span class="sourceLineNo">30269</span>                                        while (it.hasNext()) {<a name="line.30269"></a>
+<span class="sourceLineNo">30270</span>                                                final double ix = it.aDouble;<a name="line.30270"></a>
+<span class="sourceLineNo">30271</span>                                                byte ox;<a name="line.30271"></a>
+<span class="sourceLineNo">30272</span>                                                ox = (byte) toLong(ix);<a name="line.30272"></a>
+<span class="sourceLineNo">30273</span>                                                oai8data[it.oIndex] = ox;<a name="line.30273"></a>
+<span class="sourceLineNo">30274</span>                                        }<a name="line.30274"></a>
+<span class="sourceLineNo">30275</span>                                } else {<a name="line.30275"></a>
+<span class="sourceLineNo">30276</span>                                        while (it.hasNext()) {<a name="line.30276"></a>
+<span class="sourceLineNo">30277</span>                                                final long ix = it.aLong;<a name="line.30277"></a>
+<span class="sourceLineNo">30278</span>                                                byte ox;<a name="line.30278"></a>
+<span class="sourceLineNo">30279</span>                                                ox = (byte) toLong(ix);<a name="line.30279"></a>
+<span class="sourceLineNo">30280</span>                                                oai8data[it.oIndex] = ox;<a name="line.30280"></a>
+<span class="sourceLineNo">30281</span>                                        }<a name="line.30281"></a>
+<span class="sourceLineNo">30282</span>                                }<a name="line.30282"></a>
+<span class="sourceLineNo">30283</span>                        } else if (as == 1) {<a name="line.30283"></a>
+<span class="sourceLineNo">30284</span>                                if (it.isOutputDouble()) {<a name="line.30284"></a>
+<span class="sourceLineNo">30285</span>                                        while (it.hasNext()) {<a name="line.30285"></a>
+<span class="sourceLineNo">30286</span>                                                final double ix = it.aDouble;<a name="line.30286"></a>
+<span class="sourceLineNo">30287</span>                                                byte ox;<a name="line.30287"></a>
+<span class="sourceLineNo">30288</span>                                                ox = (byte) toLong(ix);<a name="line.30288"></a>
+<span class="sourceLineNo">30289</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30289"></a>
+<span class="sourceLineNo">30290</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.30290"></a>
+<span class="sourceLineNo">30291</span>                                                }<a name="line.30291"></a>
+<span class="sourceLineNo">30292</span>                                        }<a name="line.30292"></a>
+<span class="sourceLineNo">30293</span>                                } else {<a name="line.30293"></a>
+<span class="sourceLineNo">30294</span>                                        while (it.hasNext()) {<a name="line.30294"></a>
+<span class="sourceLineNo">30295</span>                                                final long ix = it.aLong;<a name="line.30295"></a>
+<span class="sourceLineNo">30296</span>                                                byte ox;<a name="line.30296"></a>
+<span class="sourceLineNo">30297</span>                                                ox = (byte) toLong(ix);<a name="line.30297"></a>
+<span class="sourceLineNo">30298</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30298"></a>
+<span class="sourceLineNo">30299</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.30299"></a>
+<span class="sourceLineNo">30300</span>                                                }<a name="line.30300"></a>
+<span class="sourceLineNo">30301</span>                                        }<a name="line.30301"></a>
+<span class="sourceLineNo">30302</span>                                }<a name="line.30302"></a>
+<span class="sourceLineNo">30303</span>                        } else {<a name="line.30303"></a>
+<span class="sourceLineNo">30304</span>                                if (it.isOutputDouble()) {<a name="line.30304"></a>
+<span class="sourceLineNo">30305</span>                                        while (it.hasNext()) {<a name="line.30305"></a>
+<span class="sourceLineNo">30306</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30306"></a>
+<span class="sourceLineNo">30307</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.30307"></a>
+<span class="sourceLineNo">30308</span>                                                        byte ox;<a name="line.30308"></a>
+<span class="sourceLineNo">30309</span>                                                        ox = (byte) toLong(ix);<a name="line.30309"></a>
+<span class="sourceLineNo">30310</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.30310"></a>
+<span class="sourceLineNo">30311</span>                                                }<a name="line.30311"></a>
+<span class="sourceLineNo">30312</span>                                        }<a name="line.30312"></a>
+<span class="sourceLineNo">30313</span>                                } else {<a name="line.30313"></a>
+<span class="sourceLineNo">30314</span>                                        while (it.hasNext()) {<a name="line.30314"></a>
+<span class="sourceLineNo">30315</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30315"></a>
+<span class="sourceLineNo">30316</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.30316"></a>
+<span class="sourceLineNo">30317</span>                                                        byte ox;<a name="line.30317"></a>
+<span class="sourceLineNo">30318</span>                                                        ox = (byte) toLong(ix);<a name="line.30318"></a>
+<span class="sourceLineNo">30319</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.30319"></a>
+<span class="sourceLineNo">30320</span>                                                }<a name="line.30320"></a>
+<span class="sourceLineNo">30321</span>                                        }<a name="line.30321"></a>
+<span class="sourceLineNo">30322</span>                                }<a name="line.30322"></a>
+<span class="sourceLineNo">30323</span>                        }<a name="line.30323"></a>
+<span class="sourceLineNo">30324</span>                        break;<a name="line.30324"></a>
+<span class="sourceLineNo">30325</span>                case Dataset.ARRAYINT16:<a name="line.30325"></a>
+<span class="sourceLineNo">30326</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.30326"></a>
+<span class="sourceLineNo">30327</span>                        if (is == 1) {<a name="line.30327"></a>
+<span class="sourceLineNo">30328</span>                                if (it.isOutputDouble()) {<a name="line.30328"></a>
+<span class="sourceLineNo">30329</span>                                        while (it.hasNext()) {<a name="line.30329"></a>
+<span class="sourceLineNo">30330</span>                                                final double ix = it.aDouble;<a name="line.30330"></a>
+<span class="sourceLineNo">30331</span>                                                short ox;<a name="line.30331"></a>
+<span class="sourceLineNo">30332</span>                                                ox = (short) toLong(ix);<a name="line.30332"></a>
+<span class="sourceLineNo">30333</span>                                                oai16data[it.oIndex] = ox;<a name="line.30333"></a>
+<span class="sourceLineNo">30334</span>                                        }<a name="line.30334"></a>
+<span class="sourceLineNo">30335</span>                                } else {<a name="line.30335"></a>
+<span class="sourceLineNo">30336</span>                                        while (it.hasNext()) {<a name="line.30336"></a>
+<span class="sourceLineNo">30337</span>                                                final long ix = it.aLong;<a name="line.30337"></a>
+<span class="sourceLineNo">30338</span>                                                short ox;<a name="line.30338"></a>
+<span class="sourceLineNo">30339</span>                                                ox = (short) toLong(ix);<a name="line.30339"></a>
+<span class="sourceLineNo">30340</span>                                                oai16data[it.oIndex] = ox;<a name="line.30340"></a>
+<span class="sourceLineNo">30341</span>                                        }<a name="line.30341"></a>
+<span class="sourceLineNo">30342</span>                                }<a name="line.30342"></a>
+<span class="sourceLineNo">30343</span>                        } else if (as == 1) {<a name="line.30343"></a>
+<span class="sourceLineNo">30344</span>                                if (it.isOutputDouble()) {<a name="line.30344"></a>
+<span class="sourceLineNo">30345</span>                                        while (it.hasNext()) {<a name="line.30345"></a>
+<span class="sourceLineNo">30346</span>                                                final double ix = it.aDouble;<a name="line.30346"></a>
+<span class="sourceLineNo">30347</span>                                                short ox;<a name="line.30347"></a>
+<span class="sourceLineNo">30348</span>                                                ox = (short) toLong(ix);<a name="line.30348"></a>
+<span class="sourceLineNo">30349</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30349"></a>
+<span class="sourceLineNo">30350</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.30350"></a>
+<span class="sourceLineNo">30351</span>                                                }<a name="line.30351"></a>
+<span class="sourceLineNo">30352</span>                                        }<a name="line.30352"></a>
+<span class="sourceLineNo">30353</span>                                } else {<a name="line.30353"></a>
+<span class="sourceLineNo">30354</span>                                        while (it.hasNext()) {<a name="line.30354"></a>
+<span class="sourceLineNo">30355</span>                                                final long ix = it.aLong;<a name="line.30355"></a>
+<span class="sourceLineNo">30356</span>                                                short ox;<a name="line.30356"></a>
+<span class="sourceLineNo">30357</span>                                                ox = (short) toLong(ix);<a name="line.30357"></a>
+<span class="sourceLineNo">30358</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30358"></a>
+<span class="sourceLineNo">30359</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.30359"></a>
+<span class="sourceLineNo">30360</span>                                                }<a name="line.30360"></a>
+<span class="sourceLineNo">30361</span>                                        }<a name="line.30361"></a>
+<span class="sourceLineNo">30362</span>                                }<a name="line.30362"></a>
+<span class="sourceLineNo">30363</span>                        } else {<a name="line.30363"></a>
+<span class="sourceLineNo">30364</span>                                if (it.isOutputDouble()) {<a name="line.30364"></a>
+<span class="sourceLineNo">30365</span>                                        while (it.hasNext()) {<a name="line.30365"></a>
+<span class="sourceLineNo">30366</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30366"></a>
+<span class="sourceLineNo">30367</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.30367"></a>
+<span class="sourceLineNo">30368</span>                                                        short ox;<a name="line.30368"></a>
+<span class="sourceLineNo">30369</span>                                                        ox = (short) toLong(ix);<a name="line.30369"></a>
+<span class="sourceLineNo">30370</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.30370"></a>
+<span class="sourceLineNo">30371</span>                                                }<a name="line.30371"></a>
+<span class="sourceLineNo">30372</span>                                        }<a name="line.30372"></a>
+<span class="sourceLineNo">30373</span>                                } else {<a name="line.30373"></a>
+<span class="sourceLineNo">30374</span>                                        while (it.hasNext()) {<a name="line.30374"></a>
+<span class="sourceLineNo">30375</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30375"></a>
+<span class="sourceLineNo">30376</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.30376"></a>
+<span class="sourceLineNo">30377</span>                                                        short ox;<a name="line.30377"></a>
+<span class="sourceLineNo">30378</span>                                                        ox = (short) toLong(ix);<a name="line.30378"></a>
+<span class="sourceLineNo">30379</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.30379"></a>
+<span class="sourceLineNo">30380</span>                                                }<a name="line.30380"></a>
+<span class="sourceLineNo">30381</span>                                        }<a name="line.30381"></a>
+<span class="sourceLineNo">30382</span>                                }<a name="line.30382"></a>
+<span class="sourceLineNo">30383</span>                        }<a name="line.30383"></a>
+<span class="sourceLineNo">30384</span>                        break;<a name="line.30384"></a>
+<span class="sourceLineNo">30385</span>                case Dataset.ARRAYINT64:<a name="line.30385"></a>
+<span class="sourceLineNo">30386</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.30386"></a>
+<span class="sourceLineNo">30387</span>                        if (is == 1) {<a name="line.30387"></a>
+<span class="sourceLineNo">30388</span>                                if (it.isOutputDouble()) {<a name="line.30388"></a>
+<span class="sourceLineNo">30389</span>                                        while (it.hasNext()) {<a name="line.30389"></a>
+<span class="sourceLineNo">30390</span>                                                final double ix = it.aDouble;<a name="line.30390"></a>
+<span class="sourceLineNo">30391</span>                                                long ox;<a name="line.30391"></a>
+<span class="sourceLineNo">30392</span>                                                ox = toLong(ix);<a name="line.30392"></a>
+<span class="sourceLineNo">30393</span>                                                oai64data[it.oIndex] = ox;<a name="line.30393"></a>
+<span class="sourceLineNo">30394</span>                                        }<a name="line.30394"></a>
+<span class="sourceLineNo">30395</span>                                } else {<a name="line.30395"></a>
+<span class="sourceLineNo">30396</span>                                        while (it.hasNext()) {<a name="line.30396"></a>
+<span class="sourceLineNo">30397</span>                                                final long ix = it.aLong;<a name="line.30397"></a>
+<span class="sourceLineNo">30398</span>                                                long ox;<a name="line.30398"></a>
+<span class="sourceLineNo">30399</span>                                                ox = toLong(ix);<a name="line.30399"></a>
+<span class="sourceLineNo">30400</span>                                                oai64data[it.oIndex] = ox;<a name="line.30400"></a>
+<span class="sourceLineNo">30401</span>                                        }<a name="line.30401"></a>
+<span class="sourceLineNo">30402</span>                                }<a name="line.30402"></a>
+<span class="sourceLineNo">30403</span>                        } else if (as == 1) {<a name="line.30403"></a>
+<span class="sourceLineNo">30404</span>                                if (it.isOutputDouble()) {<a name="line.30404"></a>
+<span class="sourceLineNo">30405</span>                                        while (it.hasNext()) {<a name="line.30405"></a>
+<span class="sourceLineNo">30406</span>                                                final double ix = it.aDouble;<a name="line.30406"></a>
+<span class="sourceLineNo">30407</span>                                                long ox;<a name="line.30407"></a>
+<span class="sourceLineNo">30408</span>                                                ox = toLong(ix);<a name="line.30408"></a>
+<span class="sourceLineNo">30409</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30409"></a>
+<span class="sourceLineNo">30410</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.30410"></a>
+<span class="sourceLineNo">30411</span>                                                }<a name="line.30411"></a>
+<span class="sourceLineNo">30412</span>                                        }<a name="line.30412"></a>
+<span class="sourceLineNo">30413</span>                                } else {<a name="line.30413"></a>
+<span class="sourceLineNo">30414</span>                                        while (it.hasNext()) {<a name="line.30414"></a>
+<span class="sourceLineNo">30415</span>                                                final long ix = it.aLong;<a name="line.30415"></a>
+<span class="sourceLineNo">30416</span>                                                long ox;<a name="line.30416"></a>
+<span class="sourceLineNo">30417</span>                                                ox = toLong(ix);<a name="line.30417"></a>
+<span class="sourceLineNo">30418</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30418"></a>
+<span class="sourceLineNo">30419</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.30419"></a>
+<span class="sourceLineNo">30420</span>                                                }<a name="line.30420"></a>
+<span class="sourceLineNo">30421</span>                                        }<a name="line.30421"></a>
+<span class="sourceLineNo">30422</span>                                }<a name="line.30422"></a>
+<span class="sourceLineNo">30423</span>                        } else {<a name="line.30423"></a>
+<span class="sourceLineNo">30424</span>                                if (it.isOutputDouble()) {<a name="line.30424"></a>
+<span class="sourceLineNo">30425</span>                                        while (it.hasNext()) {<a name="line.30425"></a>
+<span class="sourceLineNo">30426</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30426"></a>
+<span class="sourceLineNo">30427</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.30427"></a>
+<span class="sourceLineNo">30428</span>                                                        long ox;<a name="line.30428"></a>
+<span class="sourceLineNo">30429</span>                                                        ox = toLong(ix);<a name="line.30429"></a>
+<span class="sourceLineNo">30430</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.30430"></a>
+<span class="sourceLineNo">30431</span>                                                }<a name="line.30431"></a>
+<span class="sourceLineNo">30432</span>                                        }<a name="line.30432"></a>
+<span class="sourceLineNo">30433</span>                                } else {<a name="line.30433"></a>
+<span class="sourceLineNo">30434</span>                                        while (it.hasNext()) {<a name="line.30434"></a>
+<span class="sourceLineNo">30435</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30435"></a>
+<span class="sourceLineNo">30436</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.30436"></a>
+<span class="sourceLineNo">30437</span>                                                        long ox;<a name="line.30437"></a>
+<span class="sourceLineNo">30438</span>                                                        ox = toLong(ix);<a name="line.30438"></a>
+<span class="sourceLineNo">30439</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.30439"></a>
+<span class="sourceLineNo">30440</span>                                                }<a name="line.30440"></a>
+<span class="sourceLineNo">30441</span>                                        }<a name="line.30441"></a>
+<span class="sourceLineNo">30442</span>                                }<a name="line.30442"></a>
+<span class="sourceLineNo">30443</span>                        }<a name="line.30443"></a>
+<span class="sourceLineNo">30444</span>                        break;<a name="line.30444"></a>
+<span class="sourceLineNo">30445</span>                case Dataset.ARRAYINT32:<a name="line.30445"></a>
+<span class="sourceLineNo">30446</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.30446"></a>
+<span class="sourceLineNo">30447</span>                        if (is == 1) {<a name="line.30447"></a>
+<span class="sourceLineNo">30448</span>                                if (it.isOutputDouble()) {<a name="line.30448"></a>
+<span class="sourceLineNo">30449</span>                                        while (it.hasNext()) {<a name="line.30449"></a>
+<span class="sourceLineNo">30450</span>                                                final double ix = it.aDouble;<a name="line.30450"></a>
+<span class="sourceLineNo">30451</span>                                                int ox;<a name="line.30451"></a>
+<span class="sourceLineNo">30452</span>                                                ox = (int) toLong(ix);<a name="line.30452"></a>
+<span class="sourceLineNo">30453</span>                                                oai32data[it.oIndex] = ox;<a name="line.30453"></a>
+<span class="sourceLineNo">30454</span>                                        }<a name="line.30454"></a>
+<span class="sourceLineNo">30455</span>                                } else {<a name="line.30455"></a>
+<span class="sourceLineNo">30456</span>                                        while (it.hasNext()) {<a name="line.30456"></a>
+<span class="sourceLineNo">30457</span>                                                final long ix = it.aLong;<a name="line.30457"></a>
+<span class="sourceLineNo">30458</span>                                                int ox;<a name="line.30458"></a>
+<span class="sourceLineNo">30459</span>                                                ox = (int) toLong(ix);<a name="line.30459"></a>
+<span class="sourceLineNo">30460</span>                                                oai32data[it.oIndex] = ox;<a name="line.30460"></a>
+<span class="sourceLineNo">30461</span>                                        }<a name="line.30461"></a>
+<span class="sourceLineNo">30462</span>                                }<a name="line.30462"></a>
+<span class="sourceLineNo">30463</span>                        } else if (as == 1) {<a name="line.30463"></a>
+<span class="sourceLineNo">30464</span>                                if (it.isOutputDouble()) {<a name="line.30464"></a>
+<span class="sourceLineNo">30465</span>                                        while (it.hasNext()) {<a name="line.30465"></a>
+<span class="sourceLineNo">30466</span>                                                final double ix = it.aDouble;<a name="line.30466"></a>
+<span class="sourceLineNo">30467</span>                                                int ox;<a name="line.30467"></a>
+<span class="sourceLineNo">30468</span>                                                ox = (int) toLong(ix);<a name="line.30468"></a>
+<span class="sourceLineNo">30469</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30469"></a>
+<span class="sourceLineNo">30470</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.30470"></a>
+<span class="sourceLineNo">30471</span>                                                }<a name="line.30471"></a>
+<span class="sourceLineNo">30472</span>                                        }<a name="line.30472"></a>
+<span class="sourceLineNo">30473</span>                                } else {<a name="line.30473"></a>
+<span class="sourceLineNo">30474</span>                                        while (it.hasNext()) {<a name="line.30474"></a>
+<span class="sourceLineNo">30475</span>                                                final long ix = it.aLong;<a name="line.30475"></a>
+<span class="sourceLineNo">30476</span>                                                int ox;<a name="line.30476"></a>
+<span class="sourceLineNo">30477</span>                                                ox = (int) toLong(ix);<a name="line.30477"></a>
+<span class="sourceLineNo">30478</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30478"></a>
+<span class="sourceLineNo">30479</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.30479"></a>
+<span class="sourceLineNo">30480</span>                                                }<a name="line.30480"></a>
+<span class="sourceLineNo">30481</span>                                        }<a name="line.30481"></a>
+<span class="sourceLineNo">30482</span>                                }<a name="line.30482"></a>
+<span class="sourceLineNo">30483</span>                        } else {<a name="line.30483"></a>
+<span class="sourceLineNo">30484</span>                                if (it.isOutputDouble()) {<a name="line.30484"></a>
+<span class="sourceLineNo">30485</span>                                        while (it.hasNext()) {<a name="line.30485"></a>
+<span class="sourceLineNo">30486</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30486"></a>
+<span class="sourceLineNo">30487</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.30487"></a>
+<span class="sourceLineNo">30488</span>                                                        int ox;<a name="line.30488"></a>
+<span class="sourceLineNo">30489</span>                                                        ox = (int) toLong(ix);<a name="line.30489"></a>
+<span class="sourceLineNo">30490</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.30490"></a>
+<span class="sourceLineNo">30491</span>                                                }<a name="line.30491"></a>
+<span class="sourceLineNo">30492</span>                                        }<a name="line.30492"></a>
+<span class="sourceLineNo">30493</span>                                } else {<a name="line.30493"></a>
+<span class="sourceLineNo">30494</span>                                        while (it.hasNext()) {<a name="line.30494"></a>
+<span class="sourceLineNo">30495</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30495"></a>
+<span class="sourceLineNo">30496</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.30496"></a>
+<span class="sourceLineNo">30497</span>                                                        int ox;<a name="line.30497"></a>
+<span class="sourceLineNo">30498</span>                                                        ox = (int) toLong(ix);<a name="line.30498"></a>
+<span class="sourceLineNo">30499</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.30499"></a>
+<span class="sourceLineNo">30500</span>                                                }<a name="line.30500"></a>
+<span class="sourceLineNo">30501</span>                                        }<a name="line.30501"></a>
+<span class="sourceLineNo">30502</span>                                }<a name="line.30502"></a>
+<span class="sourceLineNo">30503</span>                        }<a name="line.30503"></a>
+<span class="sourceLineNo">30504</span>                        break;<a name="line.30504"></a>
+<span class="sourceLineNo">30505</span>                case Dataset.FLOAT32:<a name="line.30505"></a>
+<span class="sourceLineNo">30506</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.30506"></a>
+<span class="sourceLineNo">30507</span>                        if (it.isOutputDouble()) {<a name="line.30507"></a>
+<span class="sourceLineNo">30508</span>                                while (it.hasNext()) {<a name="line.30508"></a>
+<span class="sourceLineNo">30509</span>                                        final double ix = it.aDouble;<a name="line.30509"></a>
+<span class="sourceLineNo">30510</span>                                        float ox;<a name="line.30510"></a>
+<span class="sourceLineNo">30511</span>                                        ox = (float) (Math.floor(ix));<a name="line.30511"></a>
+<span class="sourceLineNo">30512</span>                                        of32data[it.oIndex] = ox;<a name="line.30512"></a>
+<span class="sourceLineNo">30513</span>                                }<a name="line.30513"></a>
+<span class="sourceLineNo">30514</span>                        } else {<a name="line.30514"></a>
+<span class="sourceLineNo">30515</span>                                while (it.hasNext()) {<a name="line.30515"></a>
+<span class="sourceLineNo">30516</span>                                        final long ix = it.aLong;<a name="line.30516"></a>
+<span class="sourceLineNo">30517</span>                                        float ox;<a name="line.30517"></a>
+<span class="sourceLineNo">30518</span>                                        ox = (float) (Math.floor(ix));<a name="line.30518"></a>
+<span class="sourceLineNo">30519</span>                                        of32data[it.oIndex] = ox;<a name="line.30519"></a>
+<span class="sourceLineNo">30520</span>                                }<a name="line.30520"></a>
+<span class="sourceLineNo">30521</span>                        }<a name="line.30521"></a>
+<span class="sourceLineNo">30522</span>                        break;<a name="line.30522"></a>
+<span class="sourceLineNo">30523</span>                case Dataset.FLOAT64:<a name="line.30523"></a>
+<span class="sourceLineNo">30524</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.30524"></a>
+<span class="sourceLineNo">30525</span>                        if (it.isOutputDouble()) {<a name="line.30525"></a>
+<span class="sourceLineNo">30526</span>                                while (it.hasNext()) {<a name="line.30526"></a>
+<span class="sourceLineNo">30527</span>                                        final double ix = it.aDouble;<a name="line.30527"></a>
+<span class="sourceLineNo">30528</span>                                        double ox;<a name="line.30528"></a>
+<span class="sourceLineNo">30529</span>                                        ox = (Math.floor(ix));<a name="line.30529"></a>
+<span class="sourceLineNo">30530</span>                                        of64data[it.oIndex] = ox;<a name="line.30530"></a>
+<span class="sourceLineNo">30531</span>                                }<a name="line.30531"></a>
+<span class="sourceLineNo">30532</span>                        } else {<a name="line.30532"></a>
+<span class="sourceLineNo">30533</span>                                while (it.hasNext()) {<a name="line.30533"></a>
+<span class="sourceLineNo">30534</span>                                        final long ix = it.aLong;<a name="line.30534"></a>
+<span class="sourceLineNo">30535</span>                                        double ox;<a name="line.30535"></a>
+<span class="sourceLineNo">30536</span>                                        ox = (Math.floor(ix));<a name="line.30536"></a>
+<span class="sourceLineNo">30537</span>                                        of64data[it.oIndex] = ox;<a name="line.30537"></a>
+<span class="sourceLineNo">30538</span>                                }<a name="line.30538"></a>
+<span class="sourceLineNo">30539</span>                        }<a name="line.30539"></a>
+<span class="sourceLineNo">30540</span>                        break;<a name="line.30540"></a>
+<span class="sourceLineNo">30541</span>                case Dataset.ARRAYFLOAT32:<a name="line.30541"></a>
+<span class="sourceLineNo">30542</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.30542"></a>
+<span class="sourceLineNo">30543</span>                        if (is == 1) {<a name="line.30543"></a>
+<span class="sourceLineNo">30544</span>                                if (it.isOutputDouble()) {<a name="line.30544"></a>
+<span class="sourceLineNo">30545</span>                                        while (it.hasNext()) {<a name="line.30545"></a>
+<span class="sourceLineNo">30546</span>                                                final double ix = it.aDouble;<a name="line.30546"></a>
+<span class="sourceLineNo">30547</span>                                                float ox;<a name="line.30547"></a>
+<span class="sourceLineNo">30548</span>                                                ox = (float) (Math.floor(ix));<a name="line.30548"></a>
+<span class="sourceLineNo">30549</span>                                                oaf32data[it.oIndex] = ox;<a name="line.30549"></a>
+<span class="sourceLineNo">30550</span>                                        }<a name="line.30550"></a>
+<span class="sourceLineNo">30551</span>                                } else {<a name="line.30551"></a>
+<span class="sourceLineNo">30552</span>                                        while (it.hasNext()) {<a name="line.30552"></a>
+<span class="sourceLineNo">30553</span>                                                final long ix = it.aLong;<a name="line.30553"></a>
+<span class="sourceLineNo">30554</span>                                                float ox;<a name="line.30554"></a>
+<span class="sourceLineNo">30555</span>                                                ox = (float) (Math.floor(ix));<a name="line.30555"></a>
+<span class="sourceLineNo">30556</span>                                                oaf32data[it.oIndex] = ox;<a name="line.30556"></a>
+<span class="sourceLineNo">30557</span>                                        }<a name="line.30557"></a>
+<span class="sourceLineNo">30558</span>                                }<a name="line.30558"></a>
+<span class="sourceLineNo">30559</span>                        } else if (as == 1) {<a name="line.30559"></a>
+<span class="sourceLineNo">30560</span>                                if (it.isOutputDouble()) {<a name="line.30560"></a>
+<span class="sourceLineNo">30561</span>                                        while (it.hasNext()) {<a name="line.30561"></a>
+<span class="sourceLineNo">30562</span>                                                final double ix = it.aDouble;<a name="line.30562"></a>
+<span class="sourceLineNo">30563</span>                                                float ox;<a name="line.30563"></a>
+<span class="sourceLineNo">30564</span>                                                ox = (float) (Math.floor(ix));<a name="line.30564"></a>
+<span class="sourceLineNo">30565</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30565"></a>
+<span class="sourceLineNo">30566</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.30566"></a>
+<span class="sourceLineNo">30567</span>                                                }<a name="line.30567"></a>
+<span class="sourceLineNo">30568</span>                                        }<a name="line.30568"></a>
+<span class="sourceLineNo">30569</span>                                } else {<a name="line.30569"></a>
+<span class="sourceLineNo">30570</span>                                        while (it.hasNext()) {<a name="line.30570"></a>
+<span class="sourceLineNo">30571</span>                                                final long ix = it.aLong;<a name="line.30571"></a>
+<span class="sourceLineNo">30572</span>                                                float ox;<a name="line.30572"></a>
+<span class="sourceLineNo">30573</span>                                                ox = (float) (Math.floor(ix));<a name="line.30573"></a>
+<span class="sourceLineNo">30574</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30574"></a>
+<span class="sourceLineNo">30575</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.30575"></a>
+<span class="sourceLineNo">30576</span>                                                }<a name="line.30576"></a>
+<span class="sourceLineNo">30577</span>                                        }<a name="line.30577"></a>
+<span class="sourceLineNo">30578</span>                                }<a name="line.30578"></a>
+<span class="sourceLineNo">30579</span>                        } else {<a name="line.30579"></a>
+<span class="sourceLineNo">30580</span>                                if (it.isOutputDouble()) {<a name="line.30580"></a>
+<span class="sourceLineNo">30581</span>                                        while (it.hasNext()) {<a name="line.30581"></a>
+<span class="sourceLineNo">30582</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30582"></a>
+<span class="sourceLineNo">30583</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.30583"></a>
+<span class="sourceLineNo">30584</span>                                                        float ox;<a name="line.30584"></a>
+<span class="sourceLineNo">30585</span>                                                        ox = (float) (Math.floor(ix));<a name="line.30585"></a>
+<span class="sourceLineNo">30586</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.30586"></a>
+<span class="sourceLineNo">30587</span>                                                }<a name="line.30587"></a>
+<span class="sourceLineNo">30588</span>                                        }<a name="line.30588"></a>
+<span class="sourceLineNo">30589</span>                                } else {<a name="line.30589"></a>
+<span class="sourceLineNo">30590</span>                                        while (it.hasNext()) {<a name="line.30590"></a>
+<span class="sourceLineNo">30591</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30591"></a>
+<span class="sourceLineNo">30592</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.30592"></a>
+<span class="sourceLineNo">30593</span>                                                        float ox;<a name="line.30593"></a>
+<span class="sourceLineNo">30594</span>                                                        ox = (float) (Math.floor(ix));<a name="line.30594"></a>
+<span class="sourceLineNo">30595</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.30595"></a>
+<span class="sourceLineNo">30596</span>                                                }<a name="line.30596"></a>
+<span class="sourceLineNo">30597</span>                                        }<a name="line.30597"></a>
+<span class="sourceLineNo">30598</span>                                }<a name="line.30598"></a>
+<span class="sourceLineNo">30599</span>                        }<a name="line.30599"></a>
+<span class="sourceLineNo">30600</span>                        break;<a name="line.30600"></a>
+<span class="sourceLineNo">30601</span>                case Dataset.ARRAYFLOAT64:<a name="line.30601"></a>
+<span class="sourceLineNo">30602</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.30602"></a>
+<span class="sourceLineNo">30603</span>                        if (is == 1) {<a name="line.30603"></a>
+<span class="sourceLineNo">30604</span>                                if (it.isOutputDouble()) {<a name="line.30604"></a>
+<span class="sourceLineNo">30605</span>                                        while (it.hasNext()) {<a name="line.30605"></a>
+<span class="sourceLineNo">30606</span>                                                final double ix = it.aDouble;<a name="line.30606"></a>
+<span class="sourceLineNo">30607</span>                                                double ox;<a name="line.30607"></a>
+<span class="sourceLineNo">30608</span>                                                ox = (Math.floor(ix));<a name="line.30608"></a>
+<span class="sourceLineNo">30609</span>                                                oaf64data[it.oIndex] = ox;<a name="line.30609"></a>
+<span class="sourceLineNo">30610</span>                                        }<a name="line.30610"></a>
+<span class="sourceLineNo">30611</span>                                } else {<a name="line.30611"></a>
+<span class="sourceLineNo">30612</span>                                        while (it.hasNext()) {<a name="line.30612"></a>
+<span class="sourceLineNo">30613</span>                                                final long ix = it.aLong;<a name="line.30613"></a>
+<span class="sourceLineNo">30614</span>                                                double ox;<a name="line.30614"></a>
+<span class="sourceLineNo">30615</span>                                                ox = (Math.floor(ix));<a name="line.30615"></a>
+<span class="sourceLineNo">30616</span>                                                oaf64data[it.oIndex] = ox;<a name="line.30616"></a>
+<span class="sourceLineNo">30617</span>                                        }<a name="line.30617"></a>
+<span class="sourceLineNo">30618</span>                                }<a name="line.30618"></a>
+<span class="sourceLineNo">30619</span>                        } else if (as == 1) {<a name="line.30619"></a>
+<span class="sourceLineNo">30620</span>                                if (it.isOutputDouble()) {<a name="line.30620"></a>
+<span class="sourceLineNo">30621</span>                                        while (it.hasNext()) {<a name="line.30621"></a>
+<span class="sourceLineNo">30622</span>                                                final double ix = it.aDouble;<a name="line.30622"></a>
+<span class="sourceLineNo">30623</span>                                                double ox;<a name="line.30623"></a>
+<span class="sourceLineNo">30624</span>                                                ox = (Math.floor(ix));<a name="line.30624"></a>
+<span class="sourceLineNo">30625</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30625"></a>
+<span class="sourceLineNo">30626</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.30626"></a>
+<span class="sourceLineNo">30627</span>                                                }<a name="line.30627"></a>
+<span class="sourceLineNo">30628</span>                                        }<a name="line.30628"></a>
+<span class="sourceLineNo">30629</span>                                } else {<a name="line.30629"></a>
+<span class="sourceLineNo">30630</span>                                        while (it.hasNext()) {<a name="line.30630"></a>
+<span class="sourceLineNo">30631</span>                                                final long ix = it.aLong;<a name="line.30631"></a>
+<span class="sourceLineNo">30632</span>                                                double ox;<a name="line.30632"></a>
+<span class="sourceLineNo">30633</span>                                                ox = (Math.floor(ix));<a name="line.30633"></a>
+<span class="sourceLineNo">30634</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30634"></a>
+<span class="sourceLineNo">30635</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.30635"></a>
+<span class="sourceLineNo">30636</span>                                                }<a name="line.30636"></a>
+<span class="sourceLineNo">30637</span>                                        }<a name="line.30637"></a>
+<span class="sourceLineNo">30638</span>                                }<a name="line.30638"></a>
+<span class="sourceLineNo">30639</span>                        } else {<a name="line.30639"></a>
+<span class="sourceLineNo">30640</span>                                if (it.isOutputDouble()) {<a name="line.30640"></a>
+<span class="sourceLineNo">30641</span>                                        while (it.hasNext()) {<a name="line.30641"></a>
+<span class="sourceLineNo">30642</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30642"></a>
+<span class="sourceLineNo">30643</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.30643"></a>
+<span class="sourceLineNo">30644</span>                                                        double ox;<a name="line.30644"></a>
+<span class="sourceLineNo">30645</span>                                                        ox = (Math.floor(ix));<a name="line.30645"></a>
+<span class="sourceLineNo">30646</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.30646"></a>
+<span class="sourceLineNo">30647</span>                                                }<a name="line.30647"></a>
+<span class="sourceLineNo">30648</span>                                        }<a name="line.30648"></a>
+<span class="sourceLineNo">30649</span>                                } else {<a name="line.30649"></a>
+<span class="sourceLineNo">30650</span>                                        while (it.hasNext()) {<a name="line.30650"></a>
+<span class="sourceLineNo">30651</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30651"></a>
+<span class="sourceLineNo">30652</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.30652"></a>
+<span class="sourceLineNo">30653</span>                                                        double ox;<a name="line.30653"></a>
+<span class="sourceLineNo">30654</span>                                                        ox = (Math.floor(ix));<a name="line.30654"></a>
+<span class="sourceLineNo">30655</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.30655"></a>
+<span class="sourceLineNo">30656</span>                                                }<a name="line.30656"></a>
+<span class="sourceLineNo">30657</span>                                        }<a name="line.30657"></a>
+<span class="sourceLineNo">30658</span>                                }<a name="line.30658"></a>
+<span class="sourceLineNo">30659</span>                        }<a name="line.30659"></a>
+<span class="sourceLineNo">30660</span>                        break;<a name="line.30660"></a>
+<span class="sourceLineNo">30661</span>                case Dataset.COMPLEX64:<a name="line.30661"></a>
+<span class="sourceLineNo">30662</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.30662"></a>
+<span class="sourceLineNo">30663</span>                        if (!da.isComplex()) {<a name="line.30663"></a>
+<span class="sourceLineNo">30664</span>                                if (it.isOutputDouble()) {<a name="line.30664"></a>
+<span class="sourceLineNo">30665</span>                                        final double iy = 0;<a name="line.30665"></a>
+<span class="sourceLineNo">30666</span>                                        while (it.hasNext()) {<a name="line.30666"></a>
+<span class="sourceLineNo">30667</span>                                                final double ix = it.aDouble;<a name="line.30667"></a>
+<span class="sourceLineNo">30668</span>                                                float ox;<a name="line.30668"></a>
+<span class="sourceLineNo">30669</span>                                                float oy;<a name="line.30669"></a>
+<span class="sourceLineNo">30670</span>                                                ox = (float) (Math.floor(ix));<a name="line.30670"></a>
+<span class="sourceLineNo">30671</span>                                                oy = (float) (Math.floor(iy));<a name="line.30671"></a>
+<span class="sourceLineNo">30672</span>                                                oc64data[it.oIndex] = ox;<a name="line.30672"></a>
+<span class="sourceLineNo">30673</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.30673"></a>
+<span class="sourceLineNo">30674</span>                                        }<a name="line.30674"></a>
+<span class="sourceLineNo">30675</span>                                } else {<a name="line.30675"></a>
+<span class="sourceLineNo">30676</span>                                        final long iy = 0;<a name="line.30676"></a>
+<span class="sourceLineNo">30677</span>                                        while (it.hasNext()) {<a name="line.30677"></a>
+<span class="sourceLineNo">30678</span>                                                final long ix = it.aLong;<a name="line.30678"></a>
+<span class="sourceLineNo">30679</span>                                                float ox;<a name="line.30679"></a>
+<span class="sourceLineNo">30680</span>                                                float oy;<a name="line.30680"></a>
+<span class="sourceLineNo">30681</span>                                                ox = (float) toLong(Math.floor(ix));<a name="line.30681"></a>
+<span class="sourceLineNo">30682</span>                                                oy = (float) toLong(Math.floor(iy));<a name="line.30682"></a>
+<span class="sourceLineNo">30683</span>                                                oc64data[it.oIndex] = ox;<a name="line.30683"></a>
+<span class="sourceLineNo">30684</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.30684"></a>
+<span class="sourceLineNo">30685</span>                                        }<a name="line.30685"></a>
+<span class="sourceLineNo">30686</span>                                }<a name="line.30686"></a>
+<span class="sourceLineNo">30687</span>                        } else {<a name="line.30687"></a>
+<span class="sourceLineNo">30688</span>                                while (it.hasNext()) {<a name="line.30688"></a>
+<span class="sourceLineNo">30689</span>                                        final double ix = it.aDouble;<a name="line.30689"></a>
+<span class="sourceLineNo">30690</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.30690"></a>
+<span class="sourceLineNo">30691</span>                                        float ox;<a name="line.30691"></a>
+<span class="sourceLineNo">30692</span>                                        float oy;<a name="line.30692"></a>
+<span class="sourceLineNo">30693</span>                                        ox = (float) (Math.floor(ix));<a name="line.30693"></a>
+<span class="sourceLineNo">30694</span>                                        oy = (float) (Math.floor(iy));<a name="line.30694"></a>
+<span class="sourceLineNo">30695</span>                                        oc64data[it.oIndex] = ox;<a name="line.30695"></a>
+<span class="sourceLineNo">30696</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.30696"></a>
+<span class="sourceLineNo">30697</span>                                }<a name="line.30697"></a>
+<span class="sourceLineNo">30698</span>                        }<a name="line.30698"></a>
+<span class="sourceLineNo">30699</span>                        break;<a name="line.30699"></a>
+<span class="sourceLineNo">30700</span>                case Dataset.COMPLEX128:<a name="line.30700"></a>
+<span class="sourceLineNo">30701</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.30701"></a>
+<span class="sourceLineNo">30702</span>                        if (!da.isComplex()) {<a name="line.30702"></a>
+<span class="sourceLineNo">30703</span>                                if (it.isOutputDouble()) {<a name="line.30703"></a>
+<span class="sourceLineNo">30704</span>                                        final double iy = 0;<a name="line.30704"></a>
+<span class="sourceLineNo">30705</span>                                        while (it.hasNext()) {<a name="line.30705"></a>
+<span class="sourceLineNo">30706</span>                                                final double ix = it.aDouble;<a name="line.30706"></a>
+<span class="sourceLineNo">30707</span>                                                double ox;<a name="line.30707"></a>
+<span class="sourceLineNo">30708</span>                                                double oy;<a name="line.30708"></a>
+<span class="sourceLineNo">30709</span>                                                ox = (Math.floor(ix));<a name="line.30709"></a>
+<span class="sourceLineNo">30710</span>                                                oy = (Math.floor(iy));<a name="line.30710"></a>
+<span class="sourceLineNo">30711</span>                                                oc128data[it.oIndex] = ox;<a name="line.30711"></a>
+<span class="sourceLineNo">30712</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.30712"></a>
+<span class="sourceLineNo">30713</span>                                        }<a name="line.30713"></a>
+<span class="sourceLineNo">30714</span>                                } else {<a name="line.30714"></a>
+<span class="sourceLineNo">30715</span>                                        final long iy = 0;<a name="line.30715"></a>
+<span class="sourceLineNo">30716</span>                                        while (it.hasNext()) {<a name="line.30716"></a>
+<span class="sourceLineNo">30717</span>                                                final long ix = it.aLong;<a name="line.30717"></a>
+<span class="sourceLineNo">30718</span>                                                double ox;<a name="line.30718"></a>
+<span class="sourceLineNo">30719</span>                                                double oy;<a name="line.30719"></a>
+<span class="sourceLineNo">30720</span>                                                ox = (double) (Math.floor(ix));<a name="line.30720"></a>
+<span class="sourceLineNo">30721</span>                                                oy = (double) (Math.floor(iy));<a name="line.30721"></a>
+<span class="sourceLineNo">30722</span>                                                oc128data[it.oIndex] = ox;<a name="line.30722"></a>
+<span class="sourceLineNo">30723</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.30723"></a>
+<span class="sourceLineNo">30724</span>                                        }<a name="line.30724"></a>
+<span class="sourceLineNo">30725</span>                                }<a name="line.30725"></a>
+<span class="sourceLineNo">30726</span>                        } else {<a name="line.30726"></a>
+<span class="sourceLineNo">30727</span>                                while (it.hasNext()) {<a name="line.30727"></a>
+<span class="sourceLineNo">30728</span>                                        final double ix = it.aDouble;<a name="line.30728"></a>
+<span class="sourceLineNo">30729</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.30729"></a>
+<span class="sourceLineNo">30730</span>                                        double ox;<a name="line.30730"></a>
+<span class="sourceLineNo">30731</span>                                        double oy;<a name="line.30731"></a>
+<span class="sourceLineNo">30732</span>                                        ox = (Math.floor(ix));<a name="line.30732"></a>
+<span class="sourceLineNo">30733</span>                                        oy = (Math.floor(iy));<a name="line.30733"></a>
+<span class="sourceLineNo">30734</span>                                        oc128data[it.oIndex] = ox;<a name="line.30734"></a>
+<span class="sourceLineNo">30735</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.30735"></a>
+<span class="sourceLineNo">30736</span>                                }<a name="line.30736"></a>
+<span class="sourceLineNo">30737</span>                        }<a name="line.30737"></a>
+<span class="sourceLineNo">30738</span>                        break;<a name="line.30738"></a>
+<span class="sourceLineNo">30739</span>                default:<a name="line.30739"></a>
+<span class="sourceLineNo">30740</span>                        throw new IllegalArgumentException("floor supports integer, compound integer, real, compound real, complex datasets only");<a name="line.30740"></a>
+<span class="sourceLineNo">30741</span>                }<a name="line.30741"></a>
+<span class="sourceLineNo">30742</span><a name="line.30742"></a>
+<span class="sourceLineNo">30743</span>                addFunctionName(result, "floor");<a name="line.30743"></a>
+<span class="sourceLineNo">30744</span>                return result;<a name="line.30744"></a>
+<span class="sourceLineNo">30745</span>        }<a name="line.30745"></a>
+<span class="sourceLineNo">30746</span><a name="line.30746"></a>
+<span class="sourceLineNo">30747</span>        /**<a name="line.30747"></a>
+<span class="sourceLineNo">30748</span>         * ceil - evaluate the ceiling function on each element of the dataset<a name="line.30748"></a>
+<span class="sourceLineNo">30749</span>         * @param a<a name="line.30749"></a>
+<span class="sourceLineNo">30750</span>         * @return dataset<a name="line.30750"></a>
+<span class="sourceLineNo">30751</span>         */<a name="line.30751"></a>
+<span class="sourceLineNo">30752</span>        public static Dataset ceil(final Object a) {<a name="line.30752"></a>
+<span class="sourceLineNo">30753</span>                return ceil(a, null);<a name="line.30753"></a>
+<span class="sourceLineNo">30754</span>        }<a name="line.30754"></a>
+<span class="sourceLineNo">30755</span><a name="line.30755"></a>
+<span class="sourceLineNo">30756</span>        /**<a name="line.30756"></a>
+<span class="sourceLineNo">30757</span>         * ceil - evaluate the ceiling function on each element of the dataset<a name="line.30757"></a>
+<span class="sourceLineNo">30758</span>         * @param a<a name="line.30758"></a>
+<span class="sourceLineNo">30759</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.30759"></a>
+<span class="sourceLineNo">30760</span>         * @return dataset<a name="line.30760"></a>
+<span class="sourceLineNo">30761</span>         */<a name="line.30761"></a>
+<span class="sourceLineNo">30762</span>        public static Dataset ceil(final Object a, final Dataset o) {<a name="line.30762"></a>
+<span class="sourceLineNo">30763</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.30763"></a>
+<span class="sourceLineNo">30764</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.30764"></a>
+<span class="sourceLineNo">30765</span>                final Dataset result = it.getOutput();<a name="line.30765"></a>
+<span class="sourceLineNo">30766</span>                if (!result.isComplex()) {<a name="line.30766"></a>
+<span class="sourceLineNo">30767</span>                        if (da.isComplex()) {<a name="line.30767"></a>
+<span class="sourceLineNo">30768</span>                                da = da.getRealView();<a name="line.30768"></a>
+<span class="sourceLineNo">30769</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.30769"></a>
+<span class="sourceLineNo">30770</span>                        }<a name="line.30770"></a>
+<span class="sourceLineNo">30771</span>                }<a name="line.30771"></a>
+<span class="sourceLineNo">30772</span>                final int is = result.getElementsPerItem();<a name="line.30772"></a>
+<span class="sourceLineNo">30773</span>                final int as = da.getElementsPerItem();<a name="line.30773"></a>
+<span class="sourceLineNo">30774</span>                final int dt = result.getDType();<a name="line.30774"></a>
+<span class="sourceLineNo">30775</span><a name="line.30775"></a>
+<span class="sourceLineNo">30776</span>                switch(dt) {<a name="line.30776"></a>
+<span class="sourceLineNo">30777</span>                case Dataset.INT8:<a name="line.30777"></a>
+<span class="sourceLineNo">30778</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.30778"></a>
+<span class="sourceLineNo">30779</span>                        if (it.isOutputDouble()) {<a name="line.30779"></a>
+<span class="sourceLineNo">30780</span>                                while (it.hasNext()) {<a name="line.30780"></a>
+<span class="sourceLineNo">30781</span>                                        final double ix = it.aDouble;<a name="line.30781"></a>
+<span class="sourceLineNo">30782</span>                                        byte ox;<a name="line.30782"></a>
+<span class="sourceLineNo">30783</span>                                        ox = (byte) toLong(ix);<a name="line.30783"></a>
+<span class="sourceLineNo">30784</span>                                        oi8data[it.oIndex] = ox;<a name="line.30784"></a>
+<span class="sourceLineNo">30785</span>                                }<a name="line.30785"></a>
+<span class="sourceLineNo">30786</span>                        } else {<a name="line.30786"></a>
+<span class="sourceLineNo">30787</span>                                while (it.hasNext()) {<a name="line.30787"></a>
+<span class="sourceLineNo">30788</span>                                        final long ix = it.aLong;<a name="line.30788"></a>
+<span class="sourceLineNo">30789</span>                                        byte ox;<a name="line.30789"></a>
+<span class="sourceLineNo">30790</span>                                        ox = (byte) toLong(ix);<a name="line.30790"></a>
+<span class="sourceLineNo">30791</span>                                        oi8data[it.oIndex] = ox;<a name="line.30791"></a>
+<span class="sourceLineNo">30792</span>                                }<a name="line.30792"></a>
+<span class="sourceLineNo">30793</span>                        }<a name="line.30793"></a>
+<span class="sourceLineNo">30794</span>                        break;<a name="line.30794"></a>
+<span class="sourceLineNo">30795</span>                case Dataset.INT16:<a name="line.30795"></a>
+<span class="sourceLineNo">30796</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.30796"></a>
+<span class="sourceLineNo">30797</span>                        if (it.isOutputDouble()) {<a name="line.30797"></a>
+<span class="sourceLineNo">30798</span>                                while (it.hasNext()) {<a name="line.30798"></a>
+<span class="sourceLineNo">30799</span>                                        final double ix = it.aDouble;<a name="line.30799"></a>
+<span class="sourceLineNo">30800</span>                                        short ox;<a name="line.30800"></a>
+<span class="sourceLineNo">30801</span>                                        ox = (short) toLong(ix);<a name="line.30801"></a>
+<span class="sourceLineNo">30802</span>                                        oi16data[it.oIndex] = ox;<a name="line.30802"></a>
+<span class="sourceLineNo">30803</span>                                }<a name="line.30803"></a>
+<span class="sourceLineNo">30804</span>                        } else {<a name="line.30804"></a>
+<span class="sourceLineNo">30805</span>                                while (it.hasNext()) {<a name="line.30805"></a>
+<span class="sourceLineNo">30806</span>                                        final long ix = it.aLong;<a name="line.30806"></a>
+<span class="sourceLineNo">30807</span>                                        short ox;<a name="line.30807"></a>
+<span class="sourceLineNo">30808</span>                                        ox = (short) toLong(ix);<a name="line.30808"></a>
+<span class="sourceLineNo">30809</span>                                        oi16data[it.oIndex] = ox;<a name="line.30809"></a>
+<span class="sourceLineNo">30810</span>                                }<a name="line.30810"></a>
+<span class="sourceLineNo">30811</span>                        }<a name="line.30811"></a>
+<span class="sourceLineNo">30812</span>                        break;<a name="line.30812"></a>
+<span class="sourceLineNo">30813</span>                case Dataset.INT64:<a name="line.30813"></a>
+<span class="sourceLineNo">30814</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.30814"></a>
+<span class="sourceLineNo">30815</span>                        if (it.isOutputDouble()) {<a name="line.30815"></a>
+<span class="sourceLineNo">30816</span>                                while (it.hasNext()) {<a name="line.30816"></a>
+<span class="sourceLineNo">30817</span>                                        final double ix = it.aDouble;<a name="line.30817"></a>
+<span class="sourceLineNo">30818</span>                                        long ox;<a name="line.30818"></a>
+<span class="sourceLineNo">30819</span>                                        ox = toLong(ix);<a name="line.30819"></a>
+<span class="sourceLineNo">30820</span>                                        oi64data[it.oIndex] = ox;<a name="line.30820"></a>
+<span class="sourceLineNo">30821</span>                                }<a name="line.30821"></a>
+<span class="sourceLineNo">30822</span>                        } else {<a name="line.30822"></a>
+<span class="sourceLineNo">30823</span>                                while (it.hasNext()) {<a name="line.30823"></a>
+<span class="sourceLineNo">30824</span>                                        final long ix = it.aLong;<a name="line.30824"></a>
+<span class="sourceLineNo">30825</span>                                        long ox;<a name="line.30825"></a>
+<span class="sourceLineNo">30826</span>                                        ox = toLong(ix);<a name="line.30826"></a>
+<span class="sourceLineNo">30827</span>                                        oi64data[it.oIndex] = ox;<a name="line.30827"></a>
+<span class="sourceLineNo">30828</span>                                }<a name="line.30828"></a>
+<span class="sourceLineNo">30829</span>                        }<a name="line.30829"></a>
+<span class="sourceLineNo">30830</span>                        break;<a name="line.30830"></a>
+<span class="sourceLineNo">30831</span>                case Dataset.INT32:<a name="line.30831"></a>
+<span class="sourceLineNo">30832</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.30832"></a>
+<span class="sourceLineNo">30833</span>                        if (it.isOutputDouble()) {<a name="line.30833"></a>
+<span class="sourceLineNo">30834</span>                                while (it.hasNext()) {<a name="line.30834"></a>
+<span class="sourceLineNo">30835</span>                                        final double ix = it.aDouble;<a name="line.30835"></a>
+<span class="sourceLineNo">30836</span>                                        int ox;<a name="line.30836"></a>
+<span class="sourceLineNo">30837</span>                                        ox = (int) toLong(ix);<a name="line.30837"></a>
+<span class="sourceLineNo">30838</span>                                        oi32data[it.oIndex] = ox;<a name="line.30838"></a>
+<span class="sourceLineNo">30839</span>                                }<a name="line.30839"></a>
+<span class="sourceLineNo">30840</span>                        } else {<a name="line.30840"></a>
+<span class="sourceLineNo">30841</span>                                while (it.hasNext()) {<a name="line.30841"></a>
+<span class="sourceLineNo">30842</span>                                        final long ix = it.aLong;<a name="line.30842"></a>
+<span class="sourceLineNo">30843</span>                                        int ox;<a name="line.30843"></a>
+<span class="sourceLineNo">30844</span>                                        ox = (int) toLong(ix);<a name="line.30844"></a>
+<span class="sourceLineNo">30845</span>                                        oi32data[it.oIndex] = ox;<a name="line.30845"></a>
+<span class="sourceLineNo">30846</span>                                }<a name="line.30846"></a>
+<span class="sourceLineNo">30847</span>                        }<a name="line.30847"></a>
+<span class="sourceLineNo">30848</span>                        break;<a name="line.30848"></a>
+<span class="sourceLineNo">30849</span>                case Dataset.ARRAYINT8:<a name="line.30849"></a>
+<span class="sourceLineNo">30850</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.30850"></a>
+<span class="sourceLineNo">30851</span>                        if (is == 1) {<a name="line.30851"></a>
+<span class="sourceLineNo">30852</span>                                if (it.isOutputDouble()) {<a name="line.30852"></a>
+<span class="sourceLineNo">30853</span>                                        while (it.hasNext()) {<a name="line.30853"></a>
+<span class="sourceLineNo">30854</span>                                                final double ix = it.aDouble;<a name="line.30854"></a>
+<span class="sourceLineNo">30855</span>                                                byte ox;<a name="line.30855"></a>
+<span class="sourceLineNo">30856</span>                                                ox = (byte) toLong(ix);<a name="line.30856"></a>
+<span class="sourceLineNo">30857</span>                                                oai8data[it.oIndex] = ox;<a name="line.30857"></a>
+<span class="sourceLineNo">30858</span>                                        }<a name="line.30858"></a>
+<span class="sourceLineNo">30859</span>                                } else {<a name="line.30859"></a>
+<span class="sourceLineNo">30860</span>                                        while (it.hasNext()) {<a name="line.30860"></a>
+<span class="sourceLineNo">30861</span>                                                final long ix = it.aLong;<a name="line.30861"></a>
+<span class="sourceLineNo">30862</span>                                                byte ox;<a name="line.30862"></a>
+<span class="sourceLineNo">30863</span>                                                ox = (byte) toLong(ix);<a name="line.30863"></a>
+<span class="sourceLineNo">30864</span>                                                oai8data[it.oIndex] = ox;<a name="line.30864"></a>
+<span class="sourceLineNo">30865</span>                                        }<a name="line.30865"></a>
+<span class="sourceLineNo">30866</span>                                }<a name="line.30866"></a>
+<span class="sourceLineNo">30867</span>                        } else if (as == 1) {<a name="line.30867"></a>
+<span class="sourceLineNo">30868</span>                                if (it.isOutputDouble()) {<a name="line.30868"></a>
+<span class="sourceLineNo">30869</span>                                        while (it.hasNext()) {<a name="line.30869"></a>
+<span class="sourceLineNo">30870</span>                                                final double ix = it.aDouble;<a name="line.30870"></a>
+<span class="sourceLineNo">30871</span>                                                byte ox;<a name="line.30871"></a>
+<span class="sourceLineNo">30872</span>                                                ox = (byte) toLong(ix);<a name="line.30872"></a>
+<span class="sourceLineNo">30873</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30873"></a>
+<span class="sourceLineNo">30874</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.30874"></a>
+<span class="sourceLineNo">30875</span>                                                }<a name="line.30875"></a>
+<span class="sourceLineNo">30876</span>                                        }<a name="line.30876"></a>
+<span class="sourceLineNo">30877</span>                                } else {<a name="line.30877"></a>
+<span class="sourceLineNo">30878</span>                                        while (it.hasNext()) {<a name="line.30878"></a>
+<span class="sourceLineNo">30879</span>                                                final long ix = it.aLong;<a name="line.30879"></a>
+<span class="sourceLineNo">30880</span>                                                byte ox;<a name="line.30880"></a>
+<span class="sourceLineNo">30881</span>                                                ox = (byte) toLong(ix);<a name="line.30881"></a>
+<span class="sourceLineNo">30882</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30882"></a>
+<span class="sourceLineNo">30883</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.30883"></a>
+<span class="sourceLineNo">30884</span>                                                }<a name="line.30884"></a>
+<span class="sourceLineNo">30885</span>                                        }<a name="line.30885"></a>
+<span class="sourceLineNo">30886</span>                                }<a name="line.30886"></a>
+<span class="sourceLineNo">30887</span>                        } else {<a name="line.30887"></a>
+<span class="sourceLineNo">30888</span>                                if (it.isOutputDouble()) {<a name="line.30888"></a>
+<span class="sourceLineNo">30889</span>                                        while (it.hasNext()) {<a name="line.30889"></a>
+<span class="sourceLineNo">30890</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30890"></a>
+<span class="sourceLineNo">30891</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.30891"></a>
+<span class="sourceLineNo">30892</span>                                                        byte ox;<a name="line.30892"></a>
+<span class="sourceLineNo">30893</span>                                                        ox = (byte) toLong(ix);<a name="line.30893"></a>
+<span class="sourceLineNo">30894</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.30894"></a>
+<span class="sourceLineNo">30895</span>                                                }<a name="line.30895"></a>
+<span class="sourceLineNo">30896</span>                                        }<a name="line.30896"></a>
+<span class="sourceLineNo">30897</span>                                } else {<a name="line.30897"></a>
+<span class="sourceLineNo">30898</span>                                        while (it.hasNext()) {<a name="line.30898"></a>
+<span class="sourceLineNo">30899</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30899"></a>
+<span class="sourceLineNo">30900</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.30900"></a>
+<span class="sourceLineNo">30901</span>                                                        byte ox;<a name="line.30901"></a>
+<span class="sourceLineNo">30902</span>                                                        ox = (byte) toLong(ix);<a name="line.30902"></a>
+<span class="sourceLineNo">30903</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.30903"></a>
+<span class="sourceLineNo">30904</span>                                                }<a name="line.30904"></a>
+<span class="sourceLineNo">30905</span>                                        }<a name="line.30905"></a>
+<span class="sourceLineNo">30906</span>                                }<a name="line.30906"></a>
+<span class="sourceLineNo">30907</span>                        }<a name="line.30907"></a>
+<span class="sourceLineNo">30908</span>                        break;<a name="line.30908"></a>
+<span class="sourceLineNo">30909</span>                case Dataset.ARRAYINT16:<a name="line.30909"></a>
+<span class="sourceLineNo">30910</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.30910"></a>
+<span class="sourceLineNo">30911</span>                        if (is == 1) {<a name="line.30911"></a>
+<span class="sourceLineNo">30912</span>                                if (it.isOutputDouble()) {<a name="line.30912"></a>
+<span class="sourceLineNo">30913</span>                                        while (it.hasNext()) {<a name="line.30913"></a>
+<span class="sourceLineNo">30914</span>                                                final double ix = it.aDouble;<a name="line.30914"></a>
+<span class="sourceLineNo">30915</span>                                                short ox;<a name="line.30915"></a>
+<span class="sourceLineNo">30916</span>                                                ox = (short) toLong(ix);<a name="line.30916"></a>
+<span class="sourceLineNo">30917</span>                                                oai16data[it.oIndex] = ox;<a name="line.30917"></a>
+<span class="sourceLineNo">30918</span>                                        }<a name="line.30918"></a>
+<span class="sourceLineNo">30919</span>                                } else {<a name="line.30919"></a>
+<span class="sourceLineNo">30920</span>                                        while (it.hasNext()) {<a name="line.30920"></a>
+<span class="sourceLineNo">30921</span>                                                final long ix = it.aLong;<a name="line.30921"></a>
+<span class="sourceLineNo">30922</span>                                                short ox;<a name="line.30922"></a>
+<span class="sourceLineNo">30923</span>                                                ox = (short) toLong(ix);<a name="line.30923"></a>
+<span class="sourceLineNo">30924</span>                                                oai16data[it.oIndex] = ox;<a name="line.30924"></a>
+<span class="sourceLineNo">30925</span>                                        }<a name="line.30925"></a>
+<span class="sourceLineNo">30926</span>                                }<a name="line.30926"></a>
+<span class="sourceLineNo">30927</span>                        } else if (as == 1) {<a name="line.30927"></a>
+<span class="sourceLineNo">30928</span>                                if (it.isOutputDouble()) {<a name="line.30928"></a>
+<span class="sourceLineNo">30929</span>                                        while (it.hasNext()) {<a name="line.30929"></a>
+<span class="sourceLineNo">30930</span>                                                final double ix = it.aDouble;<a name="line.30930"></a>
+<span class="sourceLineNo">30931</span>                                                short ox;<a name="line.30931"></a>
+<span class="sourceLineNo">30932</span>                                                ox = (short) toLong(ix);<a name="line.30932"></a>
+<span class="sourceLineNo">30933</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30933"></a>
+<span class="sourceLineNo">30934</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.30934"></a>
+<span class="sourceLineNo">30935</span>                                                }<a name="line.30935"></a>
+<span class="sourceLineNo">30936</span>                                        }<a name="line.30936"></a>
+<span class="sourceLineNo">30937</span>                                } else {<a name="line.30937"></a>
+<span class="sourceLineNo">30938</span>                                        while (it.hasNext()) {<a name="line.30938"></a>
+<span class="sourceLineNo">30939</span>                                                final long ix = it.aLong;<a name="line.30939"></a>
+<span class="sourceLineNo">30940</span>                                                short ox;<a name="line.30940"></a>
+<span class="sourceLineNo">30941</span>                                                ox = (short) toLong(ix);<a name="line.30941"></a>
+<span class="sourceLineNo">30942</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30942"></a>
+<span class="sourceLineNo">30943</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.30943"></a>
+<span class="sourceLineNo">30944</span>                                                }<a name="line.30944"></a>
+<span class="sourceLineNo">30945</span>                                        }<a name="line.30945"></a>
+<span class="sourceLineNo">30946</span>                                }<a name="line.30946"></a>
+<span class="sourceLineNo">30947</span>                        } else {<a name="line.30947"></a>
+<span class="sourceLineNo">30948</span>                                if (it.isOutputDouble()) {<a name="line.30948"></a>
+<span class="sourceLineNo">30949</span>                                        while (it.hasNext()) {<a name="line.30949"></a>
+<span class="sourceLineNo">30950</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30950"></a>
+<span class="sourceLineNo">30951</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.30951"></a>
+<span class="sourceLineNo">30952</span>                                                        short ox;<a name="line.30952"></a>
+<span class="sourceLineNo">30953</span>                                                        ox = (short) toLong(ix);<a name="line.30953"></a>
+<span class="sourceLineNo">30954</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.30954"></a>
+<span class="sourceLineNo">30955</span>                                                }<a name="line.30955"></a>
+<span class="sourceLineNo">30956</span>                                        }<a name="line.30956"></a>
+<span class="sourceLineNo">30957</span>                                } else {<a name="line.30957"></a>
+<span class="sourceLineNo">30958</span>                                        while (it.hasNext()) {<a name="line.30958"></a>
+<span class="sourceLineNo">30959</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30959"></a>
+<span class="sourceLineNo">30960</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.30960"></a>
+<span class="sourceLineNo">30961</span>                                                        short ox;<a name="line.30961"></a>
+<span class="sourceLineNo">30962</span>                                                        ox = (short) toLong(ix);<a name="line.30962"></a>
+<span class="sourceLineNo">30963</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.30963"></a>
+<span class="sourceLineNo">30964</span>                                                }<a name="line.30964"></a>
+<span class="sourceLineNo">30965</span>                                        }<a name="line.30965"></a>
+<span class="sourceLineNo">30966</span>                                }<a name="line.30966"></a>
+<span class="sourceLineNo">30967</span>                        }<a name="line.30967"></a>
+<span class="sourceLineNo">30968</span>                        break;<a name="line.30968"></a>
+<span class="sourceLineNo">30969</span>                case Dataset.ARRAYINT64:<a name="line.30969"></a>
+<span class="sourceLineNo">30970</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.30970"></a>
+<span class="sourceLineNo">30971</span>                        if (is == 1) {<a name="line.30971"></a>
+<span class="sourceLineNo">30972</span>                                if (it.isOutputDouble()) {<a name="line.30972"></a>
+<span class="sourceLineNo">30973</span>                                        while (it.hasNext()) {<a name="line.30973"></a>
+<span class="sourceLineNo">30974</span>                                                final double ix = it.aDouble;<a name="line.30974"></a>
+<span class="sourceLineNo">30975</span>                                                long ox;<a name="line.30975"></a>
+<span class="sourceLineNo">30976</span>                                                ox = toLong(ix);<a name="line.30976"></a>
+<span class="sourceLineNo">30977</span>                                                oai64data[it.oIndex] = ox;<a name="line.30977"></a>
+<span class="sourceLineNo">30978</span>                                        }<a name="line.30978"></a>
+<span class="sourceLineNo">30979</span>                                } else {<a name="line.30979"></a>
+<span class="sourceLineNo">30980</span>                                        while (it.hasNext()) {<a name="line.30980"></a>
+<span class="sourceLineNo">30981</span>                                                final long ix = it.aLong;<a name="line.30981"></a>
+<span class="sourceLineNo">30982</span>                                                long ox;<a name="line.30982"></a>
+<span class="sourceLineNo">30983</span>                                                ox = toLong(ix);<a name="line.30983"></a>
+<span class="sourceLineNo">30984</span>                                                oai64data[it.oIndex] = ox;<a name="line.30984"></a>
+<span class="sourceLineNo">30985</span>                                        }<a name="line.30985"></a>
+<span class="sourceLineNo">30986</span>                                }<a name="line.30986"></a>
+<span class="sourceLineNo">30987</span>                        } else if (as == 1) {<a name="line.30987"></a>
+<span class="sourceLineNo">30988</span>                                if (it.isOutputDouble()) {<a name="line.30988"></a>
+<span class="sourceLineNo">30989</span>                                        while (it.hasNext()) {<a name="line.30989"></a>
+<span class="sourceLineNo">30990</span>                                                final double ix = it.aDouble;<a name="line.30990"></a>
+<span class="sourceLineNo">30991</span>                                                long ox;<a name="line.30991"></a>
+<span class="sourceLineNo">30992</span>                                                ox = toLong(ix);<a name="line.30992"></a>
+<span class="sourceLineNo">30993</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.30993"></a>
+<span class="sourceLineNo">30994</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.30994"></a>
+<span class="sourceLineNo">30995</span>                                                }<a name="line.30995"></a>
+<span class="sourceLineNo">30996</span>                                        }<a name="line.30996"></a>
+<span class="sourceLineNo">30997</span>                                } else {<a name="line.30997"></a>
+<span class="sourceLineNo">30998</span>                                        while (it.hasNext()) {<a name="line.30998"></a>
+<span class="sourceLineNo">30999</span>                                                final long ix = it.aLong;<a name="line.30999"></a>
+<span class="sourceLineNo">31000</span>                                                long ox;<a name="line.31000"></a>
+<span class="sourceLineNo">31001</span>                                                ox = toLong(ix);<a name="line.31001"></a>
+<span class="sourceLineNo">31002</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31002"></a>
+<span class="sourceLineNo">31003</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.31003"></a>
+<span class="sourceLineNo">31004</span>                                                }<a name="line.31004"></a>
+<span class="sourceLineNo">31005</span>                                        }<a name="line.31005"></a>
+<span class="sourceLineNo">31006</span>                                }<a name="line.31006"></a>
+<span class="sourceLineNo">31007</span>                        } else {<a name="line.31007"></a>
+<span class="sourceLineNo">31008</span>                                if (it.isOutputDouble()) {<a name="line.31008"></a>
+<span class="sourceLineNo">31009</span>                                        while (it.hasNext()) {<a name="line.31009"></a>
+<span class="sourceLineNo">31010</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31010"></a>
+<span class="sourceLineNo">31011</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.31011"></a>
+<span class="sourceLineNo">31012</span>                                                        long ox;<a name="line.31012"></a>
+<span class="sourceLineNo">31013</span>                                                        ox = toLong(ix);<a name="line.31013"></a>
+<span class="sourceLineNo">31014</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.31014"></a>
+<span class="sourceLineNo">31015</span>                                                }<a name="line.31015"></a>
+<span class="sourceLineNo">31016</span>                                        }<a name="line.31016"></a>
+<span class="sourceLineNo">31017</span>                                } else {<a name="line.31017"></a>
+<span class="sourceLineNo">31018</span>                                        while (it.hasNext()) {<a name="line.31018"></a>
+<span class="sourceLineNo">31019</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31019"></a>
+<span class="sourceLineNo">31020</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.31020"></a>
+<span class="sourceLineNo">31021</span>                                                        long ox;<a name="line.31021"></a>
+<span class="sourceLineNo">31022</span>                                                        ox = toLong(ix);<a name="line.31022"></a>
+<span class="sourceLineNo">31023</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.31023"></a>
+<span class="sourceLineNo">31024</span>                                                }<a name="line.31024"></a>
+<span class="sourceLineNo">31025</span>                                        }<a name="line.31025"></a>
+<span class="sourceLineNo">31026</span>                                }<a name="line.31026"></a>
+<span class="sourceLineNo">31027</span>                        }<a name="line.31027"></a>
+<span class="sourceLineNo">31028</span>                        break;<a name="line.31028"></a>
+<span class="sourceLineNo">31029</span>                case Dataset.ARRAYINT32:<a name="line.31029"></a>
+<span class="sourceLineNo">31030</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.31030"></a>
+<span class="sourceLineNo">31031</span>                        if (is == 1) {<a name="line.31031"></a>
+<span class="sourceLineNo">31032</span>                                if (it.isOutputDouble()) {<a name="line.31032"></a>
+<span class="sourceLineNo">31033</span>                                        while (it.hasNext()) {<a name="line.31033"></a>
+<span class="sourceLineNo">31034</span>                                                final double ix = it.aDouble;<a name="line.31034"></a>
+<span class="sourceLineNo">31035</span>                                                int ox;<a name="line.31035"></a>
+<span class="sourceLineNo">31036</span>                                                ox = (int) toLong(ix);<a name="line.31036"></a>
+<span class="sourceLineNo">31037</span>                                                oai32data[it.oIndex] = ox;<a name="line.31037"></a>
+<span class="sourceLineNo">31038</span>                                        }<a name="line.31038"></a>
+<span class="sourceLineNo">31039</span>                                } else {<a name="line.31039"></a>
+<span class="sourceLineNo">31040</span>                                        while (it.hasNext()) {<a name="line.31040"></a>
+<span class="sourceLineNo">31041</span>                                                final long ix = it.aLong;<a name="line.31041"></a>
+<span class="sourceLineNo">31042</span>                                                int ox;<a name="line.31042"></a>
+<span class="sourceLineNo">31043</span>                                                ox = (int) toLong(ix);<a name="line.31043"></a>
+<span class="sourceLineNo">31044</span>                                                oai32data[it.oIndex] = ox;<a name="line.31044"></a>
+<span class="sourceLineNo">31045</span>                                        }<a name="line.31045"></a>
+<span class="sourceLineNo">31046</span>                                }<a name="line.31046"></a>
+<span class="sourceLineNo">31047</span>                        } else if (as == 1) {<a name="line.31047"></a>
+<span class="sourceLineNo">31048</span>                                if (it.isOutputDouble()) {<a name="line.31048"></a>
+<span class="sourceLineNo">31049</span>                                        while (it.hasNext()) {<a name="line.31049"></a>
+<span class="sourceLineNo">31050</span>                                                final double ix = it.aDouble;<a name="line.31050"></a>
+<span class="sourceLineNo">31051</span>                                                int ox;<a name="line.31051"></a>
+<span class="sourceLineNo">31052</span>                                                ox = (int) toLong(ix);<a name="line.31052"></a>
+<span class="sourceLineNo">31053</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31053"></a>
+<span class="sourceLineNo">31054</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.31054"></a>
+<span class="sourceLineNo">31055</span>                                                }<a name="line.31055"></a>
+<span class="sourceLineNo">31056</span>                                        }<a name="line.31056"></a>
+<span class="sourceLineNo">31057</span>                                } else {<a name="line.31057"></a>
+<span class="sourceLineNo">31058</span>                                        while (it.hasNext()) {<a name="line.31058"></a>
+<span class="sourceLineNo">31059</span>                                                final long ix = it.aLong;<a name="line.31059"></a>
+<span class="sourceLineNo">31060</span>                                                int ox;<a name="line.31060"></a>
+<span class="sourceLineNo">31061</span>                                                ox = (int) toLong(ix);<a name="line.31061"></a>
+<span class="sourceLineNo">31062</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31062"></a>
+<span class="sourceLineNo">31063</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.31063"></a>
+<span class="sourceLineNo">31064</span>                                                }<a name="line.31064"></a>
+<span class="sourceLineNo">31065</span>                                        }<a name="line.31065"></a>
+<span class="sourceLineNo">31066</span>                                }<a name="line.31066"></a>
+<span class="sourceLineNo">31067</span>                        } else {<a name="line.31067"></a>
+<span class="sourceLineNo">31068</span>                                if (it.isOutputDouble()) {<a name="line.31068"></a>
+<span class="sourceLineNo">31069</span>                                        while (it.hasNext()) {<a name="line.31069"></a>
+<span class="sourceLineNo">31070</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31070"></a>
+<span class="sourceLineNo">31071</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.31071"></a>
+<span class="sourceLineNo">31072</span>                                                        int ox;<a name="line.31072"></a>
+<span class="sourceLineNo">31073</span>                                                        ox = (int) toLong(ix);<a name="line.31073"></a>
+<span class="sourceLineNo">31074</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.31074"></a>
+<span class="sourceLineNo">31075</span>                                                }<a name="line.31075"></a>
+<span class="sourceLineNo">31076</span>                                        }<a name="line.31076"></a>
+<span class="sourceLineNo">31077</span>                                } else {<a name="line.31077"></a>
+<span class="sourceLineNo">31078</span>                                        while (it.hasNext()) {<a name="line.31078"></a>
+<span class="sourceLineNo">31079</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31079"></a>
+<span class="sourceLineNo">31080</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.31080"></a>
+<span class="sourceLineNo">31081</span>                                                        int ox;<a name="line.31081"></a>
+<span class="sourceLineNo">31082</span>                                                        ox = (int) toLong(ix);<a name="line.31082"></a>
+<span class="sourceLineNo">31083</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.31083"></a>
+<span class="sourceLineNo">31084</span>                                                }<a name="line.31084"></a>
+<span class="sourceLineNo">31085</span>                                        }<a name="line.31085"></a>
+<span class="sourceLineNo">31086</span>                                }<a name="line.31086"></a>
+<span class="sourceLineNo">31087</span>                        }<a name="line.31087"></a>
+<span class="sourceLineNo">31088</span>                        break;<a name="line.31088"></a>
+<span class="sourceLineNo">31089</span>                case Dataset.FLOAT32:<a name="line.31089"></a>
+<span class="sourceLineNo">31090</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.31090"></a>
+<span class="sourceLineNo">31091</span>                        if (it.isOutputDouble()) {<a name="line.31091"></a>
+<span class="sourceLineNo">31092</span>                                while (it.hasNext()) {<a name="line.31092"></a>
+<span class="sourceLineNo">31093</span>                                        final double ix = it.aDouble;<a name="line.31093"></a>
+<span class="sourceLineNo">31094</span>                                        float ox;<a name="line.31094"></a>
+<span class="sourceLineNo">31095</span>                                        ox = (float) (Math.ceil(ix));<a name="line.31095"></a>
+<span class="sourceLineNo">31096</span>                                        of32data[it.oIndex] = ox;<a name="line.31096"></a>
+<span class="sourceLineNo">31097</span>                                }<a name="line.31097"></a>
+<span class="sourceLineNo">31098</span>                        } else {<a name="line.31098"></a>
+<span class="sourceLineNo">31099</span>                                while (it.hasNext()) {<a name="line.31099"></a>
+<span class="sourceLineNo">31100</span>                                        final long ix = it.aLong;<a name="line.31100"></a>
+<span class="sourceLineNo">31101</span>                                        float ox;<a name="line.31101"></a>
+<span class="sourceLineNo">31102</span>                                        ox = (float) (Math.ceil(ix));<a name="line.31102"></a>
+<span class="sourceLineNo">31103</span>                                        of32data[it.oIndex] = ox;<a name="line.31103"></a>
+<span class="sourceLineNo">31104</span>                                }<a name="line.31104"></a>
+<span class="sourceLineNo">31105</span>                        }<a name="line.31105"></a>
+<span class="sourceLineNo">31106</span>                        break;<a name="line.31106"></a>
+<span class="sourceLineNo">31107</span>                case Dataset.FLOAT64:<a name="line.31107"></a>
+<span class="sourceLineNo">31108</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.31108"></a>
+<span class="sourceLineNo">31109</span>                        if (it.isOutputDouble()) {<a name="line.31109"></a>
+<span class="sourceLineNo">31110</span>                                while (it.hasNext()) {<a name="line.31110"></a>
+<span class="sourceLineNo">31111</span>                                        final double ix = it.aDouble;<a name="line.31111"></a>
+<span class="sourceLineNo">31112</span>                                        double ox;<a name="line.31112"></a>
+<span class="sourceLineNo">31113</span>                                        ox = (Math.ceil(ix));<a name="line.31113"></a>
+<span class="sourceLineNo">31114</span>                                        of64data[it.oIndex] = ox;<a name="line.31114"></a>
+<span class="sourceLineNo">31115</span>                                }<a name="line.31115"></a>
+<span class="sourceLineNo">31116</span>                        } else {<a name="line.31116"></a>
+<span class="sourceLineNo">31117</span>                                while (it.hasNext()) {<a name="line.31117"></a>
+<span class="sourceLineNo">31118</span>                                        final long ix = it.aLong;<a name="line.31118"></a>
+<span class="sourceLineNo">31119</span>                                        double ox;<a name="line.31119"></a>
+<span class="sourceLineNo">31120</span>                                        ox = (Math.ceil(ix));<a name="line.31120"></a>
+<span class="sourceLineNo">31121</span>                                        of64data[it.oIndex] = ox;<a name="line.31121"></a>
+<span class="sourceLineNo">31122</span>                                }<a name="line.31122"></a>
+<span class="sourceLineNo">31123</span>                        }<a name="line.31123"></a>
+<span class="sourceLineNo">31124</span>                        break;<a name="line.31124"></a>
+<span class="sourceLineNo">31125</span>                case Dataset.ARRAYFLOAT32:<a name="line.31125"></a>
+<span class="sourceLineNo">31126</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.31126"></a>
+<span class="sourceLineNo">31127</span>                        if (is == 1) {<a name="line.31127"></a>
+<span class="sourceLineNo">31128</span>                                if (it.isOutputDouble()) {<a name="line.31128"></a>
+<span class="sourceLineNo">31129</span>                                        while (it.hasNext()) {<a name="line.31129"></a>
+<span class="sourceLineNo">31130</span>                                                final double ix = it.aDouble;<a name="line.31130"></a>
+<span class="sourceLineNo">31131</span>                                                float ox;<a name="line.31131"></a>
+<span class="sourceLineNo">31132</span>                                                ox = (float) (Math.ceil(ix));<a name="line.31132"></a>
+<span class="sourceLineNo">31133</span>                                                oaf32data[it.oIndex] = ox;<a name="line.31133"></a>
+<span class="sourceLineNo">31134</span>                                        }<a name="line.31134"></a>
+<span class="sourceLineNo">31135</span>                                } else {<a name="line.31135"></a>
+<span class="sourceLineNo">31136</span>                                        while (it.hasNext()) {<a name="line.31136"></a>
+<span class="sourceLineNo">31137</span>                                                final long ix = it.aLong;<a name="line.31137"></a>
+<span class="sourceLineNo">31138</span>                                                float ox;<a name="line.31138"></a>
+<span class="sourceLineNo">31139</span>                                                ox = (float) (Math.ceil(ix));<a name="line.31139"></a>
+<span class="sourceLineNo">31140</span>                                                oaf32data[it.oIndex] = ox;<a name="line.31140"></a>
+<span class="sourceLineNo">31141</span>                                        }<a name="line.31141"></a>
+<span class="sourceLineNo">31142</span>                                }<a name="line.31142"></a>
+<span class="sourceLineNo">31143</span>                        } else if (as == 1) {<a name="line.31143"></a>
+<span class="sourceLineNo">31144</span>                                if (it.isOutputDouble()) {<a name="line.31144"></a>
+<span class="sourceLineNo">31145</span>                                        while (it.hasNext()) {<a name="line.31145"></a>
+<span class="sourceLineNo">31146</span>                                                final double ix = it.aDouble;<a name="line.31146"></a>
+<span class="sourceLineNo">31147</span>                                                float ox;<a name="line.31147"></a>
+<span class="sourceLineNo">31148</span>                                                ox = (float) (Math.ceil(ix));<a name="line.31148"></a>
+<span class="sourceLineNo">31149</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31149"></a>
+<span class="sourceLineNo">31150</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.31150"></a>
+<span class="sourceLineNo">31151</span>                                                }<a name="line.31151"></a>
+<span class="sourceLineNo">31152</span>                                        }<a name="line.31152"></a>
+<span class="sourceLineNo">31153</span>                                } else {<a name="line.31153"></a>
+<span class="sourceLineNo">31154</span>                                        while (it.hasNext()) {<a name="line.31154"></a>
+<span class="sourceLineNo">31155</span>                                                final long ix = it.aLong;<a name="line.31155"></a>
+<span class="sourceLineNo">31156</span>                                                float ox;<a name="line.31156"></a>
+<span class="sourceLineNo">31157</span>                                                ox = (float) (Math.ceil(ix));<a name="line.31157"></a>
+<span class="sourceLineNo">31158</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31158"></a>
+<span class="sourceLineNo">31159</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.31159"></a>
+<span class="sourceLineNo">31160</span>                                                }<a name="line.31160"></a>
+<span class="sourceLineNo">31161</span>                                        }<a name="line.31161"></a>
+<span class="sourceLineNo">31162</span>                                }<a name="line.31162"></a>
+<span class="sourceLineNo">31163</span>                        } else {<a name="line.31163"></a>
+<span class="sourceLineNo">31164</span>                                if (it.isOutputDouble()) {<a name="line.31164"></a>
+<span class="sourceLineNo">31165</span>                                        while (it.hasNext()) {<a name="line.31165"></a>
+<span class="sourceLineNo">31166</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31166"></a>
+<span class="sourceLineNo">31167</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.31167"></a>
+<span class="sourceLineNo">31168</span>                                                        float ox;<a name="line.31168"></a>
+<span class="sourceLineNo">31169</span>                                                        ox = (float) (Math.ceil(ix));<a name="line.31169"></a>
+<span class="sourceLineNo">31170</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.31170"></a>
+<span class="sourceLineNo">31171</span>                                                }<a name="line.31171"></a>
+<span class="sourceLineNo">31172</span>                                        }<a name="line.31172"></a>
+<span class="sourceLineNo">31173</span>                                } else {<a name="line.31173"></a>
+<span class="sourceLineNo">31174</span>                                        while (it.hasNext()) {<a name="line.31174"></a>
+<span class="sourceLineNo">31175</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31175"></a>
+<span class="sourceLineNo">31176</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.31176"></a>
+<span class="sourceLineNo">31177</span>                                                        float ox;<a name="line.31177"></a>
+<span class="sourceLineNo">31178</span>                                                        ox = (float) (Math.ceil(ix));<a name="line.31178"></a>
+<span class="sourceLineNo">31179</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.31179"></a>
+<span class="sourceLineNo">31180</span>                                                }<a name="line.31180"></a>
+<span class="sourceLineNo">31181</span>                                        }<a name="line.31181"></a>
+<span class="sourceLineNo">31182</span>                                }<a name="line.31182"></a>
+<span class="sourceLineNo">31183</span>                        }<a name="line.31183"></a>
+<span class="sourceLineNo">31184</span>                        break;<a name="line.31184"></a>
+<span class="sourceLineNo">31185</span>                case Dataset.ARRAYFLOAT64:<a name="line.31185"></a>
+<span class="sourceLineNo">31186</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.31186"></a>
+<span class="sourceLineNo">31187</span>                        if (is == 1) {<a name="line.31187"></a>
+<span class="sourceLineNo">31188</span>                                if (it.isOutputDouble()) {<a name="line.31188"></a>
+<span class="sourceLineNo">31189</span>                                        while (it.hasNext()) {<a name="line.31189"></a>
+<span class="sourceLineNo">31190</span>                                                final double ix = it.aDouble;<a name="line.31190"></a>
+<span class="sourceLineNo">31191</span>                                                double ox;<a name="line.31191"></a>
+<span class="sourceLineNo">31192</span>                                                ox = (Math.ceil(ix));<a name="line.31192"></a>
+<span class="sourceLineNo">31193</span>                                                oaf64data[it.oIndex] = ox;<a name="line.31193"></a>
+<span class="sourceLineNo">31194</span>                                        }<a name="line.31194"></a>
+<span class="sourceLineNo">31195</span>                                } else {<a name="line.31195"></a>
+<span class="sourceLineNo">31196</span>                                        while (it.hasNext()) {<a name="line.31196"></a>
+<span class="sourceLineNo">31197</span>                                                final long ix = it.aLong;<a name="line.31197"></a>
+<span class="sourceLineNo">31198</span>                                                double ox;<a name="line.31198"></a>
+<span class="sourceLineNo">31199</span>                                                ox = (Math.ceil(ix));<a name="line.31199"></a>
+<span class="sourceLineNo">31200</span>                                                oaf64data[it.oIndex] = ox;<a name="line.31200"></a>
+<span class="sourceLineNo">31201</span>                                        }<a name="line.31201"></a>
+<span class="sourceLineNo">31202</span>                                }<a name="line.31202"></a>
+<span class="sourceLineNo">31203</span>                        } else if (as == 1) {<a name="line.31203"></a>
+<span class="sourceLineNo">31204</span>                                if (it.isOutputDouble()) {<a name="line.31204"></a>
+<span class="sourceLineNo">31205</span>                                        while (it.hasNext()) {<a name="line.31205"></a>
+<span class="sourceLineNo">31206</span>                                                final double ix = it.aDouble;<a name="line.31206"></a>
+<span class="sourceLineNo">31207</span>                                                double ox;<a name="line.31207"></a>
+<span class="sourceLineNo">31208</span>                                                ox = (Math.ceil(ix));<a name="line.31208"></a>
+<span class="sourceLineNo">31209</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31209"></a>
+<span class="sourceLineNo">31210</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.31210"></a>
+<span class="sourceLineNo">31211</span>                                                }<a name="line.31211"></a>
+<span class="sourceLineNo">31212</span>                                        }<a name="line.31212"></a>
+<span class="sourceLineNo">31213</span>                                } else {<a name="line.31213"></a>
+<span class="sourceLineNo">31214</span>                                        while (it.hasNext()) {<a name="line.31214"></a>
+<span class="sourceLineNo">31215</span>                                                final long ix = it.aLong;<a name="line.31215"></a>
+<span class="sourceLineNo">31216</span>                                                double ox;<a name="line.31216"></a>
+<span class="sourceLineNo">31217</span>                                                ox = (Math.ceil(ix));<a name="line.31217"></a>
+<span class="sourceLineNo">31218</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31218"></a>
+<span class="sourceLineNo">31219</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.31219"></a>
+<span class="sourceLineNo">31220</span>                                                }<a name="line.31220"></a>
+<span class="sourceLineNo">31221</span>                                        }<a name="line.31221"></a>
+<span class="sourceLineNo">31222</span>                                }<a name="line.31222"></a>
+<span class="sourceLineNo">31223</span>                        } else {<a name="line.31223"></a>
+<span class="sourceLineNo">31224</span>                                if (it.isOutputDouble()) {<a name="line.31224"></a>
+<span class="sourceLineNo">31225</span>                                        while (it.hasNext()) {<a name="line.31225"></a>
+<span class="sourceLineNo">31226</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31226"></a>
+<span class="sourceLineNo">31227</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.31227"></a>
+<span class="sourceLineNo">31228</span>                                                        double ox;<a name="line.31228"></a>
+<span class="sourceLineNo">31229</span>                                                        ox = (Math.ceil(ix));<a name="line.31229"></a>
+<span class="sourceLineNo">31230</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.31230"></a>
+<span class="sourceLineNo">31231</span>                                                }<a name="line.31231"></a>
+<span class="sourceLineNo">31232</span>                                        }<a name="line.31232"></a>
+<span class="sourceLineNo">31233</span>                                } else {<a name="line.31233"></a>
+<span class="sourceLineNo">31234</span>                                        while (it.hasNext()) {<a name="line.31234"></a>
+<span class="sourceLineNo">31235</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31235"></a>
+<span class="sourceLineNo">31236</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.31236"></a>
+<span class="sourceLineNo">31237</span>                                                        double ox;<a name="line.31237"></a>
+<span class="sourceLineNo">31238</span>                                                        ox = (Math.ceil(ix));<a name="line.31238"></a>
+<span class="sourceLineNo">31239</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.31239"></a>
+<span class="sourceLineNo">31240</span>                                                }<a name="line.31240"></a>
+<span class="sourceLineNo">31241</span>                                        }<a name="line.31241"></a>
+<span class="sourceLineNo">31242</span>                                }<a name="line.31242"></a>
+<span class="sourceLineNo">31243</span>                        }<a name="line.31243"></a>
+<span class="sourceLineNo">31244</span>                        break;<a name="line.31244"></a>
+<span class="sourceLineNo">31245</span>                case Dataset.COMPLEX64:<a name="line.31245"></a>
+<span class="sourceLineNo">31246</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.31246"></a>
+<span class="sourceLineNo">31247</span>                        if (!da.isComplex()) {<a name="line.31247"></a>
+<span class="sourceLineNo">31248</span>                                if (it.isOutputDouble()) {<a name="line.31248"></a>
+<span class="sourceLineNo">31249</span>                                        final double iy = 0;<a name="line.31249"></a>
+<span class="sourceLineNo">31250</span>                                        while (it.hasNext()) {<a name="line.31250"></a>
+<span class="sourceLineNo">31251</span>                                                final double ix = it.aDouble;<a name="line.31251"></a>
+<span class="sourceLineNo">31252</span>                                                float ox;<a name="line.31252"></a>
+<span class="sourceLineNo">31253</span>                                                float oy;<a name="line.31253"></a>
+<span class="sourceLineNo">31254</span>                                                ox = (float) (Math.ceil(ix));<a name="line.31254"></a>
+<span class="sourceLineNo">31255</span>                                                oy = (float) (Math.ceil(iy));<a name="line.31255"></a>
+<span class="sourceLineNo">31256</span>                                                oc64data[it.oIndex] = ox;<a name="line.31256"></a>
+<span class="sourceLineNo">31257</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.31257"></a>
+<span class="sourceLineNo">31258</span>                                        }<a name="line.31258"></a>
+<span class="sourceLineNo">31259</span>                                } else {<a name="line.31259"></a>
+<span class="sourceLineNo">31260</span>                                        final long iy = 0;<a name="line.31260"></a>
+<span class="sourceLineNo">31261</span>                                        while (it.hasNext()) {<a name="line.31261"></a>
+<span class="sourceLineNo">31262</span>                                                final long ix = it.aLong;<a name="line.31262"></a>
+<span class="sourceLineNo">31263</span>                                                float ox;<a name="line.31263"></a>
+<span class="sourceLineNo">31264</span>                                                float oy;<a name="line.31264"></a>
+<span class="sourceLineNo">31265</span>                                                ox = (float) toLong(Math.ceil(ix));<a name="line.31265"></a>
+<span class="sourceLineNo">31266</span>                                                oy = (float) toLong(Math.ceil(iy));<a name="line.31266"></a>
+<span class="sourceLineNo">31267</span>                                                oc64data[it.oIndex] = ox;<a name="line.31267"></a>
+<span class="sourceLineNo">31268</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.31268"></a>
+<span class="sourceLineNo">31269</span>                                        }<a name="line.31269"></a>
+<span class="sourceLineNo">31270</span>                                }<a name="line.31270"></a>
+<span class="sourceLineNo">31271</span>                        } else {<a name="line.31271"></a>
+<span class="sourceLineNo">31272</span>                                while (it.hasNext()) {<a name="line.31272"></a>
+<span class="sourceLineNo">31273</span>                                        final double ix = it.aDouble;<a name="line.31273"></a>
+<span class="sourceLineNo">31274</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.31274"></a>
+<span class="sourceLineNo">31275</span>                                        float ox;<a name="line.31275"></a>
+<span class="sourceLineNo">31276</span>                                        float oy;<a name="line.31276"></a>
+<span class="sourceLineNo">31277</span>                                        ox = (float) (Math.ceil(ix));<a name="line.31277"></a>
+<span class="sourceLineNo">31278</span>                                        oy = (float) (Math.ceil(iy));<a name="line.31278"></a>
+<span class="sourceLineNo">31279</span>                                        oc64data[it.oIndex] = ox;<a name="line.31279"></a>
+<span class="sourceLineNo">31280</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.31280"></a>
+<span class="sourceLineNo">31281</span>                                }<a name="line.31281"></a>
+<span class="sourceLineNo">31282</span>                        }<a name="line.31282"></a>
+<span class="sourceLineNo">31283</span>                        break;<a name="line.31283"></a>
+<span class="sourceLineNo">31284</span>                case Dataset.COMPLEX128:<a name="line.31284"></a>
+<span class="sourceLineNo">31285</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.31285"></a>
+<span class="sourceLineNo">31286</span>                        if (!da.isComplex()) {<a name="line.31286"></a>
+<span class="sourceLineNo">31287</span>                                if (it.isOutputDouble()) {<a name="line.31287"></a>
+<span class="sourceLineNo">31288</span>                                        final double iy = 0;<a name="line.31288"></a>
+<span class="sourceLineNo">31289</span>                                        while (it.hasNext()) {<a name="line.31289"></a>
+<span class="sourceLineNo">31290</span>                                                final double ix = it.aDouble;<a name="line.31290"></a>
+<span class="sourceLineNo">31291</span>                                                double ox;<a name="line.31291"></a>
+<span class="sourceLineNo">31292</span>                                                double oy;<a name="line.31292"></a>
+<span class="sourceLineNo">31293</span>                                                ox = (Math.ceil(ix));<a name="line.31293"></a>
+<span class="sourceLineNo">31294</span>                                                oy = (Math.ceil(iy));<a name="line.31294"></a>
+<span class="sourceLineNo">31295</span>                                                oc128data[it.oIndex] = ox;<a name="line.31295"></a>
+<span class="sourceLineNo">31296</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.31296"></a>
+<span class="sourceLineNo">31297</span>                                        }<a name="line.31297"></a>
+<span class="sourceLineNo">31298</span>                                } else {<a name="line.31298"></a>
+<span class="sourceLineNo">31299</span>                                        final long iy = 0;<a name="line.31299"></a>
+<span class="sourceLineNo">31300</span>                                        while (it.hasNext()) {<a name="line.31300"></a>
+<span class="sourceLineNo">31301</span>                                                final long ix = it.aLong;<a name="line.31301"></a>
+<span class="sourceLineNo">31302</span>                                                double ox;<a name="line.31302"></a>
+<span class="sourceLineNo">31303</span>                                                double oy;<a name="line.31303"></a>
+<span class="sourceLineNo">31304</span>                                                ox = (double) (Math.ceil(ix));<a name="line.31304"></a>
+<span class="sourceLineNo">31305</span>                                                oy = (double) (Math.ceil(iy));<a name="line.31305"></a>
+<span class="sourceLineNo">31306</span>                                                oc128data[it.oIndex] = ox;<a name="line.31306"></a>
+<span class="sourceLineNo">31307</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.31307"></a>
+<span class="sourceLineNo">31308</span>                                        }<a name="line.31308"></a>
+<span class="sourceLineNo">31309</span>                                }<a name="line.31309"></a>
+<span class="sourceLineNo">31310</span>                        } else {<a name="line.31310"></a>
+<span class="sourceLineNo">31311</span>                                while (it.hasNext()) {<a name="line.31311"></a>
+<span class="sourceLineNo">31312</span>                                        final double ix = it.aDouble;<a name="line.31312"></a>
+<span class="sourceLineNo">31313</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.31313"></a>
+<span class="sourceLineNo">31314</span>                                        double ox;<a name="line.31314"></a>
+<span class="sourceLineNo">31315</span>                                        double oy;<a name="line.31315"></a>
+<span class="sourceLineNo">31316</span>                                        ox = (Math.ceil(ix));<a name="line.31316"></a>
+<span class="sourceLineNo">31317</span>                                        oy = (Math.ceil(iy));<a name="line.31317"></a>
+<span class="sourceLineNo">31318</span>                                        oc128data[it.oIndex] = ox;<a name="line.31318"></a>
+<span class="sourceLineNo">31319</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.31319"></a>
+<span class="sourceLineNo">31320</span>                                }<a name="line.31320"></a>
+<span class="sourceLineNo">31321</span>                        }<a name="line.31321"></a>
+<span class="sourceLineNo">31322</span>                        break;<a name="line.31322"></a>
+<span class="sourceLineNo">31323</span>                default:<a name="line.31323"></a>
+<span class="sourceLineNo">31324</span>                        throw new IllegalArgumentException("ceil supports integer, compound integer, real, compound real, complex datasets only");<a name="line.31324"></a>
+<span class="sourceLineNo">31325</span>                }<a name="line.31325"></a>
+<span class="sourceLineNo">31326</span><a name="line.31326"></a>
+<span class="sourceLineNo">31327</span>                addFunctionName(result, "ceil");<a name="line.31327"></a>
+<span class="sourceLineNo">31328</span>                return result;<a name="line.31328"></a>
+<span class="sourceLineNo">31329</span>        }<a name="line.31329"></a>
+<span class="sourceLineNo">31330</span><a name="line.31330"></a>
+<span class="sourceLineNo">31331</span>        /**<a name="line.31331"></a>
+<span class="sourceLineNo">31332</span>         * rint - round each element of the dataset<a name="line.31332"></a>
+<span class="sourceLineNo">31333</span>         * @param a<a name="line.31333"></a>
+<span class="sourceLineNo">31334</span>         * @return dataset<a name="line.31334"></a>
+<span class="sourceLineNo">31335</span>         */<a name="line.31335"></a>
+<span class="sourceLineNo">31336</span>        public static Dataset rint(final Object a) {<a name="line.31336"></a>
+<span class="sourceLineNo">31337</span>                return rint(a, null);<a name="line.31337"></a>
+<span class="sourceLineNo">31338</span>        }<a name="line.31338"></a>
+<span class="sourceLineNo">31339</span><a name="line.31339"></a>
+<span class="sourceLineNo">31340</span>        /**<a name="line.31340"></a>
+<span class="sourceLineNo">31341</span>         * rint - round each element of the dataset<a name="line.31341"></a>
+<span class="sourceLineNo">31342</span>         * @param a<a name="line.31342"></a>
+<span class="sourceLineNo">31343</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.31343"></a>
+<span class="sourceLineNo">31344</span>         * @return dataset<a name="line.31344"></a>
+<span class="sourceLineNo">31345</span>         */<a name="line.31345"></a>
+<span class="sourceLineNo">31346</span>        public static Dataset rint(final Object a, final Dataset o) {<a name="line.31346"></a>
+<span class="sourceLineNo">31347</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.31347"></a>
+<span class="sourceLineNo">31348</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.31348"></a>
+<span class="sourceLineNo">31349</span>                final Dataset result = it.getOutput();<a name="line.31349"></a>
+<span class="sourceLineNo">31350</span>                if (!result.isComplex()) {<a name="line.31350"></a>
+<span class="sourceLineNo">31351</span>                        if (da.isComplex()) {<a name="line.31351"></a>
+<span class="sourceLineNo">31352</span>                                da = da.getRealView();<a name="line.31352"></a>
+<span class="sourceLineNo">31353</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.31353"></a>
+<span class="sourceLineNo">31354</span>                        }<a name="line.31354"></a>
+<span class="sourceLineNo">31355</span>                }<a name="line.31355"></a>
+<span class="sourceLineNo">31356</span>                final int is = result.getElementsPerItem();<a name="line.31356"></a>
+<span class="sourceLineNo">31357</span>                final int as = da.getElementsPerItem();<a name="line.31357"></a>
+<span class="sourceLineNo">31358</span>                final int dt = result.getDType();<a name="line.31358"></a>
+<span class="sourceLineNo">31359</span><a name="line.31359"></a>
+<span class="sourceLineNo">31360</span>                switch(dt) {<a name="line.31360"></a>
+<span class="sourceLineNo">31361</span>                case Dataset.INT8:<a name="line.31361"></a>
+<span class="sourceLineNo">31362</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.31362"></a>
+<span class="sourceLineNo">31363</span>                        if (it.isOutputDouble()) {<a name="line.31363"></a>
+<span class="sourceLineNo">31364</span>                                while (it.hasNext()) {<a name="line.31364"></a>
+<span class="sourceLineNo">31365</span>                                        final double ix = it.aDouble;<a name="line.31365"></a>
+<span class="sourceLineNo">31366</span>                                        byte ox;<a name="line.31366"></a>
+<span class="sourceLineNo">31367</span>                                        ox = (byte) toLong(ix);<a name="line.31367"></a>
+<span class="sourceLineNo">31368</span>                                        oi8data[it.oIndex] = ox;<a name="line.31368"></a>
+<span class="sourceLineNo">31369</span>                                }<a name="line.31369"></a>
+<span class="sourceLineNo">31370</span>                        } else {<a name="line.31370"></a>
+<span class="sourceLineNo">31371</span>                                while (it.hasNext()) {<a name="line.31371"></a>
+<span class="sourceLineNo">31372</span>                                        final long ix = it.aLong;<a name="line.31372"></a>
+<span class="sourceLineNo">31373</span>                                        byte ox;<a name="line.31373"></a>
+<span class="sourceLineNo">31374</span>                                        ox = (byte) toLong(ix);<a name="line.31374"></a>
+<span class="sourceLineNo">31375</span>                                        oi8data[it.oIndex] = ox;<a name="line.31375"></a>
+<span class="sourceLineNo">31376</span>                                }<a name="line.31376"></a>
+<span class="sourceLineNo">31377</span>                        }<a name="line.31377"></a>
+<span class="sourceLineNo">31378</span>                        break;<a name="line.31378"></a>
+<span class="sourceLineNo">31379</span>                case Dataset.INT16:<a name="line.31379"></a>
+<span class="sourceLineNo">31380</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.31380"></a>
+<span class="sourceLineNo">31381</span>                        if (it.isOutputDouble()) {<a name="line.31381"></a>
+<span class="sourceLineNo">31382</span>                                while (it.hasNext()) {<a name="line.31382"></a>
+<span class="sourceLineNo">31383</span>                                        final double ix = it.aDouble;<a name="line.31383"></a>
+<span class="sourceLineNo">31384</span>                                        short ox;<a name="line.31384"></a>
+<span class="sourceLineNo">31385</span>                                        ox = (short) toLong(ix);<a name="line.31385"></a>
+<span class="sourceLineNo">31386</span>                                        oi16data[it.oIndex] = ox;<a name="line.31386"></a>
+<span class="sourceLineNo">31387</span>                                }<a name="line.31387"></a>
+<span class="sourceLineNo">31388</span>                        } else {<a name="line.31388"></a>
+<span class="sourceLineNo">31389</span>                                while (it.hasNext()) {<a name="line.31389"></a>
+<span class="sourceLineNo">31390</span>                                        final long ix = it.aLong;<a name="line.31390"></a>
+<span class="sourceLineNo">31391</span>                                        short ox;<a name="line.31391"></a>
+<span class="sourceLineNo">31392</span>                                        ox = (short) toLong(ix);<a name="line.31392"></a>
+<span class="sourceLineNo">31393</span>                                        oi16data[it.oIndex] = ox;<a name="line.31393"></a>
+<span class="sourceLineNo">31394</span>                                }<a name="line.31394"></a>
+<span class="sourceLineNo">31395</span>                        }<a name="line.31395"></a>
+<span class="sourceLineNo">31396</span>                        break;<a name="line.31396"></a>
+<span class="sourceLineNo">31397</span>                case Dataset.INT64:<a name="line.31397"></a>
+<span class="sourceLineNo">31398</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.31398"></a>
+<span class="sourceLineNo">31399</span>                        if (it.isOutputDouble()) {<a name="line.31399"></a>
+<span class="sourceLineNo">31400</span>                                while (it.hasNext()) {<a name="line.31400"></a>
+<span class="sourceLineNo">31401</span>                                        final double ix = it.aDouble;<a name="line.31401"></a>
+<span class="sourceLineNo">31402</span>                                        long ox;<a name="line.31402"></a>
+<span class="sourceLineNo">31403</span>                                        ox = toLong(ix);<a name="line.31403"></a>
+<span class="sourceLineNo">31404</span>                                        oi64data[it.oIndex] = ox;<a name="line.31404"></a>
+<span class="sourceLineNo">31405</span>                                }<a name="line.31405"></a>
+<span class="sourceLineNo">31406</span>                        } else {<a name="line.31406"></a>
+<span class="sourceLineNo">31407</span>                                while (it.hasNext()) {<a name="line.31407"></a>
+<span class="sourceLineNo">31408</span>                                        final long ix = it.aLong;<a name="line.31408"></a>
+<span class="sourceLineNo">31409</span>                                        long ox;<a name="line.31409"></a>
+<span class="sourceLineNo">31410</span>                                        ox = toLong(ix);<a name="line.31410"></a>
+<span class="sourceLineNo">31411</span>                                        oi64data[it.oIndex] = ox;<a name="line.31411"></a>
+<span class="sourceLineNo">31412</span>                                }<a name="line.31412"></a>
+<span class="sourceLineNo">31413</span>                        }<a name="line.31413"></a>
+<span class="sourceLineNo">31414</span>                        break;<a name="line.31414"></a>
+<span class="sourceLineNo">31415</span>                case Dataset.INT32:<a name="line.31415"></a>
+<span class="sourceLineNo">31416</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.31416"></a>
+<span class="sourceLineNo">31417</span>                        if (it.isOutputDouble()) {<a name="line.31417"></a>
+<span class="sourceLineNo">31418</span>                                while (it.hasNext()) {<a name="line.31418"></a>
+<span class="sourceLineNo">31419</span>                                        final double ix = it.aDouble;<a name="line.31419"></a>
+<span class="sourceLineNo">31420</span>                                        int ox;<a name="line.31420"></a>
+<span class="sourceLineNo">31421</span>                                        ox = (int) toLong(ix);<a name="line.31421"></a>
+<span class="sourceLineNo">31422</span>                                        oi32data[it.oIndex] = ox;<a name="line.31422"></a>
+<span class="sourceLineNo">31423</span>                                }<a name="line.31423"></a>
+<span class="sourceLineNo">31424</span>                        } else {<a name="line.31424"></a>
+<span class="sourceLineNo">31425</span>                                while (it.hasNext()) {<a name="line.31425"></a>
+<span class="sourceLineNo">31426</span>                                        final long ix = it.aLong;<a name="line.31426"></a>
+<span class="sourceLineNo">31427</span>                                        int ox;<a name="line.31427"></a>
+<span class="sourceLineNo">31428</span>                                        ox = (int) toLong(ix);<a name="line.31428"></a>
+<span class="sourceLineNo">31429</span>                                        oi32data[it.oIndex] = ox;<a name="line.31429"></a>
+<span class="sourceLineNo">31430</span>                                }<a name="line.31430"></a>
+<span class="sourceLineNo">31431</span>                        }<a name="line.31431"></a>
+<span class="sourceLineNo">31432</span>                        break;<a name="line.31432"></a>
+<span class="sourceLineNo">31433</span>                case Dataset.ARRAYINT8:<a name="line.31433"></a>
+<span class="sourceLineNo">31434</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.31434"></a>
+<span class="sourceLineNo">31435</span>                        if (is == 1) {<a name="line.31435"></a>
+<span class="sourceLineNo">31436</span>                                if (it.isOutputDouble()) {<a name="line.31436"></a>
+<span class="sourceLineNo">31437</span>                                        while (it.hasNext()) {<a name="line.31437"></a>
+<span class="sourceLineNo">31438</span>                                                final double ix = it.aDouble;<a name="line.31438"></a>
+<span class="sourceLineNo">31439</span>                                                byte ox;<a name="line.31439"></a>
+<span class="sourceLineNo">31440</span>                                                ox = (byte) toLong(ix);<a name="line.31440"></a>
+<span class="sourceLineNo">31441</span>                                                oai8data[it.oIndex] = ox;<a name="line.31441"></a>
+<span class="sourceLineNo">31442</span>                                        }<a name="line.31442"></a>
+<span class="sourceLineNo">31443</span>                                } else {<a name="line.31443"></a>
+<span class="sourceLineNo">31444</span>                                        while (it.hasNext()) {<a name="line.31444"></a>
+<span class="sourceLineNo">31445</span>                                                final long ix = it.aLong;<a name="line.31445"></a>
+<span class="sourceLineNo">31446</span>                                                byte ox;<a name="line.31446"></a>
+<span class="sourceLineNo">31447</span>                                                ox = (byte) toLong(ix);<a name="line.31447"></a>
+<span class="sourceLineNo">31448</span>                                                oai8data[it.oIndex] = ox;<a name="line.31448"></a>
+<span class="sourceLineNo">31449</span>                                        }<a name="line.31449"></a>
+<span class="sourceLineNo">31450</span>                                }<a name="line.31450"></a>
+<span class="sourceLineNo">31451</span>                        } else if (as == 1) {<a name="line.31451"></a>
+<span class="sourceLineNo">31452</span>                                if (it.isOutputDouble()) {<a name="line.31452"></a>
+<span class="sourceLineNo">31453</span>                                        while (it.hasNext()) {<a name="line.31453"></a>
+<span class="sourceLineNo">31454</span>                                                final double ix = it.aDouble;<a name="line.31454"></a>
+<span class="sourceLineNo">31455</span>                                                byte ox;<a name="line.31455"></a>
+<span class="sourceLineNo">31456</span>                                                ox = (byte) toLong(ix);<a name="line.31456"></a>
+<span class="sourceLineNo">31457</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31457"></a>
+<span class="sourceLineNo">31458</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.31458"></a>
+<span class="sourceLineNo">31459</span>                                                }<a name="line.31459"></a>
+<span class="sourceLineNo">31460</span>                                        }<a name="line.31460"></a>
+<span class="sourceLineNo">31461</span>                                } else {<a name="line.31461"></a>
+<span class="sourceLineNo">31462</span>                                        while (it.hasNext()) {<a name="line.31462"></a>
+<span class="sourceLineNo">31463</span>                                                final long ix = it.aLong;<a name="line.31463"></a>
+<span class="sourceLineNo">31464</span>                                                byte ox;<a name="line.31464"></a>
+<span class="sourceLineNo">31465</span>                                                ox = (byte) toLong(ix);<a name="line.31465"></a>
+<span class="sourceLineNo">31466</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31466"></a>
+<span class="sourceLineNo">31467</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.31467"></a>
+<span class="sourceLineNo">31468</span>                                                }<a name="line.31468"></a>
+<span class="sourceLineNo">31469</span>                                        }<a name="line.31469"></a>
+<span class="sourceLineNo">31470</span>                                }<a name="line.31470"></a>
+<span class="sourceLineNo">31471</span>                        } else {<a name="line.31471"></a>
+<span class="sourceLineNo">31472</span>                                if (it.isOutputDouble()) {<a name="line.31472"></a>
+<span class="sourceLineNo">31473</span>                                        while (it.hasNext()) {<a name="line.31473"></a>
+<span class="sourceLineNo">31474</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31474"></a>
+<span class="sourceLineNo">31475</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.31475"></a>
+<span class="sourceLineNo">31476</span>                                                        byte ox;<a name="line.31476"></a>
+<span class="sourceLineNo">31477</span>                                                        ox = (byte) toLong(ix);<a name="line.31477"></a>
+<span class="sourceLineNo">31478</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.31478"></a>
+<span class="sourceLineNo">31479</span>                                                }<a name="line.31479"></a>
+<span class="sourceLineNo">31480</span>                                        }<a name="line.31480"></a>
+<span class="sourceLineNo">31481</span>                                } else {<a name="line.31481"></a>
+<span class="sourceLineNo">31482</span>                                        while (it.hasNext()) {<a name="line.31482"></a>
+<span class="sourceLineNo">31483</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31483"></a>
+<span class="sourceLineNo">31484</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.31484"></a>
+<span class="sourceLineNo">31485</span>                                                        byte ox;<a name="line.31485"></a>
+<span class="sourceLineNo">31486</span>                                                        ox = (byte) toLong(ix);<a name="line.31486"></a>
+<span class="sourceLineNo">31487</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.31487"></a>
+<span class="sourceLineNo">31488</span>                                                }<a name="line.31488"></a>
+<span class="sourceLineNo">31489</span>                                        }<a name="line.31489"></a>
+<span class="sourceLineNo">31490</span>                                }<a name="line.31490"></a>
+<span class="sourceLineNo">31491</span>                        }<a name="line.31491"></a>
+<span class="sourceLineNo">31492</span>                        break;<a name="line.31492"></a>
+<span class="sourceLineNo">31493</span>                case Dataset.ARRAYINT16:<a name="line.31493"></a>
+<span class="sourceLineNo">31494</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.31494"></a>
+<span class="sourceLineNo">31495</span>                        if (is == 1) {<a name="line.31495"></a>
+<span class="sourceLineNo">31496</span>                                if (it.isOutputDouble()) {<a name="line.31496"></a>
+<span class="sourceLineNo">31497</span>                                        while (it.hasNext()) {<a name="line.31497"></a>
+<span class="sourceLineNo">31498</span>                                                final double ix = it.aDouble;<a name="line.31498"></a>
+<span class="sourceLineNo">31499</span>                                                short ox;<a name="line.31499"></a>
+<span class="sourceLineNo">31500</span>                                                ox = (short) toLong(ix);<a name="line.31500"></a>
+<span class="sourceLineNo">31501</span>                                                oai16data[it.oIndex] = ox;<a name="line.31501"></a>
+<span class="sourceLineNo">31502</span>                                        }<a name="line.31502"></a>
+<span class="sourceLineNo">31503</span>                                } else {<a name="line.31503"></a>
+<span class="sourceLineNo">31504</span>                                        while (it.hasNext()) {<a name="line.31504"></a>
+<span class="sourceLineNo">31505</span>                                                final long ix = it.aLong;<a name="line.31505"></a>
+<span class="sourceLineNo">31506</span>                                                short ox;<a name="line.31506"></a>
+<span class="sourceLineNo">31507</span>                                                ox = (short) toLong(ix);<a name="line.31507"></a>
+<span class="sourceLineNo">31508</span>                                                oai16data[it.oIndex] = ox;<a name="line.31508"></a>
+<span class="sourceLineNo">31509</span>                                        }<a name="line.31509"></a>
+<span class="sourceLineNo">31510</span>                                }<a name="line.31510"></a>
+<span class="sourceLineNo">31511</span>                        } else if (as == 1) {<a name="line.31511"></a>
+<span class="sourceLineNo">31512</span>                                if (it.isOutputDouble()) {<a name="line.31512"></a>
+<span class="sourceLineNo">31513</span>                                        while (it.hasNext()) {<a name="line.31513"></a>
+<span class="sourceLineNo">31514</span>                                                final double ix = it.aDouble;<a name="line.31514"></a>
+<span class="sourceLineNo">31515</span>                                                short ox;<a name="line.31515"></a>
+<span class="sourceLineNo">31516</span>                                                ox = (short) toLong(ix);<a name="line.31516"></a>
+<span class="sourceLineNo">31517</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31517"></a>
+<span class="sourceLineNo">31518</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.31518"></a>
+<span class="sourceLineNo">31519</span>                                                }<a name="line.31519"></a>
+<span class="sourceLineNo">31520</span>                                        }<a name="line.31520"></a>
+<span class="sourceLineNo">31521</span>                                } else {<a name="line.31521"></a>
+<span class="sourceLineNo">31522</span>                                        while (it.hasNext()) {<a name="line.31522"></a>
+<span class="sourceLineNo">31523</span>                                                final long ix = it.aLong;<a name="line.31523"></a>
+<span class="sourceLineNo">31524</span>                                                short ox;<a name="line.31524"></a>
+<span class="sourceLineNo">31525</span>                                                ox = (short) toLong(ix);<a name="line.31525"></a>
+<span class="sourceLineNo">31526</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31526"></a>
+<span class="sourceLineNo">31527</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.31527"></a>
+<span class="sourceLineNo">31528</span>                                                }<a name="line.31528"></a>
+<span class="sourceLineNo">31529</span>                                        }<a name="line.31529"></a>
+<span class="sourceLineNo">31530</span>                                }<a name="line.31530"></a>
+<span class="sourceLineNo">31531</span>                        } else {<a name="line.31531"></a>
+<span class="sourceLineNo">31532</span>                                if (it.isOutputDouble()) {<a name="line.31532"></a>
+<span class="sourceLineNo">31533</span>                                        while (it.hasNext()) {<a name="line.31533"></a>
+<span class="sourceLineNo">31534</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31534"></a>
+<span class="sourceLineNo">31535</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.31535"></a>
+<span class="sourceLineNo">31536</span>                                                        short ox;<a name="line.31536"></a>
+<span class="sourceLineNo">31537</span>                                                        ox = (short) toLong(ix);<a name="line.31537"></a>
+<span class="sourceLineNo">31538</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.31538"></a>
+<span class="sourceLineNo">31539</span>                                                }<a name="line.31539"></a>
+<span class="sourceLineNo">31540</span>                                        }<a name="line.31540"></a>
+<span class="sourceLineNo">31541</span>                                } else {<a name="line.31541"></a>
+<span class="sourceLineNo">31542</span>                                        while (it.hasNext()) {<a name="line.31542"></a>
+<span class="sourceLineNo">31543</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31543"></a>
+<span class="sourceLineNo">31544</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.31544"></a>
+<span class="sourceLineNo">31545</span>                                                        short ox;<a name="line.31545"></a>
+<span class="sourceLineNo">31546</span>                                                        ox = (short) toLong(ix);<a name="line.31546"></a>
+<span class="sourceLineNo">31547</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.31547"></a>
+<span class="sourceLineNo">31548</span>                                                }<a name="line.31548"></a>
+<span class="sourceLineNo">31549</span>                                        }<a name="line.31549"></a>
+<span class="sourceLineNo">31550</span>                                }<a name="line.31550"></a>
+<span class="sourceLineNo">31551</span>                        }<a name="line.31551"></a>
+<span class="sourceLineNo">31552</span>                        break;<a name="line.31552"></a>
+<span class="sourceLineNo">31553</span>                case Dataset.ARRAYINT64:<a name="line.31553"></a>
+<span class="sourceLineNo">31554</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.31554"></a>
+<span class="sourceLineNo">31555</span>                        if (is == 1) {<a name="line.31555"></a>
+<span class="sourceLineNo">31556</span>                                if (it.isOutputDouble()) {<a name="line.31556"></a>
+<span class="sourceLineNo">31557</span>                                        while (it.hasNext()) {<a name="line.31557"></a>
+<span class="sourceLineNo">31558</span>                                                final double ix = it.aDouble;<a name="line.31558"></a>
+<span class="sourceLineNo">31559</span>                                                long ox;<a name="line.31559"></a>
+<span class="sourceLineNo">31560</span>                                                ox = toLong(ix);<a name="line.31560"></a>
+<span class="sourceLineNo">31561</span>                                                oai64data[it.oIndex] = ox;<a name="line.31561"></a>
+<span class="sourceLineNo">31562</span>                                        }<a name="line.31562"></a>
+<span class="sourceLineNo">31563</span>                                } else {<a name="line.31563"></a>
+<span class="sourceLineNo">31564</span>                                        while (it.hasNext()) {<a name="line.31564"></a>
+<span class="sourceLineNo">31565</span>                                                final long ix = it.aLong;<a name="line.31565"></a>
+<span class="sourceLineNo">31566</span>                                                long ox;<a name="line.31566"></a>
+<span class="sourceLineNo">31567</span>                                                ox = toLong(ix);<a name="line.31567"></a>
+<span class="sourceLineNo">31568</span>                                                oai64data[it.oIndex] = ox;<a name="line.31568"></a>
+<span class="sourceLineNo">31569</span>                                        }<a name="line.31569"></a>
+<span class="sourceLineNo">31570</span>                                }<a name="line.31570"></a>
+<span class="sourceLineNo">31571</span>                        } else if (as == 1) {<a name="line.31571"></a>
+<span class="sourceLineNo">31572</span>                                if (it.isOutputDouble()) {<a name="line.31572"></a>
+<span class="sourceLineNo">31573</span>                                        while (it.hasNext()) {<a name="line.31573"></a>
+<span class="sourceLineNo">31574</span>                                                final double ix = it.aDouble;<a name="line.31574"></a>
+<span class="sourceLineNo">31575</span>                                                long ox;<a name="line.31575"></a>
+<span class="sourceLineNo">31576</span>                                                ox = toLong(ix);<a name="line.31576"></a>
+<span class="sourceLineNo">31577</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31577"></a>
+<span class="sourceLineNo">31578</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.31578"></a>
+<span class="sourceLineNo">31579</span>                                                }<a name="line.31579"></a>
+<span class="sourceLineNo">31580</span>                                        }<a name="line.31580"></a>
+<span class="sourceLineNo">31581</span>                                } else {<a name="line.31581"></a>
+<span class="sourceLineNo">31582</span>                                        while (it.hasNext()) {<a name="line.31582"></a>
+<span class="sourceLineNo">31583</span>                                                final long ix = it.aLong;<a name="line.31583"></a>
+<span class="sourceLineNo">31584</span>                                                long ox;<a name="line.31584"></a>
+<span class="sourceLineNo">31585</span>                                                ox = toLong(ix);<a name="line.31585"></a>
+<span class="sourceLineNo">31586</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31586"></a>
+<span class="sourceLineNo">31587</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.31587"></a>
+<span class="sourceLineNo">31588</span>                                                }<a name="line.31588"></a>
+<span class="sourceLineNo">31589</span>                                        }<a name="line.31589"></a>
+<span class="sourceLineNo">31590</span>                                }<a name="line.31590"></a>
+<span class="sourceLineNo">31591</span>                        } else {<a name="line.31591"></a>
+<span class="sourceLineNo">31592</span>                                if (it.isOutputDouble()) {<a name="line.31592"></a>
+<span class="sourceLineNo">31593</span>                                        while (it.hasNext()) {<a name="line.31593"></a>
+<span class="sourceLineNo">31594</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31594"></a>
+<span class="sourceLineNo">31595</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.31595"></a>
+<span class="sourceLineNo">31596</span>                                                        long ox;<a name="line.31596"></a>
+<span class="sourceLineNo">31597</span>                                                        ox = toLong(ix);<a name="line.31597"></a>
+<span class="sourceLineNo">31598</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.31598"></a>
+<span class="sourceLineNo">31599</span>                                                }<a name="line.31599"></a>
+<span class="sourceLineNo">31600</span>                                        }<a name="line.31600"></a>
+<span class="sourceLineNo">31601</span>                                } else {<a name="line.31601"></a>
+<span class="sourceLineNo">31602</span>                                        while (it.hasNext()) {<a name="line.31602"></a>
+<span class="sourceLineNo">31603</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31603"></a>
+<span class="sourceLineNo">31604</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.31604"></a>
+<span class="sourceLineNo">31605</span>                                                        long ox;<a name="line.31605"></a>
+<span class="sourceLineNo">31606</span>                                                        ox = toLong(ix);<a name="line.31606"></a>
+<span class="sourceLineNo">31607</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.31607"></a>
+<span class="sourceLineNo">31608</span>                                                }<a name="line.31608"></a>
+<span class="sourceLineNo">31609</span>                                        }<a name="line.31609"></a>
+<span class="sourceLineNo">31610</span>                                }<a name="line.31610"></a>
+<span class="sourceLineNo">31611</span>                        }<a name="line.31611"></a>
+<span class="sourceLineNo">31612</span>                        break;<a name="line.31612"></a>
+<span class="sourceLineNo">31613</span>                case Dataset.ARRAYINT32:<a name="line.31613"></a>
+<span class="sourceLineNo">31614</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.31614"></a>
+<span class="sourceLineNo">31615</span>                        if (is == 1) {<a name="line.31615"></a>
+<span class="sourceLineNo">31616</span>                                if (it.isOutputDouble()) {<a name="line.31616"></a>
+<span class="sourceLineNo">31617</span>                                        while (it.hasNext()) {<a name="line.31617"></a>
+<span class="sourceLineNo">31618</span>                                                final double ix = it.aDouble;<a name="line.31618"></a>
+<span class="sourceLineNo">31619</span>                                                int ox;<a name="line.31619"></a>
+<span class="sourceLineNo">31620</span>                                                ox = (int) toLong(ix);<a name="line.31620"></a>
+<span class="sourceLineNo">31621</span>                                                oai32data[it.oIndex] = ox;<a name="line.31621"></a>
+<span class="sourceLineNo">31622</span>                                        }<a name="line.31622"></a>
+<span class="sourceLineNo">31623</span>                                } else {<a name="line.31623"></a>
+<span class="sourceLineNo">31624</span>                                        while (it.hasNext()) {<a name="line.31624"></a>
+<span class="sourceLineNo">31625</span>                                                final long ix = it.aLong;<a name="line.31625"></a>
+<span class="sourceLineNo">31626</span>                                                int ox;<a name="line.31626"></a>
+<span class="sourceLineNo">31627</span>                                                ox = (int) toLong(ix);<a name="line.31627"></a>
+<span class="sourceLineNo">31628</span>                                                oai32data[it.oIndex] = ox;<a name="line.31628"></a>
+<span class="sourceLineNo">31629</span>                                        }<a name="line.31629"></a>
+<span class="sourceLineNo">31630</span>                                }<a name="line.31630"></a>
+<span class="sourceLineNo">31631</span>                        } else if (as == 1) {<a name="line.31631"></a>
+<span class="sourceLineNo">31632</span>                                if (it.isOutputDouble()) {<a name="line.31632"></a>
+<span class="sourceLineNo">31633</span>                                        while (it.hasNext()) {<a name="line.31633"></a>
+<span class="sourceLineNo">31634</span>                                                final double ix = it.aDouble;<a name="line.31634"></a>
+<span class="sourceLineNo">31635</span>                                                int ox;<a name="line.31635"></a>
+<span class="sourceLineNo">31636</span>                                                ox = (int) toLong(ix);<a name="line.31636"></a>
+<span class="sourceLineNo">31637</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31637"></a>
+<span class="sourceLineNo">31638</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.31638"></a>
+<span class="sourceLineNo">31639</span>                                                }<a name="line.31639"></a>
+<span class="sourceLineNo">31640</span>                                        }<a name="line.31640"></a>
+<span class="sourceLineNo">31641</span>                                } else {<a name="line.31641"></a>
+<span class="sourceLineNo">31642</span>                                        while (it.hasNext()) {<a name="line.31642"></a>
+<span class="sourceLineNo">31643</span>                                                final long ix = it.aLong;<a name="line.31643"></a>
+<span class="sourceLineNo">31644</span>                                                int ox;<a name="line.31644"></a>
+<span class="sourceLineNo">31645</span>                                                ox = (int) toLong(ix);<a name="line.31645"></a>
+<span class="sourceLineNo">31646</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31646"></a>
+<span class="sourceLineNo">31647</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.31647"></a>
+<span class="sourceLineNo">31648</span>                                                }<a name="line.31648"></a>
+<span class="sourceLineNo">31649</span>                                        }<a name="line.31649"></a>
+<span class="sourceLineNo">31650</span>                                }<a name="line.31650"></a>
+<span class="sourceLineNo">31651</span>                        } else {<a name="line.31651"></a>
+<span class="sourceLineNo">31652</span>                                if (it.isOutputDouble()) {<a name="line.31652"></a>
+<span class="sourceLineNo">31653</span>                                        while (it.hasNext()) {<a name="line.31653"></a>
+<span class="sourceLineNo">31654</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31654"></a>
+<span class="sourceLineNo">31655</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.31655"></a>
+<span class="sourceLineNo">31656</span>                                                        int ox;<a name="line.31656"></a>
+<span class="sourceLineNo">31657</span>                                                        ox = (int) toLong(ix);<a name="line.31657"></a>
+<span class="sourceLineNo">31658</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.31658"></a>
+<span class="sourceLineNo">31659</span>                                                }<a name="line.31659"></a>
+<span class="sourceLineNo">31660</span>                                        }<a name="line.31660"></a>
+<span class="sourceLineNo">31661</span>                                } else {<a name="line.31661"></a>
+<span class="sourceLineNo">31662</span>                                        while (it.hasNext()) {<a name="line.31662"></a>
+<span class="sourceLineNo">31663</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31663"></a>
+<span class="sourceLineNo">31664</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.31664"></a>
+<span class="sourceLineNo">31665</span>                                                        int ox;<a name="line.31665"></a>
+<span class="sourceLineNo">31666</span>                                                        ox = (int) toLong(ix);<a name="line.31666"></a>
+<span class="sourceLineNo">31667</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.31667"></a>
+<span class="sourceLineNo">31668</span>                                                }<a name="line.31668"></a>
+<span class="sourceLineNo">31669</span>                                        }<a name="line.31669"></a>
+<span class="sourceLineNo">31670</span>                                }<a name="line.31670"></a>
+<span class="sourceLineNo">31671</span>                        }<a name="line.31671"></a>
+<span class="sourceLineNo">31672</span>                        break;<a name="line.31672"></a>
+<span class="sourceLineNo">31673</span>                case Dataset.FLOAT32:<a name="line.31673"></a>
+<span class="sourceLineNo">31674</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.31674"></a>
+<span class="sourceLineNo">31675</span>                        if (it.isOutputDouble()) {<a name="line.31675"></a>
+<span class="sourceLineNo">31676</span>                                while (it.hasNext()) {<a name="line.31676"></a>
+<span class="sourceLineNo">31677</span>                                        final double ix = it.aDouble;<a name="line.31677"></a>
+<span class="sourceLineNo">31678</span>                                        float ox;<a name="line.31678"></a>
+<span class="sourceLineNo">31679</span>                                        ox = (float) (Math.rint(ix));<a name="line.31679"></a>
+<span class="sourceLineNo">31680</span>                                        of32data[it.oIndex] = ox;<a name="line.31680"></a>
+<span class="sourceLineNo">31681</span>                                }<a name="line.31681"></a>
+<span class="sourceLineNo">31682</span>                        } else {<a name="line.31682"></a>
+<span class="sourceLineNo">31683</span>                                while (it.hasNext()) {<a name="line.31683"></a>
+<span class="sourceLineNo">31684</span>                                        final long ix = it.aLong;<a name="line.31684"></a>
+<span class="sourceLineNo">31685</span>                                        float ox;<a name="line.31685"></a>
+<span class="sourceLineNo">31686</span>                                        ox = (float) (Math.rint(ix));<a name="line.31686"></a>
+<span class="sourceLineNo">31687</span>                                        of32data[it.oIndex] = ox;<a name="line.31687"></a>
+<span class="sourceLineNo">31688</span>                                }<a name="line.31688"></a>
+<span class="sourceLineNo">31689</span>                        }<a name="line.31689"></a>
+<span class="sourceLineNo">31690</span>                        break;<a name="line.31690"></a>
+<span class="sourceLineNo">31691</span>                case Dataset.FLOAT64:<a name="line.31691"></a>
+<span class="sourceLineNo">31692</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.31692"></a>
+<span class="sourceLineNo">31693</span>                        if (it.isOutputDouble()) {<a name="line.31693"></a>
+<span class="sourceLineNo">31694</span>                                while (it.hasNext()) {<a name="line.31694"></a>
+<span class="sourceLineNo">31695</span>                                        final double ix = it.aDouble;<a name="line.31695"></a>
+<span class="sourceLineNo">31696</span>                                        double ox;<a name="line.31696"></a>
+<span class="sourceLineNo">31697</span>                                        ox = (Math.rint(ix));<a name="line.31697"></a>
+<span class="sourceLineNo">31698</span>                                        of64data[it.oIndex] = ox;<a name="line.31698"></a>
+<span class="sourceLineNo">31699</span>                                }<a name="line.31699"></a>
+<span class="sourceLineNo">31700</span>                        } else {<a name="line.31700"></a>
+<span class="sourceLineNo">31701</span>                                while (it.hasNext()) {<a name="line.31701"></a>
+<span class="sourceLineNo">31702</span>                                        final long ix = it.aLong;<a name="line.31702"></a>
+<span class="sourceLineNo">31703</span>                                        double ox;<a name="line.31703"></a>
+<span class="sourceLineNo">31704</span>                                        ox = (Math.rint(ix));<a name="line.31704"></a>
+<span class="sourceLineNo">31705</span>                                        of64data[it.oIndex] = ox;<a name="line.31705"></a>
+<span class="sourceLineNo">31706</span>                                }<a name="line.31706"></a>
+<span class="sourceLineNo">31707</span>                        }<a name="line.31707"></a>
+<span class="sourceLineNo">31708</span>                        break;<a name="line.31708"></a>
+<span class="sourceLineNo">31709</span>                case Dataset.ARRAYFLOAT32:<a name="line.31709"></a>
+<span class="sourceLineNo">31710</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.31710"></a>
+<span class="sourceLineNo">31711</span>                        if (is == 1) {<a name="line.31711"></a>
+<span class="sourceLineNo">31712</span>                                if (it.isOutputDouble()) {<a name="line.31712"></a>
+<span class="sourceLineNo">31713</span>                                        while (it.hasNext()) {<a name="line.31713"></a>
+<span class="sourceLineNo">31714</span>                                                final double ix = it.aDouble;<a name="line.31714"></a>
+<span class="sourceLineNo">31715</span>                                                float ox;<a name="line.31715"></a>
+<span class="sourceLineNo">31716</span>                                                ox = (float) (Math.rint(ix));<a name="line.31716"></a>
+<span class="sourceLineNo">31717</span>                                                oaf32data[it.oIndex] = ox;<a name="line.31717"></a>
+<span class="sourceLineNo">31718</span>                                        }<a name="line.31718"></a>
+<span class="sourceLineNo">31719</span>                                } else {<a name="line.31719"></a>
+<span class="sourceLineNo">31720</span>                                        while (it.hasNext()) {<a name="line.31720"></a>
+<span class="sourceLineNo">31721</span>                                                final long ix = it.aLong;<a name="line.31721"></a>
+<span class="sourceLineNo">31722</span>                                                float ox;<a name="line.31722"></a>
+<span class="sourceLineNo">31723</span>                                                ox = (float) (Math.rint(ix));<a name="line.31723"></a>
+<span class="sourceLineNo">31724</span>                                                oaf32data[it.oIndex] = ox;<a name="line.31724"></a>
+<span class="sourceLineNo">31725</span>                                        }<a name="line.31725"></a>
+<span class="sourceLineNo">31726</span>                                }<a name="line.31726"></a>
+<span class="sourceLineNo">31727</span>                        } else if (as == 1) {<a name="line.31727"></a>
+<span class="sourceLineNo">31728</span>                                if (it.isOutputDouble()) {<a name="line.31728"></a>
+<span class="sourceLineNo">31729</span>                                        while (it.hasNext()) {<a name="line.31729"></a>
+<span class="sourceLineNo">31730</span>                                                final double ix = it.aDouble;<a name="line.31730"></a>
+<span class="sourceLineNo">31731</span>                                                float ox;<a name="line.31731"></a>
+<span class="sourceLineNo">31732</span>                                                ox = (float) (Math.rint(ix));<a name="line.31732"></a>
+<span class="sourceLineNo">31733</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31733"></a>
+<span class="sourceLineNo">31734</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.31734"></a>
+<span class="sourceLineNo">31735</span>                                                }<a name="line.31735"></a>
+<span class="sourceLineNo">31736</span>                                        }<a name="line.31736"></a>
+<span class="sourceLineNo">31737</span>                                } else {<a name="line.31737"></a>
+<span class="sourceLineNo">31738</span>                                        while (it.hasNext()) {<a name="line.31738"></a>
+<span class="sourceLineNo">31739</span>                                                final long ix = it.aLong;<a name="line.31739"></a>
+<span class="sourceLineNo">31740</span>                                                float ox;<a name="line.31740"></a>
+<span class="sourceLineNo">31741</span>                                                ox = (float) (Math.rint(ix));<a name="line.31741"></a>
+<span class="sourceLineNo">31742</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31742"></a>
+<span class="sourceLineNo">31743</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.31743"></a>
+<span class="sourceLineNo">31744</span>                                                }<a name="line.31744"></a>
+<span class="sourceLineNo">31745</span>                                        }<a name="line.31745"></a>
+<span class="sourceLineNo">31746</span>                                }<a name="line.31746"></a>
+<span class="sourceLineNo">31747</span>                        } else {<a name="line.31747"></a>
+<span class="sourceLineNo">31748</span>                                if (it.isOutputDouble()) {<a name="line.31748"></a>
+<span class="sourceLineNo">31749</span>                                        while (it.hasNext()) {<a name="line.31749"></a>
+<span class="sourceLineNo">31750</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31750"></a>
+<span class="sourceLineNo">31751</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.31751"></a>
+<span class="sourceLineNo">31752</span>                                                        float ox;<a name="line.31752"></a>
+<span class="sourceLineNo">31753</span>                                                        ox = (float) (Math.rint(ix));<a name="line.31753"></a>
+<span class="sourceLineNo">31754</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.31754"></a>
+<span class="sourceLineNo">31755</span>                                                }<a name="line.31755"></a>
+<span class="sourceLineNo">31756</span>                                        }<a name="line.31756"></a>
+<span class="sourceLineNo">31757</span>                                } else {<a name="line.31757"></a>
+<span class="sourceLineNo">31758</span>                                        while (it.hasNext()) {<a name="line.31758"></a>
+<span class="sourceLineNo">31759</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31759"></a>
+<span class="sourceLineNo">31760</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.31760"></a>
+<span class="sourceLineNo">31761</span>                                                        float ox;<a name="line.31761"></a>
+<span class="sourceLineNo">31762</span>                                                        ox = (float) (Math.rint(ix));<a name="line.31762"></a>
+<span class="sourceLineNo">31763</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.31763"></a>
+<span class="sourceLineNo">31764</span>                                                }<a name="line.31764"></a>
+<span class="sourceLineNo">31765</span>                                        }<a name="line.31765"></a>
+<span class="sourceLineNo">31766</span>                                }<a name="line.31766"></a>
+<span class="sourceLineNo">31767</span>                        }<a name="line.31767"></a>
+<span class="sourceLineNo">31768</span>                        break;<a name="line.31768"></a>
+<span class="sourceLineNo">31769</span>                case Dataset.ARRAYFLOAT64:<a name="line.31769"></a>
+<span class="sourceLineNo">31770</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.31770"></a>
+<span class="sourceLineNo">31771</span>                        if (is == 1) {<a name="line.31771"></a>
+<span class="sourceLineNo">31772</span>                                if (it.isOutputDouble()) {<a name="line.31772"></a>
+<span class="sourceLineNo">31773</span>                                        while (it.hasNext()) {<a name="line.31773"></a>
+<span class="sourceLineNo">31774</span>                                                final double ix = it.aDouble;<a name="line.31774"></a>
+<span class="sourceLineNo">31775</span>                                                double ox;<a name="line.31775"></a>
+<span class="sourceLineNo">31776</span>                                                ox = (Math.rint(ix));<a name="line.31776"></a>
+<span class="sourceLineNo">31777</span>                                                oaf64data[it.oIndex] = ox;<a name="line.31777"></a>
+<span class="sourceLineNo">31778</span>                                        }<a name="line.31778"></a>
+<span class="sourceLineNo">31779</span>                                } else {<a name="line.31779"></a>
+<span class="sourceLineNo">31780</span>                                        while (it.hasNext()) {<a name="line.31780"></a>
+<span class="sourceLineNo">31781</span>                                                final long ix = it.aLong;<a name="line.31781"></a>
+<span class="sourceLineNo">31782</span>                                                double ox;<a name="line.31782"></a>
+<span class="sourceLineNo">31783</span>                                                ox = (Math.rint(ix));<a name="line.31783"></a>
+<span class="sourceLineNo">31784</span>                                                oaf64data[it.oIndex] = ox;<a name="line.31784"></a>
+<span class="sourceLineNo">31785</span>                                        }<a name="line.31785"></a>
+<span class="sourceLineNo">31786</span>                                }<a name="line.31786"></a>
+<span class="sourceLineNo">31787</span>                        } else if (as == 1) {<a name="line.31787"></a>
+<span class="sourceLineNo">31788</span>                                if (it.isOutputDouble()) {<a name="line.31788"></a>
+<span class="sourceLineNo">31789</span>                                        while (it.hasNext()) {<a name="line.31789"></a>
+<span class="sourceLineNo">31790</span>                                                final double ix = it.aDouble;<a name="line.31790"></a>
+<span class="sourceLineNo">31791</span>                                                double ox;<a name="line.31791"></a>
+<span class="sourceLineNo">31792</span>                                                ox = (Math.rint(ix));<a name="line.31792"></a>
+<span class="sourceLineNo">31793</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31793"></a>
+<span class="sourceLineNo">31794</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.31794"></a>
+<span class="sourceLineNo">31795</span>                                                }<a name="line.31795"></a>
+<span class="sourceLineNo">31796</span>                                        }<a name="line.31796"></a>
+<span class="sourceLineNo">31797</span>                                } else {<a name="line.31797"></a>
+<span class="sourceLineNo">31798</span>                                        while (it.hasNext()) {<a name="line.31798"></a>
+<span class="sourceLineNo">31799</span>                                                final long ix = it.aLong;<a name="line.31799"></a>
+<span class="sourceLineNo">31800</span>                                                double ox;<a name="line.31800"></a>
+<span class="sourceLineNo">31801</span>                                                ox = (Math.rint(ix));<a name="line.31801"></a>
+<span class="sourceLineNo">31802</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31802"></a>
+<span class="sourceLineNo">31803</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.31803"></a>
+<span class="sourceLineNo">31804</span>                                                }<a name="line.31804"></a>
+<span class="sourceLineNo">31805</span>                                        }<a name="line.31805"></a>
+<span class="sourceLineNo">31806</span>                                }<a name="line.31806"></a>
+<span class="sourceLineNo">31807</span>                        } else {<a name="line.31807"></a>
+<span class="sourceLineNo">31808</span>                                if (it.isOutputDouble()) {<a name="line.31808"></a>
+<span class="sourceLineNo">31809</span>                                        while (it.hasNext()) {<a name="line.31809"></a>
+<span class="sourceLineNo">31810</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31810"></a>
+<span class="sourceLineNo">31811</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.31811"></a>
+<span class="sourceLineNo">31812</span>                                                        double ox;<a name="line.31812"></a>
+<span class="sourceLineNo">31813</span>                                                        ox = (Math.rint(ix));<a name="line.31813"></a>
+<span class="sourceLineNo">31814</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.31814"></a>
+<span class="sourceLineNo">31815</span>                                                }<a name="line.31815"></a>
+<span class="sourceLineNo">31816</span>                                        }<a name="line.31816"></a>
+<span class="sourceLineNo">31817</span>                                } else {<a name="line.31817"></a>
+<span class="sourceLineNo">31818</span>                                        while (it.hasNext()) {<a name="line.31818"></a>
+<span class="sourceLineNo">31819</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.31819"></a>
+<span class="sourceLineNo">31820</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.31820"></a>
+<span class="sourceLineNo">31821</span>                                                        double ox;<a name="line.31821"></a>
+<span class="sourceLineNo">31822</span>                                                        ox = (Math.rint(ix));<a name="line.31822"></a>
+<span class="sourceLineNo">31823</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.31823"></a>
+<span class="sourceLineNo">31824</span>                                                }<a name="line.31824"></a>
+<span class="sourceLineNo">31825</span>                                        }<a name="line.31825"></a>
+<span class="sourceLineNo">31826</span>                                }<a name="line.31826"></a>
+<span class="sourceLineNo">31827</span>                        }<a name="line.31827"></a>
+<span class="sourceLineNo">31828</span>                        break;<a name="line.31828"></a>
+<span class="sourceLineNo">31829</span>                case Dataset.COMPLEX64:<a name="line.31829"></a>
+<span class="sourceLineNo">31830</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.31830"></a>
+<span class="sourceLineNo">31831</span>                        if (!da.isComplex()) {<a name="line.31831"></a>
+<span class="sourceLineNo">31832</span>                                if (it.isOutputDouble()) {<a name="line.31832"></a>
+<span class="sourceLineNo">31833</span>                                        final double iy = 0;<a name="line.31833"></a>
+<span class="sourceLineNo">31834</span>                                        while (it.hasNext()) {<a name="line.31834"></a>
+<span class="sourceLineNo">31835</span>                                                final double ix = it.aDouble;<a name="line.31835"></a>
+<span class="sourceLineNo">31836</span>                                                float ox;<a name="line.31836"></a>
+<span class="sourceLineNo">31837</span>                                                float oy;<a name="line.31837"></a>
+<span class="sourceLineNo">31838</span>                                                ox = (float) (Math.rint(ix));<a name="line.31838"></a>
+<span class="sourceLineNo">31839</span>                                                oy = (float) (Math.rint(iy));<a name="line.31839"></a>
+<span class="sourceLineNo">31840</span>                                                oc64data[it.oIndex] = ox;<a name="line.31840"></a>
+<span class="sourceLineNo">31841</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.31841"></a>
+<span class="sourceLineNo">31842</span>                                        }<a name="line.31842"></a>
+<span class="sourceLineNo">31843</span>                                } else {<a name="line.31843"></a>
+<span class="sourceLineNo">31844</span>                                        final long iy = 0;<a name="line.31844"></a>
+<span class="sourceLineNo">31845</span>                                        while (it.hasNext()) {<a name="line.31845"></a>
+<span class="sourceLineNo">31846</span>                                                final long ix = it.aLong;<a name="line.31846"></a>
+<span class="sourceLineNo">31847</span>                                                float ox;<a name="line.31847"></a>
+<span class="sourceLineNo">31848</span>                                                float oy;<a name="line.31848"></a>
+<span class="sourceLineNo">31849</span>                                                ox = (float) toLong(Math.rint(ix));<a name="line.31849"></a>
+<span class="sourceLineNo">31850</span>                                                oy = (float) toLong(Math.rint(iy));<a name="line.31850"></a>
+<span class="sourceLineNo">31851</span>                                                oc64data[it.oIndex] = ox;<a name="line.31851"></a>
+<span class="sourceLineNo">31852</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.31852"></a>
+<span class="sourceLineNo">31853</span>                                        }<a name="line.31853"></a>
+<span class="sourceLineNo">31854</span>                                }<a name="line.31854"></a>
+<span class="sourceLineNo">31855</span>                        } else {<a name="line.31855"></a>
+<span class="sourceLineNo">31856</span>                                while (it.hasNext()) {<a name="line.31856"></a>
+<span class="sourceLineNo">31857</span>                                        final double ix = it.aDouble;<a name="line.31857"></a>
+<span class="sourceLineNo">31858</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.31858"></a>
+<span class="sourceLineNo">31859</span>                                        float ox;<a name="line.31859"></a>
+<span class="sourceLineNo">31860</span>                                        float oy;<a name="line.31860"></a>
+<span class="sourceLineNo">31861</span>                                        ox = (float) (Math.rint(ix));<a name="line.31861"></a>
+<span class="sourceLineNo">31862</span>                                        oy = (float) (Math.rint(iy));<a name="line.31862"></a>
+<span class="sourceLineNo">31863</span>                                        oc64data[it.oIndex] = ox;<a name="line.31863"></a>
+<span class="sourceLineNo">31864</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.31864"></a>
+<span class="sourceLineNo">31865</span>                                }<a name="line.31865"></a>
+<span class="sourceLineNo">31866</span>                        }<a name="line.31866"></a>
+<span class="sourceLineNo">31867</span>                        break;<a name="line.31867"></a>
+<span class="sourceLineNo">31868</span>                case Dataset.COMPLEX128:<a name="line.31868"></a>
+<span class="sourceLineNo">31869</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.31869"></a>
+<span class="sourceLineNo">31870</span>                        if (!da.isComplex()) {<a name="line.31870"></a>
+<span class="sourceLineNo">31871</span>                                if (it.isOutputDouble()) {<a name="line.31871"></a>
+<span class="sourceLineNo">31872</span>                                        final double iy = 0;<a name="line.31872"></a>
+<span class="sourceLineNo">31873</span>                                        while (it.hasNext()) {<a name="line.31873"></a>
+<span class="sourceLineNo">31874</span>                                                final double ix = it.aDouble;<a name="line.31874"></a>
+<span class="sourceLineNo">31875</span>                                                double ox;<a name="line.31875"></a>
+<span class="sourceLineNo">31876</span>                                                double oy;<a name="line.31876"></a>
+<span class="sourceLineNo">31877</span>                                                ox = (Math.rint(ix));<a name="line.31877"></a>
+<span class="sourceLineNo">31878</span>                                                oy = (Math.rint(iy));<a name="line.31878"></a>
+<span class="sourceLineNo">31879</span>                                                oc128data[it.oIndex] = ox;<a name="line.31879"></a>
+<span class="sourceLineNo">31880</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.31880"></a>
+<span class="sourceLineNo">31881</span>                                        }<a name="line.31881"></a>
+<span class="sourceLineNo">31882</span>                                } else {<a name="line.31882"></a>
+<span class="sourceLineNo">31883</span>                                        final long iy = 0;<a name="line.31883"></a>
+<span class="sourceLineNo">31884</span>                                        while (it.hasNext()) {<a name="line.31884"></a>
+<span class="sourceLineNo">31885</span>                                                final long ix = it.aLong;<a name="line.31885"></a>
+<span class="sourceLineNo">31886</span>                                                double ox;<a name="line.31886"></a>
+<span class="sourceLineNo">31887</span>                                                double oy;<a name="line.31887"></a>
+<span class="sourceLineNo">31888</span>                                                ox = (double) (Math.rint(ix));<a name="line.31888"></a>
+<span class="sourceLineNo">31889</span>                                                oy = (double) (Math.rint(iy));<a name="line.31889"></a>
+<span class="sourceLineNo">31890</span>                                                oc128data[it.oIndex] = ox;<a name="line.31890"></a>
+<span class="sourceLineNo">31891</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.31891"></a>
+<span class="sourceLineNo">31892</span>                                        }<a name="line.31892"></a>
+<span class="sourceLineNo">31893</span>                                }<a name="line.31893"></a>
+<span class="sourceLineNo">31894</span>                        } else {<a name="line.31894"></a>
+<span class="sourceLineNo">31895</span>                                while (it.hasNext()) {<a name="line.31895"></a>
+<span class="sourceLineNo">31896</span>                                        final double ix = it.aDouble;<a name="line.31896"></a>
+<span class="sourceLineNo">31897</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.31897"></a>
+<span class="sourceLineNo">31898</span>                                        double ox;<a name="line.31898"></a>
+<span class="sourceLineNo">31899</span>                                        double oy;<a name="line.31899"></a>
+<span class="sourceLineNo">31900</span>                                        ox = (Math.rint(ix));<a name="line.31900"></a>
+<span class="sourceLineNo">31901</span>                                        oy = (Math.rint(iy));<a name="line.31901"></a>
+<span class="sourceLineNo">31902</span>                                        oc128data[it.oIndex] = ox;<a name="line.31902"></a>
+<span class="sourceLineNo">31903</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.31903"></a>
+<span class="sourceLineNo">31904</span>                                }<a name="line.31904"></a>
+<span class="sourceLineNo">31905</span>                        }<a name="line.31905"></a>
+<span class="sourceLineNo">31906</span>                        break;<a name="line.31906"></a>
+<span class="sourceLineNo">31907</span>                default:<a name="line.31907"></a>
+<span class="sourceLineNo">31908</span>                        throw new IllegalArgumentException("rint supports integer, compound integer, real, compound real, complex datasets only");<a name="line.31908"></a>
+<span class="sourceLineNo">31909</span>                }<a name="line.31909"></a>
+<span class="sourceLineNo">31910</span><a name="line.31910"></a>
+<span class="sourceLineNo">31911</span>                addFunctionName(result, "rint");<a name="line.31911"></a>
+<span class="sourceLineNo">31912</span>                return result;<a name="line.31912"></a>
+<span class="sourceLineNo">31913</span>        }<a name="line.31913"></a>
+<span class="sourceLineNo">31914</span><a name="line.31914"></a>
+<span class="sourceLineNo">31915</span>        /**<a name="line.31915"></a>
+<span class="sourceLineNo">31916</span>         * truncate - truncate each element to integers of the dataset<a name="line.31916"></a>
+<span class="sourceLineNo">31917</span>         * @param a<a name="line.31917"></a>
+<span class="sourceLineNo">31918</span>         * @return dataset<a name="line.31918"></a>
+<span class="sourceLineNo">31919</span>         */<a name="line.31919"></a>
+<span class="sourceLineNo">31920</span>        public static Dataset truncate(final Object a) {<a name="line.31920"></a>
+<span class="sourceLineNo">31921</span>                return truncate(a, null);<a name="line.31921"></a>
+<span class="sourceLineNo">31922</span>        }<a name="line.31922"></a>
+<span class="sourceLineNo">31923</span><a name="line.31923"></a>
+<span class="sourceLineNo">31924</span>        /**<a name="line.31924"></a>
+<span class="sourceLineNo">31925</span>         * truncate - truncate each element to integers of the dataset<a name="line.31925"></a>
+<span class="sourceLineNo">31926</span>         * @param a<a name="line.31926"></a>
+<span class="sourceLineNo">31927</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.31927"></a>
+<span class="sourceLineNo">31928</span>         * @return dataset<a name="line.31928"></a>
+<span class="sourceLineNo">31929</span>         */<a name="line.31929"></a>
+<span class="sourceLineNo">31930</span>        public static Dataset truncate(final Object a, final Dataset o) {<a name="line.31930"></a>
+<span class="sourceLineNo">31931</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.31931"></a>
+<span class="sourceLineNo">31932</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.31932"></a>
+<span class="sourceLineNo">31933</span>                final Dataset result = it.getOutput();<a name="line.31933"></a>
+<span class="sourceLineNo">31934</span>                if (!result.isComplex()) {<a name="line.31934"></a>
+<span class="sourceLineNo">31935</span>                        if (da.isComplex()) {<a name="line.31935"></a>
+<span class="sourceLineNo">31936</span>                                da = da.getRealView();<a name="line.31936"></a>
+<span class="sourceLineNo">31937</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.31937"></a>
+<span class="sourceLineNo">31938</span>                        }<a name="line.31938"></a>
+<span class="sourceLineNo">31939</span>                }<a name="line.31939"></a>
+<span class="sourceLineNo">31940</span>                final int is = result.getElementsPerItem();<a name="line.31940"></a>
+<span class="sourceLineNo">31941</span>                final int as = da.getElementsPerItem();<a name="line.31941"></a>
+<span class="sourceLineNo">31942</span>                final int dt = result.getDType();<a name="line.31942"></a>
+<span class="sourceLineNo">31943</span><a name="line.31943"></a>
+<span class="sourceLineNo">31944</span>                switch(dt) {<a name="line.31944"></a>
+<span class="sourceLineNo">31945</span>                case Dataset.INT8:<a name="line.31945"></a>
+<span class="sourceLineNo">31946</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.31946"></a>
+<span class="sourceLineNo">31947</span>                        if (it.isOutputDouble()) {<a name="line.31947"></a>
+<span class="sourceLineNo">31948</span>                                while (it.hasNext()) {<a name="line.31948"></a>
+<span class="sourceLineNo">31949</span>                                        final double ix = it.aDouble;<a name="line.31949"></a>
+<span class="sourceLineNo">31950</span>                                        byte ox;<a name="line.31950"></a>
+<span class="sourceLineNo">31951</span>                                        ox = (byte) toLong(ix);<a name="line.31951"></a>
+<span class="sourceLineNo">31952</span>                                        oi8data[it.oIndex] = ox;<a name="line.31952"></a>
+<span class="sourceLineNo">31953</span>                                }<a name="line.31953"></a>
+<span class="sourceLineNo">31954</span>                        } else {<a name="line.31954"></a>
+<span class="sourceLineNo">31955</span>                                while (it.hasNext()) {<a name="line.31955"></a>
+<span class="sourceLineNo">31956</span>                                        final long ix = it.aLong;<a name="line.31956"></a>
+<span class="sourceLineNo">31957</span>                                        byte ox;<a name="line.31957"></a>
+<span class="sourceLineNo">31958</span>                                        ox = (byte) toLong(ix);<a name="line.31958"></a>
+<span class="sourceLineNo">31959</span>                                        oi8data[it.oIndex] = ox;<a name="line.31959"></a>
+<span class="sourceLineNo">31960</span>                                }<a name="line.31960"></a>
+<span class="sourceLineNo">31961</span>                        }<a name="line.31961"></a>
+<span class="sourceLineNo">31962</span>                        break;<a name="line.31962"></a>
+<span class="sourceLineNo">31963</span>                case Dataset.INT16:<a name="line.31963"></a>
+<span class="sourceLineNo">31964</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.31964"></a>
+<span class="sourceLineNo">31965</span>                        if (it.isOutputDouble()) {<a name="line.31965"></a>
+<span class="sourceLineNo">31966</span>                                while (it.hasNext()) {<a name="line.31966"></a>
+<span class="sourceLineNo">31967</span>                                        final double ix = it.aDouble;<a name="line.31967"></a>
+<span class="sourceLineNo">31968</span>                                        short ox;<a name="line.31968"></a>
+<span class="sourceLineNo">31969</span>                                        ox = (short) toLong(ix);<a name="line.31969"></a>
+<span class="sourceLineNo">31970</span>                                        oi16data[it.oIndex] = ox;<a name="line.31970"></a>
+<span class="sourceLineNo">31971</span>                                }<a name="line.31971"></a>
+<span class="sourceLineNo">31972</span>                        } else {<a name="line.31972"></a>
+<span class="sourceLineNo">31973</span>                                while (it.hasNext()) {<a name="line.31973"></a>
+<span class="sourceLineNo">31974</span>                                        final long ix = it.aLong;<a name="line.31974"></a>
+<span class="sourceLineNo">31975</span>                                        short ox;<a name="line.31975"></a>
+<span class="sourceLineNo">31976</span>                                        ox = (short) toLong(ix);<a name="line.31976"></a>
+<span class="sourceLineNo">31977</span>                                        oi16data[it.oIndex] = ox;<a name="line.31977"></a>
+<span class="sourceLineNo">31978</span>                                }<a name="line.31978"></a>
+<span class="sourceLineNo">31979</span>                        }<a name="line.31979"></a>
+<span class="sourceLineNo">31980</span>                        break;<a name="line.31980"></a>
+<span class="sourceLineNo">31981</span>                case Dataset.INT64:<a name="line.31981"></a>
+<span class="sourceLineNo">31982</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.31982"></a>
+<span class="sourceLineNo">31983</span>                        if (it.isOutputDouble()) {<a name="line.31983"></a>
+<span class="sourceLineNo">31984</span>                                while (it.hasNext()) {<a name="line.31984"></a>
+<span class="sourceLineNo">31985</span>                                        final double ix = it.aDouble;<a name="line.31985"></a>
+<span class="sourceLineNo">31986</span>                                        long ox;<a name="line.31986"></a>
+<span class="sourceLineNo">31987</span>                                        ox = toLong(ix);<a name="line.31987"></a>
+<span class="sourceLineNo">31988</span>                                        oi64data[it.oIndex] = ox;<a name="line.31988"></a>
+<span class="sourceLineNo">31989</span>                                }<a name="line.31989"></a>
+<span class="sourceLineNo">31990</span>                        } else {<a name="line.31990"></a>
+<span class="sourceLineNo">31991</span>                                while (it.hasNext()) {<a name="line.31991"></a>
+<span class="sourceLineNo">31992</span>                                        final long ix = it.aLong;<a name="line.31992"></a>
+<span class="sourceLineNo">31993</span>                                        long ox;<a name="line.31993"></a>
+<span class="sourceLineNo">31994</span>                                        ox = toLong(ix);<a name="line.31994"></a>
+<span class="sourceLineNo">31995</span>                                        oi64data[it.oIndex] = ox;<a name="line.31995"></a>
+<span class="sourceLineNo">31996</span>                                }<a name="line.31996"></a>
+<span class="sourceLineNo">31997</span>                        }<a name="line.31997"></a>
+<span class="sourceLineNo">31998</span>                        break;<a name="line.31998"></a>
+<span class="sourceLineNo">31999</span>                case Dataset.INT32:<a name="line.31999"></a>
+<span class="sourceLineNo">32000</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.32000"></a>
+<span class="sourceLineNo">32001</span>                        if (it.isOutputDouble()) {<a name="line.32001"></a>
+<span class="sourceLineNo">32002</span>                                while (it.hasNext()) {<a name="line.32002"></a>
+<span class="sourceLineNo">32003</span>                                        final double ix = it.aDouble;<a name="line.32003"></a>
+<span class="sourceLineNo">32004</span>                                        int ox;<a name="line.32004"></a>
+<span class="sourceLineNo">32005</span>                                        ox = (int) toLong(ix);<a name="line.32005"></a>
+<span class="sourceLineNo">32006</span>                                        oi32data[it.oIndex] = ox;<a name="line.32006"></a>
+<span class="sourceLineNo">32007</span>                                }<a name="line.32007"></a>
+<span class="sourceLineNo">32008</span>                        } else {<a name="line.32008"></a>
+<span class="sourceLineNo">32009</span>                                while (it.hasNext()) {<a name="line.32009"></a>
+<span class="sourceLineNo">32010</span>                                        final long ix = it.aLong;<a name="line.32010"></a>
+<span class="sourceLineNo">32011</span>                                        int ox;<a name="line.32011"></a>
+<span class="sourceLineNo">32012</span>                                        ox = (int) toLong(ix);<a name="line.32012"></a>
+<span class="sourceLineNo">32013</span>                                        oi32data[it.oIndex] = ox;<a name="line.32013"></a>
+<span class="sourceLineNo">32014</span>                                }<a name="line.32014"></a>
+<span class="sourceLineNo">32015</span>                        }<a name="line.32015"></a>
+<span class="sourceLineNo">32016</span>                        break;<a name="line.32016"></a>
+<span class="sourceLineNo">32017</span>                case Dataset.ARRAYINT8:<a name="line.32017"></a>
+<span class="sourceLineNo">32018</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.32018"></a>
+<span class="sourceLineNo">32019</span>                        if (is == 1) {<a name="line.32019"></a>
+<span class="sourceLineNo">32020</span>                                if (it.isOutputDouble()) {<a name="line.32020"></a>
+<span class="sourceLineNo">32021</span>                                        while (it.hasNext()) {<a name="line.32021"></a>
+<span class="sourceLineNo">32022</span>                                                final double ix = it.aDouble;<a name="line.32022"></a>
+<span class="sourceLineNo">32023</span>                                                byte ox;<a name="line.32023"></a>
+<span class="sourceLineNo">32024</span>                                                ox = (byte) toLong(ix);<a name="line.32024"></a>
+<span class="sourceLineNo">32025</span>                                                oai8data[it.oIndex] = ox;<a name="line.32025"></a>
+<span class="sourceLineNo">32026</span>                                        }<a name="line.32026"></a>
+<span class="sourceLineNo">32027</span>                                } else {<a name="line.32027"></a>
+<span class="sourceLineNo">32028</span>                                        while (it.hasNext()) {<a name="line.32028"></a>
+<span class="sourceLineNo">32029</span>                                                final long ix = it.aLong;<a name="line.32029"></a>
+<span class="sourceLineNo">32030</span>                                                byte ox;<a name="line.32030"></a>
+<span class="sourceLineNo">32031</span>                                                ox = (byte) toLong(ix);<a name="line.32031"></a>
+<span class="sourceLineNo">32032</span>                                                oai8data[it.oIndex] = ox;<a name="line.32032"></a>
+<span class="sourceLineNo">32033</span>                                        }<a name="line.32033"></a>
+<span class="sourceLineNo">32034</span>                                }<a name="line.32034"></a>
+<span class="sourceLineNo">32035</span>                        } else if (as == 1) {<a name="line.32035"></a>
+<span class="sourceLineNo">32036</span>                                if (it.isOutputDouble()) {<a name="line.32036"></a>
+<span class="sourceLineNo">32037</span>                                        while (it.hasNext()) {<a name="line.32037"></a>
+<span class="sourceLineNo">32038</span>                                                final double ix = it.aDouble;<a name="line.32038"></a>
+<span class="sourceLineNo">32039</span>                                                byte ox;<a name="line.32039"></a>
+<span class="sourceLineNo">32040</span>                                                ox = (byte) toLong(ix);<a name="line.32040"></a>
+<span class="sourceLineNo">32041</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32041"></a>
+<span class="sourceLineNo">32042</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.32042"></a>
+<span class="sourceLineNo">32043</span>                                                }<a name="line.32043"></a>
+<span class="sourceLineNo">32044</span>                                        }<a name="line.32044"></a>
+<span class="sourceLineNo">32045</span>                                } else {<a name="line.32045"></a>
+<span class="sourceLineNo">32046</span>                                        while (it.hasNext()) {<a name="line.32046"></a>
+<span class="sourceLineNo">32047</span>                                                final long ix = it.aLong;<a name="line.32047"></a>
+<span class="sourceLineNo">32048</span>                                                byte ox;<a name="line.32048"></a>
+<span class="sourceLineNo">32049</span>                                                ox = (byte) toLong(ix);<a name="line.32049"></a>
+<span class="sourceLineNo">32050</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32050"></a>
+<span class="sourceLineNo">32051</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.32051"></a>
+<span class="sourceLineNo">32052</span>                                                }<a name="line.32052"></a>
+<span class="sourceLineNo">32053</span>                                        }<a name="line.32053"></a>
+<span class="sourceLineNo">32054</span>                                }<a name="line.32054"></a>
+<span class="sourceLineNo">32055</span>                        } else {<a name="line.32055"></a>
+<span class="sourceLineNo">32056</span>                                if (it.isOutputDouble()) {<a name="line.32056"></a>
+<span class="sourceLineNo">32057</span>                                        while (it.hasNext()) {<a name="line.32057"></a>
+<span class="sourceLineNo">32058</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32058"></a>
+<span class="sourceLineNo">32059</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.32059"></a>
+<span class="sourceLineNo">32060</span>                                                        byte ox;<a name="line.32060"></a>
+<span class="sourceLineNo">32061</span>                                                        ox = (byte) toLong(ix);<a name="line.32061"></a>
+<span class="sourceLineNo">32062</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.32062"></a>
+<span class="sourceLineNo">32063</span>                                                }<a name="line.32063"></a>
+<span class="sourceLineNo">32064</span>                                        }<a name="line.32064"></a>
+<span class="sourceLineNo">32065</span>                                } else {<a name="line.32065"></a>
+<span class="sourceLineNo">32066</span>                                        while (it.hasNext()) {<a name="line.32066"></a>
+<span class="sourceLineNo">32067</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32067"></a>
+<span class="sourceLineNo">32068</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.32068"></a>
+<span class="sourceLineNo">32069</span>                                                        byte ox;<a name="line.32069"></a>
+<span class="sourceLineNo">32070</span>                                                        ox = (byte) toLong(ix);<a name="line.32070"></a>
+<span class="sourceLineNo">32071</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.32071"></a>
+<span class="sourceLineNo">32072</span>                                                }<a name="line.32072"></a>
+<span class="sourceLineNo">32073</span>                                        }<a name="line.32073"></a>
+<span class="sourceLineNo">32074</span>                                }<a name="line.32074"></a>
+<span class="sourceLineNo">32075</span>                        }<a name="line.32075"></a>
+<span class="sourceLineNo">32076</span>                        break;<a name="line.32076"></a>
+<span class="sourceLineNo">32077</span>                case Dataset.ARRAYINT16:<a name="line.32077"></a>
+<span class="sourceLineNo">32078</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.32078"></a>
+<span class="sourceLineNo">32079</span>                        if (is == 1) {<a name="line.32079"></a>
+<span class="sourceLineNo">32080</span>                                if (it.isOutputDouble()) {<a name="line.32080"></a>
+<span class="sourceLineNo">32081</span>                                        while (it.hasNext()) {<a name="line.32081"></a>
+<span class="sourceLineNo">32082</span>                                                final double ix = it.aDouble;<a name="line.32082"></a>
+<span class="sourceLineNo">32083</span>                                                short ox;<a name="line.32083"></a>
+<span class="sourceLineNo">32084</span>                                                ox = (short) toLong(ix);<a name="line.32084"></a>
+<span class="sourceLineNo">32085</span>                                                oai16data[it.oIndex] = ox;<a name="line.32085"></a>
+<span class="sourceLineNo">32086</span>                                        }<a name="line.32086"></a>
+<span class="sourceLineNo">32087</span>                                } else {<a name="line.32087"></a>
+<span class="sourceLineNo">32088</span>                                        while (it.hasNext()) {<a name="line.32088"></a>
+<span class="sourceLineNo">32089</span>                                                final long ix = it.aLong;<a name="line.32089"></a>
+<span class="sourceLineNo">32090</span>                                                short ox;<a name="line.32090"></a>
+<span class="sourceLineNo">32091</span>                                                ox = (short) toLong(ix);<a name="line.32091"></a>
+<span class="sourceLineNo">32092</span>                                                oai16data[it.oIndex] = ox;<a name="line.32092"></a>
+<span class="sourceLineNo">32093</span>                                        }<a name="line.32093"></a>
+<span class="sourceLineNo">32094</span>                                }<a name="line.32094"></a>
+<span class="sourceLineNo">32095</span>                        } else if (as == 1) {<a name="line.32095"></a>
+<span class="sourceLineNo">32096</span>                                if (it.isOutputDouble()) {<a name="line.32096"></a>
+<span class="sourceLineNo">32097</span>                                        while (it.hasNext()) {<a name="line.32097"></a>
+<span class="sourceLineNo">32098</span>                                                final double ix = it.aDouble;<a name="line.32098"></a>
+<span class="sourceLineNo">32099</span>                                                short ox;<a name="line.32099"></a>
+<span class="sourceLineNo">32100</span>                                                ox = (short) toLong(ix);<a name="line.32100"></a>
+<span class="sourceLineNo">32101</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32101"></a>
+<span class="sourceLineNo">32102</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.32102"></a>
+<span class="sourceLineNo">32103</span>                                                }<a name="line.32103"></a>
+<span class="sourceLineNo">32104</span>                                        }<a name="line.32104"></a>
+<span class="sourceLineNo">32105</span>                                } else {<a name="line.32105"></a>
+<span class="sourceLineNo">32106</span>                                        while (it.hasNext()) {<a name="line.32106"></a>
+<span class="sourceLineNo">32107</span>                                                final long ix = it.aLong;<a name="line.32107"></a>
+<span class="sourceLineNo">32108</span>                                                short ox;<a name="line.32108"></a>
+<span class="sourceLineNo">32109</span>                                                ox = (short) toLong(ix);<a name="line.32109"></a>
+<span class="sourceLineNo">32110</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32110"></a>
+<span class="sourceLineNo">32111</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.32111"></a>
+<span class="sourceLineNo">32112</span>                                                }<a name="line.32112"></a>
+<span class="sourceLineNo">32113</span>                                        }<a name="line.32113"></a>
+<span class="sourceLineNo">32114</span>                                }<a name="line.32114"></a>
+<span class="sourceLineNo">32115</span>                        } else {<a name="line.32115"></a>
+<span class="sourceLineNo">32116</span>                                if (it.isOutputDouble()) {<a name="line.32116"></a>
+<span class="sourceLineNo">32117</span>                                        while (it.hasNext()) {<a name="line.32117"></a>
+<span class="sourceLineNo">32118</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32118"></a>
+<span class="sourceLineNo">32119</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.32119"></a>
+<span class="sourceLineNo">32120</span>                                                        short ox;<a name="line.32120"></a>
+<span class="sourceLineNo">32121</span>                                                        ox = (short) toLong(ix);<a name="line.32121"></a>
+<span class="sourceLineNo">32122</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.32122"></a>
+<span class="sourceLineNo">32123</span>                                                }<a name="line.32123"></a>
+<span class="sourceLineNo">32124</span>                                        }<a name="line.32124"></a>
+<span class="sourceLineNo">32125</span>                                } else {<a name="line.32125"></a>
+<span class="sourceLineNo">32126</span>                                        while (it.hasNext()) {<a name="line.32126"></a>
+<span class="sourceLineNo">32127</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32127"></a>
+<span class="sourceLineNo">32128</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.32128"></a>
+<span class="sourceLineNo">32129</span>                                                        short ox;<a name="line.32129"></a>
+<span class="sourceLineNo">32130</span>                                                        ox = (short) toLong(ix);<a name="line.32130"></a>
+<span class="sourceLineNo">32131</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.32131"></a>
+<span class="sourceLineNo">32132</span>                                                }<a name="line.32132"></a>
+<span class="sourceLineNo">32133</span>                                        }<a name="line.32133"></a>
+<span class="sourceLineNo">32134</span>                                }<a name="line.32134"></a>
+<span class="sourceLineNo">32135</span>                        }<a name="line.32135"></a>
+<span class="sourceLineNo">32136</span>                        break;<a name="line.32136"></a>
+<span class="sourceLineNo">32137</span>                case Dataset.ARRAYINT64:<a name="line.32137"></a>
+<span class="sourceLineNo">32138</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.32138"></a>
+<span class="sourceLineNo">32139</span>                        if (is == 1) {<a name="line.32139"></a>
+<span class="sourceLineNo">32140</span>                                if (it.isOutputDouble()) {<a name="line.32140"></a>
+<span class="sourceLineNo">32141</span>                                        while (it.hasNext()) {<a name="line.32141"></a>
+<span class="sourceLineNo">32142</span>                                                final double ix = it.aDouble;<a name="line.32142"></a>
+<span class="sourceLineNo">32143</span>                                                long ox;<a name="line.32143"></a>
+<span class="sourceLineNo">32144</span>                                                ox = toLong(ix);<a name="line.32144"></a>
+<span class="sourceLineNo">32145</span>                                                oai64data[it.oIndex] = ox;<a name="line.32145"></a>
+<span class="sourceLineNo">32146</span>                                        }<a name="line.32146"></a>
+<span class="sourceLineNo">32147</span>                                } else {<a name="line.32147"></a>
+<span class="sourceLineNo">32148</span>                                        while (it.hasNext()) {<a name="line.32148"></a>
+<span class="sourceLineNo">32149</span>                                                final long ix = it.aLong;<a name="line.32149"></a>
+<span class="sourceLineNo">32150</span>                                                long ox;<a name="line.32150"></a>
+<span class="sourceLineNo">32151</span>                                                ox = toLong(ix);<a name="line.32151"></a>
+<span class="sourceLineNo">32152</span>                                                oai64data[it.oIndex] = ox;<a name="line.32152"></a>
+<span class="sourceLineNo">32153</span>                                        }<a name="line.32153"></a>
+<span class="sourceLineNo">32154</span>                                }<a name="line.32154"></a>
+<span class="sourceLineNo">32155</span>                        } else if (as == 1) {<a name="line.32155"></a>
+<span class="sourceLineNo">32156</span>                                if (it.isOutputDouble()) {<a name="line.32156"></a>
+<span class="sourceLineNo">32157</span>                                        while (it.hasNext()) {<a name="line.32157"></a>
+<span class="sourceLineNo">32158</span>                                                final double ix = it.aDouble;<a name="line.32158"></a>
+<span class="sourceLineNo">32159</span>                                                long ox;<a name="line.32159"></a>
+<span class="sourceLineNo">32160</span>                                                ox = toLong(ix);<a name="line.32160"></a>
+<span class="sourceLineNo">32161</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32161"></a>
+<span class="sourceLineNo">32162</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.32162"></a>
+<span class="sourceLineNo">32163</span>                                                }<a name="line.32163"></a>
+<span class="sourceLineNo">32164</span>                                        }<a name="line.32164"></a>
+<span class="sourceLineNo">32165</span>                                } else {<a name="line.32165"></a>
+<span class="sourceLineNo">32166</span>                                        while (it.hasNext()) {<a name="line.32166"></a>
+<span class="sourceLineNo">32167</span>                                                final long ix = it.aLong;<a name="line.32167"></a>
+<span class="sourceLineNo">32168</span>                                                long ox;<a name="line.32168"></a>
+<span class="sourceLineNo">32169</span>                                                ox = toLong(ix);<a name="line.32169"></a>
+<span class="sourceLineNo">32170</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32170"></a>
+<span class="sourceLineNo">32171</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.32171"></a>
+<span class="sourceLineNo">32172</span>                                                }<a name="line.32172"></a>
+<span class="sourceLineNo">32173</span>                                        }<a name="line.32173"></a>
+<span class="sourceLineNo">32174</span>                                }<a name="line.32174"></a>
+<span class="sourceLineNo">32175</span>                        } else {<a name="line.32175"></a>
+<span class="sourceLineNo">32176</span>                                if (it.isOutputDouble()) {<a name="line.32176"></a>
+<span class="sourceLineNo">32177</span>                                        while (it.hasNext()) {<a name="line.32177"></a>
+<span class="sourceLineNo">32178</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32178"></a>
+<span class="sourceLineNo">32179</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.32179"></a>
+<span class="sourceLineNo">32180</span>                                                        long ox;<a name="line.32180"></a>
+<span class="sourceLineNo">32181</span>                                                        ox = toLong(ix);<a name="line.32181"></a>
+<span class="sourceLineNo">32182</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.32182"></a>
+<span class="sourceLineNo">32183</span>                                                }<a name="line.32183"></a>
+<span class="sourceLineNo">32184</span>                                        }<a name="line.32184"></a>
+<span class="sourceLineNo">32185</span>                                } else {<a name="line.32185"></a>
+<span class="sourceLineNo">32186</span>                                        while (it.hasNext()) {<a name="line.32186"></a>
+<span class="sourceLineNo">32187</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32187"></a>
+<span class="sourceLineNo">32188</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.32188"></a>
+<span class="sourceLineNo">32189</span>                                                        long ox;<a name="line.32189"></a>
+<span class="sourceLineNo">32190</span>                                                        ox = toLong(ix);<a name="line.32190"></a>
+<span class="sourceLineNo">32191</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.32191"></a>
+<span class="sourceLineNo">32192</span>                                                }<a name="line.32192"></a>
+<span class="sourceLineNo">32193</span>                                        }<a name="line.32193"></a>
+<span class="sourceLineNo">32194</span>                                }<a name="line.32194"></a>
+<span class="sourceLineNo">32195</span>                        }<a name="line.32195"></a>
+<span class="sourceLineNo">32196</span>                        break;<a name="line.32196"></a>
+<span class="sourceLineNo">32197</span>                case Dataset.ARRAYINT32:<a name="line.32197"></a>
+<span class="sourceLineNo">32198</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.32198"></a>
+<span class="sourceLineNo">32199</span>                        if (is == 1) {<a name="line.32199"></a>
+<span class="sourceLineNo">32200</span>                                if (it.isOutputDouble()) {<a name="line.32200"></a>
+<span class="sourceLineNo">32201</span>                                        while (it.hasNext()) {<a name="line.32201"></a>
+<span class="sourceLineNo">32202</span>                                                final double ix = it.aDouble;<a name="line.32202"></a>
+<span class="sourceLineNo">32203</span>                                                int ox;<a name="line.32203"></a>
+<span class="sourceLineNo">32204</span>                                                ox = (int) toLong(ix);<a name="line.32204"></a>
+<span class="sourceLineNo">32205</span>                                                oai32data[it.oIndex] = ox;<a name="line.32205"></a>
+<span class="sourceLineNo">32206</span>                                        }<a name="line.32206"></a>
+<span class="sourceLineNo">32207</span>                                } else {<a name="line.32207"></a>
+<span class="sourceLineNo">32208</span>                                        while (it.hasNext()) {<a name="line.32208"></a>
+<span class="sourceLineNo">32209</span>                                                final long ix = it.aLong;<a name="line.32209"></a>
+<span class="sourceLineNo">32210</span>                                                int ox;<a name="line.32210"></a>
+<span class="sourceLineNo">32211</span>                                                ox = (int) toLong(ix);<a name="line.32211"></a>
+<span class="sourceLineNo">32212</span>                                                oai32data[it.oIndex] = ox;<a name="line.32212"></a>
+<span class="sourceLineNo">32213</span>                                        }<a name="line.32213"></a>
+<span class="sourceLineNo">32214</span>                                }<a name="line.32214"></a>
+<span class="sourceLineNo">32215</span>                        } else if (as == 1) {<a name="line.32215"></a>
+<span class="sourceLineNo">32216</span>                                if (it.isOutputDouble()) {<a name="line.32216"></a>
+<span class="sourceLineNo">32217</span>                                        while (it.hasNext()) {<a name="line.32217"></a>
+<span class="sourceLineNo">32218</span>                                                final double ix = it.aDouble;<a name="line.32218"></a>
+<span class="sourceLineNo">32219</span>                                                int ox;<a name="line.32219"></a>
+<span class="sourceLineNo">32220</span>                                                ox = (int) toLong(ix);<a name="line.32220"></a>
+<span class="sourceLineNo">32221</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32221"></a>
+<span class="sourceLineNo">32222</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.32222"></a>
+<span class="sourceLineNo">32223</span>                                                }<a name="line.32223"></a>
+<span class="sourceLineNo">32224</span>                                        }<a name="line.32224"></a>
+<span class="sourceLineNo">32225</span>                                } else {<a name="line.32225"></a>
+<span class="sourceLineNo">32226</span>                                        while (it.hasNext()) {<a name="line.32226"></a>
+<span class="sourceLineNo">32227</span>                                                final long ix = it.aLong;<a name="line.32227"></a>
+<span class="sourceLineNo">32228</span>                                                int ox;<a name="line.32228"></a>
+<span class="sourceLineNo">32229</span>                                                ox = (int) toLong(ix);<a name="line.32229"></a>
+<span class="sourceLineNo">32230</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32230"></a>
+<span class="sourceLineNo">32231</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.32231"></a>
+<span class="sourceLineNo">32232</span>                                                }<a name="line.32232"></a>
+<span class="sourceLineNo">32233</span>                                        }<a name="line.32233"></a>
+<span class="sourceLineNo">32234</span>                                }<a name="line.32234"></a>
+<span class="sourceLineNo">32235</span>                        } else {<a name="line.32235"></a>
+<span class="sourceLineNo">32236</span>                                if (it.isOutputDouble()) {<a name="line.32236"></a>
+<span class="sourceLineNo">32237</span>                                        while (it.hasNext()) {<a name="line.32237"></a>
+<span class="sourceLineNo">32238</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32238"></a>
+<span class="sourceLineNo">32239</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.32239"></a>
+<span class="sourceLineNo">32240</span>                                                        int ox;<a name="line.32240"></a>
+<span class="sourceLineNo">32241</span>                                                        ox = (int) toLong(ix);<a name="line.32241"></a>
+<span class="sourceLineNo">32242</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.32242"></a>
+<span class="sourceLineNo">32243</span>                                                }<a name="line.32243"></a>
+<span class="sourceLineNo">32244</span>                                        }<a name="line.32244"></a>
+<span class="sourceLineNo">32245</span>                                } else {<a name="line.32245"></a>
+<span class="sourceLineNo">32246</span>                                        while (it.hasNext()) {<a name="line.32246"></a>
+<span class="sourceLineNo">32247</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32247"></a>
+<span class="sourceLineNo">32248</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.32248"></a>
+<span class="sourceLineNo">32249</span>                                                        int ox;<a name="line.32249"></a>
+<span class="sourceLineNo">32250</span>                                                        ox = (int) toLong(ix);<a name="line.32250"></a>
+<span class="sourceLineNo">32251</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.32251"></a>
+<span class="sourceLineNo">32252</span>                                                }<a name="line.32252"></a>
+<span class="sourceLineNo">32253</span>                                        }<a name="line.32253"></a>
+<span class="sourceLineNo">32254</span>                                }<a name="line.32254"></a>
+<span class="sourceLineNo">32255</span>                        }<a name="line.32255"></a>
+<span class="sourceLineNo">32256</span>                        break;<a name="line.32256"></a>
+<span class="sourceLineNo">32257</span>                case Dataset.FLOAT32:<a name="line.32257"></a>
+<span class="sourceLineNo">32258</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.32258"></a>
+<span class="sourceLineNo">32259</span>                        if (it.isOutputDouble()) {<a name="line.32259"></a>
+<span class="sourceLineNo">32260</span>                                while (it.hasNext()) {<a name="line.32260"></a>
+<span class="sourceLineNo">32261</span>                                        final double ix = it.aDouble;<a name="line.32261"></a>
+<span class="sourceLineNo">32262</span>                                        float ox;<a name="line.32262"></a>
+<span class="sourceLineNo">32263</span>                                        ox = (float) (toLong(ix));<a name="line.32263"></a>
+<span class="sourceLineNo">32264</span>                                        of32data[it.oIndex] = ox;<a name="line.32264"></a>
+<span class="sourceLineNo">32265</span>                                }<a name="line.32265"></a>
+<span class="sourceLineNo">32266</span>                        } else {<a name="line.32266"></a>
+<span class="sourceLineNo">32267</span>                                while (it.hasNext()) {<a name="line.32267"></a>
+<span class="sourceLineNo">32268</span>                                        final long ix = it.aLong;<a name="line.32268"></a>
+<span class="sourceLineNo">32269</span>                                        float ox;<a name="line.32269"></a>
+<span class="sourceLineNo">32270</span>                                        ox = (toLong(ix));<a name="line.32270"></a>
+<span class="sourceLineNo">32271</span>                                        of32data[it.oIndex] = ox;<a name="line.32271"></a>
+<span class="sourceLineNo">32272</span>                                }<a name="line.32272"></a>
+<span class="sourceLineNo">32273</span>                        }<a name="line.32273"></a>
+<span class="sourceLineNo">32274</span>                        break;<a name="line.32274"></a>
+<span class="sourceLineNo">32275</span>                case Dataset.FLOAT64:<a name="line.32275"></a>
+<span class="sourceLineNo">32276</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.32276"></a>
+<span class="sourceLineNo">32277</span>                        if (it.isOutputDouble()) {<a name="line.32277"></a>
+<span class="sourceLineNo">32278</span>                                while (it.hasNext()) {<a name="line.32278"></a>
+<span class="sourceLineNo">32279</span>                                        final double ix = it.aDouble;<a name="line.32279"></a>
+<span class="sourceLineNo">32280</span>                                        double ox;<a name="line.32280"></a>
+<span class="sourceLineNo">32281</span>                                        ox = (toLong(ix));<a name="line.32281"></a>
+<span class="sourceLineNo">32282</span>                                        of64data[it.oIndex] = ox;<a name="line.32282"></a>
+<span class="sourceLineNo">32283</span>                                }<a name="line.32283"></a>
+<span class="sourceLineNo">32284</span>                        } else {<a name="line.32284"></a>
+<span class="sourceLineNo">32285</span>                                while (it.hasNext()) {<a name="line.32285"></a>
+<span class="sourceLineNo">32286</span>                                        final long ix = it.aLong;<a name="line.32286"></a>
+<span class="sourceLineNo">32287</span>                                        double ox;<a name="line.32287"></a>
+<span class="sourceLineNo">32288</span>                                        ox = (toLong(ix));<a name="line.32288"></a>
+<span class="sourceLineNo">32289</span>                                        of64data[it.oIndex] = ox;<a name="line.32289"></a>
+<span class="sourceLineNo">32290</span>                                }<a name="line.32290"></a>
+<span class="sourceLineNo">32291</span>                        }<a name="line.32291"></a>
+<span class="sourceLineNo">32292</span>                        break;<a name="line.32292"></a>
+<span class="sourceLineNo">32293</span>                case Dataset.ARRAYFLOAT32:<a name="line.32293"></a>
+<span class="sourceLineNo">32294</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.32294"></a>
+<span class="sourceLineNo">32295</span>                        if (is == 1) {<a name="line.32295"></a>
+<span class="sourceLineNo">32296</span>                                if (it.isOutputDouble()) {<a name="line.32296"></a>
+<span class="sourceLineNo">32297</span>                                        while (it.hasNext()) {<a name="line.32297"></a>
+<span class="sourceLineNo">32298</span>                                                final double ix = it.aDouble;<a name="line.32298"></a>
+<span class="sourceLineNo">32299</span>                                                float ox;<a name="line.32299"></a>
+<span class="sourceLineNo">32300</span>                                                ox = (float) (toLong(ix));<a name="line.32300"></a>
+<span class="sourceLineNo">32301</span>                                                oaf32data[it.oIndex] = ox;<a name="line.32301"></a>
+<span class="sourceLineNo">32302</span>                                        }<a name="line.32302"></a>
+<span class="sourceLineNo">32303</span>                                } else {<a name="line.32303"></a>
+<span class="sourceLineNo">32304</span>                                        while (it.hasNext()) {<a name="line.32304"></a>
+<span class="sourceLineNo">32305</span>                                                final long ix = it.aLong;<a name="line.32305"></a>
+<span class="sourceLineNo">32306</span>                                                float ox;<a name="line.32306"></a>
+<span class="sourceLineNo">32307</span>                                                ox = (toLong(ix));<a name="line.32307"></a>
+<span class="sourceLineNo">32308</span>                                                oaf32data[it.oIndex] = ox;<a name="line.32308"></a>
+<span class="sourceLineNo">32309</span>                                        }<a name="line.32309"></a>
+<span class="sourceLineNo">32310</span>                                }<a name="line.32310"></a>
+<span class="sourceLineNo">32311</span>                        } else if (as == 1) {<a name="line.32311"></a>
+<span class="sourceLineNo">32312</span>                                if (it.isOutputDouble()) {<a name="line.32312"></a>
+<span class="sourceLineNo">32313</span>                                        while (it.hasNext()) {<a name="line.32313"></a>
+<span class="sourceLineNo">32314</span>                                                final double ix = it.aDouble;<a name="line.32314"></a>
+<span class="sourceLineNo">32315</span>                                                float ox;<a name="line.32315"></a>
+<span class="sourceLineNo">32316</span>                                                ox = (float) (toLong(ix));<a name="line.32316"></a>
+<span class="sourceLineNo">32317</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32317"></a>
+<span class="sourceLineNo">32318</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.32318"></a>
+<span class="sourceLineNo">32319</span>                                                }<a name="line.32319"></a>
+<span class="sourceLineNo">32320</span>                                        }<a name="line.32320"></a>
+<span class="sourceLineNo">32321</span>                                } else {<a name="line.32321"></a>
+<span class="sourceLineNo">32322</span>                                        while (it.hasNext()) {<a name="line.32322"></a>
+<span class="sourceLineNo">32323</span>                                                final long ix = it.aLong;<a name="line.32323"></a>
+<span class="sourceLineNo">32324</span>                                                float ox;<a name="line.32324"></a>
+<span class="sourceLineNo">32325</span>                                                ox = (toLong(ix));<a name="line.32325"></a>
+<span class="sourceLineNo">32326</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32326"></a>
+<span class="sourceLineNo">32327</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.32327"></a>
+<span class="sourceLineNo">32328</span>                                                }<a name="line.32328"></a>
+<span class="sourceLineNo">32329</span>                                        }<a name="line.32329"></a>
+<span class="sourceLineNo">32330</span>                                }<a name="line.32330"></a>
+<span class="sourceLineNo">32331</span>                        } else {<a name="line.32331"></a>
+<span class="sourceLineNo">32332</span>                                if (it.isOutputDouble()) {<a name="line.32332"></a>
+<span class="sourceLineNo">32333</span>                                        while (it.hasNext()) {<a name="line.32333"></a>
+<span class="sourceLineNo">32334</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32334"></a>
+<span class="sourceLineNo">32335</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.32335"></a>
+<span class="sourceLineNo">32336</span>                                                        float ox;<a name="line.32336"></a>
+<span class="sourceLineNo">32337</span>                                                        ox = (float) (toLong(ix));<a name="line.32337"></a>
+<span class="sourceLineNo">32338</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.32338"></a>
+<span class="sourceLineNo">32339</span>                                                }<a name="line.32339"></a>
+<span class="sourceLineNo">32340</span>                                        }<a name="line.32340"></a>
+<span class="sourceLineNo">32341</span>                                } else {<a name="line.32341"></a>
+<span class="sourceLineNo">32342</span>                                        while (it.hasNext()) {<a name="line.32342"></a>
+<span class="sourceLineNo">32343</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32343"></a>
+<span class="sourceLineNo">32344</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.32344"></a>
+<span class="sourceLineNo">32345</span>                                                        float ox;<a name="line.32345"></a>
+<span class="sourceLineNo">32346</span>                                                        ox = (toLong(ix));<a name="line.32346"></a>
+<span class="sourceLineNo">32347</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.32347"></a>
+<span class="sourceLineNo">32348</span>                                                }<a name="line.32348"></a>
+<span class="sourceLineNo">32349</span>                                        }<a name="line.32349"></a>
+<span class="sourceLineNo">32350</span>                                }<a name="line.32350"></a>
+<span class="sourceLineNo">32351</span>                        }<a name="line.32351"></a>
+<span class="sourceLineNo">32352</span>                        break;<a name="line.32352"></a>
+<span class="sourceLineNo">32353</span>                case Dataset.ARRAYFLOAT64:<a name="line.32353"></a>
+<span class="sourceLineNo">32354</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.32354"></a>
+<span class="sourceLineNo">32355</span>                        if (is == 1) {<a name="line.32355"></a>
+<span class="sourceLineNo">32356</span>                                if (it.isOutputDouble()) {<a name="line.32356"></a>
+<span class="sourceLineNo">32357</span>                                        while (it.hasNext()) {<a name="line.32357"></a>
+<span class="sourceLineNo">32358</span>                                                final double ix = it.aDouble;<a name="line.32358"></a>
+<span class="sourceLineNo">32359</span>                                                double ox;<a name="line.32359"></a>
+<span class="sourceLineNo">32360</span>                                                ox = (toLong(ix));<a name="line.32360"></a>
+<span class="sourceLineNo">32361</span>                                                oaf64data[it.oIndex] = ox;<a name="line.32361"></a>
+<span class="sourceLineNo">32362</span>                                        }<a name="line.32362"></a>
+<span class="sourceLineNo">32363</span>                                } else {<a name="line.32363"></a>
+<span class="sourceLineNo">32364</span>                                        while (it.hasNext()) {<a name="line.32364"></a>
+<span class="sourceLineNo">32365</span>                                                final long ix = it.aLong;<a name="line.32365"></a>
+<span class="sourceLineNo">32366</span>                                                double ox;<a name="line.32366"></a>
+<span class="sourceLineNo">32367</span>                                                ox = (toLong(ix));<a name="line.32367"></a>
+<span class="sourceLineNo">32368</span>                                                oaf64data[it.oIndex] = ox;<a name="line.32368"></a>
+<span class="sourceLineNo">32369</span>                                        }<a name="line.32369"></a>
+<span class="sourceLineNo">32370</span>                                }<a name="line.32370"></a>
+<span class="sourceLineNo">32371</span>                        } else if (as == 1) {<a name="line.32371"></a>
+<span class="sourceLineNo">32372</span>                                if (it.isOutputDouble()) {<a name="line.32372"></a>
+<span class="sourceLineNo">32373</span>                                        while (it.hasNext()) {<a name="line.32373"></a>
+<span class="sourceLineNo">32374</span>                                                final double ix = it.aDouble;<a name="line.32374"></a>
+<span class="sourceLineNo">32375</span>                                                double ox;<a name="line.32375"></a>
+<span class="sourceLineNo">32376</span>                                                ox = (toLong(ix));<a name="line.32376"></a>
+<span class="sourceLineNo">32377</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32377"></a>
+<span class="sourceLineNo">32378</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.32378"></a>
+<span class="sourceLineNo">32379</span>                                                }<a name="line.32379"></a>
+<span class="sourceLineNo">32380</span>                                        }<a name="line.32380"></a>
+<span class="sourceLineNo">32381</span>                                } else {<a name="line.32381"></a>
+<span class="sourceLineNo">32382</span>                                        while (it.hasNext()) {<a name="line.32382"></a>
+<span class="sourceLineNo">32383</span>                                                final long ix = it.aLong;<a name="line.32383"></a>
+<span class="sourceLineNo">32384</span>                                                double ox;<a name="line.32384"></a>
+<span class="sourceLineNo">32385</span>                                                ox = (toLong(ix));<a name="line.32385"></a>
+<span class="sourceLineNo">32386</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32386"></a>
+<span class="sourceLineNo">32387</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.32387"></a>
+<span class="sourceLineNo">32388</span>                                                }<a name="line.32388"></a>
+<span class="sourceLineNo">32389</span>                                        }<a name="line.32389"></a>
+<span class="sourceLineNo">32390</span>                                }<a name="line.32390"></a>
+<span class="sourceLineNo">32391</span>                        } else {<a name="line.32391"></a>
+<span class="sourceLineNo">32392</span>                                if (it.isOutputDouble()) {<a name="line.32392"></a>
+<span class="sourceLineNo">32393</span>                                        while (it.hasNext()) {<a name="line.32393"></a>
+<span class="sourceLineNo">32394</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32394"></a>
+<span class="sourceLineNo">32395</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.32395"></a>
+<span class="sourceLineNo">32396</span>                                                        double ox;<a name="line.32396"></a>
+<span class="sourceLineNo">32397</span>                                                        ox = (toLong(ix));<a name="line.32397"></a>
+<span class="sourceLineNo">32398</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.32398"></a>
+<span class="sourceLineNo">32399</span>                                                }<a name="line.32399"></a>
+<span class="sourceLineNo">32400</span>                                        }<a name="line.32400"></a>
+<span class="sourceLineNo">32401</span>                                } else {<a name="line.32401"></a>
+<span class="sourceLineNo">32402</span>                                        while (it.hasNext()) {<a name="line.32402"></a>
+<span class="sourceLineNo">32403</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32403"></a>
+<span class="sourceLineNo">32404</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.32404"></a>
+<span class="sourceLineNo">32405</span>                                                        double ox;<a name="line.32405"></a>
+<span class="sourceLineNo">32406</span>                                                        ox = (toLong(ix));<a name="line.32406"></a>
+<span class="sourceLineNo">32407</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.32407"></a>
+<span class="sourceLineNo">32408</span>                                                }<a name="line.32408"></a>
+<span class="sourceLineNo">32409</span>                                        }<a name="line.32409"></a>
+<span class="sourceLineNo">32410</span>                                }<a name="line.32410"></a>
+<span class="sourceLineNo">32411</span>                        }<a name="line.32411"></a>
+<span class="sourceLineNo">32412</span>                        break;<a name="line.32412"></a>
+<span class="sourceLineNo">32413</span>                case Dataset.COMPLEX64:<a name="line.32413"></a>
+<span class="sourceLineNo">32414</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.32414"></a>
+<span class="sourceLineNo">32415</span>                        if (!da.isComplex()) {<a name="line.32415"></a>
+<span class="sourceLineNo">32416</span>                                if (it.isOutputDouble()) {<a name="line.32416"></a>
+<span class="sourceLineNo">32417</span>                                        final double iy = 0;<a name="line.32417"></a>
+<span class="sourceLineNo">32418</span>                                        while (it.hasNext()) {<a name="line.32418"></a>
+<span class="sourceLineNo">32419</span>                                                final double ix = it.aDouble;<a name="line.32419"></a>
+<span class="sourceLineNo">32420</span>                                                float ox;<a name="line.32420"></a>
+<span class="sourceLineNo">32421</span>                                                float oy;<a name="line.32421"></a>
+<span class="sourceLineNo">32422</span>                                                ox = (float) (toLong(ix));<a name="line.32422"></a>
+<span class="sourceLineNo">32423</span>                                                oy = (float) (toLong(iy));<a name="line.32423"></a>
+<span class="sourceLineNo">32424</span>                                                oc64data[it.oIndex] = ox;<a name="line.32424"></a>
+<span class="sourceLineNo">32425</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.32425"></a>
+<span class="sourceLineNo">32426</span>                                        }<a name="line.32426"></a>
+<span class="sourceLineNo">32427</span>                                } else {<a name="line.32427"></a>
+<span class="sourceLineNo">32428</span>                                        final long iy = 0;<a name="line.32428"></a>
+<span class="sourceLineNo">32429</span>                                        while (it.hasNext()) {<a name="line.32429"></a>
+<span class="sourceLineNo">32430</span>                                                final long ix = it.aLong;<a name="line.32430"></a>
+<span class="sourceLineNo">32431</span>                                                float ox;<a name="line.32431"></a>
+<span class="sourceLineNo">32432</span>                                                float oy;<a name="line.32432"></a>
+<span class="sourceLineNo">32433</span>                                                ox = (float) toLong(toLong(ix));<a name="line.32433"></a>
+<span class="sourceLineNo">32434</span>                                                oy = (float) toLong(toLong(iy));<a name="line.32434"></a>
+<span class="sourceLineNo">32435</span>                                                oc64data[it.oIndex] = ox;<a name="line.32435"></a>
+<span class="sourceLineNo">32436</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.32436"></a>
+<span class="sourceLineNo">32437</span>                                        }<a name="line.32437"></a>
+<span class="sourceLineNo">32438</span>                                }<a name="line.32438"></a>
+<span class="sourceLineNo">32439</span>                        } else {<a name="line.32439"></a>
+<span class="sourceLineNo">32440</span>                                while (it.hasNext()) {<a name="line.32440"></a>
+<span class="sourceLineNo">32441</span>                                        final double ix = it.aDouble;<a name="line.32441"></a>
+<span class="sourceLineNo">32442</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.32442"></a>
+<span class="sourceLineNo">32443</span>                                        float ox;<a name="line.32443"></a>
+<span class="sourceLineNo">32444</span>                                        float oy;<a name="line.32444"></a>
+<span class="sourceLineNo">32445</span>                                        ox = (float) (toLong(ix));<a name="line.32445"></a>
+<span class="sourceLineNo">32446</span>                                        oy = (float) (toLong(iy));<a name="line.32446"></a>
+<span class="sourceLineNo">32447</span>                                        oc64data[it.oIndex] = ox;<a name="line.32447"></a>
+<span class="sourceLineNo">32448</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.32448"></a>
+<span class="sourceLineNo">32449</span>                                }<a name="line.32449"></a>
+<span class="sourceLineNo">32450</span>                        }<a name="line.32450"></a>
+<span class="sourceLineNo">32451</span>                        break;<a name="line.32451"></a>
+<span class="sourceLineNo">32452</span>                case Dataset.COMPLEX128:<a name="line.32452"></a>
+<span class="sourceLineNo">32453</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.32453"></a>
+<span class="sourceLineNo">32454</span>                        if (!da.isComplex()) {<a name="line.32454"></a>
+<span class="sourceLineNo">32455</span>                                if (it.isOutputDouble()) {<a name="line.32455"></a>
+<span class="sourceLineNo">32456</span>                                        final double iy = 0;<a name="line.32456"></a>
+<span class="sourceLineNo">32457</span>                                        while (it.hasNext()) {<a name="line.32457"></a>
+<span class="sourceLineNo">32458</span>                                                final double ix = it.aDouble;<a name="line.32458"></a>
+<span class="sourceLineNo">32459</span>                                                double ox;<a name="line.32459"></a>
+<span class="sourceLineNo">32460</span>                                                double oy;<a name="line.32460"></a>
+<span class="sourceLineNo">32461</span>                                                ox = (toLong(ix));<a name="line.32461"></a>
+<span class="sourceLineNo">32462</span>                                                oy = (toLong(iy));<a name="line.32462"></a>
+<span class="sourceLineNo">32463</span>                                                oc128data[it.oIndex] = ox;<a name="line.32463"></a>
+<span class="sourceLineNo">32464</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.32464"></a>
+<span class="sourceLineNo">32465</span>                                        }<a name="line.32465"></a>
+<span class="sourceLineNo">32466</span>                                } else {<a name="line.32466"></a>
+<span class="sourceLineNo">32467</span>                                        final long iy = 0;<a name="line.32467"></a>
+<span class="sourceLineNo">32468</span>                                        while (it.hasNext()) {<a name="line.32468"></a>
+<span class="sourceLineNo">32469</span>                                                final long ix = it.aLong;<a name="line.32469"></a>
+<span class="sourceLineNo">32470</span>                                                double ox;<a name="line.32470"></a>
+<span class="sourceLineNo">32471</span>                                                double oy;<a name="line.32471"></a>
+<span class="sourceLineNo">32472</span>                                                ox = (toLong(ix));<a name="line.32472"></a>
+<span class="sourceLineNo">32473</span>                                                oy = (toLong(iy));<a name="line.32473"></a>
+<span class="sourceLineNo">32474</span>                                                oc128data[it.oIndex] = ox;<a name="line.32474"></a>
+<span class="sourceLineNo">32475</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.32475"></a>
+<span class="sourceLineNo">32476</span>                                        }<a name="line.32476"></a>
+<span class="sourceLineNo">32477</span>                                }<a name="line.32477"></a>
+<span class="sourceLineNo">32478</span>                        } else {<a name="line.32478"></a>
+<span class="sourceLineNo">32479</span>                                while (it.hasNext()) {<a name="line.32479"></a>
+<span class="sourceLineNo">32480</span>                                        final double ix = it.aDouble;<a name="line.32480"></a>
+<span class="sourceLineNo">32481</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.32481"></a>
+<span class="sourceLineNo">32482</span>                                        double ox;<a name="line.32482"></a>
+<span class="sourceLineNo">32483</span>                                        double oy;<a name="line.32483"></a>
+<span class="sourceLineNo">32484</span>                                        ox = (toLong(ix));<a name="line.32484"></a>
+<span class="sourceLineNo">32485</span>                                        oy = (toLong(iy));<a name="line.32485"></a>
+<span class="sourceLineNo">32486</span>                                        oc128data[it.oIndex] = ox;<a name="line.32486"></a>
+<span class="sourceLineNo">32487</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.32487"></a>
+<span class="sourceLineNo">32488</span>                                }<a name="line.32488"></a>
+<span class="sourceLineNo">32489</span>                        }<a name="line.32489"></a>
+<span class="sourceLineNo">32490</span>                        break;<a name="line.32490"></a>
+<span class="sourceLineNo">32491</span>                default:<a name="line.32491"></a>
+<span class="sourceLineNo">32492</span>                        throw new IllegalArgumentException("truncate supports integer, compound integer, real, compound real, complex datasets only");<a name="line.32492"></a>
+<span class="sourceLineNo">32493</span>                }<a name="line.32493"></a>
+<span class="sourceLineNo">32494</span><a name="line.32494"></a>
+<span class="sourceLineNo">32495</span>                addFunctionName(result, "truncate");<a name="line.32495"></a>
+<span class="sourceLineNo">32496</span>                return result;<a name="line.32496"></a>
+<span class="sourceLineNo">32497</span>        }<a name="line.32497"></a>
+<span class="sourceLineNo">32498</span><a name="line.32498"></a>
+<span class="sourceLineNo">32499</span>        /**<a name="line.32499"></a>
+<span class="sourceLineNo">32500</span>         * toDegrees - convert to degrees<a name="line.32500"></a>
+<span class="sourceLineNo">32501</span>         * @param a<a name="line.32501"></a>
+<span class="sourceLineNo">32502</span>         * @return dataset<a name="line.32502"></a>
+<span class="sourceLineNo">32503</span>         */<a name="line.32503"></a>
+<span class="sourceLineNo">32504</span>        public static Dataset toDegrees(final Object a) {<a name="line.32504"></a>
+<span class="sourceLineNo">32505</span>                return toDegrees(a, null);<a name="line.32505"></a>
+<span class="sourceLineNo">32506</span>        }<a name="line.32506"></a>
+<span class="sourceLineNo">32507</span><a name="line.32507"></a>
+<span class="sourceLineNo">32508</span>        /**<a name="line.32508"></a>
+<span class="sourceLineNo">32509</span>         * toDegrees - convert to degrees<a name="line.32509"></a>
+<span class="sourceLineNo">32510</span>         * @param a<a name="line.32510"></a>
+<span class="sourceLineNo">32511</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.32511"></a>
+<span class="sourceLineNo">32512</span>         * @return dataset<a name="line.32512"></a>
+<span class="sourceLineNo">32513</span>         */<a name="line.32513"></a>
+<span class="sourceLineNo">32514</span>        public static Dataset toDegrees(final Object a, final Dataset o) {<a name="line.32514"></a>
+<span class="sourceLineNo">32515</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.32515"></a>
+<span class="sourceLineNo">32516</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.32516"></a>
+<span class="sourceLineNo">32517</span>                final Dataset result = it.getOutput();<a name="line.32517"></a>
+<span class="sourceLineNo">32518</span>                if (!result.isComplex()) {<a name="line.32518"></a>
+<span class="sourceLineNo">32519</span>                        if (da.isComplex()) {<a name="line.32519"></a>
+<span class="sourceLineNo">32520</span>                                da = da.getRealView();<a name="line.32520"></a>
+<span class="sourceLineNo">32521</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.32521"></a>
+<span class="sourceLineNo">32522</span>                        }<a name="line.32522"></a>
+<span class="sourceLineNo">32523</span>                }<a name="line.32523"></a>
+<span class="sourceLineNo">32524</span>                final int is = result.getElementsPerItem();<a name="line.32524"></a>
+<span class="sourceLineNo">32525</span>                final int as = da.getElementsPerItem();<a name="line.32525"></a>
+<span class="sourceLineNo">32526</span>                final int dt = result.getDType();<a name="line.32526"></a>
+<span class="sourceLineNo">32527</span><a name="line.32527"></a>
+<span class="sourceLineNo">32528</span>                switch(dt) {<a name="line.32528"></a>
+<span class="sourceLineNo">32529</span>                case Dataset.INT8:<a name="line.32529"></a>
+<span class="sourceLineNo">32530</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.32530"></a>
+<span class="sourceLineNo">32531</span>                        if (it.isOutputDouble()) {<a name="line.32531"></a>
+<span class="sourceLineNo">32532</span>                                while (it.hasNext()) {<a name="line.32532"></a>
+<span class="sourceLineNo">32533</span>                                        final double ix = it.aDouble;<a name="line.32533"></a>
+<span class="sourceLineNo">32534</span>                                        byte ox;<a name="line.32534"></a>
+<span class="sourceLineNo">32535</span>                                        ox = (byte) toLong(Math.toDegrees(ix));<a name="line.32535"></a>
+<span class="sourceLineNo">32536</span>                                        oi8data[it.oIndex] = ox;<a name="line.32536"></a>
+<span class="sourceLineNo">32537</span>                                }<a name="line.32537"></a>
+<span class="sourceLineNo">32538</span>                        } else {<a name="line.32538"></a>
+<span class="sourceLineNo">32539</span>                                while (it.hasNext()) {<a name="line.32539"></a>
+<span class="sourceLineNo">32540</span>                                        final long ix = it.aLong;<a name="line.32540"></a>
+<span class="sourceLineNo">32541</span>                                        byte ox;<a name="line.32541"></a>
+<span class="sourceLineNo">32542</span>                                        ox = (byte) toLong(Math.toDegrees(ix));<a name="line.32542"></a>
+<span class="sourceLineNo">32543</span>                                        oi8data[it.oIndex] = ox;<a name="line.32543"></a>
+<span class="sourceLineNo">32544</span>                                }<a name="line.32544"></a>
+<span class="sourceLineNo">32545</span>                        }<a name="line.32545"></a>
+<span class="sourceLineNo">32546</span>                        break;<a name="line.32546"></a>
+<span class="sourceLineNo">32547</span>                case Dataset.INT16:<a name="line.32547"></a>
+<span class="sourceLineNo">32548</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.32548"></a>
+<span class="sourceLineNo">32549</span>                        if (it.isOutputDouble()) {<a name="line.32549"></a>
+<span class="sourceLineNo">32550</span>                                while (it.hasNext()) {<a name="line.32550"></a>
+<span class="sourceLineNo">32551</span>                                        final double ix = it.aDouble;<a name="line.32551"></a>
+<span class="sourceLineNo">32552</span>                                        short ox;<a name="line.32552"></a>
+<span class="sourceLineNo">32553</span>                                        ox = (short) toLong(Math.toDegrees(ix));<a name="line.32553"></a>
+<span class="sourceLineNo">32554</span>                                        oi16data[it.oIndex] = ox;<a name="line.32554"></a>
+<span class="sourceLineNo">32555</span>                                }<a name="line.32555"></a>
+<span class="sourceLineNo">32556</span>                        } else {<a name="line.32556"></a>
+<span class="sourceLineNo">32557</span>                                while (it.hasNext()) {<a name="line.32557"></a>
+<span class="sourceLineNo">32558</span>                                        final long ix = it.aLong;<a name="line.32558"></a>
+<span class="sourceLineNo">32559</span>                                        short ox;<a name="line.32559"></a>
+<span class="sourceLineNo">32560</span>                                        ox = (short) toLong(Math.toDegrees(ix));<a name="line.32560"></a>
+<span class="sourceLineNo">32561</span>                                        oi16data[it.oIndex] = ox;<a name="line.32561"></a>
+<span class="sourceLineNo">32562</span>                                }<a name="line.32562"></a>
+<span class="sourceLineNo">32563</span>                        }<a name="line.32563"></a>
+<span class="sourceLineNo">32564</span>                        break;<a name="line.32564"></a>
+<span class="sourceLineNo">32565</span>                case Dataset.INT64:<a name="line.32565"></a>
+<span class="sourceLineNo">32566</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.32566"></a>
+<span class="sourceLineNo">32567</span>                        if (it.isOutputDouble()) {<a name="line.32567"></a>
+<span class="sourceLineNo">32568</span>                                while (it.hasNext()) {<a name="line.32568"></a>
+<span class="sourceLineNo">32569</span>                                        final double ix = it.aDouble;<a name="line.32569"></a>
+<span class="sourceLineNo">32570</span>                                        long ox;<a name="line.32570"></a>
+<span class="sourceLineNo">32571</span>                                        ox = toLong(Math.toDegrees(ix));<a name="line.32571"></a>
+<span class="sourceLineNo">32572</span>                                        oi64data[it.oIndex] = ox;<a name="line.32572"></a>
+<span class="sourceLineNo">32573</span>                                }<a name="line.32573"></a>
+<span class="sourceLineNo">32574</span>                        } else {<a name="line.32574"></a>
+<span class="sourceLineNo">32575</span>                                while (it.hasNext()) {<a name="line.32575"></a>
+<span class="sourceLineNo">32576</span>                                        final long ix = it.aLong;<a name="line.32576"></a>
+<span class="sourceLineNo">32577</span>                                        long ox;<a name="line.32577"></a>
+<span class="sourceLineNo">32578</span>                                        ox = toLong(Math.toDegrees(ix));<a name="line.32578"></a>
+<span class="sourceLineNo">32579</span>                                        oi64data[it.oIndex] = ox;<a name="line.32579"></a>
+<span class="sourceLineNo">32580</span>                                }<a name="line.32580"></a>
+<span class="sourceLineNo">32581</span>                        }<a name="line.32581"></a>
+<span class="sourceLineNo">32582</span>                        break;<a name="line.32582"></a>
+<span class="sourceLineNo">32583</span>                case Dataset.INT32:<a name="line.32583"></a>
+<span class="sourceLineNo">32584</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.32584"></a>
+<span class="sourceLineNo">32585</span>                        if (it.isOutputDouble()) {<a name="line.32585"></a>
+<span class="sourceLineNo">32586</span>                                while (it.hasNext()) {<a name="line.32586"></a>
+<span class="sourceLineNo">32587</span>                                        final double ix = it.aDouble;<a name="line.32587"></a>
+<span class="sourceLineNo">32588</span>                                        int ox;<a name="line.32588"></a>
+<span class="sourceLineNo">32589</span>                                        ox = (int) toLong(Math.toDegrees(ix));<a name="line.32589"></a>
+<span class="sourceLineNo">32590</span>                                        oi32data[it.oIndex] = ox;<a name="line.32590"></a>
+<span class="sourceLineNo">32591</span>                                }<a name="line.32591"></a>
+<span class="sourceLineNo">32592</span>                        } else {<a name="line.32592"></a>
+<span class="sourceLineNo">32593</span>                                while (it.hasNext()) {<a name="line.32593"></a>
+<span class="sourceLineNo">32594</span>                                        final long ix = it.aLong;<a name="line.32594"></a>
+<span class="sourceLineNo">32595</span>                                        int ox;<a name="line.32595"></a>
+<span class="sourceLineNo">32596</span>                                        ox = (int) toLong(Math.toDegrees(ix));<a name="line.32596"></a>
+<span class="sourceLineNo">32597</span>                                        oi32data[it.oIndex] = ox;<a name="line.32597"></a>
+<span class="sourceLineNo">32598</span>                                }<a name="line.32598"></a>
+<span class="sourceLineNo">32599</span>                        }<a name="line.32599"></a>
+<span class="sourceLineNo">32600</span>                        break;<a name="line.32600"></a>
+<span class="sourceLineNo">32601</span>                case Dataset.ARRAYINT8:<a name="line.32601"></a>
+<span class="sourceLineNo">32602</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.32602"></a>
+<span class="sourceLineNo">32603</span>                        if (is == 1) {<a name="line.32603"></a>
+<span class="sourceLineNo">32604</span>                                if (it.isOutputDouble()) {<a name="line.32604"></a>
+<span class="sourceLineNo">32605</span>                                        while (it.hasNext()) {<a name="line.32605"></a>
+<span class="sourceLineNo">32606</span>                                                final double ix = it.aDouble;<a name="line.32606"></a>
+<span class="sourceLineNo">32607</span>                                                byte ox;<a name="line.32607"></a>
+<span class="sourceLineNo">32608</span>                                                ox = (byte) toLong(Math.toDegrees(ix));<a name="line.32608"></a>
+<span class="sourceLineNo">32609</span>                                                oai8data[it.oIndex] = ox;<a name="line.32609"></a>
+<span class="sourceLineNo">32610</span>                                        }<a name="line.32610"></a>
+<span class="sourceLineNo">32611</span>                                } else {<a name="line.32611"></a>
+<span class="sourceLineNo">32612</span>                                        while (it.hasNext()) {<a name="line.32612"></a>
+<span class="sourceLineNo">32613</span>                                                final long ix = it.aLong;<a name="line.32613"></a>
+<span class="sourceLineNo">32614</span>                                                byte ox;<a name="line.32614"></a>
+<span class="sourceLineNo">32615</span>                                                ox = (byte) toLong(Math.toDegrees(ix));<a name="line.32615"></a>
+<span class="sourceLineNo">32616</span>                                                oai8data[it.oIndex] = ox;<a name="line.32616"></a>
+<span class="sourceLineNo">32617</span>                                        }<a name="line.32617"></a>
+<span class="sourceLineNo">32618</span>                                }<a name="line.32618"></a>
+<span class="sourceLineNo">32619</span>                        } else if (as == 1) {<a name="line.32619"></a>
+<span class="sourceLineNo">32620</span>                                if (it.isOutputDouble()) {<a name="line.32620"></a>
+<span class="sourceLineNo">32621</span>                                        while (it.hasNext()) {<a name="line.32621"></a>
+<span class="sourceLineNo">32622</span>                                                final double ix = it.aDouble;<a name="line.32622"></a>
+<span class="sourceLineNo">32623</span>                                                byte ox;<a name="line.32623"></a>
+<span class="sourceLineNo">32624</span>                                                ox = (byte) toLong(Math.toDegrees(ix));<a name="line.32624"></a>
+<span class="sourceLineNo">32625</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32625"></a>
+<span class="sourceLineNo">32626</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.32626"></a>
+<span class="sourceLineNo">32627</span>                                                }<a name="line.32627"></a>
+<span class="sourceLineNo">32628</span>                                        }<a name="line.32628"></a>
+<span class="sourceLineNo">32629</span>                                } else {<a name="line.32629"></a>
+<span class="sourceLineNo">32630</span>                                        while (it.hasNext()) {<a name="line.32630"></a>
+<span class="sourceLineNo">32631</span>                                                final long ix = it.aLong;<a name="line.32631"></a>
+<span class="sourceLineNo">32632</span>                                                byte ox;<a name="line.32632"></a>
+<span class="sourceLineNo">32633</span>                                                ox = (byte) toLong(Math.toDegrees(ix));<a name="line.32633"></a>
+<span class="sourceLineNo">32634</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32634"></a>
+<span class="sourceLineNo">32635</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.32635"></a>
+<span class="sourceLineNo">32636</span>                                                }<a name="line.32636"></a>
+<span class="sourceLineNo">32637</span>                                        }<a name="line.32637"></a>
+<span class="sourceLineNo">32638</span>                                }<a name="line.32638"></a>
+<span class="sourceLineNo">32639</span>                        } else {<a name="line.32639"></a>
+<span class="sourceLineNo">32640</span>                                if (it.isOutputDouble()) {<a name="line.32640"></a>
+<span class="sourceLineNo">32641</span>                                        while (it.hasNext()) {<a name="line.32641"></a>
+<span class="sourceLineNo">32642</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32642"></a>
+<span class="sourceLineNo">32643</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.32643"></a>
+<span class="sourceLineNo">32644</span>                                                        byte ox;<a name="line.32644"></a>
+<span class="sourceLineNo">32645</span>                                                        ox = (byte) toLong(Math.toDegrees(ix));<a name="line.32645"></a>
+<span class="sourceLineNo">32646</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.32646"></a>
+<span class="sourceLineNo">32647</span>                                                }<a name="line.32647"></a>
+<span class="sourceLineNo">32648</span>                                        }<a name="line.32648"></a>
+<span class="sourceLineNo">32649</span>                                } else {<a name="line.32649"></a>
+<span class="sourceLineNo">32650</span>                                        while (it.hasNext()) {<a name="line.32650"></a>
+<span class="sourceLineNo">32651</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32651"></a>
+<span class="sourceLineNo">32652</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.32652"></a>
+<span class="sourceLineNo">32653</span>                                                        byte ox;<a name="line.32653"></a>
+<span class="sourceLineNo">32654</span>                                                        ox = (byte) toLong(Math.toDegrees(ix));<a name="line.32654"></a>
+<span class="sourceLineNo">32655</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.32655"></a>
+<span class="sourceLineNo">32656</span>                                                }<a name="line.32656"></a>
+<span class="sourceLineNo">32657</span>                                        }<a name="line.32657"></a>
+<span class="sourceLineNo">32658</span>                                }<a name="line.32658"></a>
+<span class="sourceLineNo">32659</span>                        }<a name="line.32659"></a>
+<span class="sourceLineNo">32660</span>                        break;<a name="line.32660"></a>
+<span class="sourceLineNo">32661</span>                case Dataset.ARRAYINT16:<a name="line.32661"></a>
+<span class="sourceLineNo">32662</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.32662"></a>
+<span class="sourceLineNo">32663</span>                        if (is == 1) {<a name="line.32663"></a>
+<span class="sourceLineNo">32664</span>                                if (it.isOutputDouble()) {<a name="line.32664"></a>
+<span class="sourceLineNo">32665</span>                                        while (it.hasNext()) {<a name="line.32665"></a>
+<span class="sourceLineNo">32666</span>                                                final double ix = it.aDouble;<a name="line.32666"></a>
+<span class="sourceLineNo">32667</span>                                                short ox;<a name="line.32667"></a>
+<span class="sourceLineNo">32668</span>                                                ox = (short) toLong(Math.toDegrees(ix));<a name="line.32668"></a>
+<span class="sourceLineNo">32669</span>                                                oai16data[it.oIndex] = ox;<a name="line.32669"></a>
+<span class="sourceLineNo">32670</span>                                        }<a name="line.32670"></a>
+<span class="sourceLineNo">32671</span>                                } else {<a name="line.32671"></a>
+<span class="sourceLineNo">32672</span>                                        while (it.hasNext()) {<a name="line.32672"></a>
+<span class="sourceLineNo">32673</span>                                                final long ix = it.aLong;<a name="line.32673"></a>
+<span class="sourceLineNo">32674</span>                                                short ox;<a name="line.32674"></a>
+<span class="sourceLineNo">32675</span>                                                ox = (short) toLong(Math.toDegrees(ix));<a name="line.32675"></a>
+<span class="sourceLineNo">32676</span>                                                oai16data[it.oIndex] = ox;<a name="line.32676"></a>
+<span class="sourceLineNo">32677</span>                                        }<a name="line.32677"></a>
+<span class="sourceLineNo">32678</span>                                }<a name="line.32678"></a>
+<span class="sourceLineNo">32679</span>                        } else if (as == 1) {<a name="line.32679"></a>
+<span class="sourceLineNo">32680</span>                                if (it.isOutputDouble()) {<a name="line.32680"></a>
+<span class="sourceLineNo">32681</span>                                        while (it.hasNext()) {<a name="line.32681"></a>
+<span class="sourceLineNo">32682</span>                                                final double ix = it.aDouble;<a name="line.32682"></a>
+<span class="sourceLineNo">32683</span>                                                short ox;<a name="line.32683"></a>
+<span class="sourceLineNo">32684</span>                                                ox = (short) toLong(Math.toDegrees(ix));<a name="line.32684"></a>
+<span class="sourceLineNo">32685</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32685"></a>
+<span class="sourceLineNo">32686</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.32686"></a>
+<span class="sourceLineNo">32687</span>                                                }<a name="line.32687"></a>
+<span class="sourceLineNo">32688</span>                                        }<a name="line.32688"></a>
+<span class="sourceLineNo">32689</span>                                } else {<a name="line.32689"></a>
+<span class="sourceLineNo">32690</span>                                        while (it.hasNext()) {<a name="line.32690"></a>
+<span class="sourceLineNo">32691</span>                                                final long ix = it.aLong;<a name="line.32691"></a>
+<span class="sourceLineNo">32692</span>                                                short ox;<a name="line.32692"></a>
+<span class="sourceLineNo">32693</span>                                                ox = (short) toLong(Math.toDegrees(ix));<a name="line.32693"></a>
+<span class="sourceLineNo">32694</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32694"></a>
+<span class="sourceLineNo">32695</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.32695"></a>
+<span class="sourceLineNo">32696</span>                                                }<a name="line.32696"></a>
+<span class="sourceLineNo">32697</span>                                        }<a name="line.32697"></a>
+<span class="sourceLineNo">32698</span>                                }<a name="line.32698"></a>
+<span class="sourceLineNo">32699</span>                        } else {<a name="line.32699"></a>
+<span class="sourceLineNo">32700</span>                                if (it.isOutputDouble()) {<a name="line.32700"></a>
+<span class="sourceLineNo">32701</span>                                        while (it.hasNext()) {<a name="line.32701"></a>
+<span class="sourceLineNo">32702</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32702"></a>
+<span class="sourceLineNo">32703</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.32703"></a>
+<span class="sourceLineNo">32704</span>                                                        short ox;<a name="line.32704"></a>
+<span class="sourceLineNo">32705</span>                                                        ox = (short) toLong(Math.toDegrees(ix));<a name="line.32705"></a>
+<span class="sourceLineNo">32706</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.32706"></a>
+<span class="sourceLineNo">32707</span>                                                }<a name="line.32707"></a>
+<span class="sourceLineNo">32708</span>                                        }<a name="line.32708"></a>
+<span class="sourceLineNo">32709</span>                                } else {<a name="line.32709"></a>
+<span class="sourceLineNo">32710</span>                                        while (it.hasNext()) {<a name="line.32710"></a>
+<span class="sourceLineNo">32711</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32711"></a>
+<span class="sourceLineNo">32712</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.32712"></a>
+<span class="sourceLineNo">32713</span>                                                        short ox;<a name="line.32713"></a>
+<span class="sourceLineNo">32714</span>                                                        ox = (short) toLong(Math.toDegrees(ix));<a name="line.32714"></a>
+<span class="sourceLineNo">32715</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.32715"></a>
+<span class="sourceLineNo">32716</span>                                                }<a name="line.32716"></a>
+<span class="sourceLineNo">32717</span>                                        }<a name="line.32717"></a>
+<span class="sourceLineNo">32718</span>                                }<a name="line.32718"></a>
+<span class="sourceLineNo">32719</span>                        }<a name="line.32719"></a>
+<span class="sourceLineNo">32720</span>                        break;<a name="line.32720"></a>
+<span class="sourceLineNo">32721</span>                case Dataset.ARRAYINT64:<a name="line.32721"></a>
+<span class="sourceLineNo">32722</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.32722"></a>
+<span class="sourceLineNo">32723</span>                        if (is == 1) {<a name="line.32723"></a>
+<span class="sourceLineNo">32724</span>                                if (it.isOutputDouble()) {<a name="line.32724"></a>
+<span class="sourceLineNo">32725</span>                                        while (it.hasNext()) {<a name="line.32725"></a>
+<span class="sourceLineNo">32726</span>                                                final double ix = it.aDouble;<a name="line.32726"></a>
+<span class="sourceLineNo">32727</span>                                                long ox;<a name="line.32727"></a>
+<span class="sourceLineNo">32728</span>                                                ox = toLong(Math.toDegrees(ix));<a name="line.32728"></a>
+<span class="sourceLineNo">32729</span>                                                oai64data[it.oIndex] = ox;<a name="line.32729"></a>
+<span class="sourceLineNo">32730</span>                                        }<a name="line.32730"></a>
+<span class="sourceLineNo">32731</span>                                } else {<a name="line.32731"></a>
+<span class="sourceLineNo">32732</span>                                        while (it.hasNext()) {<a name="line.32732"></a>
+<span class="sourceLineNo">32733</span>                                                final long ix = it.aLong;<a name="line.32733"></a>
+<span class="sourceLineNo">32734</span>                                                long ox;<a name="line.32734"></a>
+<span class="sourceLineNo">32735</span>                                                ox = toLong(Math.toDegrees(ix));<a name="line.32735"></a>
+<span class="sourceLineNo">32736</span>                                                oai64data[it.oIndex] = ox;<a name="line.32736"></a>
+<span class="sourceLineNo">32737</span>                                        }<a name="line.32737"></a>
+<span class="sourceLineNo">32738</span>                                }<a name="line.32738"></a>
+<span class="sourceLineNo">32739</span>                        } else if (as == 1) {<a name="line.32739"></a>
+<span class="sourceLineNo">32740</span>                                if (it.isOutputDouble()) {<a name="line.32740"></a>
+<span class="sourceLineNo">32741</span>                                        while (it.hasNext()) {<a name="line.32741"></a>
+<span class="sourceLineNo">32742</span>                                                final double ix = it.aDouble;<a name="line.32742"></a>
+<span class="sourceLineNo">32743</span>                                                long ox;<a name="line.32743"></a>
+<span class="sourceLineNo">32744</span>                                                ox = toLong(Math.toDegrees(ix));<a name="line.32744"></a>
+<span class="sourceLineNo">32745</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32745"></a>
+<span class="sourceLineNo">32746</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.32746"></a>
+<span class="sourceLineNo">32747</span>                                                }<a name="line.32747"></a>
+<span class="sourceLineNo">32748</span>                                        }<a name="line.32748"></a>
+<span class="sourceLineNo">32749</span>                                } else {<a name="line.32749"></a>
+<span class="sourceLineNo">32750</span>                                        while (it.hasNext()) {<a name="line.32750"></a>
+<span class="sourceLineNo">32751</span>                                                final long ix = it.aLong;<a name="line.32751"></a>
+<span class="sourceLineNo">32752</span>                                                long ox;<a name="line.32752"></a>
+<span class="sourceLineNo">32753</span>                                                ox = toLong(Math.toDegrees(ix));<a name="line.32753"></a>
+<span class="sourceLineNo">32754</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32754"></a>
+<span class="sourceLineNo">32755</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.32755"></a>
+<span class="sourceLineNo">32756</span>                                                }<a name="line.32756"></a>
+<span class="sourceLineNo">32757</span>                                        }<a name="line.32757"></a>
+<span class="sourceLineNo">32758</span>                                }<a name="line.32758"></a>
+<span class="sourceLineNo">32759</span>                        } else {<a name="line.32759"></a>
+<span class="sourceLineNo">32760</span>                                if (it.isOutputDouble()) {<a name="line.32760"></a>
+<span class="sourceLineNo">32761</span>                                        while (it.hasNext()) {<a name="line.32761"></a>
+<span class="sourceLineNo">32762</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32762"></a>
+<span class="sourceLineNo">32763</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.32763"></a>
+<span class="sourceLineNo">32764</span>                                                        long ox;<a name="line.32764"></a>
+<span class="sourceLineNo">32765</span>                                                        ox = toLong(Math.toDegrees(ix));<a name="line.32765"></a>
+<span class="sourceLineNo">32766</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.32766"></a>
+<span class="sourceLineNo">32767</span>                                                }<a name="line.32767"></a>
+<span class="sourceLineNo">32768</span>                                        }<a name="line.32768"></a>
+<span class="sourceLineNo">32769</span>                                } else {<a name="line.32769"></a>
+<span class="sourceLineNo">32770</span>                                        while (it.hasNext()) {<a name="line.32770"></a>
+<span class="sourceLineNo">32771</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32771"></a>
+<span class="sourceLineNo">32772</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.32772"></a>
+<span class="sourceLineNo">32773</span>                                                        long ox;<a name="line.32773"></a>
+<span class="sourceLineNo">32774</span>                                                        ox = toLong(Math.toDegrees(ix));<a name="line.32774"></a>
+<span class="sourceLineNo">32775</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.32775"></a>
+<span class="sourceLineNo">32776</span>                                                }<a name="line.32776"></a>
+<span class="sourceLineNo">32777</span>                                        }<a name="line.32777"></a>
+<span class="sourceLineNo">32778</span>                                }<a name="line.32778"></a>
+<span class="sourceLineNo">32779</span>                        }<a name="line.32779"></a>
+<span class="sourceLineNo">32780</span>                        break;<a name="line.32780"></a>
+<span class="sourceLineNo">32781</span>                case Dataset.ARRAYINT32:<a name="line.32781"></a>
+<span class="sourceLineNo">32782</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.32782"></a>
+<span class="sourceLineNo">32783</span>                        if (is == 1) {<a name="line.32783"></a>
+<span class="sourceLineNo">32784</span>                                if (it.isOutputDouble()) {<a name="line.32784"></a>
+<span class="sourceLineNo">32785</span>                                        while (it.hasNext()) {<a name="line.32785"></a>
+<span class="sourceLineNo">32786</span>                                                final double ix = it.aDouble;<a name="line.32786"></a>
+<span class="sourceLineNo">32787</span>                                                int ox;<a name="line.32787"></a>
+<span class="sourceLineNo">32788</span>                                                ox = (int) toLong(Math.toDegrees(ix));<a name="line.32788"></a>
+<span class="sourceLineNo">32789</span>                                                oai32data[it.oIndex] = ox;<a name="line.32789"></a>
+<span class="sourceLineNo">32790</span>                                        }<a name="line.32790"></a>
+<span class="sourceLineNo">32791</span>                                } else {<a name="line.32791"></a>
+<span class="sourceLineNo">32792</span>                                        while (it.hasNext()) {<a name="line.32792"></a>
+<span class="sourceLineNo">32793</span>                                                final long ix = it.aLong;<a name="line.32793"></a>
+<span class="sourceLineNo">32794</span>                                                int ox;<a name="line.32794"></a>
+<span class="sourceLineNo">32795</span>                                                ox = (int) toLong(Math.toDegrees(ix));<a name="line.32795"></a>
+<span class="sourceLineNo">32796</span>                                                oai32data[it.oIndex] = ox;<a name="line.32796"></a>
+<span class="sourceLineNo">32797</span>                                        }<a name="line.32797"></a>
+<span class="sourceLineNo">32798</span>                                }<a name="line.32798"></a>
+<span class="sourceLineNo">32799</span>                        } else if (as == 1) {<a name="line.32799"></a>
+<span class="sourceLineNo">32800</span>                                if (it.isOutputDouble()) {<a name="line.32800"></a>
+<span class="sourceLineNo">32801</span>                                        while (it.hasNext()) {<a name="line.32801"></a>
+<span class="sourceLineNo">32802</span>                                                final double ix = it.aDouble;<a name="line.32802"></a>
+<span class="sourceLineNo">32803</span>                                                int ox;<a name="line.32803"></a>
+<span class="sourceLineNo">32804</span>                                                ox = (int) toLong(Math.toDegrees(ix));<a name="line.32804"></a>
+<span class="sourceLineNo">32805</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32805"></a>
+<span class="sourceLineNo">32806</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.32806"></a>
+<span class="sourceLineNo">32807</span>                                                }<a name="line.32807"></a>
+<span class="sourceLineNo">32808</span>                                        }<a name="line.32808"></a>
+<span class="sourceLineNo">32809</span>                                } else {<a name="line.32809"></a>
+<span class="sourceLineNo">32810</span>                                        while (it.hasNext()) {<a name="line.32810"></a>
+<span class="sourceLineNo">32811</span>                                                final long ix = it.aLong;<a name="line.32811"></a>
+<span class="sourceLineNo">32812</span>                                                int ox;<a name="line.32812"></a>
+<span class="sourceLineNo">32813</span>                                                ox = (int) toLong(Math.toDegrees(ix));<a name="line.32813"></a>
+<span class="sourceLineNo">32814</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32814"></a>
+<span class="sourceLineNo">32815</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.32815"></a>
+<span class="sourceLineNo">32816</span>                                                }<a name="line.32816"></a>
+<span class="sourceLineNo">32817</span>                                        }<a name="line.32817"></a>
+<span class="sourceLineNo">32818</span>                                }<a name="line.32818"></a>
+<span class="sourceLineNo">32819</span>                        } else {<a name="line.32819"></a>
+<span class="sourceLineNo">32820</span>                                if (it.isOutputDouble()) {<a name="line.32820"></a>
+<span class="sourceLineNo">32821</span>                                        while (it.hasNext()) {<a name="line.32821"></a>
+<span class="sourceLineNo">32822</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32822"></a>
+<span class="sourceLineNo">32823</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.32823"></a>
+<span class="sourceLineNo">32824</span>                                                        int ox;<a name="line.32824"></a>
+<span class="sourceLineNo">32825</span>                                                        ox = (int) toLong(Math.toDegrees(ix));<a name="line.32825"></a>
+<span class="sourceLineNo">32826</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.32826"></a>
+<span class="sourceLineNo">32827</span>                                                }<a name="line.32827"></a>
+<span class="sourceLineNo">32828</span>                                        }<a name="line.32828"></a>
+<span class="sourceLineNo">32829</span>                                } else {<a name="line.32829"></a>
+<span class="sourceLineNo">32830</span>                                        while (it.hasNext()) {<a name="line.32830"></a>
+<span class="sourceLineNo">32831</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32831"></a>
+<span class="sourceLineNo">32832</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.32832"></a>
+<span class="sourceLineNo">32833</span>                                                        int ox;<a name="line.32833"></a>
+<span class="sourceLineNo">32834</span>                                                        ox = (int) toLong(Math.toDegrees(ix));<a name="line.32834"></a>
+<span class="sourceLineNo">32835</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.32835"></a>
+<span class="sourceLineNo">32836</span>                                                }<a name="line.32836"></a>
+<span class="sourceLineNo">32837</span>                                        }<a name="line.32837"></a>
+<span class="sourceLineNo">32838</span>                                }<a name="line.32838"></a>
+<span class="sourceLineNo">32839</span>                        }<a name="line.32839"></a>
+<span class="sourceLineNo">32840</span>                        break;<a name="line.32840"></a>
+<span class="sourceLineNo">32841</span>                case Dataset.FLOAT32:<a name="line.32841"></a>
+<span class="sourceLineNo">32842</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.32842"></a>
+<span class="sourceLineNo">32843</span>                        if (it.isOutputDouble()) {<a name="line.32843"></a>
+<span class="sourceLineNo">32844</span>                                while (it.hasNext()) {<a name="line.32844"></a>
+<span class="sourceLineNo">32845</span>                                        final double ix = it.aDouble;<a name="line.32845"></a>
+<span class="sourceLineNo">32846</span>                                        float ox;<a name="line.32846"></a>
+<span class="sourceLineNo">32847</span>                                        ox = (float) (Math.toDegrees(ix));<a name="line.32847"></a>
+<span class="sourceLineNo">32848</span>                                        of32data[it.oIndex] = ox;<a name="line.32848"></a>
+<span class="sourceLineNo">32849</span>                                }<a name="line.32849"></a>
+<span class="sourceLineNo">32850</span>                        } else {<a name="line.32850"></a>
+<span class="sourceLineNo">32851</span>                                while (it.hasNext()) {<a name="line.32851"></a>
+<span class="sourceLineNo">32852</span>                                        final long ix = it.aLong;<a name="line.32852"></a>
+<span class="sourceLineNo">32853</span>                                        float ox;<a name="line.32853"></a>
+<span class="sourceLineNo">32854</span>                                        ox = (float) (Math.toDegrees(ix));<a name="line.32854"></a>
+<span class="sourceLineNo">32855</span>                                        of32data[it.oIndex] = ox;<a name="line.32855"></a>
+<span class="sourceLineNo">32856</span>                                }<a name="line.32856"></a>
+<span class="sourceLineNo">32857</span>                        }<a name="line.32857"></a>
+<span class="sourceLineNo">32858</span>                        break;<a name="line.32858"></a>
+<span class="sourceLineNo">32859</span>                case Dataset.FLOAT64:<a name="line.32859"></a>
+<span class="sourceLineNo">32860</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.32860"></a>
+<span class="sourceLineNo">32861</span>                        if (it.isOutputDouble()) {<a name="line.32861"></a>
+<span class="sourceLineNo">32862</span>                                while (it.hasNext()) {<a name="line.32862"></a>
+<span class="sourceLineNo">32863</span>                                        final double ix = it.aDouble;<a name="line.32863"></a>
+<span class="sourceLineNo">32864</span>                                        double ox;<a name="line.32864"></a>
+<span class="sourceLineNo">32865</span>                                        ox = (Math.toDegrees(ix));<a name="line.32865"></a>
+<span class="sourceLineNo">32866</span>                                        of64data[it.oIndex] = ox;<a name="line.32866"></a>
+<span class="sourceLineNo">32867</span>                                }<a name="line.32867"></a>
+<span class="sourceLineNo">32868</span>                        } else {<a name="line.32868"></a>
+<span class="sourceLineNo">32869</span>                                while (it.hasNext()) {<a name="line.32869"></a>
+<span class="sourceLineNo">32870</span>                                        final long ix = it.aLong;<a name="line.32870"></a>
+<span class="sourceLineNo">32871</span>                                        double ox;<a name="line.32871"></a>
+<span class="sourceLineNo">32872</span>                                        ox = (Math.toDegrees(ix));<a name="line.32872"></a>
+<span class="sourceLineNo">32873</span>                                        of64data[it.oIndex] = ox;<a name="line.32873"></a>
+<span class="sourceLineNo">32874</span>                                }<a name="line.32874"></a>
+<span class="sourceLineNo">32875</span>                        }<a name="line.32875"></a>
+<span class="sourceLineNo">32876</span>                        break;<a name="line.32876"></a>
+<span class="sourceLineNo">32877</span>                case Dataset.ARRAYFLOAT32:<a name="line.32877"></a>
+<span class="sourceLineNo">32878</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.32878"></a>
+<span class="sourceLineNo">32879</span>                        if (is == 1) {<a name="line.32879"></a>
+<span class="sourceLineNo">32880</span>                                if (it.isOutputDouble()) {<a name="line.32880"></a>
+<span class="sourceLineNo">32881</span>                                        while (it.hasNext()) {<a name="line.32881"></a>
+<span class="sourceLineNo">32882</span>                                                final double ix = it.aDouble;<a name="line.32882"></a>
+<span class="sourceLineNo">32883</span>                                                float ox;<a name="line.32883"></a>
+<span class="sourceLineNo">32884</span>                                                ox = (float) (Math.toDegrees(ix));<a name="line.32884"></a>
+<span class="sourceLineNo">32885</span>                                                oaf32data[it.oIndex] = ox;<a name="line.32885"></a>
+<span class="sourceLineNo">32886</span>                                        }<a name="line.32886"></a>
+<span class="sourceLineNo">32887</span>                                } else {<a name="line.32887"></a>
+<span class="sourceLineNo">32888</span>                                        while (it.hasNext()) {<a name="line.32888"></a>
+<span class="sourceLineNo">32889</span>                                                final long ix = it.aLong;<a name="line.32889"></a>
+<span class="sourceLineNo">32890</span>                                                float ox;<a name="line.32890"></a>
+<span class="sourceLineNo">32891</span>                                                ox = (float) (Math.toDegrees(ix));<a name="line.32891"></a>
+<span class="sourceLineNo">32892</span>                                                oaf32data[it.oIndex] = ox;<a name="line.32892"></a>
+<span class="sourceLineNo">32893</span>                                        }<a name="line.32893"></a>
+<span class="sourceLineNo">32894</span>                                }<a name="line.32894"></a>
+<span class="sourceLineNo">32895</span>                        } else if (as == 1) {<a name="line.32895"></a>
+<span class="sourceLineNo">32896</span>                                if (it.isOutputDouble()) {<a name="line.32896"></a>
+<span class="sourceLineNo">32897</span>                                        while (it.hasNext()) {<a name="line.32897"></a>
+<span class="sourceLineNo">32898</span>                                                final double ix = it.aDouble;<a name="line.32898"></a>
+<span class="sourceLineNo">32899</span>                                                float ox;<a name="line.32899"></a>
+<span class="sourceLineNo">32900</span>                                                ox = (float) (Math.toDegrees(ix));<a name="line.32900"></a>
+<span class="sourceLineNo">32901</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32901"></a>
+<span class="sourceLineNo">32902</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.32902"></a>
+<span class="sourceLineNo">32903</span>                                                }<a name="line.32903"></a>
+<span class="sourceLineNo">32904</span>                                        }<a name="line.32904"></a>
+<span class="sourceLineNo">32905</span>                                } else {<a name="line.32905"></a>
+<span class="sourceLineNo">32906</span>                                        while (it.hasNext()) {<a name="line.32906"></a>
+<span class="sourceLineNo">32907</span>                                                final long ix = it.aLong;<a name="line.32907"></a>
+<span class="sourceLineNo">32908</span>                                                float ox;<a name="line.32908"></a>
+<span class="sourceLineNo">32909</span>                                                ox = (float) (Math.toDegrees(ix));<a name="line.32909"></a>
+<span class="sourceLineNo">32910</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32910"></a>
+<span class="sourceLineNo">32911</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.32911"></a>
+<span class="sourceLineNo">32912</span>                                                }<a name="line.32912"></a>
+<span class="sourceLineNo">32913</span>                                        }<a name="line.32913"></a>
+<span class="sourceLineNo">32914</span>                                }<a name="line.32914"></a>
+<span class="sourceLineNo">32915</span>                        } else {<a name="line.32915"></a>
+<span class="sourceLineNo">32916</span>                                if (it.isOutputDouble()) {<a name="line.32916"></a>
+<span class="sourceLineNo">32917</span>                                        while (it.hasNext()) {<a name="line.32917"></a>
+<span class="sourceLineNo">32918</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32918"></a>
+<span class="sourceLineNo">32919</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.32919"></a>
+<span class="sourceLineNo">32920</span>                                                        float ox;<a name="line.32920"></a>
+<span class="sourceLineNo">32921</span>                                                        ox = (float) (Math.toDegrees(ix));<a name="line.32921"></a>
+<span class="sourceLineNo">32922</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.32922"></a>
+<span class="sourceLineNo">32923</span>                                                }<a name="line.32923"></a>
+<span class="sourceLineNo">32924</span>                                        }<a name="line.32924"></a>
+<span class="sourceLineNo">32925</span>                                } else {<a name="line.32925"></a>
+<span class="sourceLineNo">32926</span>                                        while (it.hasNext()) {<a name="line.32926"></a>
+<span class="sourceLineNo">32927</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32927"></a>
+<span class="sourceLineNo">32928</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.32928"></a>
+<span class="sourceLineNo">32929</span>                                                        float ox;<a name="line.32929"></a>
+<span class="sourceLineNo">32930</span>                                                        ox = (float) (Math.toDegrees(ix));<a name="line.32930"></a>
+<span class="sourceLineNo">32931</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.32931"></a>
+<span class="sourceLineNo">32932</span>                                                }<a name="line.32932"></a>
+<span class="sourceLineNo">32933</span>                                        }<a name="line.32933"></a>
+<span class="sourceLineNo">32934</span>                                }<a name="line.32934"></a>
+<span class="sourceLineNo">32935</span>                        }<a name="line.32935"></a>
+<span class="sourceLineNo">32936</span>                        break;<a name="line.32936"></a>
+<span class="sourceLineNo">32937</span>                case Dataset.ARRAYFLOAT64:<a name="line.32937"></a>
+<span class="sourceLineNo">32938</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.32938"></a>
+<span class="sourceLineNo">32939</span>                        if (is == 1) {<a name="line.32939"></a>
+<span class="sourceLineNo">32940</span>                                if (it.isOutputDouble()) {<a name="line.32940"></a>
+<span class="sourceLineNo">32941</span>                                        while (it.hasNext()) {<a name="line.32941"></a>
+<span class="sourceLineNo">32942</span>                                                final double ix = it.aDouble;<a name="line.32942"></a>
+<span class="sourceLineNo">32943</span>                                                double ox;<a name="line.32943"></a>
+<span class="sourceLineNo">32944</span>                                                ox = (Math.toDegrees(ix));<a name="line.32944"></a>
+<span class="sourceLineNo">32945</span>                                                oaf64data[it.oIndex] = ox;<a name="line.32945"></a>
+<span class="sourceLineNo">32946</span>                                        }<a name="line.32946"></a>
+<span class="sourceLineNo">32947</span>                                } else {<a name="line.32947"></a>
+<span class="sourceLineNo">32948</span>                                        while (it.hasNext()) {<a name="line.32948"></a>
+<span class="sourceLineNo">32949</span>                                                final long ix = it.aLong;<a name="line.32949"></a>
+<span class="sourceLineNo">32950</span>                                                double ox;<a name="line.32950"></a>
+<span class="sourceLineNo">32951</span>                                                ox = (Math.toDegrees(ix));<a name="line.32951"></a>
+<span class="sourceLineNo">32952</span>                                                oaf64data[it.oIndex] = ox;<a name="line.32952"></a>
+<span class="sourceLineNo">32953</span>                                        }<a name="line.32953"></a>
+<span class="sourceLineNo">32954</span>                                }<a name="line.32954"></a>
+<span class="sourceLineNo">32955</span>                        } else if (as == 1) {<a name="line.32955"></a>
+<span class="sourceLineNo">32956</span>                                if (it.isOutputDouble()) {<a name="line.32956"></a>
+<span class="sourceLineNo">32957</span>                                        while (it.hasNext()) {<a name="line.32957"></a>
+<span class="sourceLineNo">32958</span>                                                final double ix = it.aDouble;<a name="line.32958"></a>
+<span class="sourceLineNo">32959</span>                                                double ox;<a name="line.32959"></a>
+<span class="sourceLineNo">32960</span>                                                ox = (Math.toDegrees(ix));<a name="line.32960"></a>
+<span class="sourceLineNo">32961</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32961"></a>
+<span class="sourceLineNo">32962</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.32962"></a>
+<span class="sourceLineNo">32963</span>                                                }<a name="line.32963"></a>
+<span class="sourceLineNo">32964</span>                                        }<a name="line.32964"></a>
+<span class="sourceLineNo">32965</span>                                } else {<a name="line.32965"></a>
+<span class="sourceLineNo">32966</span>                                        while (it.hasNext()) {<a name="line.32966"></a>
+<span class="sourceLineNo">32967</span>                                                final long ix = it.aLong;<a name="line.32967"></a>
+<span class="sourceLineNo">32968</span>                                                double ox;<a name="line.32968"></a>
+<span class="sourceLineNo">32969</span>                                                ox = (Math.toDegrees(ix));<a name="line.32969"></a>
+<span class="sourceLineNo">32970</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32970"></a>
+<span class="sourceLineNo">32971</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.32971"></a>
+<span class="sourceLineNo">32972</span>                                                }<a name="line.32972"></a>
+<span class="sourceLineNo">32973</span>                                        }<a name="line.32973"></a>
+<span class="sourceLineNo">32974</span>                                }<a name="line.32974"></a>
+<span class="sourceLineNo">32975</span>                        } else {<a name="line.32975"></a>
+<span class="sourceLineNo">32976</span>                                if (it.isOutputDouble()) {<a name="line.32976"></a>
+<span class="sourceLineNo">32977</span>                                        while (it.hasNext()) {<a name="line.32977"></a>
+<span class="sourceLineNo">32978</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32978"></a>
+<span class="sourceLineNo">32979</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.32979"></a>
+<span class="sourceLineNo">32980</span>                                                        double ox;<a name="line.32980"></a>
+<span class="sourceLineNo">32981</span>                                                        ox = (Math.toDegrees(ix));<a name="line.32981"></a>
+<span class="sourceLineNo">32982</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.32982"></a>
+<span class="sourceLineNo">32983</span>                                                }<a name="line.32983"></a>
+<span class="sourceLineNo">32984</span>                                        }<a name="line.32984"></a>
+<span class="sourceLineNo">32985</span>                                } else {<a name="line.32985"></a>
+<span class="sourceLineNo">32986</span>                                        while (it.hasNext()) {<a name="line.32986"></a>
+<span class="sourceLineNo">32987</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.32987"></a>
+<span class="sourceLineNo">32988</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.32988"></a>
+<span class="sourceLineNo">32989</span>                                                        double ox;<a name="line.32989"></a>
+<span class="sourceLineNo">32990</span>                                                        ox = (Math.toDegrees(ix));<a name="line.32990"></a>
+<span class="sourceLineNo">32991</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.32991"></a>
+<span class="sourceLineNo">32992</span>                                                }<a name="line.32992"></a>
+<span class="sourceLineNo">32993</span>                                        }<a name="line.32993"></a>
+<span class="sourceLineNo">32994</span>                                }<a name="line.32994"></a>
+<span class="sourceLineNo">32995</span>                        }<a name="line.32995"></a>
+<span class="sourceLineNo">32996</span>                        break;<a name="line.32996"></a>
+<span class="sourceLineNo">32997</span>                case Dataset.COMPLEX64:<a name="line.32997"></a>
+<span class="sourceLineNo">32998</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.32998"></a>
+<span class="sourceLineNo">32999</span>                        if (!da.isComplex()) {<a name="line.32999"></a>
+<span class="sourceLineNo">33000</span>                                if (it.isOutputDouble()) {<a name="line.33000"></a>
+<span class="sourceLineNo">33001</span>                                        final double iy = 0;<a name="line.33001"></a>
+<span class="sourceLineNo">33002</span>                                        while (it.hasNext()) {<a name="line.33002"></a>
+<span class="sourceLineNo">33003</span>                                                final double ix = it.aDouble;<a name="line.33003"></a>
+<span class="sourceLineNo">33004</span>                                                float ox;<a name="line.33004"></a>
+<span class="sourceLineNo">33005</span>                                                float oy;<a name="line.33005"></a>
+<span class="sourceLineNo">33006</span>                                                ox = (float) (Math.toDegrees(ix));<a name="line.33006"></a>
+<span class="sourceLineNo">33007</span>                                                oy = (float) (Math.toDegrees(iy));<a name="line.33007"></a>
+<span class="sourceLineNo">33008</span>                                                oc64data[it.oIndex] = ox;<a name="line.33008"></a>
+<span class="sourceLineNo">33009</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.33009"></a>
+<span class="sourceLineNo">33010</span>                                        }<a name="line.33010"></a>
+<span class="sourceLineNo">33011</span>                                } else {<a name="line.33011"></a>
+<span class="sourceLineNo">33012</span>                                        final long iy = 0;<a name="line.33012"></a>
+<span class="sourceLineNo">33013</span>                                        while (it.hasNext()) {<a name="line.33013"></a>
+<span class="sourceLineNo">33014</span>                                                final long ix = it.aLong;<a name="line.33014"></a>
+<span class="sourceLineNo">33015</span>                                                float ox;<a name="line.33015"></a>
+<span class="sourceLineNo">33016</span>                                                float oy;<a name="line.33016"></a>
+<span class="sourceLineNo">33017</span>                                                ox = (float) toLong(Math.toDegrees(ix));<a name="line.33017"></a>
+<span class="sourceLineNo">33018</span>                                                oy = (float) toLong(Math.toDegrees(iy));<a name="line.33018"></a>
+<span class="sourceLineNo">33019</span>                                                oc64data[it.oIndex] = ox;<a name="line.33019"></a>
+<span class="sourceLineNo">33020</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.33020"></a>
+<span class="sourceLineNo">33021</span>                                        }<a name="line.33021"></a>
+<span class="sourceLineNo">33022</span>                                }<a name="line.33022"></a>
+<span class="sourceLineNo">33023</span>                        } else {<a name="line.33023"></a>
+<span class="sourceLineNo">33024</span>                                while (it.hasNext()) {<a name="line.33024"></a>
+<span class="sourceLineNo">33025</span>                                        final double ix = it.aDouble;<a name="line.33025"></a>
+<span class="sourceLineNo">33026</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.33026"></a>
+<span class="sourceLineNo">33027</span>                                        float ox;<a name="line.33027"></a>
+<span class="sourceLineNo">33028</span>                                        float oy;<a name="line.33028"></a>
+<span class="sourceLineNo">33029</span>                                        ox = (float) (Math.toDegrees(ix));<a name="line.33029"></a>
+<span class="sourceLineNo">33030</span>                                        oy = (float) (Math.toDegrees(iy));<a name="line.33030"></a>
+<span class="sourceLineNo">33031</span>                                        oc64data[it.oIndex] = ox;<a name="line.33031"></a>
+<span class="sourceLineNo">33032</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.33032"></a>
+<span class="sourceLineNo">33033</span>                                }<a name="line.33033"></a>
+<span class="sourceLineNo">33034</span>                        }<a name="line.33034"></a>
+<span class="sourceLineNo">33035</span>                        break;<a name="line.33035"></a>
+<span class="sourceLineNo">33036</span>                case Dataset.COMPLEX128:<a name="line.33036"></a>
+<span class="sourceLineNo">33037</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.33037"></a>
+<span class="sourceLineNo">33038</span>                        if (!da.isComplex()) {<a name="line.33038"></a>
+<span class="sourceLineNo">33039</span>                                if (it.isOutputDouble()) {<a name="line.33039"></a>
+<span class="sourceLineNo">33040</span>                                        final double iy = 0;<a name="line.33040"></a>
+<span class="sourceLineNo">33041</span>                                        while (it.hasNext()) {<a name="line.33041"></a>
+<span class="sourceLineNo">33042</span>                                                final double ix = it.aDouble;<a name="line.33042"></a>
+<span class="sourceLineNo">33043</span>                                                double ox;<a name="line.33043"></a>
+<span class="sourceLineNo">33044</span>                                                double oy;<a name="line.33044"></a>
+<span class="sourceLineNo">33045</span>                                                ox = (Math.toDegrees(ix));<a name="line.33045"></a>
+<span class="sourceLineNo">33046</span>                                                oy = (Math.toDegrees(iy));<a name="line.33046"></a>
+<span class="sourceLineNo">33047</span>                                                oc128data[it.oIndex] = ox;<a name="line.33047"></a>
+<span class="sourceLineNo">33048</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.33048"></a>
+<span class="sourceLineNo">33049</span>                                        }<a name="line.33049"></a>
+<span class="sourceLineNo">33050</span>                                } else {<a name="line.33050"></a>
+<span class="sourceLineNo">33051</span>                                        final long iy = 0;<a name="line.33051"></a>
+<span class="sourceLineNo">33052</span>                                        while (it.hasNext()) {<a name="line.33052"></a>
+<span class="sourceLineNo">33053</span>                                                final long ix = it.aLong;<a name="line.33053"></a>
+<span class="sourceLineNo">33054</span>                                                double ox;<a name="line.33054"></a>
+<span class="sourceLineNo">33055</span>                                                double oy;<a name="line.33055"></a>
+<span class="sourceLineNo">33056</span>                                                ox = (double) (Math.toDegrees(ix));<a name="line.33056"></a>
+<span class="sourceLineNo">33057</span>                                                oy = (double) (Math.toDegrees(iy));<a name="line.33057"></a>
+<span class="sourceLineNo">33058</span>                                                oc128data[it.oIndex] = ox;<a name="line.33058"></a>
+<span class="sourceLineNo">33059</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.33059"></a>
+<span class="sourceLineNo">33060</span>                                        }<a name="line.33060"></a>
+<span class="sourceLineNo">33061</span>                                }<a name="line.33061"></a>
+<span class="sourceLineNo">33062</span>                        } else {<a name="line.33062"></a>
+<span class="sourceLineNo">33063</span>                                while (it.hasNext()) {<a name="line.33063"></a>
+<span class="sourceLineNo">33064</span>                                        final double ix = it.aDouble;<a name="line.33064"></a>
+<span class="sourceLineNo">33065</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.33065"></a>
+<span class="sourceLineNo">33066</span>                                        double ox;<a name="line.33066"></a>
+<span class="sourceLineNo">33067</span>                                        double oy;<a name="line.33067"></a>
+<span class="sourceLineNo">33068</span>                                        ox = (Math.toDegrees(ix));<a name="line.33068"></a>
+<span class="sourceLineNo">33069</span>                                        oy = (Math.toDegrees(iy));<a name="line.33069"></a>
+<span class="sourceLineNo">33070</span>                                        oc128data[it.oIndex] = ox;<a name="line.33070"></a>
+<span class="sourceLineNo">33071</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.33071"></a>
+<span class="sourceLineNo">33072</span>                                }<a name="line.33072"></a>
+<span class="sourceLineNo">33073</span>                        }<a name="line.33073"></a>
+<span class="sourceLineNo">33074</span>                        break;<a name="line.33074"></a>
+<span class="sourceLineNo">33075</span>                default:<a name="line.33075"></a>
+<span class="sourceLineNo">33076</span>                        throw new IllegalArgumentException("toDegrees supports integer, compound integer, real, compound real, complex datasets only");<a name="line.33076"></a>
+<span class="sourceLineNo">33077</span>                }<a name="line.33077"></a>
+<span class="sourceLineNo">33078</span><a name="line.33078"></a>
+<span class="sourceLineNo">33079</span>                addFunctionName(result, "toDegrees");<a name="line.33079"></a>
+<span class="sourceLineNo">33080</span>                return result;<a name="line.33080"></a>
+<span class="sourceLineNo">33081</span>        }<a name="line.33081"></a>
+<span class="sourceLineNo">33082</span><a name="line.33082"></a>
+<span class="sourceLineNo">33083</span>        /**<a name="line.33083"></a>
+<span class="sourceLineNo">33084</span>         * toRadians - convert to radians<a name="line.33084"></a>
+<span class="sourceLineNo">33085</span>         * @param a<a name="line.33085"></a>
+<span class="sourceLineNo">33086</span>         * @return dataset<a name="line.33086"></a>
+<span class="sourceLineNo">33087</span>         */<a name="line.33087"></a>
+<span class="sourceLineNo">33088</span>        public static Dataset toRadians(final Object a) {<a name="line.33088"></a>
+<span class="sourceLineNo">33089</span>                return toRadians(a, null);<a name="line.33089"></a>
+<span class="sourceLineNo">33090</span>        }<a name="line.33090"></a>
+<span class="sourceLineNo">33091</span><a name="line.33091"></a>
+<span class="sourceLineNo">33092</span>        /**<a name="line.33092"></a>
+<span class="sourceLineNo">33093</span>         * toRadians - convert to radians<a name="line.33093"></a>
+<span class="sourceLineNo">33094</span>         * @param a<a name="line.33094"></a>
+<span class="sourceLineNo">33095</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.33095"></a>
+<span class="sourceLineNo">33096</span>         * @return dataset<a name="line.33096"></a>
+<span class="sourceLineNo">33097</span>         */<a name="line.33097"></a>
+<span class="sourceLineNo">33098</span>        public static Dataset toRadians(final Object a, final Dataset o) {<a name="line.33098"></a>
+<span class="sourceLineNo">33099</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.33099"></a>
+<span class="sourceLineNo">33100</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.33100"></a>
+<span class="sourceLineNo">33101</span>                final Dataset result = it.getOutput();<a name="line.33101"></a>
+<span class="sourceLineNo">33102</span>                if (!result.isComplex()) {<a name="line.33102"></a>
+<span class="sourceLineNo">33103</span>                        if (da.isComplex()) {<a name="line.33103"></a>
+<span class="sourceLineNo">33104</span>                                da = da.getRealView();<a name="line.33104"></a>
+<span class="sourceLineNo">33105</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.33105"></a>
+<span class="sourceLineNo">33106</span>                        }<a name="line.33106"></a>
+<span class="sourceLineNo">33107</span>                }<a name="line.33107"></a>
+<span class="sourceLineNo">33108</span>                final int is = result.getElementsPerItem();<a name="line.33108"></a>
+<span class="sourceLineNo">33109</span>                final int as = da.getElementsPerItem();<a name="line.33109"></a>
+<span class="sourceLineNo">33110</span>                final int dt = result.getDType();<a name="line.33110"></a>
+<span class="sourceLineNo">33111</span><a name="line.33111"></a>
+<span class="sourceLineNo">33112</span>                switch(dt) {<a name="line.33112"></a>
+<span class="sourceLineNo">33113</span>                case Dataset.INT8:<a name="line.33113"></a>
+<span class="sourceLineNo">33114</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.33114"></a>
+<span class="sourceLineNo">33115</span>                        if (it.isOutputDouble()) {<a name="line.33115"></a>
+<span class="sourceLineNo">33116</span>                                while (it.hasNext()) {<a name="line.33116"></a>
+<span class="sourceLineNo">33117</span>                                        final double ix = it.aDouble;<a name="line.33117"></a>
+<span class="sourceLineNo">33118</span>                                        byte ox;<a name="line.33118"></a>
+<span class="sourceLineNo">33119</span>                                        ox = (byte) toLong(Math.toRadians(ix));<a name="line.33119"></a>
+<span class="sourceLineNo">33120</span>                                        oi8data[it.oIndex] = ox;<a name="line.33120"></a>
+<span class="sourceLineNo">33121</span>                                }<a name="line.33121"></a>
+<span class="sourceLineNo">33122</span>                        } else {<a name="line.33122"></a>
+<span class="sourceLineNo">33123</span>                                while (it.hasNext()) {<a name="line.33123"></a>
+<span class="sourceLineNo">33124</span>                                        final long ix = it.aLong;<a name="line.33124"></a>
+<span class="sourceLineNo">33125</span>                                        byte ox;<a name="line.33125"></a>
+<span class="sourceLineNo">33126</span>                                        ox = (byte) toLong(Math.toRadians(ix));<a name="line.33126"></a>
+<span class="sourceLineNo">33127</span>                                        oi8data[it.oIndex] = ox;<a name="line.33127"></a>
+<span class="sourceLineNo">33128</span>                                }<a name="line.33128"></a>
+<span class="sourceLineNo">33129</span>                        }<a name="line.33129"></a>
+<span class="sourceLineNo">33130</span>                        break;<a name="line.33130"></a>
+<span class="sourceLineNo">33131</span>                case Dataset.INT16:<a name="line.33131"></a>
+<span class="sourceLineNo">33132</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.33132"></a>
+<span class="sourceLineNo">33133</span>                        if (it.isOutputDouble()) {<a name="line.33133"></a>
+<span class="sourceLineNo">33134</span>                                while (it.hasNext()) {<a name="line.33134"></a>
+<span class="sourceLineNo">33135</span>                                        final double ix = it.aDouble;<a name="line.33135"></a>
+<span class="sourceLineNo">33136</span>                                        short ox;<a name="line.33136"></a>
+<span class="sourceLineNo">33137</span>                                        ox = (short) toLong(Math.toRadians(ix));<a name="line.33137"></a>
+<span class="sourceLineNo">33138</span>                                        oi16data[it.oIndex] = ox;<a name="line.33138"></a>
+<span class="sourceLineNo">33139</span>                                }<a name="line.33139"></a>
+<span class="sourceLineNo">33140</span>                        } else {<a name="line.33140"></a>
+<span class="sourceLineNo">33141</span>                                while (it.hasNext()) {<a name="line.33141"></a>
+<span class="sourceLineNo">33142</span>                                        final long ix = it.aLong;<a name="line.33142"></a>
+<span class="sourceLineNo">33143</span>                                        short ox;<a name="line.33143"></a>
+<span class="sourceLineNo">33144</span>                                        ox = (short) toLong(Math.toRadians(ix));<a name="line.33144"></a>
+<span class="sourceLineNo">33145</span>                                        oi16data[it.oIndex] = ox;<a name="line.33145"></a>
+<span class="sourceLineNo">33146</span>                                }<a name="line.33146"></a>
+<span class="sourceLineNo">33147</span>                        }<a name="line.33147"></a>
+<span class="sourceLineNo">33148</span>                        break;<a name="line.33148"></a>
+<span class="sourceLineNo">33149</span>                case Dataset.INT64:<a name="line.33149"></a>
+<span class="sourceLineNo">33150</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.33150"></a>
+<span class="sourceLineNo">33151</span>                        if (it.isOutputDouble()) {<a name="line.33151"></a>
+<span class="sourceLineNo">33152</span>                                while (it.hasNext()) {<a name="line.33152"></a>
+<span class="sourceLineNo">33153</span>                                        final double ix = it.aDouble;<a name="line.33153"></a>
+<span class="sourceLineNo">33154</span>                                        long ox;<a name="line.33154"></a>
+<span class="sourceLineNo">33155</span>                                        ox = toLong(Math.toRadians(ix));<a name="line.33155"></a>
+<span class="sourceLineNo">33156</span>                                        oi64data[it.oIndex] = ox;<a name="line.33156"></a>
+<span class="sourceLineNo">33157</span>                                }<a name="line.33157"></a>
+<span class="sourceLineNo">33158</span>                        } else {<a name="line.33158"></a>
+<span class="sourceLineNo">33159</span>                                while (it.hasNext()) {<a name="line.33159"></a>
+<span class="sourceLineNo">33160</span>                                        final long ix = it.aLong;<a name="line.33160"></a>
+<span class="sourceLineNo">33161</span>                                        long ox;<a name="line.33161"></a>
+<span class="sourceLineNo">33162</span>                                        ox = toLong(Math.toRadians(ix));<a name="line.33162"></a>
+<span class="sourceLineNo">33163</span>                                        oi64data[it.oIndex] = ox;<a name="line.33163"></a>
+<span class="sourceLineNo">33164</span>                                }<a name="line.33164"></a>
+<span class="sourceLineNo">33165</span>                        }<a name="line.33165"></a>
+<span class="sourceLineNo">33166</span>                        break;<a name="line.33166"></a>
+<span class="sourceLineNo">33167</span>                case Dataset.INT32:<a name="line.33167"></a>
+<span class="sourceLineNo">33168</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.33168"></a>
+<span class="sourceLineNo">33169</span>                        if (it.isOutputDouble()) {<a name="line.33169"></a>
+<span class="sourceLineNo">33170</span>                                while (it.hasNext()) {<a name="line.33170"></a>
+<span class="sourceLineNo">33171</span>                                        final double ix = it.aDouble;<a name="line.33171"></a>
+<span class="sourceLineNo">33172</span>                                        int ox;<a name="line.33172"></a>
+<span class="sourceLineNo">33173</span>                                        ox = (int) toLong(Math.toRadians(ix));<a name="line.33173"></a>
+<span class="sourceLineNo">33174</span>                                        oi32data[it.oIndex] = ox;<a name="line.33174"></a>
+<span class="sourceLineNo">33175</span>                                }<a name="line.33175"></a>
+<span class="sourceLineNo">33176</span>                        } else {<a name="line.33176"></a>
+<span class="sourceLineNo">33177</span>                                while (it.hasNext()) {<a name="line.33177"></a>
+<span class="sourceLineNo">33178</span>                                        final long ix = it.aLong;<a name="line.33178"></a>
+<span class="sourceLineNo">33179</span>                                        int ox;<a name="line.33179"></a>
+<span class="sourceLineNo">33180</span>                                        ox = (int) toLong(Math.toRadians(ix));<a name="line.33180"></a>
+<span class="sourceLineNo">33181</span>                                        oi32data[it.oIndex] = ox;<a name="line.33181"></a>
+<span class="sourceLineNo">33182</span>                                }<a name="line.33182"></a>
+<span class="sourceLineNo">33183</span>                        }<a name="line.33183"></a>
+<span class="sourceLineNo">33184</span>                        break;<a name="line.33184"></a>
+<span class="sourceLineNo">33185</span>                case Dataset.ARRAYINT8:<a name="line.33185"></a>
+<span class="sourceLineNo">33186</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.33186"></a>
+<span class="sourceLineNo">33187</span>                        if (is == 1) {<a name="line.33187"></a>
+<span class="sourceLineNo">33188</span>                                if (it.isOutputDouble()) {<a name="line.33188"></a>
+<span class="sourceLineNo">33189</span>                                        while (it.hasNext()) {<a name="line.33189"></a>
+<span class="sourceLineNo">33190</span>                                                final double ix = it.aDouble;<a name="line.33190"></a>
+<span class="sourceLineNo">33191</span>                                                byte ox;<a name="line.33191"></a>
+<span class="sourceLineNo">33192</span>                                                ox = (byte) toLong(Math.toRadians(ix));<a name="line.33192"></a>
+<span class="sourceLineNo">33193</span>                                                oai8data[it.oIndex] = ox;<a name="line.33193"></a>
+<span class="sourceLineNo">33194</span>                                        }<a name="line.33194"></a>
+<span class="sourceLineNo">33195</span>                                } else {<a name="line.33195"></a>
+<span class="sourceLineNo">33196</span>                                        while (it.hasNext()) {<a name="line.33196"></a>
+<span class="sourceLineNo">33197</span>                                                final long ix = it.aLong;<a name="line.33197"></a>
+<span class="sourceLineNo">33198</span>                                                byte ox;<a name="line.33198"></a>
+<span class="sourceLineNo">33199</span>                                                ox = (byte) toLong(Math.toRadians(ix));<a name="line.33199"></a>
+<span class="sourceLineNo">33200</span>                                                oai8data[it.oIndex] = ox;<a name="line.33200"></a>
+<span class="sourceLineNo">33201</span>                                        }<a name="line.33201"></a>
+<span class="sourceLineNo">33202</span>                                }<a name="line.33202"></a>
+<span class="sourceLineNo">33203</span>                        } else if (as == 1) {<a name="line.33203"></a>
+<span class="sourceLineNo">33204</span>                                if (it.isOutputDouble()) {<a name="line.33204"></a>
+<span class="sourceLineNo">33205</span>                                        while (it.hasNext()) {<a name="line.33205"></a>
+<span class="sourceLineNo">33206</span>                                                final double ix = it.aDouble;<a name="line.33206"></a>
+<span class="sourceLineNo">33207</span>                                                byte ox;<a name="line.33207"></a>
+<span class="sourceLineNo">33208</span>                                                ox = (byte) toLong(Math.toRadians(ix));<a name="line.33208"></a>
+<span class="sourceLineNo">33209</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33209"></a>
+<span class="sourceLineNo">33210</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.33210"></a>
+<span class="sourceLineNo">33211</span>                                                }<a name="line.33211"></a>
+<span class="sourceLineNo">33212</span>                                        }<a name="line.33212"></a>
+<span class="sourceLineNo">33213</span>                                } else {<a name="line.33213"></a>
+<span class="sourceLineNo">33214</span>                                        while (it.hasNext()) {<a name="line.33214"></a>
+<span class="sourceLineNo">33215</span>                                                final long ix = it.aLong;<a name="line.33215"></a>
+<span class="sourceLineNo">33216</span>                                                byte ox;<a name="line.33216"></a>
+<span class="sourceLineNo">33217</span>                                                ox = (byte) toLong(Math.toRadians(ix));<a name="line.33217"></a>
+<span class="sourceLineNo">33218</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33218"></a>
+<span class="sourceLineNo">33219</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.33219"></a>
+<span class="sourceLineNo">33220</span>                                                }<a name="line.33220"></a>
+<span class="sourceLineNo">33221</span>                                        }<a name="line.33221"></a>
+<span class="sourceLineNo">33222</span>                                }<a name="line.33222"></a>
+<span class="sourceLineNo">33223</span>                        } else {<a name="line.33223"></a>
+<span class="sourceLineNo">33224</span>                                if (it.isOutputDouble()) {<a name="line.33224"></a>
+<span class="sourceLineNo">33225</span>                                        while (it.hasNext()) {<a name="line.33225"></a>
+<span class="sourceLineNo">33226</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33226"></a>
+<span class="sourceLineNo">33227</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.33227"></a>
+<span class="sourceLineNo">33228</span>                                                        byte ox;<a name="line.33228"></a>
+<span class="sourceLineNo">33229</span>                                                        ox = (byte) toLong(Math.toRadians(ix));<a name="line.33229"></a>
+<span class="sourceLineNo">33230</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.33230"></a>
+<span class="sourceLineNo">33231</span>                                                }<a name="line.33231"></a>
+<span class="sourceLineNo">33232</span>                                        }<a name="line.33232"></a>
+<span class="sourceLineNo">33233</span>                                } else {<a name="line.33233"></a>
+<span class="sourceLineNo">33234</span>                                        while (it.hasNext()) {<a name="line.33234"></a>
+<span class="sourceLineNo">33235</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33235"></a>
+<span class="sourceLineNo">33236</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.33236"></a>
+<span class="sourceLineNo">33237</span>                                                        byte ox;<a name="line.33237"></a>
+<span class="sourceLineNo">33238</span>                                                        ox = (byte) toLong(Math.toRadians(ix));<a name="line.33238"></a>
+<span class="sourceLineNo">33239</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.33239"></a>
+<span class="sourceLineNo">33240</span>                                                }<a name="line.33240"></a>
+<span class="sourceLineNo">33241</span>                                        }<a name="line.33241"></a>
+<span class="sourceLineNo">33242</span>                                }<a name="line.33242"></a>
+<span class="sourceLineNo">33243</span>                        }<a name="line.33243"></a>
+<span class="sourceLineNo">33244</span>                        break;<a name="line.33244"></a>
+<span class="sourceLineNo">33245</span>                case Dataset.ARRAYINT16:<a name="line.33245"></a>
+<span class="sourceLineNo">33246</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.33246"></a>
+<span class="sourceLineNo">33247</span>                        if (is == 1) {<a name="line.33247"></a>
+<span class="sourceLineNo">33248</span>                                if (it.isOutputDouble()) {<a name="line.33248"></a>
+<span class="sourceLineNo">33249</span>                                        while (it.hasNext()) {<a name="line.33249"></a>
+<span class="sourceLineNo">33250</span>                                                final double ix = it.aDouble;<a name="line.33250"></a>
+<span class="sourceLineNo">33251</span>                                                short ox;<a name="line.33251"></a>
+<span class="sourceLineNo">33252</span>                                                ox = (short) toLong(Math.toRadians(ix));<a name="line.33252"></a>
+<span class="sourceLineNo">33253</span>                                                oai16data[it.oIndex] = ox;<a name="line.33253"></a>
+<span class="sourceLineNo">33254</span>                                        }<a name="line.33254"></a>
+<span class="sourceLineNo">33255</span>                                } else {<a name="line.33255"></a>
+<span class="sourceLineNo">33256</span>                                        while (it.hasNext()) {<a name="line.33256"></a>
+<span class="sourceLineNo">33257</span>                                                final long ix = it.aLong;<a name="line.33257"></a>
+<span class="sourceLineNo">33258</span>                                                short ox;<a name="line.33258"></a>
+<span class="sourceLineNo">33259</span>                                                ox = (short) toLong(Math.toRadians(ix));<a name="line.33259"></a>
+<span class="sourceLineNo">33260</span>                                                oai16data[it.oIndex] = ox;<a name="line.33260"></a>
+<span class="sourceLineNo">33261</span>                                        }<a name="line.33261"></a>
+<span class="sourceLineNo">33262</span>                                }<a name="line.33262"></a>
+<span class="sourceLineNo">33263</span>                        } else if (as == 1) {<a name="line.33263"></a>
+<span class="sourceLineNo">33264</span>                                if (it.isOutputDouble()) {<a name="line.33264"></a>
+<span class="sourceLineNo">33265</span>                                        while (it.hasNext()) {<a name="line.33265"></a>
+<span class="sourceLineNo">33266</span>                                                final double ix = it.aDouble;<a name="line.33266"></a>
+<span class="sourceLineNo">33267</span>                                                short ox;<a name="line.33267"></a>
+<span class="sourceLineNo">33268</span>                                                ox = (short) toLong(Math.toRadians(ix));<a name="line.33268"></a>
+<span class="sourceLineNo">33269</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33269"></a>
+<span class="sourceLineNo">33270</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.33270"></a>
+<span class="sourceLineNo">33271</span>                                                }<a name="line.33271"></a>
+<span class="sourceLineNo">33272</span>                                        }<a name="line.33272"></a>
+<span class="sourceLineNo">33273</span>                                } else {<a name="line.33273"></a>
+<span class="sourceLineNo">33274</span>                                        while (it.hasNext()) {<a name="line.33274"></a>
+<span class="sourceLineNo">33275</span>                                                final long ix = it.aLong;<a name="line.33275"></a>
+<span class="sourceLineNo">33276</span>                                                short ox;<a name="line.33276"></a>
+<span class="sourceLineNo">33277</span>                                                ox = (short) toLong(Math.toRadians(ix));<a name="line.33277"></a>
+<span class="sourceLineNo">33278</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33278"></a>
+<span class="sourceLineNo">33279</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.33279"></a>
+<span class="sourceLineNo">33280</span>                                                }<a name="line.33280"></a>
+<span class="sourceLineNo">33281</span>                                        }<a name="line.33281"></a>
+<span class="sourceLineNo">33282</span>                                }<a name="line.33282"></a>
+<span class="sourceLineNo">33283</span>                        } else {<a name="line.33283"></a>
+<span class="sourceLineNo">33284</span>                                if (it.isOutputDouble()) {<a name="line.33284"></a>
+<span class="sourceLineNo">33285</span>                                        while (it.hasNext()) {<a name="line.33285"></a>
+<span class="sourceLineNo">33286</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33286"></a>
+<span class="sourceLineNo">33287</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.33287"></a>
+<span class="sourceLineNo">33288</span>                                                        short ox;<a name="line.33288"></a>
+<span class="sourceLineNo">33289</span>                                                        ox = (short) toLong(Math.toRadians(ix));<a name="line.33289"></a>
+<span class="sourceLineNo">33290</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.33290"></a>
+<span class="sourceLineNo">33291</span>                                                }<a name="line.33291"></a>
+<span class="sourceLineNo">33292</span>                                        }<a name="line.33292"></a>
+<span class="sourceLineNo">33293</span>                                } else {<a name="line.33293"></a>
+<span class="sourceLineNo">33294</span>                                        while (it.hasNext()) {<a name="line.33294"></a>
+<span class="sourceLineNo">33295</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33295"></a>
+<span class="sourceLineNo">33296</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.33296"></a>
+<span class="sourceLineNo">33297</span>                                                        short ox;<a name="line.33297"></a>
+<span class="sourceLineNo">33298</span>                                                        ox = (short) toLong(Math.toRadians(ix));<a name="line.33298"></a>
+<span class="sourceLineNo">33299</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.33299"></a>
+<span class="sourceLineNo">33300</span>                                                }<a name="line.33300"></a>
+<span class="sourceLineNo">33301</span>                                        }<a name="line.33301"></a>
+<span class="sourceLineNo">33302</span>                                }<a name="line.33302"></a>
+<span class="sourceLineNo">33303</span>                        }<a name="line.33303"></a>
+<span class="sourceLineNo">33304</span>                        break;<a name="line.33304"></a>
+<span class="sourceLineNo">33305</span>                case Dataset.ARRAYINT64:<a name="line.33305"></a>
+<span class="sourceLineNo">33306</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.33306"></a>
+<span class="sourceLineNo">33307</span>                        if (is == 1) {<a name="line.33307"></a>
+<span class="sourceLineNo">33308</span>                                if (it.isOutputDouble()) {<a name="line.33308"></a>
+<span class="sourceLineNo">33309</span>                                        while (it.hasNext()) {<a name="line.33309"></a>
+<span class="sourceLineNo">33310</span>                                                final double ix = it.aDouble;<a name="line.33310"></a>
+<span class="sourceLineNo">33311</span>                                                long ox;<a name="line.33311"></a>
+<span class="sourceLineNo">33312</span>                                                ox = toLong(Math.toRadians(ix));<a name="line.33312"></a>
+<span class="sourceLineNo">33313</span>                                                oai64data[it.oIndex] = ox;<a name="line.33313"></a>
+<span class="sourceLineNo">33314</span>                                        }<a name="line.33314"></a>
+<span class="sourceLineNo">33315</span>                                } else {<a name="line.33315"></a>
+<span class="sourceLineNo">33316</span>                                        while (it.hasNext()) {<a name="line.33316"></a>
+<span class="sourceLineNo">33317</span>                                                final long ix = it.aLong;<a name="line.33317"></a>
+<span class="sourceLineNo">33318</span>                                                long ox;<a name="line.33318"></a>
+<span class="sourceLineNo">33319</span>                                                ox = toLong(Math.toRadians(ix));<a name="line.33319"></a>
+<span class="sourceLineNo">33320</span>                                                oai64data[it.oIndex] = ox;<a name="line.33320"></a>
+<span class="sourceLineNo">33321</span>                                        }<a name="line.33321"></a>
+<span class="sourceLineNo">33322</span>                                }<a name="line.33322"></a>
+<span class="sourceLineNo">33323</span>                        } else if (as == 1) {<a name="line.33323"></a>
+<span class="sourceLineNo">33324</span>                                if (it.isOutputDouble()) {<a name="line.33324"></a>
+<span class="sourceLineNo">33325</span>                                        while (it.hasNext()) {<a name="line.33325"></a>
+<span class="sourceLineNo">33326</span>                                                final double ix = it.aDouble;<a name="line.33326"></a>
+<span class="sourceLineNo">33327</span>                                                long ox;<a name="line.33327"></a>
+<span class="sourceLineNo">33328</span>                                                ox = toLong(Math.toRadians(ix));<a name="line.33328"></a>
+<span class="sourceLineNo">33329</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33329"></a>
+<span class="sourceLineNo">33330</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.33330"></a>
+<span class="sourceLineNo">33331</span>                                                }<a name="line.33331"></a>
+<span class="sourceLineNo">33332</span>                                        }<a name="line.33332"></a>
+<span class="sourceLineNo">33333</span>                                } else {<a name="line.33333"></a>
+<span class="sourceLineNo">33334</span>                                        while (it.hasNext()) {<a name="line.33334"></a>
+<span class="sourceLineNo">33335</span>                                                final long ix = it.aLong;<a name="line.33335"></a>
+<span class="sourceLineNo">33336</span>                                                long ox;<a name="line.33336"></a>
+<span class="sourceLineNo">33337</span>                                                ox = toLong(Math.toRadians(ix));<a name="line.33337"></a>
+<span class="sourceLineNo">33338</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33338"></a>
+<span class="sourceLineNo">33339</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.33339"></a>
+<span class="sourceLineNo">33340</span>                                                }<a name="line.33340"></a>
+<span class="sourceLineNo">33341</span>                                        }<a name="line.33341"></a>
+<span class="sourceLineNo">33342</span>                                }<a name="line.33342"></a>
+<span class="sourceLineNo">33343</span>                        } else {<a name="line.33343"></a>
+<span class="sourceLineNo">33344</span>                                if (it.isOutputDouble()) {<a name="line.33344"></a>
+<span class="sourceLineNo">33345</span>                                        while (it.hasNext()) {<a name="line.33345"></a>
+<span class="sourceLineNo">33346</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33346"></a>
+<span class="sourceLineNo">33347</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.33347"></a>
+<span class="sourceLineNo">33348</span>                                                        long ox;<a name="line.33348"></a>
+<span class="sourceLineNo">33349</span>                                                        ox = toLong(Math.toRadians(ix));<a name="line.33349"></a>
+<span class="sourceLineNo">33350</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.33350"></a>
+<span class="sourceLineNo">33351</span>                                                }<a name="line.33351"></a>
+<span class="sourceLineNo">33352</span>                                        }<a name="line.33352"></a>
+<span class="sourceLineNo">33353</span>                                } else {<a name="line.33353"></a>
+<span class="sourceLineNo">33354</span>                                        while (it.hasNext()) {<a name="line.33354"></a>
+<span class="sourceLineNo">33355</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33355"></a>
+<span class="sourceLineNo">33356</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.33356"></a>
+<span class="sourceLineNo">33357</span>                                                        long ox;<a name="line.33357"></a>
+<span class="sourceLineNo">33358</span>                                                        ox = toLong(Math.toRadians(ix));<a name="line.33358"></a>
+<span class="sourceLineNo">33359</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.33359"></a>
+<span class="sourceLineNo">33360</span>                                                }<a name="line.33360"></a>
+<span class="sourceLineNo">33361</span>                                        }<a name="line.33361"></a>
+<span class="sourceLineNo">33362</span>                                }<a name="line.33362"></a>
+<span class="sourceLineNo">33363</span>                        }<a name="line.33363"></a>
+<span class="sourceLineNo">33364</span>                        break;<a name="line.33364"></a>
+<span class="sourceLineNo">33365</span>                case Dataset.ARRAYINT32:<a name="line.33365"></a>
+<span class="sourceLineNo">33366</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.33366"></a>
+<span class="sourceLineNo">33367</span>                        if (is == 1) {<a name="line.33367"></a>
+<span class="sourceLineNo">33368</span>                                if (it.isOutputDouble()) {<a name="line.33368"></a>
+<span class="sourceLineNo">33369</span>                                        while (it.hasNext()) {<a name="line.33369"></a>
+<span class="sourceLineNo">33370</span>                                                final double ix = it.aDouble;<a name="line.33370"></a>
+<span class="sourceLineNo">33371</span>                                                int ox;<a name="line.33371"></a>
+<span class="sourceLineNo">33372</span>                                                ox = (int) toLong(Math.toRadians(ix));<a name="line.33372"></a>
+<span class="sourceLineNo">33373</span>                                                oai32data[it.oIndex] = ox;<a name="line.33373"></a>
+<span class="sourceLineNo">33374</span>                                        }<a name="line.33374"></a>
+<span class="sourceLineNo">33375</span>                                } else {<a name="line.33375"></a>
+<span class="sourceLineNo">33376</span>                                        while (it.hasNext()) {<a name="line.33376"></a>
+<span class="sourceLineNo">33377</span>                                                final long ix = it.aLong;<a name="line.33377"></a>
+<span class="sourceLineNo">33378</span>                                                int ox;<a name="line.33378"></a>
+<span class="sourceLineNo">33379</span>                                                ox = (int) toLong(Math.toRadians(ix));<a name="line.33379"></a>
+<span class="sourceLineNo">33380</span>                                                oai32data[it.oIndex] = ox;<a name="line.33380"></a>
+<span class="sourceLineNo">33381</span>                                        }<a name="line.33381"></a>
+<span class="sourceLineNo">33382</span>                                }<a name="line.33382"></a>
+<span class="sourceLineNo">33383</span>                        } else if (as == 1) {<a name="line.33383"></a>
+<span class="sourceLineNo">33384</span>                                if (it.isOutputDouble()) {<a name="line.33384"></a>
+<span class="sourceLineNo">33385</span>                                        while (it.hasNext()) {<a name="line.33385"></a>
+<span class="sourceLineNo">33386</span>                                                final double ix = it.aDouble;<a name="line.33386"></a>
+<span class="sourceLineNo">33387</span>                                                int ox;<a name="line.33387"></a>
+<span class="sourceLineNo">33388</span>                                                ox = (int) toLong(Math.toRadians(ix));<a name="line.33388"></a>
+<span class="sourceLineNo">33389</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33389"></a>
+<span class="sourceLineNo">33390</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.33390"></a>
+<span class="sourceLineNo">33391</span>                                                }<a name="line.33391"></a>
+<span class="sourceLineNo">33392</span>                                        }<a name="line.33392"></a>
+<span class="sourceLineNo">33393</span>                                } else {<a name="line.33393"></a>
+<span class="sourceLineNo">33394</span>                                        while (it.hasNext()) {<a name="line.33394"></a>
+<span class="sourceLineNo">33395</span>                                                final long ix = it.aLong;<a name="line.33395"></a>
+<span class="sourceLineNo">33396</span>                                                int ox;<a name="line.33396"></a>
+<span class="sourceLineNo">33397</span>                                                ox = (int) toLong(Math.toRadians(ix));<a name="line.33397"></a>
+<span class="sourceLineNo">33398</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33398"></a>
+<span class="sourceLineNo">33399</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.33399"></a>
+<span class="sourceLineNo">33400</span>                                                }<a name="line.33400"></a>
+<span class="sourceLineNo">33401</span>                                        }<a name="line.33401"></a>
+<span class="sourceLineNo">33402</span>                                }<a name="line.33402"></a>
+<span class="sourceLineNo">33403</span>                        } else {<a name="line.33403"></a>
+<span class="sourceLineNo">33404</span>                                if (it.isOutputDouble()) {<a name="line.33404"></a>
+<span class="sourceLineNo">33405</span>                                        while (it.hasNext()) {<a name="line.33405"></a>
+<span class="sourceLineNo">33406</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33406"></a>
+<span class="sourceLineNo">33407</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.33407"></a>
+<span class="sourceLineNo">33408</span>                                                        int ox;<a name="line.33408"></a>
+<span class="sourceLineNo">33409</span>                                                        ox = (int) toLong(Math.toRadians(ix));<a name="line.33409"></a>
+<span class="sourceLineNo">33410</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.33410"></a>
+<span class="sourceLineNo">33411</span>                                                }<a name="line.33411"></a>
+<span class="sourceLineNo">33412</span>                                        }<a name="line.33412"></a>
+<span class="sourceLineNo">33413</span>                                } else {<a name="line.33413"></a>
+<span class="sourceLineNo">33414</span>                                        while (it.hasNext()) {<a name="line.33414"></a>
+<span class="sourceLineNo">33415</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33415"></a>
+<span class="sourceLineNo">33416</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.33416"></a>
+<span class="sourceLineNo">33417</span>                                                        int ox;<a name="line.33417"></a>
+<span class="sourceLineNo">33418</span>                                                        ox = (int) toLong(Math.toRadians(ix));<a name="line.33418"></a>
+<span class="sourceLineNo">33419</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.33419"></a>
+<span class="sourceLineNo">33420</span>                                                }<a name="line.33420"></a>
+<span class="sourceLineNo">33421</span>                                        }<a name="line.33421"></a>
+<span class="sourceLineNo">33422</span>                                }<a name="line.33422"></a>
+<span class="sourceLineNo">33423</span>                        }<a name="line.33423"></a>
+<span class="sourceLineNo">33424</span>                        break;<a name="line.33424"></a>
+<span class="sourceLineNo">33425</span>                case Dataset.FLOAT32:<a name="line.33425"></a>
+<span class="sourceLineNo">33426</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.33426"></a>
+<span class="sourceLineNo">33427</span>                        if (it.isOutputDouble()) {<a name="line.33427"></a>
+<span class="sourceLineNo">33428</span>                                while (it.hasNext()) {<a name="line.33428"></a>
+<span class="sourceLineNo">33429</span>                                        final double ix = it.aDouble;<a name="line.33429"></a>
+<span class="sourceLineNo">33430</span>                                        float ox;<a name="line.33430"></a>
+<span class="sourceLineNo">33431</span>                                        ox = (float) (Math.toRadians(ix));<a name="line.33431"></a>
+<span class="sourceLineNo">33432</span>                                        of32data[it.oIndex] = ox;<a name="line.33432"></a>
+<span class="sourceLineNo">33433</span>                                }<a name="line.33433"></a>
+<span class="sourceLineNo">33434</span>                        } else {<a name="line.33434"></a>
+<span class="sourceLineNo">33435</span>                                while (it.hasNext()) {<a name="line.33435"></a>
+<span class="sourceLineNo">33436</span>                                        final long ix = it.aLong;<a name="line.33436"></a>
+<span class="sourceLineNo">33437</span>                                        float ox;<a name="line.33437"></a>
+<span class="sourceLineNo">33438</span>                                        ox = (float) (Math.toRadians(ix));<a name="line.33438"></a>
+<span class="sourceLineNo">33439</span>                                        of32data[it.oIndex] = ox;<a name="line.33439"></a>
+<span class="sourceLineNo">33440</span>                                }<a name="line.33440"></a>
+<span class="sourceLineNo">33441</span>                        }<a name="line.33441"></a>
+<span class="sourceLineNo">33442</span>                        break;<a name="line.33442"></a>
+<span class="sourceLineNo">33443</span>                case Dataset.FLOAT64:<a name="line.33443"></a>
+<span class="sourceLineNo">33444</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.33444"></a>
+<span class="sourceLineNo">33445</span>                        if (it.isOutputDouble()) {<a name="line.33445"></a>
+<span class="sourceLineNo">33446</span>                                while (it.hasNext()) {<a name="line.33446"></a>
+<span class="sourceLineNo">33447</span>                                        final double ix = it.aDouble;<a name="line.33447"></a>
+<span class="sourceLineNo">33448</span>                                        double ox;<a name="line.33448"></a>
+<span class="sourceLineNo">33449</span>                                        ox = (Math.toRadians(ix));<a name="line.33449"></a>
+<span class="sourceLineNo">33450</span>                                        of64data[it.oIndex] = ox;<a name="line.33450"></a>
+<span class="sourceLineNo">33451</span>                                }<a name="line.33451"></a>
+<span class="sourceLineNo">33452</span>                        } else {<a name="line.33452"></a>
+<span class="sourceLineNo">33453</span>                                while (it.hasNext()) {<a name="line.33453"></a>
+<span class="sourceLineNo">33454</span>                                        final long ix = it.aLong;<a name="line.33454"></a>
+<span class="sourceLineNo">33455</span>                                        double ox;<a name="line.33455"></a>
+<span class="sourceLineNo">33456</span>                                        ox = (Math.toRadians(ix));<a name="line.33456"></a>
+<span class="sourceLineNo">33457</span>                                        of64data[it.oIndex] = ox;<a name="line.33457"></a>
+<span class="sourceLineNo">33458</span>                                }<a name="line.33458"></a>
+<span class="sourceLineNo">33459</span>                        }<a name="line.33459"></a>
+<span class="sourceLineNo">33460</span>                        break;<a name="line.33460"></a>
+<span class="sourceLineNo">33461</span>                case Dataset.ARRAYFLOAT32:<a name="line.33461"></a>
+<span class="sourceLineNo">33462</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.33462"></a>
+<span class="sourceLineNo">33463</span>                        if (is == 1) {<a name="line.33463"></a>
+<span class="sourceLineNo">33464</span>                                if (it.isOutputDouble()) {<a name="line.33464"></a>
+<span class="sourceLineNo">33465</span>                                        while (it.hasNext()) {<a name="line.33465"></a>
+<span class="sourceLineNo">33466</span>                                                final double ix = it.aDouble;<a name="line.33466"></a>
+<span class="sourceLineNo">33467</span>                                                float ox;<a name="line.33467"></a>
+<span class="sourceLineNo">33468</span>                                                ox = (float) (Math.toRadians(ix));<a name="line.33468"></a>
+<span class="sourceLineNo">33469</span>                                                oaf32data[it.oIndex] = ox;<a name="line.33469"></a>
+<span class="sourceLineNo">33470</span>                                        }<a name="line.33470"></a>
+<span class="sourceLineNo">33471</span>                                } else {<a name="line.33471"></a>
+<span class="sourceLineNo">33472</span>                                        while (it.hasNext()) {<a name="line.33472"></a>
+<span class="sourceLineNo">33473</span>                                                final long ix = it.aLong;<a name="line.33473"></a>
+<span class="sourceLineNo">33474</span>                                                float ox;<a name="line.33474"></a>
+<span class="sourceLineNo">33475</span>                                                ox = (float) (Math.toRadians(ix));<a name="line.33475"></a>
+<span class="sourceLineNo">33476</span>                                                oaf32data[it.oIndex] = ox;<a name="line.33476"></a>
+<span class="sourceLineNo">33477</span>                                        }<a name="line.33477"></a>
+<span class="sourceLineNo">33478</span>                                }<a name="line.33478"></a>
+<span class="sourceLineNo">33479</span>                        } else if (as == 1) {<a name="line.33479"></a>
+<span class="sourceLineNo">33480</span>                                if (it.isOutputDouble()) {<a name="line.33480"></a>
+<span class="sourceLineNo">33481</span>                                        while (it.hasNext()) {<a name="line.33481"></a>
+<span class="sourceLineNo">33482</span>                                                final double ix = it.aDouble;<a name="line.33482"></a>
+<span class="sourceLineNo">33483</span>                                                float ox;<a name="line.33483"></a>
+<span class="sourceLineNo">33484</span>                                                ox = (float) (Math.toRadians(ix));<a name="line.33484"></a>
+<span class="sourceLineNo">33485</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33485"></a>
+<span class="sourceLineNo">33486</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.33486"></a>
+<span class="sourceLineNo">33487</span>                                                }<a name="line.33487"></a>
+<span class="sourceLineNo">33488</span>                                        }<a name="line.33488"></a>
+<span class="sourceLineNo">33489</span>                                } else {<a name="line.33489"></a>
+<span class="sourceLineNo">33490</span>                                        while (it.hasNext()) {<a name="line.33490"></a>
+<span class="sourceLineNo">33491</span>                                                final long ix = it.aLong;<a name="line.33491"></a>
+<span class="sourceLineNo">33492</span>                                                float ox;<a name="line.33492"></a>
+<span class="sourceLineNo">33493</span>                                                ox = (float) (Math.toRadians(ix));<a name="line.33493"></a>
+<span class="sourceLineNo">33494</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33494"></a>
+<span class="sourceLineNo">33495</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.33495"></a>
+<span class="sourceLineNo">33496</span>                                                }<a name="line.33496"></a>
+<span class="sourceLineNo">33497</span>                                        }<a name="line.33497"></a>
+<span class="sourceLineNo">33498</span>                                }<a name="line.33498"></a>
+<span class="sourceLineNo">33499</span>                        } else {<a name="line.33499"></a>
+<span class="sourceLineNo">33500</span>                                if (it.isOutputDouble()) {<a name="line.33500"></a>
+<span class="sourceLineNo">33501</span>                                        while (it.hasNext()) {<a name="line.33501"></a>
+<span class="sourceLineNo">33502</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33502"></a>
+<span class="sourceLineNo">33503</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.33503"></a>
+<span class="sourceLineNo">33504</span>                                                        float ox;<a name="line.33504"></a>
+<span class="sourceLineNo">33505</span>                                                        ox = (float) (Math.toRadians(ix));<a name="line.33505"></a>
+<span class="sourceLineNo">33506</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.33506"></a>
+<span class="sourceLineNo">33507</span>                                                }<a name="line.33507"></a>
+<span class="sourceLineNo">33508</span>                                        }<a name="line.33508"></a>
+<span class="sourceLineNo">33509</span>                                } else {<a name="line.33509"></a>
+<span class="sourceLineNo">33510</span>                                        while (it.hasNext()) {<a name="line.33510"></a>
+<span class="sourceLineNo">33511</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33511"></a>
+<span class="sourceLineNo">33512</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.33512"></a>
+<span class="sourceLineNo">33513</span>                                                        float ox;<a name="line.33513"></a>
+<span class="sourceLineNo">33514</span>                                                        ox = (float) (Math.toRadians(ix));<a name="line.33514"></a>
+<span class="sourceLineNo">33515</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.33515"></a>
+<span class="sourceLineNo">33516</span>                                                }<a name="line.33516"></a>
+<span class="sourceLineNo">33517</span>                                        }<a name="line.33517"></a>
+<span class="sourceLineNo">33518</span>                                }<a name="line.33518"></a>
+<span class="sourceLineNo">33519</span>                        }<a name="line.33519"></a>
+<span class="sourceLineNo">33520</span>                        break;<a name="line.33520"></a>
+<span class="sourceLineNo">33521</span>                case Dataset.ARRAYFLOAT64:<a name="line.33521"></a>
+<span class="sourceLineNo">33522</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.33522"></a>
+<span class="sourceLineNo">33523</span>                        if (is == 1) {<a name="line.33523"></a>
+<span class="sourceLineNo">33524</span>                                if (it.isOutputDouble()) {<a name="line.33524"></a>
+<span class="sourceLineNo">33525</span>                                        while (it.hasNext()) {<a name="line.33525"></a>
+<span class="sourceLineNo">33526</span>                                                final double ix = it.aDouble;<a name="line.33526"></a>
+<span class="sourceLineNo">33527</span>                                                double ox;<a name="line.33527"></a>
+<span class="sourceLineNo">33528</span>                                                ox = (Math.toRadians(ix));<a name="line.33528"></a>
+<span class="sourceLineNo">33529</span>                                                oaf64data[it.oIndex] = ox;<a name="line.33529"></a>
+<span class="sourceLineNo">33530</span>                                        }<a name="line.33530"></a>
+<span class="sourceLineNo">33531</span>                                } else {<a name="line.33531"></a>
+<span class="sourceLineNo">33532</span>                                        while (it.hasNext()) {<a name="line.33532"></a>
+<span class="sourceLineNo">33533</span>                                                final long ix = it.aLong;<a name="line.33533"></a>
+<span class="sourceLineNo">33534</span>                                                double ox;<a name="line.33534"></a>
+<span class="sourceLineNo">33535</span>                                                ox = (Math.toRadians(ix));<a name="line.33535"></a>
+<span class="sourceLineNo">33536</span>                                                oaf64data[it.oIndex] = ox;<a name="line.33536"></a>
+<span class="sourceLineNo">33537</span>                                        }<a name="line.33537"></a>
+<span class="sourceLineNo">33538</span>                                }<a name="line.33538"></a>
+<span class="sourceLineNo">33539</span>                        } else if (as == 1) {<a name="line.33539"></a>
+<span class="sourceLineNo">33540</span>                                if (it.isOutputDouble()) {<a name="line.33540"></a>
+<span class="sourceLineNo">33541</span>                                        while (it.hasNext()) {<a name="line.33541"></a>
+<span class="sourceLineNo">33542</span>                                                final double ix = it.aDouble;<a name="line.33542"></a>
+<span class="sourceLineNo">33543</span>                                                double ox;<a name="line.33543"></a>
+<span class="sourceLineNo">33544</span>                                                ox = (Math.toRadians(ix));<a name="line.33544"></a>
+<span class="sourceLineNo">33545</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33545"></a>
+<span class="sourceLineNo">33546</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.33546"></a>
+<span class="sourceLineNo">33547</span>                                                }<a name="line.33547"></a>
+<span class="sourceLineNo">33548</span>                                        }<a name="line.33548"></a>
+<span class="sourceLineNo">33549</span>                                } else {<a name="line.33549"></a>
+<span class="sourceLineNo">33550</span>                                        while (it.hasNext()) {<a name="line.33550"></a>
+<span class="sourceLineNo">33551</span>                                                final long ix = it.aLong;<a name="line.33551"></a>
+<span class="sourceLineNo">33552</span>                                                double ox;<a name="line.33552"></a>
+<span class="sourceLineNo">33553</span>                                                ox = (Math.toRadians(ix));<a name="line.33553"></a>
+<span class="sourceLineNo">33554</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33554"></a>
+<span class="sourceLineNo">33555</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.33555"></a>
+<span class="sourceLineNo">33556</span>                                                }<a name="line.33556"></a>
+<span class="sourceLineNo">33557</span>                                        }<a name="line.33557"></a>
+<span class="sourceLineNo">33558</span>                                }<a name="line.33558"></a>
+<span class="sourceLineNo">33559</span>                        } else {<a name="line.33559"></a>
+<span class="sourceLineNo">33560</span>                                if (it.isOutputDouble()) {<a name="line.33560"></a>
+<span class="sourceLineNo">33561</span>                                        while (it.hasNext()) {<a name="line.33561"></a>
+<span class="sourceLineNo">33562</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33562"></a>
+<span class="sourceLineNo">33563</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.33563"></a>
+<span class="sourceLineNo">33564</span>                                                        double ox;<a name="line.33564"></a>
+<span class="sourceLineNo">33565</span>                                                        ox = (Math.toRadians(ix));<a name="line.33565"></a>
+<span class="sourceLineNo">33566</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.33566"></a>
+<span class="sourceLineNo">33567</span>                                                }<a name="line.33567"></a>
+<span class="sourceLineNo">33568</span>                                        }<a name="line.33568"></a>
+<span class="sourceLineNo">33569</span>                                } else {<a name="line.33569"></a>
+<span class="sourceLineNo">33570</span>                                        while (it.hasNext()) {<a name="line.33570"></a>
+<span class="sourceLineNo">33571</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33571"></a>
+<span class="sourceLineNo">33572</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.33572"></a>
+<span class="sourceLineNo">33573</span>                                                        double ox;<a name="line.33573"></a>
+<span class="sourceLineNo">33574</span>                                                        ox = (Math.toRadians(ix));<a name="line.33574"></a>
+<span class="sourceLineNo">33575</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.33575"></a>
+<span class="sourceLineNo">33576</span>                                                }<a name="line.33576"></a>
+<span class="sourceLineNo">33577</span>                                        }<a name="line.33577"></a>
+<span class="sourceLineNo">33578</span>                                }<a name="line.33578"></a>
+<span class="sourceLineNo">33579</span>                        }<a name="line.33579"></a>
+<span class="sourceLineNo">33580</span>                        break;<a name="line.33580"></a>
+<span class="sourceLineNo">33581</span>                case Dataset.COMPLEX64:<a name="line.33581"></a>
+<span class="sourceLineNo">33582</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.33582"></a>
+<span class="sourceLineNo">33583</span>                        if (!da.isComplex()) {<a name="line.33583"></a>
+<span class="sourceLineNo">33584</span>                                if (it.isOutputDouble()) {<a name="line.33584"></a>
+<span class="sourceLineNo">33585</span>                                        final double iy = 0;<a name="line.33585"></a>
+<span class="sourceLineNo">33586</span>                                        while (it.hasNext()) {<a name="line.33586"></a>
+<span class="sourceLineNo">33587</span>                                                final double ix = it.aDouble;<a name="line.33587"></a>
+<span class="sourceLineNo">33588</span>                                                float ox;<a name="line.33588"></a>
+<span class="sourceLineNo">33589</span>                                                float oy;<a name="line.33589"></a>
+<span class="sourceLineNo">33590</span>                                                ox = (float) (Math.toRadians(ix));<a name="line.33590"></a>
+<span class="sourceLineNo">33591</span>                                                oy = (float) (Math.toRadians(iy));<a name="line.33591"></a>
+<span class="sourceLineNo">33592</span>                                                oc64data[it.oIndex] = ox;<a name="line.33592"></a>
+<span class="sourceLineNo">33593</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.33593"></a>
+<span class="sourceLineNo">33594</span>                                        }<a name="line.33594"></a>
+<span class="sourceLineNo">33595</span>                                } else {<a name="line.33595"></a>
+<span class="sourceLineNo">33596</span>                                        final long iy = 0;<a name="line.33596"></a>
+<span class="sourceLineNo">33597</span>                                        while (it.hasNext()) {<a name="line.33597"></a>
+<span class="sourceLineNo">33598</span>                                                final long ix = it.aLong;<a name="line.33598"></a>
+<span class="sourceLineNo">33599</span>                                                float ox;<a name="line.33599"></a>
+<span class="sourceLineNo">33600</span>                                                float oy;<a name="line.33600"></a>
+<span class="sourceLineNo">33601</span>                                                ox = (float) toLong(Math.toRadians(ix));<a name="line.33601"></a>
+<span class="sourceLineNo">33602</span>                                                oy = (float) toLong(Math.toRadians(iy));<a name="line.33602"></a>
+<span class="sourceLineNo">33603</span>                                                oc64data[it.oIndex] = ox;<a name="line.33603"></a>
+<span class="sourceLineNo">33604</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.33604"></a>
+<span class="sourceLineNo">33605</span>                                        }<a name="line.33605"></a>
+<span class="sourceLineNo">33606</span>                                }<a name="line.33606"></a>
+<span class="sourceLineNo">33607</span>                        } else {<a name="line.33607"></a>
+<span class="sourceLineNo">33608</span>                                while (it.hasNext()) {<a name="line.33608"></a>
+<span class="sourceLineNo">33609</span>                                        final double ix = it.aDouble;<a name="line.33609"></a>
+<span class="sourceLineNo">33610</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.33610"></a>
+<span class="sourceLineNo">33611</span>                                        float ox;<a name="line.33611"></a>
+<span class="sourceLineNo">33612</span>                                        float oy;<a name="line.33612"></a>
+<span class="sourceLineNo">33613</span>                                        ox = (float) (Math.toRadians(ix));<a name="line.33613"></a>
+<span class="sourceLineNo">33614</span>                                        oy = (float) (Math.toRadians(iy));<a name="line.33614"></a>
+<span class="sourceLineNo">33615</span>                                        oc64data[it.oIndex] = ox;<a name="line.33615"></a>
+<span class="sourceLineNo">33616</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.33616"></a>
+<span class="sourceLineNo">33617</span>                                }<a name="line.33617"></a>
+<span class="sourceLineNo">33618</span>                        }<a name="line.33618"></a>
+<span class="sourceLineNo">33619</span>                        break;<a name="line.33619"></a>
+<span class="sourceLineNo">33620</span>                case Dataset.COMPLEX128:<a name="line.33620"></a>
+<span class="sourceLineNo">33621</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.33621"></a>
+<span class="sourceLineNo">33622</span>                        if (!da.isComplex()) {<a name="line.33622"></a>
+<span class="sourceLineNo">33623</span>                                if (it.isOutputDouble()) {<a name="line.33623"></a>
+<span class="sourceLineNo">33624</span>                                        final double iy = 0;<a name="line.33624"></a>
+<span class="sourceLineNo">33625</span>                                        while (it.hasNext()) {<a name="line.33625"></a>
+<span class="sourceLineNo">33626</span>                                                final double ix = it.aDouble;<a name="line.33626"></a>
+<span class="sourceLineNo">33627</span>                                                double ox;<a name="line.33627"></a>
+<span class="sourceLineNo">33628</span>                                                double oy;<a name="line.33628"></a>
+<span class="sourceLineNo">33629</span>                                                ox = (Math.toRadians(ix));<a name="line.33629"></a>
+<span class="sourceLineNo">33630</span>                                                oy = (Math.toRadians(iy));<a name="line.33630"></a>
+<span class="sourceLineNo">33631</span>                                                oc128data[it.oIndex] = ox;<a name="line.33631"></a>
+<span class="sourceLineNo">33632</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.33632"></a>
+<span class="sourceLineNo">33633</span>                                        }<a name="line.33633"></a>
+<span class="sourceLineNo">33634</span>                                } else {<a name="line.33634"></a>
+<span class="sourceLineNo">33635</span>                                        final long iy = 0;<a name="line.33635"></a>
+<span class="sourceLineNo">33636</span>                                        while (it.hasNext()) {<a name="line.33636"></a>
+<span class="sourceLineNo">33637</span>                                                final long ix = it.aLong;<a name="line.33637"></a>
+<span class="sourceLineNo">33638</span>                                                double ox;<a name="line.33638"></a>
+<span class="sourceLineNo">33639</span>                                                double oy;<a name="line.33639"></a>
+<span class="sourceLineNo">33640</span>                                                ox = (double) (Math.toRadians(ix));<a name="line.33640"></a>
+<span class="sourceLineNo">33641</span>                                                oy = (double) (Math.toRadians(iy));<a name="line.33641"></a>
+<span class="sourceLineNo">33642</span>                                                oc128data[it.oIndex] = ox;<a name="line.33642"></a>
+<span class="sourceLineNo">33643</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.33643"></a>
+<span class="sourceLineNo">33644</span>                                        }<a name="line.33644"></a>
+<span class="sourceLineNo">33645</span>                                }<a name="line.33645"></a>
+<span class="sourceLineNo">33646</span>                        } else {<a name="line.33646"></a>
+<span class="sourceLineNo">33647</span>                                while (it.hasNext()) {<a name="line.33647"></a>
+<span class="sourceLineNo">33648</span>                                        final double ix = it.aDouble;<a name="line.33648"></a>
+<span class="sourceLineNo">33649</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.33649"></a>
+<span class="sourceLineNo">33650</span>                                        double ox;<a name="line.33650"></a>
+<span class="sourceLineNo">33651</span>                                        double oy;<a name="line.33651"></a>
+<span class="sourceLineNo">33652</span>                                        ox = (Math.toRadians(ix));<a name="line.33652"></a>
+<span class="sourceLineNo">33653</span>                                        oy = (Math.toRadians(iy));<a name="line.33653"></a>
+<span class="sourceLineNo">33654</span>                                        oc128data[it.oIndex] = ox;<a name="line.33654"></a>
+<span class="sourceLineNo">33655</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.33655"></a>
+<span class="sourceLineNo">33656</span>                                }<a name="line.33656"></a>
+<span class="sourceLineNo">33657</span>                        }<a name="line.33657"></a>
+<span class="sourceLineNo">33658</span>                        break;<a name="line.33658"></a>
+<span class="sourceLineNo">33659</span>                default:<a name="line.33659"></a>
+<span class="sourceLineNo">33660</span>                        throw new IllegalArgumentException("toRadians supports integer, compound integer, real, compound real, complex datasets only");<a name="line.33660"></a>
+<span class="sourceLineNo">33661</span>                }<a name="line.33661"></a>
+<span class="sourceLineNo">33662</span><a name="line.33662"></a>
+<span class="sourceLineNo">33663</span>                addFunctionName(result, "toRadians");<a name="line.33663"></a>
+<span class="sourceLineNo">33664</span>                return result;<a name="line.33664"></a>
+<span class="sourceLineNo">33665</span>        }<a name="line.33665"></a>
+<span class="sourceLineNo">33666</span><a name="line.33666"></a>
+<span class="sourceLineNo">33667</span>        /**<a name="line.33667"></a>
+<span class="sourceLineNo">33668</span>         * signum - sign of each element<a name="line.33668"></a>
+<span class="sourceLineNo">33669</span>         * @param a<a name="line.33669"></a>
+<span class="sourceLineNo">33670</span>         * @return dataset<a name="line.33670"></a>
+<span class="sourceLineNo">33671</span>         */<a name="line.33671"></a>
+<span class="sourceLineNo">33672</span>        public static Dataset signum(final Object a) {<a name="line.33672"></a>
+<span class="sourceLineNo">33673</span>                return signum(a, null);<a name="line.33673"></a>
+<span class="sourceLineNo">33674</span>        }<a name="line.33674"></a>
+<span class="sourceLineNo">33675</span><a name="line.33675"></a>
+<span class="sourceLineNo">33676</span>        /**<a name="line.33676"></a>
+<span class="sourceLineNo">33677</span>         * signum - sign of each element<a name="line.33677"></a>
+<span class="sourceLineNo">33678</span>         * @param a<a name="line.33678"></a>
+<span class="sourceLineNo">33679</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.33679"></a>
+<span class="sourceLineNo">33680</span>         * @return dataset<a name="line.33680"></a>
+<span class="sourceLineNo">33681</span>         */<a name="line.33681"></a>
+<span class="sourceLineNo">33682</span>        public static Dataset signum(final Object a, final Dataset o) {<a name="line.33682"></a>
+<span class="sourceLineNo">33683</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.33683"></a>
+<span class="sourceLineNo">33684</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.33684"></a>
+<span class="sourceLineNo">33685</span>                final Dataset result = it.getOutput();<a name="line.33685"></a>
+<span class="sourceLineNo">33686</span>                if (!result.isComplex()) {<a name="line.33686"></a>
+<span class="sourceLineNo">33687</span>                        if (da.isComplex()) {<a name="line.33687"></a>
+<span class="sourceLineNo">33688</span>                                da = da.getRealView();<a name="line.33688"></a>
+<span class="sourceLineNo">33689</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.33689"></a>
+<span class="sourceLineNo">33690</span>                        }<a name="line.33690"></a>
+<span class="sourceLineNo">33691</span>                }<a name="line.33691"></a>
+<span class="sourceLineNo">33692</span>                final int is = result.getElementsPerItem();<a name="line.33692"></a>
+<span class="sourceLineNo">33693</span>                final int as = da.getElementsPerItem();<a name="line.33693"></a>
+<span class="sourceLineNo">33694</span>                final int dt = result.getDType();<a name="line.33694"></a>
+<span class="sourceLineNo">33695</span><a name="line.33695"></a>
+<span class="sourceLineNo">33696</span>                switch(dt) {<a name="line.33696"></a>
+<span class="sourceLineNo">33697</span>                case Dataset.INT8:<a name="line.33697"></a>
+<span class="sourceLineNo">33698</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.33698"></a>
+<span class="sourceLineNo">33699</span>                        if (it.isOutputDouble()) {<a name="line.33699"></a>
+<span class="sourceLineNo">33700</span>                                while (it.hasNext()) {<a name="line.33700"></a>
+<span class="sourceLineNo">33701</span>                                        final double ix = it.aDouble;<a name="line.33701"></a>
+<span class="sourceLineNo">33702</span>                                        byte ox;<a name="line.33702"></a>
+<span class="sourceLineNo">33703</span>                                        ox = (byte) toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33703"></a>
+<span class="sourceLineNo">33704</span>                                        oi8data[it.oIndex] = ox;<a name="line.33704"></a>
+<span class="sourceLineNo">33705</span>                                }<a name="line.33705"></a>
+<span class="sourceLineNo">33706</span>                        } else {<a name="line.33706"></a>
+<span class="sourceLineNo">33707</span>                                while (it.hasNext()) {<a name="line.33707"></a>
+<span class="sourceLineNo">33708</span>                                        final long ix = it.aLong;<a name="line.33708"></a>
+<span class="sourceLineNo">33709</span>                                        byte ox;<a name="line.33709"></a>
+<span class="sourceLineNo">33710</span>                                        ox = (byte) toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33710"></a>
+<span class="sourceLineNo">33711</span>                                        oi8data[it.oIndex] = ox;<a name="line.33711"></a>
+<span class="sourceLineNo">33712</span>                                }<a name="line.33712"></a>
+<span class="sourceLineNo">33713</span>                        }<a name="line.33713"></a>
+<span class="sourceLineNo">33714</span>                        break;<a name="line.33714"></a>
+<span class="sourceLineNo">33715</span>                case Dataset.INT16:<a name="line.33715"></a>
+<span class="sourceLineNo">33716</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.33716"></a>
+<span class="sourceLineNo">33717</span>                        if (it.isOutputDouble()) {<a name="line.33717"></a>
+<span class="sourceLineNo">33718</span>                                while (it.hasNext()) {<a name="line.33718"></a>
+<span class="sourceLineNo">33719</span>                                        final double ix = it.aDouble;<a name="line.33719"></a>
+<span class="sourceLineNo">33720</span>                                        short ox;<a name="line.33720"></a>
+<span class="sourceLineNo">33721</span>                                        ox = (short) toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33721"></a>
+<span class="sourceLineNo">33722</span>                                        oi16data[it.oIndex] = ox;<a name="line.33722"></a>
+<span class="sourceLineNo">33723</span>                                }<a name="line.33723"></a>
+<span class="sourceLineNo">33724</span>                        } else {<a name="line.33724"></a>
+<span class="sourceLineNo">33725</span>                                while (it.hasNext()) {<a name="line.33725"></a>
+<span class="sourceLineNo">33726</span>                                        final long ix = it.aLong;<a name="line.33726"></a>
+<span class="sourceLineNo">33727</span>                                        short ox;<a name="line.33727"></a>
+<span class="sourceLineNo">33728</span>                                        ox = (short) toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33728"></a>
+<span class="sourceLineNo">33729</span>                                        oi16data[it.oIndex] = ox;<a name="line.33729"></a>
+<span class="sourceLineNo">33730</span>                                }<a name="line.33730"></a>
+<span class="sourceLineNo">33731</span>                        }<a name="line.33731"></a>
+<span class="sourceLineNo">33732</span>                        break;<a name="line.33732"></a>
+<span class="sourceLineNo">33733</span>                case Dataset.INT64:<a name="line.33733"></a>
+<span class="sourceLineNo">33734</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.33734"></a>
+<span class="sourceLineNo">33735</span>                        if (it.isOutputDouble()) {<a name="line.33735"></a>
+<span class="sourceLineNo">33736</span>                                while (it.hasNext()) {<a name="line.33736"></a>
+<span class="sourceLineNo">33737</span>                                        final double ix = it.aDouble;<a name="line.33737"></a>
+<span class="sourceLineNo">33738</span>                                        long ox;<a name="line.33738"></a>
+<span class="sourceLineNo">33739</span>                                        ox = toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33739"></a>
+<span class="sourceLineNo">33740</span>                                        oi64data[it.oIndex] = ox;<a name="line.33740"></a>
+<span class="sourceLineNo">33741</span>                                }<a name="line.33741"></a>
+<span class="sourceLineNo">33742</span>                        } else {<a name="line.33742"></a>
+<span class="sourceLineNo">33743</span>                                while (it.hasNext()) {<a name="line.33743"></a>
+<span class="sourceLineNo">33744</span>                                        final long ix = it.aLong;<a name="line.33744"></a>
+<span class="sourceLineNo">33745</span>                                        long ox;<a name="line.33745"></a>
+<span class="sourceLineNo">33746</span>                                        ox = toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33746"></a>
+<span class="sourceLineNo">33747</span>                                        oi64data[it.oIndex] = ox;<a name="line.33747"></a>
+<span class="sourceLineNo">33748</span>                                }<a name="line.33748"></a>
+<span class="sourceLineNo">33749</span>                        }<a name="line.33749"></a>
+<span class="sourceLineNo">33750</span>                        break;<a name="line.33750"></a>
+<span class="sourceLineNo">33751</span>                case Dataset.INT32:<a name="line.33751"></a>
+<span class="sourceLineNo">33752</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.33752"></a>
+<span class="sourceLineNo">33753</span>                        if (it.isOutputDouble()) {<a name="line.33753"></a>
+<span class="sourceLineNo">33754</span>                                while (it.hasNext()) {<a name="line.33754"></a>
+<span class="sourceLineNo">33755</span>                                        final double ix = it.aDouble;<a name="line.33755"></a>
+<span class="sourceLineNo">33756</span>                                        int ox;<a name="line.33756"></a>
+<span class="sourceLineNo">33757</span>                                        ox = (int) toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33757"></a>
+<span class="sourceLineNo">33758</span>                                        oi32data[it.oIndex] = ox;<a name="line.33758"></a>
+<span class="sourceLineNo">33759</span>                                }<a name="line.33759"></a>
+<span class="sourceLineNo">33760</span>                        } else {<a name="line.33760"></a>
+<span class="sourceLineNo">33761</span>                                while (it.hasNext()) {<a name="line.33761"></a>
+<span class="sourceLineNo">33762</span>                                        final long ix = it.aLong;<a name="line.33762"></a>
+<span class="sourceLineNo">33763</span>                                        int ox;<a name="line.33763"></a>
+<span class="sourceLineNo">33764</span>                                        ox = (int) toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33764"></a>
+<span class="sourceLineNo">33765</span>                                        oi32data[it.oIndex] = ox;<a name="line.33765"></a>
+<span class="sourceLineNo">33766</span>                                }<a name="line.33766"></a>
+<span class="sourceLineNo">33767</span>                        }<a name="line.33767"></a>
+<span class="sourceLineNo">33768</span>                        break;<a name="line.33768"></a>
+<span class="sourceLineNo">33769</span>                case Dataset.ARRAYINT8:<a name="line.33769"></a>
+<span class="sourceLineNo">33770</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.33770"></a>
+<span class="sourceLineNo">33771</span>                        if (is == 1) {<a name="line.33771"></a>
+<span class="sourceLineNo">33772</span>                                if (it.isOutputDouble()) {<a name="line.33772"></a>
+<span class="sourceLineNo">33773</span>                                        while (it.hasNext()) {<a name="line.33773"></a>
+<span class="sourceLineNo">33774</span>                                                final double ix = it.aDouble;<a name="line.33774"></a>
+<span class="sourceLineNo">33775</span>                                                byte ox;<a name="line.33775"></a>
+<span class="sourceLineNo">33776</span>                                                ox = (byte) toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33776"></a>
+<span class="sourceLineNo">33777</span>                                                oai8data[it.oIndex] = ox;<a name="line.33777"></a>
+<span class="sourceLineNo">33778</span>                                        }<a name="line.33778"></a>
+<span class="sourceLineNo">33779</span>                                } else {<a name="line.33779"></a>
+<span class="sourceLineNo">33780</span>                                        while (it.hasNext()) {<a name="line.33780"></a>
+<span class="sourceLineNo">33781</span>                                                final long ix = it.aLong;<a name="line.33781"></a>
+<span class="sourceLineNo">33782</span>                                                byte ox;<a name="line.33782"></a>
+<span class="sourceLineNo">33783</span>                                                ox = (byte) toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33783"></a>
+<span class="sourceLineNo">33784</span>                                                oai8data[it.oIndex] = ox;<a name="line.33784"></a>
+<span class="sourceLineNo">33785</span>                                        }<a name="line.33785"></a>
+<span class="sourceLineNo">33786</span>                                }<a name="line.33786"></a>
+<span class="sourceLineNo">33787</span>                        } else if (as == 1) {<a name="line.33787"></a>
+<span class="sourceLineNo">33788</span>                                if (it.isOutputDouble()) {<a name="line.33788"></a>
+<span class="sourceLineNo">33789</span>                                        while (it.hasNext()) {<a name="line.33789"></a>
+<span class="sourceLineNo">33790</span>                                                final double ix = it.aDouble;<a name="line.33790"></a>
+<span class="sourceLineNo">33791</span>                                                byte ox;<a name="line.33791"></a>
+<span class="sourceLineNo">33792</span>                                                ox = (byte) toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33792"></a>
+<span class="sourceLineNo">33793</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33793"></a>
+<span class="sourceLineNo">33794</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.33794"></a>
+<span class="sourceLineNo">33795</span>                                                }<a name="line.33795"></a>
+<span class="sourceLineNo">33796</span>                                        }<a name="line.33796"></a>
+<span class="sourceLineNo">33797</span>                                } else {<a name="line.33797"></a>
+<span class="sourceLineNo">33798</span>                                        while (it.hasNext()) {<a name="line.33798"></a>
+<span class="sourceLineNo">33799</span>                                                final long ix = it.aLong;<a name="line.33799"></a>
+<span class="sourceLineNo">33800</span>                                                byte ox;<a name="line.33800"></a>
+<span class="sourceLineNo">33801</span>                                                ox = (byte) toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33801"></a>
+<span class="sourceLineNo">33802</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33802"></a>
+<span class="sourceLineNo">33803</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.33803"></a>
+<span class="sourceLineNo">33804</span>                                                }<a name="line.33804"></a>
+<span class="sourceLineNo">33805</span>                                        }<a name="line.33805"></a>
+<span class="sourceLineNo">33806</span>                                }<a name="line.33806"></a>
+<span class="sourceLineNo">33807</span>                        } else {<a name="line.33807"></a>
+<span class="sourceLineNo">33808</span>                                if (it.isOutputDouble()) {<a name="line.33808"></a>
+<span class="sourceLineNo">33809</span>                                        while (it.hasNext()) {<a name="line.33809"></a>
+<span class="sourceLineNo">33810</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33810"></a>
+<span class="sourceLineNo">33811</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.33811"></a>
+<span class="sourceLineNo">33812</span>                                                        byte ox;<a name="line.33812"></a>
+<span class="sourceLineNo">33813</span>                                                        ox = (byte) toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33813"></a>
+<span class="sourceLineNo">33814</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.33814"></a>
+<span class="sourceLineNo">33815</span>                                                }<a name="line.33815"></a>
+<span class="sourceLineNo">33816</span>                                        }<a name="line.33816"></a>
+<span class="sourceLineNo">33817</span>                                } else {<a name="line.33817"></a>
+<span class="sourceLineNo">33818</span>                                        while (it.hasNext()) {<a name="line.33818"></a>
+<span class="sourceLineNo">33819</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33819"></a>
+<span class="sourceLineNo">33820</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.33820"></a>
+<span class="sourceLineNo">33821</span>                                                        byte ox;<a name="line.33821"></a>
+<span class="sourceLineNo">33822</span>                                                        ox = (byte) toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33822"></a>
+<span class="sourceLineNo">33823</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.33823"></a>
+<span class="sourceLineNo">33824</span>                                                }<a name="line.33824"></a>
+<span class="sourceLineNo">33825</span>                                        }<a name="line.33825"></a>
+<span class="sourceLineNo">33826</span>                                }<a name="line.33826"></a>
+<span class="sourceLineNo">33827</span>                        }<a name="line.33827"></a>
+<span class="sourceLineNo">33828</span>                        break;<a name="line.33828"></a>
+<span class="sourceLineNo">33829</span>                case Dataset.ARRAYINT16:<a name="line.33829"></a>
+<span class="sourceLineNo">33830</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.33830"></a>
+<span class="sourceLineNo">33831</span>                        if (is == 1) {<a name="line.33831"></a>
+<span class="sourceLineNo">33832</span>                                if (it.isOutputDouble()) {<a name="line.33832"></a>
+<span class="sourceLineNo">33833</span>                                        while (it.hasNext()) {<a name="line.33833"></a>
+<span class="sourceLineNo">33834</span>                                                final double ix = it.aDouble;<a name="line.33834"></a>
+<span class="sourceLineNo">33835</span>                                                short ox;<a name="line.33835"></a>
+<span class="sourceLineNo">33836</span>                                                ox = (short) toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33836"></a>
+<span class="sourceLineNo">33837</span>                                                oai16data[it.oIndex] = ox;<a name="line.33837"></a>
+<span class="sourceLineNo">33838</span>                                        }<a name="line.33838"></a>
+<span class="sourceLineNo">33839</span>                                } else {<a name="line.33839"></a>
+<span class="sourceLineNo">33840</span>                                        while (it.hasNext()) {<a name="line.33840"></a>
+<span class="sourceLineNo">33841</span>                                                final long ix = it.aLong;<a name="line.33841"></a>
+<span class="sourceLineNo">33842</span>                                                short ox;<a name="line.33842"></a>
+<span class="sourceLineNo">33843</span>                                                ox = (short) toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33843"></a>
+<span class="sourceLineNo">33844</span>                                                oai16data[it.oIndex] = ox;<a name="line.33844"></a>
+<span class="sourceLineNo">33845</span>                                        }<a name="line.33845"></a>
+<span class="sourceLineNo">33846</span>                                }<a name="line.33846"></a>
+<span class="sourceLineNo">33847</span>                        } else if (as == 1) {<a name="line.33847"></a>
+<span class="sourceLineNo">33848</span>                                if (it.isOutputDouble()) {<a name="line.33848"></a>
+<span class="sourceLineNo">33849</span>                                        while (it.hasNext()) {<a name="line.33849"></a>
+<span class="sourceLineNo">33850</span>                                                final double ix = it.aDouble;<a name="line.33850"></a>
+<span class="sourceLineNo">33851</span>                                                short ox;<a name="line.33851"></a>
+<span class="sourceLineNo">33852</span>                                                ox = (short) toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33852"></a>
+<span class="sourceLineNo">33853</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33853"></a>
+<span class="sourceLineNo">33854</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.33854"></a>
+<span class="sourceLineNo">33855</span>                                                }<a name="line.33855"></a>
+<span class="sourceLineNo">33856</span>                                        }<a name="line.33856"></a>
+<span class="sourceLineNo">33857</span>                                } else {<a name="line.33857"></a>
+<span class="sourceLineNo">33858</span>                                        while (it.hasNext()) {<a name="line.33858"></a>
+<span class="sourceLineNo">33859</span>                                                final long ix = it.aLong;<a name="line.33859"></a>
+<span class="sourceLineNo">33860</span>                                                short ox;<a name="line.33860"></a>
+<span class="sourceLineNo">33861</span>                                                ox = (short) toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33861"></a>
+<span class="sourceLineNo">33862</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33862"></a>
+<span class="sourceLineNo">33863</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.33863"></a>
+<span class="sourceLineNo">33864</span>                                                }<a name="line.33864"></a>
+<span class="sourceLineNo">33865</span>                                        }<a name="line.33865"></a>
+<span class="sourceLineNo">33866</span>                                }<a name="line.33866"></a>
+<span class="sourceLineNo">33867</span>                        } else {<a name="line.33867"></a>
+<span class="sourceLineNo">33868</span>                                if (it.isOutputDouble()) {<a name="line.33868"></a>
+<span class="sourceLineNo">33869</span>                                        while (it.hasNext()) {<a name="line.33869"></a>
+<span class="sourceLineNo">33870</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33870"></a>
+<span class="sourceLineNo">33871</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.33871"></a>
+<span class="sourceLineNo">33872</span>                                                        short ox;<a name="line.33872"></a>
+<span class="sourceLineNo">33873</span>                                                        ox = (short) toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33873"></a>
+<span class="sourceLineNo">33874</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.33874"></a>
+<span class="sourceLineNo">33875</span>                                                }<a name="line.33875"></a>
+<span class="sourceLineNo">33876</span>                                        }<a name="line.33876"></a>
+<span class="sourceLineNo">33877</span>                                } else {<a name="line.33877"></a>
+<span class="sourceLineNo">33878</span>                                        while (it.hasNext()) {<a name="line.33878"></a>
+<span class="sourceLineNo">33879</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33879"></a>
+<span class="sourceLineNo">33880</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.33880"></a>
+<span class="sourceLineNo">33881</span>                                                        short ox;<a name="line.33881"></a>
+<span class="sourceLineNo">33882</span>                                                        ox = (short) toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33882"></a>
+<span class="sourceLineNo">33883</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.33883"></a>
+<span class="sourceLineNo">33884</span>                                                }<a name="line.33884"></a>
+<span class="sourceLineNo">33885</span>                                        }<a name="line.33885"></a>
+<span class="sourceLineNo">33886</span>                                }<a name="line.33886"></a>
+<span class="sourceLineNo">33887</span>                        }<a name="line.33887"></a>
+<span class="sourceLineNo">33888</span>                        break;<a name="line.33888"></a>
+<span class="sourceLineNo">33889</span>                case Dataset.ARRAYINT64:<a name="line.33889"></a>
+<span class="sourceLineNo">33890</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.33890"></a>
+<span class="sourceLineNo">33891</span>                        if (is == 1) {<a name="line.33891"></a>
+<span class="sourceLineNo">33892</span>                                if (it.isOutputDouble()) {<a name="line.33892"></a>
+<span class="sourceLineNo">33893</span>                                        while (it.hasNext()) {<a name="line.33893"></a>
+<span class="sourceLineNo">33894</span>                                                final double ix = it.aDouble;<a name="line.33894"></a>
+<span class="sourceLineNo">33895</span>                                                long ox;<a name="line.33895"></a>
+<span class="sourceLineNo">33896</span>                                                ox = toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33896"></a>
+<span class="sourceLineNo">33897</span>                                                oai64data[it.oIndex] = ox;<a name="line.33897"></a>
+<span class="sourceLineNo">33898</span>                                        }<a name="line.33898"></a>
+<span class="sourceLineNo">33899</span>                                } else {<a name="line.33899"></a>
+<span class="sourceLineNo">33900</span>                                        while (it.hasNext()) {<a name="line.33900"></a>
+<span class="sourceLineNo">33901</span>                                                final long ix = it.aLong;<a name="line.33901"></a>
+<span class="sourceLineNo">33902</span>                                                long ox;<a name="line.33902"></a>
+<span class="sourceLineNo">33903</span>                                                ox = toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33903"></a>
+<span class="sourceLineNo">33904</span>                                                oai64data[it.oIndex] = ox;<a name="line.33904"></a>
+<span class="sourceLineNo">33905</span>                                        }<a name="line.33905"></a>
+<span class="sourceLineNo">33906</span>                                }<a name="line.33906"></a>
+<span class="sourceLineNo">33907</span>                        } else if (as == 1) {<a name="line.33907"></a>
+<span class="sourceLineNo">33908</span>                                if (it.isOutputDouble()) {<a name="line.33908"></a>
+<span class="sourceLineNo">33909</span>                                        while (it.hasNext()) {<a name="line.33909"></a>
+<span class="sourceLineNo">33910</span>                                                final double ix = it.aDouble;<a name="line.33910"></a>
+<span class="sourceLineNo">33911</span>                                                long ox;<a name="line.33911"></a>
+<span class="sourceLineNo">33912</span>                                                ox = toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33912"></a>
+<span class="sourceLineNo">33913</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33913"></a>
+<span class="sourceLineNo">33914</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.33914"></a>
+<span class="sourceLineNo">33915</span>                                                }<a name="line.33915"></a>
+<span class="sourceLineNo">33916</span>                                        }<a name="line.33916"></a>
+<span class="sourceLineNo">33917</span>                                } else {<a name="line.33917"></a>
+<span class="sourceLineNo">33918</span>                                        while (it.hasNext()) {<a name="line.33918"></a>
+<span class="sourceLineNo">33919</span>                                                final long ix = it.aLong;<a name="line.33919"></a>
+<span class="sourceLineNo">33920</span>                                                long ox;<a name="line.33920"></a>
+<span class="sourceLineNo">33921</span>                                                ox = toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33921"></a>
+<span class="sourceLineNo">33922</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33922"></a>
+<span class="sourceLineNo">33923</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.33923"></a>
+<span class="sourceLineNo">33924</span>                                                }<a name="line.33924"></a>
+<span class="sourceLineNo">33925</span>                                        }<a name="line.33925"></a>
+<span class="sourceLineNo">33926</span>                                }<a name="line.33926"></a>
+<span class="sourceLineNo">33927</span>                        } else {<a name="line.33927"></a>
+<span class="sourceLineNo">33928</span>                                if (it.isOutputDouble()) {<a name="line.33928"></a>
+<span class="sourceLineNo">33929</span>                                        while (it.hasNext()) {<a name="line.33929"></a>
+<span class="sourceLineNo">33930</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33930"></a>
+<span class="sourceLineNo">33931</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.33931"></a>
+<span class="sourceLineNo">33932</span>                                                        long ox;<a name="line.33932"></a>
+<span class="sourceLineNo">33933</span>                                                        ox = toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33933"></a>
+<span class="sourceLineNo">33934</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.33934"></a>
+<span class="sourceLineNo">33935</span>                                                }<a name="line.33935"></a>
+<span class="sourceLineNo">33936</span>                                        }<a name="line.33936"></a>
+<span class="sourceLineNo">33937</span>                                } else {<a name="line.33937"></a>
+<span class="sourceLineNo">33938</span>                                        while (it.hasNext()) {<a name="line.33938"></a>
+<span class="sourceLineNo">33939</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33939"></a>
+<span class="sourceLineNo">33940</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.33940"></a>
+<span class="sourceLineNo">33941</span>                                                        long ox;<a name="line.33941"></a>
+<span class="sourceLineNo">33942</span>                                                        ox = toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33942"></a>
+<span class="sourceLineNo">33943</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.33943"></a>
+<span class="sourceLineNo">33944</span>                                                }<a name="line.33944"></a>
+<span class="sourceLineNo">33945</span>                                        }<a name="line.33945"></a>
+<span class="sourceLineNo">33946</span>                                }<a name="line.33946"></a>
+<span class="sourceLineNo">33947</span>                        }<a name="line.33947"></a>
+<span class="sourceLineNo">33948</span>                        break;<a name="line.33948"></a>
+<span class="sourceLineNo">33949</span>                case Dataset.ARRAYINT32:<a name="line.33949"></a>
+<span class="sourceLineNo">33950</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.33950"></a>
+<span class="sourceLineNo">33951</span>                        if (is == 1) {<a name="line.33951"></a>
+<span class="sourceLineNo">33952</span>                                if (it.isOutputDouble()) {<a name="line.33952"></a>
+<span class="sourceLineNo">33953</span>                                        while (it.hasNext()) {<a name="line.33953"></a>
+<span class="sourceLineNo">33954</span>                                                final double ix = it.aDouble;<a name="line.33954"></a>
+<span class="sourceLineNo">33955</span>                                                int ox;<a name="line.33955"></a>
+<span class="sourceLineNo">33956</span>                                                ox = (int) toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33956"></a>
+<span class="sourceLineNo">33957</span>                                                oai32data[it.oIndex] = ox;<a name="line.33957"></a>
+<span class="sourceLineNo">33958</span>                                        }<a name="line.33958"></a>
+<span class="sourceLineNo">33959</span>                                } else {<a name="line.33959"></a>
+<span class="sourceLineNo">33960</span>                                        while (it.hasNext()) {<a name="line.33960"></a>
+<span class="sourceLineNo">33961</span>                                                final long ix = it.aLong;<a name="line.33961"></a>
+<span class="sourceLineNo">33962</span>                                                int ox;<a name="line.33962"></a>
+<span class="sourceLineNo">33963</span>                                                ox = (int) toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33963"></a>
+<span class="sourceLineNo">33964</span>                                                oai32data[it.oIndex] = ox;<a name="line.33964"></a>
+<span class="sourceLineNo">33965</span>                                        }<a name="line.33965"></a>
+<span class="sourceLineNo">33966</span>                                }<a name="line.33966"></a>
+<span class="sourceLineNo">33967</span>                        } else if (as == 1) {<a name="line.33967"></a>
+<span class="sourceLineNo">33968</span>                                if (it.isOutputDouble()) {<a name="line.33968"></a>
+<span class="sourceLineNo">33969</span>                                        while (it.hasNext()) {<a name="line.33969"></a>
+<span class="sourceLineNo">33970</span>                                                final double ix = it.aDouble;<a name="line.33970"></a>
+<span class="sourceLineNo">33971</span>                                                int ox;<a name="line.33971"></a>
+<span class="sourceLineNo">33972</span>                                                ox = (int) toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33972"></a>
+<span class="sourceLineNo">33973</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33973"></a>
+<span class="sourceLineNo">33974</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.33974"></a>
+<span class="sourceLineNo">33975</span>                                                }<a name="line.33975"></a>
+<span class="sourceLineNo">33976</span>                                        }<a name="line.33976"></a>
+<span class="sourceLineNo">33977</span>                                } else {<a name="line.33977"></a>
+<span class="sourceLineNo">33978</span>                                        while (it.hasNext()) {<a name="line.33978"></a>
+<span class="sourceLineNo">33979</span>                                                final long ix = it.aLong;<a name="line.33979"></a>
+<span class="sourceLineNo">33980</span>                                                int ox;<a name="line.33980"></a>
+<span class="sourceLineNo">33981</span>                                                ox = (int) toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33981"></a>
+<span class="sourceLineNo">33982</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33982"></a>
+<span class="sourceLineNo">33983</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.33983"></a>
+<span class="sourceLineNo">33984</span>                                                }<a name="line.33984"></a>
+<span class="sourceLineNo">33985</span>                                        }<a name="line.33985"></a>
+<span class="sourceLineNo">33986</span>                                }<a name="line.33986"></a>
+<span class="sourceLineNo">33987</span>                        } else {<a name="line.33987"></a>
+<span class="sourceLineNo">33988</span>                                if (it.isOutputDouble()) {<a name="line.33988"></a>
+<span class="sourceLineNo">33989</span>                                        while (it.hasNext()) {<a name="line.33989"></a>
+<span class="sourceLineNo">33990</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33990"></a>
+<span class="sourceLineNo">33991</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.33991"></a>
+<span class="sourceLineNo">33992</span>                                                        int ox;<a name="line.33992"></a>
+<span class="sourceLineNo">33993</span>                                                        ox = (int) toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.33993"></a>
+<span class="sourceLineNo">33994</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.33994"></a>
+<span class="sourceLineNo">33995</span>                                                }<a name="line.33995"></a>
+<span class="sourceLineNo">33996</span>                                        }<a name="line.33996"></a>
+<span class="sourceLineNo">33997</span>                                } else {<a name="line.33997"></a>
+<span class="sourceLineNo">33998</span>                                        while (it.hasNext()) {<a name="line.33998"></a>
+<span class="sourceLineNo">33999</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.33999"></a>
+<span class="sourceLineNo">34000</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.34000"></a>
+<span class="sourceLineNo">34001</span>                                                        int ox;<a name="line.34001"></a>
+<span class="sourceLineNo">34002</span>                                                        ox = (int) toLong(ix &gt; 0 ? 1 : (ix &lt; 0 ? -1 : 0));<a name="line.34002"></a>
+<span class="sourceLineNo">34003</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.34003"></a>
+<span class="sourceLineNo">34004</span>                                                }<a name="line.34004"></a>
+<span class="sourceLineNo">34005</span>                                        }<a name="line.34005"></a>
+<span class="sourceLineNo">34006</span>                                }<a name="line.34006"></a>
+<span class="sourceLineNo">34007</span>                        }<a name="line.34007"></a>
+<span class="sourceLineNo">34008</span>                        break;<a name="line.34008"></a>
+<span class="sourceLineNo">34009</span>                case Dataset.FLOAT32:<a name="line.34009"></a>
+<span class="sourceLineNo">34010</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.34010"></a>
+<span class="sourceLineNo">34011</span>                        if (it.isOutputDouble()) {<a name="line.34011"></a>
+<span class="sourceLineNo">34012</span>                                while (it.hasNext()) {<a name="line.34012"></a>
+<span class="sourceLineNo">34013</span>                                        final double ix = it.aDouble;<a name="line.34013"></a>
+<span class="sourceLineNo">34014</span>                                        float ox;<a name="line.34014"></a>
+<span class="sourceLineNo">34015</span>                                        ox = (float) (Math.signum(ix));<a name="line.34015"></a>
+<span class="sourceLineNo">34016</span>                                        of32data[it.oIndex] = ox;<a name="line.34016"></a>
+<span class="sourceLineNo">34017</span>                                }<a name="line.34017"></a>
+<span class="sourceLineNo">34018</span>                        } else {<a name="line.34018"></a>
+<span class="sourceLineNo">34019</span>                                while (it.hasNext()) {<a name="line.34019"></a>
+<span class="sourceLineNo">34020</span>                                        final long ix = it.aLong;<a name="line.34020"></a>
+<span class="sourceLineNo">34021</span>                                        float ox;<a name="line.34021"></a>
+<span class="sourceLineNo">34022</span>                                        ox = (float) (Math.signum(ix));<a name="line.34022"></a>
+<span class="sourceLineNo">34023</span>                                        of32data[it.oIndex] = ox;<a name="line.34023"></a>
+<span class="sourceLineNo">34024</span>                                }<a name="line.34024"></a>
+<span class="sourceLineNo">34025</span>                        }<a name="line.34025"></a>
+<span class="sourceLineNo">34026</span>                        break;<a name="line.34026"></a>
+<span class="sourceLineNo">34027</span>                case Dataset.FLOAT64:<a name="line.34027"></a>
+<span class="sourceLineNo">34028</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.34028"></a>
+<span class="sourceLineNo">34029</span>                        if (it.isOutputDouble()) {<a name="line.34029"></a>
+<span class="sourceLineNo">34030</span>                                while (it.hasNext()) {<a name="line.34030"></a>
+<span class="sourceLineNo">34031</span>                                        final double ix = it.aDouble;<a name="line.34031"></a>
+<span class="sourceLineNo">34032</span>                                        double ox;<a name="line.34032"></a>
+<span class="sourceLineNo">34033</span>                                        ox = (Math.signum(ix));<a name="line.34033"></a>
+<span class="sourceLineNo">34034</span>                                        of64data[it.oIndex] = ox;<a name="line.34034"></a>
+<span class="sourceLineNo">34035</span>                                }<a name="line.34035"></a>
+<span class="sourceLineNo">34036</span>                        } else {<a name="line.34036"></a>
+<span class="sourceLineNo">34037</span>                                while (it.hasNext()) {<a name="line.34037"></a>
+<span class="sourceLineNo">34038</span>                                        final long ix = it.aLong;<a name="line.34038"></a>
+<span class="sourceLineNo">34039</span>                                        double ox;<a name="line.34039"></a>
+<span class="sourceLineNo">34040</span>                                        ox = (Math.signum(ix));<a name="line.34040"></a>
+<span class="sourceLineNo">34041</span>                                        of64data[it.oIndex] = ox;<a name="line.34041"></a>
+<span class="sourceLineNo">34042</span>                                }<a name="line.34042"></a>
+<span class="sourceLineNo">34043</span>                        }<a name="line.34043"></a>
+<span class="sourceLineNo">34044</span>                        break;<a name="line.34044"></a>
+<span class="sourceLineNo">34045</span>                case Dataset.ARRAYFLOAT32:<a name="line.34045"></a>
+<span class="sourceLineNo">34046</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.34046"></a>
+<span class="sourceLineNo">34047</span>                        if (is == 1) {<a name="line.34047"></a>
+<span class="sourceLineNo">34048</span>                                if (it.isOutputDouble()) {<a name="line.34048"></a>
+<span class="sourceLineNo">34049</span>                                        while (it.hasNext()) {<a name="line.34049"></a>
+<span class="sourceLineNo">34050</span>                                                final double ix = it.aDouble;<a name="line.34050"></a>
+<span class="sourceLineNo">34051</span>                                                float ox;<a name="line.34051"></a>
+<span class="sourceLineNo">34052</span>                                                ox = (float) (Math.signum(ix));<a name="line.34052"></a>
+<span class="sourceLineNo">34053</span>                                                oaf32data[it.oIndex] = ox;<a name="line.34053"></a>
+<span class="sourceLineNo">34054</span>                                        }<a name="line.34054"></a>
+<span class="sourceLineNo">34055</span>                                } else {<a name="line.34055"></a>
+<span class="sourceLineNo">34056</span>                                        while (it.hasNext()) {<a name="line.34056"></a>
+<span class="sourceLineNo">34057</span>                                                final long ix = it.aLong;<a name="line.34057"></a>
+<span class="sourceLineNo">34058</span>                                                float ox;<a name="line.34058"></a>
+<span class="sourceLineNo">34059</span>                                                ox = (float) (Math.signum(ix));<a name="line.34059"></a>
+<span class="sourceLineNo">34060</span>                                                oaf32data[it.oIndex] = ox;<a name="line.34060"></a>
+<span class="sourceLineNo">34061</span>                                        }<a name="line.34061"></a>
+<span class="sourceLineNo">34062</span>                                }<a name="line.34062"></a>
+<span class="sourceLineNo">34063</span>                        } else if (as == 1) {<a name="line.34063"></a>
+<span class="sourceLineNo">34064</span>                                if (it.isOutputDouble()) {<a name="line.34064"></a>
+<span class="sourceLineNo">34065</span>                                        while (it.hasNext()) {<a name="line.34065"></a>
+<span class="sourceLineNo">34066</span>                                                final double ix = it.aDouble;<a name="line.34066"></a>
+<span class="sourceLineNo">34067</span>                                                float ox;<a name="line.34067"></a>
+<span class="sourceLineNo">34068</span>                                                ox = (float) (Math.signum(ix));<a name="line.34068"></a>
+<span class="sourceLineNo">34069</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34069"></a>
+<span class="sourceLineNo">34070</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.34070"></a>
+<span class="sourceLineNo">34071</span>                                                }<a name="line.34071"></a>
+<span class="sourceLineNo">34072</span>                                        }<a name="line.34072"></a>
+<span class="sourceLineNo">34073</span>                                } else {<a name="line.34073"></a>
+<span class="sourceLineNo">34074</span>                                        while (it.hasNext()) {<a name="line.34074"></a>
+<span class="sourceLineNo">34075</span>                                                final long ix = it.aLong;<a name="line.34075"></a>
+<span class="sourceLineNo">34076</span>                                                float ox;<a name="line.34076"></a>
+<span class="sourceLineNo">34077</span>                                                ox = (float) (Math.signum(ix));<a name="line.34077"></a>
+<span class="sourceLineNo">34078</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34078"></a>
+<span class="sourceLineNo">34079</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.34079"></a>
+<span class="sourceLineNo">34080</span>                                                }<a name="line.34080"></a>
+<span class="sourceLineNo">34081</span>                                        }<a name="line.34081"></a>
+<span class="sourceLineNo">34082</span>                                }<a name="line.34082"></a>
+<span class="sourceLineNo">34083</span>                        } else {<a name="line.34083"></a>
+<span class="sourceLineNo">34084</span>                                if (it.isOutputDouble()) {<a name="line.34084"></a>
+<span class="sourceLineNo">34085</span>                                        while (it.hasNext()) {<a name="line.34085"></a>
+<span class="sourceLineNo">34086</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34086"></a>
+<span class="sourceLineNo">34087</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.34087"></a>
+<span class="sourceLineNo">34088</span>                                                        float ox;<a name="line.34088"></a>
+<span class="sourceLineNo">34089</span>                                                        ox = (float) (Math.signum(ix));<a name="line.34089"></a>
+<span class="sourceLineNo">34090</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.34090"></a>
+<span class="sourceLineNo">34091</span>                                                }<a name="line.34091"></a>
+<span class="sourceLineNo">34092</span>                                        }<a name="line.34092"></a>
+<span class="sourceLineNo">34093</span>                                } else {<a name="line.34093"></a>
+<span class="sourceLineNo">34094</span>                                        while (it.hasNext()) {<a name="line.34094"></a>
+<span class="sourceLineNo">34095</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34095"></a>
+<span class="sourceLineNo">34096</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.34096"></a>
+<span class="sourceLineNo">34097</span>                                                        float ox;<a name="line.34097"></a>
+<span class="sourceLineNo">34098</span>                                                        ox = (float) (Math.signum(ix));<a name="line.34098"></a>
+<span class="sourceLineNo">34099</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.34099"></a>
+<span class="sourceLineNo">34100</span>                                                }<a name="line.34100"></a>
+<span class="sourceLineNo">34101</span>                                        }<a name="line.34101"></a>
+<span class="sourceLineNo">34102</span>                                }<a name="line.34102"></a>
+<span class="sourceLineNo">34103</span>                        }<a name="line.34103"></a>
+<span class="sourceLineNo">34104</span>                        break;<a name="line.34104"></a>
+<span class="sourceLineNo">34105</span>                case Dataset.ARRAYFLOAT64:<a name="line.34105"></a>
+<span class="sourceLineNo">34106</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.34106"></a>
+<span class="sourceLineNo">34107</span>                        if (is == 1) {<a name="line.34107"></a>
+<span class="sourceLineNo">34108</span>                                if (it.isOutputDouble()) {<a name="line.34108"></a>
+<span class="sourceLineNo">34109</span>                                        while (it.hasNext()) {<a name="line.34109"></a>
+<span class="sourceLineNo">34110</span>                                                final double ix = it.aDouble;<a name="line.34110"></a>
+<span class="sourceLineNo">34111</span>                                                double ox;<a name="line.34111"></a>
+<span class="sourceLineNo">34112</span>                                                ox = (Math.signum(ix));<a name="line.34112"></a>
+<span class="sourceLineNo">34113</span>                                                oaf64data[it.oIndex] = ox;<a name="line.34113"></a>
+<span class="sourceLineNo">34114</span>                                        }<a name="line.34114"></a>
+<span class="sourceLineNo">34115</span>                                } else {<a name="line.34115"></a>
+<span class="sourceLineNo">34116</span>                                        while (it.hasNext()) {<a name="line.34116"></a>
+<span class="sourceLineNo">34117</span>                                                final long ix = it.aLong;<a name="line.34117"></a>
+<span class="sourceLineNo">34118</span>                                                double ox;<a name="line.34118"></a>
+<span class="sourceLineNo">34119</span>                                                ox = (Math.signum(ix));<a name="line.34119"></a>
+<span class="sourceLineNo">34120</span>                                                oaf64data[it.oIndex] = ox;<a name="line.34120"></a>
+<span class="sourceLineNo">34121</span>                                        }<a name="line.34121"></a>
+<span class="sourceLineNo">34122</span>                                }<a name="line.34122"></a>
+<span class="sourceLineNo">34123</span>                        } else if (as == 1) {<a name="line.34123"></a>
+<span class="sourceLineNo">34124</span>                                if (it.isOutputDouble()) {<a name="line.34124"></a>
+<span class="sourceLineNo">34125</span>                                        while (it.hasNext()) {<a name="line.34125"></a>
+<span class="sourceLineNo">34126</span>                                                final double ix = it.aDouble;<a name="line.34126"></a>
+<span class="sourceLineNo">34127</span>                                                double ox;<a name="line.34127"></a>
+<span class="sourceLineNo">34128</span>                                                ox = (Math.signum(ix));<a name="line.34128"></a>
+<span class="sourceLineNo">34129</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34129"></a>
+<span class="sourceLineNo">34130</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.34130"></a>
+<span class="sourceLineNo">34131</span>                                                }<a name="line.34131"></a>
+<span class="sourceLineNo">34132</span>                                        }<a name="line.34132"></a>
+<span class="sourceLineNo">34133</span>                                } else {<a name="line.34133"></a>
+<span class="sourceLineNo">34134</span>                                        while (it.hasNext()) {<a name="line.34134"></a>
+<span class="sourceLineNo">34135</span>                                                final long ix = it.aLong;<a name="line.34135"></a>
+<span class="sourceLineNo">34136</span>                                                double ox;<a name="line.34136"></a>
+<span class="sourceLineNo">34137</span>                                                ox = (Math.signum(ix));<a name="line.34137"></a>
+<span class="sourceLineNo">34138</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34138"></a>
+<span class="sourceLineNo">34139</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.34139"></a>
+<span class="sourceLineNo">34140</span>                                                }<a name="line.34140"></a>
+<span class="sourceLineNo">34141</span>                                        }<a name="line.34141"></a>
+<span class="sourceLineNo">34142</span>                                }<a name="line.34142"></a>
+<span class="sourceLineNo">34143</span>                        } else {<a name="line.34143"></a>
+<span class="sourceLineNo">34144</span>                                if (it.isOutputDouble()) {<a name="line.34144"></a>
+<span class="sourceLineNo">34145</span>                                        while (it.hasNext()) {<a name="line.34145"></a>
+<span class="sourceLineNo">34146</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34146"></a>
+<span class="sourceLineNo">34147</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.34147"></a>
+<span class="sourceLineNo">34148</span>                                                        double ox;<a name="line.34148"></a>
+<span class="sourceLineNo">34149</span>                                                        ox = (Math.signum(ix));<a name="line.34149"></a>
+<span class="sourceLineNo">34150</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.34150"></a>
+<span class="sourceLineNo">34151</span>                                                }<a name="line.34151"></a>
+<span class="sourceLineNo">34152</span>                                        }<a name="line.34152"></a>
+<span class="sourceLineNo">34153</span>                                } else {<a name="line.34153"></a>
+<span class="sourceLineNo">34154</span>                                        while (it.hasNext()) {<a name="line.34154"></a>
+<span class="sourceLineNo">34155</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34155"></a>
+<span class="sourceLineNo">34156</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.34156"></a>
+<span class="sourceLineNo">34157</span>                                                        double ox;<a name="line.34157"></a>
+<span class="sourceLineNo">34158</span>                                                        ox = (Math.signum(ix));<a name="line.34158"></a>
+<span class="sourceLineNo">34159</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.34159"></a>
+<span class="sourceLineNo">34160</span>                                                }<a name="line.34160"></a>
+<span class="sourceLineNo">34161</span>                                        }<a name="line.34161"></a>
+<span class="sourceLineNo">34162</span>                                }<a name="line.34162"></a>
+<span class="sourceLineNo">34163</span>                        }<a name="line.34163"></a>
+<span class="sourceLineNo">34164</span>                        break;<a name="line.34164"></a>
+<span class="sourceLineNo">34165</span>                case Dataset.COMPLEX64:<a name="line.34165"></a>
+<span class="sourceLineNo">34166</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.34166"></a>
+<span class="sourceLineNo">34167</span>                        if (!da.isComplex()) {<a name="line.34167"></a>
+<span class="sourceLineNo">34168</span>                                if (it.isOutputDouble()) {<a name="line.34168"></a>
+<span class="sourceLineNo">34169</span>                                        final double iy = 0;<a name="line.34169"></a>
+<span class="sourceLineNo">34170</span>                                        while (it.hasNext()) {<a name="line.34170"></a>
+<span class="sourceLineNo">34171</span>                                                final double ix = it.aDouble;<a name="line.34171"></a>
+<span class="sourceLineNo">34172</span>                                                float ox;<a name="line.34172"></a>
+<span class="sourceLineNo">34173</span>                                                float oy;<a name="line.34173"></a>
+<span class="sourceLineNo">34174</span>                                                ox = (float) (Math.signum(ix));<a name="line.34174"></a>
+<span class="sourceLineNo">34175</span>                                                oy = (float) (Math.signum(iy));<a name="line.34175"></a>
+<span class="sourceLineNo">34176</span>                                                oc64data[it.oIndex] = ox;<a name="line.34176"></a>
+<span class="sourceLineNo">34177</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.34177"></a>
+<span class="sourceLineNo">34178</span>                                        }<a name="line.34178"></a>
+<span class="sourceLineNo">34179</span>                                } else {<a name="line.34179"></a>
+<span class="sourceLineNo">34180</span>                                        final long iy = 0;<a name="line.34180"></a>
+<span class="sourceLineNo">34181</span>                                        while (it.hasNext()) {<a name="line.34181"></a>
+<span class="sourceLineNo">34182</span>                                                final long ix = it.aLong;<a name="line.34182"></a>
+<span class="sourceLineNo">34183</span>                                                float ox;<a name="line.34183"></a>
+<span class="sourceLineNo">34184</span>                                                float oy;<a name="line.34184"></a>
+<span class="sourceLineNo">34185</span>                                                ox = (float) toLong(Math.signum(ix));<a name="line.34185"></a>
+<span class="sourceLineNo">34186</span>                                                oy = (float) toLong(Math.signum(iy));<a name="line.34186"></a>
+<span class="sourceLineNo">34187</span>                                                oc64data[it.oIndex] = ox;<a name="line.34187"></a>
+<span class="sourceLineNo">34188</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.34188"></a>
+<span class="sourceLineNo">34189</span>                                        }<a name="line.34189"></a>
+<span class="sourceLineNo">34190</span>                                }<a name="line.34190"></a>
+<span class="sourceLineNo">34191</span>                        } else {<a name="line.34191"></a>
+<span class="sourceLineNo">34192</span>                                while (it.hasNext()) {<a name="line.34192"></a>
+<span class="sourceLineNo">34193</span>                                        final double ix = it.aDouble;<a name="line.34193"></a>
+<span class="sourceLineNo">34194</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.34194"></a>
+<span class="sourceLineNo">34195</span>                                        float ox;<a name="line.34195"></a>
+<span class="sourceLineNo">34196</span>                                        float oy;<a name="line.34196"></a>
+<span class="sourceLineNo">34197</span>                                        ox = (float) (Math.signum(ix));<a name="line.34197"></a>
+<span class="sourceLineNo">34198</span>                                        oy = (float) (Math.signum(iy));<a name="line.34198"></a>
+<span class="sourceLineNo">34199</span>                                        oc64data[it.oIndex] = ox;<a name="line.34199"></a>
+<span class="sourceLineNo">34200</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.34200"></a>
+<span class="sourceLineNo">34201</span>                                }<a name="line.34201"></a>
+<span class="sourceLineNo">34202</span>                        }<a name="line.34202"></a>
+<span class="sourceLineNo">34203</span>                        break;<a name="line.34203"></a>
+<span class="sourceLineNo">34204</span>                case Dataset.COMPLEX128:<a name="line.34204"></a>
+<span class="sourceLineNo">34205</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.34205"></a>
+<span class="sourceLineNo">34206</span>                        if (!da.isComplex()) {<a name="line.34206"></a>
+<span class="sourceLineNo">34207</span>                                if (it.isOutputDouble()) {<a name="line.34207"></a>
+<span class="sourceLineNo">34208</span>                                        final double iy = 0;<a name="line.34208"></a>
+<span class="sourceLineNo">34209</span>                                        while (it.hasNext()) {<a name="line.34209"></a>
+<span class="sourceLineNo">34210</span>                                                final double ix = it.aDouble;<a name="line.34210"></a>
+<span class="sourceLineNo">34211</span>                                                double ox;<a name="line.34211"></a>
+<span class="sourceLineNo">34212</span>                                                double oy;<a name="line.34212"></a>
+<span class="sourceLineNo">34213</span>                                                ox = (Math.signum(ix));<a name="line.34213"></a>
+<span class="sourceLineNo">34214</span>                                                oy = (Math.signum(iy));<a name="line.34214"></a>
+<span class="sourceLineNo">34215</span>                                                oc128data[it.oIndex] = ox;<a name="line.34215"></a>
+<span class="sourceLineNo">34216</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.34216"></a>
+<span class="sourceLineNo">34217</span>                                        }<a name="line.34217"></a>
+<span class="sourceLineNo">34218</span>                                } else {<a name="line.34218"></a>
+<span class="sourceLineNo">34219</span>                                        final long iy = 0;<a name="line.34219"></a>
+<span class="sourceLineNo">34220</span>                                        while (it.hasNext()) {<a name="line.34220"></a>
+<span class="sourceLineNo">34221</span>                                                final long ix = it.aLong;<a name="line.34221"></a>
+<span class="sourceLineNo">34222</span>                                                double ox;<a name="line.34222"></a>
+<span class="sourceLineNo">34223</span>                                                double oy;<a name="line.34223"></a>
+<span class="sourceLineNo">34224</span>                                                ox = (double) (Math.signum(ix));<a name="line.34224"></a>
+<span class="sourceLineNo">34225</span>                                                oy = (double) (Math.signum(iy));<a name="line.34225"></a>
+<span class="sourceLineNo">34226</span>                                                oc128data[it.oIndex] = ox;<a name="line.34226"></a>
+<span class="sourceLineNo">34227</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.34227"></a>
+<span class="sourceLineNo">34228</span>                                        }<a name="line.34228"></a>
+<span class="sourceLineNo">34229</span>                                }<a name="line.34229"></a>
+<span class="sourceLineNo">34230</span>                        } else {<a name="line.34230"></a>
+<span class="sourceLineNo">34231</span>                                while (it.hasNext()) {<a name="line.34231"></a>
+<span class="sourceLineNo">34232</span>                                        final double ix = it.aDouble;<a name="line.34232"></a>
+<span class="sourceLineNo">34233</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.34233"></a>
+<span class="sourceLineNo">34234</span>                                        double ox;<a name="line.34234"></a>
+<span class="sourceLineNo">34235</span>                                        double oy;<a name="line.34235"></a>
+<span class="sourceLineNo">34236</span>                                        ox = (Math.signum(ix));<a name="line.34236"></a>
+<span class="sourceLineNo">34237</span>                                        oy = (Math.signum(iy));<a name="line.34237"></a>
+<span class="sourceLineNo">34238</span>                                        oc128data[it.oIndex] = ox;<a name="line.34238"></a>
+<span class="sourceLineNo">34239</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.34239"></a>
+<span class="sourceLineNo">34240</span>                                }<a name="line.34240"></a>
+<span class="sourceLineNo">34241</span>                        }<a name="line.34241"></a>
+<span class="sourceLineNo">34242</span>                        break;<a name="line.34242"></a>
+<span class="sourceLineNo">34243</span>                default:<a name="line.34243"></a>
+<span class="sourceLineNo">34244</span>                        throw new IllegalArgumentException("signum supports integer, compound integer, real, compound real, complex datasets only");<a name="line.34244"></a>
+<span class="sourceLineNo">34245</span>                }<a name="line.34245"></a>
+<span class="sourceLineNo">34246</span><a name="line.34246"></a>
+<span class="sourceLineNo">34247</span>                addFunctionName(result, "signum");<a name="line.34247"></a>
+<span class="sourceLineNo">34248</span>                return result;<a name="line.34248"></a>
+<span class="sourceLineNo">34249</span>        }<a name="line.34249"></a>
+<span class="sourceLineNo">34250</span><a name="line.34250"></a>
+<span class="sourceLineNo">34251</span>        /**<a name="line.34251"></a>
+<span class="sourceLineNo">34252</span>         * negative - negative value of each element<a name="line.34252"></a>
+<span class="sourceLineNo">34253</span>         * @param a<a name="line.34253"></a>
+<span class="sourceLineNo">34254</span>         * @return dataset<a name="line.34254"></a>
+<span class="sourceLineNo">34255</span>         */<a name="line.34255"></a>
+<span class="sourceLineNo">34256</span>        public static Dataset negative(final Object a) {<a name="line.34256"></a>
+<span class="sourceLineNo">34257</span>                return negative(a, null);<a name="line.34257"></a>
+<span class="sourceLineNo">34258</span>        }<a name="line.34258"></a>
+<span class="sourceLineNo">34259</span><a name="line.34259"></a>
+<span class="sourceLineNo">34260</span>        /**<a name="line.34260"></a>
+<span class="sourceLineNo">34261</span>         * negative - negative value of each element<a name="line.34261"></a>
+<span class="sourceLineNo">34262</span>         * @param a<a name="line.34262"></a>
+<span class="sourceLineNo">34263</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.34263"></a>
+<span class="sourceLineNo">34264</span>         * @return dataset<a name="line.34264"></a>
+<span class="sourceLineNo">34265</span>         */<a name="line.34265"></a>
+<span class="sourceLineNo">34266</span>        public static Dataset negative(final Object a, final Dataset o) {<a name="line.34266"></a>
+<span class="sourceLineNo">34267</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.34267"></a>
+<span class="sourceLineNo">34268</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.34268"></a>
+<span class="sourceLineNo">34269</span>                final Dataset result = it.getOutput();<a name="line.34269"></a>
+<span class="sourceLineNo">34270</span>                if (!result.isComplex()) {<a name="line.34270"></a>
+<span class="sourceLineNo">34271</span>                        if (da.isComplex()) {<a name="line.34271"></a>
+<span class="sourceLineNo">34272</span>                                da = da.getRealView();<a name="line.34272"></a>
+<span class="sourceLineNo">34273</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.34273"></a>
+<span class="sourceLineNo">34274</span>                        }<a name="line.34274"></a>
+<span class="sourceLineNo">34275</span>                }<a name="line.34275"></a>
+<span class="sourceLineNo">34276</span>                final int is = result.getElementsPerItem();<a name="line.34276"></a>
+<span class="sourceLineNo">34277</span>                final int as = da.getElementsPerItem();<a name="line.34277"></a>
+<span class="sourceLineNo">34278</span>                final int dt = result.getDType();<a name="line.34278"></a>
+<span class="sourceLineNo">34279</span><a name="line.34279"></a>
+<span class="sourceLineNo">34280</span>                switch(dt) {<a name="line.34280"></a>
+<span class="sourceLineNo">34281</span>                case Dataset.INT8:<a name="line.34281"></a>
+<span class="sourceLineNo">34282</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.34282"></a>
+<span class="sourceLineNo">34283</span>                        if (it.isOutputDouble()) {<a name="line.34283"></a>
+<span class="sourceLineNo">34284</span>                                while (it.hasNext()) {<a name="line.34284"></a>
+<span class="sourceLineNo">34285</span>                                        final double ix = it.aDouble;<a name="line.34285"></a>
+<span class="sourceLineNo">34286</span>                                        byte ox;<a name="line.34286"></a>
+<span class="sourceLineNo">34287</span>                                        ox = (byte) toLong(-ix);<a name="line.34287"></a>
+<span class="sourceLineNo">34288</span>                                        oi8data[it.oIndex] = ox;<a name="line.34288"></a>
+<span class="sourceLineNo">34289</span>                                }<a name="line.34289"></a>
+<span class="sourceLineNo">34290</span>                        } else {<a name="line.34290"></a>
+<span class="sourceLineNo">34291</span>                                while (it.hasNext()) {<a name="line.34291"></a>
+<span class="sourceLineNo">34292</span>                                        final long ix = it.aLong;<a name="line.34292"></a>
+<span class="sourceLineNo">34293</span>                                        byte ox;<a name="line.34293"></a>
+<span class="sourceLineNo">34294</span>                                        ox = (byte) toLong(-ix);<a name="line.34294"></a>
+<span class="sourceLineNo">34295</span>                                        oi8data[it.oIndex] = ox;<a name="line.34295"></a>
+<span class="sourceLineNo">34296</span>                                }<a name="line.34296"></a>
+<span class="sourceLineNo">34297</span>                        }<a name="line.34297"></a>
+<span class="sourceLineNo">34298</span>                        break;<a name="line.34298"></a>
+<span class="sourceLineNo">34299</span>                case Dataset.INT16:<a name="line.34299"></a>
+<span class="sourceLineNo">34300</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.34300"></a>
+<span class="sourceLineNo">34301</span>                        if (it.isOutputDouble()) {<a name="line.34301"></a>
+<span class="sourceLineNo">34302</span>                                while (it.hasNext()) {<a name="line.34302"></a>
+<span class="sourceLineNo">34303</span>                                        final double ix = it.aDouble;<a name="line.34303"></a>
+<span class="sourceLineNo">34304</span>                                        short ox;<a name="line.34304"></a>
+<span class="sourceLineNo">34305</span>                                        ox = (short) toLong(-ix);<a name="line.34305"></a>
+<span class="sourceLineNo">34306</span>                                        oi16data[it.oIndex] = ox;<a name="line.34306"></a>
+<span class="sourceLineNo">34307</span>                                }<a name="line.34307"></a>
+<span class="sourceLineNo">34308</span>                        } else {<a name="line.34308"></a>
+<span class="sourceLineNo">34309</span>                                while (it.hasNext()) {<a name="line.34309"></a>
+<span class="sourceLineNo">34310</span>                                        final long ix = it.aLong;<a name="line.34310"></a>
+<span class="sourceLineNo">34311</span>                                        short ox;<a name="line.34311"></a>
+<span class="sourceLineNo">34312</span>                                        ox = (short) toLong(-ix);<a name="line.34312"></a>
+<span class="sourceLineNo">34313</span>                                        oi16data[it.oIndex] = ox;<a name="line.34313"></a>
+<span class="sourceLineNo">34314</span>                                }<a name="line.34314"></a>
+<span class="sourceLineNo">34315</span>                        }<a name="line.34315"></a>
+<span class="sourceLineNo">34316</span>                        break;<a name="line.34316"></a>
+<span class="sourceLineNo">34317</span>                case Dataset.INT64:<a name="line.34317"></a>
+<span class="sourceLineNo">34318</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.34318"></a>
+<span class="sourceLineNo">34319</span>                        if (it.isOutputDouble()) {<a name="line.34319"></a>
+<span class="sourceLineNo">34320</span>                                while (it.hasNext()) {<a name="line.34320"></a>
+<span class="sourceLineNo">34321</span>                                        final double ix = it.aDouble;<a name="line.34321"></a>
+<span class="sourceLineNo">34322</span>                                        long ox;<a name="line.34322"></a>
+<span class="sourceLineNo">34323</span>                                        ox = toLong(-ix);<a name="line.34323"></a>
+<span class="sourceLineNo">34324</span>                                        oi64data[it.oIndex] = ox;<a name="line.34324"></a>
+<span class="sourceLineNo">34325</span>                                }<a name="line.34325"></a>
+<span class="sourceLineNo">34326</span>                        } else {<a name="line.34326"></a>
+<span class="sourceLineNo">34327</span>                                while (it.hasNext()) {<a name="line.34327"></a>
+<span class="sourceLineNo">34328</span>                                        final long ix = it.aLong;<a name="line.34328"></a>
+<span class="sourceLineNo">34329</span>                                        long ox;<a name="line.34329"></a>
+<span class="sourceLineNo">34330</span>                                        ox = toLong(-ix);<a name="line.34330"></a>
+<span class="sourceLineNo">34331</span>                                        oi64data[it.oIndex] = ox;<a name="line.34331"></a>
+<span class="sourceLineNo">34332</span>                                }<a name="line.34332"></a>
+<span class="sourceLineNo">34333</span>                        }<a name="line.34333"></a>
+<span class="sourceLineNo">34334</span>                        break;<a name="line.34334"></a>
+<span class="sourceLineNo">34335</span>                case Dataset.INT32:<a name="line.34335"></a>
+<span class="sourceLineNo">34336</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.34336"></a>
+<span class="sourceLineNo">34337</span>                        if (it.isOutputDouble()) {<a name="line.34337"></a>
+<span class="sourceLineNo">34338</span>                                while (it.hasNext()) {<a name="line.34338"></a>
+<span class="sourceLineNo">34339</span>                                        final double ix = it.aDouble;<a name="line.34339"></a>
+<span class="sourceLineNo">34340</span>                                        int ox;<a name="line.34340"></a>
+<span class="sourceLineNo">34341</span>                                        ox = (int) toLong(-ix);<a name="line.34341"></a>
+<span class="sourceLineNo">34342</span>                                        oi32data[it.oIndex] = ox;<a name="line.34342"></a>
+<span class="sourceLineNo">34343</span>                                }<a name="line.34343"></a>
+<span class="sourceLineNo">34344</span>                        } else {<a name="line.34344"></a>
+<span class="sourceLineNo">34345</span>                                while (it.hasNext()) {<a name="line.34345"></a>
+<span class="sourceLineNo">34346</span>                                        final long ix = it.aLong;<a name="line.34346"></a>
+<span class="sourceLineNo">34347</span>                                        int ox;<a name="line.34347"></a>
+<span class="sourceLineNo">34348</span>                                        ox = (int) toLong(-ix);<a name="line.34348"></a>
+<span class="sourceLineNo">34349</span>                                        oi32data[it.oIndex] = ox;<a name="line.34349"></a>
+<span class="sourceLineNo">34350</span>                                }<a name="line.34350"></a>
+<span class="sourceLineNo">34351</span>                        }<a name="line.34351"></a>
+<span class="sourceLineNo">34352</span>                        break;<a name="line.34352"></a>
+<span class="sourceLineNo">34353</span>                case Dataset.ARRAYINT8:<a name="line.34353"></a>
+<span class="sourceLineNo">34354</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.34354"></a>
+<span class="sourceLineNo">34355</span>                        if (is == 1) {<a name="line.34355"></a>
+<span class="sourceLineNo">34356</span>                                if (it.isOutputDouble()) {<a name="line.34356"></a>
+<span class="sourceLineNo">34357</span>                                        while (it.hasNext()) {<a name="line.34357"></a>
+<span class="sourceLineNo">34358</span>                                                final double ix = it.aDouble;<a name="line.34358"></a>
+<span class="sourceLineNo">34359</span>                                                byte ox;<a name="line.34359"></a>
+<span class="sourceLineNo">34360</span>                                                ox = (byte) toLong(-ix);<a name="line.34360"></a>
+<span class="sourceLineNo">34361</span>                                                oai8data[it.oIndex] = ox;<a name="line.34361"></a>
+<span class="sourceLineNo">34362</span>                                        }<a name="line.34362"></a>
+<span class="sourceLineNo">34363</span>                                } else {<a name="line.34363"></a>
+<span class="sourceLineNo">34364</span>                                        while (it.hasNext()) {<a name="line.34364"></a>
+<span class="sourceLineNo">34365</span>                                                final long ix = it.aLong;<a name="line.34365"></a>
+<span class="sourceLineNo">34366</span>                                                byte ox;<a name="line.34366"></a>
+<span class="sourceLineNo">34367</span>                                                ox = (byte) toLong(-ix);<a name="line.34367"></a>
+<span class="sourceLineNo">34368</span>                                                oai8data[it.oIndex] = ox;<a name="line.34368"></a>
+<span class="sourceLineNo">34369</span>                                        }<a name="line.34369"></a>
+<span class="sourceLineNo">34370</span>                                }<a name="line.34370"></a>
+<span class="sourceLineNo">34371</span>                        } else if (as == 1) {<a name="line.34371"></a>
+<span class="sourceLineNo">34372</span>                                if (it.isOutputDouble()) {<a name="line.34372"></a>
+<span class="sourceLineNo">34373</span>                                        while (it.hasNext()) {<a name="line.34373"></a>
+<span class="sourceLineNo">34374</span>                                                final double ix = it.aDouble;<a name="line.34374"></a>
+<span class="sourceLineNo">34375</span>                                                byte ox;<a name="line.34375"></a>
+<span class="sourceLineNo">34376</span>                                                ox = (byte) toLong(-ix);<a name="line.34376"></a>
+<span class="sourceLineNo">34377</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34377"></a>
+<span class="sourceLineNo">34378</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.34378"></a>
+<span class="sourceLineNo">34379</span>                                                }<a name="line.34379"></a>
+<span class="sourceLineNo">34380</span>                                        }<a name="line.34380"></a>
+<span class="sourceLineNo">34381</span>                                } else {<a name="line.34381"></a>
+<span class="sourceLineNo">34382</span>                                        while (it.hasNext()) {<a name="line.34382"></a>
+<span class="sourceLineNo">34383</span>                                                final long ix = it.aLong;<a name="line.34383"></a>
+<span class="sourceLineNo">34384</span>                                                byte ox;<a name="line.34384"></a>
+<span class="sourceLineNo">34385</span>                                                ox = (byte) toLong(-ix);<a name="line.34385"></a>
+<span class="sourceLineNo">34386</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34386"></a>
+<span class="sourceLineNo">34387</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.34387"></a>
+<span class="sourceLineNo">34388</span>                                                }<a name="line.34388"></a>
+<span class="sourceLineNo">34389</span>                                        }<a name="line.34389"></a>
+<span class="sourceLineNo">34390</span>                                }<a name="line.34390"></a>
+<span class="sourceLineNo">34391</span>                        } else {<a name="line.34391"></a>
+<span class="sourceLineNo">34392</span>                                if (it.isOutputDouble()) {<a name="line.34392"></a>
+<span class="sourceLineNo">34393</span>                                        while (it.hasNext()) {<a name="line.34393"></a>
+<span class="sourceLineNo">34394</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34394"></a>
+<span class="sourceLineNo">34395</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.34395"></a>
+<span class="sourceLineNo">34396</span>                                                        byte ox;<a name="line.34396"></a>
+<span class="sourceLineNo">34397</span>                                                        ox = (byte) toLong(-ix);<a name="line.34397"></a>
+<span class="sourceLineNo">34398</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.34398"></a>
+<span class="sourceLineNo">34399</span>                                                }<a name="line.34399"></a>
+<span class="sourceLineNo">34400</span>                                        }<a name="line.34400"></a>
+<span class="sourceLineNo">34401</span>                                } else {<a name="line.34401"></a>
+<span class="sourceLineNo">34402</span>                                        while (it.hasNext()) {<a name="line.34402"></a>
+<span class="sourceLineNo">34403</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34403"></a>
+<span class="sourceLineNo">34404</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.34404"></a>
+<span class="sourceLineNo">34405</span>                                                        byte ox;<a name="line.34405"></a>
+<span class="sourceLineNo">34406</span>                                                        ox = (byte) toLong(-ix);<a name="line.34406"></a>
+<span class="sourceLineNo">34407</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.34407"></a>
+<span class="sourceLineNo">34408</span>                                                }<a name="line.34408"></a>
+<span class="sourceLineNo">34409</span>                                        }<a name="line.34409"></a>
+<span class="sourceLineNo">34410</span>                                }<a name="line.34410"></a>
+<span class="sourceLineNo">34411</span>                        }<a name="line.34411"></a>
+<span class="sourceLineNo">34412</span>                        break;<a name="line.34412"></a>
+<span class="sourceLineNo">34413</span>                case Dataset.ARRAYINT16:<a name="line.34413"></a>
+<span class="sourceLineNo">34414</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.34414"></a>
+<span class="sourceLineNo">34415</span>                        if (is == 1) {<a name="line.34415"></a>
+<span class="sourceLineNo">34416</span>                                if (it.isOutputDouble()) {<a name="line.34416"></a>
+<span class="sourceLineNo">34417</span>                                        while (it.hasNext()) {<a name="line.34417"></a>
+<span class="sourceLineNo">34418</span>                                                final double ix = it.aDouble;<a name="line.34418"></a>
+<span class="sourceLineNo">34419</span>                                                short ox;<a name="line.34419"></a>
+<span class="sourceLineNo">34420</span>                                                ox = (short) toLong(-ix);<a name="line.34420"></a>
+<span class="sourceLineNo">34421</span>                                                oai16data[it.oIndex] = ox;<a name="line.34421"></a>
+<span class="sourceLineNo">34422</span>                                        }<a name="line.34422"></a>
+<span class="sourceLineNo">34423</span>                                } else {<a name="line.34423"></a>
+<span class="sourceLineNo">34424</span>                                        while (it.hasNext()) {<a name="line.34424"></a>
+<span class="sourceLineNo">34425</span>                                                final long ix = it.aLong;<a name="line.34425"></a>
+<span class="sourceLineNo">34426</span>                                                short ox;<a name="line.34426"></a>
+<span class="sourceLineNo">34427</span>                                                ox = (short) toLong(-ix);<a name="line.34427"></a>
+<span class="sourceLineNo">34428</span>                                                oai16data[it.oIndex] = ox;<a name="line.34428"></a>
+<span class="sourceLineNo">34429</span>                                        }<a name="line.34429"></a>
+<span class="sourceLineNo">34430</span>                                }<a name="line.34430"></a>
+<span class="sourceLineNo">34431</span>                        } else if (as == 1) {<a name="line.34431"></a>
+<span class="sourceLineNo">34432</span>                                if (it.isOutputDouble()) {<a name="line.34432"></a>
+<span class="sourceLineNo">34433</span>                                        while (it.hasNext()) {<a name="line.34433"></a>
+<span class="sourceLineNo">34434</span>                                                final double ix = it.aDouble;<a name="line.34434"></a>
+<span class="sourceLineNo">34435</span>                                                short ox;<a name="line.34435"></a>
+<span class="sourceLineNo">34436</span>                                                ox = (short) toLong(-ix);<a name="line.34436"></a>
+<span class="sourceLineNo">34437</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34437"></a>
+<span class="sourceLineNo">34438</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.34438"></a>
+<span class="sourceLineNo">34439</span>                                                }<a name="line.34439"></a>
+<span class="sourceLineNo">34440</span>                                        }<a name="line.34440"></a>
+<span class="sourceLineNo">34441</span>                                } else {<a name="line.34441"></a>
+<span class="sourceLineNo">34442</span>                                        while (it.hasNext()) {<a name="line.34442"></a>
+<span class="sourceLineNo">34443</span>                                                final long ix = it.aLong;<a name="line.34443"></a>
+<span class="sourceLineNo">34444</span>                                                short ox;<a name="line.34444"></a>
+<span class="sourceLineNo">34445</span>                                                ox = (short) toLong(-ix);<a name="line.34445"></a>
+<span class="sourceLineNo">34446</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34446"></a>
+<span class="sourceLineNo">34447</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.34447"></a>
+<span class="sourceLineNo">34448</span>                                                }<a name="line.34448"></a>
+<span class="sourceLineNo">34449</span>                                        }<a name="line.34449"></a>
+<span class="sourceLineNo">34450</span>                                }<a name="line.34450"></a>
+<span class="sourceLineNo">34451</span>                        } else {<a name="line.34451"></a>
+<span class="sourceLineNo">34452</span>                                if (it.isOutputDouble()) {<a name="line.34452"></a>
+<span class="sourceLineNo">34453</span>                                        while (it.hasNext()) {<a name="line.34453"></a>
+<span class="sourceLineNo">34454</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34454"></a>
+<span class="sourceLineNo">34455</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.34455"></a>
+<span class="sourceLineNo">34456</span>                                                        short ox;<a name="line.34456"></a>
+<span class="sourceLineNo">34457</span>                                                        ox = (short) toLong(-ix);<a name="line.34457"></a>
+<span class="sourceLineNo">34458</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.34458"></a>
+<span class="sourceLineNo">34459</span>                                                }<a name="line.34459"></a>
+<span class="sourceLineNo">34460</span>                                        }<a name="line.34460"></a>
+<span class="sourceLineNo">34461</span>                                } else {<a name="line.34461"></a>
+<span class="sourceLineNo">34462</span>                                        while (it.hasNext()) {<a name="line.34462"></a>
+<span class="sourceLineNo">34463</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34463"></a>
+<span class="sourceLineNo">34464</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.34464"></a>
+<span class="sourceLineNo">34465</span>                                                        short ox;<a name="line.34465"></a>
+<span class="sourceLineNo">34466</span>                                                        ox = (short) toLong(-ix);<a name="line.34466"></a>
+<span class="sourceLineNo">34467</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.34467"></a>
+<span class="sourceLineNo">34468</span>                                                }<a name="line.34468"></a>
+<span class="sourceLineNo">34469</span>                                        }<a name="line.34469"></a>
+<span class="sourceLineNo">34470</span>                                }<a name="line.34470"></a>
+<span class="sourceLineNo">34471</span>                        }<a name="line.34471"></a>
+<span class="sourceLineNo">34472</span>                        break;<a name="line.34472"></a>
+<span class="sourceLineNo">34473</span>                case Dataset.ARRAYINT64:<a name="line.34473"></a>
+<span class="sourceLineNo">34474</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.34474"></a>
+<span class="sourceLineNo">34475</span>                        if (is == 1) {<a name="line.34475"></a>
+<span class="sourceLineNo">34476</span>                                if (it.isOutputDouble()) {<a name="line.34476"></a>
+<span class="sourceLineNo">34477</span>                                        while (it.hasNext()) {<a name="line.34477"></a>
+<span class="sourceLineNo">34478</span>                                                final double ix = it.aDouble;<a name="line.34478"></a>
+<span class="sourceLineNo">34479</span>                                                long ox;<a name="line.34479"></a>
+<span class="sourceLineNo">34480</span>                                                ox = toLong(-ix);<a name="line.34480"></a>
+<span class="sourceLineNo">34481</span>                                                oai64data[it.oIndex] = ox;<a name="line.34481"></a>
+<span class="sourceLineNo">34482</span>                                        }<a name="line.34482"></a>
+<span class="sourceLineNo">34483</span>                                } else {<a name="line.34483"></a>
+<span class="sourceLineNo">34484</span>                                        while (it.hasNext()) {<a name="line.34484"></a>
+<span class="sourceLineNo">34485</span>                                                final long ix = it.aLong;<a name="line.34485"></a>
+<span class="sourceLineNo">34486</span>                                                long ox;<a name="line.34486"></a>
+<span class="sourceLineNo">34487</span>                                                ox = toLong(-ix);<a name="line.34487"></a>
+<span class="sourceLineNo">34488</span>                                                oai64data[it.oIndex] = ox;<a name="line.34488"></a>
+<span class="sourceLineNo">34489</span>                                        }<a name="line.34489"></a>
+<span class="sourceLineNo">34490</span>                                }<a name="line.34490"></a>
+<span class="sourceLineNo">34491</span>                        } else if (as == 1) {<a name="line.34491"></a>
+<span class="sourceLineNo">34492</span>                                if (it.isOutputDouble()) {<a name="line.34492"></a>
+<span class="sourceLineNo">34493</span>                                        while (it.hasNext()) {<a name="line.34493"></a>
+<span class="sourceLineNo">34494</span>                                                final double ix = it.aDouble;<a name="line.34494"></a>
+<span class="sourceLineNo">34495</span>                                                long ox;<a name="line.34495"></a>
+<span class="sourceLineNo">34496</span>                                                ox = toLong(-ix);<a name="line.34496"></a>
+<span class="sourceLineNo">34497</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34497"></a>
+<span class="sourceLineNo">34498</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.34498"></a>
+<span class="sourceLineNo">34499</span>                                                }<a name="line.34499"></a>
+<span class="sourceLineNo">34500</span>                                        }<a name="line.34500"></a>
+<span class="sourceLineNo">34501</span>                                } else {<a name="line.34501"></a>
+<span class="sourceLineNo">34502</span>                                        while (it.hasNext()) {<a name="line.34502"></a>
+<span class="sourceLineNo">34503</span>                                                final long ix = it.aLong;<a name="line.34503"></a>
+<span class="sourceLineNo">34504</span>                                                long ox;<a name="line.34504"></a>
+<span class="sourceLineNo">34505</span>                                                ox = toLong(-ix);<a name="line.34505"></a>
+<span class="sourceLineNo">34506</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34506"></a>
+<span class="sourceLineNo">34507</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.34507"></a>
+<span class="sourceLineNo">34508</span>                                                }<a name="line.34508"></a>
+<span class="sourceLineNo">34509</span>                                        }<a name="line.34509"></a>
+<span class="sourceLineNo">34510</span>                                }<a name="line.34510"></a>
+<span class="sourceLineNo">34511</span>                        } else {<a name="line.34511"></a>
+<span class="sourceLineNo">34512</span>                                if (it.isOutputDouble()) {<a name="line.34512"></a>
+<span class="sourceLineNo">34513</span>                                        while (it.hasNext()) {<a name="line.34513"></a>
+<span class="sourceLineNo">34514</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34514"></a>
+<span class="sourceLineNo">34515</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.34515"></a>
+<span class="sourceLineNo">34516</span>                                                        long ox;<a name="line.34516"></a>
+<span class="sourceLineNo">34517</span>                                                        ox = toLong(-ix);<a name="line.34517"></a>
+<span class="sourceLineNo">34518</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.34518"></a>
+<span class="sourceLineNo">34519</span>                                                }<a name="line.34519"></a>
+<span class="sourceLineNo">34520</span>                                        }<a name="line.34520"></a>
+<span class="sourceLineNo">34521</span>                                } else {<a name="line.34521"></a>
+<span class="sourceLineNo">34522</span>                                        while (it.hasNext()) {<a name="line.34522"></a>
+<span class="sourceLineNo">34523</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34523"></a>
+<span class="sourceLineNo">34524</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.34524"></a>
+<span class="sourceLineNo">34525</span>                                                        long ox;<a name="line.34525"></a>
+<span class="sourceLineNo">34526</span>                                                        ox = toLong(-ix);<a name="line.34526"></a>
+<span class="sourceLineNo">34527</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.34527"></a>
+<span class="sourceLineNo">34528</span>                                                }<a name="line.34528"></a>
+<span class="sourceLineNo">34529</span>                                        }<a name="line.34529"></a>
+<span class="sourceLineNo">34530</span>                                }<a name="line.34530"></a>
+<span class="sourceLineNo">34531</span>                        }<a name="line.34531"></a>
+<span class="sourceLineNo">34532</span>                        break;<a name="line.34532"></a>
+<span class="sourceLineNo">34533</span>                case Dataset.ARRAYINT32:<a name="line.34533"></a>
+<span class="sourceLineNo">34534</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.34534"></a>
+<span class="sourceLineNo">34535</span>                        if (is == 1) {<a name="line.34535"></a>
+<span class="sourceLineNo">34536</span>                                if (it.isOutputDouble()) {<a name="line.34536"></a>
+<span class="sourceLineNo">34537</span>                                        while (it.hasNext()) {<a name="line.34537"></a>
+<span class="sourceLineNo">34538</span>                                                final double ix = it.aDouble;<a name="line.34538"></a>
+<span class="sourceLineNo">34539</span>                                                int ox;<a name="line.34539"></a>
+<span class="sourceLineNo">34540</span>                                                ox = (int) toLong(-ix);<a name="line.34540"></a>
+<span class="sourceLineNo">34541</span>                                                oai32data[it.oIndex] = ox;<a name="line.34541"></a>
+<span class="sourceLineNo">34542</span>                                        }<a name="line.34542"></a>
+<span class="sourceLineNo">34543</span>                                } else {<a name="line.34543"></a>
+<span class="sourceLineNo">34544</span>                                        while (it.hasNext()) {<a name="line.34544"></a>
+<span class="sourceLineNo">34545</span>                                                final long ix = it.aLong;<a name="line.34545"></a>
+<span class="sourceLineNo">34546</span>                                                int ox;<a name="line.34546"></a>
+<span class="sourceLineNo">34547</span>                                                ox = (int) toLong(-ix);<a name="line.34547"></a>
+<span class="sourceLineNo">34548</span>                                                oai32data[it.oIndex] = ox;<a name="line.34548"></a>
+<span class="sourceLineNo">34549</span>                                        }<a name="line.34549"></a>
+<span class="sourceLineNo">34550</span>                                }<a name="line.34550"></a>
+<span class="sourceLineNo">34551</span>                        } else if (as == 1) {<a name="line.34551"></a>
+<span class="sourceLineNo">34552</span>                                if (it.isOutputDouble()) {<a name="line.34552"></a>
+<span class="sourceLineNo">34553</span>                                        while (it.hasNext()) {<a name="line.34553"></a>
+<span class="sourceLineNo">34554</span>                                                final double ix = it.aDouble;<a name="line.34554"></a>
+<span class="sourceLineNo">34555</span>                                                int ox;<a name="line.34555"></a>
+<span class="sourceLineNo">34556</span>                                                ox = (int) toLong(-ix);<a name="line.34556"></a>
+<span class="sourceLineNo">34557</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34557"></a>
+<span class="sourceLineNo">34558</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.34558"></a>
+<span class="sourceLineNo">34559</span>                                                }<a name="line.34559"></a>
+<span class="sourceLineNo">34560</span>                                        }<a name="line.34560"></a>
+<span class="sourceLineNo">34561</span>                                } else {<a name="line.34561"></a>
+<span class="sourceLineNo">34562</span>                                        while (it.hasNext()) {<a name="line.34562"></a>
+<span class="sourceLineNo">34563</span>                                                final long ix = it.aLong;<a name="line.34563"></a>
+<span class="sourceLineNo">34564</span>                                                int ox;<a name="line.34564"></a>
+<span class="sourceLineNo">34565</span>                                                ox = (int) toLong(-ix);<a name="line.34565"></a>
+<span class="sourceLineNo">34566</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34566"></a>
+<span class="sourceLineNo">34567</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.34567"></a>
+<span class="sourceLineNo">34568</span>                                                }<a name="line.34568"></a>
+<span class="sourceLineNo">34569</span>                                        }<a name="line.34569"></a>
+<span class="sourceLineNo">34570</span>                                }<a name="line.34570"></a>
+<span class="sourceLineNo">34571</span>                        } else {<a name="line.34571"></a>
+<span class="sourceLineNo">34572</span>                                if (it.isOutputDouble()) {<a name="line.34572"></a>
+<span class="sourceLineNo">34573</span>                                        while (it.hasNext()) {<a name="line.34573"></a>
+<span class="sourceLineNo">34574</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34574"></a>
+<span class="sourceLineNo">34575</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.34575"></a>
+<span class="sourceLineNo">34576</span>                                                        int ox;<a name="line.34576"></a>
+<span class="sourceLineNo">34577</span>                                                        ox = (int) toLong(-ix);<a name="line.34577"></a>
+<span class="sourceLineNo">34578</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.34578"></a>
+<span class="sourceLineNo">34579</span>                                                }<a name="line.34579"></a>
+<span class="sourceLineNo">34580</span>                                        }<a name="line.34580"></a>
+<span class="sourceLineNo">34581</span>                                } else {<a name="line.34581"></a>
+<span class="sourceLineNo">34582</span>                                        while (it.hasNext()) {<a name="line.34582"></a>
+<span class="sourceLineNo">34583</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34583"></a>
+<span class="sourceLineNo">34584</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.34584"></a>
+<span class="sourceLineNo">34585</span>                                                        int ox;<a name="line.34585"></a>
+<span class="sourceLineNo">34586</span>                                                        ox = (int) toLong(-ix);<a name="line.34586"></a>
+<span class="sourceLineNo">34587</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.34587"></a>
+<span class="sourceLineNo">34588</span>                                                }<a name="line.34588"></a>
+<span class="sourceLineNo">34589</span>                                        }<a name="line.34589"></a>
+<span class="sourceLineNo">34590</span>                                }<a name="line.34590"></a>
+<span class="sourceLineNo">34591</span>                        }<a name="line.34591"></a>
+<span class="sourceLineNo">34592</span>                        break;<a name="line.34592"></a>
+<span class="sourceLineNo">34593</span>                case Dataset.FLOAT32:<a name="line.34593"></a>
+<span class="sourceLineNo">34594</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.34594"></a>
+<span class="sourceLineNo">34595</span>                        if (it.isOutputDouble()) {<a name="line.34595"></a>
+<span class="sourceLineNo">34596</span>                                while (it.hasNext()) {<a name="line.34596"></a>
+<span class="sourceLineNo">34597</span>                                        final double ix = it.aDouble;<a name="line.34597"></a>
+<span class="sourceLineNo">34598</span>                                        float ox;<a name="line.34598"></a>
+<span class="sourceLineNo">34599</span>                                        ox = (float) (-ix);<a name="line.34599"></a>
+<span class="sourceLineNo">34600</span>                                        of32data[it.oIndex] = ox;<a name="line.34600"></a>
+<span class="sourceLineNo">34601</span>                                }<a name="line.34601"></a>
+<span class="sourceLineNo">34602</span>                        } else {<a name="line.34602"></a>
+<span class="sourceLineNo">34603</span>                                while (it.hasNext()) {<a name="line.34603"></a>
+<span class="sourceLineNo">34604</span>                                        final long ix = it.aLong;<a name="line.34604"></a>
+<span class="sourceLineNo">34605</span>                                        float ox;<a name="line.34605"></a>
+<span class="sourceLineNo">34606</span>                                        ox = (-ix);<a name="line.34606"></a>
+<span class="sourceLineNo">34607</span>                                        of32data[it.oIndex] = ox;<a name="line.34607"></a>
+<span class="sourceLineNo">34608</span>                                }<a name="line.34608"></a>
+<span class="sourceLineNo">34609</span>                        }<a name="line.34609"></a>
+<span class="sourceLineNo">34610</span>                        break;<a name="line.34610"></a>
+<span class="sourceLineNo">34611</span>                case Dataset.FLOAT64:<a name="line.34611"></a>
+<span class="sourceLineNo">34612</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.34612"></a>
+<span class="sourceLineNo">34613</span>                        if (it.isOutputDouble()) {<a name="line.34613"></a>
+<span class="sourceLineNo">34614</span>                                while (it.hasNext()) {<a name="line.34614"></a>
+<span class="sourceLineNo">34615</span>                                        final double ix = it.aDouble;<a name="line.34615"></a>
+<span class="sourceLineNo">34616</span>                                        double ox;<a name="line.34616"></a>
+<span class="sourceLineNo">34617</span>                                        ox = (-ix);<a name="line.34617"></a>
+<span class="sourceLineNo">34618</span>                                        of64data[it.oIndex] = ox;<a name="line.34618"></a>
+<span class="sourceLineNo">34619</span>                                }<a name="line.34619"></a>
+<span class="sourceLineNo">34620</span>                        } else {<a name="line.34620"></a>
+<span class="sourceLineNo">34621</span>                                while (it.hasNext()) {<a name="line.34621"></a>
+<span class="sourceLineNo">34622</span>                                        final long ix = it.aLong;<a name="line.34622"></a>
+<span class="sourceLineNo">34623</span>                                        double ox;<a name="line.34623"></a>
+<span class="sourceLineNo">34624</span>                                        ox = (-ix);<a name="line.34624"></a>
+<span class="sourceLineNo">34625</span>                                        of64data[it.oIndex] = ox;<a name="line.34625"></a>
+<span class="sourceLineNo">34626</span>                                }<a name="line.34626"></a>
+<span class="sourceLineNo">34627</span>                        }<a name="line.34627"></a>
+<span class="sourceLineNo">34628</span>                        break;<a name="line.34628"></a>
+<span class="sourceLineNo">34629</span>                case Dataset.ARRAYFLOAT32:<a name="line.34629"></a>
+<span class="sourceLineNo">34630</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.34630"></a>
+<span class="sourceLineNo">34631</span>                        if (is == 1) {<a name="line.34631"></a>
+<span class="sourceLineNo">34632</span>                                if (it.isOutputDouble()) {<a name="line.34632"></a>
+<span class="sourceLineNo">34633</span>                                        while (it.hasNext()) {<a name="line.34633"></a>
+<span class="sourceLineNo">34634</span>                                                final double ix = it.aDouble;<a name="line.34634"></a>
+<span class="sourceLineNo">34635</span>                                                float ox;<a name="line.34635"></a>
+<span class="sourceLineNo">34636</span>                                                ox = (float) (-ix);<a name="line.34636"></a>
+<span class="sourceLineNo">34637</span>                                                oaf32data[it.oIndex] = ox;<a name="line.34637"></a>
+<span class="sourceLineNo">34638</span>                                        }<a name="line.34638"></a>
+<span class="sourceLineNo">34639</span>                                } else {<a name="line.34639"></a>
+<span class="sourceLineNo">34640</span>                                        while (it.hasNext()) {<a name="line.34640"></a>
+<span class="sourceLineNo">34641</span>                                                final long ix = it.aLong;<a name="line.34641"></a>
+<span class="sourceLineNo">34642</span>                                                float ox;<a name="line.34642"></a>
+<span class="sourceLineNo">34643</span>                                                ox = (-ix);<a name="line.34643"></a>
+<span class="sourceLineNo">34644</span>                                                oaf32data[it.oIndex] = ox;<a name="line.34644"></a>
+<span class="sourceLineNo">34645</span>                                        }<a name="line.34645"></a>
+<span class="sourceLineNo">34646</span>                                }<a name="line.34646"></a>
+<span class="sourceLineNo">34647</span>                        } else if (as == 1) {<a name="line.34647"></a>
+<span class="sourceLineNo">34648</span>                                if (it.isOutputDouble()) {<a name="line.34648"></a>
+<span class="sourceLineNo">34649</span>                                        while (it.hasNext()) {<a name="line.34649"></a>
+<span class="sourceLineNo">34650</span>                                                final double ix = it.aDouble;<a name="line.34650"></a>
+<span class="sourceLineNo">34651</span>                                                float ox;<a name="line.34651"></a>
+<span class="sourceLineNo">34652</span>                                                ox = (float) (-ix);<a name="line.34652"></a>
+<span class="sourceLineNo">34653</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34653"></a>
+<span class="sourceLineNo">34654</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.34654"></a>
+<span class="sourceLineNo">34655</span>                                                }<a name="line.34655"></a>
+<span class="sourceLineNo">34656</span>                                        }<a name="line.34656"></a>
+<span class="sourceLineNo">34657</span>                                } else {<a name="line.34657"></a>
+<span class="sourceLineNo">34658</span>                                        while (it.hasNext()) {<a name="line.34658"></a>
+<span class="sourceLineNo">34659</span>                                                final long ix = it.aLong;<a name="line.34659"></a>
+<span class="sourceLineNo">34660</span>                                                float ox;<a name="line.34660"></a>
+<span class="sourceLineNo">34661</span>                                                ox = (-ix);<a name="line.34661"></a>
+<span class="sourceLineNo">34662</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34662"></a>
+<span class="sourceLineNo">34663</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.34663"></a>
+<span class="sourceLineNo">34664</span>                                                }<a name="line.34664"></a>
+<span class="sourceLineNo">34665</span>                                        }<a name="line.34665"></a>
+<span class="sourceLineNo">34666</span>                                }<a name="line.34666"></a>
+<span class="sourceLineNo">34667</span>                        } else {<a name="line.34667"></a>
+<span class="sourceLineNo">34668</span>                                if (it.isOutputDouble()) {<a name="line.34668"></a>
+<span class="sourceLineNo">34669</span>                                        while (it.hasNext()) {<a name="line.34669"></a>
+<span class="sourceLineNo">34670</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34670"></a>
+<span class="sourceLineNo">34671</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.34671"></a>
+<span class="sourceLineNo">34672</span>                                                        float ox;<a name="line.34672"></a>
+<span class="sourceLineNo">34673</span>                                                        ox = (float) (-ix);<a name="line.34673"></a>
+<span class="sourceLineNo">34674</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.34674"></a>
+<span class="sourceLineNo">34675</span>                                                }<a name="line.34675"></a>
+<span class="sourceLineNo">34676</span>                                        }<a name="line.34676"></a>
+<span class="sourceLineNo">34677</span>                                } else {<a name="line.34677"></a>
+<span class="sourceLineNo">34678</span>                                        while (it.hasNext()) {<a name="line.34678"></a>
+<span class="sourceLineNo">34679</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34679"></a>
+<span class="sourceLineNo">34680</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.34680"></a>
+<span class="sourceLineNo">34681</span>                                                        float ox;<a name="line.34681"></a>
+<span class="sourceLineNo">34682</span>                                                        ox = (-ix);<a name="line.34682"></a>
+<span class="sourceLineNo">34683</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.34683"></a>
+<span class="sourceLineNo">34684</span>                                                }<a name="line.34684"></a>
+<span class="sourceLineNo">34685</span>                                        }<a name="line.34685"></a>
+<span class="sourceLineNo">34686</span>                                }<a name="line.34686"></a>
+<span class="sourceLineNo">34687</span>                        }<a name="line.34687"></a>
+<span class="sourceLineNo">34688</span>                        break;<a name="line.34688"></a>
+<span class="sourceLineNo">34689</span>                case Dataset.ARRAYFLOAT64:<a name="line.34689"></a>
+<span class="sourceLineNo">34690</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.34690"></a>
+<span class="sourceLineNo">34691</span>                        if (is == 1) {<a name="line.34691"></a>
+<span class="sourceLineNo">34692</span>                                if (it.isOutputDouble()) {<a name="line.34692"></a>
+<span class="sourceLineNo">34693</span>                                        while (it.hasNext()) {<a name="line.34693"></a>
+<span class="sourceLineNo">34694</span>                                                final double ix = it.aDouble;<a name="line.34694"></a>
+<span class="sourceLineNo">34695</span>                                                double ox;<a name="line.34695"></a>
+<span class="sourceLineNo">34696</span>                                                ox = (-ix);<a name="line.34696"></a>
+<span class="sourceLineNo">34697</span>                                                oaf64data[it.oIndex] = ox;<a name="line.34697"></a>
+<span class="sourceLineNo">34698</span>                                        }<a name="line.34698"></a>
+<span class="sourceLineNo">34699</span>                                } else {<a name="line.34699"></a>
+<span class="sourceLineNo">34700</span>                                        while (it.hasNext()) {<a name="line.34700"></a>
+<span class="sourceLineNo">34701</span>                                                final long ix = it.aLong;<a name="line.34701"></a>
+<span class="sourceLineNo">34702</span>                                                double ox;<a name="line.34702"></a>
+<span class="sourceLineNo">34703</span>                                                ox = (-ix);<a name="line.34703"></a>
+<span class="sourceLineNo">34704</span>                                                oaf64data[it.oIndex] = ox;<a name="line.34704"></a>
+<span class="sourceLineNo">34705</span>                                        }<a name="line.34705"></a>
+<span class="sourceLineNo">34706</span>                                }<a name="line.34706"></a>
+<span class="sourceLineNo">34707</span>                        } else if (as == 1) {<a name="line.34707"></a>
+<span class="sourceLineNo">34708</span>                                if (it.isOutputDouble()) {<a name="line.34708"></a>
+<span class="sourceLineNo">34709</span>                                        while (it.hasNext()) {<a name="line.34709"></a>
+<span class="sourceLineNo">34710</span>                                                final double ix = it.aDouble;<a name="line.34710"></a>
+<span class="sourceLineNo">34711</span>                                                double ox;<a name="line.34711"></a>
+<span class="sourceLineNo">34712</span>                                                ox = (-ix);<a name="line.34712"></a>
+<span class="sourceLineNo">34713</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34713"></a>
+<span class="sourceLineNo">34714</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.34714"></a>
+<span class="sourceLineNo">34715</span>                                                }<a name="line.34715"></a>
+<span class="sourceLineNo">34716</span>                                        }<a name="line.34716"></a>
+<span class="sourceLineNo">34717</span>                                } else {<a name="line.34717"></a>
+<span class="sourceLineNo">34718</span>                                        while (it.hasNext()) {<a name="line.34718"></a>
+<span class="sourceLineNo">34719</span>                                                final long ix = it.aLong;<a name="line.34719"></a>
+<span class="sourceLineNo">34720</span>                                                double ox;<a name="line.34720"></a>
+<span class="sourceLineNo">34721</span>                                                ox = (-ix);<a name="line.34721"></a>
+<span class="sourceLineNo">34722</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34722"></a>
+<span class="sourceLineNo">34723</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.34723"></a>
+<span class="sourceLineNo">34724</span>                                                }<a name="line.34724"></a>
+<span class="sourceLineNo">34725</span>                                        }<a name="line.34725"></a>
+<span class="sourceLineNo">34726</span>                                }<a name="line.34726"></a>
+<span class="sourceLineNo">34727</span>                        } else {<a name="line.34727"></a>
+<span class="sourceLineNo">34728</span>                                if (it.isOutputDouble()) {<a name="line.34728"></a>
+<span class="sourceLineNo">34729</span>                                        while (it.hasNext()) {<a name="line.34729"></a>
+<span class="sourceLineNo">34730</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34730"></a>
+<span class="sourceLineNo">34731</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.34731"></a>
+<span class="sourceLineNo">34732</span>                                                        double ox;<a name="line.34732"></a>
+<span class="sourceLineNo">34733</span>                                                        ox = (-ix);<a name="line.34733"></a>
+<span class="sourceLineNo">34734</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.34734"></a>
+<span class="sourceLineNo">34735</span>                                                }<a name="line.34735"></a>
+<span class="sourceLineNo">34736</span>                                        }<a name="line.34736"></a>
+<span class="sourceLineNo">34737</span>                                } else {<a name="line.34737"></a>
+<span class="sourceLineNo">34738</span>                                        while (it.hasNext()) {<a name="line.34738"></a>
+<span class="sourceLineNo">34739</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34739"></a>
+<span class="sourceLineNo">34740</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.34740"></a>
+<span class="sourceLineNo">34741</span>                                                        double ox;<a name="line.34741"></a>
+<span class="sourceLineNo">34742</span>                                                        ox = (-ix);<a name="line.34742"></a>
+<span class="sourceLineNo">34743</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.34743"></a>
+<span class="sourceLineNo">34744</span>                                                }<a name="line.34744"></a>
+<span class="sourceLineNo">34745</span>                                        }<a name="line.34745"></a>
+<span class="sourceLineNo">34746</span>                                }<a name="line.34746"></a>
+<span class="sourceLineNo">34747</span>                        }<a name="line.34747"></a>
+<span class="sourceLineNo">34748</span>                        break;<a name="line.34748"></a>
+<span class="sourceLineNo">34749</span>                case Dataset.COMPLEX64:<a name="line.34749"></a>
+<span class="sourceLineNo">34750</span>                        final float[] oc64data = ((ComplexFloatDataset) result).getData();<a name="line.34750"></a>
+<span class="sourceLineNo">34751</span>                        if (!da.isComplex()) {<a name="line.34751"></a>
+<span class="sourceLineNo">34752</span>                                if (it.isOutputDouble()) {<a name="line.34752"></a>
+<span class="sourceLineNo">34753</span>                                        final double iy = 0;<a name="line.34753"></a>
+<span class="sourceLineNo">34754</span>                                        while (it.hasNext()) {<a name="line.34754"></a>
+<span class="sourceLineNo">34755</span>                                                final double ix = it.aDouble;<a name="line.34755"></a>
+<span class="sourceLineNo">34756</span>                                                float ox;<a name="line.34756"></a>
+<span class="sourceLineNo">34757</span>                                                float oy;<a name="line.34757"></a>
+<span class="sourceLineNo">34758</span>                                                ox = (float) (-ix);<a name="line.34758"></a>
+<span class="sourceLineNo">34759</span>                                                oy = (float) (-iy);<a name="line.34759"></a>
+<span class="sourceLineNo">34760</span>                                                oc64data[it.oIndex] = ox;<a name="line.34760"></a>
+<span class="sourceLineNo">34761</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.34761"></a>
+<span class="sourceLineNo">34762</span>                                        }<a name="line.34762"></a>
+<span class="sourceLineNo">34763</span>                                } else {<a name="line.34763"></a>
+<span class="sourceLineNo">34764</span>                                        final long iy = 0;<a name="line.34764"></a>
+<span class="sourceLineNo">34765</span>                                        while (it.hasNext()) {<a name="line.34765"></a>
+<span class="sourceLineNo">34766</span>                                                final long ix = it.aLong;<a name="line.34766"></a>
+<span class="sourceLineNo">34767</span>                                                float ox;<a name="line.34767"></a>
+<span class="sourceLineNo">34768</span>                                                float oy;<a name="line.34768"></a>
+<span class="sourceLineNo">34769</span>                                                ox = (float) toLong(-ix);<a name="line.34769"></a>
+<span class="sourceLineNo">34770</span>                                                oy = (float) toLong(-iy);<a name="line.34770"></a>
+<span class="sourceLineNo">34771</span>                                                oc64data[it.oIndex] = ox;<a name="line.34771"></a>
+<span class="sourceLineNo">34772</span>                                                oc64data[it.oIndex + 1] = oy;<a name="line.34772"></a>
+<span class="sourceLineNo">34773</span>                                        }<a name="line.34773"></a>
+<span class="sourceLineNo">34774</span>                                }<a name="line.34774"></a>
+<span class="sourceLineNo">34775</span>                        } else {<a name="line.34775"></a>
+<span class="sourceLineNo">34776</span>                                while (it.hasNext()) {<a name="line.34776"></a>
+<span class="sourceLineNo">34777</span>                                        final double ix = it.aDouble;<a name="line.34777"></a>
+<span class="sourceLineNo">34778</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.34778"></a>
+<span class="sourceLineNo">34779</span>                                        float ox;<a name="line.34779"></a>
+<span class="sourceLineNo">34780</span>                                        float oy;<a name="line.34780"></a>
+<span class="sourceLineNo">34781</span>                                        ox = (float) (-ix);<a name="line.34781"></a>
+<span class="sourceLineNo">34782</span>                                        oy = (float) (-iy);<a name="line.34782"></a>
+<span class="sourceLineNo">34783</span>                                        oc64data[it.oIndex] = ox;<a name="line.34783"></a>
+<span class="sourceLineNo">34784</span>                                        oc64data[it.oIndex + 1] = oy;<a name="line.34784"></a>
+<span class="sourceLineNo">34785</span>                                }<a name="line.34785"></a>
+<span class="sourceLineNo">34786</span>                        }<a name="line.34786"></a>
+<span class="sourceLineNo">34787</span>                        break;<a name="line.34787"></a>
+<span class="sourceLineNo">34788</span>                case Dataset.COMPLEX128:<a name="line.34788"></a>
+<span class="sourceLineNo">34789</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).getData();<a name="line.34789"></a>
+<span class="sourceLineNo">34790</span>                        if (!da.isComplex()) {<a name="line.34790"></a>
+<span class="sourceLineNo">34791</span>                                if (it.isOutputDouble()) {<a name="line.34791"></a>
+<span class="sourceLineNo">34792</span>                                        final double iy = 0;<a name="line.34792"></a>
+<span class="sourceLineNo">34793</span>                                        while (it.hasNext()) {<a name="line.34793"></a>
+<span class="sourceLineNo">34794</span>                                                final double ix = it.aDouble;<a name="line.34794"></a>
+<span class="sourceLineNo">34795</span>                                                double ox;<a name="line.34795"></a>
+<span class="sourceLineNo">34796</span>                                                double oy;<a name="line.34796"></a>
+<span class="sourceLineNo">34797</span>                                                ox = (-ix);<a name="line.34797"></a>
+<span class="sourceLineNo">34798</span>                                                oy = (-iy);<a name="line.34798"></a>
+<span class="sourceLineNo">34799</span>                                                oc128data[it.oIndex] = ox;<a name="line.34799"></a>
+<span class="sourceLineNo">34800</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.34800"></a>
+<span class="sourceLineNo">34801</span>                                        }<a name="line.34801"></a>
+<span class="sourceLineNo">34802</span>                                } else {<a name="line.34802"></a>
+<span class="sourceLineNo">34803</span>                                        final long iy = 0;<a name="line.34803"></a>
+<span class="sourceLineNo">34804</span>                                        while (it.hasNext()) {<a name="line.34804"></a>
+<span class="sourceLineNo">34805</span>                                                final long ix = it.aLong;<a name="line.34805"></a>
+<span class="sourceLineNo">34806</span>                                                double ox;<a name="line.34806"></a>
+<span class="sourceLineNo">34807</span>                                                double oy;<a name="line.34807"></a>
+<span class="sourceLineNo">34808</span>                                                ox = (-ix);<a name="line.34808"></a>
+<span class="sourceLineNo">34809</span>                                                oy = (-iy);<a name="line.34809"></a>
+<span class="sourceLineNo">34810</span>                                                oc128data[it.oIndex] = ox;<a name="line.34810"></a>
+<span class="sourceLineNo">34811</span>                                                oc128data[it.oIndex + 1] = oy;<a name="line.34811"></a>
+<span class="sourceLineNo">34812</span>                                        }<a name="line.34812"></a>
+<span class="sourceLineNo">34813</span>                                }<a name="line.34813"></a>
+<span class="sourceLineNo">34814</span>                        } else {<a name="line.34814"></a>
+<span class="sourceLineNo">34815</span>                                while (it.hasNext()) {<a name="line.34815"></a>
+<span class="sourceLineNo">34816</span>                                        final double ix = it.aDouble;<a name="line.34816"></a>
+<span class="sourceLineNo">34817</span>                                        final double iy = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.34817"></a>
+<span class="sourceLineNo">34818</span>                                        double ox;<a name="line.34818"></a>
+<span class="sourceLineNo">34819</span>                                        double oy;<a name="line.34819"></a>
+<span class="sourceLineNo">34820</span>                                        ox = (-ix);<a name="line.34820"></a>
+<span class="sourceLineNo">34821</span>                                        oy = (-iy);<a name="line.34821"></a>
+<span class="sourceLineNo">34822</span>                                        oc128data[it.oIndex] = ox;<a name="line.34822"></a>
+<span class="sourceLineNo">34823</span>                                        oc128data[it.oIndex + 1] = oy;<a name="line.34823"></a>
+<span class="sourceLineNo">34824</span>                                }<a name="line.34824"></a>
+<span class="sourceLineNo">34825</span>                        }<a name="line.34825"></a>
+<span class="sourceLineNo">34826</span>                        break;<a name="line.34826"></a>
+<span class="sourceLineNo">34827</span>                default:<a name="line.34827"></a>
+<span class="sourceLineNo">34828</span>                        throw new IllegalArgumentException("negative supports integer, compound integer, real, compound real, complex datasets only");<a name="line.34828"></a>
+<span class="sourceLineNo">34829</span>                }<a name="line.34829"></a>
+<span class="sourceLineNo">34830</span><a name="line.34830"></a>
+<span class="sourceLineNo">34831</span>                addFunctionName(result, "negative");<a name="line.34831"></a>
+<span class="sourceLineNo">34832</span>                return result;<a name="line.34832"></a>
+<span class="sourceLineNo">34833</span>        }<a name="line.34833"></a>
+<span class="sourceLineNo">34834</span><a name="line.34834"></a>
+<span class="sourceLineNo">34835</span>        /**<a name="line.34835"></a>
+<span class="sourceLineNo">34836</span>         * lowerClip - clip elements to lower limit<a name="line.34836"></a>
+<span class="sourceLineNo">34837</span>         * @param a<a name="line.34837"></a>
+<span class="sourceLineNo">34838</span>         * @param pa<a name="line.34838"></a>
+<span class="sourceLineNo">34839</span>         * @return dataset<a name="line.34839"></a>
+<span class="sourceLineNo">34840</span>         * @since 2.3<a name="line.34840"></a>
+<span class="sourceLineNo">34841</span>         */<a name="line.34841"></a>
+<span class="sourceLineNo">34842</span>        public static Dataset lowerClip(final Object a, final Object pa) {<a name="line.34842"></a>
+<span class="sourceLineNo">34843</span>                return lowerClip(a, null, pa);<a name="line.34843"></a>
+<span class="sourceLineNo">34844</span>        }<a name="line.34844"></a>
+<span class="sourceLineNo">34845</span><a name="line.34845"></a>
+<span class="sourceLineNo">34846</span>        /**<a name="line.34846"></a>
+<span class="sourceLineNo">34847</span>         * lowerClip - clip elements to lower limit<a name="line.34847"></a>
+<span class="sourceLineNo">34848</span>         * @param a<a name="line.34848"></a>
+<span class="sourceLineNo">34849</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.34849"></a>
+<span class="sourceLineNo">34850</span>         * @param pa<a name="line.34850"></a>
+<span class="sourceLineNo">34851</span>         * @return dataset<a name="line.34851"></a>
+<span class="sourceLineNo">34852</span>         * @since 2.3<a name="line.34852"></a>
+<span class="sourceLineNo">34853</span>         */<a name="line.34853"></a>
+<span class="sourceLineNo">34854</span>        public static Dataset lowerClip(final Object a, final Dataset o, final Object pa) {<a name="line.34854"></a>
+<span class="sourceLineNo">34855</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.34855"></a>
+<span class="sourceLineNo">34856</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.34856"></a>
+<span class="sourceLineNo">34857</span>                final Dataset result = it.getOutput();<a name="line.34857"></a>
+<span class="sourceLineNo">34858</span>                if (!result.isComplex()) {<a name="line.34858"></a>
+<span class="sourceLineNo">34859</span>                        if (da.isComplex()) {<a name="line.34859"></a>
+<span class="sourceLineNo">34860</span>                                da = da.getRealView();<a name="line.34860"></a>
+<span class="sourceLineNo">34861</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.34861"></a>
+<span class="sourceLineNo">34862</span>                        }<a name="line.34862"></a>
+<span class="sourceLineNo">34863</span>                }<a name="line.34863"></a>
+<span class="sourceLineNo">34864</span>                final int is = result.getElementsPerItem();<a name="line.34864"></a>
+<span class="sourceLineNo">34865</span>                final int as = da.getElementsPerItem();<a name="line.34865"></a>
+<span class="sourceLineNo">34866</span>                final int dt = result.getDType();<a name="line.34866"></a>
+<span class="sourceLineNo">34867</span>                final double pax = DTypeUtils.toReal(pa);<a name="line.34867"></a>
+<span class="sourceLineNo">34868</span><a name="line.34868"></a>
+<span class="sourceLineNo">34869</span>                switch(dt) {<a name="line.34869"></a>
+<span class="sourceLineNo">34870</span>                case Dataset.INT8:<a name="line.34870"></a>
+<span class="sourceLineNo">34871</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.34871"></a>
+<span class="sourceLineNo">34872</span>                        if (it.isOutputDouble()) {<a name="line.34872"></a>
+<span class="sourceLineNo">34873</span>                                while (it.hasNext()) {<a name="line.34873"></a>
+<span class="sourceLineNo">34874</span>                                        final double ix = it.aDouble;<a name="line.34874"></a>
+<span class="sourceLineNo">34875</span>                                        byte ox;<a name="line.34875"></a>
+<span class="sourceLineNo">34876</span>                                        if (ix &lt; pax)<a name="line.34876"></a>
+<span class="sourceLineNo">34877</span>                                        ox = (byte) toLong(pax);<a name="line.34877"></a>
+<span class="sourceLineNo">34878</span>                                        else<a name="line.34878"></a>
+<span class="sourceLineNo">34879</span>                                        ox = (byte) toLong(ix);<a name="line.34879"></a>
+<span class="sourceLineNo">34880</span>                                        oi8data[it.oIndex] = ox;<a name="line.34880"></a>
+<span class="sourceLineNo">34881</span>                                }<a name="line.34881"></a>
+<span class="sourceLineNo">34882</span>                        } else {<a name="line.34882"></a>
+<span class="sourceLineNo">34883</span>                                while (it.hasNext()) {<a name="line.34883"></a>
+<span class="sourceLineNo">34884</span>                                        final long ix = it.aLong;<a name="line.34884"></a>
+<span class="sourceLineNo">34885</span>                                        byte ox;<a name="line.34885"></a>
+<span class="sourceLineNo">34886</span>                                        if (ix &lt; pax)<a name="line.34886"></a>
+<span class="sourceLineNo">34887</span>                                        ox = (byte) toLong(pax);<a name="line.34887"></a>
+<span class="sourceLineNo">34888</span>                                        else<a name="line.34888"></a>
+<span class="sourceLineNo">34889</span>                                        ox = (byte) toLong(ix);<a name="line.34889"></a>
+<span class="sourceLineNo">34890</span>                                        oi8data[it.oIndex] = ox;<a name="line.34890"></a>
+<span class="sourceLineNo">34891</span>                                }<a name="line.34891"></a>
+<span class="sourceLineNo">34892</span>                        }<a name="line.34892"></a>
+<span class="sourceLineNo">34893</span>                        break;<a name="line.34893"></a>
+<span class="sourceLineNo">34894</span>                case Dataset.INT16:<a name="line.34894"></a>
+<span class="sourceLineNo">34895</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.34895"></a>
+<span class="sourceLineNo">34896</span>                        if (it.isOutputDouble()) {<a name="line.34896"></a>
+<span class="sourceLineNo">34897</span>                                while (it.hasNext()) {<a name="line.34897"></a>
+<span class="sourceLineNo">34898</span>                                        final double ix = it.aDouble;<a name="line.34898"></a>
+<span class="sourceLineNo">34899</span>                                        short ox;<a name="line.34899"></a>
+<span class="sourceLineNo">34900</span>                                        if (ix &lt; pax)<a name="line.34900"></a>
+<span class="sourceLineNo">34901</span>                                        ox = (short) toLong(pax);<a name="line.34901"></a>
+<span class="sourceLineNo">34902</span>                                        else<a name="line.34902"></a>
+<span class="sourceLineNo">34903</span>                                        ox = (short) toLong(ix);<a name="line.34903"></a>
+<span class="sourceLineNo">34904</span>                                        oi16data[it.oIndex] = ox;<a name="line.34904"></a>
+<span class="sourceLineNo">34905</span>                                }<a name="line.34905"></a>
+<span class="sourceLineNo">34906</span>                        } else {<a name="line.34906"></a>
+<span class="sourceLineNo">34907</span>                                while (it.hasNext()) {<a name="line.34907"></a>
+<span class="sourceLineNo">34908</span>                                        final long ix = it.aLong;<a name="line.34908"></a>
+<span class="sourceLineNo">34909</span>                                        short ox;<a name="line.34909"></a>
+<span class="sourceLineNo">34910</span>                                        if (ix &lt; pax)<a name="line.34910"></a>
+<span class="sourceLineNo">34911</span>                                        ox = (short) toLong(pax);<a name="line.34911"></a>
+<span class="sourceLineNo">34912</span>                                        else<a name="line.34912"></a>
+<span class="sourceLineNo">34913</span>                                        ox = (short) toLong(ix);<a name="line.34913"></a>
+<span class="sourceLineNo">34914</span>                                        oi16data[it.oIndex] = ox;<a name="line.34914"></a>
+<span class="sourceLineNo">34915</span>                                }<a name="line.34915"></a>
+<span class="sourceLineNo">34916</span>                        }<a name="line.34916"></a>
+<span class="sourceLineNo">34917</span>                        break;<a name="line.34917"></a>
+<span class="sourceLineNo">34918</span>                case Dataset.INT64:<a name="line.34918"></a>
+<span class="sourceLineNo">34919</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.34919"></a>
+<span class="sourceLineNo">34920</span>                        if (it.isOutputDouble()) {<a name="line.34920"></a>
+<span class="sourceLineNo">34921</span>                                while (it.hasNext()) {<a name="line.34921"></a>
+<span class="sourceLineNo">34922</span>                                        final double ix = it.aDouble;<a name="line.34922"></a>
+<span class="sourceLineNo">34923</span>                                        long ox;<a name="line.34923"></a>
+<span class="sourceLineNo">34924</span>                                        if (ix &lt; pax)<a name="line.34924"></a>
+<span class="sourceLineNo">34925</span>                                        ox = toLong(pax);<a name="line.34925"></a>
+<span class="sourceLineNo">34926</span>                                        else<a name="line.34926"></a>
+<span class="sourceLineNo">34927</span>                                        ox = toLong(ix);<a name="line.34927"></a>
+<span class="sourceLineNo">34928</span>                                        oi64data[it.oIndex] = ox;<a name="line.34928"></a>
+<span class="sourceLineNo">34929</span>                                }<a name="line.34929"></a>
+<span class="sourceLineNo">34930</span>                        } else {<a name="line.34930"></a>
+<span class="sourceLineNo">34931</span>                                while (it.hasNext()) {<a name="line.34931"></a>
+<span class="sourceLineNo">34932</span>                                        final long ix = it.aLong;<a name="line.34932"></a>
+<span class="sourceLineNo">34933</span>                                        long ox;<a name="line.34933"></a>
+<span class="sourceLineNo">34934</span>                                        if (ix &lt; pax)<a name="line.34934"></a>
+<span class="sourceLineNo">34935</span>                                        ox = toLong(pax);<a name="line.34935"></a>
+<span class="sourceLineNo">34936</span>                                        else<a name="line.34936"></a>
+<span class="sourceLineNo">34937</span>                                        ox = toLong(ix);<a name="line.34937"></a>
+<span class="sourceLineNo">34938</span>                                        oi64data[it.oIndex] = ox;<a name="line.34938"></a>
+<span class="sourceLineNo">34939</span>                                }<a name="line.34939"></a>
+<span class="sourceLineNo">34940</span>                        }<a name="line.34940"></a>
+<span class="sourceLineNo">34941</span>                        break;<a name="line.34941"></a>
+<span class="sourceLineNo">34942</span>                case Dataset.INT32:<a name="line.34942"></a>
+<span class="sourceLineNo">34943</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.34943"></a>
+<span class="sourceLineNo">34944</span>                        if (it.isOutputDouble()) {<a name="line.34944"></a>
+<span class="sourceLineNo">34945</span>                                while (it.hasNext()) {<a name="line.34945"></a>
+<span class="sourceLineNo">34946</span>                                        final double ix = it.aDouble;<a name="line.34946"></a>
+<span class="sourceLineNo">34947</span>                                        int ox;<a name="line.34947"></a>
+<span class="sourceLineNo">34948</span>                                        if (ix &lt; pax)<a name="line.34948"></a>
+<span class="sourceLineNo">34949</span>                                        ox = (int) toLong(pax);<a name="line.34949"></a>
+<span class="sourceLineNo">34950</span>                                        else<a name="line.34950"></a>
+<span class="sourceLineNo">34951</span>                                        ox = (int) toLong(ix);<a name="line.34951"></a>
+<span class="sourceLineNo">34952</span>                                        oi32data[it.oIndex] = ox;<a name="line.34952"></a>
+<span class="sourceLineNo">34953</span>                                }<a name="line.34953"></a>
+<span class="sourceLineNo">34954</span>                        } else {<a name="line.34954"></a>
+<span class="sourceLineNo">34955</span>                                while (it.hasNext()) {<a name="line.34955"></a>
+<span class="sourceLineNo">34956</span>                                        final long ix = it.aLong;<a name="line.34956"></a>
+<span class="sourceLineNo">34957</span>                                        int ox;<a name="line.34957"></a>
+<span class="sourceLineNo">34958</span>                                        if (ix &lt; pax)<a name="line.34958"></a>
+<span class="sourceLineNo">34959</span>                                        ox = (int) toLong(pax);<a name="line.34959"></a>
+<span class="sourceLineNo">34960</span>                                        else<a name="line.34960"></a>
+<span class="sourceLineNo">34961</span>                                        ox = (int) toLong(ix);<a name="line.34961"></a>
+<span class="sourceLineNo">34962</span>                                        oi32data[it.oIndex] = ox;<a name="line.34962"></a>
+<span class="sourceLineNo">34963</span>                                }<a name="line.34963"></a>
+<span class="sourceLineNo">34964</span>                        }<a name="line.34964"></a>
+<span class="sourceLineNo">34965</span>                        break;<a name="line.34965"></a>
+<span class="sourceLineNo">34966</span>                case Dataset.ARRAYINT8:<a name="line.34966"></a>
+<span class="sourceLineNo">34967</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.34967"></a>
+<span class="sourceLineNo">34968</span>                        if (is == 1) {<a name="line.34968"></a>
+<span class="sourceLineNo">34969</span>                                if (it.isOutputDouble()) {<a name="line.34969"></a>
+<span class="sourceLineNo">34970</span>                                        while (it.hasNext()) {<a name="line.34970"></a>
+<span class="sourceLineNo">34971</span>                                                final double ix = it.aDouble;<a name="line.34971"></a>
+<span class="sourceLineNo">34972</span>                                                byte ox;<a name="line.34972"></a>
+<span class="sourceLineNo">34973</span>                                                if (ix &lt; pax)<a name="line.34973"></a>
+<span class="sourceLineNo">34974</span>                                                ox = (byte) toLong(pax);<a name="line.34974"></a>
+<span class="sourceLineNo">34975</span>                                                else<a name="line.34975"></a>
+<span class="sourceLineNo">34976</span>                                                ox = (byte) toLong(ix);<a name="line.34976"></a>
+<span class="sourceLineNo">34977</span>                                                oai8data[it.oIndex] = ox;<a name="line.34977"></a>
+<span class="sourceLineNo">34978</span>                                        }<a name="line.34978"></a>
+<span class="sourceLineNo">34979</span>                                } else {<a name="line.34979"></a>
+<span class="sourceLineNo">34980</span>                                        while (it.hasNext()) {<a name="line.34980"></a>
+<span class="sourceLineNo">34981</span>                                                final long ix = it.aLong;<a name="line.34981"></a>
+<span class="sourceLineNo">34982</span>                                                byte ox;<a name="line.34982"></a>
+<span class="sourceLineNo">34983</span>                                                if (ix &lt; pax)<a name="line.34983"></a>
+<span class="sourceLineNo">34984</span>                                                ox = (byte) toLong(pax);<a name="line.34984"></a>
+<span class="sourceLineNo">34985</span>                                                else<a name="line.34985"></a>
+<span class="sourceLineNo">34986</span>                                                ox = (byte) toLong(ix);<a name="line.34986"></a>
+<span class="sourceLineNo">34987</span>                                                oai8data[it.oIndex] = ox;<a name="line.34987"></a>
+<span class="sourceLineNo">34988</span>                                        }<a name="line.34988"></a>
+<span class="sourceLineNo">34989</span>                                }<a name="line.34989"></a>
+<span class="sourceLineNo">34990</span>                        } else if (as == 1) {<a name="line.34990"></a>
+<span class="sourceLineNo">34991</span>                                if (it.isOutputDouble()) {<a name="line.34991"></a>
+<span class="sourceLineNo">34992</span>                                        while (it.hasNext()) {<a name="line.34992"></a>
+<span class="sourceLineNo">34993</span>                                                final double ix = it.aDouble;<a name="line.34993"></a>
+<span class="sourceLineNo">34994</span>                                                byte ox;<a name="line.34994"></a>
+<span class="sourceLineNo">34995</span>                                                if (ix &lt; pax)<a name="line.34995"></a>
+<span class="sourceLineNo">34996</span>                                                ox = (byte) toLong(pax);<a name="line.34996"></a>
+<span class="sourceLineNo">34997</span>                                                else<a name="line.34997"></a>
+<span class="sourceLineNo">34998</span>                                                ox = (byte) toLong(ix);<a name="line.34998"></a>
+<span class="sourceLineNo">34999</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.34999"></a>
+<span class="sourceLineNo">35000</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.35000"></a>
+<span class="sourceLineNo">35001</span>                                                }<a name="line.35001"></a>
+<span class="sourceLineNo">35002</span>                                        }<a name="line.35002"></a>
+<span class="sourceLineNo">35003</span>                                } else {<a name="line.35003"></a>
+<span class="sourceLineNo">35004</span>                                        while (it.hasNext()) {<a name="line.35004"></a>
+<span class="sourceLineNo">35005</span>                                                final long ix = it.aLong;<a name="line.35005"></a>
+<span class="sourceLineNo">35006</span>                                                byte ox;<a name="line.35006"></a>
+<span class="sourceLineNo">35007</span>                                                if (ix &lt; pax)<a name="line.35007"></a>
+<span class="sourceLineNo">35008</span>                                                ox = (byte) toLong(pax);<a name="line.35008"></a>
+<span class="sourceLineNo">35009</span>                                                else<a name="line.35009"></a>
+<span class="sourceLineNo">35010</span>                                                ox = (byte) toLong(ix);<a name="line.35010"></a>
+<span class="sourceLineNo">35011</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35011"></a>
+<span class="sourceLineNo">35012</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.35012"></a>
+<span class="sourceLineNo">35013</span>                                                }<a name="line.35013"></a>
+<span class="sourceLineNo">35014</span>                                        }<a name="line.35014"></a>
+<span class="sourceLineNo">35015</span>                                }<a name="line.35015"></a>
+<span class="sourceLineNo">35016</span>                        } else {<a name="line.35016"></a>
+<span class="sourceLineNo">35017</span>                                if (it.isOutputDouble()) {<a name="line.35017"></a>
+<span class="sourceLineNo">35018</span>                                        while (it.hasNext()) {<a name="line.35018"></a>
+<span class="sourceLineNo">35019</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35019"></a>
+<span class="sourceLineNo">35020</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.35020"></a>
+<span class="sourceLineNo">35021</span>                                                        byte ox;<a name="line.35021"></a>
+<span class="sourceLineNo">35022</span>                                                        if (ix &lt; pax)<a name="line.35022"></a>
+<span class="sourceLineNo">35023</span>                                                        ox = (byte) toLong(pax);<a name="line.35023"></a>
+<span class="sourceLineNo">35024</span>                                                        else<a name="line.35024"></a>
+<span class="sourceLineNo">35025</span>                                                        ox = (byte) toLong(ix);<a name="line.35025"></a>
+<span class="sourceLineNo">35026</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.35026"></a>
+<span class="sourceLineNo">35027</span>                                                }<a name="line.35027"></a>
+<span class="sourceLineNo">35028</span>                                        }<a name="line.35028"></a>
+<span class="sourceLineNo">35029</span>                                } else {<a name="line.35029"></a>
+<span class="sourceLineNo">35030</span>                                        while (it.hasNext()) {<a name="line.35030"></a>
+<span class="sourceLineNo">35031</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35031"></a>
+<span class="sourceLineNo">35032</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.35032"></a>
+<span class="sourceLineNo">35033</span>                                                        byte ox;<a name="line.35033"></a>
+<span class="sourceLineNo">35034</span>                                                        if (ix &lt; pax)<a name="line.35034"></a>
+<span class="sourceLineNo">35035</span>                                                        ox = (byte) toLong(pax);<a name="line.35035"></a>
+<span class="sourceLineNo">35036</span>                                                        else<a name="line.35036"></a>
+<span class="sourceLineNo">35037</span>                                                        ox = (byte) toLong(ix);<a name="line.35037"></a>
+<span class="sourceLineNo">35038</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.35038"></a>
+<span class="sourceLineNo">35039</span>                                                }<a name="line.35039"></a>
+<span class="sourceLineNo">35040</span>                                        }<a name="line.35040"></a>
+<span class="sourceLineNo">35041</span>                                }<a name="line.35041"></a>
+<span class="sourceLineNo">35042</span>                        }<a name="line.35042"></a>
+<span class="sourceLineNo">35043</span>                        break;<a name="line.35043"></a>
+<span class="sourceLineNo">35044</span>                case Dataset.ARRAYINT16:<a name="line.35044"></a>
+<span class="sourceLineNo">35045</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.35045"></a>
+<span class="sourceLineNo">35046</span>                        if (is == 1) {<a name="line.35046"></a>
+<span class="sourceLineNo">35047</span>                                if (it.isOutputDouble()) {<a name="line.35047"></a>
+<span class="sourceLineNo">35048</span>                                        while (it.hasNext()) {<a name="line.35048"></a>
+<span class="sourceLineNo">35049</span>                                                final double ix = it.aDouble;<a name="line.35049"></a>
+<span class="sourceLineNo">35050</span>                                                short ox;<a name="line.35050"></a>
+<span class="sourceLineNo">35051</span>                                                if (ix &lt; pax)<a name="line.35051"></a>
+<span class="sourceLineNo">35052</span>                                                ox = (short) toLong(pax);<a name="line.35052"></a>
+<span class="sourceLineNo">35053</span>                                                else<a name="line.35053"></a>
+<span class="sourceLineNo">35054</span>                                                ox = (short) toLong(ix);<a name="line.35054"></a>
+<span class="sourceLineNo">35055</span>                                                oai16data[it.oIndex] = ox;<a name="line.35055"></a>
+<span class="sourceLineNo">35056</span>                                        }<a name="line.35056"></a>
+<span class="sourceLineNo">35057</span>                                } else {<a name="line.35057"></a>
+<span class="sourceLineNo">35058</span>                                        while (it.hasNext()) {<a name="line.35058"></a>
+<span class="sourceLineNo">35059</span>                                                final long ix = it.aLong;<a name="line.35059"></a>
+<span class="sourceLineNo">35060</span>                                                short ox;<a name="line.35060"></a>
+<span class="sourceLineNo">35061</span>                                                if (ix &lt; pax)<a name="line.35061"></a>
+<span class="sourceLineNo">35062</span>                                                ox = (short) toLong(pax);<a name="line.35062"></a>
+<span class="sourceLineNo">35063</span>                                                else<a name="line.35063"></a>
+<span class="sourceLineNo">35064</span>                                                ox = (short) toLong(ix);<a name="line.35064"></a>
+<span class="sourceLineNo">35065</span>                                                oai16data[it.oIndex] = ox;<a name="line.35065"></a>
+<span class="sourceLineNo">35066</span>                                        }<a name="line.35066"></a>
+<span class="sourceLineNo">35067</span>                                }<a name="line.35067"></a>
+<span class="sourceLineNo">35068</span>                        } else if (as == 1) {<a name="line.35068"></a>
+<span class="sourceLineNo">35069</span>                                if (it.isOutputDouble()) {<a name="line.35069"></a>
+<span class="sourceLineNo">35070</span>                                        while (it.hasNext()) {<a name="line.35070"></a>
+<span class="sourceLineNo">35071</span>                                                final double ix = it.aDouble;<a name="line.35071"></a>
+<span class="sourceLineNo">35072</span>                                                short ox;<a name="line.35072"></a>
+<span class="sourceLineNo">35073</span>                                                if (ix &lt; pax)<a name="line.35073"></a>
+<span class="sourceLineNo">35074</span>                                                ox = (short) toLong(pax);<a name="line.35074"></a>
+<span class="sourceLineNo">35075</span>                                                else<a name="line.35075"></a>
+<span class="sourceLineNo">35076</span>                                                ox = (short) toLong(ix);<a name="line.35076"></a>
+<span class="sourceLineNo">35077</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35077"></a>
+<span class="sourceLineNo">35078</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.35078"></a>
+<span class="sourceLineNo">35079</span>                                                }<a name="line.35079"></a>
+<span class="sourceLineNo">35080</span>                                        }<a name="line.35080"></a>
+<span class="sourceLineNo">35081</span>                                } else {<a name="line.35081"></a>
+<span class="sourceLineNo">35082</span>                                        while (it.hasNext()) {<a name="line.35082"></a>
+<span class="sourceLineNo">35083</span>                                                final long ix = it.aLong;<a name="line.35083"></a>
+<span class="sourceLineNo">35084</span>                                                short ox;<a name="line.35084"></a>
+<span class="sourceLineNo">35085</span>                                                if (ix &lt; pax)<a name="line.35085"></a>
+<span class="sourceLineNo">35086</span>                                                ox = (short) toLong(pax);<a name="line.35086"></a>
+<span class="sourceLineNo">35087</span>                                                else<a name="line.35087"></a>
+<span class="sourceLineNo">35088</span>                                                ox = (short) toLong(ix);<a name="line.35088"></a>
+<span class="sourceLineNo">35089</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35089"></a>
+<span class="sourceLineNo">35090</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.35090"></a>
+<span class="sourceLineNo">35091</span>                                                }<a name="line.35091"></a>
+<span class="sourceLineNo">35092</span>                                        }<a name="line.35092"></a>
+<span class="sourceLineNo">35093</span>                                }<a name="line.35093"></a>
+<span class="sourceLineNo">35094</span>                        } else {<a name="line.35094"></a>
+<span class="sourceLineNo">35095</span>                                if (it.isOutputDouble()) {<a name="line.35095"></a>
+<span class="sourceLineNo">35096</span>                                        while (it.hasNext()) {<a name="line.35096"></a>
+<span class="sourceLineNo">35097</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35097"></a>
+<span class="sourceLineNo">35098</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.35098"></a>
+<span class="sourceLineNo">35099</span>                                                        short ox;<a name="line.35099"></a>
+<span class="sourceLineNo">35100</span>                                                        if (ix &lt; pax)<a name="line.35100"></a>
+<span class="sourceLineNo">35101</span>                                                        ox = (short) toLong(pax);<a name="line.35101"></a>
+<span class="sourceLineNo">35102</span>                                                        else<a name="line.35102"></a>
+<span class="sourceLineNo">35103</span>                                                        ox = (short) toLong(ix);<a name="line.35103"></a>
+<span class="sourceLineNo">35104</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.35104"></a>
+<span class="sourceLineNo">35105</span>                                                }<a name="line.35105"></a>
+<span class="sourceLineNo">35106</span>                                        }<a name="line.35106"></a>
+<span class="sourceLineNo">35107</span>                                } else {<a name="line.35107"></a>
+<span class="sourceLineNo">35108</span>                                        while (it.hasNext()) {<a name="line.35108"></a>
+<span class="sourceLineNo">35109</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35109"></a>
+<span class="sourceLineNo">35110</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.35110"></a>
+<span class="sourceLineNo">35111</span>                                                        short ox;<a name="line.35111"></a>
+<span class="sourceLineNo">35112</span>                                                        if (ix &lt; pax)<a name="line.35112"></a>
+<span class="sourceLineNo">35113</span>                                                        ox = (short) toLong(pax);<a name="line.35113"></a>
+<span class="sourceLineNo">35114</span>                                                        else<a name="line.35114"></a>
+<span class="sourceLineNo">35115</span>                                                        ox = (short) toLong(ix);<a name="line.35115"></a>
+<span class="sourceLineNo">35116</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.35116"></a>
+<span class="sourceLineNo">35117</span>                                                }<a name="line.35117"></a>
+<span class="sourceLineNo">35118</span>                                        }<a name="line.35118"></a>
+<span class="sourceLineNo">35119</span>                                }<a name="line.35119"></a>
+<span class="sourceLineNo">35120</span>                        }<a name="line.35120"></a>
+<span class="sourceLineNo">35121</span>                        break;<a name="line.35121"></a>
+<span class="sourceLineNo">35122</span>                case Dataset.ARRAYINT64:<a name="line.35122"></a>
+<span class="sourceLineNo">35123</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.35123"></a>
+<span class="sourceLineNo">35124</span>                        if (is == 1) {<a name="line.35124"></a>
+<span class="sourceLineNo">35125</span>                                if (it.isOutputDouble()) {<a name="line.35125"></a>
+<span class="sourceLineNo">35126</span>                                        while (it.hasNext()) {<a name="line.35126"></a>
+<span class="sourceLineNo">35127</span>                                                final double ix = it.aDouble;<a name="line.35127"></a>
+<span class="sourceLineNo">35128</span>                                                long ox;<a name="line.35128"></a>
+<span class="sourceLineNo">35129</span>                                                if (ix &lt; pax)<a name="line.35129"></a>
+<span class="sourceLineNo">35130</span>                                                ox = toLong(pax);<a name="line.35130"></a>
+<span class="sourceLineNo">35131</span>                                                else<a name="line.35131"></a>
+<span class="sourceLineNo">35132</span>                                                ox = toLong(ix);<a name="line.35132"></a>
+<span class="sourceLineNo">35133</span>                                                oai64data[it.oIndex] = ox;<a name="line.35133"></a>
+<span class="sourceLineNo">35134</span>                                        }<a name="line.35134"></a>
+<span class="sourceLineNo">35135</span>                                } else {<a name="line.35135"></a>
+<span class="sourceLineNo">35136</span>                                        while (it.hasNext()) {<a name="line.35136"></a>
+<span class="sourceLineNo">35137</span>                                                final long ix = it.aLong;<a name="line.35137"></a>
+<span class="sourceLineNo">35138</span>                                                long ox;<a name="line.35138"></a>
+<span class="sourceLineNo">35139</span>                                                if (ix &lt; pax)<a name="line.35139"></a>
+<span class="sourceLineNo">35140</span>                                                ox = toLong(pax);<a name="line.35140"></a>
+<span class="sourceLineNo">35141</span>                                                else<a name="line.35141"></a>
+<span class="sourceLineNo">35142</span>                                                ox = toLong(ix);<a name="line.35142"></a>
+<span class="sourceLineNo">35143</span>                                                oai64data[it.oIndex] = ox;<a name="line.35143"></a>
+<span class="sourceLineNo">35144</span>                                        }<a name="line.35144"></a>
+<span class="sourceLineNo">35145</span>                                }<a name="line.35145"></a>
+<span class="sourceLineNo">35146</span>                        } else if (as == 1) {<a name="line.35146"></a>
+<span class="sourceLineNo">35147</span>                                if (it.isOutputDouble()) {<a name="line.35147"></a>
+<span class="sourceLineNo">35148</span>                                        while (it.hasNext()) {<a name="line.35148"></a>
+<span class="sourceLineNo">35149</span>                                                final double ix = it.aDouble;<a name="line.35149"></a>
+<span class="sourceLineNo">35150</span>                                                long ox;<a name="line.35150"></a>
+<span class="sourceLineNo">35151</span>                                                if (ix &lt; pax)<a name="line.35151"></a>
+<span class="sourceLineNo">35152</span>                                                ox = toLong(pax);<a name="line.35152"></a>
+<span class="sourceLineNo">35153</span>                                                else<a name="line.35153"></a>
+<span class="sourceLineNo">35154</span>                                                ox = toLong(ix);<a name="line.35154"></a>
+<span class="sourceLineNo">35155</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35155"></a>
+<span class="sourceLineNo">35156</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.35156"></a>
+<span class="sourceLineNo">35157</span>                                                }<a name="line.35157"></a>
+<span class="sourceLineNo">35158</span>                                        }<a name="line.35158"></a>
+<span class="sourceLineNo">35159</span>                                } else {<a name="line.35159"></a>
+<span class="sourceLineNo">35160</span>                                        while (it.hasNext()) {<a name="line.35160"></a>
+<span class="sourceLineNo">35161</span>                                                final long ix = it.aLong;<a name="line.35161"></a>
+<span class="sourceLineNo">35162</span>                                                long ox;<a name="line.35162"></a>
+<span class="sourceLineNo">35163</span>                                                if (ix &lt; pax)<a name="line.35163"></a>
+<span class="sourceLineNo">35164</span>                                                ox = toLong(pax);<a name="line.35164"></a>
+<span class="sourceLineNo">35165</span>                                                else<a name="line.35165"></a>
+<span class="sourceLineNo">35166</span>                                                ox = toLong(ix);<a name="line.35166"></a>
+<span class="sourceLineNo">35167</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35167"></a>
+<span class="sourceLineNo">35168</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.35168"></a>
+<span class="sourceLineNo">35169</span>                                                }<a name="line.35169"></a>
+<span class="sourceLineNo">35170</span>                                        }<a name="line.35170"></a>
+<span class="sourceLineNo">35171</span>                                }<a name="line.35171"></a>
+<span class="sourceLineNo">35172</span>                        } else {<a name="line.35172"></a>
+<span class="sourceLineNo">35173</span>                                if (it.isOutputDouble()) {<a name="line.35173"></a>
+<span class="sourceLineNo">35174</span>                                        while (it.hasNext()) {<a name="line.35174"></a>
+<span class="sourceLineNo">35175</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35175"></a>
+<span class="sourceLineNo">35176</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.35176"></a>
+<span class="sourceLineNo">35177</span>                                                        long ox;<a name="line.35177"></a>
+<span class="sourceLineNo">35178</span>                                                        if (ix &lt; pax)<a name="line.35178"></a>
+<span class="sourceLineNo">35179</span>                                                        ox = toLong(pax);<a name="line.35179"></a>
+<span class="sourceLineNo">35180</span>                                                        else<a name="line.35180"></a>
+<span class="sourceLineNo">35181</span>                                                        ox = toLong(ix);<a name="line.35181"></a>
+<span class="sourceLineNo">35182</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.35182"></a>
+<span class="sourceLineNo">35183</span>                                                }<a name="line.35183"></a>
+<span class="sourceLineNo">35184</span>                                        }<a name="line.35184"></a>
+<span class="sourceLineNo">35185</span>                                } else {<a name="line.35185"></a>
+<span class="sourceLineNo">35186</span>                                        while (it.hasNext()) {<a name="line.35186"></a>
+<span class="sourceLineNo">35187</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35187"></a>
+<span class="sourceLineNo">35188</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.35188"></a>
+<span class="sourceLineNo">35189</span>                                                        long ox;<a name="line.35189"></a>
+<span class="sourceLineNo">35190</span>                                                        if (ix &lt; pax)<a name="line.35190"></a>
+<span class="sourceLineNo">35191</span>                                                        ox = toLong(pax);<a name="line.35191"></a>
+<span class="sourceLineNo">35192</span>                                                        else<a name="line.35192"></a>
+<span class="sourceLineNo">35193</span>                                                        ox = toLong(ix);<a name="line.35193"></a>
+<span class="sourceLineNo">35194</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.35194"></a>
+<span class="sourceLineNo">35195</span>                                                }<a name="line.35195"></a>
+<span class="sourceLineNo">35196</span>                                        }<a name="line.35196"></a>
+<span class="sourceLineNo">35197</span>                                }<a name="line.35197"></a>
+<span class="sourceLineNo">35198</span>                        }<a name="line.35198"></a>
+<span class="sourceLineNo">35199</span>                        break;<a name="line.35199"></a>
+<span class="sourceLineNo">35200</span>                case Dataset.ARRAYINT32:<a name="line.35200"></a>
+<span class="sourceLineNo">35201</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.35201"></a>
+<span class="sourceLineNo">35202</span>                        if (is == 1) {<a name="line.35202"></a>
+<span class="sourceLineNo">35203</span>                                if (it.isOutputDouble()) {<a name="line.35203"></a>
+<span class="sourceLineNo">35204</span>                                        while (it.hasNext()) {<a name="line.35204"></a>
+<span class="sourceLineNo">35205</span>                                                final double ix = it.aDouble;<a name="line.35205"></a>
+<span class="sourceLineNo">35206</span>                                                int ox;<a name="line.35206"></a>
+<span class="sourceLineNo">35207</span>                                                if (ix &lt; pax)<a name="line.35207"></a>
+<span class="sourceLineNo">35208</span>                                                ox = (int) toLong(pax);<a name="line.35208"></a>
+<span class="sourceLineNo">35209</span>                                                else<a name="line.35209"></a>
+<span class="sourceLineNo">35210</span>                                                ox = (int) toLong(ix);<a name="line.35210"></a>
+<span class="sourceLineNo">35211</span>                                                oai32data[it.oIndex] = ox;<a name="line.35211"></a>
+<span class="sourceLineNo">35212</span>                                        }<a name="line.35212"></a>
+<span class="sourceLineNo">35213</span>                                } else {<a name="line.35213"></a>
+<span class="sourceLineNo">35214</span>                                        while (it.hasNext()) {<a name="line.35214"></a>
+<span class="sourceLineNo">35215</span>                                                final long ix = it.aLong;<a name="line.35215"></a>
+<span class="sourceLineNo">35216</span>                                                int ox;<a name="line.35216"></a>
+<span class="sourceLineNo">35217</span>                                                if (ix &lt; pax)<a name="line.35217"></a>
+<span class="sourceLineNo">35218</span>                                                ox = (int) toLong(pax);<a name="line.35218"></a>
+<span class="sourceLineNo">35219</span>                                                else<a name="line.35219"></a>
+<span class="sourceLineNo">35220</span>                                                ox = (int) toLong(ix);<a name="line.35220"></a>
+<span class="sourceLineNo">35221</span>                                                oai32data[it.oIndex] = ox;<a name="line.35221"></a>
+<span class="sourceLineNo">35222</span>                                        }<a name="line.35222"></a>
+<span class="sourceLineNo">35223</span>                                }<a name="line.35223"></a>
+<span class="sourceLineNo">35224</span>                        } else if (as == 1) {<a name="line.35224"></a>
+<span class="sourceLineNo">35225</span>                                if (it.isOutputDouble()) {<a name="line.35225"></a>
+<span class="sourceLineNo">35226</span>                                        while (it.hasNext()) {<a name="line.35226"></a>
+<span class="sourceLineNo">35227</span>                                                final double ix = it.aDouble;<a name="line.35227"></a>
+<span class="sourceLineNo">35228</span>                                                int ox;<a name="line.35228"></a>
+<span class="sourceLineNo">35229</span>                                                if (ix &lt; pax)<a name="line.35229"></a>
+<span class="sourceLineNo">35230</span>                                                ox = (int) toLong(pax);<a name="line.35230"></a>
+<span class="sourceLineNo">35231</span>                                                else<a name="line.35231"></a>
+<span class="sourceLineNo">35232</span>                                                ox = (int) toLong(ix);<a name="line.35232"></a>
+<span class="sourceLineNo">35233</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35233"></a>
+<span class="sourceLineNo">35234</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.35234"></a>
+<span class="sourceLineNo">35235</span>                                                }<a name="line.35235"></a>
+<span class="sourceLineNo">35236</span>                                        }<a name="line.35236"></a>
+<span class="sourceLineNo">35237</span>                                } else {<a name="line.35237"></a>
+<span class="sourceLineNo">35238</span>                                        while (it.hasNext()) {<a name="line.35238"></a>
+<span class="sourceLineNo">35239</span>                                                final long ix = it.aLong;<a name="line.35239"></a>
+<span class="sourceLineNo">35240</span>                                                int ox;<a name="line.35240"></a>
+<span class="sourceLineNo">35241</span>                                                if (ix &lt; pax)<a name="line.35241"></a>
+<span class="sourceLineNo">35242</span>                                                ox = (int) toLong(pax);<a name="line.35242"></a>
+<span class="sourceLineNo">35243</span>                                                else<a name="line.35243"></a>
+<span class="sourceLineNo">35244</span>                                                ox = (int) toLong(ix);<a name="line.35244"></a>
+<span class="sourceLineNo">35245</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35245"></a>
+<span class="sourceLineNo">35246</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.35246"></a>
+<span class="sourceLineNo">35247</span>                                                }<a name="line.35247"></a>
+<span class="sourceLineNo">35248</span>                                        }<a name="line.35248"></a>
+<span class="sourceLineNo">35249</span>                                }<a name="line.35249"></a>
+<span class="sourceLineNo">35250</span>                        } else {<a name="line.35250"></a>
+<span class="sourceLineNo">35251</span>                                if (it.isOutputDouble()) {<a name="line.35251"></a>
+<span class="sourceLineNo">35252</span>                                        while (it.hasNext()) {<a name="line.35252"></a>
+<span class="sourceLineNo">35253</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35253"></a>
+<span class="sourceLineNo">35254</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.35254"></a>
+<span class="sourceLineNo">35255</span>                                                        int ox;<a name="line.35255"></a>
+<span class="sourceLineNo">35256</span>                                                        if (ix &lt; pax)<a name="line.35256"></a>
+<span class="sourceLineNo">35257</span>                                                        ox = (int) toLong(pax);<a name="line.35257"></a>
+<span class="sourceLineNo">35258</span>                                                        else<a name="line.35258"></a>
+<span class="sourceLineNo">35259</span>                                                        ox = (int) toLong(ix);<a name="line.35259"></a>
+<span class="sourceLineNo">35260</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.35260"></a>
+<span class="sourceLineNo">35261</span>                                                }<a name="line.35261"></a>
+<span class="sourceLineNo">35262</span>                                        }<a name="line.35262"></a>
+<span class="sourceLineNo">35263</span>                                } else {<a name="line.35263"></a>
+<span class="sourceLineNo">35264</span>                                        while (it.hasNext()) {<a name="line.35264"></a>
+<span class="sourceLineNo">35265</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35265"></a>
+<span class="sourceLineNo">35266</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.35266"></a>
+<span class="sourceLineNo">35267</span>                                                        int ox;<a name="line.35267"></a>
+<span class="sourceLineNo">35268</span>                                                        if (ix &lt; pax)<a name="line.35268"></a>
+<span class="sourceLineNo">35269</span>                                                        ox = (int) toLong(pax);<a name="line.35269"></a>
+<span class="sourceLineNo">35270</span>                                                        else<a name="line.35270"></a>
+<span class="sourceLineNo">35271</span>                                                        ox = (int) toLong(ix);<a name="line.35271"></a>
+<span class="sourceLineNo">35272</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.35272"></a>
+<span class="sourceLineNo">35273</span>                                                }<a name="line.35273"></a>
+<span class="sourceLineNo">35274</span>                                        }<a name="line.35274"></a>
+<span class="sourceLineNo">35275</span>                                }<a name="line.35275"></a>
+<span class="sourceLineNo">35276</span>                        }<a name="line.35276"></a>
+<span class="sourceLineNo">35277</span>                        break;<a name="line.35277"></a>
+<span class="sourceLineNo">35278</span>                case Dataset.FLOAT32:<a name="line.35278"></a>
+<span class="sourceLineNo">35279</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.35279"></a>
+<span class="sourceLineNo">35280</span>                        if (it.isOutputDouble()) {<a name="line.35280"></a>
+<span class="sourceLineNo">35281</span>                                while (it.hasNext()) {<a name="line.35281"></a>
+<span class="sourceLineNo">35282</span>                                        final double ix = it.aDouble;<a name="line.35282"></a>
+<span class="sourceLineNo">35283</span>                                        float ox;<a name="line.35283"></a>
+<span class="sourceLineNo">35284</span>                                        if (ix &lt; pax)<a name="line.35284"></a>
+<span class="sourceLineNo">35285</span>                                        ox = (float) (pax);<a name="line.35285"></a>
+<span class="sourceLineNo">35286</span>                                        else<a name="line.35286"></a>
+<span class="sourceLineNo">35287</span>                                        ox = (float) (ix);<a name="line.35287"></a>
+<span class="sourceLineNo">35288</span>                                        of32data[it.oIndex] = ox;<a name="line.35288"></a>
+<span class="sourceLineNo">35289</span>                                }<a name="line.35289"></a>
+<span class="sourceLineNo">35290</span>                        } else {<a name="line.35290"></a>
+<span class="sourceLineNo">35291</span>                                while (it.hasNext()) {<a name="line.35291"></a>
+<span class="sourceLineNo">35292</span>                                        final long ix = it.aLong;<a name="line.35292"></a>
+<span class="sourceLineNo">35293</span>                                        float ox;<a name="line.35293"></a>
+<span class="sourceLineNo">35294</span>                                        if (ix &lt; pax)<a name="line.35294"></a>
+<span class="sourceLineNo">35295</span>                                        ox = (float) (pax);<a name="line.35295"></a>
+<span class="sourceLineNo">35296</span>                                        else<a name="line.35296"></a>
+<span class="sourceLineNo">35297</span>                                        ox = (ix);<a name="line.35297"></a>
+<span class="sourceLineNo">35298</span>                                        of32data[it.oIndex] = ox;<a name="line.35298"></a>
+<span class="sourceLineNo">35299</span>                                }<a name="line.35299"></a>
+<span class="sourceLineNo">35300</span>                        }<a name="line.35300"></a>
+<span class="sourceLineNo">35301</span>                        break;<a name="line.35301"></a>
+<span class="sourceLineNo">35302</span>                case Dataset.FLOAT64:<a name="line.35302"></a>
+<span class="sourceLineNo">35303</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.35303"></a>
+<span class="sourceLineNo">35304</span>                        if (it.isOutputDouble()) {<a name="line.35304"></a>
+<span class="sourceLineNo">35305</span>                                while (it.hasNext()) {<a name="line.35305"></a>
+<span class="sourceLineNo">35306</span>                                        final double ix = it.aDouble;<a name="line.35306"></a>
+<span class="sourceLineNo">35307</span>                                        double ox;<a name="line.35307"></a>
+<span class="sourceLineNo">35308</span>                                        if (ix &lt; pax)<a name="line.35308"></a>
+<span class="sourceLineNo">35309</span>                                        ox = (pax);<a name="line.35309"></a>
+<span class="sourceLineNo">35310</span>                                        else<a name="line.35310"></a>
+<span class="sourceLineNo">35311</span>                                        ox = (ix);<a name="line.35311"></a>
+<span class="sourceLineNo">35312</span>                                        of64data[it.oIndex] = ox;<a name="line.35312"></a>
+<span class="sourceLineNo">35313</span>                                }<a name="line.35313"></a>
+<span class="sourceLineNo">35314</span>                        } else {<a name="line.35314"></a>
+<span class="sourceLineNo">35315</span>                                while (it.hasNext()) {<a name="line.35315"></a>
+<span class="sourceLineNo">35316</span>                                        final long ix = it.aLong;<a name="line.35316"></a>
+<span class="sourceLineNo">35317</span>                                        double ox;<a name="line.35317"></a>
+<span class="sourceLineNo">35318</span>                                        if (ix &lt; pax)<a name="line.35318"></a>
+<span class="sourceLineNo">35319</span>                                        ox = (pax);<a name="line.35319"></a>
+<span class="sourceLineNo">35320</span>                                        else<a name="line.35320"></a>
+<span class="sourceLineNo">35321</span>                                        ox = (ix);<a name="line.35321"></a>
+<span class="sourceLineNo">35322</span>                                        of64data[it.oIndex] = ox;<a name="line.35322"></a>
+<span class="sourceLineNo">35323</span>                                }<a name="line.35323"></a>
+<span class="sourceLineNo">35324</span>                        }<a name="line.35324"></a>
+<span class="sourceLineNo">35325</span>                        break;<a name="line.35325"></a>
+<span class="sourceLineNo">35326</span>                case Dataset.ARRAYFLOAT32:<a name="line.35326"></a>
+<span class="sourceLineNo">35327</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.35327"></a>
+<span class="sourceLineNo">35328</span>                        if (is == 1) {<a name="line.35328"></a>
+<span class="sourceLineNo">35329</span>                                if (it.isOutputDouble()) {<a name="line.35329"></a>
+<span class="sourceLineNo">35330</span>                                        while (it.hasNext()) {<a name="line.35330"></a>
+<span class="sourceLineNo">35331</span>                                                final double ix = it.aDouble;<a name="line.35331"></a>
+<span class="sourceLineNo">35332</span>                                                float ox;<a name="line.35332"></a>
+<span class="sourceLineNo">35333</span>                                                if (ix &lt; pax)<a name="line.35333"></a>
+<span class="sourceLineNo">35334</span>                                                ox = (float) (pax);<a name="line.35334"></a>
+<span class="sourceLineNo">35335</span>                                                else<a name="line.35335"></a>
+<span class="sourceLineNo">35336</span>                                                ox = (float) (ix);<a name="line.35336"></a>
+<span class="sourceLineNo">35337</span>                                                oaf32data[it.oIndex] = ox;<a name="line.35337"></a>
+<span class="sourceLineNo">35338</span>                                        }<a name="line.35338"></a>
+<span class="sourceLineNo">35339</span>                                } else {<a name="line.35339"></a>
+<span class="sourceLineNo">35340</span>                                        while (it.hasNext()) {<a name="line.35340"></a>
+<span class="sourceLineNo">35341</span>                                                final long ix = it.aLong;<a name="line.35341"></a>
+<span class="sourceLineNo">35342</span>                                                float ox;<a name="line.35342"></a>
+<span class="sourceLineNo">35343</span>                                                if (ix &lt; pax)<a name="line.35343"></a>
+<span class="sourceLineNo">35344</span>                                                ox = (float) (pax);<a name="line.35344"></a>
+<span class="sourceLineNo">35345</span>                                                else<a name="line.35345"></a>
+<span class="sourceLineNo">35346</span>                                                ox = (ix);<a name="line.35346"></a>
+<span class="sourceLineNo">35347</span>                                                oaf32data[it.oIndex] = ox;<a name="line.35347"></a>
+<span class="sourceLineNo">35348</span>                                        }<a name="line.35348"></a>
+<span class="sourceLineNo">35349</span>                                }<a name="line.35349"></a>
+<span class="sourceLineNo">35350</span>                        } else if (as == 1) {<a name="line.35350"></a>
+<span class="sourceLineNo">35351</span>                                if (it.isOutputDouble()) {<a name="line.35351"></a>
+<span class="sourceLineNo">35352</span>                                        while (it.hasNext()) {<a name="line.35352"></a>
+<span class="sourceLineNo">35353</span>                                                final double ix = it.aDouble;<a name="line.35353"></a>
+<span class="sourceLineNo">35354</span>                                                float ox;<a name="line.35354"></a>
+<span class="sourceLineNo">35355</span>                                                if (ix &lt; pax)<a name="line.35355"></a>
+<span class="sourceLineNo">35356</span>                                                ox = (float) (pax);<a name="line.35356"></a>
+<span class="sourceLineNo">35357</span>                                                else<a name="line.35357"></a>
+<span class="sourceLineNo">35358</span>                                                ox = (float) (ix);<a name="line.35358"></a>
+<span class="sourceLineNo">35359</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35359"></a>
+<span class="sourceLineNo">35360</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.35360"></a>
+<span class="sourceLineNo">35361</span>                                                }<a name="line.35361"></a>
+<span class="sourceLineNo">35362</span>                                        }<a name="line.35362"></a>
+<span class="sourceLineNo">35363</span>                                } else {<a name="line.35363"></a>
+<span class="sourceLineNo">35364</span>                                        while (it.hasNext()) {<a name="line.35364"></a>
+<span class="sourceLineNo">35365</span>                                                final long ix = it.aLong;<a name="line.35365"></a>
+<span class="sourceLineNo">35366</span>                                                float ox;<a name="line.35366"></a>
+<span class="sourceLineNo">35367</span>                                                if (ix &lt; pax)<a name="line.35367"></a>
+<span class="sourceLineNo">35368</span>                                                ox = (float) (pax);<a name="line.35368"></a>
+<span class="sourceLineNo">35369</span>                                                else<a name="line.35369"></a>
+<span class="sourceLineNo">35370</span>                                                ox = (ix);<a name="line.35370"></a>
+<span class="sourceLineNo">35371</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35371"></a>
+<span class="sourceLineNo">35372</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.35372"></a>
+<span class="sourceLineNo">35373</span>                                                }<a name="line.35373"></a>
+<span class="sourceLineNo">35374</span>                                        }<a name="line.35374"></a>
+<span class="sourceLineNo">35375</span>                                }<a name="line.35375"></a>
+<span class="sourceLineNo">35376</span>                        } else {<a name="line.35376"></a>
+<span class="sourceLineNo">35377</span>                                if (it.isOutputDouble()) {<a name="line.35377"></a>
+<span class="sourceLineNo">35378</span>                                        while (it.hasNext()) {<a name="line.35378"></a>
+<span class="sourceLineNo">35379</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35379"></a>
+<span class="sourceLineNo">35380</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.35380"></a>
+<span class="sourceLineNo">35381</span>                                                        float ox;<a name="line.35381"></a>
+<span class="sourceLineNo">35382</span>                                                        if (ix &lt; pax)<a name="line.35382"></a>
+<span class="sourceLineNo">35383</span>                                                        ox = (float) (pax);<a name="line.35383"></a>
+<span class="sourceLineNo">35384</span>                                                        else<a name="line.35384"></a>
+<span class="sourceLineNo">35385</span>                                                        ox = (float) (ix);<a name="line.35385"></a>
+<span class="sourceLineNo">35386</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.35386"></a>
+<span class="sourceLineNo">35387</span>                                                }<a name="line.35387"></a>
+<span class="sourceLineNo">35388</span>                                        }<a name="line.35388"></a>
+<span class="sourceLineNo">35389</span>                                } else {<a name="line.35389"></a>
+<span class="sourceLineNo">35390</span>                                        while (it.hasNext()) {<a name="line.35390"></a>
+<span class="sourceLineNo">35391</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35391"></a>
+<span class="sourceLineNo">35392</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.35392"></a>
+<span class="sourceLineNo">35393</span>                                                        float ox;<a name="line.35393"></a>
+<span class="sourceLineNo">35394</span>                                                        if (ix &lt; pax)<a name="line.35394"></a>
+<span class="sourceLineNo">35395</span>                                                        ox = (float) (pax);<a name="line.35395"></a>
+<span class="sourceLineNo">35396</span>                                                        else<a name="line.35396"></a>
+<span class="sourceLineNo">35397</span>                                                        ox = (ix);<a name="line.35397"></a>
+<span class="sourceLineNo">35398</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.35398"></a>
+<span class="sourceLineNo">35399</span>                                                }<a name="line.35399"></a>
+<span class="sourceLineNo">35400</span>                                        }<a name="line.35400"></a>
+<span class="sourceLineNo">35401</span>                                }<a name="line.35401"></a>
+<span class="sourceLineNo">35402</span>                        }<a name="line.35402"></a>
+<span class="sourceLineNo">35403</span>                        break;<a name="line.35403"></a>
+<span class="sourceLineNo">35404</span>                case Dataset.ARRAYFLOAT64:<a name="line.35404"></a>
+<span class="sourceLineNo">35405</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.35405"></a>
+<span class="sourceLineNo">35406</span>                        if (is == 1) {<a name="line.35406"></a>
+<span class="sourceLineNo">35407</span>                                if (it.isOutputDouble()) {<a name="line.35407"></a>
+<span class="sourceLineNo">35408</span>                                        while (it.hasNext()) {<a name="line.35408"></a>
+<span class="sourceLineNo">35409</span>                                                final double ix = it.aDouble;<a name="line.35409"></a>
+<span class="sourceLineNo">35410</span>                                                double ox;<a name="line.35410"></a>
+<span class="sourceLineNo">35411</span>                                                if (ix &lt; pax)<a name="line.35411"></a>
+<span class="sourceLineNo">35412</span>                                                ox = (pax);<a name="line.35412"></a>
+<span class="sourceLineNo">35413</span>                                                else<a name="line.35413"></a>
+<span class="sourceLineNo">35414</span>                                                ox = (ix);<a name="line.35414"></a>
+<span class="sourceLineNo">35415</span>                                                oaf64data[it.oIndex] = ox;<a name="line.35415"></a>
+<span class="sourceLineNo">35416</span>                                        }<a name="line.35416"></a>
+<span class="sourceLineNo">35417</span>                                } else {<a name="line.35417"></a>
+<span class="sourceLineNo">35418</span>                                        while (it.hasNext()) {<a name="line.35418"></a>
+<span class="sourceLineNo">35419</span>                                                final long ix = it.aLong;<a name="line.35419"></a>
+<span class="sourceLineNo">35420</span>                                                double ox;<a name="line.35420"></a>
+<span class="sourceLineNo">35421</span>                                                if (ix &lt; pax)<a name="line.35421"></a>
+<span class="sourceLineNo">35422</span>                                                ox = (pax);<a name="line.35422"></a>
+<span class="sourceLineNo">35423</span>                                                else<a name="line.35423"></a>
+<span class="sourceLineNo">35424</span>                                                ox = (ix);<a name="line.35424"></a>
+<span class="sourceLineNo">35425</span>                                                oaf64data[it.oIndex] = ox;<a name="line.35425"></a>
+<span class="sourceLineNo">35426</span>                                        }<a name="line.35426"></a>
+<span class="sourceLineNo">35427</span>                                }<a name="line.35427"></a>
+<span class="sourceLineNo">35428</span>                        } else if (as == 1) {<a name="line.35428"></a>
+<span class="sourceLineNo">35429</span>                                if (it.isOutputDouble()) {<a name="line.35429"></a>
+<span class="sourceLineNo">35430</span>                                        while (it.hasNext()) {<a name="line.35430"></a>
+<span class="sourceLineNo">35431</span>                                                final double ix = it.aDouble;<a name="line.35431"></a>
+<span class="sourceLineNo">35432</span>                                                double ox;<a name="line.35432"></a>
+<span class="sourceLineNo">35433</span>                                                if (ix &lt; pax)<a name="line.35433"></a>
+<span class="sourceLineNo">35434</span>                                                ox = (pax);<a name="line.35434"></a>
+<span class="sourceLineNo">35435</span>                                                else<a name="line.35435"></a>
+<span class="sourceLineNo">35436</span>                                                ox = (ix);<a name="line.35436"></a>
+<span class="sourceLineNo">35437</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35437"></a>
+<span class="sourceLineNo">35438</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.35438"></a>
+<span class="sourceLineNo">35439</span>                                                }<a name="line.35439"></a>
+<span class="sourceLineNo">35440</span>                                        }<a name="line.35440"></a>
+<span class="sourceLineNo">35441</span>                                } else {<a name="line.35441"></a>
+<span class="sourceLineNo">35442</span>                                        while (it.hasNext()) {<a name="line.35442"></a>
+<span class="sourceLineNo">35443</span>                                                final long ix = it.aLong;<a name="line.35443"></a>
+<span class="sourceLineNo">35444</span>                                                double ox;<a name="line.35444"></a>
+<span class="sourceLineNo">35445</span>                                                if (ix &lt; pax)<a name="line.35445"></a>
+<span class="sourceLineNo">35446</span>                                                ox = (pax);<a name="line.35446"></a>
+<span class="sourceLineNo">35447</span>                                                else<a name="line.35447"></a>
+<span class="sourceLineNo">35448</span>                                                ox = (ix);<a name="line.35448"></a>
+<span class="sourceLineNo">35449</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35449"></a>
+<span class="sourceLineNo">35450</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.35450"></a>
+<span class="sourceLineNo">35451</span>                                                }<a name="line.35451"></a>
+<span class="sourceLineNo">35452</span>                                        }<a name="line.35452"></a>
+<span class="sourceLineNo">35453</span>                                }<a name="line.35453"></a>
+<span class="sourceLineNo">35454</span>                        } else {<a name="line.35454"></a>
+<span class="sourceLineNo">35455</span>                                if (it.isOutputDouble()) {<a name="line.35455"></a>
+<span class="sourceLineNo">35456</span>                                        while (it.hasNext()) {<a name="line.35456"></a>
+<span class="sourceLineNo">35457</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35457"></a>
+<span class="sourceLineNo">35458</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.35458"></a>
+<span class="sourceLineNo">35459</span>                                                        double ox;<a name="line.35459"></a>
+<span class="sourceLineNo">35460</span>                                                        if (ix &lt; pax)<a name="line.35460"></a>
+<span class="sourceLineNo">35461</span>                                                        ox = (pax);<a name="line.35461"></a>
+<span class="sourceLineNo">35462</span>                                                        else<a name="line.35462"></a>
+<span class="sourceLineNo">35463</span>                                                        ox = (ix);<a name="line.35463"></a>
+<span class="sourceLineNo">35464</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.35464"></a>
+<span class="sourceLineNo">35465</span>                                                }<a name="line.35465"></a>
+<span class="sourceLineNo">35466</span>                                        }<a name="line.35466"></a>
+<span class="sourceLineNo">35467</span>                                } else {<a name="line.35467"></a>
+<span class="sourceLineNo">35468</span>                                        while (it.hasNext()) {<a name="line.35468"></a>
+<span class="sourceLineNo">35469</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35469"></a>
+<span class="sourceLineNo">35470</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.35470"></a>
+<span class="sourceLineNo">35471</span>                                                        double ox;<a name="line.35471"></a>
+<span class="sourceLineNo">35472</span>                                                        if (ix &lt; pax)<a name="line.35472"></a>
+<span class="sourceLineNo">35473</span>                                                        ox = (pax);<a name="line.35473"></a>
+<span class="sourceLineNo">35474</span>                                                        else<a name="line.35474"></a>
+<span class="sourceLineNo">35475</span>                                                        ox = (ix);<a name="line.35475"></a>
+<span class="sourceLineNo">35476</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.35476"></a>
+<span class="sourceLineNo">35477</span>                                                }<a name="line.35477"></a>
+<span class="sourceLineNo">35478</span>                                        }<a name="line.35478"></a>
+<span class="sourceLineNo">35479</span>                                }<a name="line.35479"></a>
+<span class="sourceLineNo">35480</span>                        }<a name="line.35480"></a>
+<span class="sourceLineNo">35481</span>                        break;<a name="line.35481"></a>
+<span class="sourceLineNo">35482</span>                default:<a name="line.35482"></a>
+<span class="sourceLineNo">35483</span>                        throw new IllegalArgumentException("lowerClip supports integer, compound integer, real, compound real datasets only");<a name="line.35483"></a>
+<span class="sourceLineNo">35484</span>                }<a name="line.35484"></a>
+<span class="sourceLineNo">35485</span><a name="line.35485"></a>
+<span class="sourceLineNo">35486</span>                addFunctionName(result, "lowerClip");<a name="line.35486"></a>
+<span class="sourceLineNo">35487</span>                return result;<a name="line.35487"></a>
+<span class="sourceLineNo">35488</span>        }<a name="line.35488"></a>
+<span class="sourceLineNo">35489</span><a name="line.35489"></a>
+<span class="sourceLineNo">35490</span>        /**<a name="line.35490"></a>
+<span class="sourceLineNo">35491</span>         * upperClip - clip elements to upper limit<a name="line.35491"></a>
+<span class="sourceLineNo">35492</span>         * @param a<a name="line.35492"></a>
+<span class="sourceLineNo">35493</span>         * @param pa<a name="line.35493"></a>
+<span class="sourceLineNo">35494</span>         * @return dataset<a name="line.35494"></a>
+<span class="sourceLineNo">35495</span>         * @since 2.3<a name="line.35495"></a>
+<span class="sourceLineNo">35496</span>         */<a name="line.35496"></a>
+<span class="sourceLineNo">35497</span>        public static Dataset upperClip(final Object a, final Object pa) {<a name="line.35497"></a>
+<span class="sourceLineNo">35498</span>                return upperClip(a, null, pa);<a name="line.35498"></a>
+<span class="sourceLineNo">35499</span>        }<a name="line.35499"></a>
+<span class="sourceLineNo">35500</span><a name="line.35500"></a>
+<span class="sourceLineNo">35501</span>        /**<a name="line.35501"></a>
+<span class="sourceLineNo">35502</span>         * upperClip - clip elements to upper limit<a name="line.35502"></a>
+<span class="sourceLineNo">35503</span>         * @param a<a name="line.35503"></a>
+<span class="sourceLineNo">35504</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.35504"></a>
+<span class="sourceLineNo">35505</span>         * @param pa<a name="line.35505"></a>
+<span class="sourceLineNo">35506</span>         * @return dataset<a name="line.35506"></a>
+<span class="sourceLineNo">35507</span>         * @since 2.3<a name="line.35507"></a>
+<span class="sourceLineNo">35508</span>         */<a name="line.35508"></a>
+<span class="sourceLineNo">35509</span>        public static Dataset upperClip(final Object a, final Dataset o, final Object pa) {<a name="line.35509"></a>
+<span class="sourceLineNo">35510</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.35510"></a>
+<span class="sourceLineNo">35511</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.35511"></a>
+<span class="sourceLineNo">35512</span>                final Dataset result = it.getOutput();<a name="line.35512"></a>
+<span class="sourceLineNo">35513</span>                if (!result.isComplex()) {<a name="line.35513"></a>
+<span class="sourceLineNo">35514</span>                        if (da.isComplex()) {<a name="line.35514"></a>
+<span class="sourceLineNo">35515</span>                                da = da.getRealView();<a name="line.35515"></a>
+<span class="sourceLineNo">35516</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.35516"></a>
+<span class="sourceLineNo">35517</span>                        }<a name="line.35517"></a>
+<span class="sourceLineNo">35518</span>                }<a name="line.35518"></a>
+<span class="sourceLineNo">35519</span>                final int is = result.getElementsPerItem();<a name="line.35519"></a>
+<span class="sourceLineNo">35520</span>                final int as = da.getElementsPerItem();<a name="line.35520"></a>
+<span class="sourceLineNo">35521</span>                final int dt = result.getDType();<a name="line.35521"></a>
+<span class="sourceLineNo">35522</span>                final double pax = DTypeUtils.toReal(pa);<a name="line.35522"></a>
+<span class="sourceLineNo">35523</span><a name="line.35523"></a>
+<span class="sourceLineNo">35524</span>                switch(dt) {<a name="line.35524"></a>
+<span class="sourceLineNo">35525</span>                case Dataset.INT8:<a name="line.35525"></a>
+<span class="sourceLineNo">35526</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.35526"></a>
+<span class="sourceLineNo">35527</span>                        if (it.isOutputDouble()) {<a name="line.35527"></a>
+<span class="sourceLineNo">35528</span>                                while (it.hasNext()) {<a name="line.35528"></a>
+<span class="sourceLineNo">35529</span>                                        final double ix = it.aDouble;<a name="line.35529"></a>
+<span class="sourceLineNo">35530</span>                                        byte ox;<a name="line.35530"></a>
+<span class="sourceLineNo">35531</span>                                        if (ix &gt; pax)<a name="line.35531"></a>
+<span class="sourceLineNo">35532</span>                                        ox = (byte) toLong(pax);<a name="line.35532"></a>
+<span class="sourceLineNo">35533</span>                                        else<a name="line.35533"></a>
+<span class="sourceLineNo">35534</span>                                        ox = (byte) toLong(ix);<a name="line.35534"></a>
+<span class="sourceLineNo">35535</span>                                        oi8data[it.oIndex] = ox;<a name="line.35535"></a>
+<span class="sourceLineNo">35536</span>                                }<a name="line.35536"></a>
+<span class="sourceLineNo">35537</span>                        } else {<a name="line.35537"></a>
+<span class="sourceLineNo">35538</span>                                while (it.hasNext()) {<a name="line.35538"></a>
+<span class="sourceLineNo">35539</span>                                        final long ix = it.aLong;<a name="line.35539"></a>
+<span class="sourceLineNo">35540</span>                                        byte ox;<a name="line.35540"></a>
+<span class="sourceLineNo">35541</span>                                        if (ix &gt; pax)<a name="line.35541"></a>
+<span class="sourceLineNo">35542</span>                                        ox = (byte) toLong(pax);<a name="line.35542"></a>
+<span class="sourceLineNo">35543</span>                                        else<a name="line.35543"></a>
+<span class="sourceLineNo">35544</span>                                        ox = (byte) toLong(ix);<a name="line.35544"></a>
+<span class="sourceLineNo">35545</span>                                        oi8data[it.oIndex] = ox;<a name="line.35545"></a>
+<span class="sourceLineNo">35546</span>                                }<a name="line.35546"></a>
+<span class="sourceLineNo">35547</span>                        }<a name="line.35547"></a>
+<span class="sourceLineNo">35548</span>                        break;<a name="line.35548"></a>
+<span class="sourceLineNo">35549</span>                case Dataset.INT16:<a name="line.35549"></a>
+<span class="sourceLineNo">35550</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.35550"></a>
+<span class="sourceLineNo">35551</span>                        if (it.isOutputDouble()) {<a name="line.35551"></a>
+<span class="sourceLineNo">35552</span>                                while (it.hasNext()) {<a name="line.35552"></a>
+<span class="sourceLineNo">35553</span>                                        final double ix = it.aDouble;<a name="line.35553"></a>
+<span class="sourceLineNo">35554</span>                                        short ox;<a name="line.35554"></a>
+<span class="sourceLineNo">35555</span>                                        if (ix &gt; pax)<a name="line.35555"></a>
+<span class="sourceLineNo">35556</span>                                        ox = (short) toLong(pax);<a name="line.35556"></a>
+<span class="sourceLineNo">35557</span>                                        else<a name="line.35557"></a>
+<span class="sourceLineNo">35558</span>                                        ox = (short) toLong(ix);<a name="line.35558"></a>
+<span class="sourceLineNo">35559</span>                                        oi16data[it.oIndex] = ox;<a name="line.35559"></a>
+<span class="sourceLineNo">35560</span>                                }<a name="line.35560"></a>
+<span class="sourceLineNo">35561</span>                        } else {<a name="line.35561"></a>
+<span class="sourceLineNo">35562</span>                                while (it.hasNext()) {<a name="line.35562"></a>
+<span class="sourceLineNo">35563</span>                                        final long ix = it.aLong;<a name="line.35563"></a>
+<span class="sourceLineNo">35564</span>                                        short ox;<a name="line.35564"></a>
+<span class="sourceLineNo">35565</span>                                        if (ix &gt; pax)<a name="line.35565"></a>
+<span class="sourceLineNo">35566</span>                                        ox = (short) toLong(pax);<a name="line.35566"></a>
+<span class="sourceLineNo">35567</span>                                        else<a name="line.35567"></a>
+<span class="sourceLineNo">35568</span>                                        ox = (short) toLong(ix);<a name="line.35568"></a>
+<span class="sourceLineNo">35569</span>                                        oi16data[it.oIndex] = ox;<a name="line.35569"></a>
+<span class="sourceLineNo">35570</span>                                }<a name="line.35570"></a>
+<span class="sourceLineNo">35571</span>                        }<a name="line.35571"></a>
+<span class="sourceLineNo">35572</span>                        break;<a name="line.35572"></a>
+<span class="sourceLineNo">35573</span>                case Dataset.INT64:<a name="line.35573"></a>
+<span class="sourceLineNo">35574</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.35574"></a>
+<span class="sourceLineNo">35575</span>                        if (it.isOutputDouble()) {<a name="line.35575"></a>
+<span class="sourceLineNo">35576</span>                                while (it.hasNext()) {<a name="line.35576"></a>
+<span class="sourceLineNo">35577</span>                                        final double ix = it.aDouble;<a name="line.35577"></a>
+<span class="sourceLineNo">35578</span>                                        long ox;<a name="line.35578"></a>
+<span class="sourceLineNo">35579</span>                                        if (ix &gt; pax)<a name="line.35579"></a>
+<span class="sourceLineNo">35580</span>                                        ox = toLong(pax);<a name="line.35580"></a>
+<span class="sourceLineNo">35581</span>                                        else<a name="line.35581"></a>
+<span class="sourceLineNo">35582</span>                                        ox = toLong(ix);<a name="line.35582"></a>
+<span class="sourceLineNo">35583</span>                                        oi64data[it.oIndex] = ox;<a name="line.35583"></a>
+<span class="sourceLineNo">35584</span>                                }<a name="line.35584"></a>
+<span class="sourceLineNo">35585</span>                        } else {<a name="line.35585"></a>
+<span class="sourceLineNo">35586</span>                                while (it.hasNext()) {<a name="line.35586"></a>
+<span class="sourceLineNo">35587</span>                                        final long ix = it.aLong;<a name="line.35587"></a>
+<span class="sourceLineNo">35588</span>                                        long ox;<a name="line.35588"></a>
+<span class="sourceLineNo">35589</span>                                        if (ix &gt; pax)<a name="line.35589"></a>
+<span class="sourceLineNo">35590</span>                                        ox = toLong(pax);<a name="line.35590"></a>
+<span class="sourceLineNo">35591</span>                                        else<a name="line.35591"></a>
+<span class="sourceLineNo">35592</span>                                        ox = toLong(ix);<a name="line.35592"></a>
+<span class="sourceLineNo">35593</span>                                        oi64data[it.oIndex] = ox;<a name="line.35593"></a>
+<span class="sourceLineNo">35594</span>                                }<a name="line.35594"></a>
+<span class="sourceLineNo">35595</span>                        }<a name="line.35595"></a>
+<span class="sourceLineNo">35596</span>                        break;<a name="line.35596"></a>
+<span class="sourceLineNo">35597</span>                case Dataset.INT32:<a name="line.35597"></a>
+<span class="sourceLineNo">35598</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.35598"></a>
+<span class="sourceLineNo">35599</span>                        if (it.isOutputDouble()) {<a name="line.35599"></a>
+<span class="sourceLineNo">35600</span>                                while (it.hasNext()) {<a name="line.35600"></a>
+<span class="sourceLineNo">35601</span>                                        final double ix = it.aDouble;<a name="line.35601"></a>
+<span class="sourceLineNo">35602</span>                                        int ox;<a name="line.35602"></a>
+<span class="sourceLineNo">35603</span>                                        if (ix &gt; pax)<a name="line.35603"></a>
+<span class="sourceLineNo">35604</span>                                        ox = (int) toLong(pax);<a name="line.35604"></a>
+<span class="sourceLineNo">35605</span>                                        else<a name="line.35605"></a>
+<span class="sourceLineNo">35606</span>                                        ox = (int) toLong(ix);<a name="line.35606"></a>
+<span class="sourceLineNo">35607</span>                                        oi32data[it.oIndex] = ox;<a name="line.35607"></a>
+<span class="sourceLineNo">35608</span>                                }<a name="line.35608"></a>
+<span class="sourceLineNo">35609</span>                        } else {<a name="line.35609"></a>
+<span class="sourceLineNo">35610</span>                                while (it.hasNext()) {<a name="line.35610"></a>
+<span class="sourceLineNo">35611</span>                                        final long ix = it.aLong;<a name="line.35611"></a>
+<span class="sourceLineNo">35612</span>                                        int ox;<a name="line.35612"></a>
+<span class="sourceLineNo">35613</span>                                        if (ix &gt; pax)<a name="line.35613"></a>
+<span class="sourceLineNo">35614</span>                                        ox = (int) toLong(pax);<a name="line.35614"></a>
+<span class="sourceLineNo">35615</span>                                        else<a name="line.35615"></a>
+<span class="sourceLineNo">35616</span>                                        ox = (int) toLong(ix);<a name="line.35616"></a>
+<span class="sourceLineNo">35617</span>                                        oi32data[it.oIndex] = ox;<a name="line.35617"></a>
+<span class="sourceLineNo">35618</span>                                }<a name="line.35618"></a>
+<span class="sourceLineNo">35619</span>                        }<a name="line.35619"></a>
+<span class="sourceLineNo">35620</span>                        break;<a name="line.35620"></a>
+<span class="sourceLineNo">35621</span>                case Dataset.ARRAYINT8:<a name="line.35621"></a>
+<span class="sourceLineNo">35622</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.35622"></a>
+<span class="sourceLineNo">35623</span>                        if (is == 1) {<a name="line.35623"></a>
+<span class="sourceLineNo">35624</span>                                if (it.isOutputDouble()) {<a name="line.35624"></a>
+<span class="sourceLineNo">35625</span>                                        while (it.hasNext()) {<a name="line.35625"></a>
+<span class="sourceLineNo">35626</span>                                                final double ix = it.aDouble;<a name="line.35626"></a>
+<span class="sourceLineNo">35627</span>                                                byte ox;<a name="line.35627"></a>
+<span class="sourceLineNo">35628</span>                                                if (ix &gt; pax)<a name="line.35628"></a>
+<span class="sourceLineNo">35629</span>                                                ox = (byte) toLong(pax);<a name="line.35629"></a>
+<span class="sourceLineNo">35630</span>                                                else<a name="line.35630"></a>
+<span class="sourceLineNo">35631</span>                                                ox = (byte) toLong(ix);<a name="line.35631"></a>
+<span class="sourceLineNo">35632</span>                                                oai8data[it.oIndex] = ox;<a name="line.35632"></a>
+<span class="sourceLineNo">35633</span>                                        }<a name="line.35633"></a>
+<span class="sourceLineNo">35634</span>                                } else {<a name="line.35634"></a>
+<span class="sourceLineNo">35635</span>                                        while (it.hasNext()) {<a name="line.35635"></a>
+<span class="sourceLineNo">35636</span>                                                final long ix = it.aLong;<a name="line.35636"></a>
+<span class="sourceLineNo">35637</span>                                                byte ox;<a name="line.35637"></a>
+<span class="sourceLineNo">35638</span>                                                if (ix &gt; pax)<a name="line.35638"></a>
+<span class="sourceLineNo">35639</span>                                                ox = (byte) toLong(pax);<a name="line.35639"></a>
+<span class="sourceLineNo">35640</span>                                                else<a name="line.35640"></a>
+<span class="sourceLineNo">35641</span>                                                ox = (byte) toLong(ix);<a name="line.35641"></a>
+<span class="sourceLineNo">35642</span>                                                oai8data[it.oIndex] = ox;<a name="line.35642"></a>
+<span class="sourceLineNo">35643</span>                                        }<a name="line.35643"></a>
+<span class="sourceLineNo">35644</span>                                }<a name="line.35644"></a>
+<span class="sourceLineNo">35645</span>                        } else if (as == 1) {<a name="line.35645"></a>
+<span class="sourceLineNo">35646</span>                                if (it.isOutputDouble()) {<a name="line.35646"></a>
+<span class="sourceLineNo">35647</span>                                        while (it.hasNext()) {<a name="line.35647"></a>
+<span class="sourceLineNo">35648</span>                                                final double ix = it.aDouble;<a name="line.35648"></a>
+<span class="sourceLineNo">35649</span>                                                byte ox;<a name="line.35649"></a>
+<span class="sourceLineNo">35650</span>                                                if (ix &gt; pax)<a name="line.35650"></a>
+<span class="sourceLineNo">35651</span>                                                ox = (byte) toLong(pax);<a name="line.35651"></a>
+<span class="sourceLineNo">35652</span>                                                else<a name="line.35652"></a>
+<span class="sourceLineNo">35653</span>                                                ox = (byte) toLong(ix);<a name="line.35653"></a>
+<span class="sourceLineNo">35654</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35654"></a>
+<span class="sourceLineNo">35655</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.35655"></a>
+<span class="sourceLineNo">35656</span>                                                }<a name="line.35656"></a>
+<span class="sourceLineNo">35657</span>                                        }<a name="line.35657"></a>
+<span class="sourceLineNo">35658</span>                                } else {<a name="line.35658"></a>
+<span class="sourceLineNo">35659</span>                                        while (it.hasNext()) {<a name="line.35659"></a>
+<span class="sourceLineNo">35660</span>                                                final long ix = it.aLong;<a name="line.35660"></a>
+<span class="sourceLineNo">35661</span>                                                byte ox;<a name="line.35661"></a>
+<span class="sourceLineNo">35662</span>                                                if (ix &gt; pax)<a name="line.35662"></a>
+<span class="sourceLineNo">35663</span>                                                ox = (byte) toLong(pax);<a name="line.35663"></a>
+<span class="sourceLineNo">35664</span>                                                else<a name="line.35664"></a>
+<span class="sourceLineNo">35665</span>                                                ox = (byte) toLong(ix);<a name="line.35665"></a>
+<span class="sourceLineNo">35666</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35666"></a>
+<span class="sourceLineNo">35667</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.35667"></a>
+<span class="sourceLineNo">35668</span>                                                }<a name="line.35668"></a>
+<span class="sourceLineNo">35669</span>                                        }<a name="line.35669"></a>
+<span class="sourceLineNo">35670</span>                                }<a name="line.35670"></a>
+<span class="sourceLineNo">35671</span>                        } else {<a name="line.35671"></a>
+<span class="sourceLineNo">35672</span>                                if (it.isOutputDouble()) {<a name="line.35672"></a>
+<span class="sourceLineNo">35673</span>                                        while (it.hasNext()) {<a name="line.35673"></a>
+<span class="sourceLineNo">35674</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35674"></a>
+<span class="sourceLineNo">35675</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.35675"></a>
+<span class="sourceLineNo">35676</span>                                                        byte ox;<a name="line.35676"></a>
+<span class="sourceLineNo">35677</span>                                                        if (ix &gt; pax)<a name="line.35677"></a>
+<span class="sourceLineNo">35678</span>                                                        ox = (byte) toLong(pax);<a name="line.35678"></a>
+<span class="sourceLineNo">35679</span>                                                        else<a name="line.35679"></a>
+<span class="sourceLineNo">35680</span>                                                        ox = (byte) toLong(ix);<a name="line.35680"></a>
+<span class="sourceLineNo">35681</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.35681"></a>
+<span class="sourceLineNo">35682</span>                                                }<a name="line.35682"></a>
+<span class="sourceLineNo">35683</span>                                        }<a name="line.35683"></a>
+<span class="sourceLineNo">35684</span>                                } else {<a name="line.35684"></a>
+<span class="sourceLineNo">35685</span>                                        while (it.hasNext()) {<a name="line.35685"></a>
+<span class="sourceLineNo">35686</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35686"></a>
+<span class="sourceLineNo">35687</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.35687"></a>
+<span class="sourceLineNo">35688</span>                                                        byte ox;<a name="line.35688"></a>
+<span class="sourceLineNo">35689</span>                                                        if (ix &gt; pax)<a name="line.35689"></a>
+<span class="sourceLineNo">35690</span>                                                        ox = (byte) toLong(pax);<a name="line.35690"></a>
+<span class="sourceLineNo">35691</span>                                                        else<a name="line.35691"></a>
+<span class="sourceLineNo">35692</span>                                                        ox = (byte) toLong(ix);<a name="line.35692"></a>
+<span class="sourceLineNo">35693</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.35693"></a>
+<span class="sourceLineNo">35694</span>                                                }<a name="line.35694"></a>
+<span class="sourceLineNo">35695</span>                                        }<a name="line.35695"></a>
+<span class="sourceLineNo">35696</span>                                }<a name="line.35696"></a>
+<span class="sourceLineNo">35697</span>                        }<a name="line.35697"></a>
+<span class="sourceLineNo">35698</span>                        break;<a name="line.35698"></a>
+<span class="sourceLineNo">35699</span>                case Dataset.ARRAYINT16:<a name="line.35699"></a>
+<span class="sourceLineNo">35700</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.35700"></a>
+<span class="sourceLineNo">35701</span>                        if (is == 1) {<a name="line.35701"></a>
+<span class="sourceLineNo">35702</span>                                if (it.isOutputDouble()) {<a name="line.35702"></a>
+<span class="sourceLineNo">35703</span>                                        while (it.hasNext()) {<a name="line.35703"></a>
+<span class="sourceLineNo">35704</span>                                                final double ix = it.aDouble;<a name="line.35704"></a>
+<span class="sourceLineNo">35705</span>                                                short ox;<a name="line.35705"></a>
+<span class="sourceLineNo">35706</span>                                                if (ix &gt; pax)<a name="line.35706"></a>
+<span class="sourceLineNo">35707</span>                                                ox = (short) toLong(pax);<a name="line.35707"></a>
+<span class="sourceLineNo">35708</span>                                                else<a name="line.35708"></a>
+<span class="sourceLineNo">35709</span>                                                ox = (short) toLong(ix);<a name="line.35709"></a>
+<span class="sourceLineNo">35710</span>                                                oai16data[it.oIndex] = ox;<a name="line.35710"></a>
+<span class="sourceLineNo">35711</span>                                        }<a name="line.35711"></a>
+<span class="sourceLineNo">35712</span>                                } else {<a name="line.35712"></a>
+<span class="sourceLineNo">35713</span>                                        while (it.hasNext()) {<a name="line.35713"></a>
+<span class="sourceLineNo">35714</span>                                                final long ix = it.aLong;<a name="line.35714"></a>
+<span class="sourceLineNo">35715</span>                                                short ox;<a name="line.35715"></a>
+<span class="sourceLineNo">35716</span>                                                if (ix &gt; pax)<a name="line.35716"></a>
+<span class="sourceLineNo">35717</span>                                                ox = (short) toLong(pax);<a name="line.35717"></a>
+<span class="sourceLineNo">35718</span>                                                else<a name="line.35718"></a>
+<span class="sourceLineNo">35719</span>                                                ox = (short) toLong(ix);<a name="line.35719"></a>
+<span class="sourceLineNo">35720</span>                                                oai16data[it.oIndex] = ox;<a name="line.35720"></a>
+<span class="sourceLineNo">35721</span>                                        }<a name="line.35721"></a>
+<span class="sourceLineNo">35722</span>                                }<a name="line.35722"></a>
+<span class="sourceLineNo">35723</span>                        } else if (as == 1) {<a name="line.35723"></a>
+<span class="sourceLineNo">35724</span>                                if (it.isOutputDouble()) {<a name="line.35724"></a>
+<span class="sourceLineNo">35725</span>                                        while (it.hasNext()) {<a name="line.35725"></a>
+<span class="sourceLineNo">35726</span>                                                final double ix = it.aDouble;<a name="line.35726"></a>
+<span class="sourceLineNo">35727</span>                                                short ox;<a name="line.35727"></a>
+<span class="sourceLineNo">35728</span>                                                if (ix &gt; pax)<a name="line.35728"></a>
+<span class="sourceLineNo">35729</span>                                                ox = (short) toLong(pax);<a name="line.35729"></a>
+<span class="sourceLineNo">35730</span>                                                else<a name="line.35730"></a>
+<span class="sourceLineNo">35731</span>                                                ox = (short) toLong(ix);<a name="line.35731"></a>
+<span class="sourceLineNo">35732</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35732"></a>
+<span class="sourceLineNo">35733</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.35733"></a>
+<span class="sourceLineNo">35734</span>                                                }<a name="line.35734"></a>
+<span class="sourceLineNo">35735</span>                                        }<a name="line.35735"></a>
+<span class="sourceLineNo">35736</span>                                } else {<a name="line.35736"></a>
+<span class="sourceLineNo">35737</span>                                        while (it.hasNext()) {<a name="line.35737"></a>
+<span class="sourceLineNo">35738</span>                                                final long ix = it.aLong;<a name="line.35738"></a>
+<span class="sourceLineNo">35739</span>                                                short ox;<a name="line.35739"></a>
+<span class="sourceLineNo">35740</span>                                                if (ix &gt; pax)<a name="line.35740"></a>
+<span class="sourceLineNo">35741</span>                                                ox = (short) toLong(pax);<a name="line.35741"></a>
+<span class="sourceLineNo">35742</span>                                                else<a name="line.35742"></a>
+<span class="sourceLineNo">35743</span>                                                ox = (short) toLong(ix);<a name="line.35743"></a>
+<span class="sourceLineNo">35744</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35744"></a>
+<span class="sourceLineNo">35745</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.35745"></a>
+<span class="sourceLineNo">35746</span>                                                }<a name="line.35746"></a>
+<span class="sourceLineNo">35747</span>                                        }<a name="line.35747"></a>
+<span class="sourceLineNo">35748</span>                                }<a name="line.35748"></a>
+<span class="sourceLineNo">35749</span>                        } else {<a name="line.35749"></a>
+<span class="sourceLineNo">35750</span>                                if (it.isOutputDouble()) {<a name="line.35750"></a>
+<span class="sourceLineNo">35751</span>                                        while (it.hasNext()) {<a name="line.35751"></a>
+<span class="sourceLineNo">35752</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35752"></a>
+<span class="sourceLineNo">35753</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.35753"></a>
+<span class="sourceLineNo">35754</span>                                                        short ox;<a name="line.35754"></a>
+<span class="sourceLineNo">35755</span>                                                        if (ix &gt; pax)<a name="line.35755"></a>
+<span class="sourceLineNo">35756</span>                                                        ox = (short) toLong(pax);<a name="line.35756"></a>
+<span class="sourceLineNo">35757</span>                                                        else<a name="line.35757"></a>
+<span class="sourceLineNo">35758</span>                                                        ox = (short) toLong(ix);<a name="line.35758"></a>
+<span class="sourceLineNo">35759</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.35759"></a>
+<span class="sourceLineNo">35760</span>                                                }<a name="line.35760"></a>
+<span class="sourceLineNo">35761</span>                                        }<a name="line.35761"></a>
+<span class="sourceLineNo">35762</span>                                } else {<a name="line.35762"></a>
+<span class="sourceLineNo">35763</span>                                        while (it.hasNext()) {<a name="line.35763"></a>
+<span class="sourceLineNo">35764</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35764"></a>
+<span class="sourceLineNo">35765</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.35765"></a>
+<span class="sourceLineNo">35766</span>                                                        short ox;<a name="line.35766"></a>
+<span class="sourceLineNo">35767</span>                                                        if (ix &gt; pax)<a name="line.35767"></a>
+<span class="sourceLineNo">35768</span>                                                        ox = (short) toLong(pax);<a name="line.35768"></a>
+<span class="sourceLineNo">35769</span>                                                        else<a name="line.35769"></a>
+<span class="sourceLineNo">35770</span>                                                        ox = (short) toLong(ix);<a name="line.35770"></a>
+<span class="sourceLineNo">35771</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.35771"></a>
+<span class="sourceLineNo">35772</span>                                                }<a name="line.35772"></a>
+<span class="sourceLineNo">35773</span>                                        }<a name="line.35773"></a>
+<span class="sourceLineNo">35774</span>                                }<a name="line.35774"></a>
+<span class="sourceLineNo">35775</span>                        }<a name="line.35775"></a>
+<span class="sourceLineNo">35776</span>                        break;<a name="line.35776"></a>
+<span class="sourceLineNo">35777</span>                case Dataset.ARRAYINT64:<a name="line.35777"></a>
+<span class="sourceLineNo">35778</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.35778"></a>
+<span class="sourceLineNo">35779</span>                        if (is == 1) {<a name="line.35779"></a>
+<span class="sourceLineNo">35780</span>                                if (it.isOutputDouble()) {<a name="line.35780"></a>
+<span class="sourceLineNo">35781</span>                                        while (it.hasNext()) {<a name="line.35781"></a>
+<span class="sourceLineNo">35782</span>                                                final double ix = it.aDouble;<a name="line.35782"></a>
+<span class="sourceLineNo">35783</span>                                                long ox;<a name="line.35783"></a>
+<span class="sourceLineNo">35784</span>                                                if (ix &gt; pax)<a name="line.35784"></a>
+<span class="sourceLineNo">35785</span>                                                ox = toLong(pax);<a name="line.35785"></a>
+<span class="sourceLineNo">35786</span>                                                else<a name="line.35786"></a>
+<span class="sourceLineNo">35787</span>                                                ox = toLong(ix);<a name="line.35787"></a>
+<span class="sourceLineNo">35788</span>                                                oai64data[it.oIndex] = ox;<a name="line.35788"></a>
+<span class="sourceLineNo">35789</span>                                        }<a name="line.35789"></a>
+<span class="sourceLineNo">35790</span>                                } else {<a name="line.35790"></a>
+<span class="sourceLineNo">35791</span>                                        while (it.hasNext()) {<a name="line.35791"></a>
+<span class="sourceLineNo">35792</span>                                                final long ix = it.aLong;<a name="line.35792"></a>
+<span class="sourceLineNo">35793</span>                                                long ox;<a name="line.35793"></a>
+<span class="sourceLineNo">35794</span>                                                if (ix &gt; pax)<a name="line.35794"></a>
+<span class="sourceLineNo">35795</span>                                                ox = toLong(pax);<a name="line.35795"></a>
+<span class="sourceLineNo">35796</span>                                                else<a name="line.35796"></a>
+<span class="sourceLineNo">35797</span>                                                ox = toLong(ix);<a name="line.35797"></a>
+<span class="sourceLineNo">35798</span>                                                oai64data[it.oIndex] = ox;<a name="line.35798"></a>
+<span class="sourceLineNo">35799</span>                                        }<a name="line.35799"></a>
+<span class="sourceLineNo">35800</span>                                }<a name="line.35800"></a>
+<span class="sourceLineNo">35801</span>                        } else if (as == 1) {<a name="line.35801"></a>
+<span class="sourceLineNo">35802</span>                                if (it.isOutputDouble()) {<a name="line.35802"></a>
+<span class="sourceLineNo">35803</span>                                        while (it.hasNext()) {<a name="line.35803"></a>
+<span class="sourceLineNo">35804</span>                                                final double ix = it.aDouble;<a name="line.35804"></a>
+<span class="sourceLineNo">35805</span>                                                long ox;<a name="line.35805"></a>
+<span class="sourceLineNo">35806</span>                                                if (ix &gt; pax)<a name="line.35806"></a>
+<span class="sourceLineNo">35807</span>                                                ox = toLong(pax);<a name="line.35807"></a>
+<span class="sourceLineNo">35808</span>                                                else<a name="line.35808"></a>
+<span class="sourceLineNo">35809</span>                                                ox = toLong(ix);<a name="line.35809"></a>
+<span class="sourceLineNo">35810</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35810"></a>
+<span class="sourceLineNo">35811</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.35811"></a>
+<span class="sourceLineNo">35812</span>                                                }<a name="line.35812"></a>
+<span class="sourceLineNo">35813</span>                                        }<a name="line.35813"></a>
+<span class="sourceLineNo">35814</span>                                } else {<a name="line.35814"></a>
+<span class="sourceLineNo">35815</span>                                        while (it.hasNext()) {<a name="line.35815"></a>
+<span class="sourceLineNo">35816</span>                                                final long ix = it.aLong;<a name="line.35816"></a>
+<span class="sourceLineNo">35817</span>                                                long ox;<a name="line.35817"></a>
+<span class="sourceLineNo">35818</span>                                                if (ix &gt; pax)<a name="line.35818"></a>
+<span class="sourceLineNo">35819</span>                                                ox = toLong(pax);<a name="line.35819"></a>
+<span class="sourceLineNo">35820</span>                                                else<a name="line.35820"></a>
+<span class="sourceLineNo">35821</span>                                                ox = toLong(ix);<a name="line.35821"></a>
+<span class="sourceLineNo">35822</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35822"></a>
+<span class="sourceLineNo">35823</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.35823"></a>
+<span class="sourceLineNo">35824</span>                                                }<a name="line.35824"></a>
+<span class="sourceLineNo">35825</span>                                        }<a name="line.35825"></a>
+<span class="sourceLineNo">35826</span>                                }<a name="line.35826"></a>
+<span class="sourceLineNo">35827</span>                        } else {<a name="line.35827"></a>
+<span class="sourceLineNo">35828</span>                                if (it.isOutputDouble()) {<a name="line.35828"></a>
+<span class="sourceLineNo">35829</span>                                        while (it.hasNext()) {<a name="line.35829"></a>
+<span class="sourceLineNo">35830</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35830"></a>
+<span class="sourceLineNo">35831</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.35831"></a>
+<span class="sourceLineNo">35832</span>                                                        long ox;<a name="line.35832"></a>
+<span class="sourceLineNo">35833</span>                                                        if (ix &gt; pax)<a name="line.35833"></a>
+<span class="sourceLineNo">35834</span>                                                        ox = toLong(pax);<a name="line.35834"></a>
+<span class="sourceLineNo">35835</span>                                                        else<a name="line.35835"></a>
+<span class="sourceLineNo">35836</span>                                                        ox = toLong(ix);<a name="line.35836"></a>
+<span class="sourceLineNo">35837</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.35837"></a>
+<span class="sourceLineNo">35838</span>                                                }<a name="line.35838"></a>
+<span class="sourceLineNo">35839</span>                                        }<a name="line.35839"></a>
+<span class="sourceLineNo">35840</span>                                } else {<a name="line.35840"></a>
+<span class="sourceLineNo">35841</span>                                        while (it.hasNext()) {<a name="line.35841"></a>
+<span class="sourceLineNo">35842</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35842"></a>
+<span class="sourceLineNo">35843</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.35843"></a>
+<span class="sourceLineNo">35844</span>                                                        long ox;<a name="line.35844"></a>
+<span class="sourceLineNo">35845</span>                                                        if (ix &gt; pax)<a name="line.35845"></a>
+<span class="sourceLineNo">35846</span>                                                        ox = toLong(pax);<a name="line.35846"></a>
+<span class="sourceLineNo">35847</span>                                                        else<a name="line.35847"></a>
+<span class="sourceLineNo">35848</span>                                                        ox = toLong(ix);<a name="line.35848"></a>
+<span class="sourceLineNo">35849</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.35849"></a>
+<span class="sourceLineNo">35850</span>                                                }<a name="line.35850"></a>
+<span class="sourceLineNo">35851</span>                                        }<a name="line.35851"></a>
+<span class="sourceLineNo">35852</span>                                }<a name="line.35852"></a>
+<span class="sourceLineNo">35853</span>                        }<a name="line.35853"></a>
+<span class="sourceLineNo">35854</span>                        break;<a name="line.35854"></a>
+<span class="sourceLineNo">35855</span>                case Dataset.ARRAYINT32:<a name="line.35855"></a>
+<span class="sourceLineNo">35856</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.35856"></a>
+<span class="sourceLineNo">35857</span>                        if (is == 1) {<a name="line.35857"></a>
+<span class="sourceLineNo">35858</span>                                if (it.isOutputDouble()) {<a name="line.35858"></a>
+<span class="sourceLineNo">35859</span>                                        while (it.hasNext()) {<a name="line.35859"></a>
+<span class="sourceLineNo">35860</span>                                                final double ix = it.aDouble;<a name="line.35860"></a>
+<span class="sourceLineNo">35861</span>                                                int ox;<a name="line.35861"></a>
+<span class="sourceLineNo">35862</span>                                                if (ix &gt; pax)<a name="line.35862"></a>
+<span class="sourceLineNo">35863</span>                                                ox = (int) toLong(pax);<a name="line.35863"></a>
+<span class="sourceLineNo">35864</span>                                                else<a name="line.35864"></a>
+<span class="sourceLineNo">35865</span>                                                ox = (int) toLong(ix);<a name="line.35865"></a>
+<span class="sourceLineNo">35866</span>                                                oai32data[it.oIndex] = ox;<a name="line.35866"></a>
+<span class="sourceLineNo">35867</span>                                        }<a name="line.35867"></a>
+<span class="sourceLineNo">35868</span>                                } else {<a name="line.35868"></a>
+<span class="sourceLineNo">35869</span>                                        while (it.hasNext()) {<a name="line.35869"></a>
+<span class="sourceLineNo">35870</span>                                                final long ix = it.aLong;<a name="line.35870"></a>
+<span class="sourceLineNo">35871</span>                                                int ox;<a name="line.35871"></a>
+<span class="sourceLineNo">35872</span>                                                if (ix &gt; pax)<a name="line.35872"></a>
+<span class="sourceLineNo">35873</span>                                                ox = (int) toLong(pax);<a name="line.35873"></a>
+<span class="sourceLineNo">35874</span>                                                else<a name="line.35874"></a>
+<span class="sourceLineNo">35875</span>                                                ox = (int) toLong(ix);<a name="line.35875"></a>
+<span class="sourceLineNo">35876</span>                                                oai32data[it.oIndex] = ox;<a name="line.35876"></a>
+<span class="sourceLineNo">35877</span>                                        }<a name="line.35877"></a>
+<span class="sourceLineNo">35878</span>                                }<a name="line.35878"></a>
+<span class="sourceLineNo">35879</span>                        } else if (as == 1) {<a name="line.35879"></a>
+<span class="sourceLineNo">35880</span>                                if (it.isOutputDouble()) {<a name="line.35880"></a>
+<span class="sourceLineNo">35881</span>                                        while (it.hasNext()) {<a name="line.35881"></a>
+<span class="sourceLineNo">35882</span>                                                final double ix = it.aDouble;<a name="line.35882"></a>
+<span class="sourceLineNo">35883</span>                                                int ox;<a name="line.35883"></a>
+<span class="sourceLineNo">35884</span>                                                if (ix &gt; pax)<a name="line.35884"></a>
+<span class="sourceLineNo">35885</span>                                                ox = (int) toLong(pax);<a name="line.35885"></a>
+<span class="sourceLineNo">35886</span>                                                else<a name="line.35886"></a>
+<span class="sourceLineNo">35887</span>                                                ox = (int) toLong(ix);<a name="line.35887"></a>
+<span class="sourceLineNo">35888</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35888"></a>
+<span class="sourceLineNo">35889</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.35889"></a>
+<span class="sourceLineNo">35890</span>                                                }<a name="line.35890"></a>
+<span class="sourceLineNo">35891</span>                                        }<a name="line.35891"></a>
+<span class="sourceLineNo">35892</span>                                } else {<a name="line.35892"></a>
+<span class="sourceLineNo">35893</span>                                        while (it.hasNext()) {<a name="line.35893"></a>
+<span class="sourceLineNo">35894</span>                                                final long ix = it.aLong;<a name="line.35894"></a>
+<span class="sourceLineNo">35895</span>                                                int ox;<a name="line.35895"></a>
+<span class="sourceLineNo">35896</span>                                                if (ix &gt; pax)<a name="line.35896"></a>
+<span class="sourceLineNo">35897</span>                                                ox = (int) toLong(pax);<a name="line.35897"></a>
+<span class="sourceLineNo">35898</span>                                                else<a name="line.35898"></a>
+<span class="sourceLineNo">35899</span>                                                ox = (int) toLong(ix);<a name="line.35899"></a>
+<span class="sourceLineNo">35900</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35900"></a>
+<span class="sourceLineNo">35901</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.35901"></a>
+<span class="sourceLineNo">35902</span>                                                }<a name="line.35902"></a>
+<span class="sourceLineNo">35903</span>                                        }<a name="line.35903"></a>
+<span class="sourceLineNo">35904</span>                                }<a name="line.35904"></a>
+<span class="sourceLineNo">35905</span>                        } else {<a name="line.35905"></a>
+<span class="sourceLineNo">35906</span>                                if (it.isOutputDouble()) {<a name="line.35906"></a>
+<span class="sourceLineNo">35907</span>                                        while (it.hasNext()) {<a name="line.35907"></a>
+<span class="sourceLineNo">35908</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35908"></a>
+<span class="sourceLineNo">35909</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.35909"></a>
+<span class="sourceLineNo">35910</span>                                                        int ox;<a name="line.35910"></a>
+<span class="sourceLineNo">35911</span>                                                        if (ix &gt; pax)<a name="line.35911"></a>
+<span class="sourceLineNo">35912</span>                                                        ox = (int) toLong(pax);<a name="line.35912"></a>
+<span class="sourceLineNo">35913</span>                                                        else<a name="line.35913"></a>
+<span class="sourceLineNo">35914</span>                                                        ox = (int) toLong(ix);<a name="line.35914"></a>
+<span class="sourceLineNo">35915</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.35915"></a>
+<span class="sourceLineNo">35916</span>                                                }<a name="line.35916"></a>
+<span class="sourceLineNo">35917</span>                                        }<a name="line.35917"></a>
+<span class="sourceLineNo">35918</span>                                } else {<a name="line.35918"></a>
+<span class="sourceLineNo">35919</span>                                        while (it.hasNext()) {<a name="line.35919"></a>
+<span class="sourceLineNo">35920</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.35920"></a>
+<span class="sourceLineNo">35921</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.35921"></a>
+<span class="sourceLineNo">35922</span>                                                        int ox;<a name="line.35922"></a>
+<span class="sourceLineNo">35923</span>                                                        if (ix &gt; pax)<a name="line.35923"></a>
+<span class="sourceLineNo">35924</span>                                                        ox = (int) toLong(pax);<a name="line.35924"></a>
+<span class="sourceLineNo">35925</span>                                                        else<a name="line.35925"></a>
+<span class="sourceLineNo">35926</span>                                                        ox = (int) toLong(ix);<a name="line.35926"></a>
+<span class="sourceLineNo">35927</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.35927"></a>
+<span class="sourceLineNo">35928</span>                                                }<a name="line.35928"></a>
+<span class="sourceLineNo">35929</span>                                        }<a name="line.35929"></a>
+<span class="sourceLineNo">35930</span>                                }<a name="line.35930"></a>
+<span class="sourceLineNo">35931</span>                        }<a name="line.35931"></a>
+<span class="sourceLineNo">35932</span>                        break;<a name="line.35932"></a>
+<span class="sourceLineNo">35933</span>                case Dataset.FLOAT32:<a name="line.35933"></a>
+<span class="sourceLineNo">35934</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.35934"></a>
+<span class="sourceLineNo">35935</span>                        if (it.isOutputDouble()) {<a name="line.35935"></a>
+<span class="sourceLineNo">35936</span>                                while (it.hasNext()) {<a name="line.35936"></a>
+<span class="sourceLineNo">35937</span>                                        final double ix = it.aDouble;<a name="line.35937"></a>
+<span class="sourceLineNo">35938</span>                                        float ox;<a name="line.35938"></a>
+<span class="sourceLineNo">35939</span>                                        if (ix &gt; pax)<a name="line.35939"></a>
+<span class="sourceLineNo">35940</span>                                        ox = (float) (pax);<a name="line.35940"></a>
+<span class="sourceLineNo">35941</span>                                        else<a name="line.35941"></a>
+<span class="sourceLineNo">35942</span>                                        ox = (float) (ix);<a name="line.35942"></a>
+<span class="sourceLineNo">35943</span>                                        of32data[it.oIndex] = ox;<a name="line.35943"></a>
+<span class="sourceLineNo">35944</span>                                }<a name="line.35944"></a>
+<span class="sourceLineNo">35945</span>                        } else {<a name="line.35945"></a>
+<span class="sourceLineNo">35946</span>                                while (it.hasNext()) {<a name="line.35946"></a>
+<span class="sourceLineNo">35947</span>                                        final long ix = it.aLong;<a name="line.35947"></a>
+<span class="sourceLineNo">35948</span>                                        float ox;<a name="line.35948"></a>
+<span class="sourceLineNo">35949</span>                                        if (ix &gt; pax)<a name="line.35949"></a>
+<span class="sourceLineNo">35950</span>                                        ox = (float) (pax);<a name="line.35950"></a>
+<span class="sourceLineNo">35951</span>                                        else<a name="line.35951"></a>
+<span class="sourceLineNo">35952</span>                                        ox = (ix);<a name="line.35952"></a>
+<span class="sourceLineNo">35953</span>                                        of32data[it.oIndex] = ox;<a name="line.35953"></a>
+<span class="sourceLineNo">35954</span>                                }<a name="line.35954"></a>
+<span class="sourceLineNo">35955</span>                        }<a name="line.35955"></a>
+<span class="sourceLineNo">35956</span>                        break;<a name="line.35956"></a>
+<span class="sourceLineNo">35957</span>                case Dataset.FLOAT64:<a name="line.35957"></a>
+<span class="sourceLineNo">35958</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.35958"></a>
+<span class="sourceLineNo">35959</span>                        if (it.isOutputDouble()) {<a name="line.35959"></a>
+<span class="sourceLineNo">35960</span>                                while (it.hasNext()) {<a name="line.35960"></a>
+<span class="sourceLineNo">35961</span>                                        final double ix = it.aDouble;<a name="line.35961"></a>
+<span class="sourceLineNo">35962</span>                                        double ox;<a name="line.35962"></a>
+<span class="sourceLineNo">35963</span>                                        if (ix &gt; pax)<a name="line.35963"></a>
+<span class="sourceLineNo">35964</span>                                        ox = (pax);<a name="line.35964"></a>
+<span class="sourceLineNo">35965</span>                                        else<a name="line.35965"></a>
+<span class="sourceLineNo">35966</span>                                        ox = (ix);<a name="line.35966"></a>
+<span class="sourceLineNo">35967</span>                                        of64data[it.oIndex] = ox;<a name="line.35967"></a>
+<span class="sourceLineNo">35968</span>                                }<a name="line.35968"></a>
+<span class="sourceLineNo">35969</span>                        } else {<a name="line.35969"></a>
+<span class="sourceLineNo">35970</span>                                while (it.hasNext()) {<a name="line.35970"></a>
+<span class="sourceLineNo">35971</span>                                        final long ix = it.aLong;<a name="line.35971"></a>
+<span class="sourceLineNo">35972</span>                                        double ox;<a name="line.35972"></a>
+<span class="sourceLineNo">35973</span>                                        if (ix &gt; pax)<a name="line.35973"></a>
+<span class="sourceLineNo">35974</span>                                        ox = (pax);<a name="line.35974"></a>
+<span class="sourceLineNo">35975</span>                                        else<a name="line.35975"></a>
+<span class="sourceLineNo">35976</span>                                        ox = (ix);<a name="line.35976"></a>
+<span class="sourceLineNo">35977</span>                                        of64data[it.oIndex] = ox;<a name="line.35977"></a>
+<span class="sourceLineNo">35978</span>                                }<a name="line.35978"></a>
+<span class="sourceLineNo">35979</span>                        }<a name="line.35979"></a>
+<span class="sourceLineNo">35980</span>                        break;<a name="line.35980"></a>
+<span class="sourceLineNo">35981</span>                case Dataset.ARRAYFLOAT32:<a name="line.35981"></a>
+<span class="sourceLineNo">35982</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.35982"></a>
+<span class="sourceLineNo">35983</span>                        if (is == 1) {<a name="line.35983"></a>
+<span class="sourceLineNo">35984</span>                                if (it.isOutputDouble()) {<a name="line.35984"></a>
+<span class="sourceLineNo">35985</span>                                        while (it.hasNext()) {<a name="line.35985"></a>
+<span class="sourceLineNo">35986</span>                                                final double ix = it.aDouble;<a name="line.35986"></a>
+<span class="sourceLineNo">35987</span>                                                float ox;<a name="line.35987"></a>
+<span class="sourceLineNo">35988</span>                                                if (ix &gt; pax)<a name="line.35988"></a>
+<span class="sourceLineNo">35989</span>                                                ox = (float) (pax);<a name="line.35989"></a>
+<span class="sourceLineNo">35990</span>                                                else<a name="line.35990"></a>
+<span class="sourceLineNo">35991</span>                                                ox = (float) (ix);<a name="line.35991"></a>
+<span class="sourceLineNo">35992</span>                                                oaf32data[it.oIndex] = ox;<a name="line.35992"></a>
+<span class="sourceLineNo">35993</span>                                        }<a name="line.35993"></a>
+<span class="sourceLineNo">35994</span>                                } else {<a name="line.35994"></a>
+<span class="sourceLineNo">35995</span>                                        while (it.hasNext()) {<a name="line.35995"></a>
+<span class="sourceLineNo">35996</span>                                                final long ix = it.aLong;<a name="line.35996"></a>
+<span class="sourceLineNo">35997</span>                                                float ox;<a name="line.35997"></a>
+<span class="sourceLineNo">35998</span>                                                if (ix &gt; pax)<a name="line.35998"></a>
+<span class="sourceLineNo">35999</span>                                                ox = (float) (pax);<a name="line.35999"></a>
+<span class="sourceLineNo">36000</span>                                                else<a name="line.36000"></a>
+<span class="sourceLineNo">36001</span>                                                ox = (ix);<a name="line.36001"></a>
+<span class="sourceLineNo">36002</span>                                                oaf32data[it.oIndex] = ox;<a name="line.36002"></a>
+<span class="sourceLineNo">36003</span>                                        }<a name="line.36003"></a>
+<span class="sourceLineNo">36004</span>                                }<a name="line.36004"></a>
+<span class="sourceLineNo">36005</span>                        } else if (as == 1) {<a name="line.36005"></a>
+<span class="sourceLineNo">36006</span>                                if (it.isOutputDouble()) {<a name="line.36006"></a>
+<span class="sourceLineNo">36007</span>                                        while (it.hasNext()) {<a name="line.36007"></a>
+<span class="sourceLineNo">36008</span>                                                final double ix = it.aDouble;<a name="line.36008"></a>
+<span class="sourceLineNo">36009</span>                                                float ox;<a name="line.36009"></a>
+<span class="sourceLineNo">36010</span>                                                if (ix &gt; pax)<a name="line.36010"></a>
+<span class="sourceLineNo">36011</span>                                                ox = (float) (pax);<a name="line.36011"></a>
+<span class="sourceLineNo">36012</span>                                                else<a name="line.36012"></a>
+<span class="sourceLineNo">36013</span>                                                ox = (float) (ix);<a name="line.36013"></a>
+<span class="sourceLineNo">36014</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36014"></a>
+<span class="sourceLineNo">36015</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.36015"></a>
+<span class="sourceLineNo">36016</span>                                                }<a name="line.36016"></a>
+<span class="sourceLineNo">36017</span>                                        }<a name="line.36017"></a>
+<span class="sourceLineNo">36018</span>                                } else {<a name="line.36018"></a>
+<span class="sourceLineNo">36019</span>                                        while (it.hasNext()) {<a name="line.36019"></a>
+<span class="sourceLineNo">36020</span>                                                final long ix = it.aLong;<a name="line.36020"></a>
+<span class="sourceLineNo">36021</span>                                                float ox;<a name="line.36021"></a>
+<span class="sourceLineNo">36022</span>                                                if (ix &gt; pax)<a name="line.36022"></a>
+<span class="sourceLineNo">36023</span>                                                ox = (float) (pax);<a name="line.36023"></a>
+<span class="sourceLineNo">36024</span>                                                else<a name="line.36024"></a>
+<span class="sourceLineNo">36025</span>                                                ox = (ix);<a name="line.36025"></a>
+<span class="sourceLineNo">36026</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36026"></a>
+<span class="sourceLineNo">36027</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.36027"></a>
+<span class="sourceLineNo">36028</span>                                                }<a name="line.36028"></a>
+<span class="sourceLineNo">36029</span>                                        }<a name="line.36029"></a>
+<span class="sourceLineNo">36030</span>                                }<a name="line.36030"></a>
+<span class="sourceLineNo">36031</span>                        } else {<a name="line.36031"></a>
+<span class="sourceLineNo">36032</span>                                if (it.isOutputDouble()) {<a name="line.36032"></a>
+<span class="sourceLineNo">36033</span>                                        while (it.hasNext()) {<a name="line.36033"></a>
+<span class="sourceLineNo">36034</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36034"></a>
+<span class="sourceLineNo">36035</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.36035"></a>
+<span class="sourceLineNo">36036</span>                                                        float ox;<a name="line.36036"></a>
+<span class="sourceLineNo">36037</span>                                                        if (ix &gt; pax)<a name="line.36037"></a>
+<span class="sourceLineNo">36038</span>                                                        ox = (float) (pax);<a name="line.36038"></a>
+<span class="sourceLineNo">36039</span>                                                        else<a name="line.36039"></a>
+<span class="sourceLineNo">36040</span>                                                        ox = (float) (ix);<a name="line.36040"></a>
+<span class="sourceLineNo">36041</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.36041"></a>
+<span class="sourceLineNo">36042</span>                                                }<a name="line.36042"></a>
+<span class="sourceLineNo">36043</span>                                        }<a name="line.36043"></a>
+<span class="sourceLineNo">36044</span>                                } else {<a name="line.36044"></a>
+<span class="sourceLineNo">36045</span>                                        while (it.hasNext()) {<a name="line.36045"></a>
+<span class="sourceLineNo">36046</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36046"></a>
+<span class="sourceLineNo">36047</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.36047"></a>
+<span class="sourceLineNo">36048</span>                                                        float ox;<a name="line.36048"></a>
+<span class="sourceLineNo">36049</span>                                                        if (ix &gt; pax)<a name="line.36049"></a>
+<span class="sourceLineNo">36050</span>                                                        ox = (float) (pax);<a name="line.36050"></a>
+<span class="sourceLineNo">36051</span>                                                        else<a name="line.36051"></a>
+<span class="sourceLineNo">36052</span>                                                        ox = (ix);<a name="line.36052"></a>
+<span class="sourceLineNo">36053</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.36053"></a>
+<span class="sourceLineNo">36054</span>                                                }<a name="line.36054"></a>
+<span class="sourceLineNo">36055</span>                                        }<a name="line.36055"></a>
+<span class="sourceLineNo">36056</span>                                }<a name="line.36056"></a>
+<span class="sourceLineNo">36057</span>                        }<a name="line.36057"></a>
+<span class="sourceLineNo">36058</span>                        break;<a name="line.36058"></a>
+<span class="sourceLineNo">36059</span>                case Dataset.ARRAYFLOAT64:<a name="line.36059"></a>
+<span class="sourceLineNo">36060</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.36060"></a>
+<span class="sourceLineNo">36061</span>                        if (is == 1) {<a name="line.36061"></a>
+<span class="sourceLineNo">36062</span>                                if (it.isOutputDouble()) {<a name="line.36062"></a>
+<span class="sourceLineNo">36063</span>                                        while (it.hasNext()) {<a name="line.36063"></a>
+<span class="sourceLineNo">36064</span>                                                final double ix = it.aDouble;<a name="line.36064"></a>
+<span class="sourceLineNo">36065</span>                                                double ox;<a name="line.36065"></a>
+<span class="sourceLineNo">36066</span>                                                if (ix &gt; pax)<a name="line.36066"></a>
+<span class="sourceLineNo">36067</span>                                                ox = (pax);<a name="line.36067"></a>
+<span class="sourceLineNo">36068</span>                                                else<a name="line.36068"></a>
+<span class="sourceLineNo">36069</span>                                                ox = (ix);<a name="line.36069"></a>
+<span class="sourceLineNo">36070</span>                                                oaf64data[it.oIndex] = ox;<a name="line.36070"></a>
+<span class="sourceLineNo">36071</span>                                        }<a name="line.36071"></a>
+<span class="sourceLineNo">36072</span>                                } else {<a name="line.36072"></a>
+<span class="sourceLineNo">36073</span>                                        while (it.hasNext()) {<a name="line.36073"></a>
+<span class="sourceLineNo">36074</span>                                                final long ix = it.aLong;<a name="line.36074"></a>
+<span class="sourceLineNo">36075</span>                                                double ox;<a name="line.36075"></a>
+<span class="sourceLineNo">36076</span>                                                if (ix &gt; pax)<a name="line.36076"></a>
+<span class="sourceLineNo">36077</span>                                                ox = (pax);<a name="line.36077"></a>
+<span class="sourceLineNo">36078</span>                                                else<a name="line.36078"></a>
+<span class="sourceLineNo">36079</span>                                                ox = (ix);<a name="line.36079"></a>
+<span class="sourceLineNo">36080</span>                                                oaf64data[it.oIndex] = ox;<a name="line.36080"></a>
+<span class="sourceLineNo">36081</span>                                        }<a name="line.36081"></a>
+<span class="sourceLineNo">36082</span>                                }<a name="line.36082"></a>
+<span class="sourceLineNo">36083</span>                        } else if (as == 1) {<a name="line.36083"></a>
+<span class="sourceLineNo">36084</span>                                if (it.isOutputDouble()) {<a name="line.36084"></a>
+<span class="sourceLineNo">36085</span>                                        while (it.hasNext()) {<a name="line.36085"></a>
+<span class="sourceLineNo">36086</span>                                                final double ix = it.aDouble;<a name="line.36086"></a>
+<span class="sourceLineNo">36087</span>                                                double ox;<a name="line.36087"></a>
+<span class="sourceLineNo">36088</span>                                                if (ix &gt; pax)<a name="line.36088"></a>
+<span class="sourceLineNo">36089</span>                                                ox = (pax);<a name="line.36089"></a>
+<span class="sourceLineNo">36090</span>                                                else<a name="line.36090"></a>
+<span class="sourceLineNo">36091</span>                                                ox = (ix);<a name="line.36091"></a>
+<span class="sourceLineNo">36092</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36092"></a>
+<span class="sourceLineNo">36093</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.36093"></a>
+<span class="sourceLineNo">36094</span>                                                }<a name="line.36094"></a>
+<span class="sourceLineNo">36095</span>                                        }<a name="line.36095"></a>
+<span class="sourceLineNo">36096</span>                                } else {<a name="line.36096"></a>
+<span class="sourceLineNo">36097</span>                                        while (it.hasNext()) {<a name="line.36097"></a>
+<span class="sourceLineNo">36098</span>                                                final long ix = it.aLong;<a name="line.36098"></a>
+<span class="sourceLineNo">36099</span>                                                double ox;<a name="line.36099"></a>
+<span class="sourceLineNo">36100</span>                                                if (ix &gt; pax)<a name="line.36100"></a>
+<span class="sourceLineNo">36101</span>                                                ox = (pax);<a name="line.36101"></a>
+<span class="sourceLineNo">36102</span>                                                else<a name="line.36102"></a>
+<span class="sourceLineNo">36103</span>                                                ox = (ix);<a name="line.36103"></a>
+<span class="sourceLineNo">36104</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36104"></a>
+<span class="sourceLineNo">36105</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.36105"></a>
+<span class="sourceLineNo">36106</span>                                                }<a name="line.36106"></a>
+<span class="sourceLineNo">36107</span>                                        }<a name="line.36107"></a>
+<span class="sourceLineNo">36108</span>                                }<a name="line.36108"></a>
+<span class="sourceLineNo">36109</span>                        } else {<a name="line.36109"></a>
+<span class="sourceLineNo">36110</span>                                if (it.isOutputDouble()) {<a name="line.36110"></a>
+<span class="sourceLineNo">36111</span>                                        while (it.hasNext()) {<a name="line.36111"></a>
+<span class="sourceLineNo">36112</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36112"></a>
+<span class="sourceLineNo">36113</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.36113"></a>
+<span class="sourceLineNo">36114</span>                                                        double ox;<a name="line.36114"></a>
+<span class="sourceLineNo">36115</span>                                                        if (ix &gt; pax)<a name="line.36115"></a>
+<span class="sourceLineNo">36116</span>                                                        ox = (pax);<a name="line.36116"></a>
+<span class="sourceLineNo">36117</span>                                                        else<a name="line.36117"></a>
+<span class="sourceLineNo">36118</span>                                                        ox = (ix);<a name="line.36118"></a>
+<span class="sourceLineNo">36119</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.36119"></a>
+<span class="sourceLineNo">36120</span>                                                }<a name="line.36120"></a>
+<span class="sourceLineNo">36121</span>                                        }<a name="line.36121"></a>
+<span class="sourceLineNo">36122</span>                                } else {<a name="line.36122"></a>
+<span class="sourceLineNo">36123</span>                                        while (it.hasNext()) {<a name="line.36123"></a>
+<span class="sourceLineNo">36124</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36124"></a>
+<span class="sourceLineNo">36125</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.36125"></a>
+<span class="sourceLineNo">36126</span>                                                        double ox;<a name="line.36126"></a>
+<span class="sourceLineNo">36127</span>                                                        if (ix &gt; pax)<a name="line.36127"></a>
+<span class="sourceLineNo">36128</span>                                                        ox = (pax);<a name="line.36128"></a>
+<span class="sourceLineNo">36129</span>                                                        else<a name="line.36129"></a>
+<span class="sourceLineNo">36130</span>                                                        ox = (ix);<a name="line.36130"></a>
+<span class="sourceLineNo">36131</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.36131"></a>
+<span class="sourceLineNo">36132</span>                                                }<a name="line.36132"></a>
+<span class="sourceLineNo">36133</span>                                        }<a name="line.36133"></a>
+<span class="sourceLineNo">36134</span>                                }<a name="line.36134"></a>
+<span class="sourceLineNo">36135</span>                        }<a name="line.36135"></a>
+<span class="sourceLineNo">36136</span>                        break;<a name="line.36136"></a>
+<span class="sourceLineNo">36137</span>                default:<a name="line.36137"></a>
+<span class="sourceLineNo">36138</span>                        throw new IllegalArgumentException("upperClip supports integer, compound integer, real, compound real datasets only");<a name="line.36138"></a>
+<span class="sourceLineNo">36139</span>                }<a name="line.36139"></a>
+<span class="sourceLineNo">36140</span><a name="line.36140"></a>
+<span class="sourceLineNo">36141</span>                addFunctionName(result, "upperClip");<a name="line.36141"></a>
+<span class="sourceLineNo">36142</span>                return result;<a name="line.36142"></a>
+<span class="sourceLineNo">36143</span>        }<a name="line.36143"></a>
+<span class="sourceLineNo">36144</span><a name="line.36144"></a>
+<span class="sourceLineNo">36145</span>        /**<a name="line.36145"></a>
+<span class="sourceLineNo">36146</span>         * clip - clip elements to limits<a name="line.36146"></a>
+<span class="sourceLineNo">36147</span>         * @param a<a name="line.36147"></a>
+<span class="sourceLineNo">36148</span>         * @param pa<a name="line.36148"></a>
+<span class="sourceLineNo">36149</span>         * @param pb<a name="line.36149"></a>
+<span class="sourceLineNo">36150</span>         * @return dataset<a name="line.36150"></a>
+<span class="sourceLineNo">36151</span>         */<a name="line.36151"></a>
+<span class="sourceLineNo">36152</span>        public static Dataset clip(final Object a, final Object pa, final Object pb) {<a name="line.36152"></a>
+<span class="sourceLineNo">36153</span>                return clip(a, null, pa, pb);<a name="line.36153"></a>
+<span class="sourceLineNo">36154</span>        }<a name="line.36154"></a>
+<span class="sourceLineNo">36155</span><a name="line.36155"></a>
+<span class="sourceLineNo">36156</span>        /**<a name="line.36156"></a>
+<span class="sourceLineNo">36157</span>         * clip - clip elements to limits<a name="line.36157"></a>
+<span class="sourceLineNo">36158</span>         * @param a<a name="line.36158"></a>
+<span class="sourceLineNo">36159</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.36159"></a>
+<span class="sourceLineNo">36160</span>         * @param pa<a name="line.36160"></a>
+<span class="sourceLineNo">36161</span>         * @param pb<a name="line.36161"></a>
+<span class="sourceLineNo">36162</span>         * @return dataset<a name="line.36162"></a>
+<span class="sourceLineNo">36163</span>         */<a name="line.36163"></a>
+<span class="sourceLineNo">36164</span>        public static Dataset clip(final Object a, final Dataset o, final Object pa, final Object pb) {<a name="line.36164"></a>
+<span class="sourceLineNo">36165</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.36165"></a>
+<span class="sourceLineNo">36166</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true);<a name="line.36166"></a>
+<span class="sourceLineNo">36167</span>                final Dataset result = it.getOutput();<a name="line.36167"></a>
+<span class="sourceLineNo">36168</span>                if (!result.isComplex()) {<a name="line.36168"></a>
+<span class="sourceLineNo">36169</span>                        if (da.isComplex()) {<a name="line.36169"></a>
+<span class="sourceLineNo">36170</span>                                da = da.getRealView();<a name="line.36170"></a>
+<span class="sourceLineNo">36171</span>                                it = new SingleInputBroadcastIterator(da, result, true);<a name="line.36171"></a>
+<span class="sourceLineNo">36172</span>                        }<a name="line.36172"></a>
+<span class="sourceLineNo">36173</span>                }<a name="line.36173"></a>
+<span class="sourceLineNo">36174</span>                final int is = result.getElementsPerItem();<a name="line.36174"></a>
+<span class="sourceLineNo">36175</span>                final int as = da.getElementsPerItem();<a name="line.36175"></a>
+<span class="sourceLineNo">36176</span>                final int dt = result.getDType();<a name="line.36176"></a>
+<span class="sourceLineNo">36177</span>                final double pax = DTypeUtils.toReal(pa);<a name="line.36177"></a>
+<span class="sourceLineNo">36178</span>                final double pbx = DTypeUtils.toReal(pb);<a name="line.36178"></a>
+<span class="sourceLineNo">36179</span><a name="line.36179"></a>
+<span class="sourceLineNo">36180</span>                switch(dt) {<a name="line.36180"></a>
+<span class="sourceLineNo">36181</span>                case Dataset.INT8:<a name="line.36181"></a>
+<span class="sourceLineNo">36182</span>                        final byte[] oi8data = ((ByteDataset) result).getData();<a name="line.36182"></a>
+<span class="sourceLineNo">36183</span>                        if (it.isOutputDouble()) {<a name="line.36183"></a>
+<span class="sourceLineNo">36184</span>                                while (it.hasNext()) {<a name="line.36184"></a>
+<span class="sourceLineNo">36185</span>                                        final double ix = it.aDouble;<a name="line.36185"></a>
+<span class="sourceLineNo">36186</span>                                        byte ox;<a name="line.36186"></a>
+<span class="sourceLineNo">36187</span>                                        if (ix &lt; pax)<a name="line.36187"></a>
+<span class="sourceLineNo">36188</span>                                                ox = (byte) toLong(pax);<a name="line.36188"></a>
+<span class="sourceLineNo">36189</span>                                        else if (ix &gt; pbx)<a name="line.36189"></a>
+<span class="sourceLineNo">36190</span>                                                ox = (byte) toLong(pbx);<a name="line.36190"></a>
+<span class="sourceLineNo">36191</span>                                        else<a name="line.36191"></a>
+<span class="sourceLineNo">36192</span>                                                ox = (byte) toLong(ix);<a name="line.36192"></a>
+<span class="sourceLineNo">36193</span>                                        oi8data[it.oIndex] = ox;<a name="line.36193"></a>
+<span class="sourceLineNo">36194</span>                                }<a name="line.36194"></a>
+<span class="sourceLineNo">36195</span>                        } else {<a name="line.36195"></a>
+<span class="sourceLineNo">36196</span>                                while (it.hasNext()) {<a name="line.36196"></a>
+<span class="sourceLineNo">36197</span>                                        final long ix = it.aLong;<a name="line.36197"></a>
+<span class="sourceLineNo">36198</span>                                        byte ox;<a name="line.36198"></a>
+<span class="sourceLineNo">36199</span>                                        if (ix &lt; pax)<a name="line.36199"></a>
+<span class="sourceLineNo">36200</span>                                                ox = (byte) toLong(pax);<a name="line.36200"></a>
+<span class="sourceLineNo">36201</span>                                        else if (ix &gt; pbx)<a name="line.36201"></a>
+<span class="sourceLineNo">36202</span>                                                ox = (byte) toLong(pbx);<a name="line.36202"></a>
+<span class="sourceLineNo">36203</span>                                        else<a name="line.36203"></a>
+<span class="sourceLineNo">36204</span>                                                ox = (byte) toLong(ix);<a name="line.36204"></a>
+<span class="sourceLineNo">36205</span>                                        oi8data[it.oIndex] = ox;<a name="line.36205"></a>
+<span class="sourceLineNo">36206</span>                                }<a name="line.36206"></a>
+<span class="sourceLineNo">36207</span>                        }<a name="line.36207"></a>
+<span class="sourceLineNo">36208</span>                        break;<a name="line.36208"></a>
+<span class="sourceLineNo">36209</span>                case Dataset.INT16:<a name="line.36209"></a>
+<span class="sourceLineNo">36210</span>                        final short[] oi16data = ((ShortDataset) result).getData();<a name="line.36210"></a>
+<span class="sourceLineNo">36211</span>                        if (it.isOutputDouble()) {<a name="line.36211"></a>
+<span class="sourceLineNo">36212</span>                                while (it.hasNext()) {<a name="line.36212"></a>
+<span class="sourceLineNo">36213</span>                                        final double ix = it.aDouble;<a name="line.36213"></a>
+<span class="sourceLineNo">36214</span>                                        short ox;<a name="line.36214"></a>
+<span class="sourceLineNo">36215</span>                                        if (ix &lt; pax)<a name="line.36215"></a>
+<span class="sourceLineNo">36216</span>                                                ox = (short) toLong(pax);<a name="line.36216"></a>
+<span class="sourceLineNo">36217</span>                                        else if (ix &gt; pbx)<a name="line.36217"></a>
+<span class="sourceLineNo">36218</span>                                                ox = (short) toLong(pbx);<a name="line.36218"></a>
+<span class="sourceLineNo">36219</span>                                        else<a name="line.36219"></a>
+<span class="sourceLineNo">36220</span>                                                ox = (short) toLong(ix);<a name="line.36220"></a>
+<span class="sourceLineNo">36221</span>                                        oi16data[it.oIndex] = ox;<a name="line.36221"></a>
+<span class="sourceLineNo">36222</span>                                }<a name="line.36222"></a>
+<span class="sourceLineNo">36223</span>                        } else {<a name="line.36223"></a>
+<span class="sourceLineNo">36224</span>                                while (it.hasNext()) {<a name="line.36224"></a>
+<span class="sourceLineNo">36225</span>                                        final long ix = it.aLong;<a name="line.36225"></a>
+<span class="sourceLineNo">36226</span>                                        short ox;<a name="line.36226"></a>
+<span class="sourceLineNo">36227</span>                                        if (ix &lt; pax)<a name="line.36227"></a>
+<span class="sourceLineNo">36228</span>                                                ox = (short) toLong(pax);<a name="line.36228"></a>
+<span class="sourceLineNo">36229</span>                                        else if (ix &gt; pbx)<a name="line.36229"></a>
+<span class="sourceLineNo">36230</span>                                                ox = (short) toLong(pbx);<a name="line.36230"></a>
+<span class="sourceLineNo">36231</span>                                        else<a name="line.36231"></a>
+<span class="sourceLineNo">36232</span>                                                ox = (short) toLong(ix);<a name="line.36232"></a>
+<span class="sourceLineNo">36233</span>                                        oi16data[it.oIndex] = ox;<a name="line.36233"></a>
+<span class="sourceLineNo">36234</span>                                }<a name="line.36234"></a>
+<span class="sourceLineNo">36235</span>                        }<a name="line.36235"></a>
+<span class="sourceLineNo">36236</span>                        break;<a name="line.36236"></a>
+<span class="sourceLineNo">36237</span>                case Dataset.INT64:<a name="line.36237"></a>
+<span class="sourceLineNo">36238</span>                        final long[] oi64data = ((LongDataset) result).getData();<a name="line.36238"></a>
+<span class="sourceLineNo">36239</span>                        if (it.isOutputDouble()) {<a name="line.36239"></a>
+<span class="sourceLineNo">36240</span>                                while (it.hasNext()) {<a name="line.36240"></a>
+<span class="sourceLineNo">36241</span>                                        final double ix = it.aDouble;<a name="line.36241"></a>
+<span class="sourceLineNo">36242</span>                                        long ox;<a name="line.36242"></a>
+<span class="sourceLineNo">36243</span>                                        if (ix &lt; pax)<a name="line.36243"></a>
+<span class="sourceLineNo">36244</span>                                                ox = toLong(pax);<a name="line.36244"></a>
+<span class="sourceLineNo">36245</span>                                        else if (ix &gt; pbx)<a name="line.36245"></a>
+<span class="sourceLineNo">36246</span>                                                ox = toLong(pbx);<a name="line.36246"></a>
+<span class="sourceLineNo">36247</span>                                        else<a name="line.36247"></a>
+<span class="sourceLineNo">36248</span>                                                ox = toLong(ix);<a name="line.36248"></a>
+<span class="sourceLineNo">36249</span>                                        oi64data[it.oIndex] = ox;<a name="line.36249"></a>
+<span class="sourceLineNo">36250</span>                                }<a name="line.36250"></a>
+<span class="sourceLineNo">36251</span>                        } else {<a name="line.36251"></a>
+<span class="sourceLineNo">36252</span>                                while (it.hasNext()) {<a name="line.36252"></a>
+<span class="sourceLineNo">36253</span>                                        final long ix = it.aLong;<a name="line.36253"></a>
+<span class="sourceLineNo">36254</span>                                        long ox;<a name="line.36254"></a>
+<span class="sourceLineNo">36255</span>                                        if (ix &lt; pax)<a name="line.36255"></a>
+<span class="sourceLineNo">36256</span>                                                ox = toLong(pax);<a name="line.36256"></a>
+<span class="sourceLineNo">36257</span>                                        else if (ix &gt; pbx)<a name="line.36257"></a>
+<span class="sourceLineNo">36258</span>                                                ox = toLong(pbx);<a name="line.36258"></a>
+<span class="sourceLineNo">36259</span>                                        else<a name="line.36259"></a>
+<span class="sourceLineNo">36260</span>                                                ox = toLong(ix);<a name="line.36260"></a>
+<span class="sourceLineNo">36261</span>                                        oi64data[it.oIndex] = ox;<a name="line.36261"></a>
+<span class="sourceLineNo">36262</span>                                }<a name="line.36262"></a>
+<span class="sourceLineNo">36263</span>                        }<a name="line.36263"></a>
+<span class="sourceLineNo">36264</span>                        break;<a name="line.36264"></a>
+<span class="sourceLineNo">36265</span>                case Dataset.INT32:<a name="line.36265"></a>
+<span class="sourceLineNo">36266</span>                        final int[] oi32data = ((IntegerDataset) result).getData();<a name="line.36266"></a>
+<span class="sourceLineNo">36267</span>                        if (it.isOutputDouble()) {<a name="line.36267"></a>
+<span class="sourceLineNo">36268</span>                                while (it.hasNext()) {<a name="line.36268"></a>
+<span class="sourceLineNo">36269</span>                                        final double ix = it.aDouble;<a name="line.36269"></a>
+<span class="sourceLineNo">36270</span>                                        int ox;<a name="line.36270"></a>
+<span class="sourceLineNo">36271</span>                                        if (ix &lt; pax)<a name="line.36271"></a>
+<span class="sourceLineNo">36272</span>                                                ox = (int) toLong(pax);<a name="line.36272"></a>
+<span class="sourceLineNo">36273</span>                                        else if (ix &gt; pbx)<a name="line.36273"></a>
+<span class="sourceLineNo">36274</span>                                                ox = (int) toLong(pbx);<a name="line.36274"></a>
+<span class="sourceLineNo">36275</span>                                        else<a name="line.36275"></a>
+<span class="sourceLineNo">36276</span>                                                ox = (int) toLong(ix);<a name="line.36276"></a>
+<span class="sourceLineNo">36277</span>                                        oi32data[it.oIndex] = ox;<a name="line.36277"></a>
+<span class="sourceLineNo">36278</span>                                }<a name="line.36278"></a>
+<span class="sourceLineNo">36279</span>                        } else {<a name="line.36279"></a>
+<span class="sourceLineNo">36280</span>                                while (it.hasNext()) {<a name="line.36280"></a>
+<span class="sourceLineNo">36281</span>                                        final long ix = it.aLong;<a name="line.36281"></a>
+<span class="sourceLineNo">36282</span>                                        int ox;<a name="line.36282"></a>
+<span class="sourceLineNo">36283</span>                                        if (ix &lt; pax)<a name="line.36283"></a>
+<span class="sourceLineNo">36284</span>                                                ox = (int) toLong(pax);<a name="line.36284"></a>
+<span class="sourceLineNo">36285</span>                                        else if (ix &gt; pbx)<a name="line.36285"></a>
+<span class="sourceLineNo">36286</span>                                                ox = (int) toLong(pbx);<a name="line.36286"></a>
+<span class="sourceLineNo">36287</span>                                        else<a name="line.36287"></a>
+<span class="sourceLineNo">36288</span>                                                ox = (int) toLong(ix);<a name="line.36288"></a>
+<span class="sourceLineNo">36289</span>                                        oi32data[it.oIndex] = ox;<a name="line.36289"></a>
+<span class="sourceLineNo">36290</span>                                }<a name="line.36290"></a>
+<span class="sourceLineNo">36291</span>                        }<a name="line.36291"></a>
+<span class="sourceLineNo">36292</span>                        break;<a name="line.36292"></a>
+<span class="sourceLineNo">36293</span>                case Dataset.ARRAYINT8:<a name="line.36293"></a>
+<span class="sourceLineNo">36294</span>                        final byte[] oai8data = ((CompoundByteDataset) result).getData();<a name="line.36294"></a>
+<span class="sourceLineNo">36295</span>                        if (is == 1) {<a name="line.36295"></a>
+<span class="sourceLineNo">36296</span>                                if (it.isOutputDouble()) {<a name="line.36296"></a>
+<span class="sourceLineNo">36297</span>                                        while (it.hasNext()) {<a name="line.36297"></a>
+<span class="sourceLineNo">36298</span>                                                final double ix = it.aDouble;<a name="line.36298"></a>
+<span class="sourceLineNo">36299</span>                                                byte ox;<a name="line.36299"></a>
+<span class="sourceLineNo">36300</span>                                                if (ix &lt; pax)<a name="line.36300"></a>
+<span class="sourceLineNo">36301</span>                                                        ox = (byte) toLong(pax);<a name="line.36301"></a>
+<span class="sourceLineNo">36302</span>                                                else if (ix &gt; pbx)<a name="line.36302"></a>
+<span class="sourceLineNo">36303</span>                                                        ox = (byte) toLong(pbx);<a name="line.36303"></a>
+<span class="sourceLineNo">36304</span>                                                else<a name="line.36304"></a>
+<span class="sourceLineNo">36305</span>                                                        ox = (byte) toLong(ix);<a name="line.36305"></a>
+<span class="sourceLineNo">36306</span>                                                oai8data[it.oIndex] = ox;<a name="line.36306"></a>
+<span class="sourceLineNo">36307</span>                                        }<a name="line.36307"></a>
+<span class="sourceLineNo">36308</span>                                } else {<a name="line.36308"></a>
+<span class="sourceLineNo">36309</span>                                        while (it.hasNext()) {<a name="line.36309"></a>
+<span class="sourceLineNo">36310</span>                                                final long ix = it.aLong;<a name="line.36310"></a>
+<span class="sourceLineNo">36311</span>                                                byte ox;<a name="line.36311"></a>
+<span class="sourceLineNo">36312</span>                                                if (ix &lt; pax)<a name="line.36312"></a>
+<span class="sourceLineNo">36313</span>                                                        ox = (byte) toLong(pax);<a name="line.36313"></a>
+<span class="sourceLineNo">36314</span>                                                else if (ix &gt; pbx)<a name="line.36314"></a>
+<span class="sourceLineNo">36315</span>                                                        ox = (byte) toLong(pbx);<a name="line.36315"></a>
+<span class="sourceLineNo">36316</span>                                                else<a name="line.36316"></a>
+<span class="sourceLineNo">36317</span>                                                        ox = (byte) toLong(ix);<a name="line.36317"></a>
+<span class="sourceLineNo">36318</span>                                                oai8data[it.oIndex] = ox;<a name="line.36318"></a>
+<span class="sourceLineNo">36319</span>                                        }<a name="line.36319"></a>
+<span class="sourceLineNo">36320</span>                                }<a name="line.36320"></a>
+<span class="sourceLineNo">36321</span>                        } else if (as == 1) {<a name="line.36321"></a>
+<span class="sourceLineNo">36322</span>                                if (it.isOutputDouble()) {<a name="line.36322"></a>
+<span class="sourceLineNo">36323</span>                                        while (it.hasNext()) {<a name="line.36323"></a>
+<span class="sourceLineNo">36324</span>                                                final double ix = it.aDouble;<a name="line.36324"></a>
+<span class="sourceLineNo">36325</span>                                                byte ox;<a name="line.36325"></a>
+<span class="sourceLineNo">36326</span>                                                if (ix &lt; pax)<a name="line.36326"></a>
+<span class="sourceLineNo">36327</span>                                                        ox = (byte) toLong(pax);<a name="line.36327"></a>
+<span class="sourceLineNo">36328</span>                                                else if (ix &gt; pbx)<a name="line.36328"></a>
+<span class="sourceLineNo">36329</span>                                                        ox = (byte) toLong(pbx);<a name="line.36329"></a>
+<span class="sourceLineNo">36330</span>                                                else<a name="line.36330"></a>
+<span class="sourceLineNo">36331</span>                                                        ox = (byte) toLong(ix);<a name="line.36331"></a>
+<span class="sourceLineNo">36332</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36332"></a>
+<span class="sourceLineNo">36333</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.36333"></a>
+<span class="sourceLineNo">36334</span>                                                }<a name="line.36334"></a>
+<span class="sourceLineNo">36335</span>                                        }<a name="line.36335"></a>
+<span class="sourceLineNo">36336</span>                                } else {<a name="line.36336"></a>
+<span class="sourceLineNo">36337</span>                                        while (it.hasNext()) {<a name="line.36337"></a>
+<span class="sourceLineNo">36338</span>                                                final long ix = it.aLong;<a name="line.36338"></a>
+<span class="sourceLineNo">36339</span>                                                byte ox;<a name="line.36339"></a>
+<span class="sourceLineNo">36340</span>                                                if (ix &lt; pax)<a name="line.36340"></a>
+<span class="sourceLineNo">36341</span>                                                        ox = (byte) toLong(pax);<a name="line.36341"></a>
+<span class="sourceLineNo">36342</span>                                                else if (ix &gt; pbx)<a name="line.36342"></a>
+<span class="sourceLineNo">36343</span>                                                        ox = (byte) toLong(pbx);<a name="line.36343"></a>
+<span class="sourceLineNo">36344</span>                                                else<a name="line.36344"></a>
+<span class="sourceLineNo">36345</span>                                                        ox = (byte) toLong(ix);<a name="line.36345"></a>
+<span class="sourceLineNo">36346</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36346"></a>
+<span class="sourceLineNo">36347</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.36347"></a>
+<span class="sourceLineNo">36348</span>                                                }<a name="line.36348"></a>
+<span class="sourceLineNo">36349</span>                                        }<a name="line.36349"></a>
+<span class="sourceLineNo">36350</span>                                }<a name="line.36350"></a>
+<span class="sourceLineNo">36351</span>                        } else {<a name="line.36351"></a>
+<span class="sourceLineNo">36352</span>                                if (it.isOutputDouble()) {<a name="line.36352"></a>
+<span class="sourceLineNo">36353</span>                                        while (it.hasNext()) {<a name="line.36353"></a>
+<span class="sourceLineNo">36354</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36354"></a>
+<span class="sourceLineNo">36355</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.36355"></a>
+<span class="sourceLineNo">36356</span>                                                        byte ox;<a name="line.36356"></a>
+<span class="sourceLineNo">36357</span>                                                        if (ix &lt; pax)<a name="line.36357"></a>
+<span class="sourceLineNo">36358</span>                                                                ox = (byte) toLong(pax);<a name="line.36358"></a>
+<span class="sourceLineNo">36359</span>                                                        else if (ix &gt; pbx)<a name="line.36359"></a>
+<span class="sourceLineNo">36360</span>                                                                ox = (byte) toLong(pbx);<a name="line.36360"></a>
+<span class="sourceLineNo">36361</span>                                                        else<a name="line.36361"></a>
+<span class="sourceLineNo">36362</span>                                                                ox = (byte) toLong(ix);<a name="line.36362"></a>
+<span class="sourceLineNo">36363</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.36363"></a>
+<span class="sourceLineNo">36364</span>                                                }<a name="line.36364"></a>
+<span class="sourceLineNo">36365</span>                                        }<a name="line.36365"></a>
+<span class="sourceLineNo">36366</span>                                } else {<a name="line.36366"></a>
+<span class="sourceLineNo">36367</span>                                        while (it.hasNext()) {<a name="line.36367"></a>
+<span class="sourceLineNo">36368</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36368"></a>
+<span class="sourceLineNo">36369</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.36369"></a>
+<span class="sourceLineNo">36370</span>                                                        byte ox;<a name="line.36370"></a>
+<span class="sourceLineNo">36371</span>                                                        if (ix &lt; pax)<a name="line.36371"></a>
+<span class="sourceLineNo">36372</span>                                                                ox = (byte) toLong(pax);<a name="line.36372"></a>
+<span class="sourceLineNo">36373</span>                                                        else if (ix &gt; pbx)<a name="line.36373"></a>
+<span class="sourceLineNo">36374</span>                                                                ox = (byte) toLong(pbx);<a name="line.36374"></a>
+<span class="sourceLineNo">36375</span>                                                        else<a name="line.36375"></a>
+<span class="sourceLineNo">36376</span>                                                                ox = (byte) toLong(ix);<a name="line.36376"></a>
+<span class="sourceLineNo">36377</span>                                                        oai8data[it.oIndex + j] = ox;<a name="line.36377"></a>
+<span class="sourceLineNo">36378</span>                                                }<a name="line.36378"></a>
+<span class="sourceLineNo">36379</span>                                        }<a name="line.36379"></a>
+<span class="sourceLineNo">36380</span>                                }<a name="line.36380"></a>
+<span class="sourceLineNo">36381</span>                        }<a name="line.36381"></a>
+<span class="sourceLineNo">36382</span>                        break;<a name="line.36382"></a>
+<span class="sourceLineNo">36383</span>                case Dataset.ARRAYINT16:<a name="line.36383"></a>
+<span class="sourceLineNo">36384</span>                        final short[] oai16data = ((CompoundShortDataset) result).getData();<a name="line.36384"></a>
+<span class="sourceLineNo">36385</span>                        if (is == 1) {<a name="line.36385"></a>
+<span class="sourceLineNo">36386</span>                                if (it.isOutputDouble()) {<a name="line.36386"></a>
+<span class="sourceLineNo">36387</span>                                        while (it.hasNext()) {<a name="line.36387"></a>
+<span class="sourceLineNo">36388</span>                                                final double ix = it.aDouble;<a name="line.36388"></a>
+<span class="sourceLineNo">36389</span>                                                short ox;<a name="line.36389"></a>
+<span class="sourceLineNo">36390</span>                                                if (ix &lt; pax)<a name="line.36390"></a>
+<span class="sourceLineNo">36391</span>                                                        ox = (short) toLong(pax);<a name="line.36391"></a>
+<span class="sourceLineNo">36392</span>                                                else if (ix &gt; pbx)<a name="line.36392"></a>
+<span class="sourceLineNo">36393</span>                                                        ox = (short) toLong(pbx);<a name="line.36393"></a>
+<span class="sourceLineNo">36394</span>                                                else<a name="line.36394"></a>
+<span class="sourceLineNo">36395</span>                                                        ox = (short) toLong(ix);<a name="line.36395"></a>
+<span class="sourceLineNo">36396</span>                                                oai16data[it.oIndex] = ox;<a name="line.36396"></a>
+<span class="sourceLineNo">36397</span>                                        }<a name="line.36397"></a>
+<span class="sourceLineNo">36398</span>                                } else {<a name="line.36398"></a>
+<span class="sourceLineNo">36399</span>                                        while (it.hasNext()) {<a name="line.36399"></a>
+<span class="sourceLineNo">36400</span>                                                final long ix = it.aLong;<a name="line.36400"></a>
+<span class="sourceLineNo">36401</span>                                                short ox;<a name="line.36401"></a>
+<span class="sourceLineNo">36402</span>                                                if (ix &lt; pax)<a name="line.36402"></a>
+<span class="sourceLineNo">36403</span>                                                        ox = (short) toLong(pax);<a name="line.36403"></a>
+<span class="sourceLineNo">36404</span>                                                else if (ix &gt; pbx)<a name="line.36404"></a>
+<span class="sourceLineNo">36405</span>                                                        ox = (short) toLong(pbx);<a name="line.36405"></a>
+<span class="sourceLineNo">36406</span>                                                else<a name="line.36406"></a>
+<span class="sourceLineNo">36407</span>                                                        ox = (short) toLong(ix);<a name="line.36407"></a>
+<span class="sourceLineNo">36408</span>                                                oai16data[it.oIndex] = ox;<a name="line.36408"></a>
+<span class="sourceLineNo">36409</span>                                        }<a name="line.36409"></a>
+<span class="sourceLineNo">36410</span>                                }<a name="line.36410"></a>
+<span class="sourceLineNo">36411</span>                        } else if (as == 1) {<a name="line.36411"></a>
+<span class="sourceLineNo">36412</span>                                if (it.isOutputDouble()) {<a name="line.36412"></a>
+<span class="sourceLineNo">36413</span>                                        while (it.hasNext()) {<a name="line.36413"></a>
+<span class="sourceLineNo">36414</span>                                                final double ix = it.aDouble;<a name="line.36414"></a>
+<span class="sourceLineNo">36415</span>                                                short ox;<a name="line.36415"></a>
+<span class="sourceLineNo">36416</span>                                                if (ix &lt; pax)<a name="line.36416"></a>
+<span class="sourceLineNo">36417</span>                                                        ox = (short) toLong(pax);<a name="line.36417"></a>
+<span class="sourceLineNo">36418</span>                                                else if (ix &gt; pbx)<a name="line.36418"></a>
+<span class="sourceLineNo">36419</span>                                                        ox = (short) toLong(pbx);<a name="line.36419"></a>
+<span class="sourceLineNo">36420</span>                                                else<a name="line.36420"></a>
+<span class="sourceLineNo">36421</span>                                                        ox = (short) toLong(ix);<a name="line.36421"></a>
+<span class="sourceLineNo">36422</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36422"></a>
+<span class="sourceLineNo">36423</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.36423"></a>
+<span class="sourceLineNo">36424</span>                                                }<a name="line.36424"></a>
+<span class="sourceLineNo">36425</span>                                        }<a name="line.36425"></a>
+<span class="sourceLineNo">36426</span>                                } else {<a name="line.36426"></a>
+<span class="sourceLineNo">36427</span>                                        while (it.hasNext()) {<a name="line.36427"></a>
+<span class="sourceLineNo">36428</span>                                                final long ix = it.aLong;<a name="line.36428"></a>
+<span class="sourceLineNo">36429</span>                                                short ox;<a name="line.36429"></a>
+<span class="sourceLineNo">36430</span>                                                if (ix &lt; pax)<a name="line.36430"></a>
+<span class="sourceLineNo">36431</span>                                                        ox = (short) toLong(pax);<a name="line.36431"></a>
+<span class="sourceLineNo">36432</span>                                                else if (ix &gt; pbx)<a name="line.36432"></a>
+<span class="sourceLineNo">36433</span>                                                        ox = (short) toLong(pbx);<a name="line.36433"></a>
+<span class="sourceLineNo">36434</span>                                                else<a name="line.36434"></a>
+<span class="sourceLineNo">36435</span>                                                        ox = (short) toLong(ix);<a name="line.36435"></a>
+<span class="sourceLineNo">36436</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36436"></a>
+<span class="sourceLineNo">36437</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.36437"></a>
+<span class="sourceLineNo">36438</span>                                                }<a name="line.36438"></a>
+<span class="sourceLineNo">36439</span>                                        }<a name="line.36439"></a>
+<span class="sourceLineNo">36440</span>                                }<a name="line.36440"></a>
+<span class="sourceLineNo">36441</span>                        } else {<a name="line.36441"></a>
+<span class="sourceLineNo">36442</span>                                if (it.isOutputDouble()) {<a name="line.36442"></a>
+<span class="sourceLineNo">36443</span>                                        while (it.hasNext()) {<a name="line.36443"></a>
+<span class="sourceLineNo">36444</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36444"></a>
+<span class="sourceLineNo">36445</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.36445"></a>
+<span class="sourceLineNo">36446</span>                                                        short ox;<a name="line.36446"></a>
+<span class="sourceLineNo">36447</span>                                                        if (ix &lt; pax)<a name="line.36447"></a>
+<span class="sourceLineNo">36448</span>                                                                ox = (short) toLong(pax);<a name="line.36448"></a>
+<span class="sourceLineNo">36449</span>                                                        else if (ix &gt; pbx)<a name="line.36449"></a>
+<span class="sourceLineNo">36450</span>                                                                ox = (short) toLong(pbx);<a name="line.36450"></a>
+<span class="sourceLineNo">36451</span>                                                        else<a name="line.36451"></a>
+<span class="sourceLineNo">36452</span>                                                                ox = (short) toLong(ix);<a name="line.36452"></a>
+<span class="sourceLineNo">36453</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.36453"></a>
+<span class="sourceLineNo">36454</span>                                                }<a name="line.36454"></a>
+<span class="sourceLineNo">36455</span>                                        }<a name="line.36455"></a>
+<span class="sourceLineNo">36456</span>                                } else {<a name="line.36456"></a>
+<span class="sourceLineNo">36457</span>                                        while (it.hasNext()) {<a name="line.36457"></a>
+<span class="sourceLineNo">36458</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36458"></a>
+<span class="sourceLineNo">36459</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.36459"></a>
+<span class="sourceLineNo">36460</span>                                                        short ox;<a name="line.36460"></a>
+<span class="sourceLineNo">36461</span>                                                        if (ix &lt; pax)<a name="line.36461"></a>
+<span class="sourceLineNo">36462</span>                                                                ox = (short) toLong(pax);<a name="line.36462"></a>
+<span class="sourceLineNo">36463</span>                                                        else if (ix &gt; pbx)<a name="line.36463"></a>
+<span class="sourceLineNo">36464</span>                                                                ox = (short) toLong(pbx);<a name="line.36464"></a>
+<span class="sourceLineNo">36465</span>                                                        else<a name="line.36465"></a>
+<span class="sourceLineNo">36466</span>                                                                ox = (short) toLong(ix);<a name="line.36466"></a>
+<span class="sourceLineNo">36467</span>                                                        oai16data[it.oIndex + j] = ox;<a name="line.36467"></a>
+<span class="sourceLineNo">36468</span>                                                }<a name="line.36468"></a>
+<span class="sourceLineNo">36469</span>                                        }<a name="line.36469"></a>
+<span class="sourceLineNo">36470</span>                                }<a name="line.36470"></a>
+<span class="sourceLineNo">36471</span>                        }<a name="line.36471"></a>
+<span class="sourceLineNo">36472</span>                        break;<a name="line.36472"></a>
+<span class="sourceLineNo">36473</span>                case Dataset.ARRAYINT64:<a name="line.36473"></a>
+<span class="sourceLineNo">36474</span>                        final long[] oai64data = ((CompoundLongDataset) result).getData();<a name="line.36474"></a>
+<span class="sourceLineNo">36475</span>                        if (is == 1) {<a name="line.36475"></a>
+<span class="sourceLineNo">36476</span>                                if (it.isOutputDouble()) {<a name="line.36476"></a>
+<span class="sourceLineNo">36477</span>                                        while (it.hasNext()) {<a name="line.36477"></a>
+<span class="sourceLineNo">36478</span>                                                final double ix = it.aDouble;<a name="line.36478"></a>
+<span class="sourceLineNo">36479</span>                                                long ox;<a name="line.36479"></a>
+<span class="sourceLineNo">36480</span>                                                if (ix &lt; pax)<a name="line.36480"></a>
+<span class="sourceLineNo">36481</span>                                                        ox = toLong(pax);<a name="line.36481"></a>
+<span class="sourceLineNo">36482</span>                                                else if (ix &gt; pbx)<a name="line.36482"></a>
+<span class="sourceLineNo">36483</span>                                                        ox = toLong(pbx);<a name="line.36483"></a>
+<span class="sourceLineNo">36484</span>                                                else<a name="line.36484"></a>
+<span class="sourceLineNo">36485</span>                                                        ox = toLong(ix);<a name="line.36485"></a>
+<span class="sourceLineNo">36486</span>                                                oai64data[it.oIndex] = ox;<a name="line.36486"></a>
+<span class="sourceLineNo">36487</span>                                        }<a name="line.36487"></a>
+<span class="sourceLineNo">36488</span>                                } else {<a name="line.36488"></a>
+<span class="sourceLineNo">36489</span>                                        while (it.hasNext()) {<a name="line.36489"></a>
+<span class="sourceLineNo">36490</span>                                                final long ix = it.aLong;<a name="line.36490"></a>
+<span class="sourceLineNo">36491</span>                                                long ox;<a name="line.36491"></a>
+<span class="sourceLineNo">36492</span>                                                if (ix &lt; pax)<a name="line.36492"></a>
+<span class="sourceLineNo">36493</span>                                                        ox = toLong(pax);<a name="line.36493"></a>
+<span class="sourceLineNo">36494</span>                                                else if (ix &gt; pbx)<a name="line.36494"></a>
+<span class="sourceLineNo">36495</span>                                                        ox = toLong(pbx);<a name="line.36495"></a>
+<span class="sourceLineNo">36496</span>                                                else<a name="line.36496"></a>
+<span class="sourceLineNo">36497</span>                                                        ox = toLong(ix);<a name="line.36497"></a>
+<span class="sourceLineNo">36498</span>                                                oai64data[it.oIndex] = ox;<a name="line.36498"></a>
+<span class="sourceLineNo">36499</span>                                        }<a name="line.36499"></a>
+<span class="sourceLineNo">36500</span>                                }<a name="line.36500"></a>
+<span class="sourceLineNo">36501</span>                        } else if (as == 1) {<a name="line.36501"></a>
+<span class="sourceLineNo">36502</span>                                if (it.isOutputDouble()) {<a name="line.36502"></a>
+<span class="sourceLineNo">36503</span>                                        while (it.hasNext()) {<a name="line.36503"></a>
+<span class="sourceLineNo">36504</span>                                                final double ix = it.aDouble;<a name="line.36504"></a>
+<span class="sourceLineNo">36505</span>                                                long ox;<a name="line.36505"></a>
+<span class="sourceLineNo">36506</span>                                                if (ix &lt; pax)<a name="line.36506"></a>
+<span class="sourceLineNo">36507</span>                                                        ox = toLong(pax);<a name="line.36507"></a>
+<span class="sourceLineNo">36508</span>                                                else if (ix &gt; pbx)<a name="line.36508"></a>
+<span class="sourceLineNo">36509</span>                                                        ox = toLong(pbx);<a name="line.36509"></a>
+<span class="sourceLineNo">36510</span>                                                else<a name="line.36510"></a>
+<span class="sourceLineNo">36511</span>                                                        ox = toLong(ix);<a name="line.36511"></a>
+<span class="sourceLineNo">36512</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36512"></a>
+<span class="sourceLineNo">36513</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.36513"></a>
+<span class="sourceLineNo">36514</span>                                                }<a name="line.36514"></a>
+<span class="sourceLineNo">36515</span>                                        }<a name="line.36515"></a>
+<span class="sourceLineNo">36516</span>                                } else {<a name="line.36516"></a>
+<span class="sourceLineNo">36517</span>                                        while (it.hasNext()) {<a name="line.36517"></a>
+<span class="sourceLineNo">36518</span>                                                final long ix = it.aLong;<a name="line.36518"></a>
+<span class="sourceLineNo">36519</span>                                                long ox;<a name="line.36519"></a>
+<span class="sourceLineNo">36520</span>                                                if (ix &lt; pax)<a name="line.36520"></a>
+<span class="sourceLineNo">36521</span>                                                        ox = toLong(pax);<a name="line.36521"></a>
+<span class="sourceLineNo">36522</span>                                                else if (ix &gt; pbx)<a name="line.36522"></a>
+<span class="sourceLineNo">36523</span>                                                        ox = toLong(pbx);<a name="line.36523"></a>
+<span class="sourceLineNo">36524</span>                                                else<a name="line.36524"></a>
+<span class="sourceLineNo">36525</span>                                                        ox = toLong(ix);<a name="line.36525"></a>
+<span class="sourceLineNo">36526</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36526"></a>
+<span class="sourceLineNo">36527</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.36527"></a>
+<span class="sourceLineNo">36528</span>                                                }<a name="line.36528"></a>
+<span class="sourceLineNo">36529</span>                                        }<a name="line.36529"></a>
+<span class="sourceLineNo">36530</span>                                }<a name="line.36530"></a>
+<span class="sourceLineNo">36531</span>                        } else {<a name="line.36531"></a>
+<span class="sourceLineNo">36532</span>                                if (it.isOutputDouble()) {<a name="line.36532"></a>
+<span class="sourceLineNo">36533</span>                                        while (it.hasNext()) {<a name="line.36533"></a>
+<span class="sourceLineNo">36534</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36534"></a>
+<span class="sourceLineNo">36535</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.36535"></a>
+<span class="sourceLineNo">36536</span>                                                        long ox;<a name="line.36536"></a>
+<span class="sourceLineNo">36537</span>                                                        if (ix &lt; pax)<a name="line.36537"></a>
+<span class="sourceLineNo">36538</span>                                                                ox = toLong(pax);<a name="line.36538"></a>
+<span class="sourceLineNo">36539</span>                                                        else if (ix &gt; pbx)<a name="line.36539"></a>
+<span class="sourceLineNo">36540</span>                                                                ox = toLong(pbx);<a name="line.36540"></a>
+<span class="sourceLineNo">36541</span>                                                        else<a name="line.36541"></a>
+<span class="sourceLineNo">36542</span>                                                                ox = toLong(ix);<a name="line.36542"></a>
+<span class="sourceLineNo">36543</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.36543"></a>
+<span class="sourceLineNo">36544</span>                                                }<a name="line.36544"></a>
+<span class="sourceLineNo">36545</span>                                        }<a name="line.36545"></a>
+<span class="sourceLineNo">36546</span>                                } else {<a name="line.36546"></a>
+<span class="sourceLineNo">36547</span>                                        while (it.hasNext()) {<a name="line.36547"></a>
+<span class="sourceLineNo">36548</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36548"></a>
+<span class="sourceLineNo">36549</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.36549"></a>
+<span class="sourceLineNo">36550</span>                                                        long ox;<a name="line.36550"></a>
+<span class="sourceLineNo">36551</span>                                                        if (ix &lt; pax)<a name="line.36551"></a>
+<span class="sourceLineNo">36552</span>                                                                ox = toLong(pax);<a name="line.36552"></a>
+<span class="sourceLineNo">36553</span>                                                        else if (ix &gt; pbx)<a name="line.36553"></a>
+<span class="sourceLineNo">36554</span>                                                                ox = toLong(pbx);<a name="line.36554"></a>
+<span class="sourceLineNo">36555</span>                                                        else<a name="line.36555"></a>
+<span class="sourceLineNo">36556</span>                                                                ox = toLong(ix);<a name="line.36556"></a>
+<span class="sourceLineNo">36557</span>                                                        oai64data[it.oIndex + j] = ox;<a name="line.36557"></a>
+<span class="sourceLineNo">36558</span>                                                }<a name="line.36558"></a>
+<span class="sourceLineNo">36559</span>                                        }<a name="line.36559"></a>
+<span class="sourceLineNo">36560</span>                                }<a name="line.36560"></a>
+<span class="sourceLineNo">36561</span>                        }<a name="line.36561"></a>
+<span class="sourceLineNo">36562</span>                        break;<a name="line.36562"></a>
+<span class="sourceLineNo">36563</span>                case Dataset.ARRAYINT32:<a name="line.36563"></a>
+<span class="sourceLineNo">36564</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).getData();<a name="line.36564"></a>
+<span class="sourceLineNo">36565</span>                        if (is == 1) {<a name="line.36565"></a>
+<span class="sourceLineNo">36566</span>                                if (it.isOutputDouble()) {<a name="line.36566"></a>
+<span class="sourceLineNo">36567</span>                                        while (it.hasNext()) {<a name="line.36567"></a>
+<span class="sourceLineNo">36568</span>                                                final double ix = it.aDouble;<a name="line.36568"></a>
+<span class="sourceLineNo">36569</span>                                                int ox;<a name="line.36569"></a>
+<span class="sourceLineNo">36570</span>                                                if (ix &lt; pax)<a name="line.36570"></a>
+<span class="sourceLineNo">36571</span>                                                        ox = (int) toLong(pax);<a name="line.36571"></a>
+<span class="sourceLineNo">36572</span>                                                else if (ix &gt; pbx)<a name="line.36572"></a>
+<span class="sourceLineNo">36573</span>                                                        ox = (int) toLong(pbx);<a name="line.36573"></a>
+<span class="sourceLineNo">36574</span>                                                else<a name="line.36574"></a>
+<span class="sourceLineNo">36575</span>                                                        ox = (int) toLong(ix);<a name="line.36575"></a>
+<span class="sourceLineNo">36576</span>                                                oai32data[it.oIndex] = ox;<a name="line.36576"></a>
+<span class="sourceLineNo">36577</span>                                        }<a name="line.36577"></a>
+<span class="sourceLineNo">36578</span>                                } else {<a name="line.36578"></a>
+<span class="sourceLineNo">36579</span>                                        while (it.hasNext()) {<a name="line.36579"></a>
+<span class="sourceLineNo">36580</span>                                                final long ix = it.aLong;<a name="line.36580"></a>
+<span class="sourceLineNo">36581</span>                                                int ox;<a name="line.36581"></a>
+<span class="sourceLineNo">36582</span>                                                if (ix &lt; pax)<a name="line.36582"></a>
+<span class="sourceLineNo">36583</span>                                                        ox = (int) toLong(pax);<a name="line.36583"></a>
+<span class="sourceLineNo">36584</span>                                                else if (ix &gt; pbx)<a name="line.36584"></a>
+<span class="sourceLineNo">36585</span>                                                        ox = (int) toLong(pbx);<a name="line.36585"></a>
+<span class="sourceLineNo">36586</span>                                                else<a name="line.36586"></a>
+<span class="sourceLineNo">36587</span>                                                        ox = (int) toLong(ix);<a name="line.36587"></a>
+<span class="sourceLineNo">36588</span>                                                oai32data[it.oIndex] = ox;<a name="line.36588"></a>
+<span class="sourceLineNo">36589</span>                                        }<a name="line.36589"></a>
+<span class="sourceLineNo">36590</span>                                }<a name="line.36590"></a>
+<span class="sourceLineNo">36591</span>                        } else if (as == 1) {<a name="line.36591"></a>
+<span class="sourceLineNo">36592</span>                                if (it.isOutputDouble()) {<a name="line.36592"></a>
+<span class="sourceLineNo">36593</span>                                        while (it.hasNext()) {<a name="line.36593"></a>
+<span class="sourceLineNo">36594</span>                                                final double ix = it.aDouble;<a name="line.36594"></a>
+<span class="sourceLineNo">36595</span>                                                int ox;<a name="line.36595"></a>
+<span class="sourceLineNo">36596</span>                                                if (ix &lt; pax)<a name="line.36596"></a>
+<span class="sourceLineNo">36597</span>                                                        ox = (int) toLong(pax);<a name="line.36597"></a>
+<span class="sourceLineNo">36598</span>                                                else if (ix &gt; pbx)<a name="line.36598"></a>
+<span class="sourceLineNo">36599</span>                                                        ox = (int) toLong(pbx);<a name="line.36599"></a>
+<span class="sourceLineNo">36600</span>                                                else<a name="line.36600"></a>
+<span class="sourceLineNo">36601</span>                                                        ox = (int) toLong(ix);<a name="line.36601"></a>
+<span class="sourceLineNo">36602</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36602"></a>
+<span class="sourceLineNo">36603</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.36603"></a>
+<span class="sourceLineNo">36604</span>                                                }<a name="line.36604"></a>
+<span class="sourceLineNo">36605</span>                                        }<a name="line.36605"></a>
+<span class="sourceLineNo">36606</span>                                } else {<a name="line.36606"></a>
+<span class="sourceLineNo">36607</span>                                        while (it.hasNext()) {<a name="line.36607"></a>
+<span class="sourceLineNo">36608</span>                                                final long ix = it.aLong;<a name="line.36608"></a>
+<span class="sourceLineNo">36609</span>                                                int ox;<a name="line.36609"></a>
+<span class="sourceLineNo">36610</span>                                                if (ix &lt; pax)<a name="line.36610"></a>
+<span class="sourceLineNo">36611</span>                                                        ox = (int) toLong(pax);<a name="line.36611"></a>
+<span class="sourceLineNo">36612</span>                                                else if (ix &gt; pbx)<a name="line.36612"></a>
+<span class="sourceLineNo">36613</span>                                                        ox = (int) toLong(pbx);<a name="line.36613"></a>
+<span class="sourceLineNo">36614</span>                                                else<a name="line.36614"></a>
+<span class="sourceLineNo">36615</span>                                                        ox = (int) toLong(ix);<a name="line.36615"></a>
+<span class="sourceLineNo">36616</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36616"></a>
+<span class="sourceLineNo">36617</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.36617"></a>
+<span class="sourceLineNo">36618</span>                                                }<a name="line.36618"></a>
+<span class="sourceLineNo">36619</span>                                        }<a name="line.36619"></a>
+<span class="sourceLineNo">36620</span>                                }<a name="line.36620"></a>
+<span class="sourceLineNo">36621</span>                        } else {<a name="line.36621"></a>
+<span class="sourceLineNo">36622</span>                                if (it.isOutputDouble()) {<a name="line.36622"></a>
+<span class="sourceLineNo">36623</span>                                        while (it.hasNext()) {<a name="line.36623"></a>
+<span class="sourceLineNo">36624</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36624"></a>
+<span class="sourceLineNo">36625</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.36625"></a>
+<span class="sourceLineNo">36626</span>                                                        int ox;<a name="line.36626"></a>
+<span class="sourceLineNo">36627</span>                                                        if (ix &lt; pax)<a name="line.36627"></a>
+<span class="sourceLineNo">36628</span>                                                                ox = (int) toLong(pax);<a name="line.36628"></a>
+<span class="sourceLineNo">36629</span>                                                        else if (ix &gt; pbx)<a name="line.36629"></a>
+<span class="sourceLineNo">36630</span>                                                                ox = (int) toLong(pbx);<a name="line.36630"></a>
+<span class="sourceLineNo">36631</span>                                                        else<a name="line.36631"></a>
+<span class="sourceLineNo">36632</span>                                                                ox = (int) toLong(ix);<a name="line.36632"></a>
+<span class="sourceLineNo">36633</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.36633"></a>
+<span class="sourceLineNo">36634</span>                                                }<a name="line.36634"></a>
+<span class="sourceLineNo">36635</span>                                        }<a name="line.36635"></a>
+<span class="sourceLineNo">36636</span>                                } else {<a name="line.36636"></a>
+<span class="sourceLineNo">36637</span>                                        while (it.hasNext()) {<a name="line.36637"></a>
+<span class="sourceLineNo">36638</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36638"></a>
+<span class="sourceLineNo">36639</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.36639"></a>
+<span class="sourceLineNo">36640</span>                                                        int ox;<a name="line.36640"></a>
+<span class="sourceLineNo">36641</span>                                                        if (ix &lt; pax)<a name="line.36641"></a>
+<span class="sourceLineNo">36642</span>                                                                ox = (int) toLong(pax);<a name="line.36642"></a>
+<span class="sourceLineNo">36643</span>                                                        else if (ix &gt; pbx)<a name="line.36643"></a>
+<span class="sourceLineNo">36644</span>                                                                ox = (int) toLong(pbx);<a name="line.36644"></a>
+<span class="sourceLineNo">36645</span>                                                        else<a name="line.36645"></a>
+<span class="sourceLineNo">36646</span>                                                                ox = (int) toLong(ix);<a name="line.36646"></a>
+<span class="sourceLineNo">36647</span>                                                        oai32data[it.oIndex + j] = ox;<a name="line.36647"></a>
+<span class="sourceLineNo">36648</span>                                                }<a name="line.36648"></a>
+<span class="sourceLineNo">36649</span>                                        }<a name="line.36649"></a>
+<span class="sourceLineNo">36650</span>                                }<a name="line.36650"></a>
+<span class="sourceLineNo">36651</span>                        }<a name="line.36651"></a>
+<span class="sourceLineNo">36652</span>                        break;<a name="line.36652"></a>
+<span class="sourceLineNo">36653</span>                case Dataset.FLOAT32:<a name="line.36653"></a>
+<span class="sourceLineNo">36654</span>                        final float[] of32data = ((FloatDataset) result).getData();<a name="line.36654"></a>
+<span class="sourceLineNo">36655</span>                        if (it.isOutputDouble()) {<a name="line.36655"></a>
+<span class="sourceLineNo">36656</span>                                while (it.hasNext()) {<a name="line.36656"></a>
+<span class="sourceLineNo">36657</span>                                        final double ix = it.aDouble;<a name="line.36657"></a>
+<span class="sourceLineNo">36658</span>                                        float ox;<a name="line.36658"></a>
+<span class="sourceLineNo">36659</span>                                        if (Double.isNaN(ix))<a name="line.36659"></a>
+<span class="sourceLineNo">36660</span>                                                ox = (float) ((pax+pbx)/2.);<a name="line.36660"></a>
+<span class="sourceLineNo">36661</span>                                        else if (ix &lt; pax)<a name="line.36661"></a>
+<span class="sourceLineNo">36662</span>                                                ox = (float) (pax);<a name="line.36662"></a>
+<span class="sourceLineNo">36663</span>                                        else if (ix &gt; pbx)<a name="line.36663"></a>
+<span class="sourceLineNo">36664</span>                                                ox = (float) (pbx);<a name="line.36664"></a>
+<span class="sourceLineNo">36665</span>                                        else<a name="line.36665"></a>
+<span class="sourceLineNo">36666</span>                                                ox = (float) (ix);<a name="line.36666"></a>
+<span class="sourceLineNo">36667</span>                                        of32data[it.oIndex] = ox;<a name="line.36667"></a>
+<span class="sourceLineNo">36668</span>                                }<a name="line.36668"></a>
+<span class="sourceLineNo">36669</span>                        } else {<a name="line.36669"></a>
+<span class="sourceLineNo">36670</span>                                while (it.hasNext()) {<a name="line.36670"></a>
+<span class="sourceLineNo">36671</span>                                        final long ix = it.aLong;<a name="line.36671"></a>
+<span class="sourceLineNo">36672</span>                                        float ox;<a name="line.36672"></a>
+<span class="sourceLineNo">36673</span>                                        if (Double.isNaN(ix))<a name="line.36673"></a>
+<span class="sourceLineNo">36674</span>                                                ox = (float) ((pax+pbx)/2.);<a name="line.36674"></a>
+<span class="sourceLineNo">36675</span>                                        else if (ix &lt; pax)<a name="line.36675"></a>
+<span class="sourceLineNo">36676</span>                                                ox = (float) (pax);<a name="line.36676"></a>
+<span class="sourceLineNo">36677</span>                                        else if (ix &gt; pbx)<a name="line.36677"></a>
+<span class="sourceLineNo">36678</span>                                                ox = (float) (pbx);<a name="line.36678"></a>
+<span class="sourceLineNo">36679</span>                                        else<a name="line.36679"></a>
+<span class="sourceLineNo">36680</span>                                                ox = (ix);<a name="line.36680"></a>
+<span class="sourceLineNo">36681</span>                                        of32data[it.oIndex] = ox;<a name="line.36681"></a>
+<span class="sourceLineNo">36682</span>                                }<a name="line.36682"></a>
+<span class="sourceLineNo">36683</span>                        }<a name="line.36683"></a>
+<span class="sourceLineNo">36684</span>                        break;<a name="line.36684"></a>
+<span class="sourceLineNo">36685</span>                case Dataset.FLOAT64:<a name="line.36685"></a>
+<span class="sourceLineNo">36686</span>                        final double[] of64data = ((DoubleDataset) result).getData();<a name="line.36686"></a>
+<span class="sourceLineNo">36687</span>                        if (it.isOutputDouble()) {<a name="line.36687"></a>
+<span class="sourceLineNo">36688</span>                                while (it.hasNext()) {<a name="line.36688"></a>
+<span class="sourceLineNo">36689</span>                                        final double ix = it.aDouble;<a name="line.36689"></a>
+<span class="sourceLineNo">36690</span>                                        double ox;<a name="line.36690"></a>
+<span class="sourceLineNo">36691</span>                                        if (Double.isNaN(ix))<a name="line.36691"></a>
+<span class="sourceLineNo">36692</span>                                                ox = ((pax+pbx)/2.);<a name="line.36692"></a>
+<span class="sourceLineNo">36693</span>                                        else if (ix &lt; pax)<a name="line.36693"></a>
+<span class="sourceLineNo">36694</span>                                                ox = (pax);<a name="line.36694"></a>
+<span class="sourceLineNo">36695</span>                                        else if (ix &gt; pbx)<a name="line.36695"></a>
+<span class="sourceLineNo">36696</span>                                                ox = (pbx);<a name="line.36696"></a>
+<span class="sourceLineNo">36697</span>                                        else<a name="line.36697"></a>
+<span class="sourceLineNo">36698</span>                                                ox = (ix);<a name="line.36698"></a>
+<span class="sourceLineNo">36699</span>                                        of64data[it.oIndex] = ox;<a name="line.36699"></a>
+<span class="sourceLineNo">36700</span>                                }<a name="line.36700"></a>
+<span class="sourceLineNo">36701</span>                        } else {<a name="line.36701"></a>
+<span class="sourceLineNo">36702</span>                                while (it.hasNext()) {<a name="line.36702"></a>
+<span class="sourceLineNo">36703</span>                                        final long ix = it.aLong;<a name="line.36703"></a>
+<span class="sourceLineNo">36704</span>                                        double ox;<a name="line.36704"></a>
+<span class="sourceLineNo">36705</span>                                        if (Double.isNaN(ix))<a name="line.36705"></a>
+<span class="sourceLineNo">36706</span>                                                ox = ((pax+pbx)/2.);<a name="line.36706"></a>
+<span class="sourceLineNo">36707</span>                                        else if (ix &lt; pax)<a name="line.36707"></a>
+<span class="sourceLineNo">36708</span>                                                ox = (pax);<a name="line.36708"></a>
+<span class="sourceLineNo">36709</span>                                        else if (ix &gt; pbx)<a name="line.36709"></a>
+<span class="sourceLineNo">36710</span>                                                ox = (pbx);<a name="line.36710"></a>
+<span class="sourceLineNo">36711</span>                                        else<a name="line.36711"></a>
+<span class="sourceLineNo">36712</span>                                                ox = (ix);<a name="line.36712"></a>
+<span class="sourceLineNo">36713</span>                                        of64data[it.oIndex] = ox;<a name="line.36713"></a>
+<span class="sourceLineNo">36714</span>                                }<a name="line.36714"></a>
+<span class="sourceLineNo">36715</span>                        }<a name="line.36715"></a>
+<span class="sourceLineNo">36716</span>                        break;<a name="line.36716"></a>
+<span class="sourceLineNo">36717</span>                case Dataset.ARRAYFLOAT32:<a name="line.36717"></a>
+<span class="sourceLineNo">36718</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).getData();<a name="line.36718"></a>
+<span class="sourceLineNo">36719</span>                        if (is == 1) {<a name="line.36719"></a>
+<span class="sourceLineNo">36720</span>                                if (it.isOutputDouble()) {<a name="line.36720"></a>
+<span class="sourceLineNo">36721</span>                                        while (it.hasNext()) {<a name="line.36721"></a>
+<span class="sourceLineNo">36722</span>                                                final double ix = it.aDouble;<a name="line.36722"></a>
+<span class="sourceLineNo">36723</span>                                                float ox;<a name="line.36723"></a>
+<span class="sourceLineNo">36724</span>                                                if (Double.isNaN(ix))<a name="line.36724"></a>
+<span class="sourceLineNo">36725</span>                                                        ox = (float) ((pax+pbx)/2.);<a name="line.36725"></a>
+<span class="sourceLineNo">36726</span>                                                else if (ix &lt; pax)<a name="line.36726"></a>
+<span class="sourceLineNo">36727</span>                                                        ox = (float) (pax);<a name="line.36727"></a>
+<span class="sourceLineNo">36728</span>                                                else if (ix &gt; pbx)<a name="line.36728"></a>
+<span class="sourceLineNo">36729</span>                                                        ox = (float) (pbx);<a name="line.36729"></a>
+<span class="sourceLineNo">36730</span>                                                else<a name="line.36730"></a>
+<span class="sourceLineNo">36731</span>                                                        ox = (float) (ix);<a name="line.36731"></a>
+<span class="sourceLineNo">36732</span>                                                oaf32data[it.oIndex] = ox;<a name="line.36732"></a>
+<span class="sourceLineNo">36733</span>                                        }<a name="line.36733"></a>
+<span class="sourceLineNo">36734</span>                                } else {<a name="line.36734"></a>
+<span class="sourceLineNo">36735</span>                                        while (it.hasNext()) {<a name="line.36735"></a>
+<span class="sourceLineNo">36736</span>                                                final long ix = it.aLong;<a name="line.36736"></a>
+<span class="sourceLineNo">36737</span>                                                float ox;<a name="line.36737"></a>
+<span class="sourceLineNo">36738</span>                                                if (Double.isNaN(ix))<a name="line.36738"></a>
+<span class="sourceLineNo">36739</span>                                                        ox = (float) ((pax+pbx)/2.);<a name="line.36739"></a>
+<span class="sourceLineNo">36740</span>                                                else if (ix &lt; pax)<a name="line.36740"></a>
+<span class="sourceLineNo">36741</span>                                                        ox = (float) (pax);<a name="line.36741"></a>
+<span class="sourceLineNo">36742</span>                                                else if (ix &gt; pbx)<a name="line.36742"></a>
+<span class="sourceLineNo">36743</span>                                                        ox = (float) (pbx);<a name="line.36743"></a>
+<span class="sourceLineNo">36744</span>                                                else<a name="line.36744"></a>
+<span class="sourceLineNo">36745</span>                                                        ox = (ix);<a name="line.36745"></a>
+<span class="sourceLineNo">36746</span>                                                oaf32data[it.oIndex] = ox;<a name="line.36746"></a>
+<span class="sourceLineNo">36747</span>                                        }<a name="line.36747"></a>
+<span class="sourceLineNo">36748</span>                                }<a name="line.36748"></a>
+<span class="sourceLineNo">36749</span>                        } else if (as == 1) {<a name="line.36749"></a>
+<span class="sourceLineNo">36750</span>                                if (it.isOutputDouble()) {<a name="line.36750"></a>
+<span class="sourceLineNo">36751</span>                                        while (it.hasNext()) {<a name="line.36751"></a>
+<span class="sourceLineNo">36752</span>                                                final double ix = it.aDouble;<a name="line.36752"></a>
+<span class="sourceLineNo">36753</span>                                                float ox;<a name="line.36753"></a>
+<span class="sourceLineNo">36754</span>                                                if (Double.isNaN(ix))<a name="line.36754"></a>
+<span class="sourceLineNo">36755</span>                                                        ox = (float) ((pax+pbx)/2.);<a name="line.36755"></a>
+<span class="sourceLineNo">36756</span>                                                else if (ix &lt; pax)<a name="line.36756"></a>
+<span class="sourceLineNo">36757</span>                                                        ox = (float) (pax);<a name="line.36757"></a>
+<span class="sourceLineNo">36758</span>                                                else if (ix &gt; pbx)<a name="line.36758"></a>
+<span class="sourceLineNo">36759</span>                                                        ox = (float) (pbx);<a name="line.36759"></a>
+<span class="sourceLineNo">36760</span>                                                else<a name="line.36760"></a>
+<span class="sourceLineNo">36761</span>                                                        ox = (float) (ix);<a name="line.36761"></a>
+<span class="sourceLineNo">36762</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36762"></a>
+<span class="sourceLineNo">36763</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.36763"></a>
+<span class="sourceLineNo">36764</span>                                                }<a name="line.36764"></a>
+<span class="sourceLineNo">36765</span>                                        }<a name="line.36765"></a>
+<span class="sourceLineNo">36766</span>                                } else {<a name="line.36766"></a>
+<span class="sourceLineNo">36767</span>                                        while (it.hasNext()) {<a name="line.36767"></a>
+<span class="sourceLineNo">36768</span>                                                final long ix = it.aLong;<a name="line.36768"></a>
+<span class="sourceLineNo">36769</span>                                                float ox;<a name="line.36769"></a>
+<span class="sourceLineNo">36770</span>                                                if (Double.isNaN(ix))<a name="line.36770"></a>
+<span class="sourceLineNo">36771</span>                                                        ox = (float) ((pax+pbx)/2.);<a name="line.36771"></a>
+<span class="sourceLineNo">36772</span>                                                else if (ix &lt; pax)<a name="line.36772"></a>
+<span class="sourceLineNo">36773</span>                                                        ox = (float) (pax);<a name="line.36773"></a>
+<span class="sourceLineNo">36774</span>                                                else if (ix &gt; pbx)<a name="line.36774"></a>
+<span class="sourceLineNo">36775</span>                                                        ox = (float) (pbx);<a name="line.36775"></a>
+<span class="sourceLineNo">36776</span>                                                else<a name="line.36776"></a>
+<span class="sourceLineNo">36777</span>                                                        ox = (ix);<a name="line.36777"></a>
+<span class="sourceLineNo">36778</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36778"></a>
+<span class="sourceLineNo">36779</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.36779"></a>
+<span class="sourceLineNo">36780</span>                                                }<a name="line.36780"></a>
+<span class="sourceLineNo">36781</span>                                        }<a name="line.36781"></a>
+<span class="sourceLineNo">36782</span>                                }<a name="line.36782"></a>
+<span class="sourceLineNo">36783</span>                        } else {<a name="line.36783"></a>
+<span class="sourceLineNo">36784</span>                                if (it.isOutputDouble()) {<a name="line.36784"></a>
+<span class="sourceLineNo">36785</span>                                        while (it.hasNext()) {<a name="line.36785"></a>
+<span class="sourceLineNo">36786</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36786"></a>
+<span class="sourceLineNo">36787</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.36787"></a>
+<span class="sourceLineNo">36788</span>                                                        float ox;<a name="line.36788"></a>
+<span class="sourceLineNo">36789</span>                                                        if (Double.isNaN(ix))<a name="line.36789"></a>
+<span class="sourceLineNo">36790</span>                                                                ox = (float) ((pax+pbx)/2.);<a name="line.36790"></a>
+<span class="sourceLineNo">36791</span>                                                        else if (ix &lt; pax)<a name="line.36791"></a>
+<span class="sourceLineNo">36792</span>                                                                ox = (float) (pax);<a name="line.36792"></a>
+<span class="sourceLineNo">36793</span>                                                        else if (ix &gt; pbx)<a name="line.36793"></a>
+<span class="sourceLineNo">36794</span>                                                                ox = (float) (pbx);<a name="line.36794"></a>
+<span class="sourceLineNo">36795</span>                                                        else<a name="line.36795"></a>
+<span class="sourceLineNo">36796</span>                                                                ox = (float) (ix);<a name="line.36796"></a>
+<span class="sourceLineNo">36797</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.36797"></a>
+<span class="sourceLineNo">36798</span>                                                }<a name="line.36798"></a>
+<span class="sourceLineNo">36799</span>                                        }<a name="line.36799"></a>
+<span class="sourceLineNo">36800</span>                                } else {<a name="line.36800"></a>
+<span class="sourceLineNo">36801</span>                                        while (it.hasNext()) {<a name="line.36801"></a>
+<span class="sourceLineNo">36802</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36802"></a>
+<span class="sourceLineNo">36803</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.36803"></a>
+<span class="sourceLineNo">36804</span>                                                        float ox;<a name="line.36804"></a>
+<span class="sourceLineNo">36805</span>                                                        if (Double.isNaN(ix))<a name="line.36805"></a>
+<span class="sourceLineNo">36806</span>                                                                ox = (float) ((pax+pbx)/2.);<a name="line.36806"></a>
+<span class="sourceLineNo">36807</span>                                                        else if (ix &lt; pax)<a name="line.36807"></a>
+<span class="sourceLineNo">36808</span>                                                                ox = (float) (pax);<a name="line.36808"></a>
+<span class="sourceLineNo">36809</span>                                                        else if (ix &gt; pbx)<a name="line.36809"></a>
+<span class="sourceLineNo">36810</span>                                                                ox = (float) (pbx);<a name="line.36810"></a>
+<span class="sourceLineNo">36811</span>                                                        else<a name="line.36811"></a>
+<span class="sourceLineNo">36812</span>                                                                ox = (ix);<a name="line.36812"></a>
+<span class="sourceLineNo">36813</span>                                                        oaf32data[it.oIndex + j] = ox;<a name="line.36813"></a>
+<span class="sourceLineNo">36814</span>                                                }<a name="line.36814"></a>
+<span class="sourceLineNo">36815</span>                                        }<a name="line.36815"></a>
+<span class="sourceLineNo">36816</span>                                }<a name="line.36816"></a>
+<span class="sourceLineNo">36817</span>                        }<a name="line.36817"></a>
+<span class="sourceLineNo">36818</span>                        break;<a name="line.36818"></a>
+<span class="sourceLineNo">36819</span>                case Dataset.ARRAYFLOAT64:<a name="line.36819"></a>
+<span class="sourceLineNo">36820</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).getData();<a name="line.36820"></a>
+<span class="sourceLineNo">36821</span>                        if (is == 1) {<a name="line.36821"></a>
+<span class="sourceLineNo">36822</span>                                if (it.isOutputDouble()) {<a name="line.36822"></a>
+<span class="sourceLineNo">36823</span>                                        while (it.hasNext()) {<a name="line.36823"></a>
+<span class="sourceLineNo">36824</span>                                                final double ix = it.aDouble;<a name="line.36824"></a>
+<span class="sourceLineNo">36825</span>                                                double ox;<a name="line.36825"></a>
+<span class="sourceLineNo">36826</span>                                                if (Double.isNaN(ix))<a name="line.36826"></a>
+<span class="sourceLineNo">36827</span>                                                        ox = ((pax+pbx)/2.);<a name="line.36827"></a>
+<span class="sourceLineNo">36828</span>                                                else if (ix &lt; pax)<a name="line.36828"></a>
+<span class="sourceLineNo">36829</span>                                                        ox = (pax);<a name="line.36829"></a>
+<span class="sourceLineNo">36830</span>                                                else if (ix &gt; pbx)<a name="line.36830"></a>
+<span class="sourceLineNo">36831</span>                                                        ox = (pbx);<a name="line.36831"></a>
+<span class="sourceLineNo">36832</span>                                                else<a name="line.36832"></a>
+<span class="sourceLineNo">36833</span>                                                        ox = (ix);<a name="line.36833"></a>
+<span class="sourceLineNo">36834</span>                                                oaf64data[it.oIndex] = ox;<a name="line.36834"></a>
+<span class="sourceLineNo">36835</span>                                        }<a name="line.36835"></a>
+<span class="sourceLineNo">36836</span>                                } else {<a name="line.36836"></a>
+<span class="sourceLineNo">36837</span>                                        while (it.hasNext()) {<a name="line.36837"></a>
+<span class="sourceLineNo">36838</span>                                                final long ix = it.aLong;<a name="line.36838"></a>
+<span class="sourceLineNo">36839</span>                                                double ox;<a name="line.36839"></a>
+<span class="sourceLineNo">36840</span>                                                if (Double.isNaN(ix))<a name="line.36840"></a>
+<span class="sourceLineNo">36841</span>                                                        ox = ((pax+pbx)/2.);<a name="line.36841"></a>
+<span class="sourceLineNo">36842</span>                                                else if (ix &lt; pax)<a name="line.36842"></a>
+<span class="sourceLineNo">36843</span>                                                        ox = (pax);<a name="line.36843"></a>
+<span class="sourceLineNo">36844</span>                                                else if (ix &gt; pbx)<a name="line.36844"></a>
+<span class="sourceLineNo">36845</span>                                                        ox = (pbx);<a name="line.36845"></a>
+<span class="sourceLineNo">36846</span>                                                else<a name="line.36846"></a>
+<span class="sourceLineNo">36847</span>                                                        ox = (ix);<a name="line.36847"></a>
+<span class="sourceLineNo">36848</span>                                                oaf64data[it.oIndex] = ox;<a name="line.36848"></a>
+<span class="sourceLineNo">36849</span>                                        }<a name="line.36849"></a>
+<span class="sourceLineNo">36850</span>                                }<a name="line.36850"></a>
+<span class="sourceLineNo">36851</span>                        } else if (as == 1) {<a name="line.36851"></a>
+<span class="sourceLineNo">36852</span>                                if (it.isOutputDouble()) {<a name="line.36852"></a>
+<span class="sourceLineNo">36853</span>                                        while (it.hasNext()) {<a name="line.36853"></a>
+<span class="sourceLineNo">36854</span>                                                final double ix = it.aDouble;<a name="line.36854"></a>
+<span class="sourceLineNo">36855</span>                                                double ox;<a name="line.36855"></a>
+<span class="sourceLineNo">36856</span>                                                if (Double.isNaN(ix))<a name="line.36856"></a>
+<span class="sourceLineNo">36857</span>                                                        ox = ((pax+pbx)/2.);<a name="line.36857"></a>
+<span class="sourceLineNo">36858</span>                                                else if (ix &lt; pax)<a name="line.36858"></a>
+<span class="sourceLineNo">36859</span>                                                        ox = (pax);<a name="line.36859"></a>
+<span class="sourceLineNo">36860</span>                                                else if (ix &gt; pbx)<a name="line.36860"></a>
+<span class="sourceLineNo">36861</span>                                                        ox = (pbx);<a name="line.36861"></a>
+<span class="sourceLineNo">36862</span>                                                else<a name="line.36862"></a>
+<span class="sourceLineNo">36863</span>                                                        ox = (ix);<a name="line.36863"></a>
+<span class="sourceLineNo">36864</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36864"></a>
+<span class="sourceLineNo">36865</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.36865"></a>
+<span class="sourceLineNo">36866</span>                                                }<a name="line.36866"></a>
+<span class="sourceLineNo">36867</span>                                        }<a name="line.36867"></a>
+<span class="sourceLineNo">36868</span>                                } else {<a name="line.36868"></a>
+<span class="sourceLineNo">36869</span>                                        while (it.hasNext()) {<a name="line.36869"></a>
+<span class="sourceLineNo">36870</span>                                                final long ix = it.aLong;<a name="line.36870"></a>
+<span class="sourceLineNo">36871</span>                                                double ox;<a name="line.36871"></a>
+<span class="sourceLineNo">36872</span>                                                if (Double.isNaN(ix))<a name="line.36872"></a>
+<span class="sourceLineNo">36873</span>                                                        ox = ((pax+pbx)/2.);<a name="line.36873"></a>
+<span class="sourceLineNo">36874</span>                                                else if (ix &lt; pax)<a name="line.36874"></a>
+<span class="sourceLineNo">36875</span>                                                        ox = (pax);<a name="line.36875"></a>
+<span class="sourceLineNo">36876</span>                                                else if (ix &gt; pbx)<a name="line.36876"></a>
+<span class="sourceLineNo">36877</span>                                                        ox = (pbx);<a name="line.36877"></a>
+<span class="sourceLineNo">36878</span>                                                else<a name="line.36878"></a>
+<span class="sourceLineNo">36879</span>                                                        ox = (ix);<a name="line.36879"></a>
+<span class="sourceLineNo">36880</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36880"></a>
+<span class="sourceLineNo">36881</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.36881"></a>
+<span class="sourceLineNo">36882</span>                                                }<a name="line.36882"></a>
+<span class="sourceLineNo">36883</span>                                        }<a name="line.36883"></a>
+<span class="sourceLineNo">36884</span>                                }<a name="line.36884"></a>
+<span class="sourceLineNo">36885</span>                        } else {<a name="line.36885"></a>
+<span class="sourceLineNo">36886</span>                                if (it.isOutputDouble()) {<a name="line.36886"></a>
+<span class="sourceLineNo">36887</span>                                        while (it.hasNext()) {<a name="line.36887"></a>
+<span class="sourceLineNo">36888</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36888"></a>
+<span class="sourceLineNo">36889</span>                                                        final double ix = da.getElementDoubleAbs(it.aIndex + j);<a name="line.36889"></a>
+<span class="sourceLineNo">36890</span>                                                        double ox;<a name="line.36890"></a>
+<span class="sourceLineNo">36891</span>                                                        if (Double.isNaN(ix))<a name="line.36891"></a>
+<span class="sourceLineNo">36892</span>                                                                ox = ((pax+pbx)/2.);<a name="line.36892"></a>
+<span class="sourceLineNo">36893</span>                                                        else if (ix &lt; pax)<a name="line.36893"></a>
+<span class="sourceLineNo">36894</span>                                                                ox = (pax);<a name="line.36894"></a>
+<span class="sourceLineNo">36895</span>                                                        else if (ix &gt; pbx)<a name="line.36895"></a>
+<span class="sourceLineNo">36896</span>                                                                ox = (pbx);<a name="line.36896"></a>
+<span class="sourceLineNo">36897</span>                                                        else<a name="line.36897"></a>
+<span class="sourceLineNo">36898</span>                                                                ox = (ix);<a name="line.36898"></a>
+<span class="sourceLineNo">36899</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.36899"></a>
+<span class="sourceLineNo">36900</span>                                                }<a name="line.36900"></a>
+<span class="sourceLineNo">36901</span>                                        }<a name="line.36901"></a>
+<span class="sourceLineNo">36902</span>                                } else {<a name="line.36902"></a>
+<span class="sourceLineNo">36903</span>                                        while (it.hasNext()) {<a name="line.36903"></a>
+<span class="sourceLineNo">36904</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.36904"></a>
+<span class="sourceLineNo">36905</span>                                                        final long ix = da.getElementLongAbs(it.aIndex + j);<a name="line.36905"></a>
+<span class="sourceLineNo">36906</span>                                                        double ox;<a name="line.36906"></a>
+<span class="sourceLineNo">36907</span>                                                        if (Double.isNaN(ix))<a name="line.36907"></a>
+<span class="sourceLineNo">36908</span>                                                                ox = ((pax+pbx)/2.);<a name="line.36908"></a>
+<span class="sourceLineNo">36909</span>                                                        else if (ix &lt; pax)<a name="line.36909"></a>
+<span class="sourceLineNo">36910</span>                                                                ox = (pax);<a name="line.36910"></a>
+<span class="sourceLineNo">36911</span>                                                        else if (ix &gt; pbx)<a name="line.36911"></a>
+<span class="sourceLineNo">36912</span>                                                                ox = (pbx);<a name="line.36912"></a>
+<span class="sourceLineNo">36913</span>                                                        else<a name="line.36913"></a>
+<span class="sourceLineNo">36914</span>                                                                ox = (ix);<a name="line.36914"></a>
+<span class="sourceLineNo">36915</span>                                                        oaf64data[it.oIndex + j] = ox;<a name="line.36915"></a>
+<span class="sourceLineNo">36916</span>                                                }<a name="line.36916"></a>
+<span class="sourceLineNo">36917</span>                                        }<a name="line.36917"></a>
+<span class="sourceLineNo">36918</span>                                }<a name="line.36918"></a>
+<span class="sourceLineNo">36919</span>                        }<a name="line.36919"></a>
+<span class="sourceLineNo">36920</span>                        break;<a name="line.36920"></a>
+<span class="sourceLineNo">36921</span>                default:<a name="line.36921"></a>
+<span class="sourceLineNo">36922</span>                        throw new IllegalArgumentException("clip supports integer, compound integer, real, compound real datasets only");<a name="line.36922"></a>
+<span class="sourceLineNo">36923</span>                }<a name="line.36923"></a>
+<span class="sourceLineNo">36924</span><a name="line.36924"></a>
+<span class="sourceLineNo">36925</span>                addFunctionName(result, "clip");<a name="line.36925"></a>
+<span class="sourceLineNo">36926</span>                return result;<a name="line.36926"></a>
+<span class="sourceLineNo">36927</span>        }<a name="line.36927"></a>
+<span class="sourceLineNo">36928</span><a name="line.36928"></a>
+<span class="sourceLineNo">36929</span>// End of generated code<a name="line.36929"></a>
+<span class="sourceLineNo">36930</span><a name="line.36930"></a>
+<span class="sourceLineNo">36931</span>}<a name="line.36931"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/NullIterator.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/NullIterator.html
new file mode 100644
index 0000000..0724ced
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/dataset/ObjectDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ObjectDataset.html
new file mode 100644
index 0000000..825fe1e
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ObjectDataset.html
@@ -0,0 +1,409 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.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>                if (obj == null) { // special case<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                        ObjectDataset ds = new ObjectDataset(new Object[] {null});<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        ds.setShape();<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        return ds;<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>                ObjectDatasetBase result = ObjectDatasetBase.createFromObject(obj);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                ObjectDataset ds = new ObjectDataset(result.data, result.shape);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                if (result.shape.length == 0) {<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                        ds.setShape(result.shape); // special case of single item<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                }<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                return ds;<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 shape<a name="line.110"></a>
+<span class="sourceLineNo">111</span>         * @return a dataset filled with ones<a name="line.111"></a>
+<span class="sourceLineNo">112</span>         */<a name="line.112"></a>
+<span class="sourceLineNo">113</span>        static ObjectDataset ones(final int... shape) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 boolean getElementBooleanAbs(int index) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 double getElementDoubleAbs(int index) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 long getElementLongAbs(int index) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 double getDouble() {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 double getDouble(int i) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                throw new UnsupportedOperationException("Unsupported method for class");<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>        @Override<a name="line.142"></a>
+<span class="sourceLineNo">143</span>        public double getDouble(int i, int j) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 double getDouble(int... pos) {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.149"></a>
+<span class="sourceLineNo">150</span>        }<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>        @Override<a name="line.152"></a>
+<span class="sourceLineNo">153</span>        public float getFloat() {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>        @Override<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        public float getFloat(int i) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.159"></a>
+<span class="sourceLineNo">160</span>        }<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>        @Override<a name="line.162"></a>
+<span class="sourceLineNo">163</span>        public float getFloat(int i, int j) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 float getFloat(int... pos) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 long getLong() {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 long getLong(int i) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 long getLong(int i, int j) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 long getLong(int... pos) {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>        @Override<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        public int getInt() {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        }<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>        @Override<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        public int getInt(int i) {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.199"></a>
+<span class="sourceLineNo">200</span>        }<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>        @Override<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        public int getInt(int i, int j) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        }<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>        @Override<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        public int getInt(int... pos) {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 short getShort() {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 short getShort(int i) {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 short getShort(int i, int j) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                throw new UnsupportedOperationException("Unsupported method for 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>        @Override<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        public short getShort(int... pos) {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                throw new UnsupportedOperationException("Unsupported method for class");<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>        @Override<a name="line.232"></a>
+<span class="sourceLineNo">233</span>        public byte getByte() {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                throw new UnsupportedOperationException("Unsupported method for class");<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>        @Override<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        public byte getByte(int i) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        }<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>        @Override<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        public byte getByte(int i, int j) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                throw new UnsupportedOperationException("Unsupported method for class");<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>        @Override<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        public byte getByte(int... pos) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                throw new UnsupportedOperationException("Unsupported method for class");<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>        @Override<a name="line.252"></a>
+<span class="sourceLineNo">253</span>        public boolean getBoolean() {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        }<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>        @Override<a name="line.257"></a>
+<span class="sourceLineNo">258</span>        public boolean getBoolean(int i) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 boolean getBoolean(int i, int j) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 getBoolean(int... pos) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 String getStringAbs(final int index) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                return stringFormat instanceof MessageFormat ? stringFormat.format(data[index]) :<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                                String.format("%s", data[index]);<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>        public int[] minPos(boolean... ignoreInvalids) {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                throw new UnsupportedOperationException("Unsupported method for class");<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>        @Override<a name="line.283"></a>
+<span class="sourceLineNo">284</span>        public int[] maxPos(boolean... ignoreInvalids) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 boolean containsInfs() {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                return false;<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>        @Override<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        public boolean containsNans() {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                return false;<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>        @Override<a name="line.298"></a>
+<span class="sourceLineNo">299</span>        public ObjectDataset iadd(Object o) {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                throw new UnsupportedOperationException("Unsupported method for class");<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>        @Override<a name="line.303"></a>
+<span class="sourceLineNo">304</span>        public ObjectDataset isubtract(Object o) {<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                throw new UnsupportedOperationException("Unsupported method for class");<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>        @Override<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        public ObjectDataset imultiply(Object o) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                throw new UnsupportedOperationException("Unsupported method for class");<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>        @Override<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        public ObjectDataset idivide(Object o) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.315"></a>
+<span class="sourceLineNo">316</span>        }<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span>        @Override<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        public ObjectDataset iremainder(Object o) {<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 ObjectDataset ifloor() {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                throw new UnsupportedOperationException("Unsupported method for class");<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>        @Override<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        public ObjectDataset ipower(Object o) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                throw new UnsupportedOperationException("Unsupported method for class");<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>        @Override<a name="line.333"></a>
+<span class="sourceLineNo">334</span>        public double residual(Object o) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                throw new UnsupportedOperationException("Unsupported method for class");<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ObjectDatasetBase.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ObjectDatasetBase.html
new file mode 100644
index 0000000..c5708eb
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ObjectDatasetBase.html
@@ -0,0 +1,1056 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// This is generated from DoubleDataset.java by fromdouble.py<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.ArrayList;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.Arrays;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.List;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.Set;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.TreeSet;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.eclipse.january.metadata.StatisticsMetadata;<a name="line.23"></a>
+<span class="sourceLineNo">024</span><a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>/**<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * Extend dataset for Object values // PRIM_TYPE<a name="line.27"></a>
+<span class="sourceLineNo">028</span> */<a name="line.28"></a>
+<span class="sourceLineNo">029</span>public class ObjectDatasetBase extends AbstractDataset {<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        // pin UID to base class<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>        protected Object[] data; // subclass alias // PRIM_TYPE<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>        @Override<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        protected void setData() {<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                data = (Object[]) odata; // PRIM_TYPE<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        protected static Object[] createArray(final int size) { // PRIM_TYPE<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                Object[] array = null; // PRIM_TYPE<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>                try {<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                        array = new Object[size]; // PRIM_TYPE<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                } catch (OutOfMemoryError e) {<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                }<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                return array;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        }<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        @Override<a name="line.54"></a>
+<span class="sourceLineNo">055</span>        public int getDType() {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                return OBJECT; // DATA_TYPE<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        }<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>        /**<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * Create a null dataset<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        ObjectDatasetBase() {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        }<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>        /**<a name="line.65"></a>
+<span class="sourceLineNo">066</span>         * Create a zero-filled dataset of given shape<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * @param shape<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         */<a name="line.68"></a>
+<span class="sourceLineNo">069</span>        ObjectDatasetBase(final int... shape) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                if (shape != null) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                        size = ShapeUtils.calcSize(shape);<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        this.shape = shape.clone();<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        try {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                                odata = data = createArray(size);<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        } catch (Throwable t) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                throw new IllegalArgumentException(t);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        }<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                }<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        }<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>        /**<a name="line.83"></a>
+<span class="sourceLineNo">084</span>         * Create a dataset using given data<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         * @param data<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @param shape<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         *            (can be null to create 1D dataset)<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         */<a name="line.88"></a>
+<span class="sourceLineNo">089</span>        ObjectDatasetBase(final Object[] data, int... shape) { // PRIM_TYPE<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                if (data == null) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                        throw new IllegalArgumentException("Data must not be null");<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                }<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                if (shape == null || shape.length == 0) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        shape = new int[] { data.length };<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                }<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                size = ShapeUtils.calcSize(shape);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                if (size != data.length) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                        Arrays.toString(shape), data.length));<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                this.shape = size == 0 ? null : shape.clone();<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>                odata = this.data = data;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>        /**<a name="line.106"></a>
+<span class="sourceLineNo">107</span>         * Copy a dataset<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * @param dataset<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         */<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        ObjectDatasetBase(final ObjectDatasetBase dataset) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                copyToView(dataset, this, true, true);<a name="line.111"></a>
+<span class="sourceLineNo">112</span><a name="line.112"></a>
+<span class="sourceLineNo">113</span>                try {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                        if (dataset.stride == null) {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                                if (dataset.data != null) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                        odata = data = dataset.data.clone();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                                }<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                        } else {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                                offset = 0;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                stride = null;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                base = null;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                odata = data = createArray(size);<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>                                IndexIterator iter = dataset.getIterator();<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                for (int i = 0; iter.hasNext(); i++) {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                                        data[i] = dataset.data[iter.index];<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                                }<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                } catch (Throwable t) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        throw new IllegalArgumentException(t);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                }<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        }<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>        /**<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         * Copy and cast a dataset to this class type<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         * @param dataset<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         */<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        ObjectDatasetBase(final Dataset dataset) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                copyToView(dataset, this, true, false);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                offset = 0;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                stride = null;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                base = null;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                try {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        odata = data = createArray(size);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                } catch (Throwable t) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                        throw new IllegalArgumentException(t);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                }<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                IndexIterator iter = dataset.getIterator();<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                for (int i = 0; iter.hasNext(); i++) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        data[i] = dataset.getObjectAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                }<a name="line.153"></a>
+<span class="sourceLineNo">154</span>        }<a name="line.154"></a>
+<span class="sourceLineNo">155</span><a name="line.155"></a>
+<span class="sourceLineNo">156</span>        @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        public boolean equals(Object obj) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                if (this == obj) {<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>                if (obj == null) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                        return false;<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>                if (!getClass().equals(obj.getClass())) {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                        if (getRank() == 0) { // for zero-rank datasets<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                                return obj.equals(getObjectAbs(offset));<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                        }<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                        return false;<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>                ObjectDatasetBase other = (ObjectDatasetBase) obj;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                if (size != other.size) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                        return false;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                }<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                if (!Arrays.equals(shape, other.shape)) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        return false;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                }<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                if (data == other.data &amp;&amp; stride == null &amp;&amp; other.stride == null) {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                        return true;<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>                IndexIterator iter = getIterator();<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                IndexIterator oiter = other.getIterator();<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                        if (!data[iter.index].equals(other.data[oiter.index])) { // OBJECT_UNEQUAL<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                                return false;<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>                return true;<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 int hashCode() {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                return super.hashCode();<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 ObjectDatasetBase clone() {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                return new ObjectDatasetBase(this);<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 dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.205"></a>
+<span class="sourceLineNo">206</span>         * sequences or arrays are padded with zeros.<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         *<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * @param obj<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * @return dataset with contents given by input<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         */<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        static ObjectDatasetBase createFromObject(final Object obj) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                ObjectDatasetBase result = new ObjectDatasetBase();<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>                if (obj != null) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                        result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                        result.size = ShapeUtils.calcSize(result.shape);<a name="line.216"></a>
+<span class="sourceLineNo">217</span><a name="line.217"></a>
+<span class="sourceLineNo">218</span>                        try {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                                result.odata = result.data = createArray(result.size);<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                        } catch (Throwable t) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(result.shape), t);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                                throw new IllegalArgumentException(t);<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>                        int[] pos = new int[result.shape.length];<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                        result.fillData(obj, 0, pos);<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>                return result;<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>         * @param shape<a name="line.233"></a>
+<span class="sourceLineNo">234</span>         * @return a dataset filled with ones<a name="line.234"></a>
+<span class="sourceLineNo">235</span>         */<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        static ObjectDatasetBase ones(final int... shape) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                return new ObjectDatasetBase(shape).fill(1);<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 ObjectDatasetBase fill(final Object obj) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                setDirty();<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                Object dv = obj; // PRIM_TYPE // FROM_OBJECT<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                IndexIterator iter = getIterator();<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                while (iter.hasNext()) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        data[iter.index] = dv;<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 this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.253"></a>
+<span class="sourceLineNo">254</span>         * @return data buffer as linear array<a name="line.254"></a>
+<span class="sourceLineNo">255</span>         */<a name="line.255"></a>
+<span class="sourceLineNo">256</span>        public Object[] getData() { // PRIM_TYPE<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                return data;<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>        protected int getBufferLength() {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                if (data == null)<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        return 0;<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                return data.length;<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 ObjectDatasetBase getView(boolean deepCopyMetadata) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                ObjectDatasetBase view = new ObjectDatasetBase();<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                view.setData();<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                return view;<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>         * 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.276"></a>
+<span class="sourceLineNo">277</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.277"></a>
+<span class="sourceLineNo">278</span>         *<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         * @param index<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         *            absolute index<a name="line.280"></a>
+<span class="sourceLineNo">281</span>         * @return value<a name="line.281"></a>
+<span class="sourceLineNo">282</span>         */<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        public Object getAbs(final int index) { // PRIM_TYPE<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                return data[index];<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 boolean getElementBooleanAbs(final int index) {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                return false;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>        }<a name="line.290"></a>
+<span class="sourceLineNo">291</span><a name="line.291"></a>
+<span class="sourceLineNo">292</span>        @Override<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        public double getElementDoubleAbs(final int index) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                return 0;<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 long getElementLongAbs(final int index) {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                return 0;<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 Object getObjectAbs(final int index) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                return data[index];<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 String getStringAbs(final int index) {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                return stringFormat == null ? String.format("%s", data[index]) : // FORMAT_STRING<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                        stringFormat.format(data[index]);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        }<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>        /**<a name="line.313"></a>
+<span class="sourceLineNo">314</span>         * Set a value at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.314"></a>
+<span class="sourceLineNo">315</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.315"></a>
+<span class="sourceLineNo">316</span>         *<a name="line.316"></a>
+<span class="sourceLineNo">317</span>         * @param index<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         *            absolute index<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * @param val<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         *            new value<a name="line.320"></a>
+<span class="sourceLineNo">321</span>         */<a name="line.321"></a>
+<span class="sourceLineNo">322</span>        public void setAbs(final int index, final Object val) { // PRIM_TYPE<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                setDirty();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                data[index] = val;<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>        @Override<a name="line.327"></a>
+<span class="sourceLineNo">328</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                setDirty();<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                Object[] dsrc = (Object[]) src; // PRIM_TYPE<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                data[dindex] = dsrc[sindex];<a name="line.331"></a>
+<span class="sourceLineNo">332</span>        }<a name="line.332"></a>
+<span class="sourceLineNo">333</span><a name="line.333"></a>
+<span class="sourceLineNo">334</span>        @Override<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        public void setObjectAbs(final int index, final Object obj) {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                if (index &lt; 0 || index &gt; data.length) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                        throw new IndexOutOfBoundsException("Index given is outside dataset");<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>                setAbs(index, obj); // FROM_OBJECT<a name="line.340"></a>
+<span class="sourceLineNo">341</span>        }<a name="line.341"></a>
+<span class="sourceLineNo">342</span><a name="line.342"></a>
+<span class="sourceLineNo">343</span>        /**<a name="line.343"></a>
+<span class="sourceLineNo">344</span>         * @return item in first position<a name="line.344"></a>
+<span class="sourceLineNo">345</span>         * @since 2.0<a name="line.345"></a>
+<span class="sourceLineNo">346</span>         */<a name="line.346"></a>
+<span class="sourceLineNo">347</span>        public Object get() { // PRIM_TYPE<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                return data[getFirst1DIndex()];<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>         * @param i<a name="line.352"></a>
+<span class="sourceLineNo">353</span>         * @return item in given position<a name="line.353"></a>
+<span class="sourceLineNo">354</span>         */<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        public Object get(final int i) { // PRIM_TYPE<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                return data[get1DIndex(i)];<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        }<a name="line.357"></a>
+<span class="sourceLineNo">358</span><a name="line.358"></a>
+<span class="sourceLineNo">359</span>        /**<a name="line.359"></a>
+<span class="sourceLineNo">360</span>         * @param i<a name="line.360"></a>
+<span class="sourceLineNo">361</span>         * @param j<a name="line.361"></a>
+<span class="sourceLineNo">362</span>         * @return item in given position<a name="line.362"></a>
+<span class="sourceLineNo">363</span>         */<a name="line.363"></a>
+<span class="sourceLineNo">364</span>        public Object get(final int i, final int j) { // PRIM_TYPE<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                return data[get1DIndex(i, j)];<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 pos<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 Object get(final int... pos) { // PRIM_TYPE<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                return data[get1DIndex(pos)];<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 Object getObject() {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                return get(); // CLASS_TYPE<a name="line.378"></a>
+<span class="sourceLineNo">379</span>        }<a name="line.379"></a>
+<span class="sourceLineNo">380</span><a name="line.380"></a>
+<span class="sourceLineNo">381</span>        @Override<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        public Object getObject(final int i) {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                return get(i); // CLASS_TYPE<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        }<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span>        @Override<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        public Object getObject(final int i, final int j) {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                return get(i, j); // CLASS_TYPE<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>        @Override<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        public Object getObject(final int... pos) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                return get(pos); // CLASS_TYPE<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>        @Override<a name="line.396"></a>
+<span class="sourceLineNo">397</span>        public String getString() {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                return getStringAbs(getFirst1DIndex());<a name="line.398"></a>
+<span class="sourceLineNo">399</span>        }<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span>        @Override<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        public String getString(final int i) {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                return getStringAbs(get1DIndex(i));<a name="line.403"></a>
+<span class="sourceLineNo">404</span>        }<a name="line.404"></a>
+<span class="sourceLineNo">405</span><a name="line.405"></a>
+<span class="sourceLineNo">406</span>        @Override<a name="line.406"></a>
+<span class="sourceLineNo">407</span>        public String getString(final int i, final int j) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                return getStringAbs(get1DIndex(i, j));<a name="line.408"></a>
+<span class="sourceLineNo">409</span>        }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>        @Override<a name="line.411"></a>
+<span class="sourceLineNo">412</span>        public String getString(final int... pos) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                return getStringAbs(get1DIndex(pos));<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 getDouble() {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                return 0;<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 double getDouble(final int i) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                return 0;<a name="line.423"></a>
+<span class="sourceLineNo">424</span>        }<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>        @Override<a name="line.426"></a>
+<span class="sourceLineNo">427</span>        public double getDouble(final int i, final int j) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                return 0;<a name="line.428"></a>
+<span class="sourceLineNo">429</span>        }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>        @Override<a name="line.431"></a>
+<span class="sourceLineNo">432</span>        public double getDouble(final int... pos) {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                return 0;<a name="line.433"></a>
+<span class="sourceLineNo">434</span>        }<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span>        @Override<a name="line.436"></a>
+<span class="sourceLineNo">437</span>        public float getFloat() {<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                return 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>        @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>        public float getFloat(final int i) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                return 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 float getFloat(final int i, final int j) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                return 0;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>        }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>        @Override<a name="line.451"></a>
+<span class="sourceLineNo">452</span>        public float getFloat(final int... pos) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                return 0;<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 long getLong() {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                return 0;<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 long getLong(final int i) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                return 0;<a name="line.463"></a>
+<span class="sourceLineNo">464</span>        }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>        @Override<a name="line.466"></a>
+<span class="sourceLineNo">467</span>        public long getLong(final int i, final int j) {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                return 0;<a name="line.468"></a>
+<span class="sourceLineNo">469</span>        }<a name="line.469"></a>
+<span class="sourceLineNo">470</span><a name="line.470"></a>
+<span class="sourceLineNo">471</span>        @Override<a name="line.471"></a>
+<span class="sourceLineNo">472</span>        public long getLong(final int... pos) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                return 0;<a name="line.473"></a>
+<span class="sourceLineNo">474</span>        }<a name="line.474"></a>
+<span class="sourceLineNo">475</span><a name="line.475"></a>
+<span class="sourceLineNo">476</span>        @Override<a name="line.476"></a>
+<span class="sourceLineNo">477</span>        public int getInt() {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                return 0;<a name="line.478"></a>
+<span class="sourceLineNo">479</span>        }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span>        @Override<a name="line.481"></a>
+<span class="sourceLineNo">482</span>        public int getInt(final int i) {<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                return 0;<a name="line.483"></a>
+<span class="sourceLineNo">484</span>        }<a name="line.484"></a>
+<span class="sourceLineNo">485</span><a name="line.485"></a>
+<span class="sourceLineNo">486</span>        @Override<a name="line.486"></a>
+<span class="sourceLineNo">487</span>        public int getInt(final int i, final int j) {<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                return 0;<a name="line.488"></a>
+<span class="sourceLineNo">489</span>        }<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span>        @Override<a name="line.491"></a>
+<span class="sourceLineNo">492</span>        public int getInt(final int... pos) {<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                return 0;<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 short getShort() {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                return 0;<a name="line.498"></a>
+<span class="sourceLineNo">499</span>        }<a name="line.499"></a>
+<span class="sourceLineNo">500</span><a name="line.500"></a>
+<span class="sourceLineNo">501</span>        @Override<a name="line.501"></a>
+<span class="sourceLineNo">502</span>        public short getShort(final int i) {<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                return 0;<a name="line.503"></a>
+<span class="sourceLineNo">504</span>        }<a name="line.504"></a>
+<span class="sourceLineNo">505</span><a name="line.505"></a>
+<span class="sourceLineNo">506</span>        @Override<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        public short getShort(final int i, final int j) {<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                return 0;<a name="line.508"></a>
+<span class="sourceLineNo">509</span>        }<a name="line.509"></a>
+<span class="sourceLineNo">510</span><a name="line.510"></a>
+<span class="sourceLineNo">511</span>        @Override<a name="line.511"></a>
+<span class="sourceLineNo">512</span>        public short getShort(final int... pos) {<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                return 0;<a name="line.513"></a>
+<span class="sourceLineNo">514</span>        }<a name="line.514"></a>
+<span class="sourceLineNo">515</span><a name="line.515"></a>
+<span class="sourceLineNo">516</span>        @Override<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        public byte getByte() {<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                return 0;<a name="line.518"></a>
+<span class="sourceLineNo">519</span>        }<a name="line.519"></a>
+<span class="sourceLineNo">520</span><a name="line.520"></a>
+<span class="sourceLineNo">521</span>        @Override<a name="line.521"></a>
+<span class="sourceLineNo">522</span>        public byte getByte(final int i) {<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                return 0;<a name="line.523"></a>
+<span class="sourceLineNo">524</span>        }<a name="line.524"></a>
+<span class="sourceLineNo">525</span><a name="line.525"></a>
+<span class="sourceLineNo">526</span>        @Override<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        public byte getByte(final int i, final int j) {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                return 0;<a name="line.528"></a>
+<span class="sourceLineNo">529</span>        }<a name="line.529"></a>
+<span class="sourceLineNo">530</span><a name="line.530"></a>
+<span class="sourceLineNo">531</span>        @Override<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        public byte getByte(final int... pos) {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                return 0;<a name="line.533"></a>
+<span class="sourceLineNo">534</span>        }<a name="line.534"></a>
+<span class="sourceLineNo">535</span><a name="line.535"></a>
+<span class="sourceLineNo">536</span>        @Override<a name="line.536"></a>
+<span class="sourceLineNo">537</span>        public boolean getBoolean() {<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                return false;<a name="line.538"></a>
+<span class="sourceLineNo">539</span>        }<a name="line.539"></a>
+<span class="sourceLineNo">540</span><a name="line.540"></a>
+<span class="sourceLineNo">541</span>        @Override<a name="line.541"></a>
+<span class="sourceLineNo">542</span>        public boolean getBoolean(final int i) {<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                return false;<a name="line.543"></a>
+<span class="sourceLineNo">544</span>        }<a name="line.544"></a>
+<span class="sourceLineNo">545</span><a name="line.545"></a>
+<span class="sourceLineNo">546</span>        @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        public boolean getBoolean(final int i, final int j) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                return false;<a name="line.548"></a>
+<span class="sourceLineNo">549</span>        }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>        @Override<a name="line.551"></a>
+<span class="sourceLineNo">552</span>        public boolean getBoolean(final int... pos) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                return false;<a name="line.553"></a>
+<span class="sourceLineNo">554</span>        }<a name="line.554"></a>
+<span class="sourceLineNo">555</span><a name="line.555"></a>
+<span class="sourceLineNo">556</span>        /**<a name="line.556"></a>
+<span class="sourceLineNo">557</span>         * Sets the value at first point to the passed value. The dataset must not be null<a name="line.557"></a>
+<span class="sourceLineNo">558</span>         *<a name="line.558"></a>
+<span class="sourceLineNo">559</span>         * @param value<a name="line.559"></a>
+<span class="sourceLineNo">560</span>         * @since 2.0<a name="line.560"></a>
+<span class="sourceLineNo">561</span>         */<a name="line.561"></a>
+<span class="sourceLineNo">562</span>        public void setItem(final Object value) { // PRIM_TYPE<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                setAbs(getFirst1DIndex(), value);<a name="line.563"></a>
+<span class="sourceLineNo">564</span>        }<a name="line.564"></a>
+<span class="sourceLineNo">565</span><a name="line.565"></a>
+<span class="sourceLineNo">566</span>        /**<a name="line.566"></a>
+<span class="sourceLineNo">567</span>         * Sets the value at a particular point to the passed value. The dataset must be 1D<a name="line.567"></a>
+<span class="sourceLineNo">568</span>         *<a name="line.568"></a>
+<span class="sourceLineNo">569</span>         * @param value<a name="line.569"></a>
+<span class="sourceLineNo">570</span>         * @param i<a name="line.570"></a>
+<span class="sourceLineNo">571</span>         */<a name="line.571"></a>
+<span class="sourceLineNo">572</span>        public void setItem(final Object value, final int i) { // PRIM_TYPE<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                setAbs(get1DIndex(i), value);<a name="line.573"></a>
+<span class="sourceLineNo">574</span>        }<a name="line.574"></a>
+<span class="sourceLineNo">575</span><a name="line.575"></a>
+<span class="sourceLineNo">576</span>        /**<a name="line.576"></a>
+<span class="sourceLineNo">577</span>         * Sets the value at a particular point to the passed value. The dataset must be 2D<a name="line.577"></a>
+<span class="sourceLineNo">578</span>         *<a name="line.578"></a>
+<span class="sourceLineNo">579</span>         * @param value<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * @param i<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         * @param j<a name="line.581"></a>
+<span class="sourceLineNo">582</span>         */<a name="line.582"></a>
+<span class="sourceLineNo">583</span>        public void setItem(final Object value, final int i, final int j) { // PRIM_TYPE<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                setAbs(get1DIndex(i, j), value);<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>         * Sets the value at a particular point to the passed value<a name="line.588"></a>
+<span class="sourceLineNo">589</span>         *<a name="line.589"></a>
+<span class="sourceLineNo">590</span>         * @param value<a name="line.590"></a>
+<span class="sourceLineNo">591</span>         * @param pos<a name="line.591"></a>
+<span class="sourceLineNo">592</span>         */<a name="line.592"></a>
+<span class="sourceLineNo">593</span>        public void setItem(final Object value, final int... pos) { // PRIM_TYPE<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                setAbs(get1DIndex(pos), value);<a name="line.594"></a>
+<span class="sourceLineNo">595</span>        }<a name="line.595"></a>
+<span class="sourceLineNo">596</span><a name="line.596"></a>
+<span class="sourceLineNo">597</span>        @Override<a name="line.597"></a>
+<span class="sourceLineNo">598</span>        public void set(final Object obj) {<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                setItem(obj); // FROM_OBJECT<a name="line.599"></a>
+<span class="sourceLineNo">600</span>        }<a name="line.600"></a>
+<span class="sourceLineNo">601</span><a name="line.601"></a>
+<span class="sourceLineNo">602</span>        @Override<a name="line.602"></a>
+<span class="sourceLineNo">603</span>        public void set(final Object obj, final int i) {<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                setItem(obj, i); // FROM_OBJECT<a name="line.604"></a>
+<span class="sourceLineNo">605</span>        }<a name="line.605"></a>
+<span class="sourceLineNo">606</span><a name="line.606"></a>
+<span class="sourceLineNo">607</span>        @Override<a name="line.607"></a>
+<span class="sourceLineNo">608</span>        public void set(final Object obj, final int i, final int j) {<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                setItem(obj, i, j); // FROM_OBJECT<a name="line.609"></a>
+<span class="sourceLineNo">610</span>        }<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>        @Override<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        public void set(final Object obj, int... pos) {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        pos = new int[shape.length];<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>                setItem(obj, pos); // FROM_OBJECT<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>        @Override<a name="line.621"></a>
+<span class="sourceLineNo">622</span>        public void resize(int... newShape) {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                setDirty();<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                final IndexIterator iter = getIterator();<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                final int nsize = ShapeUtils.calcSize(newShape);<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                final Object[] ndata; // PRIM_TYPE<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                try {<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                        ndata = createArray(nsize);<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                } catch (Throwable t) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                        throw new IllegalArgumentException(t);<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                }<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                for (int i = 0; iter.hasNext() &amp;&amp; i &lt; nsize; i++) {<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                        ndata[i] = data[iter.index];<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                }<a name="line.635"></a>
+<span class="sourceLineNo">636</span><a name="line.636"></a>
+<span class="sourceLineNo">637</span>                odata = data = ndata;<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                size = nsize;<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                shape = newShape;<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                stride = null;<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                offset = 0;<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                base = null;<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 ObjectDatasetBase sort(Integer axis) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                setDirty();<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                if (axis == null) {<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                        if (stride == null) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                                Arrays.sort(data);<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                        } else {<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                                ObjectDatasetBase ads = clone().sort(null);<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                                setSlicedView(getView(false), ads);<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                        }<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                } else {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                        axis = checkAxis(axis);<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                        <a name="line.657"></a>
+<span class="sourceLineNo">658</span>                        ObjectDatasetBase ads = new ObjectDatasetBase(shape[axis]);<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                        PositionIterator pi = getPositionIterator(axis);<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        int[] pos = pi.getPos();<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                        boolean[] hit = pi.getOmit();<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                        while (pi.hasNext()) {<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                                copyItemsFromAxes(pos, hit, ads);<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                                Arrays.sort(ads.data);<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                                setItemsOnAxes(pos, hit, ads.data);<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>                return this;<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                // throw new UnsupportedOperationException("Cannot sort dataset"); // BOOLEAN_USE<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 getUniqueItems() {<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                Set&lt;Object&gt; set = new TreeSet&lt;Object&gt;(); // CLASS_TYPE<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                IndexIterator it = getIterator();<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                while (it.hasNext()) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                        set.add(data[it.index]);<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>                ObjectDataset u = new ObjectDataset(set.size()); // CLASS_TYPE<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                int i = 0;<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                Object[] udata = u.getData(); // PRIM_TYPE<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                for (Object v : set) { // CLASS_TYPE<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                        udata[i++] = v;<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                }<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                return u;<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>        @Override<a name="line.689"></a>
+<span class="sourceLineNo">690</span>        public ObjectDatasetBase getSlice(final SliceIterator siter) {<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                ObjectDatasetBase result = new ObjectDatasetBase(siter.getShape());<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                Object[] rdata = result.data; // PRIM_TYPE<a name="line.692"></a>
+<span class="sourceLineNo">693</span><a name="line.693"></a>
+<span class="sourceLineNo">694</span>                for (int i = 0; siter.hasNext(); i++)<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                        rdata[i] = data[siter.index];<a name="line.695"></a>
+<span class="sourceLineNo">696</span><a name="line.696"></a>
+<span class="sourceLineNo">697</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                return result;<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>        @Override<a name="line.701"></a>
+<span class="sourceLineNo">702</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                IndexIterator riter = result.getIterator();<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                result.setDirty();<a name="line.704"></a>
+<span class="sourceLineNo">705</span><a name="line.705"></a>
+<span class="sourceLineNo">706</span>                Object[] rdata = ((ObjectDatasetBase) result).data; // PRIM_TYPE<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                        rdata[riter.index] = data[iter.index];<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                }<a name="line.710"></a>
+<span class="sourceLineNo">711</span>        }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>        @Override<a name="line.713"></a>
+<span class="sourceLineNo">714</span>        public ObjectDatasetBase setByBoolean(final Object obj, Dataset selection) {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                setDirty();<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                if (obj instanceof Dataset) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                        final Dataset ds = (Dataset) obj;<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                        if (length != ds.getSize()) {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                                throw new IllegalArgumentException(<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.725"></a>
+<span class="sourceLineNo">726</span><a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        while (biter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                                data[biter.index] = ds.getObjectAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                        }<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                } else {<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                        final Object dv = obj; // PRIM_TYPE // FROM_OBJECT<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.732"></a>
+<span class="sourceLineNo">733</span><a name="line.733"></a>
+<span class="sourceLineNo">734</span>                        while (biter.hasNext()) {<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                                data[biter.index] = dv;<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                        }<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                }<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                return this;<a name="line.738"></a>
+<span class="sourceLineNo">739</span>        }<a name="line.739"></a>
+<span class="sourceLineNo">740</span><a name="line.740"></a>
+<span class="sourceLineNo">741</span>        @Override<a name="line.741"></a>
+<span class="sourceLineNo">742</span>        public ObjectDatasetBase setBy1DIndex(final Object obj, final Dataset index) {<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                setDirty();<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                if (obj instanceof Dataset) {<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                        final Dataset ds = (Dataset) obj;<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        if (index.getSize() != ds.getSize()) {<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                                throw new IllegalArgumentException(<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                                                "Number of items in index dataset does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                        final IntegerIterator iter = new IntegerIterator(index, size);<a name="line.752"></a>
+<span class="sourceLineNo">753</span><a name="line.753"></a>
+<span class="sourceLineNo">754</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                                data[iter.index] = ds.getObjectAbs(oiter.index); // GET_ELEMENT_WITH_CAST<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>                        final Object dv = obj; // PRIM_TYPE // FROM_OBJECT<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                        IntegerIterator iter = new IntegerIterator(index, size);<a name="line.759"></a>
+<span class="sourceLineNo">760</span><a name="line.760"></a>
+<span class="sourceLineNo">761</span>                        while (iter.hasNext()) {<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                                data[iter.index] = dv;<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>                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 ObjectDatasetBase setByIndexes(final Object obj, final Object... indexes) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                setDirty();<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                final int[] pos = iter.getPos();<a name="line.772"></a>
+<span class="sourceLineNo">773</span><a name="line.773"></a>
+<span class="sourceLineNo">774</span>                if (obj instanceof Dataset) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        final Dataset ds = (Dataset) obj;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                                throw new IllegalArgumentException(<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                                                "Number of items in index datasets does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                                setItem(ds.getObjectAbs(oiter.index), pos); // GET_ELEMENT_WITH_CAST<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        }<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                } else {<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                        final Object dv = obj; // PRIM_TYPE // FROM_OBJECT<a name="line.787"></a>
+<span class="sourceLineNo">788</span><a name="line.788"></a>
+<span class="sourceLineNo">789</span>                        while (iter.hasNext()) {<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                setItem(dv, pos);<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>                return this;<a name="line.793"></a>
+<span class="sourceLineNo">794</span>        }<a name="line.794"></a>
+<span class="sourceLineNo">795</span><a name="line.795"></a>
+<span class="sourceLineNo">796</span>        @Override<a name="line.796"></a>
+<span class="sourceLineNo">797</span>        ObjectDatasetBase setSlicedView(Dataset view, Dataset d) {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                setDirty();<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.799"></a>
+<span class="sourceLineNo">800</span><a name="line.800"></a>
+<span class="sourceLineNo">801</span>                while (it.hasNext()) {<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        data[it.aIndex] = d.getObjectAbs(it.bIndex);<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                }<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                return this;<a name="line.804"></a>
+<span class="sourceLineNo">805</span>        }<a name="line.805"></a>
+<span class="sourceLineNo">806</span><a name="line.806"></a>
+<span class="sourceLineNo">807</span>        @Override<a name="line.807"></a>
+<span class="sourceLineNo">808</span>        public ObjectDatasetBase setSlice(final Object obj, final IndexIterator siter) {<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                setDirty();<a name="line.809"></a>
+<span class="sourceLineNo">810</span><a name="line.810"></a>
+<span class="sourceLineNo">811</span>                if (obj instanceof IDataset) {<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                        final IDataset ds = (IDataset) obj;<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                        final int[] oshape = ds.getShape();<a name="line.813"></a>
+<span class="sourceLineNo">814</span><a name="line.814"></a>
+<span class="sourceLineNo">815</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                                throw new IllegalArgumentException(String.format(<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                                                Arrays.toString(siter.getShape())));<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>                        if (ds instanceof Dataset) {<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                                final Dataset ads = (Dataset) ds;<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                                final IndexIterator oiter = ads.getIterator();<a name="line.823"></a>
+<span class="sourceLineNo">824</span><a name="line.824"></a>
+<span class="sourceLineNo">825</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                                        data[siter.index] = ads.getObjectAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                        } else {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                                final int[] pos = oiter.getPos();<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                        data[siter.index] = ds.getObject(pos); // PRIM_TYPE<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>                        try {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                Object v = obj; // PRIM_TYPE // FROM_OBJECT<a name="line.836"></a>
+<span class="sourceLineNo">837</span><a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                while (siter.hasNext())<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                        data[siter.index] = v;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                        } catch (IllegalArgumentException e) {<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<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 this;<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>        @Override<a name="line.847"></a>
+<span class="sourceLineNo">848</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                Object[] ddata = (Object[]) dest.getBuffer(); // PRIM_TYPE<a name="line.849"></a>
+<span class="sourceLineNo">850</span><a name="line.850"></a>
+<span class="sourceLineNo">851</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.852"></a>
+<span class="sourceLineNo">853</span><a name="line.853"></a>
+<span class="sourceLineNo">854</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.854"></a>
+<span class="sourceLineNo">855</span><a name="line.855"></a>
+<span class="sourceLineNo">856</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<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>                dest.setDirty();<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                        ddata[diter.index] = data[siter.index];<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                }<a name="line.863"></a>
+<span class="sourceLineNo">864</span>        }<a name="line.864"></a>
+<span class="sourceLineNo">865</span><a name="line.865"></a>
+<span class="sourceLineNo">866</span>        @Override<a name="line.866"></a>
+<span class="sourceLineNo">867</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                setDirty();<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                Object[] sdata = (Object[]) src; // PRIM_TYPE<a name="line.869"></a>
+<span class="sourceLineNo">870</span><a name="line.870"></a>
+<span class="sourceLineNo">871</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.871"></a>
+<span class="sourceLineNo">872</span><a name="line.872"></a>
+<span class="sourceLineNo">873</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                        throw new IllegalArgumentException("destination array is not large enough");<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>                for (int i = 0; siter.hasNext(); i++) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                        data[siter.index] = sdata[i];<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><a name="line.881"></a>
+<span class="sourceLineNo">882</span>        private List&lt;int[]&gt; findPositions(final Object value) { // PRIM_TYPE<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                IndexIterator iter = getIterator(true);<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                List&lt;int[]&gt; posns = new ArrayList&lt;int[]&gt;();<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                int[] pos = iter.getPos();<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>                        while (iter.hasNext()) {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                                if (data[iter.index] == value) {<a name="line.889"></a>
+<span class="sourceLineNo">890</span>                                        posns.add(pos.clone());<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>                }<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                return posns;<a name="line.894"></a>
+<span class="sourceLineNo">895</span>        }<a name="line.895"></a>
+<span class="sourceLineNo">896</span><a name="line.896"></a>
+<span class="sourceLineNo">897</span>        @Override<a name="line.897"></a>
+<span class="sourceLineNo">898</span>        public int[] maxPos(boolean... ignoreInvalids) {<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                List&lt;int[]&gt; max = md.getMaximumPositions(ignoreInvalids);<a name="line.901"></a>
+<span class="sourceLineNo">902</span><a name="line.902"></a>
+<span class="sourceLineNo">903</span>                if (max == null) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                        max = findPositions(md.getMaximum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.905"></a>
+<span class="sourceLineNo">906</span><a name="line.906"></a>
+<span class="sourceLineNo">907</span>                        md.setMaximumPositions(max);<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 max.get(0); // first maximum<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[] minPos(boolean... ignoreInvalids) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                List&lt;int[]&gt; min = md.getMinimumPositions(ignoreInvalids);<a name="line.917"></a>
+<span class="sourceLineNo">918</span><a name="line.918"></a>
+<span class="sourceLineNo">919</span>                if (min == null) {<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                        min = findPositions(md.getMinimum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.921"></a>
+<span class="sourceLineNo">922</span><a name="line.922"></a>
+<span class="sourceLineNo">923</span>                        md.setMinimumPositions(min);<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 min.get(0); // first minimum<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>        @Override<a name="line.929"></a>
+<span class="sourceLineNo">930</span>        public boolean containsNans() {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                return false;<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 boolean containsInfs() {<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                return false;<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>        @Override<a name="line.939"></a>
+<span class="sourceLineNo">940</span>        public boolean containsInvalidNumbers() {<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                return false;<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>        @Override<a name="line.944"></a>
+<span class="sourceLineNo">945</span>        public ObjectDatasetBase iadd(final Object b) {<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                return this;<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 ObjectDatasetBase isubtract(final Object b) {<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 ObjectDatasetBase imultiply(final Object b) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                return this;<a name="line.956"></a>
+<span class="sourceLineNo">957</span>        }<a name="line.957"></a>
+<span class="sourceLineNo">958</span><a name="line.958"></a>
+<span class="sourceLineNo">959</span>        @Override<a name="line.959"></a>
+<span class="sourceLineNo">960</span>        public ObjectDatasetBase idivide(final Object b) {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                return this;<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>        @Override<a name="line.964"></a>
+<span class="sourceLineNo">965</span>        public ObjectDatasetBase ifloor() {<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                return this;<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 ObjectDatasetBase iremainder(final Object b) {<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                return this;<a name="line.971"></a>
+<span class="sourceLineNo">972</span>        }<a name="line.972"></a>
+<span class="sourceLineNo">973</span><a name="line.973"></a>
+<span class="sourceLineNo">974</span>        @Override<a name="line.974"></a>
+<span class="sourceLineNo">975</span>        public ObjectDatasetBase ipower(final Object b) {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                return this;<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>        @Override<a name="line.979"></a>
+<span class="sourceLineNo">980</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                double sum = 0;<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                return sum;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Operations.Addition.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Operations.Addition.html
new file mode 100644
index 0000000..10ec6af
--- /dev/null
+++ b/apidocs/2.3.0/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 a<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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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.3.0/src-html/org/eclipse/january/dataset/Operations.Division.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Operations.Division.html
new file mode 100644
index 0000000..10ec6af
--- /dev/null
+++ b/apidocs/2.3.0/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 a<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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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.3.0/src-html/org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html
new file mode 100644
index 0000000..10ec6af
--- /dev/null
+++ b/apidocs/2.3.0/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 a<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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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.3.0/src-html/org/eclipse/january/dataset/Operations.DivisionWithZero.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Operations.DivisionWithZero.html
new file mode 100644
index 0000000..10ec6af
--- /dev/null
+++ b/apidocs/2.3.0/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 a<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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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.3.0/src-html/org/eclipse/january/dataset/Operations.Exponentiation.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Operations.Exponentiation.html
new file mode 100644
index 0000000..10ec6af
--- /dev/null
+++ b/apidocs/2.3.0/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 a<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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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.3.0/src-html/org/eclipse/january/dataset/Operations.Maximum.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Operations.Maximum.html
new file mode 100644
index 0000000..10ec6af
--- /dev/null
+++ b/apidocs/2.3.0/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 a<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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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.3.0/src-html/org/eclipse/january/dataset/Operations.Minimum.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Operations.Minimum.html
new file mode 100644
index 0000000..10ec6af
--- /dev/null
+++ b/apidocs/2.3.0/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 a<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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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.3.0/src-html/org/eclipse/january/dataset/Operations.Multiplication.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Operations.Multiplication.html
new file mode 100644
index 0000000..10ec6af
--- /dev/null
+++ b/apidocs/2.3.0/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 a<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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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.3.0/src-html/org/eclipse/january/dataset/Operations.Negation.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Operations.Negation.html
new file mode 100644
index 0000000..10ec6af
--- /dev/null
+++ b/apidocs/2.3.0/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 a<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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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.3.0/src-html/org/eclipse/january/dataset/Operations.Remainder.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Operations.Remainder.html
new file mode 100644
index 0000000..10ec6af
--- /dev/null
+++ b/apidocs/2.3.0/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 a<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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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.3.0/src-html/org/eclipse/january/dataset/Operations.Subtraction.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Operations.Subtraction.html
new file mode 100644
index 0000000..10ec6af
--- /dev/null
+++ b/apidocs/2.3.0/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 a<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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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.3.0/src-html/org/eclipse/january/dataset/Operations.UseBase.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Operations.UseBase.html
new file mode 100644
index 0000000..10ec6af
--- /dev/null
+++ b/apidocs/2.3.0/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 a<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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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.3.0/src-html/org/eclipse/january/dataset/Operations.UseIfEqualTo.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Operations.UseIfEqualTo.html
new file mode 100644
index 0000000..10ec6af
--- /dev/null
+++ b/apidocs/2.3.0/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 a<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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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.3.0/src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThan.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThan.html
new file mode 100644
index 0000000..10ec6af
--- /dev/null
+++ b/apidocs/2.3.0/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 a<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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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.3.0/src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html
new file mode 100644
index 0000000..10ec6af
--- /dev/null
+++ b/apidocs/2.3.0/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 a<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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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.3.0/src-html/org/eclipse/january/dataset/Operations.UseIfLessThan.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Operations.UseIfLessThan.html
new file mode 100644
index 0000000..10ec6af
--- /dev/null
+++ b/apidocs/2.3.0/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 a<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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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.3.0/src-html/org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html
new file mode 100644
index 0000000..10ec6af
--- /dev/null
+++ b/apidocs/2.3.0/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 a<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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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.3.0/src-html/org/eclipse/january/dataset/Operations.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Operations.html
new file mode 100644
index 0000000..10ec6af
--- /dev/null
+++ b/apidocs/2.3.0/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 a<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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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 {@code 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.3.0/src-html/org/eclipse/january/dataset/Outliers.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Outliers.html
new file mode 100644
index 0000000..3e1a170
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/dataset/PositionIterator.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/PositionIterator.html
new file mode 100644
index 0000000..b4a92c0
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/PositionIterator.html
@@ -0,0 +1,300 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>/**<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * &lt;p&gt;Class to provide iteration through a dataset&lt;/p&gt;<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * &lt;p&gt;Instantiate an iterator and use it in a while loop:<a name="line.17"></a>
+<span class="sourceLineNo">018</span> * &lt;pre&gt;<a name="line.18"></a>
+<span class="sourceLineNo">019</span> * Dataset ds = DatasetFactory.createLinearSpace(DoubleDataset.class, 0, 10, 0.25);<a name="line.19"></a>
+<span class="sourceLineNo">020</span> * PositionIterator iter = ds.getPositionIterator();<a name="line.20"></a>
+<span class="sourceLineNo">021</span> * int[] pos = iter.getPos()<a name="line.21"></a>
+<span class="sourceLineNo">022</span> *<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * while (iter.hasNext()) {<a name="line.23"></a>
+<span class="sourceLineNo">024</span> *     ds.set(1.2, pos);<a name="line.24"></a>
+<span class="sourceLineNo">025</span> * }<a name="line.25"></a>
+<span class="sourceLineNo">026</span> * &lt;/pre&gt;<a name="line.26"></a>
+<span class="sourceLineNo">027</span> *<a name="line.27"></a>
+<span class="sourceLineNo">028</span> */<a name="line.28"></a>
+<span class="sourceLineNo">029</span>public class PositionIterator extends IndexIterator {<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        private int offset;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        final private int[] shape;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        final private int[] start;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        final private int[] stop;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>        final private int[] step;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        final private int endrank;<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>        final private boolean[] omit; // axes to miss out<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>        /**<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * position in dataset<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         */<a name="line.41"></a>
+<span class="sourceLineNo">042</span>        final private int[] pos;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>        private boolean once;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        final private boolean zero; // no iterations allowed<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>        /**<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         * Constructor for an iterator over elements of a dataset that are within<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * the shape<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         *<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         * @param shape<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         */<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        public PositionIterator(int[] shape) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                this(new SliceND(shape), null);<a name="line.53"></a>
+<span class="sourceLineNo">054</span>        }<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>        /**<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * Constructor for an iterator over a single item broadcasted to given shape<a name="line.57"></a>
+<span class="sourceLineNo">058</span>         *<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param offset offset to single item<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @param shape<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        public PositionIterator(int offset, int[] shape) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                this(offset, new SliceND(shape), null);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        }<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>        /**<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * Constructor for an iterator that misses out several axes<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         * @param shape<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         * @param axes missing axes, can be null for full dataset<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         */<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        public PositionIterator(int[] shape, int... axes) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                this(new SliceND(shape), axes);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>        /**<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * Constructor for an iterator that misses out several axes<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         * @param shape<a name="line.77"></a>
+<span class="sourceLineNo">078</span>         * @param slice<a name="line.78"></a>
+<span class="sourceLineNo">079</span>         * @param axes missing axes<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         */<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        public PositionIterator(int[] shape, Slice[] slice, int[] axes) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                this(new SliceND(shape, slice), axes);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>        }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>        /**<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * Constructor for an iterator that misses out several axes<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         * @param shape<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         * @param start<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         * @param stop<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         * @param step<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         * @param axes missing axes<a name="line.91"></a>
+<span class="sourceLineNo">092</span>         */<a name="line.92"></a>
+<span class="sourceLineNo">093</span>        public PositionIterator(int[] shape, int[] start, int[] stop, int[] step, int[] axes) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                this(new SliceND(shape, start, stop, step), axes);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>        }<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span>        /**<a name="line.97"></a>
+<span class="sourceLineNo">098</span>         * Constructor for an iterator that misses out several axes<a name="line.98"></a>
+<span class="sourceLineNo">099</span>         * @param slice<a name="line.99"></a>
+<span class="sourceLineNo">100</span>         * @param axes missing axes<a name="line.100"></a>
+<span class="sourceLineNo">101</span>         */<a name="line.101"></a>
+<span class="sourceLineNo">102</span>        public PositionIterator(SliceND slice, int... axes) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                this(0, slice, axes);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>        /**<a name="line.106"></a>
+<span class="sourceLineNo">107</span>         * Constructor for an iterator that misses out several axes<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * <a name="line.108"></a>
+<span class="sourceLineNo">109</span>         * @param offset offset to start with<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         * @param slice<a name="line.110"></a>
+<span class="sourceLineNo">111</span>         * @param axes missing axes<a name="line.111"></a>
+<span class="sourceLineNo">112</span>         */<a name="line.112"></a>
+<span class="sourceLineNo">113</span>        public PositionIterator(int offset, SliceND slice, int... axes) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                this.offset = offset;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                int[] oshape = slice.getShape();<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                start = slice.getStart();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                stop  = slice.getStop();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                step  = slice.getStep();<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                for (int s : step) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                        if (s &lt; 0) {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                throw new UnsupportedOperationException("Negative steps not implemented");<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                        }<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                }<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                int rank = oshape.length;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                endrank = rank - 1;<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>                omit = new boolean[rank];<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                shape = oshape.clone();<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                if (axes != null) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        for (int a : axes) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                                a = ShapeUtils.checkAxis(rank, a);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                                if (a &gt;= 0 &amp;&amp; a &lt;= endrank) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                                        omit[a] = true;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                                        shape[a] = 1;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                                } else if (a &gt; endrank) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                                        throw new IllegalArgumentException("Specified axis exceeds dataset rank");<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                                }<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        }<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                }<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span>                pos = new int[rank];<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>                zero = ShapeUtils.calcSize(shape) == 0;<a name="line.143"></a>
+<span class="sourceLineNo">144</span><a name="line.144"></a>
+<span class="sourceLineNo">145</span>                reset();<a name="line.145"></a>
+<span class="sourceLineNo">146</span>        }<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>        @Override<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        public boolean hasNext() {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                // now move on one position<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                if (zero) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        return false;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                }<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                if (once) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                        once = false;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        return true;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                }<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                for (int j = endrank; j &gt;= 0; j--) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                        if (omit[j]) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                                continue;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        pos[j] += step[j];<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                        if (pos[j] &gt;= stop[j]) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                                pos[j] = start[j];<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                        } else {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                                return true;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                        }<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                }<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                return false;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        }<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>        @Override<a name="line.172"></a>
+<span class="sourceLineNo">173</span>        public int[] getPos() {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                return pos;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        }<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>        /**<a name="line.177"></a>
+<span class="sourceLineNo">178</span>         * @return omit array - array where true means miss out<a name="line.178"></a>
+<span class="sourceLineNo">179</span>         */<a name="line.179"></a>
+<span class="sourceLineNo">180</span>        public boolean[] getOmit() {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                return omit;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        }<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>        @Override<a name="line.184"></a>
+<span class="sourceLineNo">185</span>        public void reset() {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                for (int i = 0; i &lt;= endrank; i++) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                        pos[i] = start[i];<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                }<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                if (zero) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                        return;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                }<a name="line.191"></a>
+<span class="sourceLineNo">192</span><a name="line.192"></a>
+<span class="sourceLineNo">193</span>                int j = 0;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                for (; j &lt;= endrank; j++) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                        if (!omit[j]) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                                break;<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                        }<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                }<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                if (j &gt; endrank) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        once = true;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                        return;<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                }<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>                if (omit[endrank]) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                        pos[endrank] = start[endrank];<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                        <a name="line.206"></a>
+<span class="sourceLineNo">207</span>                        for (int i = endrank - 1; i &gt;= 0; i--) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                                if (!omit[i]) {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                                        pos[i] -= step[i];<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                                        break;<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                                }<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                        }<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                } else {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        pos[endrank] -= step[endrank];<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>                index = offset;<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        }<a name="line.218"></a>
+<span class="sourceLineNo">219</span><a name="line.219"></a>
+<span class="sourceLineNo">220</span>        @Override<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        public int[] getShape() {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                return shape;<a name="line.222"></a>
+<span class="sourceLineNo">223</span>        }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>        public int[] getStop() {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                return stop;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        }<a name="line.227"></a>
+<span class="sourceLineNo">228</span>}<a name="line.228"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/RGBDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/RGBDataset.html
new file mode 100644
index 0000000..e13c260
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/RGBDataset.html
@@ -0,0 +1,832 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.Arrays;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>/**<a name="line.17"></a>
+<span class="sourceLineNo">018</span> * Class to hold colour datasets as red, green, blue tuples of short integers<a name="line.18"></a>
+<span class="sourceLineNo">019</span> */<a name="line.19"></a>
+<span class="sourceLineNo">020</span>public class RGBDataset extends CompoundShortDataset implements Cloneable {<a name="line.20"></a>
+<span class="sourceLineNo">021</span>        // pin UID to base class<a name="line.21"></a>
+<span class="sourceLineNo">022</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>        private static final int ISIZE = 3; // number of elements per item<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>        @Override<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        public int getDType() {<a name="line.27"></a>
+<span class="sourceLineNo">028</span>                return Dataset.RGB;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>        }<a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span>        /**<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * Create a null dataset<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         */<a name="line.33"></a>
+<span class="sourceLineNo">034</span>        public RGBDataset() {<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                super(ISIZE);<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        }<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>        public RGBDataset(final int... shape) {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                super(ISIZE, shape);<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        }<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>        public RGBDataset(final short[] data, final int... shape) {<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                super(ISIZE, data, shape);<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        }<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>        /**<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         * Copy a dataset<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @param dataset<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public RGBDataset(final RGBDataset dataset) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                super(dataset);<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        }<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        @Override<a name="line.54"></a>
+<span class="sourceLineNo">055</span>        public RGBDataset clone() {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                return new RGBDataset(this);<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        }<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>        /**<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * Create a dataset using given data (red, green and blue parts are given separately)<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * @param redData<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * @param greenData<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         * @param blueData<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         * @param shape (can be null to create 1D dataset)<a name="line.64"></a>
+<span class="sourceLineNo">065</span>         */<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        public RGBDataset(final int[] redData, final int[] greenData, final int[] blueData, int... shape) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                int dsize = redData.length &gt; greenData.length ? greenData.length : redData.length;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                dsize = dsize &gt; blueData.length ? blueData.length : dsize;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                if (shape == null || shape.length == 0) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                        shape = new int[] {dsize};<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                }<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                isize = ISIZE;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                size = ShapeUtils.calcSize(shape);<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                if (size != dsize) {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        logger.error("Shape is not compatible with size of data array");<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        throw new IllegalArgumentException("Shape is not compatible with size of data array");<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                }<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                this.shape = shape.clone();<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>                try {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        odata = data = createArray(size);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                } catch (Throwable t) {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                        throw new IllegalArgumentException(t);<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                }<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>                for (int i = 0, n = 0; i &lt; size; i++) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                        data[n++] = (short) redData[i];<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                        data[n++] = (short) greenData[i];<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                        data[n++] = (short) blueData[i];<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                }<a name="line.91"></a>
+<span class="sourceLineNo">092</span>        }<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>        /**<a name="line.94"></a>
+<span class="sourceLineNo">095</span>         * Create a dataset using given data (red, green and blue parts are given separately)<a name="line.95"></a>
+<span class="sourceLineNo">096</span>         * @param redData<a name="line.96"></a>
+<span class="sourceLineNo">097</span>         * @param greenData<a name="line.97"></a>
+<span class="sourceLineNo">098</span>         * @param blueData<a name="line.98"></a>
+<span class="sourceLineNo">099</span>         * @param shape (can be null to create 1D dataset)<a name="line.99"></a>
+<span class="sourceLineNo">100</span>         */<a name="line.100"></a>
+<span class="sourceLineNo">101</span>        public RGBDataset(final short[] redData, final short[] greenData, final short[] blueData, int... shape) {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                int dsize = redData.length &gt; greenData.length ? greenData.length : redData.length;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                dsize = dsize &gt; blueData.length ? blueData.length : dsize;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                if (shape == null || shape.length == 0) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                        shape = new int[] {dsize};<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                }<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                isize = ISIZE;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                size = ShapeUtils.calcSize(shape);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                if (size != dsize) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                        logger.error("Shape is not compatible with size of data array");<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                        throw new IllegalArgumentException("Shape is not compatible with size of data array");<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                }<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                this.shape = shape.clone();<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>                try {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                        odata = data = createArray(size);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                } catch (Throwable t) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        throw new IllegalArgumentException(t);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>                for (int i = 0, n = 0; i &lt; size; i++) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                        data[n++] = redData[i];<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        data[n++] = greenData[i];<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                        data[n++] = blueData[i];<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                }<a name="line.126"></a>
+<span class="sourceLineNo">127</span>        }<a name="line.127"></a>
+<span class="sourceLineNo">128</span><a name="line.128"></a>
+<span class="sourceLineNo">129</span>        /**<a name="line.129"></a>
+<span class="sourceLineNo">130</span>         * Create a dataset using given data (red, green and blue parts are given separately)<a name="line.130"></a>
+<span class="sourceLineNo">131</span>         * @param redData<a name="line.131"></a>
+<span class="sourceLineNo">132</span>         * @param greenData<a name="line.132"></a>
+<span class="sourceLineNo">133</span>         * @param blueData<a name="line.133"></a>
+<span class="sourceLineNo">134</span>         * @param shape (can be null to create 1D dataset)<a name="line.134"></a>
+<span class="sourceLineNo">135</span>         */<a name="line.135"></a>
+<span class="sourceLineNo">136</span>        public RGBDataset(final byte[] redData, final byte[] greenData, final byte[] blueData, int... shape) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                int dsize = redData.length &gt; greenData.length ? greenData.length : redData.length;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                dsize = dsize &gt; blueData.length ? blueData.length : dsize;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                if (shape == null || shape.length == 0) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        shape = new int[] {dsize};<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                isize = ISIZE;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                size = ShapeUtils.calcSize(shape);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                if (size != dsize) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        logger.error("Shape is not compatible with size of data array");<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        throw new IllegalArgumentException("Shape is not compatible with size of data array");<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                }<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                this.shape = shape.clone();<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>                try {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                        odata = data = createArray(size);<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                } catch (Throwable t) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        throw new IllegalArgumentException(t);<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>                for (int i = 0, n = 0; i &lt; size; i++) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                        data[n++] = (short) (0xff &amp; redData[i]);<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                        data[n++] = (short) (0xff &amp; greenData[i]);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        data[n++] = (short) (0xff &amp; blueData[i]);<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>        }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>        /**<a name="line.164"></a>
+<span class="sourceLineNo">165</span>         * Create a dataset using given colour data (colour components are given separately)<a name="line.165"></a>
+<span class="sourceLineNo">166</span>         * @param red<a name="line.166"></a>
+<span class="sourceLineNo">167</span>         * @param green<a name="line.167"></a>
+<span class="sourceLineNo">168</span>         * @param blue<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         */<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        public RGBDataset(final Dataset red, final Dataset green, final Dataset blue) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                super(ISIZE, red.getShapeRef());<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                red.checkCompatibility(green);<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                red.checkCompatibility(blue);<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>                if (red.max().doubleValue() &gt; Short.MAX_VALUE || red.min().doubleValue() &lt; Short.MIN_VALUE ||<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                                green.max().doubleValue() &gt; Short.MAX_VALUE || green.min().doubleValue() &lt; Short.MIN_VALUE || <a name="line.176"></a>
+<span class="sourceLineNo">177</span>                                blue.max().doubleValue() &gt; Short.MAX_VALUE || blue.min().doubleValue() &lt; Short.MIN_VALUE) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        logger.warn("Some values are out of range and will be ");<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>                IndexIterator riter = red.getIterator();<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                IndexIterator giter = green.getIterator();<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                IndexIterator biter = blue.getIterator();<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>                for (int i = 0; riter.hasNext() &amp;&amp; giter.hasNext() &amp;&amp; biter.hasNext();) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        data[i++] = (short) red.getElementLongAbs(riter.index);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                        data[i++] = (short) green.getElementLongAbs(riter.index);<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                        data[i++] = (short) blue.getElementLongAbs(riter.index);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                }<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>        /**<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         * Create a dataset using given grey data<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         * @param grey<a name="line.194"></a>
+<span class="sourceLineNo">195</span>         */<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        public RGBDataset(final Dataset grey) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                super(ISIZE, grey.getShapeRef());<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span>                IndexIterator giter = grey.getIterator();<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>                for (int i = 0; giter.hasNext();) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        final short g = (short) grey.getElementLongAbs(giter.index); <a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        data[i++] = g;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                        data[i++] = g;<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                        data[i++] = g;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                }<a name="line.206"></a>
+<span class="sourceLineNo">207</span>        }<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>        /**<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         * Create a RGB dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         * sequences or arrays are padded with zeros. The item size is the last dimension of the corresponding<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         * elemental dataset<a name="line.212"></a>
+<span class="sourceLineNo">213</span>         *<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         * @param obj<a name="line.214"></a>
+<span class="sourceLineNo">215</span>         * @return dataset with contents given by input<a name="line.215"></a>
+<span class="sourceLineNo">216</span>         */<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        public static RGBDataset createFromObject(final Object obj) {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                CompoundShortDataset result = (CompoundShortDataset) DatasetUtils.createCompoundDataset(ShortDataset.createFromObject(obj), ISIZE);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                return new RGBDataset(result.data, result.shape);<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        }<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>        /**<a name="line.222"></a>
+<span class="sourceLineNo">223</span>         * Create a RGB dataset from a compound dataset (no normalisation performed)<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * @param a<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         * @return RGB dataset (grey if input dataset has less than 3 elements per item)<a name="line.225"></a>
+<span class="sourceLineNo">226</span>         */<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        public static RGBDataset createFromCompoundDataset(final CompoundDataset a) {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                if (a instanceof RGBDataset)<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                        return (RGBDataset) a;<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                final int is = a.getElementsPerItem();<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                if (is &lt; 3) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                        return new RGBDataset(a);<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                }<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span>                if (a instanceof CompoundShortDataset &amp;&amp; is == 3) {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                        return new RGBDataset((short[]) a.getBuffer(), a.getShapeRef());<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                }<a name="line.237"></a>
+<span class="sourceLineNo">238</span><a name="line.238"></a>
+<span class="sourceLineNo">239</span>                final RGBDataset rgb = new RGBDataset(a.getShapeRef());<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                final IndexIterator it = a.getIterator();<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>                int n = 0;<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                while (it.hasNext()) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                        rgb.data[n++] = (short) a.getElementLongAbs(it.index);<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        rgb.data[n++] = (short) a.getElementLongAbs(it.index + 1);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        rgb.data[n++] = (short) a.getElementLongAbs(it.index + 2);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>                return rgb;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>        }<a name="line.250"></a>
+<span class="sourceLineNo">251</span><a name="line.251"></a>
+<span class="sourceLineNo">252</span>        /**<a name="line.252"></a>
+<span class="sourceLineNo">253</span>         * Create a RGB dataset from hue, saturation and value dataset<a name="line.253"></a>
+<span class="sourceLineNo">254</span>         * @param hue (in degrees from -360 to 360)<a name="line.254"></a>
+<span class="sourceLineNo">255</span>         * @param saturation (from 0 to 1), can be null to denote 1<a name="line.255"></a>
+<span class="sourceLineNo">256</span>         * @param value (from 0 to 1)<a name="line.256"></a>
+<span class="sourceLineNo">257</span>         * @return RGB dataset<a name="line.257"></a>
+<span class="sourceLineNo">258</span>         */<a name="line.258"></a>
+<span class="sourceLineNo">259</span>        public static RGBDataset createFromHSV(final Dataset hue, final Dataset saturation, final Dataset value) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                if ((saturation != null &amp;&amp; !hue.isCompatibleWith(saturation)) || !hue.isCompatibleWith(value)) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                        throw new IllegalArgumentException("Hue, saturation and value datasets must have the same shape");<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                }<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span>                RGBDataset result = new RGBDataset(hue.getShapeRef());<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                IndexIterator it = result.getIterator(true);<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                int[] pos = it.getPos();<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                short[] rgb = new short[3];<a name="line.267"></a>
+<span class="sourceLineNo">268</span><a name="line.268"></a>
+<span class="sourceLineNo">269</span>                if (saturation == null) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                        while (it.hasNext()) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                                convertHSVToRGB(hue.getDouble(pos), 1, value.getDouble(pos), rgb);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                                result.setAbs(it.index, rgb);<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        }<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                } else {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                        while (it.hasNext()) {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                                convertHSVToRGB(hue.getDouble(pos), saturation.getDouble(pos), value.getDouble(pos), rgb);<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                                result.setAbs(it.index, rgb);<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                        }<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>                return result;<a name="line.281"></a>
+<span class="sourceLineNo">282</span>        }<a name="line.282"></a>
+<span class="sourceLineNo">283</span><a name="line.283"></a>
+<span class="sourceLineNo">284</span>        /**<a name="line.284"></a>
+<span class="sourceLineNo">285</span>         * Create a RGB dataset from hue, saturation and lightness dataset<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         * @param hue (in degrees from -360 to 360)<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * @param saturation (from 0 to 1), can be null to denote 1<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         * @param lightness (from 0 to 1)<a name="line.288"></a>
+<span class="sourceLineNo">289</span>         * @return RGB dataset<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         */<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        public static RGBDataset createFromHSL(final Dataset hue, final Dataset saturation, final Dataset lightness) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                if ((saturation != null &amp;&amp; !hue.isCompatibleWith(saturation)) || !hue.isCompatibleWith(lightness)) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                        throw new IllegalArgumentException("Hue, saturation and lightness datasets must have the same shape");<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                }<a name="line.294"></a>
+<span class="sourceLineNo">295</span><a name="line.295"></a>
+<span class="sourceLineNo">296</span>                RGBDataset result = new RGBDataset(hue.getShapeRef());<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                IndexIterator it = result.getIterator(true);<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                int[] pos = it.getPos();<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                short[] rgb = new short[3];<a name="line.299"></a>
+<span class="sourceLineNo">300</span><a name="line.300"></a>
+<span class="sourceLineNo">301</span>                if (saturation == null) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                        while (it.hasNext()) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                                convertHSLToRGB(hue.getDouble(pos), 1, lightness.getDouble(pos), rgb);<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                result.setAbs(it.index, rgb);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                        }<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                } else {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                        while (it.hasNext()) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                                convertHSLToRGB(hue.getDouble(pos), saturation.getDouble(pos), lightness.getDouble(pos), rgb);<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                                result.setAbs(it.index, rgb);<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                        }<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                }<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>                return result;<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        }<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span>        private static void convertHSVToRGB(double h, double s, double v, short[] rgb) {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                double m = 255 * v;<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                double chroma = s * m;<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                m -= chroma;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                double hprime = h / 60.;<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                if (hprime &lt; 0) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                        hprime += 6;<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                }<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                short sx = (short) (chroma * (1 - Math.abs((hprime % 2) - 1)) + m);<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                short sc = (short) (chroma + m);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                short sm = (short) m;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                <a name="line.327"></a>
+<span class="sourceLineNo">328</span>                if (hprime &lt; 1) {<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        rgb[0] = sc;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                        rgb[1] = sx;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                        rgb[2] = sm;<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                } else if (hprime &lt; 2) {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        rgb[0] = sx;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                        rgb[1] = sc;<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                        rgb[2] = sm;<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                } else if (hprime &lt; 3) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                        rgb[0] = sm;<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                        rgb[1] = sc;<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                        rgb[2] = sx;<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                } else if (hprime &lt; 4) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                        rgb[0] = sm;<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                        rgb[1] = sx;<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                        rgb[2] = sc;<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                } else if (hprime &lt; 5) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                        rgb[0] = sx;<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                        rgb[1] = sm;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                        rgb[2] = sc;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                } else if (hprime &lt; 6) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        rgb[0] = sc;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                        rgb[1] = sm;<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                        rgb[2] = sx;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                } else { // if hue is outside domain<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                        rgb[0] = sm;<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                        rgb[1] = sm;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                        rgb[2] = sm;<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                }<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        }<a name="line.357"></a>
+<span class="sourceLineNo">358</span><a name="line.358"></a>
+<span class="sourceLineNo">359</span>        private static void convertHSLToRGB(double h, double s, double l, short[] rgb) {<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                double m = l;<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                double chroma = s * (1 - Math.abs(2 * m - 1));<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                m -= chroma * 0.5;<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                m *= 255;<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                chroma *= 255;<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                double hprime = h / 60.;<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                if (hprime &lt; 0) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                        hprime += 6;<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                }<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                short sx = (short) (chroma * (1 - Math.abs((hprime % 2) - 1)) + m);<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                short sc = (short) (chroma + m);<a name="line.370"></a>
+<span class="sourceLineNo">371</span>                short sm = (short) m;<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                <a name="line.372"></a>
+<span class="sourceLineNo">373</span>                if (hprime &lt; 1) {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                        rgb[0] = sc;<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                        rgb[1] = sx;<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                        rgb[2] = sm;<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                } else if (hprime &lt; 2) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                        rgb[0] = sx;<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                        rgb[1] = sc;<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                        rgb[2] = sm;<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                } else if (hprime &lt; 3) {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                        rgb[0] = sm;<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                        rgb[1] = sc;<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                        rgb[2] = sx;<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                } else if (hprime &lt; 4) {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                        rgb[0] = sm;<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                        rgb[1] = sx;<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                        rgb[2] = sc;<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                } else if (hprime &lt; 5) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                        rgb[0] = sx;<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                        rgb[1] = sm;<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                        rgb[2] = sc;<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                } else if (hprime &lt; 6) {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                        rgb[0] = sc;<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                        rgb[1] = sm;<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                        rgb[2] = sx;<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                } else { // if hue is outside domain<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                        rgb[0] = sm;<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                        rgb[1] = sm;<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                        rgb[2] = sm;<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                }<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        }<a name="line.402"></a>
+<span class="sourceLineNo">403</span><a name="line.403"></a>
+<span class="sourceLineNo">404</span>        @Override<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        public RGBDataset getSlice(SliceIterator siter) {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                CompoundShortDataset base = super.getSlice(siter);<a name="line.406"></a>
+<span class="sourceLineNo">407</span><a name="line.407"></a>
+<span class="sourceLineNo">408</span>                RGBDataset slice = new RGBDataset();<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                copyToView(base, slice, false, false);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                slice.setData();<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                return slice;<a name="line.411"></a>
+<span class="sourceLineNo">412</span>        }<a name="line.412"></a>
+<span class="sourceLineNo">413</span><a name="line.413"></a>
+<span class="sourceLineNo">414</span>        @Override<a name="line.414"></a>
+<span class="sourceLineNo">415</span>        public RGBDataset getView(boolean deepCopyMetadata) {<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                RGBDataset view = new RGBDataset();<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                view.setData();<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                return view;<a name="line.419"></a>
+<span class="sourceLineNo">420</span>        }<a name="line.420"></a>
+<span class="sourceLineNo">421</span><a name="line.421"></a>
+<span class="sourceLineNo">422</span>        /**<a name="line.422"></a>
+<span class="sourceLineNo">423</span>         * @return red value in the first position<a name="line.423"></a>
+<span class="sourceLineNo">424</span>         * @since 2.0<a name="line.424"></a>
+<span class="sourceLineNo">425</span>         */<a name="line.425"></a>
+<span class="sourceLineNo">426</span>        public short getRed() {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                return data[getFirst1DIndex()];<a name="line.427"></a>
+<span class="sourceLineNo">428</span>        }<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span>        /**<a name="line.430"></a>
+<span class="sourceLineNo">431</span>         * @param i<a name="line.431"></a>
+<span class="sourceLineNo">432</span>         * @return red value in given position<a name="line.432"></a>
+<span class="sourceLineNo">433</span>         */<a name="line.433"></a>
+<span class="sourceLineNo">434</span>        public short getRed(final int i) {<a name="line.434"></a>
+<span class="sourceLineNo">435</span>                return data[get1DIndex(i)];<a name="line.435"></a>
+<span class="sourceLineNo">436</span>        }<a name="line.436"></a>
+<span class="sourceLineNo">437</span><a name="line.437"></a>
+<span class="sourceLineNo">438</span>        /**<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         * @param i<a name="line.439"></a>
+<span class="sourceLineNo">440</span>         * @param j<a name="line.440"></a>
+<span class="sourceLineNo">441</span>         * @return red value in given position<a name="line.441"></a>
+<span class="sourceLineNo">442</span>         */<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        public short getRed(final int i, final int j) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                return data[get1DIndex(i, j)];<a name="line.444"></a>
+<span class="sourceLineNo">445</span>        }<a name="line.445"></a>
+<span class="sourceLineNo">446</span><a name="line.446"></a>
+<span class="sourceLineNo">447</span>        /**<a name="line.447"></a>
+<span class="sourceLineNo">448</span>         * @param pos<a name="line.448"></a>
+<span class="sourceLineNo">449</span>         * @return red value in given position<a name="line.449"></a>
+<span class="sourceLineNo">450</span>         */<a name="line.450"></a>
+<span class="sourceLineNo">451</span>        public short getRed(final int... pos) {<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                return data[get1DIndex(pos)];<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        }<a name="line.453"></a>
+<span class="sourceLineNo">454</span><a name="line.454"></a>
+<span class="sourceLineNo">455</span>        /**<a name="line.455"></a>
+<span class="sourceLineNo">456</span>         * @return green value in the first position<a name="line.456"></a>
+<span class="sourceLineNo">457</span>         * @since 2.0<a name="line.457"></a>
+<span class="sourceLineNo">458</span>         */<a name="line.458"></a>
+<span class="sourceLineNo">459</span>        public short getGreen() {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                return data[getFirst1DIndex() + 1];<a name="line.460"></a>
+<span class="sourceLineNo">461</span>        }<a name="line.461"></a>
+<span class="sourceLineNo">462</span><a name="line.462"></a>
+<span class="sourceLineNo">463</span>        /**<a name="line.463"></a>
+<span class="sourceLineNo">464</span>         * @param i<a name="line.464"></a>
+<span class="sourceLineNo">465</span>         * @return green value in given position<a name="line.465"></a>
+<span class="sourceLineNo">466</span>         */<a name="line.466"></a>
+<span class="sourceLineNo">467</span>        public short getGreen(final int i) {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                return data[get1DIndex(i) + 1];<a name="line.468"></a>
+<span class="sourceLineNo">469</span>        }<a name="line.469"></a>
+<span class="sourceLineNo">470</span><a name="line.470"></a>
+<span class="sourceLineNo">471</span>        /**<a name="line.471"></a>
+<span class="sourceLineNo">472</span>         * @param i<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         * @param j<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         * @return green value in given position<a name="line.474"></a>
+<span class="sourceLineNo">475</span>         */<a name="line.475"></a>
+<span class="sourceLineNo">476</span>        public short getGreen(final int i, final int j) {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                return data[get1DIndex(i, j) + 1];<a name="line.477"></a>
+<span class="sourceLineNo">478</span>        }<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>        /**<a name="line.480"></a>
+<span class="sourceLineNo">481</span>         * @param pos<a name="line.481"></a>
+<span class="sourceLineNo">482</span>         * @return green value in given position<a name="line.482"></a>
+<span class="sourceLineNo">483</span>         */<a name="line.483"></a>
+<span class="sourceLineNo">484</span>        public short getGreen(final int... pos) {<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                return data[get1DIndex(pos) + 1];<a name="line.485"></a>
+<span class="sourceLineNo">486</span>        }<a name="line.486"></a>
+<span class="sourceLineNo">487</span><a name="line.487"></a>
+<span class="sourceLineNo">488</span>        /**<a name="line.488"></a>
+<span class="sourceLineNo">489</span>         * @return blue value in the first position<a name="line.489"></a>
+<span class="sourceLineNo">490</span>         * @since 2.0<a name="line.490"></a>
+<span class="sourceLineNo">491</span>         */<a name="line.491"></a>
+<span class="sourceLineNo">492</span>        public short getBlue() {<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                return data[getFirst1DIndex() + 2];<a name="line.493"></a>
+<span class="sourceLineNo">494</span>        }<a name="line.494"></a>
+<span class="sourceLineNo">495</span><a name="line.495"></a>
+<span class="sourceLineNo">496</span>        /**<a name="line.496"></a>
+<span class="sourceLineNo">497</span>         * @param i<a name="line.497"></a>
+<span class="sourceLineNo">498</span>         * @return blue value in given position<a name="line.498"></a>
+<span class="sourceLineNo">499</span>         */<a name="line.499"></a>
+<span class="sourceLineNo">500</span>        public short getBlue(final int i) {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                return data[get1DIndex(i) + 2];<a name="line.501"></a>
+<span class="sourceLineNo">502</span>        }<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>        /**<a name="line.504"></a>
+<span class="sourceLineNo">505</span>         * @param i<a name="line.505"></a>
+<span class="sourceLineNo">506</span>         * @param j<a name="line.506"></a>
+<span class="sourceLineNo">507</span>         * @return blue value in given position<a name="line.507"></a>
+<span class="sourceLineNo">508</span>         */<a name="line.508"></a>
+<span class="sourceLineNo">509</span>        public short getBlue(final int i, final int j) {<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                return data[get1DIndex(i, j) + 2];<a name="line.510"></a>
+<span class="sourceLineNo">511</span>        }<a name="line.511"></a>
+<span class="sourceLineNo">512</span><a name="line.512"></a>
+<span class="sourceLineNo">513</span>        /**<a name="line.513"></a>
+<span class="sourceLineNo">514</span>         * @param pos<a name="line.514"></a>
+<span class="sourceLineNo">515</span>         * @return blue value in given position<a name="line.515"></a>
+<span class="sourceLineNo">516</span>         */<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        public short getBlue(final int... pos) {<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                return data[get1DIndex(pos) + 2];<a name="line.518"></a>
+<span class="sourceLineNo">519</span>        }<a name="line.519"></a>
+<span class="sourceLineNo">520</span><a name="line.520"></a>
+<span class="sourceLineNo">521</span>        /**<a name="line.521"></a>
+<span class="sourceLineNo">522</span>         * Get a red value from given absolute index as a short - note this index does not<a name="line.522"></a>
+<span class="sourceLineNo">523</span>         * take in account the item size so be careful when using with multi-element items<a name="line.523"></a>
+<span class="sourceLineNo">524</span>         * <a name="line.524"></a>
+<span class="sourceLineNo">525</span>         * @param n<a name="line.525"></a>
+<span class="sourceLineNo">526</span>         * @return red value<a name="line.526"></a>
+<span class="sourceLineNo">527</span>         */<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        public short getRedAbs(int n) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                return data[n*isize];<a name="line.529"></a>
+<span class="sourceLineNo">530</span>        }<a name="line.530"></a>
+<span class="sourceLineNo">531</span><a name="line.531"></a>
+<span class="sourceLineNo">532</span>        /**<a name="line.532"></a>
+<span class="sourceLineNo">533</span>         * Get a green value from given absolute index as a short - note this index does not<a name="line.533"></a>
+<span class="sourceLineNo">534</span>         * take in account the item size so be careful when using with multi-element items<a name="line.534"></a>
+<span class="sourceLineNo">535</span>         * <a name="line.535"></a>
+<span class="sourceLineNo">536</span>         * @param n<a name="line.536"></a>
+<span class="sourceLineNo">537</span>         * @return green value<a name="line.537"></a>
+<span class="sourceLineNo">538</span>         */<a name="line.538"></a>
+<span class="sourceLineNo">539</span>        public short getGreenAbs(int n) {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                return data[n*isize + 1];<a name="line.540"></a>
+<span class="sourceLineNo">541</span>        }<a name="line.541"></a>
+<span class="sourceLineNo">542</span><a name="line.542"></a>
+<span class="sourceLineNo">543</span>        /**<a name="line.543"></a>
+<span class="sourceLineNo">544</span>         * Get a blue value from given absolute index as a short - note this index does not<a name="line.544"></a>
+<span class="sourceLineNo">545</span>         * take in account the item size so be careful when using with multi-element items<a name="line.545"></a>
+<span class="sourceLineNo">546</span>         * <a name="line.546"></a>
+<span class="sourceLineNo">547</span>         * @param n<a name="line.547"></a>
+<span class="sourceLineNo">548</span>         * @return blue value<a name="line.548"></a>
+<span class="sourceLineNo">549</span>         */<a name="line.549"></a>
+<span class="sourceLineNo">550</span>        public short getBlueAbs(int n) {<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                return data[n*isize + 2];<a name="line.551"></a>
+<span class="sourceLineNo">552</span>        }<a name="line.552"></a>
+<span class="sourceLineNo">553</span><a name="line.553"></a>
+<span class="sourceLineNo">554</span><a name="line.554"></a>
+<span class="sourceLineNo">555</span>        // weights from NTSC formula aka ITU-R BT.601 for mapping RGB to luma<a name="line.555"></a>
+<span class="sourceLineNo">556</span>        private static final double Wr = 0.299, Wg = 0.587, Wb = 0.114;<a name="line.556"></a>
+<span class="sourceLineNo">557</span><a name="line.557"></a>
+<span class="sourceLineNo">558</span>        /**<a name="line.558"></a>
+<span class="sourceLineNo">559</span>         * Convert colour dataset to a grey-scale one using the NTSC formula, aka ITU-R BT.601, for RGB to luma mapping<a name="line.559"></a>
+<span class="sourceLineNo">560</span>         * @param clazz<a name="line.560"></a>
+<span class="sourceLineNo">561</span>         * @return a grey-scale dataset of given type<a name="line.561"></a>
+<span class="sourceLineNo">562</span>         * @since 2.2<a name="line.562"></a>
+<span class="sourceLineNo">563</span>         */<a name="line.563"></a>
+<span class="sourceLineNo">564</span>        public &lt;T extends Dataset&gt; T createGreyDataset(final Class&lt;T&gt; clazz) {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                return (T) createGreyDataset(clazz, Wr, Wg, Wb);<a name="line.565"></a>
+<span class="sourceLineNo">566</span>        }<a name="line.566"></a>
+<span class="sourceLineNo">567</span><a name="line.567"></a>
+<span class="sourceLineNo">568</span>        /**<a name="line.568"></a>
+<span class="sourceLineNo">569</span>         * Convert colour dataset to a grey-scale one using given RGB to luma mapping<a name="line.569"></a>
+<span class="sourceLineNo">570</span>         * @param clazz<a name="line.570"></a>
+<span class="sourceLineNo">571</span>         * @param red weight<a name="line.571"></a>
+<span class="sourceLineNo">572</span>         * @param green weight<a name="line.572"></a>
+<span class="sourceLineNo">573</span>         * @param blue weight<a name="line.573"></a>
+<span class="sourceLineNo">574</span>         * @return a grey-scale dataset of given class<a name="line.574"></a>
+<span class="sourceLineNo">575</span>         * @since 2.2<a name="line.575"></a>
+<span class="sourceLineNo">576</span>         */<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        @SuppressWarnings("unchecked")<a name="line.577"></a>
+<span class="sourceLineNo">578</span>        public &lt;T extends Dataset&gt; T createGreyDataset(final Class&lt;T&gt; clazz, final double red, final double green, final double blue) {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                return (T) createGreyDataset(red, green, blue, DTypeUtils.getDType(clazz));<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>         * 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.583"></a>
+<span class="sourceLineNo">584</span>         * @param dtype<a name="line.584"></a>
+<span class="sourceLineNo">585</span>         * @return a grey-scale dataset of given class<a name="line.585"></a>
+<span class="sourceLineNo">586</span>         * @deprecated Use {@link RGBDataset#createGreyDataset(Class)}<a name="line.586"></a>
+<span class="sourceLineNo">587</span>         */<a name="line.587"></a>
+<span class="sourceLineNo">588</span>        @Deprecated<a name="line.588"></a>
+<span class="sourceLineNo">589</span>        public Dataset createGreyDataset(final int dtype) {<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                return createGreyDataset(Wr, Wg, Wb, dtype);<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>        /**<a name="line.593"></a>
+<span class="sourceLineNo">594</span>         * Convert colour dataset to a grey-scale one using given RGB to luma mapping<a name="line.594"></a>
+<span class="sourceLineNo">595</span>         * @param red weight<a name="line.595"></a>
+<span class="sourceLineNo">596</span>         * @param green weight<a name="line.596"></a>
+<span class="sourceLineNo">597</span>         * @param blue weight<a name="line.597"></a>
+<span class="sourceLineNo">598</span>         * @param dtype<a name="line.598"></a>
+<span class="sourceLineNo">599</span>         * @return a grey-scale dataset of given type<a name="line.599"></a>
+<span class="sourceLineNo">600</span>         * @deprecated Use {@link RGBDataset#createGreyDataset(Class, double, double, double)}<a name="line.600"></a>
+<span class="sourceLineNo">601</span>         */<a name="line.601"></a>
+<span class="sourceLineNo">602</span>        @Deprecated<a name="line.602"></a>
+<span class="sourceLineNo">603</span>        public Dataset createGreyDataset(final double red, final double green, final double blue, final int dtype) {<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                final Dataset grey = DatasetFactory.zeros(shape, dtype);<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                final IndexIterator it = getIterator();<a name="line.605"></a>
+<span class="sourceLineNo">606</span><a name="line.606"></a>
+<span class="sourceLineNo">607</span>                int i = 0;<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                while (it.hasNext()) {<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                        grey.setObjectAbs(i++, red*data[it.index] + green*data[it.index + 1] + blue*data[it.index + 2]);<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                }<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                return grey;<a name="line.611"></a>
+<span class="sourceLineNo">612</span>        }<a name="line.612"></a>
+<span class="sourceLineNo">613</span><a name="line.613"></a>
+<span class="sourceLineNo">614</span>        /**<a name="line.614"></a>
+<span class="sourceLineNo">615</span>         * Extract red colour channel<a name="line.615"></a>
+<span class="sourceLineNo">616</span>         * @param clazz<a name="line.616"></a>
+<span class="sourceLineNo">617</span>         * @return a dataset of given class<a name="line.617"></a>
+<span class="sourceLineNo">618</span>         * @since 2.1<a name="line.618"></a>
+<span class="sourceLineNo">619</span>         */<a name="line.619"></a>
+<span class="sourceLineNo">620</span>        public &lt;T extends Dataset&gt; T createRedDataset(final T clazz) {<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                return createColourChannelDataset(0, clazz, "red");<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>         * Extract green colour channel<a name="line.625"></a>
+<span class="sourceLineNo">626</span>         * @param clazz<a name="line.626"></a>
+<span class="sourceLineNo">627</span>         * @return a dataset of given class<a name="line.627"></a>
+<span class="sourceLineNo">628</span>         * @since 2.1<a name="line.628"></a>
+<span class="sourceLineNo">629</span>         */<a name="line.629"></a>
+<span class="sourceLineNo">630</span>        public &lt;T extends Dataset&gt; T createGreenDataset(final T clazz) {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                return createColourChannelDataset(1, clazz, "green");<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>        /**<a name="line.634"></a>
+<span class="sourceLineNo">635</span>         * Extract blue colour channel<a name="line.635"></a>
+<span class="sourceLineNo">636</span>         * @param clazz<a name="line.636"></a>
+<span class="sourceLineNo">637</span>         * @return a dataset of given class<a name="line.637"></a>
+<span class="sourceLineNo">638</span>         * @since 2.1<a name="line.638"></a>
+<span class="sourceLineNo">639</span>         */<a name="line.639"></a>
+<span class="sourceLineNo">640</span>        public &lt;T extends Dataset&gt; T createBlueDataset(final T clazz) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                return createColourChannelDataset(2, clazz, "blue");<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>        /**<a name="line.644"></a>
+<span class="sourceLineNo">645</span>         * Extract red colour channel<a name="line.645"></a>
+<span class="sourceLineNo">646</span>         * @param dtype<a name="line.646"></a>
+<span class="sourceLineNo">647</span>         * @return a dataset of given type<a name="line.647"></a>
+<span class="sourceLineNo">648</span>         * @deprecated Use {@link #createRedDataset}<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 Dataset createRedDataset(final int dtype) {<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                return createColourChannelDataset(0, dtype, "red");<a name="line.652"></a>
+<span class="sourceLineNo">653</span>        }<a name="line.653"></a>
+<span class="sourceLineNo">654</span><a name="line.654"></a>
+<span class="sourceLineNo">655</span>        /**<a name="line.655"></a>
+<span class="sourceLineNo">656</span>         * Extract green colour channel<a name="line.656"></a>
+<span class="sourceLineNo">657</span>         * @param dtype<a name="line.657"></a>
+<span class="sourceLineNo">658</span>         * @return a dataset of given type<a name="line.658"></a>
+<span class="sourceLineNo">659</span>         * @deprecated Use {@link #createGreenDataset}<a name="line.659"></a>
+<span class="sourceLineNo">660</span>         */<a name="line.660"></a>
+<span class="sourceLineNo">661</span>        @Deprecated<a name="line.661"></a>
+<span class="sourceLineNo">662</span>        public Dataset createGreenDataset(final int dtype) {<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                return createColourChannelDataset(1, dtype, "green");<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>         * Extract blue colour channel<a name="line.667"></a>
+<span class="sourceLineNo">668</span>         * @param dtype<a name="line.668"></a>
+<span class="sourceLineNo">669</span>         * @return a dataset of given type<a name="line.669"></a>
+<span class="sourceLineNo">670</span>         * @deprecated Use {@link #createBlueDataset}<a name="line.670"></a>
+<span class="sourceLineNo">671</span>         */<a name="line.671"></a>
+<span class="sourceLineNo">672</span>        @Deprecated<a name="line.672"></a>
+<span class="sourceLineNo">673</span>        public Dataset createBlueDataset(final int dtype) {<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                return createColourChannelDataset(2, dtype, "blue");<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>        @SuppressWarnings("unchecked")<a name="line.677"></a>
+<span class="sourceLineNo">678</span>        private &lt;T extends Dataset&gt; T createColourChannelDataset(int channelOffset, T clazz, String cName) {<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                return (T) createColourChannelDataset(channelOffset, DTypeUtils.getDType(clazz), cName);<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>        @Deprecated<a name="line.683"></a>
+<span class="sourceLineNo">684</span>        private Dataset createColourChannelDataset(final int channelOffset, final int dtype, final String cName) {<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                final Dataset channel = DatasetFactory.zeros(shape, dtype);<a name="line.685"></a>
+<span class="sourceLineNo">686</span><a name="line.686"></a>
+<span class="sourceLineNo">687</span>                final StringBuilder cname = name == null ? new StringBuilder() : new StringBuilder(name);<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                if (cname.length() &gt; 0) {<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                        cname.append('.');<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                }<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                cname.append(cName);<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                channel.setName(cname.toString());<a name="line.692"></a>
+<span class="sourceLineNo">693</span><a name="line.693"></a>
+<span class="sourceLineNo">694</span>                final IndexIterator it = getIterator();<a name="line.694"></a>
+<span class="sourceLineNo">695</span><a name="line.695"></a>
+<span class="sourceLineNo">696</span>                int i = 0;<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                while (it.hasNext()) {<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                        channel.setObjectAbs(i++, data[it.index + channelOffset]);<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>                return channel;<a name="line.701"></a>
+<span class="sourceLineNo">702</span>        }<a name="line.702"></a>
+<span class="sourceLineNo">703</span><a name="line.703"></a>
+<span class="sourceLineNo">704</span>        /**<a name="line.704"></a>
+<span class="sourceLineNo">705</span>         * @return red view<a name="line.705"></a>
+<span class="sourceLineNo">706</span>         */<a name="line.706"></a>
+<span class="sourceLineNo">707</span>        public ShortDataset getRedView() {<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                return getColourChannelView(0, "red");<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 green view<a name="line.712"></a>
+<span class="sourceLineNo">713</span>         */<a name="line.713"></a>
+<span class="sourceLineNo">714</span>        public ShortDataset getGreenView() {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                return getColourChannelView(1, "green");<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>        /**<a name="line.718"></a>
+<span class="sourceLineNo">719</span>         * @return blue view<a name="line.719"></a>
+<span class="sourceLineNo">720</span>         */<a name="line.720"></a>
+<span class="sourceLineNo">721</span>        public ShortDataset getBlueView() {<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                return getColourChannelView(2, "blue");<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>        private ShortDataset getColourChannelView(final int channelOffset, final String cName) {<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                ShortDataset view = getElements(channelOffset);<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                view.setName(cName);<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                return view;<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>        @Override<a name="line.731"></a>
+<span class="sourceLineNo">732</span>        public Number max(boolean... ignored) {<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                short max = Short.MIN_VALUE;<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                final IndexIterator it = getIterator();<a name="line.734"></a>
+<span class="sourceLineNo">735</span><a name="line.735"></a>
+<span class="sourceLineNo">736</span>                while (it.hasNext()) {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                        for (int i = 0; i &lt; ISIZE; i++) {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                                final short value = data[it.index + i];<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                                if (value &gt; max)<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                                        max = value;<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        }<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                }<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                return max;<a name="line.743"></a>
+<span class="sourceLineNo">744</span>        }<a name="line.744"></a>
+<span class="sourceLineNo">745</span><a name="line.745"></a>
+<span class="sourceLineNo">746</span>        @Override<a name="line.746"></a>
+<span class="sourceLineNo">747</span>        public Number min(boolean... ignored) {<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                short max = Short.MAX_VALUE;<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                final IndexIterator it = getIterator();<a name="line.749"></a>
+<span class="sourceLineNo">750</span><a name="line.750"></a>
+<span class="sourceLineNo">751</span>                while (it.hasNext()) {<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                        for (int i = 0; i &lt; ISIZE; i++) {<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                                final short value = data[it.index + i];<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                                if (value &lt; max)<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                                        max = value;<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>                return max;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Random.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Random.html
new file mode 100644
index 0000000..abaabd4
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/dataset/RunningAverage.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/RunningAverage.html
new file mode 100644
index 0000000..9a31956
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/RunningAverage.html
@@ -0,0 +1,187 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.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(DoubleDataset.class, dataset));<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 = DatasetUtils.cast(DoubleDataset.class, eb);<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>        /**<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         * Update average<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         * @param dataset<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         */<a name="line.40"></a>
+<span class="sourceLineNo">041</span>        public void update(IDataset dataset) {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                count++;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                IndexIterator it = average.getIterator(true);<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                int[] pos = it.getPos();<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                double f = 1. / count;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                if (sqAveError == null) {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                        while (it.hasNext()) {<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                                double m = average.getAbs(it.index);<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                                double v = f * (dataset.getDouble(pos) - m);<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                                average.setAbs(it.index, m + v);<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                        }<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                } else {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                        double fs = f * f;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                        double gs = 2 * count - 1;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                        if (dataset instanceof Dataset) {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                                final Dataset d = (Dataset) dataset;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                                final Dataset e = d.getErrorBuffer();<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                                while (it.hasNext()) {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                                        double m = average.getAbs(it.index);<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                                        double v = f * (d.getDouble(pos) - m);<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                                        average.setAbs(it.index, m + v);<a name="line.61"></a>
+<span class="sourceLineNo">062</span><a name="line.62"></a>
+<span class="sourceLineNo">063</span>                                        if (e != null) {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                                                m = sqAveError.getDouble(pos);<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                                                v = fs * (e.getDouble(pos) - gs * m);<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                                                sqAveError.setItem(m + v, 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>                        } else { // only linear error available<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                                ILazyDataset le = dataset.getErrors();<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                                IDataset e = null;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                                if (le instanceof IDataset) {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                                        e = (IDataset) le;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                                } else if (le != null) {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                                        try {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                                                e = le.getSlice();<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                                        } catch (DatasetException e1) {<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>                                while (it.hasNext()) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                                        double m = average.getAbs(it.index);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                                        double v = f * (dataset.getDouble(pos) - m);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                                        average.setAbs(it.index, m + v);<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>                                        if (e != null) {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                                                m = sqAveError.getDouble(pos);<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                                                v = e.getDouble(pos);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                                                v = fs * (v * v - gs * m);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                                                sqAveError.setItem(m + v, 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>                        }<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>         * @return count<a name="line.97"></a>
+<span class="sourceLineNo">098</span>         */<a name="line.98"></a>
+<span class="sourceLineNo">099</span>        public int getCount() {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                return count;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>        }<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>        /**<a name="line.103"></a>
+<span class="sourceLineNo">104</span>         * @return current average<a name="line.104"></a>
+<span class="sourceLineNo">105</span>         */<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        public Dataset getCurrentAverage() {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                if (sqAveError != null) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        Dataset e = sqAveError.clone();<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                        DatasetUtils.makeFinite(e);<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                        average.setErrorBuffer(e);<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 average;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ShapeChangeChecker.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ShapeChangeChecker.html
new file mode 100644
index 0000000..a1696a5
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/dataset/ShapeUtils.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ShapeUtils.html
new file mode 100644
index 0000000..bf27a5a
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ShapeUtils.html
@@ -0,0 +1,720 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.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.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.List;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.SortedSet;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.TreeSet;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>public class ShapeUtils {<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>        private ShapeUtils() {<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>         * Calculate total number of items in given shape<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * @param shape<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         * @return size<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         */<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        public static long calcLongSize(final int[] shape) {<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                if (shape == null) { // special case of null-shaped<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                        return 0;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                }<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>                final int rank = shape.length;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                if (rank == 0) { // special case of zero-rank shape <a name="line.37"></a>
+<span class="sourceLineNo">038</span>                        return 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>                double dsize = 1.0;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                        // make sure the indexes isn't zero or negative<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                        if (shape[i] == 0) {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                                return 0;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                        } else if (shape[i] &lt; 0) {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                                throw new IllegalArgumentException(String.format(<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                                                "The %d-th is %d which is not allowed as it is negative", i, shape[i]));<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>                        dsize *= shape[i];<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>                // check to see if the size is larger than an integer, i.e. we can't allocate it<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                if (dsize &gt; Long.MAX_VALUE) {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                        throw new IllegalArgumentException("Size of the dataset is too large to allocate");<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                }<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                return (long) dsize;<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>         * Calculate total number of items in given shape<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         * @param shape<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         * @return size<a name="line.64"></a>
+<span class="sourceLineNo">065</span>         */<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        public static int calcSize(final int[] shape) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                long lsize = calcLongSize(shape);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>        <a name="line.68"></a>
+<span class="sourceLineNo">069</span>                // check to see if the size is larger than an integer, i.e. we can't allocate it<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                if (lsize &gt; Integer.MAX_VALUE) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                        throw new IllegalArgumentException("Size of the dataset is too large to allocate");<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                }<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                return (int) lsize;<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>         * Check if shapes are broadcast compatible<a name="line.77"></a>
+<span class="sourceLineNo">078</span>         * <a name="line.78"></a>
+<span class="sourceLineNo">079</span>         * @param ashape<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         * @param bshape<a name="line.80"></a>
+<span class="sourceLineNo">081</span>         * @return true if they are compatible<a name="line.81"></a>
+<span class="sourceLineNo">082</span>         */<a name="line.82"></a>
+<span class="sourceLineNo">083</span>        public static boolean areShapesBroadcastCompatible(final int[] ashape, final int[] bshape) {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                if (ashape == null || bshape == null) {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                        return ashape == bshape;<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>                if (ashape.length &lt; bshape.length) {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                        return areShapesBroadcastCompatible(bshape, ashape);<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>                for (int a = ashape.length - bshape.length, b = 0; a &lt; ashape.length &amp;&amp; b &lt; bshape.length; a++, b++) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                        if (ashape[a] != bshape[b] &amp;&amp; ashape[a] != 1 &amp;&amp; bshape[b] != 1) {<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>        <a name="line.97"></a>
+<span class="sourceLineNo">098</span>                return true;<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>
+<span class="sourceLineNo">102</span>         * Check if shapes are compatible, ignoring extra axes of length 1<a name="line.102"></a>
+<span class="sourceLineNo">103</span>         * <a name="line.103"></a>
+<span class="sourceLineNo">104</span>         * @param ashape<a name="line.104"></a>
+<span class="sourceLineNo">105</span>         * @param bshape<a name="line.105"></a>
+<span class="sourceLineNo">106</span>         * @return true if they are compatible<a name="line.106"></a>
+<span class="sourceLineNo">107</span>         */<a name="line.107"></a>
+<span class="sourceLineNo">108</span>        public static boolean areShapesCompatible(final int[] ashape, final int[] bshape) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                if (ashape == null || bshape == null) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                        return ashape == bshape;<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>                List&lt;Integer&gt; alist = new ArrayList&lt;Integer&gt;();<a name="line.113"></a>
+<span class="sourceLineNo">114</span>        <a name="line.114"></a>
+<span class="sourceLineNo">115</span>                for (int a : ashape) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                        if (a &gt; 1) alist.add(a);<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>                final int imax = alist.size();<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                int i = 0;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                for (int b : bshape) {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                        if (b == 1)<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                continue;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        if (i &gt;= imax || b != alist.get(i++))<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                return false;<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>                return i == imax;<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>         * Check if shapes are compatible but skip axis<a name="line.132"></a>
+<span class="sourceLineNo">133</span>         * <a name="line.133"></a>
+<span class="sourceLineNo">134</span>         * @param ashape<a name="line.134"></a>
+<span class="sourceLineNo">135</span>         * @param bshape<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         * @param axis<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         * @return true if they are compatible<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         */<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        public static boolean areShapesCompatible(final int[] ashape, final int[] bshape, final int axis) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                if (ashape == null || bshape == null) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                        return ashape == bshape;<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>                if (ashape.length != bshape.length) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        return false;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                }<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        <a name="line.147"></a>
+<span class="sourceLineNo">148</span>                final int rank = ashape.length;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                        if (i != axis &amp;&amp; ashape[i] != bshape[i]) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                                return false;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        }<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                }<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                return true;<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>         * Remove dimensions of 1 in given shape - from both ends only, if true<a name="line.158"></a>
+<span class="sourceLineNo">159</span>         * <a name="line.159"></a>
+<span class="sourceLineNo">160</span>         * @param oshape<a name="line.160"></a>
+<span class="sourceLineNo">161</span>         * @param onlyFromEnds<a name="line.161"></a>
+<span class="sourceLineNo">162</span>         * @return newly squeezed shape (or original if unsqueezed)<a name="line.162"></a>
+<span class="sourceLineNo">163</span>         */<a name="line.163"></a>
+<span class="sourceLineNo">164</span>        public static int[] squeezeShape(final int[] oshape, boolean onlyFromEnds) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                int unitDims = 0;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                int rank = oshape.length;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                int start = 0;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>        <a name="line.168"></a>
+<span class="sourceLineNo">169</span>                if (onlyFromEnds) {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                        int i = rank - 1;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        for (; i &gt;= 0; i--) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                                if (oshape[i] == 1) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                                        unitDims++;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                                } else {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                                        break;<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>                        for (int j = 0; j &lt;= i; j++) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                                if (oshape[j] == 1) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                                        unitDims++;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                                } else {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                                        start = j;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                                        break;<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>                } else {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                                if (oshape[i] == 1) {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                                        unitDims++;<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>        <a name="line.193"></a>
+<span class="sourceLineNo">194</span>                if (unitDims == 0) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                        return oshape;<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>                int[] newDims = new int[rank - unitDims];<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                if (unitDims == rank)<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        return newDims; // zero-rank dataset<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        <a name="line.201"></a>
+<span class="sourceLineNo">202</span>                if (onlyFromEnds) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        rank = newDims.length;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                                newDims[i] = oshape[i+start];<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                        }<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                } else {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        int j = 0;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                                if (oshape[i] &gt; 1) {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                                        newDims[j++] = oshape[i];<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                                        if (j &gt;= newDims.length)<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                                                break;<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>        <a name="line.217"></a>
+<span class="sourceLineNo">218</span>                return newDims;<a name="line.218"></a>
+<span class="sourceLineNo">219</span>        }<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>        /**<a name="line.221"></a>
+<span class="sourceLineNo">222</span>         * Remove dimension of 1 in given shape<a name="line.222"></a>
+<span class="sourceLineNo">223</span>         * <a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * @param oshape<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         * @param axis<a name="line.225"></a>
+<span class="sourceLineNo">226</span>         * @return newly squeezed shape<a name="line.226"></a>
+<span class="sourceLineNo">227</span>         */<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        public static int[] squeezeShape(final int[] oshape, int axis) {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                if (oshape == null) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        return null;<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>                final int rank = oshape.length;<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                if (rank == 0) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        return new int[0];<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                if (axis &lt; 0) {<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                        axis += rank;<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                }<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                if (axis &lt; 0 || axis &gt;= rank) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                        throw new IllegalArgumentException("Axis argument is outside allowed range");<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                }<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                int[] nshape = new int[rank-1];<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                for (int i = 0; i &lt; axis; i++) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        nshape[i] = oshape[i];<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                }<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                for (int i = axis+1; i &lt; rank; i++) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                        nshape[i-1] = oshape[i];<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                }<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                return nshape;<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>         * Get shape from object (array or list supported)<a name="line.254"></a>
+<span class="sourceLineNo">255</span>         * @param obj<a name="line.255"></a>
+<span class="sourceLineNo">256</span>         * @return shape can be null if obj is null<a name="line.256"></a>
+<span class="sourceLineNo">257</span>         */<a name="line.257"></a>
+<span class="sourceLineNo">258</span>        public static int[] getShapeFromObject(final Object obj) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                if (obj == null) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                        return null;<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>                ArrayList&lt;Integer&gt; lshape = new ArrayList&lt;Integer&gt;();<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                getShapeFromObj(lshape, obj, 0);<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>                final int rank = lshape.size();<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                final int[] shape = new int[rank];<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                        shape[i] = lshape.get(i);<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>                return shape;<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>         * Get shape from object<a name="line.276"></a>
+<span class="sourceLineNo">277</span>         * @param ldims<a name="line.277"></a>
+<span class="sourceLineNo">278</span>         * @param obj<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         * @param depth<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         * @return true if there is a possibility of differing lengths<a name="line.280"></a>
+<span class="sourceLineNo">281</span>         */<a name="line.281"></a>
+<span class="sourceLineNo">282</span>        private static boolean getShapeFromObj(final ArrayList&lt;Integer&gt; ldims, Object obj, int depth) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                if (obj == null)<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                        return true;<a name="line.284"></a>
+<span class="sourceLineNo">285</span>        <a name="line.285"></a>
+<span class="sourceLineNo">286</span>                if (obj instanceof List&lt;?&gt;) {<a name="line.286"></a>
+<span class="sourceLineNo">287</span>                        List&lt;?&gt; jl = (List&lt;?&gt;) obj;<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                        int l = jl.size();<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                        updateShape(ldims, depth, l);<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                        for (int i = 0; i &lt; l; i++) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                                Object lo = jl.get(i);<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                                if (!getShapeFromObj(ldims, lo, depth + 1)) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                                        break;<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                                }<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                        }<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                        return true;<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                }<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                Class&lt;? extends Object&gt; ca = obj.getClass().getComponentType();<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                if (ca != null) {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                        final int l = Array.getLength(obj);<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                        updateShape(ldims, depth, l);<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                        if (InterfaceUtils.isElementSupported(ca)) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                                return true;<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                        }<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                        for (int i = 0; i &lt; l; i++) {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                                Object lo = Array.get(obj, i);<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                                if (!getShapeFromObj(ldims, lo, depth + 1)) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                                        break;<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>                        return true;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                } else if (obj instanceof IDataset) {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                        int[] s = ((IDataset) obj).getShape();<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                        for (int i = 0; i &lt; s.length; i++) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                                updateShape(ldims, depth++, s[i]);<a name="line.315"></a>
+<span class="sourceLineNo">316</span>                        }<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                        return true;<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                } else {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                        return false; // not an array of any type<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><a name="line.322"></a>
+<span class="sourceLineNo">323</span>        private static void updateShape(final ArrayList&lt;Integer&gt; ldims, final int depth, final int l) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                if (depth &gt;= ldims.size()) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                        ldims.add(l);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                } else if (l &gt; ldims.get(depth)) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                        ldims.set(depth, l);<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                }<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        }<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span>        /**<a name="line.331"></a>
+<span class="sourceLineNo">332</span>         * Get n-D position from given index<a name="line.332"></a>
+<span class="sourceLineNo">333</span>         * @param n index<a name="line.333"></a>
+<span class="sourceLineNo">334</span>         * @param shape<a name="line.334"></a>
+<span class="sourceLineNo">335</span>         * @return n-D position<a name="line.335"></a>
+<span class="sourceLineNo">336</span>         */<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        public static int[] getNDPositionFromShape(int n, int[] shape) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                if (shape == null) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                        return null;<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>                int rank = shape.length;<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                if (rank == 0) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                        return new int[0];<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>                if (rank == 1) {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                        return new int[] { n };<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>                int[] output = new int[rank];<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                for (rank--; rank &gt; 0; rank--) {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                        output[rank] = n % shape[rank];<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                        n /= shape[rank];<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                }<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                output[0] = n;<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        <a name="line.357"></a>
+<span class="sourceLineNo">358</span>                return output;<a name="line.358"></a>
+<span class="sourceLineNo">359</span>        }<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>        /**<a name="line.361"></a>
+<span class="sourceLineNo">362</span>         * Get flattened view index of given position <a name="line.362"></a>
+<span class="sourceLineNo">363</span>         * @param shape<a name="line.363"></a>
+<span class="sourceLineNo">364</span>         * @param pos<a name="line.364"></a>
+<span class="sourceLineNo">365</span>         *            the integer array specifying the n-D position<a name="line.365"></a>
+<span class="sourceLineNo">366</span>         * @return the index on the flattened dataset<a name="line.366"></a>
+<span class="sourceLineNo">367</span>         */<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        public static int getFlat1DIndex(final int[] shape, final int[] pos) {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                final int imax = pos.length;<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                if (imax == 0) {<a name="line.370"></a>
+<span class="sourceLineNo">371</span>                        return 0;<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>                return AbstractDataset.get1DIndexFromShape(shape, pos);<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>         * This function takes a dataset and checks its shape against another dataset. If they are both of the same size,<a name="line.378"></a>
+<span class="sourceLineNo">379</span>         * then this returns with no error, if there is a problem, then an error is thrown.<a name="line.379"></a>
+<span class="sourceLineNo">380</span>         * <a name="line.380"></a>
+<span class="sourceLineNo">381</span>         * @param g<a name="line.381"></a>
+<span class="sourceLineNo">382</span>         *            The first dataset to be compared<a name="line.382"></a>
+<span class="sourceLineNo">383</span>         * @param h<a name="line.383"></a>
+<span class="sourceLineNo">384</span>         *            The second dataset to be compared<a name="line.384"></a>
+<span class="sourceLineNo">385</span>         * @throws IllegalArgumentException<a name="line.385"></a>
+<span class="sourceLineNo">386</span>         *             This will be thrown if there is a problem with the compatibility<a name="line.386"></a>
+<span class="sourceLineNo">387</span>         */<a name="line.387"></a>
+<span class="sourceLineNo">388</span>        public static void checkCompatibility(final ILazyDataset g, final ILazyDataset h) throws IllegalArgumentException {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                if (!areShapesCompatible(g.getShape(), h.getShape())) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                        throw new IllegalArgumentException("Shapes do not match");<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>        /**<a name="line.394"></a>
+<span class="sourceLineNo">395</span>         * Check that axis is in range [-rank,rank)<a name="line.395"></a>
+<span class="sourceLineNo">396</span>         * <a name="line.396"></a>
+<span class="sourceLineNo">397</span>         * @param rank<a name="line.397"></a>
+<span class="sourceLineNo">398</span>         * @param axis<a name="line.398"></a>
+<span class="sourceLineNo">399</span>         * @return sanitized axis in range [0, rank)<a name="line.399"></a>
+<span class="sourceLineNo">400</span>         * @since 2.1<a name="line.400"></a>
+<span class="sourceLineNo">401</span>         */<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        public static int checkAxis(int rank, int axis) {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                if (axis &lt; 0) {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                        axis += rank;<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 (axis &lt; 0 || axis &gt;= rank) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                        throw new IllegalArgumentException("Axis " + axis + " given is out of range [0, " + rank + ")");<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                }<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                return axis;<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>        private static int[] convert(Collection&lt;Integer&gt; list) {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                int[] array = new int[list.size()];<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                int i = 0;<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                for (Integer l : list) {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                        array[i++] = l;<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                }<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                return array;<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>         * Check that all axes are in range [-rank,rank)<a name="line.423"></a>
+<span class="sourceLineNo">424</span>         * @param rank<a name="line.424"></a>
+<span class="sourceLineNo">425</span>         * @param axes<a name="line.425"></a>
+<span class="sourceLineNo">426</span>         * @return sanitized axes in range [0, rank) and sorted in increasing order<a name="line.426"></a>
+<span class="sourceLineNo">427</span>         * @since 2.2<a name="line.427"></a>
+<span class="sourceLineNo">428</span>         */<a name="line.428"></a>
+<span class="sourceLineNo">429</span>        public static int[] checkAxes(int rank, int... axes) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                return convert(sanitizeAxes(rank, axes));<a name="line.430"></a>
+<span class="sourceLineNo">431</span>        }<a name="line.431"></a>
+<span class="sourceLineNo">432</span><a name="line.432"></a>
+<span class="sourceLineNo">433</span>        /**<a name="line.433"></a>
+<span class="sourceLineNo">434</span>         * Check that all axes are in range [-rank,rank)<a name="line.434"></a>
+<span class="sourceLineNo">435</span>         * @param rank<a name="line.435"></a>
+<span class="sourceLineNo">436</span>         * @param axes<a name="line.436"></a>
+<span class="sourceLineNo">437</span>         * @return sanitized axes in range [0, rank) and sorted in increasing order<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         * @since 2.2<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         */<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        private static SortedSet&lt;Integer&gt; sanitizeAxes(int rank, int... axes) {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                SortedSet&lt;Integer&gt; nAxes = new TreeSet&lt;&gt;(); <a name="line.441"></a>
+<span class="sourceLineNo">442</span>                for (int i = 0; i &lt; axes.length; i++) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                        nAxes.add(checkAxis(rank, axes[i]));<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>                return nAxes;<a name="line.446"></a>
+<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
+<span class="sourceLineNo">448</span><a name="line.448"></a>
+<span class="sourceLineNo">449</span>        /**<a name="line.449"></a>
+<span class="sourceLineNo">450</span>         * @param rank<a name="line.450"></a>
+<span class="sourceLineNo">451</span>         * @param axes<a name="line.451"></a>
+<span class="sourceLineNo">452</span>         * @return remaining axes not given by input<a name="line.452"></a>
+<span class="sourceLineNo">453</span>         * @since 2.2<a name="line.453"></a>
+<span class="sourceLineNo">454</span>         */<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        public static int[] getRemainingAxes(int rank, int... axes) {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                SortedSet&lt;Integer&gt; nAxes = sanitizeAxes(rank, axes);<a name="line.456"></a>
+<span class="sourceLineNo">457</span><a name="line.457"></a>
+<span class="sourceLineNo">458</span>                int[] remains = new int[rank - axes.length];<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                int j = 0;<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                        if (!nAxes.contains(i)) {<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                                remains[j++] = i;<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>                return remains;<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>         * Remove axes from shape<a name="line.469"></a>
+<span class="sourceLineNo">470</span>         * @param shape<a name="line.470"></a>
+<span class="sourceLineNo">471</span>         * @param axes<a name="line.471"></a>
+<span class="sourceLineNo">472</span>         * @return reduced shape<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         * @since 2.2<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         */<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        public static int[] reduceShape(int[] shape, int... axes) {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                int[] remain = getRemainingAxes(shape.length, axes);<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                for (int i = 0; i &lt; remain.length; i++) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                        int a = remain[i];<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                        remain[i] = shape[a];<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                }<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                return remain;<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 reduced axes to 1<a name="line.485"></a>
+<span class="sourceLineNo">486</span>         * @param shape<a name="line.486"></a>
+<span class="sourceLineNo">487</span>         * @param axes<a name="line.487"></a>
+<span class="sourceLineNo">488</span>         * @return shape with same rank<a name="line.488"></a>
+<span class="sourceLineNo">489</span>         * @since 2.2<a name="line.489"></a>
+<span class="sourceLineNo">490</span>         */<a name="line.490"></a>
+<span class="sourceLineNo">491</span>        public static int[] getReducedShapeKeepRank(int[] shape, int... axes) {<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                int[] keep = shape.clone();<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                axes = checkAxes(shape.length, axes);<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                for (int i : axes) {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                        keep[i] = 1;<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                }<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                return keep;<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>         * @param a<a name="line.501"></a>
+<span class="sourceLineNo">502</span>         * @param b<a name="line.502"></a>
+<span class="sourceLineNo">503</span>         * @return true if arrays only differs by unit entries<a name="line.503"></a>
+<span class="sourceLineNo">504</span>         * @since 2.2<a name="line.504"></a>
+<span class="sourceLineNo">505</span>         */<a name="line.505"></a>
+<span class="sourceLineNo">506</span>        public static boolean differsByOnes(int[] a, int[] b) {<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                int aRank = a.length;<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                int bRank = b.length;<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                int ai = 0;<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                int bi = 0;<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                int al = 1;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                int bl = 1;<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                do {<a name="line.513"></a>
+<span class="sourceLineNo">514</span>                        while (ai &lt; aRank &amp;&amp; (al = a[ai++]) == 1) { // next non-unit dimension<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                        }<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                        while (bi &lt; bRank &amp;&amp; (bl = b[bi++]) == 1) {<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                        }<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                        if (al != bl) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                                return false;<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                        }<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                } while (ai &lt; aRank &amp;&amp; bi &lt; bRank);<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>                if (ai == aRank) {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                        while (bi &lt; bRank) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                                if (b[bi++] != 1) {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                                        return false;<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>                if (bi == bRank) {<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                        while (ai &lt; aRank) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                                if (a[ai++] != 1) {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                                        return false;<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                                }<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                        }<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                }<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                return true;<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>         * Calculate the padding difference between two shapes. Padding can be positive (negative)<a name="line.541"></a>
+<span class="sourceLineNo">542</span>         * for added (removed) dimensions. NB positive or negative padding is given after matched<a name="line.542"></a>
+<span class="sourceLineNo">543</span>         * dimensions<a name="line.543"></a>
+<span class="sourceLineNo">544</span>         * @param aShape<a name="line.544"></a>
+<span class="sourceLineNo">545</span>         * @param bShape<a name="line.545"></a>
+<span class="sourceLineNo">546</span>         * @return padding can be null if shapes are equal<a name="line.546"></a>
+<span class="sourceLineNo">547</span>         * @throws IllegalArgumentException if one shape is null but not the other, or if shapes do<a name="line.547"></a>
+<span class="sourceLineNo">548</span>         * not possess common non-unit lengths<a name="line.548"></a>
+<span class="sourceLineNo">549</span>         * @since 2.2<a name="line.549"></a>
+<span class="sourceLineNo">550</span>         */<a name="line.550"></a>
+<span class="sourceLineNo">551</span>        public static int[] calcShapePadding(int[] aShape, int[] bShape) {<a name="line.551"></a>
+<span class="sourceLineNo">552</span>                if (Arrays.equals(aShape, bShape)) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                        return null;<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>                if (aShape == null || bShape == null) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                        throw new IllegalArgumentException("If one shape is null then the other must be null too");<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>                if (!differsByOnes(aShape, bShape)) {<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                        throw new IllegalArgumentException("Non-unit lengths in shapes must be equal");<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                }<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                int aRank = aShape.length;<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                int bRank = bShape.length;<a name="line.564"></a>
+<span class="sourceLineNo">565</span><a name="line.565"></a>
+<span class="sourceLineNo">566</span>                int[] padding;<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                if (aRank == 0 || bRank == 0) {<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                        padding = new int[1];<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                        padding[0] = aRank == 0 ? bRank : -aRank;<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        return padding;<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>                padding = new int[Math.max(aRank, bRank) + 2];<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                int ai = 0;<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                int bi = 0;<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                int al = 0;<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                int bl = 0;<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                int pi = 0;<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                int p;<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                boolean aLeft = ai &lt; aRank;<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                boolean bLeft = bi &lt; bRank;<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                while (aLeft &amp;&amp; bLeft) {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                        if (aLeft) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                                al = aShape[ai++];<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                                aLeft = ai &lt; aRank;<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                        }<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                        if (bLeft) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                                bl = bShape[bi++];<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                                bLeft = bi &lt; bRank;<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                        }<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                        if (al != bl) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                                p = 0;<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                                while (al == 1 &amp;&amp; aLeft) {<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                                        al = aShape[ai++];<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                                        aLeft = ai &lt; aRank;<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                                        p--;<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                                }<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                                while (bl == 1 &amp;&amp; bLeft) {<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                                        bl = bShape[bi++];<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                                        bLeft = bi &lt; bRank;<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                                        p++;<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                                }<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                                padding[pi++] = p;<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                        }<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        if (al == bl) {<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                                pi++;<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>                if (aLeft || bLeft) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        p = 0;<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                        while (ai &lt; aRank &amp;&amp; aShape[ai++] == 1) {<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                                p--;<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                        }<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                        while (bi &lt; bRank &amp;&amp; bShape[bi++] == 1) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                                p++;<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                        }<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                        padding[pi++] = p;<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>                return Arrays.copyOf(padding, pi);<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>        static int[] padShape(int[] padding, int nr, int[] oldShape) {<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                if (padding == null) {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        return oldShape.clone();<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                }<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                int or = oldShape.length;<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                int[] newShape = new int[nr];<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                int di = 0;<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                for (int i = 0, si = 0; i &lt; (or+1) &amp;&amp; si &lt;= or &amp;&amp; di &lt; nr; i++) {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                        int c = padding[i];<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                        if (c == 0) {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                                newShape[di++] = oldShape[si++];<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                        } else if (c &gt; 0) {<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                                int dim = di + c;<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                                while (di &lt; dim) {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                                        newShape[di++] = 1;<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                                }<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                        } else if (c &lt; 0) {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                                si -= c; // remove dimensions by skipping forward in source array (should check that they are unit entries)<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>                while (di &lt; nr) {<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                        newShape[di++] = 1;<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                }<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                return newShape;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ShortDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ShortDataset.html
new file mode 100644
index 0000000..4ff9bd5
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/ShortDataset.html
@@ -0,0 +1,1354 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// This is generated from DoubleDataset.java by fromdouble.py<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.ArrayList;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.Arrays;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.List;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.Set;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.TreeSet;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.commons.math3.complex.Complex;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.eclipse.january.metadata.StatisticsMetadata;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>/**<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * Extend dataset for short values // PRIM_TYPE<a name="line.28"></a>
+<span class="sourceLineNo">029</span> */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>public class ShortDataset extends AbstractDataset {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        // pin UID to base class<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        protected short[] data; // subclass alias // PRIM_TYPE<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>        @Override<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        protected void setData() {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                data = (short[]) odata; // PRIM_TYPE<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        }<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>        protected static short[] createArray(final int size) { // PRIM_TYPE<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                short[] array = null; // PRIM_TYPE<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>                try {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                        array = new short[size]; // PRIM_TYPE<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                } catch (OutOfMemoryError e) {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                }<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return array;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        @Override<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        public int getDType() {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                return INT16; // DATA_TYPE<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * Create a null dataset<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        ShortDataset() {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        }<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>        /**<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * Create a zero-filled dataset of given shape<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         * @param shape<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         */<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        ShortDataset(final int... shape) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                if (shape != null) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        size = ShapeUtils.calcSize(shape);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        this.shape = shape.clone();<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        try {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                                odata = data = createArray(size);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        } catch (Throwable t) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                throw new IllegalArgumentException(t);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        }<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>        /**<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         * Create a dataset using given data<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @param data<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         * @param shape<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         *            (can be null to create 1D dataset)<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        ShortDataset(final short[] data, int... shape) { // PRIM_TYPE<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                if (data == null) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        throw new IllegalArgumentException("Data must not be null");<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                if (shape == null || shape.length == 0) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                        shape = new int[] { data.length };<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                size = ShapeUtils.calcSize(shape);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                if (size != data.length) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                        Arrays.toString(shape), data.length));<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                }<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                this.shape = size == 0 ? null : shape.clone();<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>                odata = this.data = data;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>        }<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>        /**<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * Copy a dataset<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         * @param dataset<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         */<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        ShortDataset(final ShortDataset dataset) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                copyToView(dataset, this, true, true);<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>                try {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        if (dataset.stride == null) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                if (dataset.data != null) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                                        odata = data = dataset.data.clone();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                }<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        } else {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                offset = 0;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                stride = null;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                base = null;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                odata = data = createArray(size);<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                IndexIterator iter = dataset.getIterator();<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                                for (int i = 0; iter.hasNext(); i++) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                                        data[i] = dataset.data[iter.index];<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                                }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        }<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                } catch (Throwable t) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        throw new IllegalArgumentException(t);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                }<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>        /**<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         * Copy and cast a dataset to this class type<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         * @param dataset<a name="line.138"></a>
+<span class="sourceLineNo">139</span>         */<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        ShortDataset(final Dataset dataset) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                copyToView(dataset, this, true, false);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                offset = 0;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                stride = null;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                base = null;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                try {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        odata = data = createArray(size);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                } catch (Throwable t) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                        throw new IllegalArgumentException(t);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                }<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                IndexIterator iter = dataset.getIterator();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                for (int i = 0; iter.hasNext(); i++) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                        data[i] = (short) dataset.getElementLongAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                }<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>        @Override<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        public boolean equals(Object obj) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                if (this == obj) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        return true;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                }<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>                if (obj == null) {<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 (!getClass().equals(obj.getClass())) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                        if (getRank() == 0) { // for zero-rank datasets<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                                return obj.equals(getObjectAbs(offset));<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                        }<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><a name="line.173"></a>
+<span class="sourceLineNo">174</span>                ShortDataset other = (ShortDataset) obj;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                if (size != other.size) {<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>                if (!Arrays.equals(shape, other.shape)) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                        return false;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                if (data == other.data &amp;&amp; stride == null &amp;&amp; other.stride == null) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        return true;<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>                IndexIterator iter = getIterator();<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                IndexIterator oiter = other.getIterator();<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                        if (data[iter.index] != other.data[oiter.index]) { // OBJECT_UNEQUAL<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                                return false;<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>                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 int hashCode() {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                return super.hashCode();<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 ShortDataset clone() {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                return new ShortDataset(this);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        }<a name="line.203"></a>
+<span class="sourceLineNo">204</span><a name="line.204"></a>
+<span class="sourceLineNo">205</span>        /**<a name="line.205"></a>
+<span class="sourceLineNo">206</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * sequences or arrays are padded with zeros.<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         *<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * @param obj<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         * @return dataset with contents given by input<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         */<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        static ShortDataset createFromObject(final Object obj) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                ShortDataset result = new ShortDataset();<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>                if (obj != null) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                        result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                        result.size = ShapeUtils.calcSize(result.shape);<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>                                result.odata = result.data = createArray(result.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(result.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><a name="line.225"></a>
+<span class="sourceLineNo">226</span>                        int[] pos = new int[result.shape.length];<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                        result.fillData(obj, 0, pos);<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>                return result;<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>         *<a name="line.234"></a>
+<span class="sourceLineNo">235</span>         * @param stop<a name="line.235"></a>
+<span class="sourceLineNo">236</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         */<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        static ShortDataset createRange(final double stop) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                return createRange(0, stop, 1);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        }<a name="line.240"></a>
+<span class="sourceLineNo">241</span>        <a name="line.241"></a>
+<span class="sourceLineNo">242</span>        /**<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         *<a name="line.243"></a>
+<span class="sourceLineNo">244</span>         * @param start<a name="line.244"></a>
+<span class="sourceLineNo">245</span>         * @param stop<a name="line.245"></a>
+<span class="sourceLineNo">246</span>         * @param step<a name="line.246"></a>
+<span class="sourceLineNo">247</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.247"></a>
+<span class="sourceLineNo">248</span>         */<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        static ShortDataset createRange(final double start, final double stop, final double step) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                int size = calcSteps(start, stop, step);<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                ShortDataset result = new ShortDataset(size);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                for (int i = 0; i &lt; size; i++) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        result.data[i] = (short) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                }<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                return result;<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>        /**<a name="line.258"></a>
+<span class="sourceLineNo">259</span>         * @param shape<a name="line.259"></a>
+<span class="sourceLineNo">260</span>         * @return a dataset filled with ones<a name="line.260"></a>
+<span class="sourceLineNo">261</span>         */<a name="line.261"></a>
+<span class="sourceLineNo">262</span>        static ShortDataset ones(final int... shape) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                return new ShortDataset(shape).fill(1);<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 ShortDataset fill(final Object obj) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                setDirty();<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                short dv = (short) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                IndexIterator iter = getIterator();<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                while (iter.hasNext()) {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                        data[iter.index] = dv;<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>                return this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         * @return data buffer as linear array<a name="line.280"></a>
+<span class="sourceLineNo">281</span>         */<a name="line.281"></a>
+<span class="sourceLineNo">282</span>        public short[] getData() { // PRIM_TYPE<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                return data;<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>        protected int getBufferLength() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                if (data == null)<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                        return 0;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                return data.length;<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>        @Override<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        public ShortDataset getView(boolean deepCopyMetadata) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                ShortDataset view = new ShortDataset();<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                view.setData();<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                return view;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>        }<a name="line.299"></a>
+<span class="sourceLineNo">300</span><a name="line.300"></a>
+<span class="sourceLineNo">301</span>        /**<a name="line.301"></a>
+<span class="sourceLineNo">302</span>         * 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.302"></a>
+<span class="sourceLineNo">303</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.303"></a>
+<span class="sourceLineNo">304</span>         *<a name="line.304"></a>
+<span class="sourceLineNo">305</span>         * @param index<a name="line.305"></a>
+<span class="sourceLineNo">306</span>         *            absolute index<a name="line.306"></a>
+<span class="sourceLineNo">307</span>         * @return value<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         */<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        public short getAbs(final int index) { // PRIM_TYPE<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                return data[index];<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>        @Override<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                return data[index] != 0; // BOOLEAN_FALSE<a name="line.315"></a>
+<span class="sourceLineNo">316</span>        }<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span>        @Override<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        public double getElementDoubleAbs(final int index) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                return data[index]; // BOOLEAN_ZERO<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 long getElementLongAbs(final int index) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                return data[index]; // BOOLEAN_ZERO // OMIT_TOLONG_INT<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>        @Override<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        public Object getObjectAbs(final int index) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                return data[index];<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>        @Override<a name="line.333"></a>
+<span class="sourceLineNo">334</span>        public String getStringAbs(final int index) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                return stringFormat == null ? String.format("%d", data[index]) : // FORMAT_STRING<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                        stringFormat.format(data[index]);<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>         * Set a value at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.341"></a>
+<span class="sourceLineNo">342</span>         *<a name="line.342"></a>
+<span class="sourceLineNo">343</span>         * @param index<a name="line.343"></a>
+<span class="sourceLineNo">344</span>         *            absolute index<a name="line.344"></a>
+<span class="sourceLineNo">345</span>         * @param val<a name="line.345"></a>
+<span class="sourceLineNo">346</span>         *            new value<a name="line.346"></a>
+<span class="sourceLineNo">347</span>         */<a name="line.347"></a>
+<span class="sourceLineNo">348</span>        public void setAbs(final int index, final short val) { // PRIM_TYPE<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                setDirty();<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                data[index] = val;<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>        @Override<a name="line.353"></a>
+<span class="sourceLineNo">354</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                setDirty();<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                short[] dsrc = (short[]) src; // PRIM_TYPE<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                data[dindex] = dsrc[sindex];<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 void setObjectAbs(final int index, final Object obj) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                if (index &lt; 0 || index &gt; data.length) {<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                        throw new IndexOutOfBoundsException("Index given is outside dataset");<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>                setAbs(index, (short) DTypeUtils.toLong(obj)); // FROM_OBJECT<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>         * @return item in first position<a name="line.370"></a>
+<span class="sourceLineNo">371</span>         * @since 2.0<a name="line.371"></a>
+<span class="sourceLineNo">372</span>         */<a name="line.372"></a>
+<span class="sourceLineNo">373</span>        public short get() { // PRIM_TYPE<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                return data[getFirst1DIndex()];<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>         * @return item in given position<a name="line.379"></a>
+<span class="sourceLineNo">380</span>         */<a name="line.380"></a>
+<span class="sourceLineNo">381</span>        public short get(final int i) { // PRIM_TYPE<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                return data[get1DIndex(i)];<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        }<a name="line.383"></a>
+<span class="sourceLineNo">384</span><a name="line.384"></a>
+<span class="sourceLineNo">385</span>        /**<a name="line.385"></a>
+<span class="sourceLineNo">386</span>         * @param i<a name="line.386"></a>
+<span class="sourceLineNo">387</span>         * @param j<a name="line.387"></a>
+<span class="sourceLineNo">388</span>         * @return item in given position<a name="line.388"></a>
+<span class="sourceLineNo">389</span>         */<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        public short get(final int i, final int j) { // PRIM_TYPE<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                return data[get1DIndex(i, j)];<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        }<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>        /**<a name="line.394"></a>
+<span class="sourceLineNo">395</span>         * @param pos<a name="line.395"></a>
+<span class="sourceLineNo">396</span>         * @return item in given position<a name="line.396"></a>
+<span class="sourceLineNo">397</span>         */<a name="line.397"></a>
+<span class="sourceLineNo">398</span>        public short get(final int... pos) { // PRIM_TYPE<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                return data[get1DIndex(pos)];<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>        @Override<a name="line.402"></a>
+<span class="sourceLineNo">403</span>        public Object getObject() {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                return Short.valueOf(get()); // CLASS_TYPE<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>        @Override<a name="line.407"></a>
+<span class="sourceLineNo">408</span>        public Object getObject(final int i) {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                return Short.valueOf(get(i)); // CLASS_TYPE<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>        @Override<a name="line.412"></a>
+<span class="sourceLineNo">413</span>        public Object getObject(final int i, final int j) {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                return Short.valueOf(get(i, j)); // CLASS_TYPE<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>        @Override<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        public Object getObject(final int... pos) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                return Short.valueOf(get(pos)); // CLASS_TYPE<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>        @Override<a name="line.422"></a>
+<span class="sourceLineNo">423</span>        public String getString() {<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                return getStringAbs(getFirst1DIndex());<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>        @Override<a name="line.427"></a>
+<span class="sourceLineNo">428</span>        public String getString(final int i) {<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                return getStringAbs(get1DIndex(i));<a name="line.429"></a>
+<span class="sourceLineNo">430</span>        }<a name="line.430"></a>
+<span class="sourceLineNo">431</span><a name="line.431"></a>
+<span class="sourceLineNo">432</span>        @Override<a name="line.432"></a>
+<span class="sourceLineNo">433</span>        public String getString(final int i, final int j) {<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                return getStringAbs(get1DIndex(i, j));<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 String getString(final int... pos) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                return getStringAbs(get1DIndex(pos));<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        }<a name="line.440"></a>
+<span class="sourceLineNo">441</span><a name="line.441"></a>
+<span class="sourceLineNo">442</span>        @Override<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        public double getDouble() {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                return get(); // BOOLEAN_ZERO<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>        @Override<a name="line.447"></a>
+<span class="sourceLineNo">448</span>        public double getDouble(final int i) {<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                return get(i); // BOOLEAN_ZERO<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>        @Override<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        public double getDouble(final int i, final int j) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                return get(i, j); // BOOLEAN_ZERO<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>        @Override<a name="line.457"></a>
+<span class="sourceLineNo">458</span>        public double getDouble(final int... pos) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                return get(pos); // BOOLEAN_ZERO<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>        @Override<a name="line.462"></a>
+<span class="sourceLineNo">463</span>        public float getFloat() {<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                return get(); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        }<a name="line.465"></a>
+<span class="sourceLineNo">466</span><a name="line.466"></a>
+<span class="sourceLineNo">467</span>        @Override<a name="line.467"></a>
+<span class="sourceLineNo">468</span>        public float getFloat(final int i) {<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                return get(i); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        }<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>        @Override<a name="line.472"></a>
+<span class="sourceLineNo">473</span>        public float getFloat(final int i, final int j) {<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_REAL_CAST<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 float getFloat(final int... pos) {<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                return get(pos); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        }<a name="line.480"></a>
+<span class="sourceLineNo">481</span><a name="line.481"></a>
+<span class="sourceLineNo">482</span>        @Override<a name="line.482"></a>
+<span class="sourceLineNo">483</span>        public long getLong() {<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.484"></a>
+<span class="sourceLineNo">485</span>        }<a name="line.485"></a>
+<span class="sourceLineNo">486</span><a name="line.486"></a>
+<span class="sourceLineNo">487</span>        @Override<a name="line.487"></a>
+<span class="sourceLineNo">488</span>        public long getLong(final int i) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.489"></a>
+<span class="sourceLineNo">490</span>        }<a name="line.490"></a>
+<span class="sourceLineNo">491</span><a name="line.491"></a>
+<span class="sourceLineNo">492</span>        @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span>        public long getLong(final int i, final int j) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.497"></a>
+<span class="sourceLineNo">498</span>        public long getLong(final int... pos) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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 getInt() {<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.507"></a>
+<span class="sourceLineNo">508</span>        public int getInt(final int i) {<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.509"></a>
+<span class="sourceLineNo">510</span>        }<a name="line.510"></a>
+<span class="sourceLineNo">511</span><a name="line.511"></a>
+<span class="sourceLineNo">512</span>        @Override<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        public int getInt(final int i, final int j) {<a name="line.513"></a>
+<span class="sourceLineNo">514</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.514"></a>
+<span class="sourceLineNo">515</span>        }<a name="line.515"></a>
+<span class="sourceLineNo">516</span><a name="line.516"></a>
+<span class="sourceLineNo">517</span>        @Override<a name="line.517"></a>
+<span class="sourceLineNo">518</span>        public int getInt(final int... pos) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.519"></a>
+<span class="sourceLineNo">520</span>        }<a name="line.520"></a>
+<span class="sourceLineNo">521</span><a name="line.521"></a>
+<span class="sourceLineNo">522</span>        @Override<a name="line.522"></a>
+<span class="sourceLineNo">523</span>        public short getShort() {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.524"></a>
+<span class="sourceLineNo">525</span>        }<a name="line.525"></a>
+<span class="sourceLineNo">526</span><a name="line.526"></a>
+<span class="sourceLineNo">527</span>        @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        public short getShort(final int i) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.529"></a>
+<span class="sourceLineNo">530</span>        }<a name="line.530"></a>
+<span class="sourceLineNo">531</span><a name="line.531"></a>
+<span class="sourceLineNo">532</span>        @Override<a name="line.532"></a>
+<span class="sourceLineNo">533</span>        public short getShort(final int i, final int j) {<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.537"></a>
+<span class="sourceLineNo">538</span>        public short getShort(final int... pos) {<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.539"></a>
+<span class="sourceLineNo">540</span>        }<a name="line.540"></a>
+<span class="sourceLineNo">541</span><a name="line.541"></a>
+<span class="sourceLineNo">542</span>        @Override<a name="line.542"></a>
+<span class="sourceLineNo">543</span>        public byte getByte() {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                return (byte) get(); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte(final int i) {<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                return (byte) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.549"></a>
+<span class="sourceLineNo">550</span>        }<a name="line.550"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>        @Override<a name="line.552"></a>
+<span class="sourceLineNo">553</span>        public byte getByte(final int i, final int j) {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                return (byte) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte(final int... pos) {<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                return (byte) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.559"></a>
+<span class="sourceLineNo">560</span>        }<a name="line.560"></a>
+<span class="sourceLineNo">561</span><a name="line.561"></a>
+<span class="sourceLineNo">562</span>        @Override<a name="line.562"></a>
+<span class="sourceLineNo">563</span>        public boolean getBoolean() {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                return get() != 0; // BOOLEAN_FALSE<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>        @Override<a name="line.567"></a>
+<span class="sourceLineNo">568</span>        public boolean getBoolean(final int i) {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                return get(i) != 0; // BOOLEAN_FALSE<a name="line.569"></a>
+<span class="sourceLineNo">570</span>        }<a name="line.570"></a>
+<span class="sourceLineNo">571</span><a name="line.571"></a>
+<span class="sourceLineNo">572</span>        @Override<a name="line.572"></a>
+<span class="sourceLineNo">573</span>        public boolean getBoolean(final int i, final int j) {<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                return get(i, j) != 0; // BOOLEAN_FALSE<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>        @Override<a name="line.577"></a>
+<span class="sourceLineNo">578</span>        public boolean getBoolean(final int... pos) {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                return get(pos) != 0; // BOOLEAN_FALSE<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>         * Sets the value at first point to the passed value. The dataset must not be null<a name="line.583"></a>
+<span class="sourceLineNo">584</span>         *<a name="line.584"></a>
+<span class="sourceLineNo">585</span>         * @param value<a name="line.585"></a>
+<span class="sourceLineNo">586</span>         * @since 2.0<a name="line.586"></a>
+<span class="sourceLineNo">587</span>         */<a name="line.587"></a>
+<span class="sourceLineNo">588</span>        public void setItem(final short value) { // PRIM_TYPE<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                setAbs(getFirst1DIndex(), value);<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>         * Sets the value at a particular point to the passed value. The dataset must be 1D<a name="line.593"></a>
+<span class="sourceLineNo">594</span>         *<a name="line.594"></a>
+<span class="sourceLineNo">595</span>         * @param value<a name="line.595"></a>
+<span class="sourceLineNo">596</span>         * @param i<a name="line.596"></a>
+<span class="sourceLineNo">597</span>         */<a name="line.597"></a>
+<span class="sourceLineNo">598</span>        public void setItem(final short value, final int i) { // PRIM_TYPE<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                setAbs(get1DIndex(i), value);<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>         * Sets the value at a particular point to the passed value. The dataset must be 2D<a name="line.603"></a>
+<span class="sourceLineNo">604</span>         *<a name="line.604"></a>
+<span class="sourceLineNo">605</span>         * @param value<a name="line.605"></a>
+<span class="sourceLineNo">606</span>         * @param i<a name="line.606"></a>
+<span class="sourceLineNo">607</span>         * @param j<a name="line.607"></a>
+<span class="sourceLineNo">608</span>         */<a name="line.608"></a>
+<span class="sourceLineNo">609</span>        public void setItem(final short value, final int i, final int j) { // PRIM_TYPE<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                setAbs(get1DIndex(i, j), value);<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>         * Sets the value at a particular point to the passed value<a name="line.614"></a>
+<span class="sourceLineNo">615</span>         *<a name="line.615"></a>
+<span class="sourceLineNo">616</span>         * @param value<a name="line.616"></a>
+<span class="sourceLineNo">617</span>         * @param pos<a name="line.617"></a>
+<span class="sourceLineNo">618</span>         */<a name="line.618"></a>
+<span class="sourceLineNo">619</span>        public void setItem(final short value, final int... pos) { // PRIM_TYPE<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                setAbs(get1DIndex(pos), value);<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 void set(final Object obj) {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                setItem((short) DTypeUtils.toLong(obj)); // FROM_OBJECT<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 void set(final Object obj, final int i) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                setItem((short) DTypeUtils.toLong(obj), i); // FROM_OBJECT<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 void set(final Object obj, final int i, final int j) {<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                setItem((short) DTypeUtils.toLong(obj), i, j); // FROM_OBJECT<a name="line.635"></a>
+<span class="sourceLineNo">636</span>        }<a name="line.636"></a>
+<span class="sourceLineNo">637</span><a name="line.637"></a>
+<span class="sourceLineNo">638</span>        @Override<a name="line.638"></a>
+<span class="sourceLineNo">639</span>        public void set(final Object obj, int... pos) {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                        pos = new int[shape.length];<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>                setItem((short) DTypeUtils.toLong(obj), pos); // FROM_OBJECT<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>        @Override<a name="line.647"></a>
+<span class="sourceLineNo">648</span>        public void resize(int... newShape) {<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                setDirty();<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                final IndexIterator iter = getIterator();<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                final int nsize = ShapeUtils.calcSize(newShape);<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                final short[] ndata; // PRIM_TYPE<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                try {<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                        ndata = createArray(nsize);<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                } catch (Throwable t) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                        throw new IllegalArgumentException(t);<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                }<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                for (int i = 0; iter.hasNext() &amp;&amp; i &lt; nsize; i++) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        ndata[i] = data[iter.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>                odata = data = ndata;<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                size = nsize;<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                shape = newShape;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                stride = null;<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                offset = 0;<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                base = null;<a name="line.668"></a>
+<span class="sourceLineNo">669</span>        }<a name="line.669"></a>
+<span class="sourceLineNo">670</span><a name="line.670"></a>
+<span class="sourceLineNo">671</span>        @Override<a name="line.671"></a>
+<span class="sourceLineNo">672</span>        public ShortDataset sort(Integer axis) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                setDirty();<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                if (axis == null) {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        if (stride == null) {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                                Arrays.sort(data);<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                        } else {<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                                ShortDataset ads = clone().sort(null);<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                                setSlicedView(getView(false), ads);<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                        }<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                } else {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                        axis = checkAxis(axis);<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                        <a name="line.683"></a>
+<span class="sourceLineNo">684</span>                        ShortDataset ads = new ShortDataset(shape[axis]);<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                        PositionIterator pi = getPositionIterator(axis);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                        int[] pos = pi.getPos();<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                        boolean[] hit = pi.getOmit();<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                        while (pi.hasNext()) {<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                                copyItemsFromAxes(pos, hit, ads);<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                                Arrays.sort(ads.data);<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                                setItemsOnAxes(pos, hit, ads.data);<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>                return this;<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                // throw new UnsupportedOperationException("Cannot sort dataset"); // BOOLEAN_USE<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 getUniqueItems() {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                Set&lt;Short&gt; set = new TreeSet&lt;Short&gt;(); // CLASS_TYPE<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                IndexIterator it = getIterator();<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                while (it.hasNext()) {<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                        set.add(data[it.index]);<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>                ShortDataset u = new ShortDataset(set.size()); // CLASS_TYPE<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                int i = 0;<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                short[] udata = u.getData(); // PRIM_TYPE<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                for (Short v : set) { // CLASS_TYPE<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        udata[i++] = v;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                return u;<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 ShortDataset getSlice(final SliceIterator siter) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                ShortDataset result = new ShortDataset(siter.getShape());<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                short[] rdata = result.data; // PRIM_TYPE<a name="line.718"></a>
+<span class="sourceLineNo">719</span><a name="line.719"></a>
+<span class="sourceLineNo">720</span>                for (int i = 0; siter.hasNext(); i++)<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                        rdata[i] = data[siter.index];<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                return result;<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>        @Override<a name="line.727"></a>
+<span class="sourceLineNo">728</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                IndexIterator riter = result.getIterator();<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                result.setDirty();<a name="line.730"></a>
+<span class="sourceLineNo">731</span><a name="line.731"></a>
+<span class="sourceLineNo">732</span>                short[] rdata = ((ShortDataset) result).data; // PRIM_TYPE<a name="line.732"></a>
+<span class="sourceLineNo">733</span><a name="line.733"></a>
+<span class="sourceLineNo">734</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                        rdata[riter.index] = data[iter.index];<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                }<a name="line.736"></a>
+<span class="sourceLineNo">737</span>        }<a name="line.737"></a>
+<span class="sourceLineNo">738</span><a name="line.738"></a>
+<span class="sourceLineNo">739</span>        @Override<a name="line.739"></a>
+<span class="sourceLineNo">740</span>        public ShortDataset setByBoolean(final Object obj, Dataset selection) {<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                setDirty();<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                if (obj instanceof Dataset) {<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                        final Dataset ds = (Dataset) obj;<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                        if (length != ds.getSize()) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                                throw new IllegalArgumentException(<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.751"></a>
+<span class="sourceLineNo">752</span><a name="line.752"></a>
+<span class="sourceLineNo">753</span>                        while (biter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                                data[biter.index] = (short) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        }<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                } else {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                        final short dv = (short) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.758"></a>
+<span class="sourceLineNo">759</span><a name="line.759"></a>
+<span class="sourceLineNo">760</span>                        while (biter.hasNext()) {<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                                data[biter.index] = dv;<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>                return this;<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>        @Override<a name="line.767"></a>
+<span class="sourceLineNo">768</span>        public ShortDataset setBy1DIndex(final Object obj, final Dataset index) {<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                setDirty();<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                if (obj instanceof Dataset) {<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                        final Dataset ds = (Dataset) obj;<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                        if (index.getSize() != ds.getSize()) {<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                                throw new IllegalArgumentException(<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                                                "Number of items in index dataset does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                        final IntegerIterator iter = new IntegerIterator(index, size);<a name="line.778"></a>
+<span class="sourceLineNo">779</span><a name="line.779"></a>
+<span class="sourceLineNo">780</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                                data[iter.index] = (short) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                        }<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                } else {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                        final short dv = (short) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        IntegerIterator iter = new IntegerIterator(index, size);<a name="line.785"></a>
+<span class="sourceLineNo">786</span><a name="line.786"></a>
+<span class="sourceLineNo">787</span>                        while (iter.hasNext()) {<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                                data[iter.index] = dv;<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                        }<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                }<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                return this;<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 ShortDataset setByIndexes(final Object obj, final Object... indexes) {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                setDirty();<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                final int[] pos = iter.getPos();<a name="line.798"></a>
+<span class="sourceLineNo">799</span><a name="line.799"></a>
+<span class="sourceLineNo">800</span>                if (obj instanceof Dataset) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                        final Dataset ds = (Dataset) obj;<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                                throw new IllegalArgumentException(<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                                                "Number of items in index datasets does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.807"></a>
+<span class="sourceLineNo">808</span><a name="line.808"></a>
+<span class="sourceLineNo">809</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                                setItem((short) ds.getElementLongAbs(oiter.index), pos); // GET_ELEMENT_WITH_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>                        final short dv = (short) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.813"></a>
+<span class="sourceLineNo">814</span><a name="line.814"></a>
+<span class="sourceLineNo">815</span>                        while (iter.hasNext()) {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                                setItem(dv, pos);<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                        }<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                }<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                return this;<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>        ShortDataset setSlicedView(Dataset view, Dataset d) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                setDirty();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span>                while (it.hasNext()) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                        data[it.aIndex] = (short) it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                }<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                return this;<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 ShortDataset setSlice(final Object obj, final IndexIterator siter) {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                setDirty();<a name="line.835"></a>
+<span class="sourceLineNo">836</span><a name="line.836"></a>
+<span class="sourceLineNo">837</span>                if (obj instanceof IDataset) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                        final IDataset ds = (IDataset) obj;<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                        final int[] oshape = ds.getShape();<a name="line.839"></a>
+<span class="sourceLineNo">840</span><a name="line.840"></a>
+<span class="sourceLineNo">841</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                                throw new IllegalArgumentException(String.format(<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                                                Arrays.toString(siter.getShape())));<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>                        if (ds instanceof Dataset) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                final Dataset ads = (Dataset) ds;<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                final IndexIterator oiter = ads.getIterator();<a name="line.849"></a>
+<span class="sourceLineNo">850</span><a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                        data[siter.index] = (short) ads.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                        } else {<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                final int[] pos = oiter.getPos();<a name="line.855"></a>
+<span class="sourceLineNo">856</span><a name="line.856"></a>
+<span class="sourceLineNo">857</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                                        data[siter.index] = ds.getShort(pos); // PRIM_TYPE<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        }<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                } else {<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        try {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                short v = (short) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.862"></a>
+<span class="sourceLineNo">863</span><a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                while (siter.hasNext())<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                                        data[siter.index] = v;<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                        } catch (IllegalArgumentException e) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<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 this;<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>        @Override<a name="line.873"></a>
+<span class="sourceLineNo">874</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                short[] ddata = (short[]) dest.getBuffer(); // PRIM_TYPE<a name="line.875"></a>
+<span class="sourceLineNo">876</span><a name="line.876"></a>
+<span class="sourceLineNo">877</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.878"></a>
+<span class="sourceLineNo">879</span><a name="line.879"></a>
+<span class="sourceLineNo">880</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.880"></a>
+<span class="sourceLineNo">881</span><a name="line.881"></a>
+<span class="sourceLineNo">882</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<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>                dest.setDirty();<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                        ddata[diter.index] = data[siter.index];<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                }<a name="line.889"></a>
+<span class="sourceLineNo">890</span>        }<a name="line.890"></a>
+<span class="sourceLineNo">891</span><a name="line.891"></a>
+<span class="sourceLineNo">892</span>        @Override<a name="line.892"></a>
+<span class="sourceLineNo">893</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                setDirty();<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                short[] sdata = (short[]) src; // PRIM_TYPE<a name="line.895"></a>
+<span class="sourceLineNo">896</span><a name="line.896"></a>
+<span class="sourceLineNo">897</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.897"></a>
+<span class="sourceLineNo">898</span><a name="line.898"></a>
+<span class="sourceLineNo">899</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                        throw new IllegalArgumentException("destination array is not large enough");<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>                for (int i = 0; siter.hasNext(); i++) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        data[siter.index] = sdata[i];<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                }<a name="line.905"></a>
+<span class="sourceLineNo">906</span>        }<a name="line.906"></a>
+<span class="sourceLineNo">907</span><a name="line.907"></a>
+<span class="sourceLineNo">908</span>        private List&lt;int[]&gt; findPositions(final short value) { // PRIM_TYPE<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                IndexIterator iter = getIterator(true);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                List&lt;int[]&gt; posns = new ArrayList&lt;int[]&gt;();<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                int[] pos = iter.getPos();<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>                        while (iter.hasNext()) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                if (data[iter.index] == value) {<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                        posns.add(pos.clone());<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>                }<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                return posns;<a name="line.920"></a>
+<span class="sourceLineNo">921</span>        }<a name="line.921"></a>
+<span class="sourceLineNo">922</span><a name="line.922"></a>
+<span class="sourceLineNo">923</span>        @Override<a name="line.923"></a>
+<span class="sourceLineNo">924</span>        public int[] maxPos(boolean... ignoreInvalids) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                List&lt;int[]&gt; max = md.getMaximumPositions(ignoreInvalids);<a name="line.928"></a>
+<span class="sourceLineNo">929</span><a name="line.929"></a>
+<span class="sourceLineNo">930</span>                if (max == null) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                        max = findPositions(md.getMaximum(ignoreInvalids).shortValue()); // PRIM_TYPE<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.933"></a>
+<span class="sourceLineNo">934</span><a name="line.934"></a>
+<span class="sourceLineNo">935</span>                        md.setMaximumPositions(max);<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>                return max.get(0); // first maximum<a name="line.938"></a>
+<span class="sourceLineNo">939</span>        }<a name="line.939"></a>
+<span class="sourceLineNo">940</span><a name="line.940"></a>
+<span class="sourceLineNo">941</span>        @Override<a name="line.941"></a>
+<span class="sourceLineNo">942</span>        public int[] minPos(boolean... ignoreInvalids) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                List&lt;int[]&gt; min = md.getMinimumPositions(ignoreInvalids);<a name="line.946"></a>
+<span class="sourceLineNo">947</span><a name="line.947"></a>
+<span class="sourceLineNo">948</span>                if (min == null) {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                        min = findPositions(md.getMinimum(ignoreInvalids).shortValue()); // PRIM_TYPE<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.951"></a>
+<span class="sourceLineNo">952</span><a name="line.952"></a>
+<span class="sourceLineNo">953</span>                        md.setMinimumPositions(min);<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 min.get(0); // first minimum<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 containsNans() {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                return false;<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>        @Override<a name="line.964"></a>
+<span class="sourceLineNo">965</span>        public boolean containsInfs() {<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>                return false;<a name="line.971"></a>
+<span class="sourceLineNo">972</span>        }<a name="line.972"></a>
+<span class="sourceLineNo">973</span><a name="line.973"></a>
+<span class="sourceLineNo">974</span>        @Override<a name="line.974"></a>
+<span class="sourceLineNo">975</span>        public ShortDataset iadd(final Object b) {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                setDirty();<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                if (bds.getSize() == 1) {<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                        final IndexIterator it = getIterator();<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                        final int bOffset = bds.getOffset();<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                        if (useLong) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                while (it.hasNext()) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                        data[it.index] += lb;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                }<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                        } else {<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                final double db = bds.getElementDoubleAbs(bOffset);<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] += db;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                }<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                        }<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                } else {<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                        it.setOutputDouble(!useLong);<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                        if (useLong) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                                while (it.hasNext()) {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                        data[it.aIndex] += it.bLong;<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                }<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                        } else {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                while (it.hasNext()) {<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        data[it.aIndex] += it.bDouble;<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                }<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                        }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                return this;<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 ShortDataset isubtract(final Object b) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                setDirty();<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                if (bds.getSize() == 1) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                        final IndexIterator it = getIterator();<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                        final int bOffset = bds.getOffset();<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                        if (useLong) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                while (it.hasNext()) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                        data[it.index] -= lb;<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>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                while (it.hasNext()) {<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                        data[it.index] -= db;<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                }<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                        }<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                } else {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                        if (useLong) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                it.setOutputDouble(false);<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                                while (it.hasNext()) {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                        data[it.aIndex] -= it.bLong;<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                }<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                        } else {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                it.setOutputDouble(true);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                while (it.hasNext()) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                        data[it.aIndex] -= it.bDouble;<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>                return this;<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>        @Override<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>        public ShortDataset imultiply(final Object b) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                setDirty();<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                if (bds.getSize() == 1) {<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                        final IndexIterator it = getIterator();<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                        final int bOffset = bds.getOffset();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                        if (useLong) {<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                while (it.hasNext()) {<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                                        data[it.index] *= lb;<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                                }<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                        } else {<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                                while (it.hasNext()) {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                                        data[it.index] *= db;<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                        }<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                } else {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                        it.setOutputDouble(!useLong);<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                        if (useLong) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                while (it.hasNext()) {<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                        data[it.aIndex] *= it.bLong;<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>                                        data[it.aIndex] *= it.bDouble;<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>                return this;<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>        @Override<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>        public ShortDataset idivide(final Object b) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                setDirty();<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                if (bds.getSize() == 1) {<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                        final int bOffset = bds.getOffset();<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                        if (useLong) {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                if (lb == 0) { // INT_USE<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        fill(0); // INT_USE<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                } else { // INT_USE<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                final IndexIterator it = getIterator();<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                while (it.hasNext()) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                        data[it.index] /= lb;<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                } // INT_USE<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        } else {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                if (db == 0) { // INT_USE<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        fill(0); // INT_USE<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                } else { // INT_USE<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                final IndexIterator it = getIterator();<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                while (it.hasNext()) {<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                        data[it.index] /= db;<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                                } // INT_USE<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        }<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                } else {<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                        it.setOutputDouble(!useLong);<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        if (useLong) {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                while (it.hasNext()) {<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                        if (it.bLong == 0) { // INT_USE<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                        } else { // INT_USE<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                        data[it.aIndex] /= it.bLong;<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        } // INT_USE<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                }<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                        } else {<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                while (it.hasNext()) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                        if (it.bDouble == 0) { // INT_USE<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                        } else { // INT_USE<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                        data[it.aIndex] /= it.bDouble;<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                        } // INT_USE<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>                }<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                return this;<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>        @Override<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>        public ShortDataset ifloor() {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                return this;<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>        }<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span><a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>        @Override<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>        public ShortDataset iremainder(final Object b) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                setDirty();<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                if (bds.getSize() == 1) {<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                        final int bOffset = bds.getOffset();<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                        if (useLong) {<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                if (lb == 0) { // INT_USE<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                        fill(0); // INT_USE<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                } else { // INT_USE<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                final IndexIterator it = getIterator();<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                while (it.hasNext()) {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                        data[it.index] %= lb;<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                }<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                                } // INT_USE<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                        } else {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                if (lb == 0) { // INT_USE<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        fill(0); // INT_USE<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                } else { // INT_USE<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                                final IndexIterator it = getIterator();<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                                while (it.hasNext()) {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                                        data[it.index] %= lb;<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                                }<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                                } // INT_USE<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                        }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                } else {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                        it.setOutputDouble(!useLong);<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                        if (useLong) {<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                while (it.hasNext()) {<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                                try {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                                data[it.aIndex] %= it.bLong; // INT_EXCEPTION<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                } catch (ArithmeticException e) {<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                        data[it.aIndex] = 0;<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>                                        data[it.aIndex] %= it.bDouble;<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>                }<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                return this;<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>        }<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span><a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>        @Override<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>        public ShortDataset ipower(final Object b) {<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                setDirty();<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                if (bds.getSize() == 1) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                        final int bOffset = bds.getOffset();<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                        final double vr = bds.getElementDoubleAbs(bOffset);<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                        final IndexIterator it = getIterator();<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                        if (bds.isComplex()) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                                final double vi = bds.getElementDoubleAbs(bOffset + 1);<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                if (vi == 0) {<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 v = Math.pow(data[it.index], vr);<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                                                        data[it.index] = 0; // INT_USE<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                                                } else { // INT_USE<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                                                data[it.index] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                                                } // INT_USE<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                                        }<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                                } else {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                        final Complex zv = new Complex(vr, vi);<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                                        while (it.hasNext()) {<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                                                Complex zd = new Complex(data[it.index], 0);<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                                                final double v = zd.pow(zv).getReal();<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                                                        data[it.index] = 0; // INT_USE<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                                                } else { // INT_USE<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                                                data[it.index] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                                                } // INT_USE<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                        }<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                }<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                        } else {// NAN_OMIT<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                                while (it.hasNext()) {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                        final double v = Math.pow(data[it.index], vr);<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                                data[it.index] = 0; // INT_USE<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                        } else { // INT_USE<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                        data[it.index] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                        } // INT_USE<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                }<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                        }<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                } else {<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                        it.setOutputDouble(true);<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                        if (bds.isComplex()) {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                while (it.hasNext()) {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                        final double v = new Complex(it.aDouble, 0).pow(zv).getReal();<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                        } else { // INT_USE<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                        data[it.aIndex] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                                        } // INT_USE<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                                }<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        } else {// NAN_OMIT<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                                while (it.hasNext()) {<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                                        final double v = Math.pow(it.aDouble, it.bDouble);<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                        } else { // INT_USE<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                                        data[it.aIndex] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                        } // INT_USE<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                }<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                        }<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                }<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                return this;<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>        @Override<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                it.setOutputDouble(true);<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                double sum = 0;<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                double comp = 0;<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                {<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                        if (w == null) {<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                while (it.hasNext()) {<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                        final double err = diff * diff - comp;<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                                        final double temp = sum + err;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                        comp = (temp - sum) - err;<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                                        sum = temp;<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                }<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        } else {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                IndexIterator itw = w.getIterator();<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                                        final double err = diff * diff * w.getElementDoubleAbs(itw.index) - comp;<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                        final double temp = sum + err;<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                        comp = (temp - sum) - err;<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                        sum = temp;<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                }<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                        }<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                return sum;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/SingleInputBroadcastIterator.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/SingleInputBroadcastIterator.html
new file mode 100644
index 0000000..09a20e8
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/SingleInputBroadcastIterator.html
@@ -0,0 +1,337 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.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>        public SingleInputBroadcastIterator(Dataset a, Dataset o, boolean createIfNull, boolean allowInteger, boolean allowComplex) {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                List&lt;int[]&gt; fullShapes = BroadcastUtils.broadcastShapes(a.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>                BroadcastUtils.checkItemSize(a, o);<a name="line.87"></a>
+<span class="sourceLineNo">088</span><a name="line.88"></a>
+<span class="sourceLineNo">089</span>                maxShape = fullShapes.remove(0);<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>                oStride = null;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                if (o != null) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                        if (!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>                        o.setDirty();<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>                aShape = fullShapes.remove(0);<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>                int rank = maxShape.length;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                endrank = rank - 1;<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>                aDataset = a.reshape(aShape);<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                aStride = BroadcastUtils.createBroadcastStrides(aDataset, maxShape);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                outputA = o == a;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                if (outputA) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        oStride = aStride;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                        oDelta = null;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                        oStep = 0;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                        oDataset = aDataset;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                } else if (o != null) {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                        oStride = BroadcastUtils.createBroadcastStrides(o, maxShape);<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                        oDelta = new int[rank];<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        oStep = o.getElementsPerItem();<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                        oDataset = o;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                } else if (createIfNull) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                        int is = aDataset.getElementsPerItem();<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        Class&lt;? extends Dataset&gt; dc = aDataset.getClass();<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                        if (aDataset.isComplex() &amp;&amp; !allowComplex) {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                is = 1;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                dc = InterfaceUtils.getBestFloatInterface(dc);<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                        } else if (!aDataset.hasFloatingPointElements() &amp;&amp; !allowInteger) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                                dc = InterfaceUtils.getBestFloatInterface(dc);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                        }<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                        oDataset = DatasetFactory.zeros(is, dc, maxShape);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                        oStride = BroadcastUtils.createBroadcastStrides(oDataset, maxShape);<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        oDelta = new int[rank];<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        oStep = oDataset.getElementsPerItem();<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                } else {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        oDelta = null;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        oStep = 0;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                        oDataset = o;<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>                pos = new int[rank];<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                aDelta = new int[rank];<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                aStep = aDataset.getElementsPerItem();<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                for (int j = endrank; j &gt;= 0; j--) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        aDelta[j] = aStride[j] * aShape[j];<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                        if (oDelta != null) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                                oDelta[j] = oStride[j] * maxShape[j];<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>                aStart = aDataset.getOffset();<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                aMax = endrank &lt; 0 ? aStep + aStart: Integer.MIN_VALUE;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                oStart = oDelta == null ? 0 : oDataset.getOffset();<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                asDouble = aDataset.hasFloatingPointElements();<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                reset();<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>         * @return true if output from iterator is double<a name="line.153"></a>
+<span class="sourceLineNo">154</span>         */<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        public boolean isOutputDouble() {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                return asDouble;<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>         * Set to output doubles<a name="line.160"></a>
+<span class="sourceLineNo">161</span>         * @param asDouble<a name="line.161"></a>
+<span class="sourceLineNo">162</span>         */<a name="line.162"></a>
+<span class="sourceLineNo">163</span>        public void setOutputDouble(boolean asDouble) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                if (this.asDouble != asDouble) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                        this.asDouble = asDouble;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        storeCurrentValues();<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>        @Override<a name="line.170"></a>
+<span class="sourceLineNo">171</span>        public int[] getShape() {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                return maxShape;<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 boolean hasNext() {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                int j = endrank;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                int oldA = aIndex;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                for (; j &gt;= 0; j--) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                        pos[j]++;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                        aIndex += aStride[j];<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        if (oDelta != null) {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                                oIndex += oStride[j];<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                        }<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                        if (pos[j] &gt;= maxShape[j]) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                                pos[j] = 0;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                                aIndex -= aDelta[j]; // reset these dimensions<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                                if (oDelta != null) {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                                        oIndex -= oDelta[j];<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                                }<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                        } else {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                                break;<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 (j == -1) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                        if (endrank &gt;= 0) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                                return false;<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        }<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        aIndex += aStep;<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        if (oDelta != null) {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                                oIndex += oStep;<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        }<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                }<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                if (outputA) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                        oIndex = aIndex;<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>                if (aIndex == aMax) {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        return false; // used for zero-rank datasets<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 (oldA != aIndex) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                        if (asDouble) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                                aDouble = aDataset.getElementDoubleAbs(aIndex);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                        } else {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                                aLong = aDataset.getElementLongAbs(aIndex);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                        }<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                }<a name="line.218"></a>
+<span class="sourceLineNo">219</span><a name="line.219"></a>
+<span class="sourceLineNo">220</span>                return true;<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>         * @return output dataset (can be null)<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         */<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        public Dataset getOutput() {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                return oDataset;<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 int[] getPos() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                return 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>        @Override<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        public void reset() {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                for (int i = 0; i &lt;= endrank; i++) {<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                        pos[i] = 0;<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                }<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>                if (endrank &gt;= 0) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                        pos[endrank] = -1;<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                        aIndex = aStart - aStride[endrank];<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                        oIndex = oStart - (oStride == null ? 0 : oStride[endrank]);<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                } else {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        aIndex = -aStep;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        oIndex = -oStep;<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>                // for zero-ranked datasets<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                if (aIndex == 0) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                        storeCurrentValues();<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>        private void storeCurrentValues() {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                if (aIndex &gt;= 0) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        if (asDouble) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                                aDouble = aDataset.getElementDoubleAbs(aIndex);<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                        } else {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                                aLong = aDataset.getElementLongAbs(aIndex);<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>}<a name="line.265"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/SingleItemIterator.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/SingleItemIterator.html
new file mode 100644
index 0000000..b1501ad
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/dataset/Slice.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Slice.html
new file mode 100644
index 0000000..a838811
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Slice.html
@@ -0,0 +1,760 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.io.Serializable;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>/**     <a name="line.17"></a>
+<span class="sourceLineNo">018</span> * The {@code Slice} class represents the set of indices (start, stop, step), that are used to extract specifics subsets of {@link org.eclipse.january.dataset.Dataset}.&lt;br&gt;&lt;br&gt;<a name="line.18"></a>
+<span class="sourceLineNo">019</span> * The start argument default to 0, stop argument default to the stop argument default to the end of the dimension that the slice is applied to, and the default argument for the step is 1.<a name="line.19"></a>
+<span class="sourceLineNo">020</span> * &lt;br&gt;&lt;br&gt;<a name="line.20"></a>
+<span class="sourceLineNo">021</span> * The start index is inclusive, for example, if we want to get data from index 1, so sliceData will be &lt;b&gt;[2,3]&lt;/b&gt; :<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * &lt;pre&gt;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>* {@code<a name="line.23"></a>
+<span class="sourceLineNo">024</span>* final Dataset onedData = DatasetFactory.createFromObject(new int[]{1,2,3});<a name="line.24"></a>
+<span class="sourceLineNo">025</span>* Dataset sliceData = onedData.getSlice(new Slice(1, null, null));<a name="line.25"></a>
+<span class="sourceLineNo">026</span>* }<a name="line.26"></a>
+<span class="sourceLineNo">027</span>* &lt;/pre&gt;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>* <a name="line.28"></a>
+<span class="sourceLineNo">029</span>* If Slice is specified with only one argument, this will be the stop index which is exclusive. In this case sliceData will be &lt;b&gt;[1,2]&lt;/b&gt; :<a name="line.29"></a>
+<span class="sourceLineNo">030</span> * &lt;pre&gt;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>* {@code<a name="line.31"></a>
+<span class="sourceLineNo">032</span>* final Dataset onedData = DatasetFactory.createFromObject(new int[]{1,2,3});<a name="line.32"></a>
+<span class="sourceLineNo">033</span>* Dataset sliceData = onedData.getSlice(new Slice(2));<a name="line.33"></a>
+<span class="sourceLineNo">034</span>* }<a name="line.34"></a>
+<span class="sourceLineNo">035</span>* &lt;/pre&gt;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>* <a name="line.36"></a>
+<span class="sourceLineNo">037</span>* To create a 1D Slice, so sliceData is : &lt;b&gt;[6, 5, 4]&lt;/b&gt;, we will do :<a name="line.37"></a>
+<span class="sourceLineNo">038</span>* &lt;pre&gt;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>* {@code<a name="line.39"></a>
+<span class="sourceLineNo">040</span>* final Dataset sliceData = DatasetFactory.createFromObject(new int[]{10,9,8,7,6,5,4,3,2,1,0});<a name="line.40"></a>
+<span class="sourceLineNo">041</span>* Dataset newOnedData = sliceData.getSlice(new Slice(4, 7, 1));<a name="line.41"></a>
+<span class="sourceLineNo">042</span>* }<a name="line.42"></a>
+<span class="sourceLineNo">043</span>* &lt;/pre&gt;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>* &lt;br&gt;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>* For more informations, see the sliceFrom1D example in SlicingExamples.<a name="line.45"></a>
+<span class="sourceLineNo">046</span> */<a name="line.46"></a>
+<span class="sourceLineNo">047</span>public class Slice implements Cloneable, Serializable {<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>        private static final long serialVersionUID = 3714928852236201310L;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        private Integer start;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>        private Integer stop;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        private int step;<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        private int length; // max length of dimension<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>        /**<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * Constructs a Slice object with the start and the stop value representing<a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * the entirety of the sliced dimension of the Dataset.<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         */<a name="line.59"></a>
+<span class="sourceLineNo">060</span>        public Slice() {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                this(null, null, 1);<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        }<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>        /**<a name="line.64"></a>
+<span class="sourceLineNo">065</span>         * Constructs a Slice object with, by default the start set to 0 and with a<a name="line.65"></a>
+<span class="sourceLineNo">066</span>         * step of 1. If the stop point of the Slice is {@code null}, it will be set<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * to the stop argument default to the end of the dimension that the slice<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         * is applied to.<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         * <a name="line.69"></a>
+<span class="sourceLineNo">070</span>         * @param stop<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         *            the stop point of the Slice<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         */<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        public Slice(final Integer stop) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                this(null, stop, 1);<a name="line.74"></a>
+<span class="sourceLineNo">075</span>        }<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>        /**<a name="line.77"></a>
+<span class="sourceLineNo">078</span>         * Constructs a Slice object with, by default a step of 1. If the start<a name="line.78"></a>
+<span class="sourceLineNo">079</span>         * point of the Slice is {@code null}, it will be set automatically to 0. If<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         * the stop point of the Slice is {@code null}, it will be set to the stop<a name="line.80"></a>
+<span class="sourceLineNo">081</span>         * argument default to the end of the dimension that the slice is applied<a name="line.81"></a>
+<span class="sourceLineNo">082</span>         * to.<a name="line.82"></a>
+<span class="sourceLineNo">083</span>         * <a name="line.83"></a>
+<span class="sourceLineNo">084</span>         * @param start<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         *            the start point of the Slice<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @param stop<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         *            the stop point of the Slice<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         */<a name="line.88"></a>
+<span class="sourceLineNo">089</span>        public Slice(final Integer start, final Integer stop) {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                this(start, stop, 1);<a name="line.90"></a>
+<span class="sourceLineNo">091</span>        }<a name="line.91"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span>        /**<a name="line.93"></a>
+<span class="sourceLineNo">094</span>         * Constructs a Slice object on which it is possible to chooe the start, the<a name="line.94"></a>
+<span class="sourceLineNo">095</span>         * stop and the step. If the start point of the Slice is {@code null}, it<a name="line.95"></a>
+<span class="sourceLineNo">096</span>         * will be set automatically to 0. If the stop point of the Slice is<a name="line.96"></a>
+<span class="sourceLineNo">097</span>         * {@code null}, it will be set to the stop argument default to the end of<a name="line.97"></a>
+<span class="sourceLineNo">098</span>         * the dimension that the slice is applied to. If the the wanted step is set<a name="line.98"></a>
+<span class="sourceLineNo">099</span>         * to {@code null}, it will be set by default to 1.<a name="line.99"></a>
+<span class="sourceLineNo">100</span>         * <a name="line.100"></a>
+<span class="sourceLineNo">101</span>         * @param start<a name="line.101"></a>
+<span class="sourceLineNo">102</span>         *            the start point of the Slice, may be {@code null}<a name="line.102"></a>
+<span class="sourceLineNo">103</span>         * @param stop<a name="line.103"></a>
+<span class="sourceLineNo">104</span>         *            the stop point of the Slice, may be {@code null}<a name="line.104"></a>
+<span class="sourceLineNo">105</span>         * @param step<a name="line.105"></a>
+<span class="sourceLineNo">106</span>         *            the step wanted to browse the Dataset, may be {@code null}<a name="line.106"></a>
+<span class="sourceLineNo">107</span>         */<a name="line.107"></a>
+<span class="sourceLineNo">108</span>        public Slice(final Integer start, final Integer stop, final Integer step) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                this.start = start;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                this.stop = stop;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                this.step = step == null ? 1 : step;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                length = -1;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>        }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>        /**<a name="line.115"></a>
+<span class="sourceLineNo">116</span>         * Copy another slice<a name="line.116"></a>
+<span class="sourceLineNo">117</span>         * <a name="line.117"></a>
+<span class="sourceLineNo">118</span>         * @param other<a name="line.118"></a>
+<span class="sourceLineNo">119</span>         */<a name="line.119"></a>
+<span class="sourceLineNo">120</span>        private Slice(final Slice other) {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                start = other.start;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                stop = other.stop;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                step = other.step;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                length = other.length;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>        }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>        /**<a name="line.127"></a>
+<span class="sourceLineNo">128</span>         * Creates a deep copy of the Slice.<a name="line.128"></a>
+<span class="sourceLineNo">129</span>         * <a name="line.129"></a>
+<span class="sourceLineNo">130</span>         * @return New Slice with the current Slice properties<a name="line.130"></a>
+<span class="sourceLineNo">131</span>         */<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        @Override<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        public Slice clone() {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                return new Slice(this);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>        }<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span>        /**<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         * Sets the maximal dimensions length of the Slice.<a name="line.138"></a>
+<span class="sourceLineNo">139</span>         * <a name="line.139"></a>
+<span class="sourceLineNo">140</span>         * @param length<a name="line.140"></a>
+<span class="sourceLineNo">141</span>         *            Wanted size of dimensions<a name="line.141"></a>
+<span class="sourceLineNo">142</span>         * @return The Slice which the method is called on<a name="line.142"></a>
+<span class="sourceLineNo">143</span>         */<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        public Slice setLength(int length) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                if (stop != null) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        if (step &gt; 0) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                                if (stop &gt; length) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                                        throw new IllegalArgumentException("Stop must be less than or equal to length");<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>                if (start != null) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                        if (start &gt; length) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                                throw new IllegalArgumentException("Start must be less than or equal to length");<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>                this.length = length;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                return this;<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>         * Returns {@code true} if the slice has a maximum size equal to the current<a name="line.162"></a>
+<span class="sourceLineNo">163</span>         * size, else {@code false}.<a name="line.163"></a>
+<span class="sourceLineNo">164</span>         * <a name="line.164"></a>
+<span class="sourceLineNo">165</span>         * @return {@code true} if slice represents complete dimension,<a name="line.165"></a>
+<span class="sourceLineNo">166</span>         *         {@code false} in the other case.<a name="line.166"></a>
+<span class="sourceLineNo">167</span>         */<a name="line.167"></a>
+<span class="sourceLineNo">168</span>        public boolean isSliceComplete() {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                if (start == null &amp;&amp; stop == null &amp;&amp; (step == 1 || step == -1))<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                        return true;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                if (length &gt; 0) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        return getNumSteps() == length;<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>                return true;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>        }<a name="line.176"></a>
+<span class="sourceLineNo">177</span><a name="line.177"></a>
+<span class="sourceLineNo">178</span>        /**<a name="line.178"></a>
+<span class="sourceLineNo">179</span>         * Returns the maximum value of the slice.<a name="line.179"></a>
+<span class="sourceLineNo">180</span>         * <a name="line.180"></a>
+<span class="sourceLineNo">181</span>         * @return Maximum value of the slice<a name="line.181"></a>
+<span class="sourceLineNo">182</span>         */<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        public int getLength() {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                return length;<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>         * Returns the starting index of the slice.<a name="line.188"></a>
+<span class="sourceLineNo">189</span>         * <a name="line.189"></a>
+<span class="sourceLineNo">190</span>         * @return Start point of the slice<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         */<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        public Integer getStart() {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                return start;<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>        /**<a name="line.196"></a>
+<span class="sourceLineNo">197</span>         * Returns the stopping index of the slice.<a name="line.197"></a>
+<span class="sourceLineNo">198</span>         * <a name="line.198"></a>
+<span class="sourceLineNo">199</span>         * @return Stop point of the slice<a name="line.199"></a>
+<span class="sourceLineNo">200</span>         */<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        public Integer getStop() {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                return stop;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        }<a name="line.203"></a>
+<span class="sourceLineNo">204</span><a name="line.204"></a>
+<span class="sourceLineNo">205</span>        /**<a name="line.205"></a>
+<span class="sourceLineNo">206</span>         * Returns the step of the slice.<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * <a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * @return Step of the slice<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         */<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        public int getStep() {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                return step;<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>         * Set the starting index of the slice. If the start point of the Slice is<a name="line.215"></a>
+<span class="sourceLineNo">216</span>         * {@code null}, it will be set automatically to 0.<a name="line.216"></a>
+<span class="sourceLineNo">217</span>         * <a name="line.217"></a>
+<span class="sourceLineNo">218</span>         * @param start<a name="line.218"></a>
+<span class="sourceLineNo">219</span>         *            Starting index of the Slice, may be {@code null}<a name="line.219"></a>
+<span class="sourceLineNo">220</span>         */<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        public void setStart(Integer start) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                if (start != null &amp;&amp; length &gt; 0) {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                        if (step &gt; 0) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                                int end = stop == null ? length : stop;<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                                if (start &gt;= end) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                                        throw new IllegalArgumentException("Non-null start must be less than end");<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                                }<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                        } else {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                                int end = stop == null ? -1 : stop;<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                                if (start &lt; end) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                                        throw new IllegalArgumentException("Non-null start must be greater than end for negative 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>                }<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                this.start = start;<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>        /**<a name="line.238"></a>
+<span class="sourceLineNo">239</span>         * Set the stopping index of the slice. If the stop point of the Slice is<a name="line.239"></a>
+<span class="sourceLineNo">240</span>         * {@code null}, it will be set to the stop argument default to the end of<a name="line.240"></a>
+<span class="sourceLineNo">241</span>         * the dimension that the slice is applied to.<a name="line.241"></a>
+<span class="sourceLineNo">242</span>         * <a name="line.242"></a>
+<span class="sourceLineNo">243</span>         * @param stop<a name="line.243"></a>
+<span class="sourceLineNo">244</span>         *            Stopping index of the Slice, may be {@code null}<a name="line.244"></a>
+<span class="sourceLineNo">245</span>         */<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        public void setStop(Integer stop) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                if (stop != null &amp;&amp; length &gt; 0) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                        if (step &gt; 0) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                int beg = start == null ? 0 : start;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                                if (stop &lt; beg) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                                        throw new IllegalArgumentException("Non-null stop must be greater than or equal to beginning");<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                                }<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        } else {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                                int beg = start == null ? length - 1 : start;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                                if (stop &gt;= beg) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                                        throw new IllegalArgumentException("Non-null stop must be less than beginning for negative step");<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                                }<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        }<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                        if (stop &gt; length)<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                                stop = length;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                }<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                this.stop = stop;<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>         * Move the start and end to an other index keeping the same step and the<a name="line.266"></a>
+<span class="sourceLineNo">267</span>         * same gap between the two values<a name="line.267"></a>
+<span class="sourceLineNo">268</span>         * <a name="line.268"></a>
+<span class="sourceLineNo">269</span>         * @param beg<a name="line.269"></a>
+<span class="sourceLineNo">270</span>         *            New starting point<a name="line.270"></a>
+<span class="sourceLineNo">271</span>         * @return Return {@code true} if the end was reached, {@code false} in the<a name="line.271"></a>
+<span class="sourceLineNo">272</span>         *         other case.<a name="line.272"></a>
+<span class="sourceLineNo">273</span>         */<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        public boolean setPosition(int beg) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                boolean end = false;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                int len = getNumSteps();<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                int max = getNumSteps(beg, length, step);<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                if (len &gt; max) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                        len = max;<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                        end = true;<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                }<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                start = beg;<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                stop = start + (len - 1) * step + 1;<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                return end;<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>        /**<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         * Returns the index of the n-th step inside of the slice<a name="line.288"></a>
+<span class="sourceLineNo">289</span>         * <a name="line.289"></a>
+<span class="sourceLineNo">290</span>         * @param n<a name="line.290"></a>
+<span class="sourceLineNo">291</span>         *            Wanted step index in the slice<a name="line.291"></a>
+<span class="sourceLineNo">292</span>         * @return Return the index of the step inside of the Slice<a name="line.292"></a>
+<span class="sourceLineNo">293</span>         */<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        public int getPosition(int n) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                if (n &lt; 0)<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                        throw new IllegalArgumentException("Given n-th step should be non-negative");<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                if (n &gt;= getNumSteps())<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                        throw new IllegalArgumentException("N-th step exceeds extent of slice");<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                int beg;<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                if (start == null) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                        if (step &lt; 0) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                                if (length &lt; 0) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                                        if (stop == null) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                                throw new IllegalStateException("Length or stop should be set");<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                                        }<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                                        beg = stop - 1;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                                } else {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                                        beg = length - 1;<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                                }<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                        } else {<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                                beg = 0;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                        }<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                } else {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                        beg = start;<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                }<a name="line.315"></a>
+<span class="sourceLineNo">316</span>                return beg + step * n;<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>         * Set the step size inside of the Slice. If the the wanted step is set to<a name="line.320"></a>
+<span class="sourceLineNo">321</span>         * {@code null}, it will be set by default to 1.<a name="line.321"></a>
+<span class="sourceLineNo">322</span>         * <a name="line.322"></a>
+<span class="sourceLineNo">323</span>         * @param step<a name="line.323"></a>
+<span class="sourceLineNo">324</span>         *            New wanted step, may be {@code null}<a name="line.324"></a>
+<span class="sourceLineNo">325</span>         */<a name="line.325"></a>
+<span class="sourceLineNo">326</span>        public void setStep(int step) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                if (step == 0) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                        throw new IllegalArgumentException("Step must not be zero");<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                }<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                this.step = step;<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>         * Appends a String representation of the Slice comparable to the python<a name="line.334"></a>
+<span class="sourceLineNo">335</span>         * representation.<a name="line.335"></a>
+<span class="sourceLineNo">336</span>         * <a name="line.336"></a>
+<span class="sourceLineNo">337</span>         * @param s<a name="line.337"></a>
+<span class="sourceLineNo">338</span>         *            String builder<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         * @param len<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         *            Maximal length of the Slice, or -1 if not set<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         * @param beg<a name="line.341"></a>
+<span class="sourceLineNo">342</span>         *            Start index of the Slice<a name="line.342"></a>
+<span class="sourceLineNo">343</span>         * @param end<a name="line.343"></a>
+<span class="sourceLineNo">344</span>         *            Stop index of the Slice<a name="line.344"></a>
+<span class="sourceLineNo">345</span>         * @param del<a name="line.345"></a>
+<span class="sourceLineNo">346</span>         *            Step of the Slice<a name="line.346"></a>
+<span class="sourceLineNo">347</span>         */<a name="line.347"></a>
+<span class="sourceLineNo">348</span>        public static void appendSliceToString(final StringBuilder s, final int len, final int beg, final int end,<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        final int del) {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                int o = s.length();<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                if (del &gt; 0) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                        if (beg != 0)<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                                s.append(beg);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                } else {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                        if (beg != len - 1)<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                                s.append(beg);<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                }<a name="line.357"></a>
+<span class="sourceLineNo">358</span><a name="line.358"></a>
+<span class="sourceLineNo">359</span>                int n = getNumSteps(beg, end, del);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                if (n == 1) {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                        if (s.length() == o) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                                s.append(beg);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                        }<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        return;<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>                s.append(':');<a name="line.367"></a>
+<span class="sourceLineNo">368</span><a name="line.368"></a>
+<span class="sourceLineNo">369</span>                if (del &gt; 0) {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                        if (end != len)<a name="line.370"></a>
+<span class="sourceLineNo">371</span>                                s.append(end);<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                } else {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                        if (end != -1)<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                                s.append(end);<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>                if (del != 1) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                        s.append(':');<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                        s.append(del);<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                }<a name="line.380"></a>
+<span class="sourceLineNo">381</span>        }<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>        /**<a name="line.383"></a>
+<span class="sourceLineNo">384</span>         * Returns a string construction of the slice with the python form.<a name="line.384"></a>
+<span class="sourceLineNo">385</span>         * <a name="line.385"></a>
+<span class="sourceLineNo">386</span>         * @return Constructed String.<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 toString() {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                StringBuilder s = new StringBuilder();<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                appendSliceToString(s, length, start != null ? start : (step &gt; 0 ? 0 : length - 1),<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                                stop != null ? stop : (step &gt; 0 ? length : -1), step);<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                return s.toString();<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>         * Returns the number of steps inside of the Slice<a name="line.397"></a>
+<span class="sourceLineNo">398</span>         * <a name="line.398"></a>
+<span class="sourceLineNo">399</span>         * @return Number of steps inside of the Slice<a name="line.399"></a>
+<span class="sourceLineNo">400</span>         */<a name="line.400"></a>
+<span class="sourceLineNo">401</span>        public int getNumSteps() {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>                if (length &lt; 0) {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                        if (stop == null)<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                                throw new IllegalStateException("Slice is underspecified - stop is null and length is negative");<a name="line.404"></a>
+<span class="sourceLineNo">405</span>                        int beg = start == null ? (step &gt; 0 ? 0 : stop - 1) : start;<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                        if (step &gt; 0 &amp;&amp; stop &lt;= beg)<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                                return 0;<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                        if (step &lt; 0 &amp;&amp; stop &gt; beg)<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                                return 0;<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                        return getNumSteps(beg, stop, step);<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                }<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                int beg = start == null ? (step &gt; 0 ? 0 : length - 1) : start;<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                int end = stop == null ? (step &gt; 0 ? length : -1) : stop;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                return getNumSteps(beg, end, step);<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>         * Returns the number of steps inside of the Slice from a point to an other<a name="line.418"></a>
+<span class="sourceLineNo">419</span>         * point minus 1 because this is an exclusive index<a name="line.419"></a>
+<span class="sourceLineNo">420</span>         * <a name="line.420"></a>
+<span class="sourceLineNo">421</span>         * @param beg<a name="line.421"></a>
+<span class="sourceLineNo">422</span>         *            Starting point<a name="line.422"></a>
+<span class="sourceLineNo">423</span>         * @param end<a name="line.423"></a>
+<span class="sourceLineNo">424</span>         *            (exclusive) Stopping point<a name="line.424"></a>
+<span class="sourceLineNo">425</span>         * @return Numbers of steps between the 2 limits.<a name="line.425"></a>
+<span class="sourceLineNo">426</span>         */<a name="line.426"></a>
+<span class="sourceLineNo">427</span>        public int getNumSteps(int beg, int end) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                return getNumSteps(beg, end, step);<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>        private static int getNumSteps(int beg, int end, int step) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                int del = step &gt; 0 ? 1 : -1;<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                return Math.max(0, (end - beg - del) / step + 1);<a name="line.433"></a>
+<span class="sourceLineNo">434</span>        }<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span>        /**<a name="line.436"></a>
+<span class="sourceLineNo">437</span>         * Returns the last value inside of Slice.<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         * <a name="line.438"></a>
+<span class="sourceLineNo">439</span>         * @return Last value in the slice, it can be a lower value than the start<a name="line.439"></a>
+<span class="sourceLineNo">440</span>         *         if the step is going backward<a name="line.440"></a>
+<span class="sourceLineNo">441</span>         */<a name="line.441"></a>
+<span class="sourceLineNo">442</span>        public int getEnd() {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                int n = getNumSteps() - 1;<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                if (n &lt; 0)<a name="line.444"></a>
+<span class="sourceLineNo">445</span>                        throw new IllegalStateException("End is not defined");<a name="line.445"></a>
+<span class="sourceLineNo">446</span><a name="line.446"></a>
+<span class="sourceLineNo">447</span>                return getPosition(n);<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>        /**<a name="line.450"></a>
+<span class="sourceLineNo">451</span>         * Flips the Slice direction, after this operation, the slice begins at<a name="line.451"></a>
+<span class="sourceLineNo">452</span>         * previous end point, steps in the opposite direction, and finishes at the<a name="line.452"></a>
+<span class="sourceLineNo">453</span>         * previous start point.<a name="line.453"></a>
+<span class="sourceLineNo">454</span>         * &lt;p&gt;<a name="line.454"></a>
+<span class="sourceLineNo">455</span>         * Note : the stop value may not be preserved across two flips<a name="line.455"></a>
+<span class="sourceLineNo">456</span>         * &lt;/p&gt;<a name="line.456"></a>
+<span class="sourceLineNo">457</span>         * <a name="line.457"></a>
+<span class="sourceLineNo">458</span>         * @return Flipped Slice.<a name="line.458"></a>
+<span class="sourceLineNo">459</span>         */<a name="line.459"></a>
+<span class="sourceLineNo">460</span>        public Slice flip() {<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                if (length &lt; 0) {<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                        Integer tmp = start == null ? null : start - step;<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                        start = stop == null ? null : getEnd();<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                        stop = tmp;<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                } else {<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                        Integer tstart = start;<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                        start = stop == null ? null : getEnd();<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        stop = tstart == null ? null : tstart - step;<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                }<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                step = -step;<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>                return this;<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>         * Populates given start, stop, step arrays from given slice array<a name="line.476"></a>
+<span class="sourceLineNo">477</span>         * <a name="line.477"></a>
+<span class="sourceLineNo">478</span>         * @param slice<a name="line.478"></a>
+<span class="sourceLineNo">479</span>         *            Input array of Slices wanted to convert<a name="line.479"></a>
+<span class="sourceLineNo">480</span>         * @param shape<a name="line.480"></a>
+<span class="sourceLineNo">481</span>         *            Input array of Slices shapes<a name="line.481"></a>
+<span class="sourceLineNo">482</span>         * @param start<a name="line.482"></a>
+<span class="sourceLineNo">483</span>         *            Output array of Slices starts<a name="line.483"></a>
+<span class="sourceLineNo">484</span>         * @param stop<a name="line.484"></a>
+<span class="sourceLineNo">485</span>         *            Output array of Slices stops<a name="line.485"></a>
+<span class="sourceLineNo">486</span>         * @param step<a name="line.486"></a>
+<span class="sourceLineNo">487</span>         *            Output array of Slices steps<a name="line.487"></a>
+<span class="sourceLineNo">488</span>         */<a name="line.488"></a>
+<span class="sourceLineNo">489</span>        public static void convertFromSlice(final Slice[] slice, final int[] shape, final int[] start, final int[] stop,<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                        final int[] step) {<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                final int rank = shape.length;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                final int length = slice == null ? 0 : slice.length;<a name="line.492"></a>
+<span class="sourceLineNo">493</span><a name="line.493"></a>
+<span class="sourceLineNo">494</span>                int i = 0;<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                for (; i &lt; length; i++) {<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                        if (length &gt; rank)<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                                break;<a name="line.497"></a>
+<span class="sourceLineNo">498</span><a name="line.498"></a>
+<span class="sourceLineNo">499</span>                        Slice s = slice[i];<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                        if (s == null) {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                                start[i] = 0;<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                                stop[i] = shape[i];<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                                step[i] = 1;<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                                continue;<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                        }<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                        int n;<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                        if (s.start == null) {<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                                start[i] = s.step &gt; 0 ? 0 : shape[i] - 1;<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                        } else {<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                                n = s.start;<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                                if (n &lt; 0)<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                                        n += shape[i];<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                                if (n &lt; 0 || n &gt;= shape[i]) {<a name="line.513"></a>
+<span class="sourceLineNo">514</span>                                        throw new IllegalArgumentException(<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                                                        String.format("Start is out of bounds: %d is not in [%d,%d)", n, s.start, shape[i]));<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                                }<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                                start[i] = n;<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>                        if (s.stop == null) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                                stop[i] = s.step &gt; 0 ? shape[i] : -1;<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                        } else {<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                                n = s.stop;<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                                if (n &lt; 0)<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                                        n += shape[i];<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                                if (n &lt; 0 || n &gt; shape[i]) {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                                        throw new IllegalArgumentException(<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                                                        String.format("Stop is out of bounds: %d is not in [%d,%d)", n, s.stop, shape[i]));<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                                }<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                                stop[i] = n;<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>                        n = s.step;<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                        if (n == 0) {<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                                throw new IllegalArgumentException("Step cannot be zero");<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                        }<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                        if (n &gt; 0) {<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                                if (start[i] &gt; stop[i])<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                                        throw new IllegalArgumentException("Start must be less than stop for positive steps");<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                        } else {<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                                if (start[i] &lt; stop[i])<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                                        throw new IllegalArgumentException("Start must be greater than stop for negative steps");<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                        }<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                        step[i] = n;<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                }<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                for (; i &lt; rank; i++) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                        start[i] = 0;<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                        stop[i] = shape[i];<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                        step[i] = 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>
+<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>         * Converts a set of integer arrays in a slice array<a name="line.554"></a>
+<span class="sourceLineNo">555</span>         * <a name="line.555"></a>
+<span class="sourceLineNo">556</span>         * @param start<a name="line.556"></a>
+<span class="sourceLineNo">557</span>         *            Array of Slices starts<a name="line.557"></a>
+<span class="sourceLineNo">558</span>         * @param stop<a name="line.558"></a>
+<span class="sourceLineNo">559</span>         *            Array of Slices stops<a name="line.559"></a>
+<span class="sourceLineNo">560</span>         * @param step<a name="line.560"></a>
+<span class="sourceLineNo">561</span>         *            Array of Slices steps<a name="line.561"></a>
+<span class="sourceLineNo">562</span>         * @return Slice array corresponding to the starts, stops and steps arrays<a name="line.562"></a>
+<span class="sourceLineNo">563</span>         *         entered.<a name="line.563"></a>
+<span class="sourceLineNo">564</span>         */<a name="line.564"></a>
+<span class="sourceLineNo">565</span>        public static Slice[] convertToSlice(final int[] start, final int[] stop, final int[] step) {<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                int orank = start.length;<a name="line.566"></a>
+<span class="sourceLineNo">567</span><a name="line.567"></a>
+<span class="sourceLineNo">568</span>                if (stop.length != orank || step.length != orank) {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                        throw new IllegalArgumentException("All arrays must be same length");<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>                Slice[] slice = new Slice[orank];<a name="line.572"></a>
+<span class="sourceLineNo">573</span><a name="line.573"></a>
+<span class="sourceLineNo">574</span>                for (int j = 0; j &lt; orank; j++) {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        slice[j] = new Slice(start[j], stop[j], step[j]);<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>                return slice;<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>        /**<a name="line.581"></a>
+<span class="sourceLineNo">582</span>         * Converts string in a Slice array<a name="line.582"></a>
+<span class="sourceLineNo">583</span>         * <a name="line.583"></a>
+<span class="sourceLineNo">584</span>         * @param sliceString<a name="line.584"></a>
+<span class="sourceLineNo">585</span>         *            String of the Slice array<a name="line.585"></a>
+<span class="sourceLineNo">586</span>         * @return Slice array created from the given string<a name="line.586"></a>
+<span class="sourceLineNo">587</span>         */<a name="line.587"></a>
+<span class="sourceLineNo">588</span>        public static Slice[] convertFromString(String sliceString) {<a name="line.588"></a>
+<span class="sourceLineNo">589</span><a name="line.589"></a>
+<span class="sourceLineNo">590</span>                String clean = sliceString.replace("[", "").replace("]", "");<a name="line.590"></a>
+<span class="sourceLineNo">591</span><a name="line.591"></a>
+<span class="sourceLineNo">592</span>                String[] sub = clean.split(",");<a name="line.592"></a>
+<span class="sourceLineNo">593</span><a name="line.593"></a>
+<span class="sourceLineNo">594</span>                Slice[] slices = new Slice[sub.length];<a name="line.594"></a>
+<span class="sourceLineNo">595</span><a name="line.595"></a>
+<span class="sourceLineNo">596</span>                for (int i = 0; i &lt; sub.length; i++) {<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                        String s = sub[i];<a name="line.597"></a>
+<span class="sourceLineNo">598</span><a name="line.598"></a>
+<span class="sourceLineNo">599</span>                        Slice slice = new Slice();<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        slices[i] = slice;<a name="line.600"></a>
+<span class="sourceLineNo">601</span><a name="line.601"></a>
+<span class="sourceLineNo">602</span>                        int idx0 = s.indexOf(":");<a name="line.602"></a>
+<span class="sourceLineNo">603</span><a name="line.603"></a>
+<span class="sourceLineNo">604</span>                        int n = 0;<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        if (idx0 == -1) {<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                                n = Integer.parseInt(s);<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                                slice.setStart(n);<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                                slice.setStop(n + 1);<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                                continue;<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        } else if (idx0 != 0) {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                                n = Integer.parseInt(s.substring(0, idx0));<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                        }<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                        slice.setStart(n);<a name="line.613"></a>
+<span class="sourceLineNo">614</span><a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        idx0++;<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                        int idx1 = s.indexOf(":", idx0);<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                        if (idx1 == -1) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                                String t = s.substring(idx0).trim();<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                                if (t.length() == 0)<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                                        continue;<a name="line.620"></a>
+<span class="sourceLineNo">621</span><a name="line.621"></a>
+<span class="sourceLineNo">622</span>                                slice.setStop(Integer.parseInt(t));<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                                continue;<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                        } else if (idx1 != idx0) {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                                slice.setStop(Integer.parseInt(s.substring(idx0, idx1)));<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>                        String t = s.substring(idx1 + 1).trim();<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                        if (t.length() &gt; 0)<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                                slice.setStep(Integer.parseInt(t));<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>                return slices;<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>        /**<a name="line.636"></a>
+<span class="sourceLineNo">637</span>         * Creates a string representing the slice taken from given shape<a name="line.637"></a>
+<span class="sourceLineNo">638</span>         * <a name="line.638"></a>
+<span class="sourceLineNo">639</span>         * @param shape<a name="line.639"></a>
+<span class="sourceLineNo">640</span>         *            Array of Slices shapes<a name="line.640"></a>
+<span class="sourceLineNo">641</span>         * @param start<a name="line.641"></a>
+<span class="sourceLineNo">642</span>         *            Array of Slices starts<a name="line.642"></a>
+<span class="sourceLineNo">643</span>         * @param stop<a name="line.643"></a>
+<span class="sourceLineNo">644</span>         *            Array of Slices stops<a name="line.644"></a>
+<span class="sourceLineNo">645</span>         * @param step<a name="line.645"></a>
+<span class="sourceLineNo">646</span>         *            Array of Slices steps<a name="line.646"></a>
+<span class="sourceLineNo">647</span>         * @return String representation of the Slice<a name="line.647"></a>
+<span class="sourceLineNo">648</span>         */<a name="line.648"></a>
+<span class="sourceLineNo">649</span>        public static String createString(final int[] shape, final int[] start, final int[] stop, final int[] step) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                final int rank = shape.length;<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                if (rank == 0) {<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                        return "";<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                }<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                StringBuilder s = new StringBuilder();<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                        int l = shape[i];<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                        int d = step == null ? 1 : step[i];<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                        int b = start == null ? (d &gt; 0 ? 0 : l - 1) : start[i];<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                        int e = stop == null ? (d &gt; 0 ? l : -1) : stop[i];<a name="line.659"></a>
+<span class="sourceLineNo">660</span><a name="line.660"></a>
+<span class="sourceLineNo">661</span>                        appendSliceToString(s, l, b, e, d);<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                        s.append(',');<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>                return s.substring(0, s.length() - 1);<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>        /**<a name="line.668"></a>
+<span class="sourceLineNo">669</span>         * Creates a string representation of slices.<a name="line.669"></a>
+<span class="sourceLineNo">670</span>         * <a name="line.670"></a>
+<span class="sourceLineNo">671</span>         * @param slices<a name="line.671"></a>
+<span class="sourceLineNo">672</span>         *            Wanted Slices to put inside of the string representation<a name="line.672"></a>
+<span class="sourceLineNo">673</span>         * @return Return the string representation of the Slices entered.<a name="line.673"></a>
+<span class="sourceLineNo">674</span>         */<a name="line.674"></a>
+<span class="sourceLineNo">675</span>        public static String createString(Slice... slices) {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                if (slices == null || slices.length == 0) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                        return "";<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>                StringBuilder t = new StringBuilder();<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                for (Slice s : slices) {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                        t.append(s != null ? s.toString() : ':');<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                        t.append(',');<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>                return t.substring(0, t.length() - 1);<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/SliceIterator.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/SliceIterator.html
new file mode 100644
index 0000000..795780d
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/SliceIterator.html
@@ -0,0 +1,420 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.Arrays;<a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>/**     <a name="line.18"></a>
+<span class="sourceLineNo">019</span> * The {@code SliceIterator} class is use to run over a Slice of a Dataset.<a name="line.19"></a>
+<span class="sourceLineNo">020</span> * <a name="line.20"></a>
+<span class="sourceLineNo">021</span> * This is an Iterator thats allows the programmer to traverse the elements of a sliced Dataset and obtain the current position, the starts, steps,<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * shapes.<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * Moreover, there is possibilities to set the start point to begin at the wanted position.<a name="line.23"></a>
+<span class="sourceLineNo">024</span> */<a name="line.24"></a>
+<span class="sourceLineNo">025</span>public class SliceIterator extends IndexIterator {<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        int[] shape;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        int isize;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        int endrank; // last shape index<a name="line.28"></a>
+<span class="sourceLineNo">029</span>        int[] gap; // gaps in dataset<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        int imax; // maximum index in array<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        int[] start;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        int[] stop;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        int[] step;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>        int[] sshape; // slice shape<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        int[] pos; // position in dataset<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        int istep; // step in last index<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>        SliceIterator() {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        }<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>        /**<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * Constructs an SliceIterator Object, which can iterate over sliced<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * Datasets elements, by default the start set to 0 and with a step of 1.<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * <a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * @param shape<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         *            Array of shapes of the Dataset<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         * @param length<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         *            Length of entire data array<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         * @param sshape<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         *            Shape of the new dataset, i.e. slice<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         */<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        public SliceIterator(final int[] shape, final int length, final int[] sshape) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                this(shape, length, null, null, sshape, 1);<a name="line.53"></a>
+<span class="sourceLineNo">054</span>        }<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>        /**<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * Constructs an SliceIterator Object, which can iterate over sliced<a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * Datasets elements, by default the start set to 0 and with a step of 1.<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * <a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @param shape<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         *            Array of shapes of the Dataset<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * @param length<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         *            Length of entire data array<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         * @param start<a name="line.64"></a>
+<span class="sourceLineNo">065</span>         *            Array of starts indexes, may be {@code null}<a name="line.65"></a>
+<span class="sourceLineNo">066</span>         * @param sshape<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         *            Shape of the new dataset, i.e. slice<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         */<a name="line.68"></a>
+<span class="sourceLineNo">069</span>        public SliceIterator(final int[] shape, final int length, final int[] start, final int[] sshape) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                this(shape, length, start, null, sshape, 1);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        }<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>        /**<a name="line.73"></a>
+<span class="sourceLineNo">074</span>         * Constructs an SliceIterator Object, which can iterate over sliced<a name="line.74"></a>
+<span class="sourceLineNo">075</span>         * Datasets elements, by default the start set to 0 and with a step of 1.<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * <a name="line.76"></a>
+<span class="sourceLineNo">077</span>         * @param shape<a name="line.77"></a>
+<span class="sourceLineNo">078</span>         *            Array of shapes of the Dataset<a name="line.78"></a>
+<span class="sourceLineNo">079</span>         * @param length<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         *            Length of entire data array<a name="line.80"></a>
+<span class="sourceLineNo">081</span>         * @param sshape<a name="line.81"></a>
+<span class="sourceLineNo">082</span>         *            Shape of the new dataset, i.e. slice<a name="line.82"></a>
+<span class="sourceLineNo">083</span>         * @param isize<a name="line.83"></a>
+<span class="sourceLineNo">084</span>         *            Number of elements in an item<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         */<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        public SliceIterator(final int[] shape, final int length, final int[] sshape, final int isize) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                this(shape, length, null, null, sshape, isize);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>        }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>        /**<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         * Constructs an SliceIterator Object, which can iterate over sliced<a name="line.91"></a>
+<span class="sourceLineNo">092</span>         * Datasets elements, by default the start set to 0 and with a step of 1.<a name="line.92"></a>
+<span class="sourceLineNo">093</span>         * <a name="line.93"></a>
+<span class="sourceLineNo">094</span>         * @param shape<a name="line.94"></a>
+<span class="sourceLineNo">095</span>         *            Array of shapes of the Dataset<a name="line.95"></a>
+<span class="sourceLineNo">096</span>         * @param length<a name="line.96"></a>
+<span class="sourceLineNo">097</span>         *            Length of entire data array<a name="line.97"></a>
+<span class="sourceLineNo">098</span>         * @param start<a name="line.98"></a>
+<span class="sourceLineNo">099</span>         *            Array of starts indexes, may be {@code null}<a name="line.99"></a>
+<span class="sourceLineNo">100</span>         * @param sshape<a name="line.100"></a>
+<span class="sourceLineNo">101</span>         *            Shape of the new dataset, i.e. slice<a name="line.101"></a>
+<span class="sourceLineNo">102</span>         * @param isize<a name="line.102"></a>
+<span class="sourceLineNo">103</span>         *            Number of elements in an item<a name="line.103"></a>
+<span class="sourceLineNo">104</span>         */<a name="line.104"></a>
+<span class="sourceLineNo">105</span>        public SliceIterator(final int[] shape, final int length, final int[] start, final int[] sshape, final int isize) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                this(shape, length, start, null, sshape, isize);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>        /**<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         * Constructs an SliceIterator Object, which can iterate over sliced<a name="line.110"></a>
+<span class="sourceLineNo">111</span>         * Datasets elements, by default the start set to 0 and with a step of 1.<a name="line.111"></a>
+<span class="sourceLineNo">112</span>         * <a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * @param shape<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         *            Array of shapes of the Dataset<a name="line.114"></a>
+<span class="sourceLineNo">115</span>         * @param length<a name="line.115"></a>
+<span class="sourceLineNo">116</span>         *            Length of entire data array<a name="line.116"></a>
+<span class="sourceLineNo">117</span>         * @param start<a name="line.117"></a>
+<span class="sourceLineNo">118</span>         *            Array of starts indexes, may be {@code null}<a name="line.118"></a>
+<span class="sourceLineNo">119</span>         * @param step<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         *            Array of steps, may be {@code null}, but can't be 0<a name="line.120"></a>
+<span class="sourceLineNo">121</span>         * @param sshape<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         *            shape of new dataset, i.e. slice<a name="line.122"></a>
+<span class="sourceLineNo">123</span>         */<a name="line.123"></a>
+<span class="sourceLineNo">124</span>        public SliceIterator(final int[] shape, final int length, final int[] start, final int[] step, final int[] sshape) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                this(shape, length, start, step, sshape, 1);<a name="line.125"></a>
+<span class="sourceLineNo">126</span>        }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>        /**<a name="line.128"></a>
+<span class="sourceLineNo">129</span>         * Constructs an SliceIterator Object, which can iterate over sliced<a name="line.129"></a>
+<span class="sourceLineNo">130</span>         * Datasets elements, by default the start set to 0 and with a step of 1.<a name="line.130"></a>
+<span class="sourceLineNo">131</span>         * <a name="line.131"></a>
+<span class="sourceLineNo">132</span>         * @param shape<a name="line.132"></a>
+<span class="sourceLineNo">133</span>         *            Array of shapes of the Dataset<a name="line.133"></a>
+<span class="sourceLineNo">134</span>         * @param length<a name="line.134"></a>
+<span class="sourceLineNo">135</span>         *            Length of entire data array<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         * @param slice<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         *            SliceND to iterate on<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         */<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        public SliceIterator(final int[] shape, final int length, final SliceND slice) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                this(shape, length, slice.getStart(), slice.getStep(), slice.getShape(), 1);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>        }<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>        /**<a name="line.143"></a>
+<span class="sourceLineNo">144</span>         * Constructs an SliceIterator Object, which can iterate over sliced<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * Datasets elements, by default the start set to 0 and with a step of 1.<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         * <a name="line.146"></a>
+<span class="sourceLineNo">147</span>         * @param shape<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         *            Array of shapes of the Dataset<a name="line.148"></a>
+<span class="sourceLineNo">149</span>         * @param length<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         *            Length of entire data array<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         * @param isize<a name="line.151"></a>
+<span class="sourceLineNo">152</span>         *            Number of elements in an item<a name="line.152"></a>
+<span class="sourceLineNo">153</span>         * @param slice<a name="line.153"></a>
+<span class="sourceLineNo">154</span>         *            SliceND to iterate on<a name="line.154"></a>
+<span class="sourceLineNo">155</span>         */<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        public SliceIterator(final int[] shape, final int length, final int isize, final SliceND slice) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                this(shape, length, slice.getStart(), slice.getStep(), slice.getShape(), isize);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        }<a name="line.158"></a>
+<span class="sourceLineNo">159</span><a name="line.159"></a>
+<span class="sourceLineNo">160</span>        /**<a name="line.160"></a>
+<span class="sourceLineNo">161</span>         * Constructs an SliceIterator Object, which can iterate over sliced<a name="line.161"></a>
+<span class="sourceLineNo">162</span>         * Datasets elements, by default the start set to 0 and with a step of 1.<a name="line.162"></a>
+<span class="sourceLineNo">163</span>         * <a name="line.163"></a>
+<span class="sourceLineNo">164</span>         * @param shape<a name="line.164"></a>
+<span class="sourceLineNo">165</span>         *            Array of shapes of the Dataset<a name="line.165"></a>
+<span class="sourceLineNo">166</span>         * @param length<a name="line.166"></a>
+<span class="sourceLineNo">167</span>         *            Length of entire data array<a name="line.167"></a>
+<span class="sourceLineNo">168</span>         * @param start<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         *            Array of starts indexes, may be {@code null}<a name="line.169"></a>
+<span class="sourceLineNo">170</span>         * @param step<a name="line.170"></a>
+<span class="sourceLineNo">171</span>         *            Array of steps, may be {@code null}, but can't be 0<a name="line.171"></a>
+<span class="sourceLineNo">172</span>         * @param sshape<a name="line.172"></a>
+<span class="sourceLineNo">173</span>         *            Shape of the new dataset, i.e. slice<a name="line.173"></a>
+<span class="sourceLineNo">174</span>         * @param isize<a name="line.174"></a>
+<span class="sourceLineNo">175</span>         *            Number of elements in an item<a name="line.175"></a>
+<span class="sourceLineNo">176</span>         */<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        public SliceIterator(final int[] shape, final int length, final int[] start, final int[] step, final int[] sshape,<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        final int isize) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                this.isize = isize;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                int rank = shape.length;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                endrank = rank - 1;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                this.shape = shape;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                this.start = new int[rank];<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                this.sshape = sshape;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                if (step == null) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        this.step = new int[rank];<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                        Arrays.fill(this.step, 1);<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                } else {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                        this.step = step;<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>                if (rank == 0) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                        istep = isize;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                        imax = length * isize;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                        stop = new int[0];<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                        pos = new int[0];<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                        gap = null;<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                } else {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        istep = this.step[endrank] * isize;<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        imax = length * isize;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                        stop = new int[rank];<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        gap = new int[endrank + 1];<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        pos = new int[rank];<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                        calcGap();<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                }<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>                setStart(start);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        }<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>        void calcGap() {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                int chunk = isize;<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                for (int i = endrank; i &gt;= 0; i--) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                        stop[i] = start[i] + sshape[i] * step[i];<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>                        if (step[i] &lt; 0) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                                stop[i]++; // adjust for -ve steps so later code has more succinct test<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                        }<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>                        if (i &gt; 0) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                                gap[i] = (shape[i] * step[i - 1] - sshape[i] * step[i]) * chunk;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                                chunk *= shape[i];<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        }<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                }<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        }<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>        /**<a name="line.226"></a>
+<span class="sourceLineNo">227</span>         * Set the starts indexes to new positions, {@code if null} the start index<a name="line.227"></a>
+<span class="sourceLineNo">228</span>         * is set by default to 0<a name="line.228"></a>
+<span class="sourceLineNo">229</span>         * <a name="line.229"></a>
+<span class="sourceLineNo">230</span>         * @param newStart<a name="line.230"></a>
+<span class="sourceLineNo">231</span>         *            Array of new starts indexes (prefix with zeros if necessary),<a name="line.231"></a>
+<span class="sourceLineNo">232</span>         *            may be {@code null}<a name="line.232"></a>
+<span class="sourceLineNo">233</span>         */<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        public void setStart(int... newStart) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                final int rank = shape.length;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                if (rank == 0) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                        index = -istep;<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                        return;<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                }<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>                if (newStart == null) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                start[i] = 0;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                        }<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                } else if (newStart.length &gt; rank) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        throw new IllegalArgumentException("Length of start array greater than rank");<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                } else {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                        int extra = rank - newStart.length;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                        for (int i = 0; i &lt; extra; i++) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                                start[i] = 0;<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                        }<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                        for (int i = 0; i &lt; newStart.length; i++) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                                start[i + extra] = newStart[i];<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                        }<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                }<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>                reset();<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                calcGap();<a name="line.258"></a>
+<span class="sourceLineNo">259</span>        }<a name="line.259"></a>
+<span class="sourceLineNo">260</span><a name="line.260"></a>
+<span class="sourceLineNo">261</span>        /**<a name="line.261"></a>
+<span class="sourceLineNo">262</span>         * Reset the Iterator to the first Slice.<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         */<a name="line.263"></a>
+<span class="sourceLineNo">264</span>        @Override<a name="line.264"></a>
+<span class="sourceLineNo">265</span>        public void reset() {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                if (shape.length == 0) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                        index = -istep;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                } else {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                        // work out index of first position<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                        for (int i = 0; i &lt; shape.length; i++) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                                pos[i] = start[i];<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                        }<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        pos[endrank] -= step[endrank];<a name="line.273"></a>
+<span class="sourceLineNo">274</span><a name="line.274"></a>
+<span class="sourceLineNo">275</span>                        index = pos[0];<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                        for (int j = 1; j &lt;= endrank; j++)<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                                index = index * shape[j] + pos[j];<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                        index *= isize;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                }<a name="line.279"></a>
+<span class="sourceLineNo">280</span>        }<a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>        /**<a name="line.282"></a>
+<span class="sourceLineNo">283</span>         * Returns {@code true} if there is an other element after the current<a name="line.283"></a>
+<span class="sourceLineNo">284</span>         * Slice.<a name="line.284"></a>
+<span class="sourceLineNo">285</span>         * <a name="line.285"></a>
+<span class="sourceLineNo">286</span>         * @return Returns {@code true} if the iteration has more Slice, {@code false} in<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         *         the other case<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         */<a name="line.288"></a>
+<span class="sourceLineNo">289</span>        @Override<a name="line.289"></a>
+<span class="sourceLineNo">290</span>        public boolean hasNext() {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                // now move on one position in slice<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                int j = endrank;<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                for (; j &gt;= 0; j--) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                        pos[j] += step[j];<a name="line.294"></a>
+<span class="sourceLineNo">295</span><a name="line.295"></a>
+<span class="sourceLineNo">296</span>                        if ((pos[j] &gt;= stop[j]) == (step[j] &gt; 0)) { <a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                pos[j] = start[j]; // stop index has been adjusted in code for -ve steps<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                                index += gap[j];<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                        } else {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                                break;<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                        }<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                }<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                if (j == -1 &amp;&amp; endrank &gt;= 0) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                        return false;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                }<a name="line.305"></a>
+<span class="sourceLineNo">306</span><a name="line.306"></a>
+<span class="sourceLineNo">307</span>                index += istep;<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                return index &lt; imax;<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        }<a name="line.309"></a>
+<span class="sourceLineNo">310</span><a name="line.310"></a>
+<span class="sourceLineNo">311</span>        /**<a name="line.311"></a>
+<span class="sourceLineNo">312</span>         * Returns an array of starts indexes.<a name="line.312"></a>
+<span class="sourceLineNo">313</span>         * <a name="line.313"></a>
+<span class="sourceLineNo">314</span>         * @return Array of starts indexes<a name="line.314"></a>
+<span class="sourceLineNo">315</span>         */<a name="line.315"></a>
+<span class="sourceLineNo">316</span>        public int[] getStart() {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                return start;<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        }<a name="line.318"></a>
+<span class="sourceLineNo">319</span><a name="line.319"></a>
+<span class="sourceLineNo">320</span>        /**<a name="line.320"></a>
+<span class="sourceLineNo">321</span>         * Returns the current position of the iterator.<a name="line.321"></a>
+<span class="sourceLineNo">322</span>         * <a name="line.322"></a>
+<span class="sourceLineNo">323</span>         * @return Iterator current position<a name="line.323"></a>
+<span class="sourceLineNo">324</span>         */<a name="line.324"></a>
+<span class="sourceLineNo">325</span>        @Override<a name="line.325"></a>
+<span class="sourceLineNo">326</span>        public int[] getPos() {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                return pos;<a name="line.327"></a>
+<span class="sourceLineNo">328</span>        }<a name="line.328"></a>
+<span class="sourceLineNo">329</span><a name="line.329"></a>
+<span class="sourceLineNo">330</span>        /**<a name="line.330"></a>
+<span class="sourceLineNo">331</span>         * Returns an array of steps<a name="line.331"></a>
+<span class="sourceLineNo">332</span>         * <a name="line.332"></a>
+<span class="sourceLineNo">333</span>         * @return Array of steps<a name="line.333"></a>
+<span class="sourceLineNo">334</span>         */<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        public int[] getStep() {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                return step;<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        }<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>        /**<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         * Returns an array of the Slices shapes.<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         * <a name="line.341"></a>
+<span class="sourceLineNo">342</span>         * @return Array of shapes.<a name="line.342"></a>
+<span class="sourceLineNo">343</span>         */<a name="line.343"></a>
+<span class="sourceLineNo">344</span>        @Override<a name="line.344"></a>
+<span class="sourceLineNo">345</span>        public int[] getShape() {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                return sshape;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>        }<a name="line.347"></a>
+<span class="sourceLineNo">348</span>}<a name="line.348"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/SliceND.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/SliceND.html
new file mode 100644
index 0000000..6315770
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/SliceND.html
@@ -0,0 +1,687 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright (c) 2014, 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>import java.util.Arrays;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>/**     <a name="line.14"></a>
+<span class="sourceLineNo">015</span> * The {@code SliceND} class represents a slice through all dimensions of a multi-dimensional {@link org.eclipse.january.dataset.Dataset}.&lt;br&gt;&lt;br&gt;<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * A slice comprises a starting position array, a stopping position array (not included) and a stepping size array.&lt;br&gt;<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * If a maximum shape is specified, slicing past the original shape is supported for positive<a name="line.17"></a>
+<span class="sourceLineNo">018</span> * steps otherwise it is ignored. With unlimited dimensions, extending past the original shape is only<a name="line.18"></a>
+<span class="sourceLineNo">019</span> * allowed if the stopping value is given.<a name="line.19"></a>
+<span class="sourceLineNo">020</span> */<a name="line.20"></a>
+<span class="sourceLineNo">021</span>public class SliceND {<a name="line.21"></a>
+<span class="sourceLineNo">022</span>        private int[] lstart;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>        private int[] lstop;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>        private int[] lstep;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        private transient int[] lshape; // latest shape<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        private int[] oshape; // source or original shape<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        private int[] mshape; // max shape<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>        private boolean expanded;<a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span>        /**<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * Construct a nD Slice for whole of shape.<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * <a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * @param shape<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         *            Shape of the dataset, see {@link ILazyDataset#getShape()}<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         */<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        public SliceND(final int[] shape) {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                final int rank = shape.length;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                lstart = new int[rank];<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                lstop = shape.clone();<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                lstep = new int[rank];<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                Arrays.fill(lstep, 1);<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                lshape = shape.clone();<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                oshape = shape.clone();<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                mshape = oshape;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                expanded = false;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        }<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>        /**<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         * Construct a nD Slice from an array of 1D slices.<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         * <a name="line.51"></a>
+<span class="sourceLineNo">052</span>         * @param shape<a name="line.52"></a>
+<span class="sourceLineNo">053</span>         *            Shape of the dataset, see {@link ILazyDataset#getShape()}<a name="line.53"></a>
+<span class="sourceLineNo">054</span>         * @param slice<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         *            Slice for each dimension of ND slice<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        public SliceND(final int[] shape, Slice... slice) {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                this(shape, null, slice);<a name="line.58"></a>
+<span class="sourceLineNo">059</span>        }<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>        /**<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * Construct a nD Slice from an array of 1D slices, if the maxShape is<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         * {@code null}, it will be set to the maximum shape of the nD Slice.<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         * <a name="line.64"></a>
+<span class="sourceLineNo">065</span>         * @param shape<a name="line.65"></a>
+<span class="sourceLineNo">066</span>         *            Shape of the dataset, see {@link ILazyDataset#getShape()}<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * @param maxShape,<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         *            may be {@code null}<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         * @param slice<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         *            Slice for each dimension of ND slice<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         */<a name="line.71"></a>
+<span class="sourceLineNo">072</span>        public SliceND(final int[] shape, final int[] maxShape, Slice... slice) {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                this(shape);<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>                if (maxShape != null) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        initMaxShape(maxShape);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                }<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>                if (slice != null) {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        final int length = slice.length;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        final int rank = shape.length;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        if (length &gt; rank) {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                                throw new IllegalArgumentException("More slices have been specified than rank of shape");<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                        }<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                        for (int i = 0; i &lt; length; i++) {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                                Slice s = slice[i];<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                                if (s != null) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                                        setSlice(i, s);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                                }<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                        }<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                }<a name="line.91"></a>
+<span class="sourceLineNo">092</span>        }<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>        private void initMaxShape(int[] maxShape) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                final int rank = oshape.length;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                if (maxShape.length != rank) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        throw new IllegalArgumentException("Maximum shape must have same rank as shape");<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                }<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                mshape = maxShape.clone();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                        int m = mshape[i];<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                        if (m != ILazyWriteableDataset.UNLIMITED &amp;&amp; m &lt; oshape[i]) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                throw new IllegalArgumentException("Maximum shape must be greater than or equal to shape");<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                        }<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                }<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        }<a name="line.106"></a>
+<span class="sourceLineNo">107</span><a name="line.107"></a>
+<span class="sourceLineNo">108</span>        /**<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         * Construct a nD Slice from parameters, if the maxShape is {@code null}, it<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         * will be set to the maximum shape of the nD Slice, the start will be set<a name="line.110"></a>
+<span class="sourceLineNo">111</span>         * to 0, stop is by default equal to the entire size of the set, step is<a name="line.111"></a>
+<span class="sourceLineNo">112</span>         * defaultly set to 1.<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * <a name="line.113"></a>
+<span class="sourceLineNo">114</span>         * @param shape<a name="line.114"></a>
+<span class="sourceLineNo">115</span>         *            Shape of the dataset, see {@link ILazyDataset#getShape()}<a name="line.115"></a>
+<span class="sourceLineNo">116</span>         * @param start<a name="line.116"></a>
+<span class="sourceLineNo">117</span>         *            Array of starts points, may be {@code null}<a name="line.117"></a>
+<span class="sourceLineNo">118</span>         * @param stop<a name="line.118"></a>
+<span class="sourceLineNo">119</span>         *            Array of stops points, may be {@code null}<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         * @param step<a name="line.120"></a>
+<span class="sourceLineNo">121</span>         *            Array of steps, may be {@code null}<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         */<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        public SliceND(final int[] shape, final int[] start, final int[] stop, final int[] step) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                this(shape, null, start, stop, step);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>        }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>        /**<a name="line.127"></a>
+<span class="sourceLineNo">128</span>         * Construct a nD Slice from parameters, if the maxShape is {@code null}, it<a name="line.128"></a>
+<span class="sourceLineNo">129</span>         * will be set to the maximum shape of the nD Slice, the start will be set<a name="line.129"></a>
+<span class="sourceLineNo">130</span>         * to 0, stop is by default equal to the entire size of the set, step is<a name="line.130"></a>
+<span class="sourceLineNo">131</span>         * defaultly set to 1.<a name="line.131"></a>
+<span class="sourceLineNo">132</span>         * <a name="line.132"></a>
+<span class="sourceLineNo">133</span>         * @param shape<a name="line.133"></a>
+<span class="sourceLineNo">134</span>         *            Shape of the dataset, see {@link ILazyDataset#getShape()}<a name="line.134"></a>
+<span class="sourceLineNo">135</span>         * @param maxShape<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         *            Array of maximals shapes, may be {@code null}<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         * @param start<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         *            Array of starts points, may be {@code null}<a name="line.138"></a>
+<span class="sourceLineNo">139</span>         * @param stop<a name="line.139"></a>
+<span class="sourceLineNo">140</span>         *            Array of stops points, may be {@code null}<a name="line.140"></a>
+<span class="sourceLineNo">141</span>         * @param step<a name="line.141"></a>
+<span class="sourceLineNo">142</span>         *            Array of steps, may be {@code null}<a name="line.142"></a>
+<span class="sourceLineNo">143</span>         */<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        public SliceND(final int[] shape, final int[] maxShape, final int[] start, final int[] stop, final int[] step) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                // number of steps, or new shape, taken in each dimension is<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                // shape = (stop - start + step - 1) / step if step &gt; 0<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                // (stop - start + step + 1) / step if step &lt; 0<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                //<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                // thus the final index in each dimension is<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                // start + (shape-1)*step<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>                int rank = shape.length;<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>                if (start == null) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                        lstart = new int[rank];<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                } else {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        lstart = start.clone();<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                }<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                if (stop == null) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        lstop = new int[rank];<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                } else {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        lstop = stop.clone();<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                }<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                if (step == null) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                        lstep = new int[rank];<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        Arrays.fill(lstep, 1);<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                } else {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                        lstep = step.clone();<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                }<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>                if (lstart.length != rank || lstop.length != rank || lstep.length != rank) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        throw new IllegalArgumentException("No of indexes does not match data dimensions: you passed it start="<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                                        + lstart.length + ", stop=" + lstop.length + ", step=" + lstep.length + ", and it needs " + rank);<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                }<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>                lshape = new int[rank];<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                oshape = shape.clone();<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                if (maxShape == null) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                        mshape = oshape;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                } else {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                        initMaxShape(maxShape);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                }<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                        internalSetSlice(i, start == null ? null : lstart[i], stop == null ? null : lstop[i], lstep[i]);<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                }<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        }<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>        /**<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         * Set slice for given dimension, if the start is {@code null} it will be<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         * set to 0, stop is by default equal to the entire size of the set.<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         * <a name="line.192"></a>
+<span class="sourceLineNo">193</span>         * @param i<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         *            dimension<a name="line.194"></a>
+<span class="sourceLineNo">195</span>         * @param start<a name="line.195"></a>
+<span class="sourceLineNo">196</span>         *            Start point, may be {@code null} to imply start of dimension<a name="line.196"></a>
+<span class="sourceLineNo">197</span>         * @param stop<a name="line.197"></a>
+<span class="sourceLineNo">198</span>         *            Stop point, may be {@code null} to imply end of dimension<a name="line.198"></a>
+<span class="sourceLineNo">199</span>         * @param step<a name="line.199"></a>
+<span class="sourceLineNo">200</span>         *            Slice step<a name="line.200"></a>
+<span class="sourceLineNo">201</span>         */<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        public void setSlice(int i, Integer start, Integer stop, int step) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                internalSetSlice(i, start, stop, step);<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>        /**<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * Set slice for given dimension, if the start is {@code null} it will be<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * set to 0, stop is by default equal to the entire size of the set.<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * <a name="line.209"></a>
+<span class="sourceLineNo">210</span>         * @param i<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         *            dimension<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         * @param start<a name="line.212"></a>
+<span class="sourceLineNo">213</span>         *            Start point, may be {@code null} to imply start of dimension<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         * @param stop<a name="line.214"></a>
+<span class="sourceLineNo">215</span>         *            Stop point, may be {@code null} to imply end of dimension<a name="line.215"></a>
+<span class="sourceLineNo">216</span>         * @param step<a name="line.216"></a>
+<span class="sourceLineNo">217</span>         *            Slice step<a name="line.217"></a>
+<span class="sourceLineNo">218</span>         */<a name="line.218"></a>
+<span class="sourceLineNo">219</span>        public void setSlice(int i, int start, int stop, int step) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                internalSetSlice(i, start, stop, step);<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>        /**<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * Set slice for given dimension.<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         * <a name="line.225"></a>
+<span class="sourceLineNo">226</span>         * @param i<a name="line.226"></a>
+<span class="sourceLineNo">227</span>         *            Dimension<a name="line.227"></a>
+<span class="sourceLineNo">228</span>         * @param slice<a name="line.228"></a>
+<span class="sourceLineNo">229</span>         *            Slice with wanted properties to set<a name="line.229"></a>
+<span class="sourceLineNo">230</span>         * @since 2.0<a name="line.230"></a>
+<span class="sourceLineNo">231</span>         */<a name="line.231"></a>
+<span class="sourceLineNo">232</span>        public void setSlice(int i, Slice slice) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                internalSetSlice(i, slice.getStart(), slice.getStop(), slice.getStep());<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        }<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>        /**<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         * Set slice for given dimension, if the start is {@code null} it will be<a name="line.237"></a>
+<span class="sourceLineNo">238</span>         * set to 0, stop is by default equal to the entire size of the set.<a name="line.238"></a>
+<span class="sourceLineNo">239</span>         * <a name="line.239"></a>
+<span class="sourceLineNo">240</span>         * @param i<a name="line.240"></a>
+<span class="sourceLineNo">241</span>         *            dimension<a name="line.241"></a>
+<span class="sourceLineNo">242</span>         * @param start<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         *            Start point, may be {@code null} to imply start of dimension<a name="line.243"></a>
+<span class="sourceLineNo">244</span>         * @param stop<a name="line.244"></a>
+<span class="sourceLineNo">245</span>         *            Stop point, may be {@code null} to imply end of dimension<a name="line.245"></a>
+<span class="sourceLineNo">246</span>         * @param step<a name="line.246"></a>
+<span class="sourceLineNo">247</span>         *            Slice step<a name="line.247"></a>
+<span class="sourceLineNo">248</span>         */<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        private void internalSetSlice(int i, Integer start, Integer stop, int step) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                if (step == 0) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                        throw new IllegalArgumentException("Step size must not be zero");<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                }<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                i = ShapeUtils.checkAxis(oshape.length, i);<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                final int s = oshape[i];<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                final int m = mshape[i];<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>                if (start == null) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        start = step &gt; 0 ? 0 : s - 1;<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                } else if (start &lt; 0) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                        start += s;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                }<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                if (step &gt; 0) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        if (start &lt; 0) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                                start = 0;<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                        } else if (start &gt; s) {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                                if (m == s) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                                        start = s;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                                } else if (m != ILazyWriteableDataset.UNLIMITED &amp;&amp; start &gt; m) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                                        start = m;<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                                }<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                        }<a name="line.271"></a>
+<span class="sourceLineNo">272</span><a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        if (stop == null) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                                if (start &gt;= s &amp;&amp; m == ILazyWriteableDataset.UNLIMITED) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                                        throw new IllegalArgumentException(<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                                                        "To extend past current dimension in unlimited case, a stop value must be specified");<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                                }<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                                stop = s;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                        } else if (stop &lt; 0) {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                                stop += s;<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                        }<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                        if (stop &lt; 0) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                                stop = 0;<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                        } else if (stop &gt; s) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                                if (m == s) {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                                        stop = s;<a name="line.286"></a>
+<span class="sourceLineNo">287</span>                                } else if (m != ILazyWriteableDataset.UNLIMITED &amp;&amp; stop &gt; m) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                                        stop = m;<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                                }<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                        }<a name="line.290"></a>
+<span class="sourceLineNo">291</span><a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        if (start &gt;= stop) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                                if (start &lt; s || m == s) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                                        lstop[i] = start;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                                } else { // override end<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                                        stop = start + step;<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                        if (m != ILazyWriteableDataset.UNLIMITED &amp;&amp; stop &gt; m) {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                                                stop = m;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                                        }<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                                        lstop[i] = stop;<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                                }<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                        } else {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                                lstop[i] = stop;<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                        }<a name="line.304"></a>
+<span class="sourceLineNo">305</span><a name="line.305"></a>
+<span class="sourceLineNo">306</span>                        if (lstop[i] &gt; s) {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                                oshape[i] = lstop[i];<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                                expanded = true;<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                        }<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                } else {<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                        if (start &lt; 0) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                                start = -1;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                        } else if (start &gt;= s) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                                start = s - 1;<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>                        if (stop == null) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                                stop = -1;<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                        } else if (stop &lt; 0) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                                stop += s;<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                        }<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                        if (stop &lt; -1) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                                stop = -1;<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                        } else if (stop &gt;= s) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                                stop = s - 1;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                        }<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                        if (stop &gt;= start) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                                lstop[i] = start;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        } else {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                                lstop[i] = stop;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                        }<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                }<a name="line.332"></a>
+<span class="sourceLineNo">333</span><a name="line.333"></a>
+<span class="sourceLineNo">334</span>                stop = lstop[i];<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                lshape[i] = calcLength(start, stop, step);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                lstart[i] = start;<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                lstep[i] = step;<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>        private static int calcLength(int start, int stop, int step) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                int l;<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                if (start == stop) {<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                        l = 0;<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                } else if (step &gt; 0) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                        l = Math.max(0, (stop - start - 1) / step + 1);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                } else {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                        l = Math.max(0, (stop - start + 1) / step + 1);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                }<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                return l;<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>         * Returns an array of shapes of the source Dataset (this can change for<a name="line.353"></a>
+<span class="sourceLineNo">354</span>         * dynamic Datasets).<a name="line.354"></a>
+<span class="sourceLineNo">355</span>         * <a name="line.355"></a>
+<span class="sourceLineNo">356</span>         * @return shape of source Dataset<a name="line.356"></a>
+<span class="sourceLineNo">357</span>         */<a name="line.357"></a>
+<span class="sourceLineNo">358</span>        public int[] getSourceShape() {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                return oshape;<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>        /**<a name="line.362"></a>
+<span class="sourceLineNo">363</span>         * Returns an array of maximals shapes<a name="line.363"></a>
+<span class="sourceLineNo">364</span>         * <a name="line.364"></a>
+<span class="sourceLineNo">365</span>         * @return maximum shape<a name="line.365"></a>
+<span class="sourceLineNo">366</span>         */<a name="line.366"></a>
+<span class="sourceLineNo">367</span>        public int[] getMaxShape() {<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                return mshape;<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>         * Returns {@code true} if the slice makes shape larger, else {@code false}.<a name="line.372"></a>
+<span class="sourceLineNo">373</span>         * <a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * @return {@code true} if slice makes shape larger, {@code false} in the<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         *         other case<a name="line.375"></a>
+<span class="sourceLineNo">376</span>         */<a name="line.376"></a>
+<span class="sourceLineNo">377</span>        public boolean isExpanded() {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                return expanded;<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>         * Returns an array of resulting shapes (this can change if the start, stop,<a name="line.382"></a>
+<span class="sourceLineNo">383</span>         * step arrays are changed).<a name="line.383"></a>
+<span class="sourceLineNo">384</span>         * <a name="line.384"></a>
+<span class="sourceLineNo">385</span>         * @return resulting shape<a name="line.385"></a>
+<span class="sourceLineNo">386</span>         */<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        public int[] getShape() {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                return lshape;<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>
+<span class="sourceLineNo">392</span>         * Returns an array of the starts values.<a name="line.392"></a>
+<span class="sourceLineNo">393</span>         * <a name="line.393"></a>
+<span class="sourceLineNo">394</span>         * @return start values<a name="line.394"></a>
+<span class="sourceLineNo">395</span>         */<a name="line.395"></a>
+<span class="sourceLineNo">396</span>        public int[] getStart() {<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                return lstart;<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>        /**<a name="line.400"></a>
+<span class="sourceLineNo">401</span>         * Returns an array of stops values.<a name="line.401"></a>
+<span class="sourceLineNo">402</span>         * &lt;p&gt;<a name="line.402"></a>
+<span class="sourceLineNo">403</span>         * Note : stop values are clamped to -1 for &lt;b&gt;negative&lt;/b&gt; steps<a name="line.403"></a>
+<span class="sourceLineNo">404</span>         * &lt;/p&gt;<a name="line.404"></a>
+<span class="sourceLineNo">405</span>         * <a name="line.405"></a>
+<span class="sourceLineNo">406</span>         * @return stop values<a name="line.406"></a>
+<span class="sourceLineNo">407</span>         */<a name="line.407"></a>
+<span class="sourceLineNo">408</span>        public int[] getStop() {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                return lstop;<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>         * Returns an array of the steps values.<a name="line.413"></a>
+<span class="sourceLineNo">414</span>         * <a name="line.414"></a>
+<span class="sourceLineNo">415</span>         * @return step values<a name="line.415"></a>
+<span class="sourceLineNo">416</span>         */<a name="line.416"></a>
+<span class="sourceLineNo">417</span>        public int[] getStep() {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                return lstep;<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>         * Returns {@code true} if all of originals shapes are covered by positive<a name="line.422"></a>
+<span class="sourceLineNo">423</span>         * steps slices, else {@code false}.<a name="line.423"></a>
+<span class="sourceLineNo">424</span>         * <a name="line.424"></a>
+<span class="sourceLineNo">425</span>         * @return {@code true} if all of originals shapes is covered by this slice<a name="line.425"></a>
+<span class="sourceLineNo">426</span>         *         with positive steps, {@code false} in the other case.<a name="line.426"></a>
+<span class="sourceLineNo">427</span>         */<a name="line.427"></a>
+<span class="sourceLineNo">428</span>        public boolean isAll() {<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                if (expanded) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                        return false;<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>                boolean allData = Arrays.equals(oshape, getShape());<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                if (allData) {<a name="line.434"></a>
+<span class="sourceLineNo">435</span>                        for (int i = 0; i &lt; lshape.length; i++) {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                                if (lstep[i] &lt; 0) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                                        allData = false;<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                                        break;<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>                return allData;<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>         * Flips the slice direction in given dimension, this means that slice<a name="line.446"></a>
+<span class="sourceLineNo">447</span>         * begins at previous end point, steps in the opposite direction, and<a name="line.447"></a>
+<span class="sourceLineNo">448</span>         * finishes at the previous start point.<a name="line.448"></a>
+<span class="sourceLineNo">449</span>         * <a name="line.449"></a>
+<span class="sourceLineNo">450</span>         * @param i<a name="line.450"></a>
+<span class="sourceLineNo">451</span>         *            dimension to flip<a name="line.451"></a>
+<span class="sourceLineNo">452</span>         */<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        public SliceND flip(int i) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                i = ShapeUtils.checkAxis(lshape.length, i);<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>                int beg = lstart[i];<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                int end = lstop[i];<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                int step = lstep[i];<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                int del = lstep[i] &gt; 0 ? 1 : -1;<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>                int num = (end - beg - del) / step + 1; // number of steps<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                lstart[i] = beg + (num - 1) * step;<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                lstop[i] = Math.max(beg - step, -1);<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                lstep[i] = -step;<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>                return this;<a name="line.466"></a>
+<span class="sourceLineNo">467</span>        }<a name="line.467"></a>
+<span class="sourceLineNo">468</span><a name="line.468"></a>
+<span class="sourceLineNo">469</span>        /**<a name="line.469"></a>
+<span class="sourceLineNo">470</span>         * Flips slices directions in all dimensions, this means that all slices are<a name="line.470"></a>
+<span class="sourceLineNo">471</span>         * beginning at previous end point, steps are in the opposite direction, and<a name="line.471"></a>
+<span class="sourceLineNo">472</span>         * finishes are at the previous start point.<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         */<a name="line.473"></a>
+<span class="sourceLineNo">474</span>        public SliceND flip() {<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                int orank = lshape.length;<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                for (int i = 0; i &lt; orank; i++) {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                        flip(i);<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>                return this;<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>        /**<a name="line.483"></a>
+<span class="sourceLineNo">484</span>         * Converts to a slice array all the Slices of the SliceND.<a name="line.484"></a>
+<span class="sourceLineNo">485</span>         * <a name="line.485"></a>
+<span class="sourceLineNo">486</span>         * @return a Slice array<a name="line.486"></a>
+<span class="sourceLineNo">487</span>         */<a name="line.487"></a>
+<span class="sourceLineNo">488</span>        public Slice[] convertToSlice() {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                int orank = lshape.length;<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span>                Slice[] slice = new Slice[orank];<a name="line.491"></a>
+<span class="sourceLineNo">492</span><a name="line.492"></a>
+<span class="sourceLineNo">493</span>                for (int j = 0; j &lt; orank; j++) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                        slice[j] = new Slice(lstart[j], lstop[j], lstep[j]);<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>                return slice;<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>         * Creates a deep copy of the SliceND.<a name="line.501"></a>
+<span class="sourceLineNo">502</span>         * <a name="line.502"></a>
+<span class="sourceLineNo">503</span>         * @return New SliceND with the current SliceND properties<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 SliceND clone() {<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                SliceND c = new SliceND(oshape);<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                for (int i = 0; i &lt; lshape.length; i++) {<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                        c.lstart[i] = lstart[i];<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                        c.lstop[i] = lstop[i];<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                        c.lstep[i] = lstep[i];<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                        c.lshape[i] = lshape[i];<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                }<a name="line.513"></a>
+<span class="sourceLineNo">514</span>                c.expanded = expanded;<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                return c;<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        }<a name="line.516"></a>
+<span class="sourceLineNo">517</span><a name="line.517"></a>
+<span class="sourceLineNo">518</span>        /**<a name="line.518"></a>
+<span class="sourceLineNo">519</span>         * Returns a string construction of the sliceND with the python form.<a name="line.519"></a>
+<span class="sourceLineNo">520</span>         * <a name="line.520"></a>
+<span class="sourceLineNo">521</span>         * @return Constructed String of all Slices<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() {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                final int rank = lshape.length;<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                if (rank == 0) {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                        return "";<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                }<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                StringBuilder s = new StringBuilder();<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                        Slice.appendSliceToString(s, oshape[i], lstart[i], lstop[i], lstep[i]);<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                        s.append(',');<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>                return s.substring(0, s.length() - 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>        /**<a name="line.538"></a>
+<span class="sourceLineNo">539</span>         * Creats SliceND from dataset.<a name="line.539"></a>
+<span class="sourceLineNo">540</span>         * <a name="line.540"></a>
+<span class="sourceLineNo">541</span>         * @param data<a name="line.541"></a>
+<span class="sourceLineNo">542</span>         *            ILazyDataset to treat<a name="line.542"></a>
+<span class="sourceLineNo">543</span>         * @param start<a name="line.543"></a>
+<span class="sourceLineNo">544</span>         *            Array of starts indexes<a name="line.544"></a>
+<span class="sourceLineNo">545</span>         * @param stop<a name="line.545"></a>
+<span class="sourceLineNo">546</span>         *            Array of stops indexes<a name="line.546"></a>
+<span class="sourceLineNo">547</span>         * @return Constructed SliceND<a name="line.547"></a>
+<span class="sourceLineNo">548</span>         */<a name="line.548"></a>
+<span class="sourceLineNo">549</span>        public static SliceND createSlice(ILazyDataset data, int[] start, int[] stop) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                return createSlice(data, start, stop, null);<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>        /**<a name="line.553"></a>
+<span class="sourceLineNo">554</span>         * Creating SliceND from dataset.<a name="line.554"></a>
+<span class="sourceLineNo">555</span>         * <a name="line.555"></a>
+<span class="sourceLineNo">556</span>         * @param data<a name="line.556"></a>
+<span class="sourceLineNo">557</span>         *            ILazyDataset to treat<a name="line.557"></a>
+<span class="sourceLineNo">558</span>         * @param start<a name="line.558"></a>
+<span class="sourceLineNo">559</span>         *            Array of starts indexes<a name="line.559"></a>
+<span class="sourceLineNo">560</span>         * @param stop<a name="line.560"></a>
+<span class="sourceLineNo">561</span>         *            Array of stops indexes<a name="line.561"></a>
+<span class="sourceLineNo">562</span>         * @param step<a name="line.562"></a>
+<span class="sourceLineNo">563</span>         *            Array of steps<a name="line.563"></a>
+<span class="sourceLineNo">564</span>         * @return Constructed SliceND<a name="line.564"></a>
+<span class="sourceLineNo">565</span>         */<a name="line.565"></a>
+<span class="sourceLineNo">566</span>        public static SliceND createSlice(ILazyDataset data, int[] start, int[] stop, int[] step) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                if (data instanceof IDynamicDataset) {<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                        return new SliceND(data.getShape(), ((IDynamicDataset) data).getMaxShape(), start, stop, step);<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                }<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                return new SliceND(data.getShape(), start, stop, step);<a name="line.570"></a>
+<span class="sourceLineNo">571</span>        }<a name="line.571"></a>
+<span class="sourceLineNo">572</span><a name="line.572"></a>
+<span class="sourceLineNo">573</span>        /**<a name="line.573"></a>
+<span class="sourceLineNo">574</span>         * Create SliceND without sanity checks on start, stop and step<a name="line.574"></a>
+<span class="sourceLineNo">575</span>         * @param shape<a name="line.575"></a>
+<span class="sourceLineNo">576</span>         * @param maxShape<a name="line.576"></a>
+<span class="sourceLineNo">577</span>         * @param start<a name="line.577"></a>
+<span class="sourceLineNo">578</span>         * @param stop<a name="line.578"></a>
+<span class="sourceLineNo">579</span>         * @param step<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * @return slice<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         */<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        static SliceND createSlice(final int[] shape, final int[] maxShape, final int[] start, final int[] stop, final int[] step) {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                if (shape == null) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                        throw new IllegalArgumentException("Shape must not be null");<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                }<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                int rank = shape.length;<a name="line.586"></a>
+<span class="sourceLineNo">587</span><a name="line.587"></a>
+<span class="sourceLineNo">588</span>                if (maxShape != null &amp;&amp; maxShape.length != rank) {<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                        throw new IllegalArgumentException("Max shape must have same rank as shape");<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                }<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                if (start.length != rank || stop.length != rank || step.length != rank) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        throw new IllegalArgumentException("No of indexes does not match data dimensions: you passed it start="<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                                        + start.length + ", stop=" + stop.length + ", step=" + step.length + ", and it needs " + rank);<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>                SliceND s = new SliceND(shape);<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                if (maxShape != null) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                        s.initMaxShape(maxShape);<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                }<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                s.lstart = start;<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                s.lstop  = stop;<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                s.lstep  = step;<a name="line.602"></a>
+<span class="sourceLineNo">603</span><a name="line.603"></a>
+<span class="sourceLineNo">604</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        int e = stop[i];<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                        s.lshape[i] = calcLength(start[i], e, step[i]);<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                        if (e &gt; shape[i]) {<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                                s.oshape[i] = e;<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                                s.expanded = true;<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        }<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                }<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                return s;<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        }<a name="line.613"></a>
+<span class="sourceLineNo">614</span><a name="line.614"></a>
+<span class="sourceLineNo">615</span>}<a name="line.615"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/SliceNDIterator.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/SliceNDIterator.html
new file mode 100644
index 0000000..0092545
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/SliceNDIterator.html
@@ -0,0 +1,345 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.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> * Class to provide slice iteration through a dataset<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. The omitted axes define an inner shape and<a name="line.18"></a>
+<span class="sourceLineNo">019</span> * the remaining axes define an outer shape which is iterated over.<a name="line.19"></a>
+<span class="sourceLineNo">020</span> */<a name="line.20"></a>
+<span class="sourceLineNo">021</span>public class SliceNDIterator 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[] start;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>        final private int[] stop;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        final private int[] step;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        final private int endrank;<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>        final private boolean[] omit; // axes to miss out<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>         * position in source dataset<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         */<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        final private int[] pos;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>        final private int[] end;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        private boolean once;<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>        private SliceND cSlice; // current slice<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        <a name="line.38"></a>
+<span class="sourceLineNo">039</span>        private int sRank; // number of dimensions used (i.e. not missing)<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        final private SliceND iSlice; // omitted source or inner slice<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>        final private SliceND sSlice; // shortened slice<a name="line.42"></a>
+<span class="sourceLineNo">043</span>        final private int[] sStart; // shortened position<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        final private int[] sStop; // shortened end<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>        private SliceND dSlice; // destination slice<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        private int[] dStart;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>        private int[] dStop;<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>         * Constructor for an iterator that misses out several axes<a name="line.51"></a>
+<span class="sourceLineNo">052</span>         * @param slice<a name="line.52"></a>
+<span class="sourceLineNo">053</span>         * @param axes missing axes<a name="line.53"></a>
+<span class="sourceLineNo">054</span>         */<a name="line.54"></a>
+<span class="sourceLineNo">055</span>        public SliceNDIterator(SliceND slice, int... axes) {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                cSlice = slice.clone();<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                int[] sShape = cSlice.getSourceShape();<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                shape = cSlice.getShape().clone();<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                start = cSlice.getStart();<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                stop  = cSlice.getStop();<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                step  = cSlice.getStep();<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                for (int s : step) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                        if (s &lt; 0) {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                                throw new UnsupportedOperationException("Negative steps not implemented");<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>                int rank = shape.length;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                endrank = rank - 1;<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>                omit = new boolean[rank];<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                dSlice = new SliceND(shape);<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                dStart = dSlice.getStart();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                dStop  = dSlice.getStop();<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                sRank = rank;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                if (axes != null) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        axes = ShapeUtils.checkAxes(rank, axes);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        for (int a : axes) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                if (a &gt;= 0 &amp;&amp; a &lt;= endrank) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                        sRank--;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                        omit[a] = true;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                                        shape[a] = 1;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                                } else if (a &gt; endrank) {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                                        throw new IllegalArgumentException("Specified axis exceeds dataset rank");<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>                cSlice = cSlice.clone();<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                pos = cSlice.getStart();<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                end = cSlice.getStop();<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                if (sRank == rank) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        sStart = pos;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                        sStop = null;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        iSlice = null;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                        sSlice = cSlice;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                } else {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        int[] dShape = dSlice.getShape();<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        int[] oShape = new int[sRank]; // outer shape<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        int[] iShape = new int[rank - sRank]; // inner shape<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                        for (int i = 0, j = 0, k = 0; i &lt; rank; i++) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                                if (omit[i]) {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                        iShape[j++] = sShape[i];<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                } else {<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                        oShape[k++] = sShape[i];<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                                        dShape[i] = 1;<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>                        sSlice = new SliceND(oShape);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                        sStart = sSlice.getStart();<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                        sStop = sSlice.getStop();<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        iSlice = new SliceND(iShape);<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                        for (int i = 0, j = 0, k = 0; i &lt; rank; i++) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                                if (omit[i]) {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                                        iSlice.setSlice(j++, start[i], stop[i], step[i]);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                } else {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                                        sSlice.setSlice(k++, start[i], stop[i], step[i]);<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                }<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        }<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                }<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                <a name="line.121"></a>
+<span class="sourceLineNo">122</span>                reset();<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 boolean hasNext() {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                // now move on one position<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                if (once) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        once = false;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        return true;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                }<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                int k = sRank - 1;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                for (int j = endrank; j &gt;= 0; j--) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        if (omit[j]) {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                                continue;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                        }<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                        pos[j] += step[j];<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        end[j] = pos[j] + step[j];<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                        dStart[j]++;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        dStop[j]++;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                        if (pos[j] &gt;= stop[j]) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                                pos[j] = start[j];<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                                end[j] = pos[j] + step[j];<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                                dStart[j] = 0;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                                dStop[j] = 1;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                                if (sStop != null) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                                        sStart[k] = pos[j];<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                                        sStop[k] = end[j];<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                                        k--;<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>                                if (sStop != null) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                                        sStart[k] = pos[j];<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                                        sStop[k] = end[j];<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                                        k--;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                                }<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                                return true;<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 false;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>        }<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>        @Override<a name="line.163"></a>
+<span class="sourceLineNo">164</span>        public int[] getPos() {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                return pos;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        }<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>        /**<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         * Get omitted part of source slice which never changes. I.e. the inner slice<a name="line.169"></a>
+<span class="sourceLineNo">170</span>         * @return slice (can be null)<a name="line.170"></a>
+<span class="sourceLineNo">171</span>         */<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        public SliceND getOmittedSlice() {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                return iSlice;<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>         * Get output or destination slice<a name="line.177"></a>
+<span class="sourceLineNo">178</span>         * @return slice <a name="line.178"></a>
+<span class="sourceLineNo">179</span>         */<a name="line.179"></a>
+<span class="sourceLineNo">180</span>        public SliceND getOutputSlice() {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                return dSlice;<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>         * Get current slice<a name="line.185"></a>
+<span class="sourceLineNo">186</span>         * @return slice<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         */<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        public SliceND getCurrentSlice() {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                return cSlice;<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>         * Shortened position where axes are omitted<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         * @return used position<a name="line.194"></a>
+<span class="sourceLineNo">195</span>         */<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        public int[] getUsedPos() {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                return sStart;<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>         * Shortened slice where axes are omitted<a name="line.201"></a>
+<span class="sourceLineNo">202</span>         * @return used (or outer) slice<a name="line.202"></a>
+<span class="sourceLineNo">203</span>         */<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        public SliceND getUsedSlice() {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                return sSlice;<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>         * @return omit array - array where true means miss out<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         */<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        public boolean[] getOmit() {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                return omit;<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 void reset() {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                for (int i = 0, k = 0; i &lt;= endrank; i++) {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                        int b = start[i];<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                        int d = step[i];<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                        if (!omit[i]) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                                cSlice.setSlice(i, b, b + d, d);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                                dStart[i] = 0;<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                                dStop[i] = 1;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                                if (sStop != null) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                                        sSlice.setSlice(k++, b, b + d, d);<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>                                cSlice.setSlice(i, b, end[i], d);<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>                int j = 0;<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                for (; j &lt;= endrank; j++) {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                        if (!omit[j])<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                                break;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                if (j &gt; endrank) {<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                        once = true;<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                        return;<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                }<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>                if (omit[endrank]) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                        pos[endrank] = start[endrank];<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                        for (int i = endrank - 1; i &gt;= 0; i--) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                                if (!omit[i]) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                                        end[i] = pos[i];<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                                        pos[i] -= step[i];<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                                        dStart[i]--;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                        dStop[i]--;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                                        break;<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                                }<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                        }<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                } else {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                        end[endrank] = pos[endrank];<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                        pos[endrank] -= step[endrank];<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                        dStart[endrank]--;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                        dStop[endrank]--;<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>                if (sStart != pos) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                        for (int i = 0, k = 0; i &lt;= endrank; i++) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                if (!omit[i]) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                                        sStart[k++] = pos[i];<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                                }<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                        }<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                }<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        }<a name="line.267"></a>
+<span class="sourceLineNo">268</span><a name="line.268"></a>
+<span class="sourceLineNo">269</span>        @Override<a name="line.269"></a>
+<span class="sourceLineNo">270</span>        public int[] getShape() {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                return shape;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Stats.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Stats.html
new file mode 100644
index 0000000..6e12b12
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/Stats.html
@@ -0,0 +1,2123 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.lang.ref.SoftReference;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.ArrayList;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.Collections;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.HashMap;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.List;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.Map;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.TreeMap;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.commons.math3.complex.Complex;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.commons.math3.stat.descriptive.moment.Kurtosis;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.commons.math3.stat.descriptive.moment.Skewness;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.eclipse.january.metadata.Dirtiable;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.eclipse.january.metadata.MetadataType;<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>/**<a name="line.30"></a>
+<span class="sourceLineNo">031</span> * Statistics class<a name="line.31"></a>
+<span class="sourceLineNo">032</span> * <a name="line.32"></a>
+<span class="sourceLineNo">033</span> * TODO Where is mode? http://en.wikipedia.org/wiki/Mode_(statistics)<a name="line.33"></a>
+<span class="sourceLineNo">034</span> * <a name="line.34"></a>
+<span class="sourceLineNo">035</span> */<a name="line.35"></a>
+<span class="sourceLineNo">036</span>public class Stats {<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>        private static class ReferencedDataset extends SoftReference&lt;Dataset&gt; {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                public ReferencedDataset(Dataset d) {<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                        super(d);<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                }<a name="line.41"></a>
+<span class="sourceLineNo">042</span>        }<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>        private static class QStatisticsImpl&lt;T&gt; implements MetadataType {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                private static final long serialVersionUID = -3296671666463190388L;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                final static Double Q1 = 0.25;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                final static Double Q2 = 0.5;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                final static Double Q3 = 0.75;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                Map&lt;Double, T&gt; qmap = new HashMap&lt;Double, T&gt;();<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                transient Map&lt;Integer, Map&lt;Double, ReferencedDataset&gt;&gt; aqmap = new HashMap&lt;Integer, Map&lt;Double, ReferencedDataset&gt;&gt;();<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                transient ReferencedDataset s; // store 0th element<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                transient Map&lt;Integer, ReferencedDataset&gt; smap = new HashMap&lt;&gt;();<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>                @Dirtiable<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                private boolean isDirty = true;<a name="line.55"></a>
+<span class="sourceLineNo">056</span><a name="line.56"></a>
+<span class="sourceLineNo">057</span>                @Override<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                public QStatisticsImpl&lt;T&gt; clone() {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                        return new QStatisticsImpl&lt;T&gt;(this);<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                }<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>                public QStatisticsImpl() {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                }<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>                private QStatisticsImpl(QStatisticsImpl&lt;T&gt; qstats) {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                        if (qstats.s != null &amp;&amp; qstats.s.get() != null) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                                s = new ReferencedDataset(qstats.s.get().getView(false));<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        }<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                        qmap.putAll(qstats.qmap);<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                        for (Integer i : qstats.aqmap.keySet()) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                                aqmap.put(i, new HashMap&lt;&gt;(qstats.aqmap.get(i)));<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        }<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        smap.putAll(qstats.smap);<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        isDirty = qstats.isDirty;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                }<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>                public void setQuantile(double q, T v) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                        qmap.put(q, v);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                }<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>                public T getQuantile(double q) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        return qmap.get(q);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>                private Map&lt;Double, ReferencedDataset&gt; getMap(int axis) {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                        Map&lt;Double, ReferencedDataset&gt; qm = aqmap.get(axis);<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        if (qm == null) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                                qm = new HashMap&lt;&gt;();<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                                aqmap.put(axis, qm);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                        }<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                        return qm;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                }<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>                public void setQuantile(int axis, double q, Dataset v) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                        Map&lt;Double, ReferencedDataset&gt; qm = getMap(axis);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                        qm.put(q, new ReferencedDataset(v));<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                }<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>                public Dataset getQuantile(int axis, double q) {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                        Map&lt;Double, ReferencedDataset&gt; qm = getMap(axis);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                        ReferencedDataset rd = qm.get(q);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                        return rd == null ? null : rd.get();<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                }<a name="line.103"></a>
+<span class="sourceLineNo">104</span><a name="line.104"></a>
+<span class="sourceLineNo">105</span>                Dataset getSortedDataset(int axis) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                        return smap.containsKey(axis) ? smap.get(axis).get() : null;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>                void setSortedDataset(int axis, Dataset v) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                        smap.put(axis, new ReferencedDataset(v));<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        }<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>        // calculates statistics and returns sorted dataset (0th element if compound)<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        private static QStatisticsImpl&lt;?&gt; calcQuartileStats(final Dataset a) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                Dataset s = null;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                final int is = a.getElementsPerItem();<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>                if (is == 1) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                        s = DatasetUtils.sort(a);<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>                        QStatisticsImpl&lt;Double&gt; qstats = new QStatisticsImpl&lt;Double&gt;();<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        qstats.setQuantile(QStatisticsImpl.Q1, pQuantile(s, QStatisticsImpl.Q1));<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                        qstats.setQuantile(QStatisticsImpl.Q2, pQuantile(s, QStatisticsImpl.Q2));<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                        qstats.setQuantile(QStatisticsImpl.Q3, pQuantile(s, QStatisticsImpl.Q3));<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                        qstats.s = new ReferencedDataset(s);<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        return qstats;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                }<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>                QStatisticsImpl&lt;double[]&gt; qstats = new QStatisticsImpl&lt;double[]&gt;();<a name="line.131"></a>
+<span class="sourceLineNo">132</span><a name="line.132"></a>
+<span class="sourceLineNo">133</span>                Dataset w = DatasetFactory.zeros(1, a.getClass(), a.getShapeRef());<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                double[] q1 = new double[is];<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                double[] q2 = new double[is];<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                double[] q3 = new double[is];<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                qstats.setQuantile(QStatisticsImpl.Q1, q1);<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                qstats.setQuantile(QStatisticsImpl.Q2, q2);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                qstats.setQuantile(QStatisticsImpl.Q3, q3);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                for (int j = 0; j &lt; is; j++) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                        ((CompoundDataset) a).copyElements(w, j);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                        w.sort(null);<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>                        q1[j] = pQuantile(w, QStatisticsImpl.Q1);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        q2[j] = pQuantile(w, QStatisticsImpl.Q2);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        q3[j] = pQuantile(w, QStatisticsImpl.Q3);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                        if (j == 0)<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                                s = w.clone();<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                }<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                qstats.s = new ReferencedDataset(s);<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>                return qstats;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>        }<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>        static private QStatisticsImpl&lt;?&gt; getQStatistics(final Dataset a) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                QStatisticsImpl&lt;?&gt; m = a.getFirstMetadata(QStatisticsImpl.class);<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                if (m == null || m.isDirty) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                        m = calcQuartileStats(a);<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                        a.setMetadata(m);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                }<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                return m;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>        }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>        static private QStatisticsImpl&lt;?&gt; getQStatistics(final Dataset a, final int axis) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                final int is = a.getElementsPerItem();<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                QStatisticsImpl&lt;?&gt; qstats = a.getFirstMetadata(QStatisticsImpl.class);<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>                if (qstats == null || qstats.isDirty) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                        if (is == 1) {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                                qstats = new QStatisticsImpl&lt;Double&gt;();<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        } else {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                                qstats = new QStatisticsImpl&lt;double[]&gt;();<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                        }<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                        a.setMetadata(qstats);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                }<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>                if (qstats.getQuantile(axis, QStatisticsImpl.Q2) == null) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        if (is == 1) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                                Dataset s = DatasetUtils.sort(a, axis);<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>                                qstats.setQuantile(axis, QStatisticsImpl.Q1, pQuantile(s, axis, QStatisticsImpl.Q1));<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                                qstats.setQuantile(axis, QStatisticsImpl.Q2, pQuantile(s, axis, QStatisticsImpl.Q2));<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                                qstats.setQuantile(axis, QStatisticsImpl.Q3, pQuantile(s, axis, QStatisticsImpl.Q3));<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                                qstats.setSortedDataset(axis, s);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                        } else {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                                Dataset w = DatasetFactory.zeros(1, a.getClass(), a.getShapeRef());<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                                CompoundDoubleDataset q1 = null, q2 = null, q3 = null;<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                                for (int j = 0; j &lt; is; j++) {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                                        ((CompoundDataset) a).copyElements(w, j);<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                                        w.sort(axis);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        <a name="line.191"></a>
+<span class="sourceLineNo">192</span>                                        final Dataset c = pQuantile(w, axis, QStatisticsImpl.Q1);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                                        if (j == 0) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                                                q1 = DatasetFactory.zeros(is, CompoundDoubleDataset.class, c.getShapeRef());<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                                                q2 = DatasetFactory.zeros(is, CompoundDoubleDataset.class, c.getShapeRef());<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                                                q3 = DatasetFactory.zeros(is, CompoundDoubleDataset.class, c.getShapeRef());<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                                        }<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                                        q1.setElements(c, j);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        <a name="line.199"></a>
+<span class="sourceLineNo">200</span>                                        q2.setElements(pQuantile(w, axis, QStatisticsImpl.Q2), j);<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        <a name="line.201"></a>
+<span class="sourceLineNo">202</span>                                        q3.setElements(pQuantile(w, axis, QStatisticsImpl.Q3), j);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                                }<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                                qstats.setQuantile(axis, QStatisticsImpl.Q1, q1);<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                                qstats.setQuantile(axis, QStatisticsImpl.Q2, q2);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                                qstats.setQuantile(axis, QStatisticsImpl.Q3, q3);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                        }<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                }<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>                return qstats;<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        }<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>        // process a sorted dataset<a name="line.213"></a>
+<span class="sourceLineNo">214</span>        private static double pQuantile(final Dataset s, final double q) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                double f = (s.getSize() - 1) * q; // fraction of sample number<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                if (f &lt; 0)<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                        return Double.NaN;<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                int qpt = (int) Math.floor(f); // quantile point<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                f -= qpt;<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>                double quantile = s.getElementDoubleAbs(qpt);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                if (f &gt; 0) {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                        quantile = (1-f)*quantile + f*s.getElementDoubleAbs(qpt+1);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                return quantile;<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        }<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>        // process a sorted dataset and returns a double or compound double dataset<a name="line.228"></a>
+<span class="sourceLineNo">229</span>        private static Dataset pQuantile(final Dataset s, final int axis, final double q) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                final int rank = s.getRank();<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                final int is = s.getElementsPerItem();<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>                int[] oshape = s.getShape();<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span>                double f = (oshape[axis] - 1) * q; // fraction of sample number<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                int qpt = (int) Math.floor(f); // quantile point<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                f -= qpt;<a name="line.237"></a>
+<span class="sourceLineNo">238</span><a name="line.238"></a>
+<span class="sourceLineNo">239</span>                oshape[axis] = 1;<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                int[] qshape = ShapeUtils.squeezeShape(oshape, false);<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                Dataset qds = DatasetFactory.zeros(is, CompoundDoubleDataset.class, qshape);<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>                IndexIterator qiter = qds.getIterator(true);<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                int[] qpos = qiter.getPos();<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                int[] spos = oshape;<a name="line.245"></a>
+<span class="sourceLineNo">246</span><a name="line.246"></a>
+<span class="sourceLineNo">247</span>                while (qiter.hasNext()) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                        int i = 0;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                        for (; i &lt; axis; i++) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                                spos[i] = qpos[i];<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                        }<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                        spos[i++] = qpt;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        for (; i &lt; rank; i++) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                                spos[i] = qpos[i-1];<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                        }<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>                        Object obj = s.getObject(spos);<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        qds.set(obj, qpos);<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                }<a name="line.259"></a>
+<span class="sourceLineNo">260</span><a name="line.260"></a>
+<span class="sourceLineNo">261</span>                if (f &gt; 0) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                        qiter = qds.getIterator(true);<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        qpos = qiter.getPos();<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                        qpt++;<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                        Dataset rds = DatasetFactory.zeros(is, CompoundDoubleDataset.class, qshape);<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                        <a name="line.266"></a>
+<span class="sourceLineNo">267</span>                        while (qiter.hasNext()) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                                int i = 0;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                                for (; i &lt; axis; i++) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                                        spos[i] = qpos[i];<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                                }<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                                spos[i++] = qpt;<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                                for (; i &lt; rank; i++) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                                        spos[i] = qpos[i-1];<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                                }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>                                Object obj = s.getObject(spos);<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                                rds.set(obj, qpos);<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                        }<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                        rds.imultiply(f);<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                        qds.imultiply(1-f);<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                        qds.iadd(rds);<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span>                return qds;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>        }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>        /**<a name="line.288"></a>
+<span class="sourceLineNo">289</span>         * Calculate quantile of dataset which is defined as the inverse of the cumulative distribution function (CDF)<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         * @param a<a name="line.290"></a>
+<span class="sourceLineNo">291</span>         * @param q<a name="line.291"></a>
+<span class="sourceLineNo">292</span>         * @return point at which CDF has value q<a name="line.292"></a>
+<span class="sourceLineNo">293</span>         */<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        @SuppressWarnings("unchecked")<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        public static double quantile(final Dataset a, final double q) {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                if (q &lt; 0 || q &gt; 1) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                        throw new IllegalArgumentException("Quantile requested is outside [0,1]");<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                }<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                QStatisticsImpl&lt;Double&gt; qs = (QStatisticsImpl&lt;Double&gt;) getQStatistics(a);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                Double qv = qs.getQuantile(q);<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                if (qv == null) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                        qv = pQuantile(qs.s.get(), q);<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                        qs.setQuantile(q, qv);<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                }<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                return qv;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        }<a name="line.306"></a>
+<span class="sourceLineNo">307</span><a name="line.307"></a>
+<span class="sourceLineNo">308</span>        /**<a name="line.308"></a>
+<span class="sourceLineNo">309</span>         * Calculate quantiles of dataset which is defined as the inverse of the cumulative distribution function (CDF)<a name="line.309"></a>
+<span class="sourceLineNo">310</span>         * @param a<a name="line.310"></a>
+<span class="sourceLineNo">311</span>         * @param values<a name="line.311"></a>
+<span class="sourceLineNo">312</span>         * @return points at which CDF has given values<a name="line.312"></a>
+<span class="sourceLineNo">313</span>         */<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        @SuppressWarnings("unchecked")<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        public static double[] quantile(final Dataset a, final double... values) {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>                final double[] points  = new double[values.length];<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                QStatisticsImpl&lt;Double&gt; qs = (QStatisticsImpl&lt;Double&gt;) getQStatistics(a);<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                for (int i = 0; i &lt; points.length; i++) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                        final double q = values[i];<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                        if (q &lt; 0 || q &gt; 1) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                                throw new IllegalArgumentException("Quantile requested is outside [0,1]");<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                        }<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                        Double qv = qs.getQuantile(q);<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                        if (qv == null) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                                qv = pQuantile(qs.s.get(), q);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                                qs.setQuantile(q, qv);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                        }<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                        points[i] = qv;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                }<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span>                return points;<a name="line.331"></a>
+<span class="sourceLineNo">332</span>        }<a name="line.332"></a>
+<span class="sourceLineNo">333</span><a name="line.333"></a>
+<span class="sourceLineNo">334</span>        /**<a name="line.334"></a>
+<span class="sourceLineNo">335</span>         * Calculate quantiles of dataset which is defined as the inverse of the cumulative distribution function (CDF)<a name="line.335"></a>
+<span class="sourceLineNo">336</span>         * @param a<a name="line.336"></a>
+<span class="sourceLineNo">337</span>         * @param axis<a name="line.337"></a>
+<span class="sourceLineNo">338</span>         * @param values<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         * @return points at which CDF has given values<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         */<a name="line.340"></a>
+<span class="sourceLineNo">341</span>        @SuppressWarnings({ "unchecked" })<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        public static Dataset[] quantile(final Dataset a, int axis, final double... values) {<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                final Dataset[] points  = new Dataset[values.length];<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                final int is = a.getElementsPerItem();<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                axis = a.checkAxis(axis);<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>                if (is == 1) {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                        QStatisticsImpl&lt;Double&gt; qs = (QStatisticsImpl&lt;Double&gt;) getQStatistics(a, axis);<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        for (int i = 0; i &lt; points.length; i++) {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                                final double q = values[i];<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                                if (q &lt; 0 || q &gt; 1) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                                        throw new IllegalArgumentException("Quantile requested is outside [0,1]");<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                                }<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                                Dataset qv = qs.getQuantile(axis, q);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                                if (qv == null) {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                                        qv = pQuantile(qs.getSortedDataset(axis), axis, q);<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                                        qs.setQuantile(axis, q, qv);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                                }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                                points[i] = qv;<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                        }<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                } else {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                        QStatisticsImpl&lt;double[]&gt; qs = (QStatisticsImpl&lt;double[]&gt;) getQStatistics(a);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                        Dataset w = DatasetFactory.zeros(1, a.getClass(), a.getShapeRef());<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        for (int j = 0; j &lt; is; j++) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                                boolean copied = false;<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>                                for (int i = 0; i &lt; points.length; i++) {<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                                        final double q = values[i];<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                                        if (q &lt; 0 || q &gt; 1) {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                                                throw new IllegalArgumentException("Quantile requested is outside [0,1]");<a name="line.370"></a>
+<span class="sourceLineNo">371</span>                                        }<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                                        Dataset qv = qs.getQuantile(axis, q);<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                                        if (qv == null) {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                                                if (!copied) {<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                                                        copied = true;<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                                                        ((CompoundDataset) a).copyElements(w, j);<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                                                        w.sort(axis);<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                                                }<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                                                qv = pQuantile(w, axis, q);<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                                                qs.setQuantile(axis, q, qv);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                                                if (j == 0) {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                                                        points[i] = DatasetFactory.zeros(is, qv.getClass(), qv.getShapeRef());<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                                                }<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                                                ((CompoundDoubleDataset) points[i]).setElements(qv, j);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                                        }<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                                }<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                        }<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                }<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>                return points;<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        }<a name="line.391"></a>
+<span class="sourceLineNo">392</span><a name="line.392"></a>
+<span class="sourceLineNo">393</span>        /**<a name="line.393"></a>
+<span class="sourceLineNo">394</span>         * @param a dataset<a name="line.394"></a>
+<span class="sourceLineNo">395</span>         * @param axis<a name="line.395"></a>
+<span class="sourceLineNo">396</span>         * @return median<a name="line.396"></a>
+<span class="sourceLineNo">397</span>         */<a name="line.397"></a>
+<span class="sourceLineNo">398</span>        public static Dataset median(final Dataset a, int axis) {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                axis = a.checkAxis(axis);<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                return getQStatistics(a, axis).getQuantile(axis, QStatisticsImpl.Q2);<a name="line.400"></a>
+<span class="sourceLineNo">401</span>        }<a name="line.401"></a>
+<span class="sourceLineNo">402</span><a name="line.402"></a>
+<span class="sourceLineNo">403</span>        /**<a name="line.403"></a>
+<span class="sourceLineNo">404</span>         * @param a dataset<a name="line.404"></a>
+<span class="sourceLineNo">405</span>         * @return median<a name="line.405"></a>
+<span class="sourceLineNo">406</span>         */<a name="line.406"></a>
+<span class="sourceLineNo">407</span>        public static Object median(final Dataset a) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                return getQStatistics(a).getQuantile(QStatisticsImpl.Q2);<a name="line.408"></a>
+<span class="sourceLineNo">409</span>        }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>        /**<a name="line.411"></a>
+<span class="sourceLineNo">412</span>         * Interquartile range: Q3 - Q1<a name="line.412"></a>
+<span class="sourceLineNo">413</span>         * @param a<a name="line.413"></a>
+<span class="sourceLineNo">414</span>         * @return range<a name="line.414"></a>
+<span class="sourceLineNo">415</span>         */<a name="line.415"></a>
+<span class="sourceLineNo">416</span>        @SuppressWarnings("unchecked")<a name="line.416"></a>
+<span class="sourceLineNo">417</span>        public static Object iqr(final Dataset a) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                final int is = a.getElementsPerItem();<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                if (is == 1) {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                        QStatisticsImpl&lt;Double&gt; qs = (QStatisticsImpl&lt;Double&gt;) getQStatistics(a);<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                        return qs.getQuantile(QStatisticsImpl.Q3) - qs.getQuantile(QStatisticsImpl.Q1);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                }<a name="line.422"></a>
+<span class="sourceLineNo">423</span><a name="line.423"></a>
+<span class="sourceLineNo">424</span>                QStatisticsImpl&lt;double[]&gt; qs = (QStatisticsImpl&lt;double[]&gt;) getQStatistics(a);<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                double[] q1 = (double[]) qs.getQuantile(QStatisticsImpl.Q1);<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                double[] q3 = ((double[]) qs.getQuantile(QStatisticsImpl.Q3)).clone();<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                for (int j = 0; j &lt; is; j++) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                        q3[j] -= q1[j];<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                }<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                return q3;<a name="line.430"></a>
+<span class="sourceLineNo">431</span>        }<a name="line.431"></a>
+<span class="sourceLineNo">432</span><a name="line.432"></a>
+<span class="sourceLineNo">433</span>        /**<a name="line.433"></a>
+<span class="sourceLineNo">434</span>         * Interquartile range: Q3 - Q1<a name="line.434"></a>
+<span class="sourceLineNo">435</span>         * @param a<a name="line.435"></a>
+<span class="sourceLineNo">436</span>         * @param axis<a name="line.436"></a>
+<span class="sourceLineNo">437</span>         * @return range<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         */<a name="line.438"></a>
+<span class="sourceLineNo">439</span>        public static Dataset iqr(final Dataset a, int axis) {<a name="line.439"></a>
+<span class="sourceLineNo">440</span>                axis = a.checkAxis(axis);<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                QStatisticsImpl&lt;?&gt; qs = getQStatistics(a, axis);<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                Dataset q3 = qs.getQuantile(axis, QStatisticsImpl.Q3);<a name="line.442"></a>
+<span class="sourceLineNo">443</span><a name="line.443"></a>
+<span class="sourceLineNo">444</span>                return Maths.subtract(q3, qs.getQuantile(axis, QStatisticsImpl.Q1));<a name="line.444"></a>
+<span class="sourceLineNo">445</span>        }<a name="line.445"></a>
+<span class="sourceLineNo">446</span><a name="line.446"></a>
+<span class="sourceLineNo">447</span>        static private HigherStatisticsImpl&lt;?&gt; getHigherStatistic(final Dataset a, boolean[] ignoreInvalids) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                boolean ignoreNaNs = false;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                boolean ignoreInfs = false;<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                if (a.hasFloatingPointElements()) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                        ignoreNaNs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 0 ? ignoreInvalids[0] : false;<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                        ignoreInfs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 1 ? ignoreInvalids[1] : ignoreNaNs;<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                }<a name="line.453"></a>
+<span class="sourceLineNo">454</span><a name="line.454"></a>
+<span class="sourceLineNo">455</span>                HigherStatisticsImpl&lt;?&gt; stats = a.getFirstMetadata(HigherStatisticsImpl.class);<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                if (stats == null || stats.isDirty) {<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                        stats = calculateHigherMoments(a, ignoreNaNs, ignoreInfs);<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        a.setMetadata(stats);<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                }<a name="line.459"></a>
+<span class="sourceLineNo">460</span>        <a name="line.460"></a>
+<span class="sourceLineNo">461</span>                return stats;<a name="line.461"></a>
+<span class="sourceLineNo">462</span>        }<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span>        static private HigherStatisticsImpl&lt;?&gt; getHigherStatistic(final Dataset a, final boolean[] ignoreInvalids, final int axis) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                boolean ignoreNaNs = false;<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                boolean ignoreInfs = false;<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                if (a.hasFloatingPointElements()) {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        ignoreNaNs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 0 ? ignoreInvalids[0] : false;<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                        ignoreInfs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 1 ? ignoreInvalids[1] : ignoreNaNs;<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                }<a name="line.470"></a>
+<span class="sourceLineNo">471</span>        <a name="line.471"></a>
+<span class="sourceLineNo">472</span>                HigherStatisticsImpl&lt;?&gt; stats = a.getFirstMetadata(HigherStatisticsImpl.class);<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                if (stats == null || stats.getSkewness(axis) == null || stats.isDirty) {<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                        stats = calculateHigherMoments(a, ignoreNaNs, ignoreInfs, axis);<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                        a.setMetadata(stats);<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                }<a name="line.476"></a>
+<span class="sourceLineNo">477</span>        <a name="line.477"></a>
+<span class="sourceLineNo">478</span>                return stats;<a name="line.478"></a>
+<span class="sourceLineNo">479</span>        }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span>        private static class HigherStatisticsImpl&lt;T&gt; implements MetadataType {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                private static final long serialVersionUID = -6587974784104116792L;<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                T skewness;<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                T kurtosis;<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                transient Map&lt;Integer, ReferencedDataset&gt; smap = new HashMap&lt;&gt;();<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                transient Map&lt;Integer, ReferencedDataset&gt; kmap = new HashMap&lt;&gt;();<a name="line.486"></a>
+<span class="sourceLineNo">487</span><a name="line.487"></a>
+<span class="sourceLineNo">488</span>                @Dirtiable<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                private boolean isDirty = true;<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span>                @Override<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                public HigherStatisticsImpl&lt;T&gt; clone() {<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                        return new HigherStatisticsImpl&lt;&gt;(this);<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                }<a name="line.494"></a>
+<span class="sourceLineNo">495</span><a name="line.495"></a>
+<span class="sourceLineNo">496</span>                public HigherStatisticsImpl() {<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                }<a name="line.497"></a>
+<span class="sourceLineNo">498</span><a name="line.498"></a>
+<span class="sourceLineNo">499</span>                private HigherStatisticsImpl(HigherStatisticsImpl&lt;T&gt; hstats) {<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                        skewness = hstats.skewness;<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                        kurtosis = hstats.kurtosis;<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                        smap.putAll(hstats.smap);<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                        kmap.putAll(hstats.kmap);<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                        isDirty = hstats.isDirty;<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                }<a name="line.505"></a>
+<span class="sourceLineNo">506</span><a name="line.506"></a>
+<span class="sourceLineNo">507</span>//              public void setSkewness(T skewness) {<a name="line.507"></a>
+<span class="sourceLineNo">508</span>//                      this.skewness = skewness;<a name="line.508"></a>
+<span class="sourceLineNo">509</span>//              }<a name="line.509"></a>
+<span class="sourceLineNo">510</span>//<a name="line.510"></a>
+<span class="sourceLineNo">511</span>//              public void setKurtosis(T kurtosis) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>//                      this.kurtosis = kurtosis;<a name="line.512"></a>
+<span class="sourceLineNo">513</span>//              }<a name="line.513"></a>
+<span class="sourceLineNo">514</span>//<a name="line.514"></a>
+<span class="sourceLineNo">515</span>//              public T getSkewness() {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>//                      return skewness;<a name="line.516"></a>
+<span class="sourceLineNo">517</span>//              }<a name="line.517"></a>
+<span class="sourceLineNo">518</span>//<a name="line.518"></a>
+<span class="sourceLineNo">519</span>//              public T getKurtosis() {<a name="line.519"></a>
+<span class="sourceLineNo">520</span>//                      return kurtosis;<a name="line.520"></a>
+<span class="sourceLineNo">521</span>//              }<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>                public Dataset getSkewness(int axis) {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                        ReferencedDataset rd = smap.get(axis);<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        return rd == null ? null : rd.get();<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                }<a name="line.526"></a>
+<span class="sourceLineNo">527</span><a name="line.527"></a>
+<span class="sourceLineNo">528</span>                public Dataset getKurtosis(int axis) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                        ReferencedDataset rd = kmap.get(axis);<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                        return rd == null ? null : rd.get();<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                }<a name="line.531"></a>
+<span class="sourceLineNo">532</span><a name="line.532"></a>
+<span class="sourceLineNo">533</span>                public void setSkewness(int axis, Dataset s) {<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                        smap.put(axis, new ReferencedDataset(s));<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                }<a name="line.535"></a>
+<span class="sourceLineNo">536</span><a name="line.536"></a>
+<span class="sourceLineNo">537</span>                public void setKurtosis(int axis, Dataset k) {<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                        kmap.put(axis, new ReferencedDataset(k));<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                }<a name="line.539"></a>
+<span class="sourceLineNo">540</span>        }<a name="line.540"></a>
+<span class="sourceLineNo">541</span><a name="line.541"></a>
+<span class="sourceLineNo">542</span>        static private HigherStatisticsImpl&lt;?&gt; calculateHigherMoments(final Dataset a, final boolean ignoreNaNs, final boolean ignoreInfs) {<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                final int is = a.getElementsPerItem();<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                final IndexIterator iter = a.getIterator();<a name="line.544"></a>
+<span class="sourceLineNo">545</span><a name="line.545"></a>
+<span class="sourceLineNo">546</span>                if (is == 1) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                        Skewness s = new Skewness();<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                        Kurtosis k = new Kurtosis();<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                        if (ignoreNaNs) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                                while (iter.hasNext()) {<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                                        final double x = a.getElementDoubleAbs(iter.index);<a name="line.551"></a>
+<span class="sourceLineNo">552</span>                                        if (Double.isNaN(x))<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                                                continue;<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                                        s.increment(x);<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                                        k.increment(x);<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                                }<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                        } else {<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                                while (iter.hasNext()) {<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                                        final double x = a.getElementDoubleAbs(iter.index);<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                                        s.increment(x);<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                                        k.increment(x);<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                                }<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                        }<a name="line.563"></a>
+<span class="sourceLineNo">564</span><a name="line.564"></a>
+<span class="sourceLineNo">565</span>                        HigherStatisticsImpl&lt;Double&gt; stats = new HigherStatisticsImpl&lt;Double&gt;();<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                        stats.skewness = s.getResult();<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                        stats.kurtosis = k.getResult();<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                        return stats;<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                }<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                final Skewness[] s = new Skewness[is];<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                final Kurtosis[] k = new Kurtosis[is];<a name="line.571"></a>
+<span class="sourceLineNo">572</span><a name="line.572"></a>
+<span class="sourceLineNo">573</span>                for (int j = 0; j &lt; is; j++) {<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                        s[j] = new Skewness();<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        k[j] = new Kurtosis();<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                }<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                if (ignoreNaNs) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                        while (iter.hasNext()) {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                                boolean skip = false;<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                                for (int j = 0; j &lt; is; j++) {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                                        if (Double.isNaN(a.getElementDoubleAbs(iter.index + j))) {<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                                                skip = true;<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                                                break;<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                                        }<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                                }<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                                if (!skip)<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                                                final double val = a.getElementDoubleAbs(iter.index + j);<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                                                s[j].increment(val);<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                                                k[j].increment(val);<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                                        }<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        }<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                } else {<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                        while (iter.hasNext()) {<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                                for (int j = 0; j &lt; is; j++) {<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                                        final double val = a.getElementDoubleAbs(iter.index + j);<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                                        s[j].increment(val);<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                                        k[j].increment(val);<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                                }<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        }<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                }<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                final double[] ts = new double[is];<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                final double[] tk = new double[is];<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                for (int j = 0; j &lt; is; j++) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        ts[j] = s[j].getResult();<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                        tk[j] = k[j].getResult();<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                }<a name="line.607"></a>
+<span class="sourceLineNo">608</span><a name="line.608"></a>
+<span class="sourceLineNo">609</span>                HigherStatisticsImpl&lt;double[]&gt; stats = new HigherStatisticsImpl&lt;double[]&gt;();<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                stats.skewness = ts;<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                stats.kurtosis = tk;<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                return stats;<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        }<a name="line.613"></a>
+<span class="sourceLineNo">614</span><a name="line.614"></a>
+<span class="sourceLineNo">615</span>        static private HigherStatisticsImpl&lt;?&gt; calculateHigherMoments(final Dataset a, final boolean ignoreNaNs, final boolean ignoreInfs, final int axis) {<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                final int rank = a.getRank();<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                final int is = a.getElementsPerItem();<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                final int[] oshape = a.getShape();<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                final int alen = oshape[axis];<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                oshape[axis] = 1;<a name="line.620"></a>
+<span class="sourceLineNo">621</span>        <a name="line.621"></a>
+<span class="sourceLineNo">622</span>                final int[] nshape = ShapeUtils.squeezeShape(oshape, false);<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                final Dataset sk;<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                final Dataset ku;<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                HigherStatisticsImpl&lt;?&gt; stats = null;<a name="line.625"></a>
+<span class="sourceLineNo">626</span>        <a name="line.626"></a>
+<span class="sourceLineNo">627</span>                if (is == 1) {<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                        if (stats == null) {<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                                stats = new HigherStatisticsImpl&lt;Double&gt;();<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                                a.setMetadata(stats);<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                        }<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                        sk = DatasetFactory.zeros(DoubleDataset.class, nshape);<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                        ku = DatasetFactory.zeros(DoubleDataset.class, nshape);<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                        final IndexIterator qiter = sk.getIterator(true);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                        final int[] qpos = qiter.getPos();<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                        final int[] spos = oshape;<a name="line.636"></a>
+<span class="sourceLineNo">637</span>        <a name="line.637"></a>
+<span class="sourceLineNo">638</span>                        while (qiter.hasNext()) {<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                                int i = 0;<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                                for (; i &lt; axis; i++) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                                        spos[i] = qpos[i];<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                                }<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                                spos[i++] = 0;<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                                for (; i &lt; rank; i++) {<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                                        spos[i] = qpos[i - 1];<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                                }<a name="line.646"></a>
+<span class="sourceLineNo">647</span>        <a name="line.647"></a>
+<span class="sourceLineNo">648</span>                                Skewness s = new Skewness();<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                                Kurtosis k = new Kurtosis();<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                                if (ignoreNaNs) {<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                                                spos[axis] = j;<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                                                final double val = a.getDouble(spos);<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                                                if (Double.isNaN(val))<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                                                        continue;<a name="line.655"></a>
+<span class="sourceLineNo">656</span>        <a name="line.656"></a>
+<span class="sourceLineNo">657</span>                                                s.increment(val);<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                                                k.increment(val);<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                                        }<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                                } else {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                                spos[axis] = j;<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                                                final double val = a.getDouble(spos);<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                                                s.increment(val);<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                                                k.increment(val);<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                                        }<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                                }<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                                sk.set(s.getResult(), qpos);<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                                ku.set(k.getResult(), qpos);<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        }<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                } else {<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                        if (stats == null) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                                stats = new HigherStatisticsImpl&lt;double[]&gt;();<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                a.setMetadata(stats);<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        }<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                        sk = DatasetFactory.zeros(is, CompoundDoubleDataset.class, nshape);<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                        ku = DatasetFactory.zeros(is, CompoundDoubleDataset.class, nshape);<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                        final IndexIterator qiter = sk.getIterator(true);<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                        final int[] qpos = qiter.getPos();<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                        final int[] spos = oshape;<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                        final Skewness[] s = new Skewness[is];<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                        final Kurtosis[] k = new Kurtosis[is];<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                        final double[] ts = new double[is];<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                        final double[] tk = new double[is];<a name="line.684"></a>
+<span class="sourceLineNo">685</span>        <a name="line.685"></a>
+<span class="sourceLineNo">686</span>                        for (int j = 0; j &lt; is; j++) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                                s[j] = new Skewness();<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                                k[j] = new Kurtosis();<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                        }<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                        while (qiter.hasNext()) {<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                                int i = 0;<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                                for (; i &lt; axis; i++) {<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                                        spos[i] = qpos[i];<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                                }<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                                spos[i++] = 0;<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                                for (; i &lt; rank; i++) {<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                                        spos[i] = qpos[i-1];<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                                }<a name="line.698"></a>
+<span class="sourceLineNo">699</span>        <a name="line.699"></a>
+<span class="sourceLineNo">700</span>                                for (int j = 0; j &lt; is; j++) {<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                                        s[j].clear();<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                                        k[j].clear();<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                                }<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                                int index = a.get1DIndex(spos);<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                                if (ignoreNaNs) {<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                                        boolean skip = false;<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                                                if (Double.isNaN(a.getElementDoubleAbs(index + j))) {<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                                                        skip = true;<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                                                        break;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                                                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                                        }<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                                        if (!skip)<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                                                        final double val = a.getElementDoubleAbs(index + j);<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                                                        s[j].increment(val);<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                                                        k[j].increment(val);<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                                                }<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                                } else {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                                                final double val = a.getElementDoubleAbs(index + j);<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                                                s[j].increment(val);<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                                                k[j].increment(val);<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                                        }<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                                }<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                                for (int j = 0; j &lt; is; j++) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                                        ts[j] = s[j].getResult(); <a name="line.727"></a>
+<span class="sourceLineNo">728</span>                                        tk[j] = k[j].getResult(); <a name="line.728"></a>
+<span class="sourceLineNo">729</span>                                }<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                                sk.set(ts, qpos);<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                                ku.set(tk, qpos);<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                        }<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                }<a name="line.733"></a>
+<span class="sourceLineNo">734</span><a name="line.734"></a>
+<span class="sourceLineNo">735</span>                stats.setSkewness(axis, sk);<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                stats.setKurtosis(axis, ku);<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                return stats;<a name="line.737"></a>
+<span class="sourceLineNo">738</span>        }<a name="line.738"></a>
+<span class="sourceLineNo">739</span><a name="line.739"></a>
+<span class="sourceLineNo">740</span>        /**<a name="line.740"></a>
+<span class="sourceLineNo">741</span>         * @param a dataset<a name="line.741"></a>
+<span class="sourceLineNo">742</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.742"></a>
+<span class="sourceLineNo">743</span>         * @return skewness<a name="line.743"></a>
+<span class="sourceLineNo">744</span>         * @since 2.0<a name="line.744"></a>
+<span class="sourceLineNo">745</span>         */<a name="line.745"></a>
+<span class="sourceLineNo">746</span>        public static Object skewness(final Dataset a, final boolean... ignoreInvalids) {<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                return getHigherStatistic(a, ignoreInvalids).skewness;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>        }<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>        /**<a name="line.750"></a>
+<span class="sourceLineNo">751</span>         * @param a dataset<a name="line.751"></a>
+<span class="sourceLineNo">752</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.752"></a>
+<span class="sourceLineNo">753</span>         * @return kurtosis<a name="line.753"></a>
+<span class="sourceLineNo">754</span>         * @since 2.0<a name="line.754"></a>
+<span class="sourceLineNo">755</span>         */<a name="line.755"></a>
+<span class="sourceLineNo">756</span>        public static Object kurtosis(final Dataset a, final boolean... ignoreInvalids) {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                return getHigherStatistic(a, ignoreInvalids).kurtosis;<a name="line.757"></a>
+<span class="sourceLineNo">758</span>        }<a name="line.758"></a>
+<span class="sourceLineNo">759</span><a name="line.759"></a>
+<span class="sourceLineNo">760</span>        /**<a name="line.760"></a>
+<span class="sourceLineNo">761</span>         * @param a dataset<a name="line.761"></a>
+<span class="sourceLineNo">762</span>         * @param axis<a name="line.762"></a>
+<span class="sourceLineNo">763</span>         * @param ignoreInvalids see {@link Dataset#max(int, boolean...)}<a name="line.763"></a>
+<span class="sourceLineNo">764</span>         * @return skewness along axis in dataset<a name="line.764"></a>
+<span class="sourceLineNo">765</span>         * @since 2.0<a name="line.765"></a>
+<span class="sourceLineNo">766</span>         */<a name="line.766"></a>
+<span class="sourceLineNo">767</span>        public static Dataset skewness(final Dataset a, int axis, final boolean... ignoreInvalids) {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                axis = a.checkAxis(axis);<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                return getHigherStatistic(a, ignoreInvalids, axis).getSkewness(axis);<a name="line.769"></a>
+<span class="sourceLineNo">770</span>        }<a name="line.770"></a>
+<span class="sourceLineNo">771</span><a name="line.771"></a>
+<span class="sourceLineNo">772</span>        /**<a name="line.772"></a>
+<span class="sourceLineNo">773</span>         * @param a dataset<a name="line.773"></a>
+<span class="sourceLineNo">774</span>         * @param axis<a name="line.774"></a>
+<span class="sourceLineNo">775</span>         * @param ignoreInvalids see {@link Dataset#max(int, boolean...)}<a name="line.775"></a>
+<span class="sourceLineNo">776</span>         * @return kurtosis along axis in dataset<a name="line.776"></a>
+<span class="sourceLineNo">777</span>         * @since 2.0<a name="line.777"></a>
+<span class="sourceLineNo">778</span>         */<a name="line.778"></a>
+<span class="sourceLineNo">779</span>        public static Dataset kurtosis(final Dataset a, int axis, final boolean... ignoreInvalids) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                axis = a.checkAxis(axis);<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                return getHigherStatistic(a, ignoreInvalids, axis).getKurtosis(axis);<a name="line.781"></a>
+<span class="sourceLineNo">782</span>        }<a name="line.782"></a>
+<span class="sourceLineNo">783</span><a name="line.783"></a>
+<span class="sourceLineNo">784</span>        /**<a name="line.784"></a>
+<span class="sourceLineNo">785</span>         * @param a dataset<a name="line.785"></a>
+<span class="sourceLineNo">786</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.786"></a>
+<span class="sourceLineNo">787</span>         * @return sum of dataset<a name="line.787"></a>
+<span class="sourceLineNo">788</span>         * @since 2.0<a name="line.788"></a>
+<span class="sourceLineNo">789</span>         */<a name="line.789"></a>
+<span class="sourceLineNo">790</span>        public static Object sum(final Dataset a, final boolean... ignoreInvalids) {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                return a.sum(ignoreInvalids);<a name="line.791"></a>
+<span class="sourceLineNo">792</span>        }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>        /**<a name="line.794"></a>
+<span class="sourceLineNo">795</span>         * @param clazz dataset class<a name="line.795"></a>
+<span class="sourceLineNo">796</span>         * @param a dataset<a name="line.796"></a>
+<span class="sourceLineNo">797</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.797"></a>
+<span class="sourceLineNo">798</span>         * @return typed sum of dataset<a name="line.798"></a>
+<span class="sourceLineNo">799</span>         * @since 2.3<a name="line.799"></a>
+<span class="sourceLineNo">800</span>         */<a name="line.800"></a>
+<span class="sourceLineNo">801</span>        public static Object typedSum(final Class&lt;? extends Dataset&gt; clazz, final Dataset a, final boolean... ignoreInvalids) {<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                if (a.isComplex()) {<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                        Complex m = (Complex) a.sum(ignoreInvalids);<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                        return m;<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                } else if (a instanceof CompoundDataset) {<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                        return InterfaceUtils.fromDoublesToBiggestPrimitives(clazz, (double[]) a.sum(ignoreInvalids));<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                }<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                return InterfaceUtils.fromDoubleToBiggestNumber(clazz, DTypeUtils.toReal(a.sum(ignoreInvalids)));<a name="line.808"></a>
+<span class="sourceLineNo">809</span>        }<a name="line.809"></a>
+<span class="sourceLineNo">810</span><a name="line.810"></a>
+<span class="sourceLineNo">811</span>        /**<a name="line.811"></a>
+<span class="sourceLineNo">812</span>         * @param a dataset<a name="line.812"></a>
+<span class="sourceLineNo">813</span>         * @param dtype<a name="line.813"></a>
+<span class="sourceLineNo">814</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         * @return typed sum of dataset<a name="line.815"></a>
+<span class="sourceLineNo">816</span>         * @since 2.0<a name="line.816"></a>
+<span class="sourceLineNo">817</span>         * @deprecated Please use the class-based method {@link #typedSum(Class, Dataset, boolean...)}<a name="line.817"></a>
+<span class="sourceLineNo">818</span>         */<a name="line.818"></a>
+<span class="sourceLineNo">819</span>        @Deprecated<a name="line.819"></a>
+<span class="sourceLineNo">820</span>        public static Object typedSum(final Dataset a, int dtype, final boolean... ignoreInvalids) {<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                return typedSum(DTypeUtils.getInterface(dtype), a, ignoreInvalids);<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>         * @param clazz dataset class<a name="line.825"></a>
+<span class="sourceLineNo">826</span>         * @param a dataset<a name="line.826"></a>
+<span class="sourceLineNo">827</span>         * @param axis<a name="line.827"></a>
+<span class="sourceLineNo">828</span>         * @param ignoreInvalids see {@link Dataset#max(int, boolean...)}<a name="line.828"></a>
+<span class="sourceLineNo">829</span>         * @return typed sum of items along axis in dataset<a name="line.829"></a>
+<span class="sourceLineNo">830</span>         * @since 2.3<a name="line.830"></a>
+<span class="sourceLineNo">831</span>         */<a name="line.831"></a>
+<span class="sourceLineNo">832</span>        public static &lt;T extends Dataset&gt; T typedSum(final Class&lt;T&gt; clazz, final Dataset a, int axis, final boolean... ignoreInvalids) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                return a.sum(axis, ignoreInvalids).cast(clazz);<a name="line.833"></a>
+<span class="sourceLineNo">834</span>        }<a name="line.834"></a>
+<span class="sourceLineNo">835</span><a name="line.835"></a>
+<span class="sourceLineNo">836</span>        /**<a name="line.836"></a>
+<span class="sourceLineNo">837</span>         * @param clazz dataset class<a name="line.837"></a>
+<span class="sourceLineNo">838</span>         * @param a dataset<a name="line.838"></a>
+<span class="sourceLineNo">839</span>         * @param axes<a name="line.839"></a>
+<span class="sourceLineNo">840</span>         * @param ignoreInvalids see {@link Dataset#max(int, boolean...)}<a name="line.840"></a>
+<span class="sourceLineNo">841</span>         * @return typed sum of items along axes in dataset<a name="line.841"></a>
+<span class="sourceLineNo">842</span>         * @since 2.3<a name="line.842"></a>
+<span class="sourceLineNo">843</span>         */<a name="line.843"></a>
+<span class="sourceLineNo">844</span>        public static &lt;T extends Dataset&gt; T typedSum(final Class&lt;T&gt; clazz, final Dataset a, int[] axes, final boolean... ignoreInvalids) {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                return a.sum(axes, ignoreInvalids).cast(clazz);<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 dataset<a name="line.849"></a>
+<span class="sourceLineNo">850</span>         * @param dtype<a name="line.850"></a>
+<span class="sourceLineNo">851</span>         * @param axis<a name="line.851"></a>
+<span class="sourceLineNo">852</span>         * @param ignoreInvalids see {@link Dataset#max(int, boolean...)}<a name="line.852"></a>
+<span class="sourceLineNo">853</span>         * @return typed sum of items along axis in dataset<a name="line.853"></a>
+<span class="sourceLineNo">854</span>         * @since 2.0<a name="line.854"></a>
+<span class="sourceLineNo">855</span>         * @deprecated Please use the class-based method {@link #typedSum(Class, Dataset, axis, boolean...)}<a name="line.855"></a>
+<span class="sourceLineNo">856</span>         */<a name="line.856"></a>
+<span class="sourceLineNo">857</span>        @Deprecated<a name="line.857"></a>
+<span class="sourceLineNo">858</span>        public static Dataset typedSum(final Dataset a, int dtype, int axis, final boolean... ignoreInvalids) {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                return DatasetUtils.cast(a.sum(axis, ignoreInvalids), dtype);<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>         * @param a dataset<a name="line.863"></a>
+<span class="sourceLineNo">864</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.864"></a>
+<span class="sourceLineNo">865</span>         * @return product of all items in dataset<a name="line.865"></a>
+<span class="sourceLineNo">866</span>         * @since 2.0<a name="line.866"></a>
+<span class="sourceLineNo">867</span>         */<a name="line.867"></a>
+<span class="sourceLineNo">868</span>        public static Object product(final Dataset a, final boolean... ignoreInvalids) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                return typedProduct(a.getClass(), a, ignoreInvalids);<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>         * @param a dataset<a name="line.873"></a>
+<span class="sourceLineNo">874</span>         * @param axis<a name="line.874"></a>
+<span class="sourceLineNo">875</span>         * @param ignoreInvalids see {@link Dataset#max(int, boolean...)}<a name="line.875"></a>
+<span class="sourceLineNo">876</span>         * @return product of items along axis in dataset<a name="line.876"></a>
+<span class="sourceLineNo">877</span>         * @since 2.0<a name="line.877"></a>
+<span class="sourceLineNo">878</span>         */<a name="line.878"></a>
+<span class="sourceLineNo">879</span>        public static Dataset product(final Dataset a, final int axis, final boolean... ignoreInvalids) {<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                return typedProduct(a.getClass(), a, axis, ignoreInvalids);<a name="line.880"></a>
+<span class="sourceLineNo">881</span>        }<a name="line.881"></a>
+<span class="sourceLineNo">882</span><a name="line.882"></a>
+<span class="sourceLineNo">883</span>        /**<a name="line.883"></a>
+<span class="sourceLineNo">884</span>         * @param a dataset<a name="line.884"></a>
+<span class="sourceLineNo">885</span>         * @param axes<a name="line.885"></a>
+<span class="sourceLineNo">886</span>         * @param ignoreInvalids see {@link Dataset#max(int, boolean...)}<a name="line.886"></a>
+<span class="sourceLineNo">887</span>         * @return product of items along axes in dataset<a name="line.887"></a>
+<span class="sourceLineNo">888</span>         * @since 2.2<a name="line.888"></a>
+<span class="sourceLineNo">889</span>         */<a name="line.889"></a>
+<span class="sourceLineNo">890</span>        public static Dataset product(final Dataset a, final int[] axes, final boolean... ignoreInvalids) {<a name="line.890"></a>
+<span class="sourceLineNo">891</span>                return typedProduct(a.getClass(), a, axes, ignoreInvalids);<a name="line.891"></a>
+<span class="sourceLineNo">892</span>        }<a name="line.892"></a>
+<span class="sourceLineNo">893</span><a name="line.893"></a>
+<span class="sourceLineNo">894</span>        /**<a name="line.894"></a>
+<span class="sourceLineNo">895</span>         * @param clazz dataset class<a name="line.895"></a>
+<span class="sourceLineNo">896</span>         * @param a dataset<a name="line.896"></a>
+<span class="sourceLineNo">897</span>         * @param dtype<a name="line.897"></a>
+<span class="sourceLineNo">898</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.898"></a>
+<span class="sourceLineNo">899</span>         * @return typed product of all items in dataset<a name="line.899"></a>
+<span class="sourceLineNo">900</span>         * @since 2.3<a name="line.900"></a>
+<span class="sourceLineNo">901</span>         */<a name="line.901"></a>
+<span class="sourceLineNo">902</span>        public static Object typedProduct(final Class&lt;? extends Dataset&gt; clazz, final Dataset a, final boolean... ignoreInvalids) {<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                return typedProduct(a, DTypeUtils.getDType(clazz), ignoreInvalids);<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>         * @param a dataset<a name="line.907"></a>
+<span class="sourceLineNo">908</span>         * @param dtype<a name="line.908"></a>
+<span class="sourceLineNo">909</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.909"></a>
+<span class="sourceLineNo">910</span>         * @return typed product of all items in dataset<a name="line.910"></a>
+<span class="sourceLineNo">911</span>         * @since 2.0<a name="line.911"></a>
+<span class="sourceLineNo">912</span>         * @deprecated Please use the class-based method {@link #typedProduct(Class, Dataset, boolean...)}<a name="line.912"></a>
+<span class="sourceLineNo">913</span>         */<a name="line.913"></a>
+<span class="sourceLineNo">914</span>        @Deprecated<a name="line.914"></a>
+<span class="sourceLineNo">915</span>        public static Object typedProduct(final Dataset a, final int dtype, final boolean... ignoreInvalids) {<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                final boolean ignoreNaNs;<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                final boolean ignoreInfs;<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                if (a.hasFloatingPointElements()) {<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                        ignoreNaNs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 0 ? ignoreInvalids[0] : false;<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                        ignoreInfs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 1 ? ignoreInvalids[1] : ignoreNaNs;<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                } else {<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                        ignoreNaNs = false;<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                        ignoreInfs = false;<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>                if (a.isComplex()) {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                        IndexIterator it = a.getIterator();<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                        double rv = 1, iv = 0;<a name="line.928"></a>
+<span class="sourceLineNo">929</span><a name="line.929"></a>
+<span class="sourceLineNo">930</span>                        while (it.hasNext()) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                final double r1 = a.getElementDoubleAbs(it.index);<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                final double i1 = a.getElementDoubleAbs(it.index + 1);<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                if (ignoreNaNs &amp;&amp; (Double.isNaN(r1) || Double.isNaN(i1))) {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                        continue;<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                                }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                                if (ignoreInfs  &amp;&amp; (Double.isInfinite(r1) || Double.isInfinite(i1))) {<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                                        continue;<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                                }<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                                final double tv = r1*rv - i1*iv;<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                                iv = r1*iv + i1*rv;<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                                rv = tv;<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                if (Double.isNaN(rv) &amp;&amp; Double.isNaN(iv)) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                        break;<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                }<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                        }<a name="line.945"></a>
+<span class="sourceLineNo">946</span><a name="line.946"></a>
+<span class="sourceLineNo">947</span>                        return new Complex(rv, iv);<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>                IndexIterator it = a.getIterator();<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                final int is;<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                final long[] lresults;<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                final double[] dresults;<a name="line.953"></a>
+<span class="sourceLineNo">954</span><a name="line.954"></a>
+<span class="sourceLineNo">955</span>                switch (dtype) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                case Dataset.BOOL:<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                case Dataset.INT8: case Dataset.INT16:<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                case Dataset.INT32: case Dataset.INT64:<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                        long lresult = 1;<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                        while (it.hasNext()) {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                                lresult *= a.getElementLongAbs(it.index);<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                        }<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                        return Long.valueOf(lresult);<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                case Dataset.ARRAYINT8: case Dataset.ARRAYINT16:<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                case Dataset.ARRAYINT32: case Dataset.ARRAYINT64:<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                        lresult = 1;<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                        is = a.getElementsPerItem();<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                        lresults = new long[is];<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                        for (int j = 0; j &lt; is; j++) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                lresults[j] = 1;<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        }<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        while (it.hasNext()) {<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                                for (int j = 0; j &lt; is; j++)<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                                        lresults[j] *= a.getElementLongAbs(it.index+j);<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                        }<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        return lresults;<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                case Dataset.FLOAT32: case Dataset.FLOAT64:<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                        double dresult = 1.;<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                        while (it.hasNext()) {<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                final double x = a.getElementDoubleAbs(it.index);<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                if (ignoreNaNs &amp;&amp; Double.isNaN(x)) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                                        continue;<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                }<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                if (ignoreInfs &amp;&amp; Double.isInfinite(x)) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                        continue;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                }<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                dresult *= x;<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                if (Double.isNaN(dresult)) {<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                                        break;<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                }<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                        }<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                        return Double.valueOf(dresult);<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                case Dataset.ARRAYFLOAT32:<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                case Dataset.ARRAYFLOAT64:<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                        is = a.getElementsPerItem();<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                        double[] vals = new double[is];<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        dresults = new double[is];<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                        for (int j = 0; j &lt; is; j++) {<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                dresults[j] = 1.;<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                        }<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                        while (it.hasNext()) {<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                boolean okay = true;<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                for (int j = 0; j &lt; is; j++) {<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                        final double val = a.getElementDoubleAbs(it.index + j);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                        if (ignoreNaNs &amp;&amp; Double.isNaN(val)) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                                                okay = false;<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                                                break;<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                                        }<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                                        if (ignoreInfs &amp;&amp; Double.isInfinite(val)) {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                                                okay = false;<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                                                break;<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                        }<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                        vals[j] = val;<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                }<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                if (okay) {<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                                double val = vals[j];<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                                dresults[j] *= val;<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                        }<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                }<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                        }<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                        return dresults;<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>                return null;<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>        }<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span><a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>        /**<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>         * @param clazz dataset class<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>         * @param a dataset<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>         * @param axis<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>         * @return typed product of items along axis in dataset<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>         * @since 2.3<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>         */<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>        public static &lt;T extends Dataset&gt; T typedProduct(final Class&lt;T&gt; clazz, final Dataset a, int axis, final boolean... ignoreInvalids) {<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                return typedProduct(clazz, a, new int[] {axis}, ignoreInvalids);<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>        }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>        /**<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>         * @param clazz dataset class<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>         * @param a dataset<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>         * @param axes<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>         * @return typed product of items in axes of dataset<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>         * @since 2.3<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>         */<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        @SuppressWarnings("unchecked")<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        public static &lt;T extends Dataset&gt; T typedProduct(final Class&lt;T&gt; clazz, final Dataset a, int[] axes, final boolean... ignoreInvalids) {<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                return (T) typedProduct(a, DTypeUtils.getDType(clazz), axes, ignoreInvalids);<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>        }<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span><a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>        /**<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>         * @param a dataset<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>         * @param dtype<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>         * @param axis<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>         * @return typed product of items along axis in dataset<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>         * @since 2.0<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>         * @deprecated Please use the class-based method {@link #typedProduct(Class, Dataset, int, boolean...)}<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>         */<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>        @Deprecated<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>        public static Dataset typedProduct(final Dataset a, final int dtype, int axis, final boolean... ignoreInvalids) {<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                return typedProduct(a, dtype, new int[] {axis}, ignoreInvalids);<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>        /**<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>         * @param a dataset<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>         * @param dtype<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>         * @param axes<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>         * @return typed product of items in axes of dataset<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>         * @since 2.2<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>         * @deprecated Please use the class-based method {@link #typedProduct(Class, Dataset, int[], boolean...)}<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>         */<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>        @Deprecated<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>        public static Dataset typedProduct(final Dataset a, final int dtype, int[] axes, final boolean... ignoreInvalids) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                axes = ShapeUtils.checkAxes(a.getRank(), axes);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                SliceNDIterator siter = new SliceNDIterator(new SliceND(a.getShapeRef()), axes);<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span><a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                int[] nshape = siter.getUsedSlice().getSourceShape();<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                final int is = a.getElementsPerItem();<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span><a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                final boolean ignoreNaNs;<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                final boolean ignoreInfs;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                if (a.hasFloatingPointElements()) {<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                        ignoreNaNs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 0 ? ignoreInvalids[0] : false;<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                        ignoreInfs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 1 ? ignoreInvalids[1] : ignoreNaNs;<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                } else {<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                        ignoreNaNs = false;<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                        ignoreInfs = false;<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                }<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                Dataset result = DatasetFactory.zeros(is, nshape, dtype);<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span><a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                int[] spos = siter.getUsedPos();<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span><a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                // TODO add getLongArray(long[], int...) to CompoundDataset<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                final boolean isComplex = a.isComplex();<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                while (siter.hasNext()) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                        IndexIterator iter = a.getSliceIterator(siter.getCurrentSlice());<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                        final int[] pos = iter.getPos();<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span><a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                        if (isComplex) {<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                double rv = 1, iv = 0;<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                switch (dtype) {<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                                case Dataset.COMPLEX64:<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                                        ComplexFloatDataset af = (ComplexFloatDataset) a;<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                                        while (iter.hasNext()) {<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                                                final float r1 = af.getReal(pos);<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                                                final float i1 = af.getImag(pos);<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                                                if (ignoreNaNs &amp;&amp; (Float.isNaN(r1) || Float.isNaN(i1))) {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                                        continue;<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                                }<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                                if (ignoreInfs  &amp;&amp; (Float.isInfinite(r1) || Float.isInfinite(i1))) {<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                                        continue;<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                                }<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                                final double tv = r1*rv - i1*iv;<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                                iv = r1*iv + i1*rv;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                                                rv = tv;<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                                if (Double.isNaN(rv) &amp;&amp; Double.isNaN(iv)) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                                        break;<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>                                        break;<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                case Dataset.COMPLEX128:<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                        ComplexDoubleDataset ad = (ComplexDoubleDataset) a;<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                        while (iter.hasNext()) {<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                                final double r1 = ad.getReal(pos);<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                                final double i1 = ad.getImag(pos);<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                                if (ignoreNaNs &amp;&amp; (Double.isNaN(r1) || Double.isNaN(i1))) {<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                                        continue;<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                                }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                                                if (ignoreInfs  &amp;&amp; (Double.isInfinite(r1) || Double.isInfinite(i1))) {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                                        continue;<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                                }<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                                final double tv = r1*rv - i1*iv;<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                                iv = r1*iv + i1*rv;<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                                rv = tv;<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                                if (Double.isNaN(rv) &amp;&amp; Double.isNaN(iv)) {<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                                        break;<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>                                }<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span><a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                result.set(new Complex(rv, iv), spos);<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                        } else {<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                final long[] lresults;<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                final double[] dresults;<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span><a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                switch (dtype) {<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                case Dataset.BOOL:<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                                case Dataset.INT8: case Dataset.INT16:<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                case Dataset.INT32: case Dataset.INT64:<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                        long lresult = 1;<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                        while (iter.hasNext()) {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                                lresult *= a.getInt(pos);<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                        }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                                        result.set(lresult, spos);<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                                        break;<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                                case Dataset.ARRAYINT8:<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                                        lresults = new long[is];<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                                                lresults[k] = 1;<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                                        }<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                        while (iter.hasNext()) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                                final byte[] va = (byte[]) a.getObject(pos);<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                                        lresults[k] *= va[k];<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>                                        result.set(lresults, spos);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                        break;<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                case Dataset.ARRAYINT16:<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                        lresults = new long[is];<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                                                lresults[k] = 1;<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                                        }<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                                        while (iter.hasNext()) {<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                                                final short[] va = (short[]) a.getObject(pos);<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                                                        lresults[k] *= va[k];<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                                                }<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                                        }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>                                        result.set(lresults, spos);<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                                        break;<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                                case Dataset.ARRAYINT32:<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                                        lresults = new long[is];<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                                                lresults[k] = 1;<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                                        }<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                                        while (iter.hasNext()) {<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                                final int[] va = (int[]) a.getObject(pos);<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                                        lresults[k] *= va[k];<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                                                }<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                                        }<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                        result.set(lresults, spos);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                                        break;<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                                case Dataset.ARRAYINT64:<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                                        lresults = new long[is];<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                                                lresults[k] = 1;<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                                        }<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                        while (iter.hasNext()) {<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                                                final long[] va = (long[]) a.getObject(pos);<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                                                        lresults[k] *= va[k];<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                                                }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                                        }<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                                        result.set(lresults, spos);<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                                        break;<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                                case Dataset.FLOAT32: case Dataset.FLOAT64:<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                        double dresult = 1.;<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                        while (iter.hasNext()) {<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                                final double x = a.getElementDoubleAbs(iter.index); <a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                                                if (ignoreNaNs &amp;&amp; Double.isNaN(x)) {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                                        continue;<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                                }<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                                if (ignoreInfs &amp;&amp; Double.isInfinite(x)) {<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                                        continue;<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                                }<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                                dresult *= x;<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                                if (Double.isNaN(dresult)) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                                        break;<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                                }<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                        }<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        result.set(dresult, spos);<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                        break;<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                case Dataset.ARRAYFLOAT32: case Dataset.ARRAYFLOAT64:<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                        CompoundDataset da = (CompoundDataset) a;<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                        double[] dvalues = new double[is];<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                        dresults = new double[is];<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                                dresults[k] = 1.;<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                        }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                                        while (iter.hasNext()) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                                                da.getDoubleArrayAbs(iter.index, dvalues);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                                                boolean okay = true;<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                                                        final double val = dvalues[k];<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                                        if (ignoreNaNs &amp;&amp; Double.isNaN(val)) {<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                                                okay = false;<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                                                break;<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                                                        }<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                                        if (ignoreInfs &amp;&amp; Double.isInfinite(val)) {<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                                                okay = false;<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                                                break;<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>                                                if (okay) {<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                                        for (int k = 0; k &lt; is; k++) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                                                dresults[k] *= dvalues[k];<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                                        }<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                                }<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        }<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                        result.set(dresults, spos);<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                        break;<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>                }<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span><a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>//              result.setShape(ShapeUtils.squeezeShape(oshape, axes));<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                return result;<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>        }<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span><a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>        /**<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>         * @param a dataset<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>         * @return cumulative product of items in flattened dataset<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>         * @since 2.0<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>         */<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>        public static Dataset cumulativeProduct(final Dataset a, final boolean... ignoreInvalids) {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                return cumulativeProduct(a.flatten(), 0, ignoreInvalids);<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>        }<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span><a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>        /**<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>         * @param a dataset<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>         * @param axis<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>         * @param ignoreInvalids see {@link Dataset#max(int, boolean...)}<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>         * @return cumulative product of items along axis in dataset<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>         * @since 2.0<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>         */<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>        public static Dataset cumulativeProduct(final Dataset a, int axis, final boolean... ignoreInvalids) {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                axis = a.checkAxis(axis);<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                int dtype = a.getDType();<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                int[] oshape = a.getShape();<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                int alen = oshape[axis];<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                oshape[axis] = 1;<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span><a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                final boolean ignoreNaNs;<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                final boolean ignoreInfs;<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                if (a.hasFloatingPointElements()) {<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                        ignoreNaNs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 0 ? ignoreInvalids[0] : false;<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                        ignoreInfs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 1 ? ignoreInvalids[1] : ignoreNaNs;<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>                } else {<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                        ignoreNaNs = false;<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                        ignoreInfs = false;<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                }<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                Dataset result = DatasetFactory.zeros(a);<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                PositionIterator pi = result.getPositionIterator(axis);<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span><a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                int[] pos = pi.getPos();<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span><a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                while (pi.hasNext()) {<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span><a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                        if (a.isComplex()) {<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                double rv = 1, iv = 0;<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                switch (dtype) {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                case Dataset.COMPLEX64:<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                        ComplexFloatDataset af = (ComplexFloatDataset) a;<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                        ComplexFloatDataset rf = (ComplexFloatDataset) result;<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                                if (!Double.isNaN(rv) || !Double.isNaN(iv)) {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                                        pos[axis] = j;<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                                        final float r1 = af.getReal(pos);<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                                        final float i1 = af.getImag(pos);<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                                                        if (ignoreNaNs &amp;&amp; (Float.isNaN(r1) || Float.isNaN(i1))) {<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                                                continue;<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                                                        }<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                                                        if (ignoreInfs  &amp;&amp; (Float.isInfinite(r1) || Float.isInfinite(i1))) {<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                                                                continue;<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                                                        }<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                                                        final double tv = r1*rv - i1*iv;<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                                                        iv = r1*iv + i1*rv;<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                                        rv = tv;<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                                }<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                                                rf.set((float) rv, (float) iv, pos);<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                                        }<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                                        break;<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                                case Dataset.COMPLEX128:<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                        ComplexDoubleDataset ad = (ComplexDoubleDataset) a;<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                        ComplexDoubleDataset rd = (ComplexDoubleDataset) result;<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(rv) || !Double.isNaN(iv)) {<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 r1 = ad.getReal(pos);<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                                                        final double i1 = ad.getImag(pos);<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                                                        if (ignoreNaNs &amp;&amp; (Double.isNaN(r1) || Double.isNaN(i1))) {<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                                                                continue;<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                                                        }<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                                        if (ignoreInfs  &amp;&amp; (Double.isInfinite(r1) || Double.isInfinite(i1))) {<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                                                                continue;<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                                                        }<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>                                                        final double tv = r1*rv - i1*iv;<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                                                        iv = r1*iv + i1*rv;<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                                                        rv = tv;<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                                                }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                                                rd.set(rv, iv, pos);<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                                        }<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                                        break;<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>                                }<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                        } else {<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                                final int is;<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                                final long[] lresults;<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                                final double[] dresults;<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span><a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                                switch (dtype) {<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                                case Dataset.BOOL:<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                case Dataset.INT8: case Dataset.INT16:<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                                case Dataset.INT32: case Dataset.INT64:<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>                                        long lresult = 1;<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                                                pos[axis] = j;<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                                                lresult *= a.getInt(pos);<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                                                result.set(lresult, pos);<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                                        }<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                                        break;<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                                case Dataset.ARRAYINT8:<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                                        is = a.getElementsPerItem();<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                                        lresults = new long[is];<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                                                lresults[k] = 1;<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                                        }<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                                                pos[axis] = j;<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                                                final byte[] va = (byte[]) a.getObject(pos);<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                                                        lresults[k] *= va[k];<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                                                }<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                                                result.set(lresults, pos);<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                                        }<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                                        break;<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                                case Dataset.ARRAYINT16:<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                                        is = a.getElementsPerItem();<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                                        lresults = new long[is];<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                                lresults[k] = 1;<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                                        }<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                                pos[axis] = j;<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                                final short[] va = (short[]) a.getObject(pos);<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                                        lresults[k] *= va[k];<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                                                }<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                                                result.set(lresults, pos);<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                        }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                                        break;<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                                case Dataset.ARRAYINT32:<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                                        is = a.getElementsPerItem();<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                                        lresults = new long[is];<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                                                lresults[k] = 1;<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                                        }<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                                                pos[axis] = j;<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                                                final int[] va = (int[]) a.getObject(pos);<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                                                        lresults[k] *= va[k];<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                                                }<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                                                result.set(lresults, pos);<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                        }<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                        break;<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                case Dataset.ARRAYINT64:<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                                        is = a.getElementsPerItem();<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                                        lresults = new long[is];<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                                                lresults[k] = 1;<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                                        }<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>                                                pos[axis] = j;<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                                                final long[] va = (long[]) a.getObject(pos);<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                                                        lresults[k] *= va[k];<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                                                }<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                                                result.set(lresults, pos);<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                        }<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                        break;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                case Dataset.FLOAT32: case Dataset.FLOAT64:<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                        double dresult = 1.;<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                                if (!Double.isNaN(dresult)) {<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                                        pos[axis] = j;<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                        final double x = a.getDouble(pos);<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                        if (ignoreNaNs &amp;&amp; Double.isNaN(x)) {<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                                continue;<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                                        }<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                                        if (ignoreInfs &amp;&amp; Double.isInfinite(x)) {<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>                                                        dresult *= x;<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                                }<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                result.set(dresult, pos);<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                                        }<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                        break;<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                case Dataset.ARRAYFLOAT32: case Dataset.ARRAYFLOAT64:<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        is = a.getElementsPerItem();<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                        CompoundDataset da = (CompoundDataset) a;<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                        double[] dvalues = new double[is];<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                        dresults = new double[is];<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                                dresults[k] = 1.;<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                        }<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                                pos[axis] = j;<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                                                da.getDoubleArray(dvalues, pos);<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                                boolean okay = true;<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                                                        final double val = dvalues[k];<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                                        if (ignoreNaNs &amp;&amp; Double.isNaN(val)) {<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                                                                okay = false;<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                                                                break;<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                                        }<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                                        if (ignoreInfs &amp;&amp; Double.isInfinite(val)) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                                                okay = false;<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                                                                break;<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>                                                if (okay) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                                                        for (int k = 0; k &lt; is; k++) {<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                                                                dresults[k] *= dvalues[k];<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                                        }<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                                }<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                                result.set(dresults, pos);<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                        }<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                        break;<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><a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                return result;<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>        /**<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>         * @param a dataset<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>         * @return cumulative sum of items in flattened dataset<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>         * @since 2.0<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>         */<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>        public static Dataset cumulativeSum(final Dataset a, final boolean... ignoreInvalids) {<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                return cumulativeSum(a.flatten(), 0, ignoreInvalids);<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>        }<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span><a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>        /**<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>         * @param a dataset<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>         * @param axis<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>         * @param ignoreInvalids see {@link Dataset#max(int, boolean...)}<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>         * @return cumulative sum of items along axis in dataset<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>         * @since 2.0<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>         */<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>        public static Dataset cumulativeSum(final Dataset a, int axis, final boolean... ignoreInvalids) {<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                axis = a.checkAxis(axis);<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                int dtype = a.getDType();<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                int[] oshape = a.getShape();<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                int alen = oshape[axis];<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                oshape[axis] = 1;<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span><a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                final boolean ignoreNaNs;<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                final boolean ignoreInfs;<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                if (a.hasFloatingPointElements()) {<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                        ignoreNaNs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 0 ? ignoreInvalids[0] : false;<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                        ignoreInfs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 1 ? ignoreInvalids[1] : ignoreNaNs;<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                } else {<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                        ignoreNaNs = false;<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                        ignoreInfs = false;<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                }<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                Dataset result = DatasetFactory.zeros(a);<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                PositionIterator pi = result.getPositionIterator(axis);<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span><a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                int[] pos = pi.getPos();<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span><a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                while (pi.hasNext()) {<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span><a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                        if (a.isComplex()) {<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                                double rv = 0, iv = 0;<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                                switch (dtype) {<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                                case Dataset.COMPLEX64:<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                        ComplexFloatDataset af = (ComplexFloatDataset) a;<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                        ComplexFloatDataset rf = (ComplexFloatDataset) result;<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                                if (!Double.isNaN(rv) || !Double.isNaN(iv)) {<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                                        pos[axis] = j;<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                                        final float r1 = af.getReal(pos);<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                                        final float i1 = af.getImag(pos);<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                                        if (ignoreNaNs &amp;&amp; (Float.isNaN(r1) || Float.isNaN(i1))) {<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                                                continue;<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                                        }<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                                        if (ignoreInfs  &amp;&amp; (Float.isInfinite(r1) || Float.isInfinite(i1))) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                                                continue;<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                                        }<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                                        rv += r1;<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                                        iv += i1;<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                                }<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                                rf.set((float) rv, (float) iv, pos);<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                        }<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                        break;<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                case Dataset.COMPLEX128:<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                        ComplexDoubleDataset ad = (ComplexDoubleDataset) a;<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                        ComplexDoubleDataset rd = (ComplexDoubleDataset) result;<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                if (!Double.isNaN(rv) || !Double.isNaN(iv)) {<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                                        pos[axis] = j;<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                                        final double r1 = ad.getReal(pos);<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                                        final double i1 = ad.getImag(pos);<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                                                        if (ignoreNaNs &amp;&amp; (Double.isNaN(r1) || Double.isNaN(i1))) {<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                                                                continue;<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                                                        }<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                                                        if (ignoreInfs  &amp;&amp; (Double.isInfinite(r1) || Double.isInfinite(i1))) {<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>                                                                continue;<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                                                        }<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                                        rv += r1;<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                                        iv += i1;<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                                }<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                                rd.set(rv, iv, pos);<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                        }<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                        break;<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                }<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                        } else {<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                                final int is;<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                                final long[] lresults;<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                                final double[] dresults;<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span><a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                switch (dtype) {<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                                case Dataset.BOOL:<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                                case Dataset.INT8: case Dataset.INT16:<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                                case Dataset.INT32: case Dataset.INT64:<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                        long lresult = 0;<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                                                pos[axis] = j;<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                                lresult += a.getInt(pos);<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                                                result.set(lresult, pos);<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                                        }<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                                        break;<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                                case Dataset.ARRAYINT8:<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                                        is = a.getElementsPerItem();<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                                        lresults = new long[is];<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                                                pos[axis] = j;<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                                                final byte[] va = (byte[]) a.getObject(pos);<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                                                        lresults[k] += va[k];<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                                                }<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                                                result.set(lresults, pos);<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                                        }<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                                        break;<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                                case Dataset.ARRAYINT16:<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                                        is = a.getElementsPerItem();<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                                        lresults = new long[is];<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                                pos[axis] = j;<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                                                final short[] va = (short[]) a.getObject(pos);<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                                                        lresults[k] += va[k];<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                                }<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                                result.set(lresults, pos);<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                        }<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                        break;<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                case Dataset.ARRAYINT32:<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                        is = a.getElementsPerItem();<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                        lresults = new long[is];<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                                                pos[axis] = j;<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                                                final int[] va = (int[]) a.getObject(pos);<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                                                        lresults[k] += va[k];<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                                                }<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                                                result.set(lresults, pos);<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                        }<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                        break;<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                case Dataset.ARRAYINT64:<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                        is = a.getElementsPerItem();<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                                        lresults = new long[is];<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                                                pos[axis] = j;<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                                                final long[] va = (long[]) a.getObject(pos);<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                                                        lresults[k] += va[k];<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                                }<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                                result.set(lresults, pos);<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                        }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                                        break;<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                                case Dataset.FLOAT32: case Dataset.FLOAT64:<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                                        double dresult = 0.;<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                                                if (!Double.isNaN(dresult)) {<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                                                        pos[axis] = j;<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                                        final double x = a.getDouble(pos);<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                                                        if (ignoreNaNs &amp;&amp; Double.isNaN(x)) {<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                                                                continue;<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                                                        }<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                                                        if (ignoreInfs &amp;&amp; Double.isInfinite(x)) {<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                                                                continue;<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                                                        }<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                                                        dresult += x;<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                                                }<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                                result.set(dresult, pos);<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                        }<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                        break;<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                case Dataset.ARRAYFLOAT32: case Dataset.ARRAYFLOAT64:<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                                        is = a.getElementsPerItem();<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                                        CompoundDataset da = (CompoundDataset) a;<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                                        double[] dvalues = new double[is];<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                                        dresults = new double[is];<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                                                pos[axis] = j;<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                                da.getDoubleArray(dvalues, pos);<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                                boolean okay = true;<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                                                        final double val = dvalues[k];<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                                        if (ignoreNaNs &amp;&amp; Double.isNaN(val)) {<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                                                okay = false;<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                                                break;<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                                        }<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                                        if (ignoreInfs &amp;&amp; Double.isInfinite(val)) {<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                                                okay = false;<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                                                break;<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>                                                if (okay) {<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                                        for (int k = 0; k &lt; is; k++) {<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                                                dresults[k] += dvalues[k];<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                                        }<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                                }<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                                result.set(dresults, pos);<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                        }<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                        break;<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 result;<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 average deviation value of all items the dataset<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>         */<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>        public static Object averageDeviation(final Dataset a) {<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                final IndexIterator it = a.getIterator();<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                final int is = a.getElementsPerItem();<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span><a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                if (is == 1) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                        double mean = (Double) a.mean();<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                        double sum = 0.0;<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span><a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                        while (it.hasNext()) {<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                sum += Math.abs(a.getElementDoubleAbs(it.index) - mean);<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>                        return sum / a.getSize();<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>                double[] means = (double[]) a.mean();<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                double[] sums = new double[is];<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span><a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                while (it.hasNext()) {<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                        for (int j = 0; j &lt; is; j++)<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                sums[j] += Math.abs(a.getElementDoubleAbs(it.index + j) - means[j]);<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                }<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span><a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                double n = a.getSize();<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                for (int j = 0; j &lt; is; j++)<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                        sums[j] /= n;<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span><a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                return sums;<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>         * The residual is the sum of squared differences<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>         * @param a<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>         * @param b<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>         * @return residual value<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>         */<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>        public static double residual(final Dataset a, final Dataset b) {<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                return a.residual(b);<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>         * The residual is the sum of squared differences<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>         * @param a<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>         * @param b<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>         * @param w<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>         * @return residual value<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>         */<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>        public static double weightedResidual(final Dataset a, final Dataset b, final Dataset w) {<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                return a.residual(b, w, false);<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>         * Calculate approximate outlier values. These are defined as the values in the dataset<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>         * that are approximately below and above the given thresholds - in terms of percentages<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>         * of dataset size.<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>         * &lt;p&gt;<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>         * It approximates by limiting the number of items (given by length) used internally by<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>         * data structures - the larger this is, the more accurate will those outlier values become.<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>         * The actual thresholds used are returned in the array.<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>         * &lt;p&gt;<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>         * Also, the low and high values will be made distinct if possible by adjusting the thresholds<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>         * @param a<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>         * @param lo percentage threshold for lower limit<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>         * @param hi percentage threshold for higher limit<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>         * @param length maximum number of items used internally, if negative, then unlimited<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>         * @return double array with low and high values, and low and high percentage thresholds<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>         */<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>        public static double[] outlierValues(final Dataset a, double lo, double hi, final int length) {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                return outlierValues(a, null, true, lo, hi, length);<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>        }<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span><a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>        /**<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>         * Calculate approximate outlier values. These are defined as the values in the dataset<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>         * that are approximately below and above the given thresholds - in terms of percentages<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>         * of dataset size.<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>         * &lt;p&gt;<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>         * It approximates by limiting the number of items (given by length) used internally by<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>         * data structures - the larger this is, the more accurate will those outlier values become.<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>         * The actual thresholds used are returned in the array.<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>         * &lt;p&gt;<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>         * Also, the low and high values will be made distinct if possible by adjusting the thresholds<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>         * @param a<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>         * @param mask can be null<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>         * @param value value of mask to match to include for calculation<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>         * @param lo percentage threshold for lower limit<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>         * @param hi percentage threshold for higher limit<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>         * @param length maximum number of items used internally, if negative, then unlimited<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>         * @return double array with low and high values, and low and high percentage thresholds<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>         * @since 2.1<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>         */<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>        public static double[] outlierValues(final Dataset a, final Dataset mask, final boolean value, double lo, double hi, final int length) {<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                if (lo &lt;= 0 || hi &lt;= 0 || lo &gt;= hi || hi &gt;= 100  || Double.isNaN(lo)|| Double.isNaN(hi)) {<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                        throw new IllegalArgumentException("Thresholds must be between (0,100) and in order");<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                }<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                final int size = a.getSize();<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                int nl = Math.max((int) ((lo*size)/100), 1);<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                if (length &gt; 0 &amp;&amp; nl &gt; length)<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                        nl = length;<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                int nh = Math.max((int) (((100-hi)*size)/100), 1);<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                if (length &gt; 0 &amp;&amp; nh &gt; length)<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                        nh = length;<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span><a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                IndexIterator it = mask == null ? a.getIterator() : a.getBooleanIterator(mask, value);<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                double[] results = Math.max(nl, nh) &gt; 640 ? outlierValuesMap(a, it, nl, nh) : outlierValuesList(a, it, nl, nh);<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span><a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                results[2] = results[2]*100./size;<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                results[3] = 100. - results[3]*100./size;<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                return results;<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>        static double[] outlierValuesMap(final Dataset a, final IndexIterator it, int nl, int nh) {<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                final TreeMap&lt;Double, Integer&gt; lMap = new TreeMap&lt;Double, Integer&gt;();<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                final TreeMap&lt;Double, Integer&gt; hMap = new TreeMap&lt;Double, Integer&gt;();<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span><a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                int ml = 0;<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                int mh = 0;<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                while (it.hasNext()) {<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                        Double x = a.getElementDoubleAbs(it.index);<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                        if (Double.isNaN(x)) {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                continue;<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                        }<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                        Integer i;<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                        if (ml == nl) {<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                                Double k = lMap.lastKey();<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                if (x &lt; k) {<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                        i = lMap.get(k) - 1;<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                        if (i == 0) {<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                                lMap.remove(k);<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                                        } else {<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                                                lMap.put(k, i);<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                                        }<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                                        i = lMap.get(x);<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                                        if (i == null) {<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>                                                lMap.put(x, 1);<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                                        } else {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                                lMap.put(x, i + 1);<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>                                i = lMap.get(x);<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                if (i == null) {<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                        lMap.put(x, 1);<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                } else {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                        lMap.put(x, i + 1);<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                }<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                ml++;<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                        }<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span><a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                        if (mh == nh) {<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                Double k = hMap.firstKey();<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                if (x &gt; k) {<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                        i = hMap.get(k) - 1;<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                        if (i == 0) {<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                                hMap.remove(k);<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                        } else {<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                                                hMap.put(k, i);<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                        }<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                        i = hMap.get(x);<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                        if (i == null) {<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                                hMap.put(x, 1);<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                        } else {<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                                                hMap.put(x, i+1);<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>                                i = hMap.get(x);<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span>                                if (i == null) {<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                                        hMap.put(x, 1);<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                } else {<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                        hMap.put(x, i+1);<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                }<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                mh++;<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                        }<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                }<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span><a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                // Attempt to make values distinct<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                double lx = lMap.lastKey();<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                double hx = hMap.firstKey();<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                if (lx &gt;= hx) {<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                        Double h = hMap.higherKey(lx);<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                        if (h != null) {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                hx = h;<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                mh--;<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                        } else {<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                Double l = lMap.lowerKey(hx);<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                if (l != null) {<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                        lx = l;<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                        ml--;<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>                }<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                return new double[] {lMap.lastKey(), hMap.firstKey(), ml, mh};<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>        static double[] outlierValuesList(final Dataset a, final IndexIterator it, int nl, int nh) {<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                final List&lt;Double&gt; lList = new ArrayList&lt;Double&gt;(nl);<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                final List&lt;Double&gt; hList = new ArrayList&lt;Double&gt;(nh);<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span><a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>                double lx = Double.POSITIVE_INFINITY;<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                double hx = Double.NEGATIVE_INFINITY;<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span><a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>                while (it.hasNext()) {<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                        double x = a.getElementDoubleAbs(it.index);<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>                        if (Double.isNaN(x)) {<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>                                continue;<a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>                        }<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span>                        if (x &lt; lx) {<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>                                if (lList.size() == nl) {<a name="line.1896"></a>
+<span class="sourceLineNo">1897</span>                                        lList.remove(lx);<a name="line.1897"></a>
+<span class="sourceLineNo">1898</span>                                }<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>                                lList.add(x);<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>                                lx = Collections.max(lList);<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>                        } else if (x == lx) {<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span>                                if (lList.size() &lt; nl) {<a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>                                        lList.add(x);<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span>                                }<a name="line.1904"></a>
+<span class="sourceLineNo">1905</span>                        }<a name="line.1905"></a>
+<span class="sourceLineNo">1906</span><a name="line.1906"></a>
+<span class="sourceLineNo">1907</span>                        if (x &gt; hx) {<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span>                                if (hList.size() == nh) {<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>                                        hList.remove(hx);<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>                                }<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span>                                hList.add(x);<a name="line.1911"></a>
+<span class="sourceLineNo">1912</span>                                hx = Collections.min(hList);<a name="line.1912"></a>
+<span class="sourceLineNo">1913</span>                        } else if (x == hx) {<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>                                if (hList.size() &lt; nh) {<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>                                        hList.add(x);<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><a name="line.1919"></a>
+<span class="sourceLineNo">1920</span>                nl = lList.size();<a name="line.1920"></a>
+<span class="sourceLineNo">1921</span>                nh = hList.size();<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span><a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>                // Attempt to make values distinct<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span>                if (lx &gt;= hx) {<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span>                        Collections.sort(hList);<a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>                        for (double h : hList) {<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>                                if (h &gt; hx) {<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>                                        hx = h;<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>                                        break;<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>                                }<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>                                nh--;<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>                        }<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span>                        if (lx &gt;= hx) {<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span>                                Collections.sort(lList);<a name="line.1934"></a>
+<span class="sourceLineNo">1935</span>                                Collections.reverse(lList);<a name="line.1935"></a>
+<span class="sourceLineNo">1936</span>                                for (double l : lList) {<a name="line.1936"></a>
+<span class="sourceLineNo">1937</span>                                        if (l &lt; lx) {<a name="line.1937"></a>
+<span class="sourceLineNo">1938</span>                                                lx = l;<a name="line.1938"></a>
+<span class="sourceLineNo">1939</span>                                                break;<a name="line.1939"></a>
+<span class="sourceLineNo">1940</span>                                        }<a name="line.1940"></a>
+<span class="sourceLineNo">1941</span>                                        nl--;<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>                return new double[] {lx, hx, nl, nh};<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>         * 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.1949"></a>
+<span class="sourceLineNo">1950</span>         * @param a<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span>         * @return covariance array of a<a name="line.1951"></a>
+<span class="sourceLineNo">1952</span>         */<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span>        public static Dataset covariance(final Dataset a) {<a name="line.1953"></a>
+<span class="sourceLineNo">1954</span>                return covariance(a, true, false, null); <a name="line.1954"></a>
+<span class="sourceLineNo">1955</span>        }<a name="line.1955"></a>
+<span class="sourceLineNo">1956</span><a name="line.1956"></a>
+<span class="sourceLineNo">1957</span>        /**<a name="line.1957"></a>
+<span class="sourceLineNo">1958</span>         * See {@link #covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)} with b = null.<a name="line.1958"></a>
+<span class="sourceLineNo">1959</span>         * @param a<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span>         * @return covariance array of a<a name="line.1960"></a>
+<span class="sourceLineNo">1961</span>         * @since 2.0<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span>         */<a name="line.1962"></a>
+<span class="sourceLineNo">1963</span>        public static Dataset covariance(final Dataset a, <a name="line.1963"></a>
+<span class="sourceLineNo">1964</span>                        boolean rowvar, boolean bias, Integer ddof) {<a name="line.1964"></a>
+<span class="sourceLineNo">1965</span>                return covariance(a, null, rowvar, bias, ddof);<a name="line.1965"></a>
+<span class="sourceLineNo">1966</span>        }<a name="line.1966"></a>
+<span class="sourceLineNo">1967</span><a name="line.1967"></a>
+<span class="sourceLineNo">1968</span>        /**<a name="line.1968"></a>
+<span class="sourceLineNo">1969</span>         * 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.1969"></a>
+<span class="sourceLineNo">1970</span>         * @param a<a name="line.1970"></a>
+<span class="sourceLineNo">1971</span>         * @return covariance array of a concatenated with b<a name="line.1971"></a>
+<span class="sourceLineNo">1972</span>         */<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span>        public static Dataset covariance(final Dataset a, final Dataset b) {<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span>                return covariance(a, b, true, false, null);<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span>        }<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span><a name="line.1976"></a>
+<span class="sourceLineNo">1977</span>        /**<a name="line.1977"></a>
+<span class="sourceLineNo">1978</span>         * Calculate the covariance matrix (array) of a concatenated with b. This <a name="line.1978"></a>
+<span class="sourceLineNo">1979</span>         * method is directly based on the implementation in numpy (cov). <a name="line.1979"></a>
+<span class="sourceLineNo">1980</span>         * @param a Array containing multiple variable and observations. Each row represents a variable, each column an observation.<a name="line.1980"></a>
+<span class="sourceLineNo">1981</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.1981"></a>
+<span class="sourceLineNo">1982</span>         * @param rowvar When true (default), each row is a variable; when false each column is a variable.<a name="line.1982"></a>
+<span class="sourceLineNo">1983</span>         * @param bias Default normalisation is (N - 1) - N is number of observations. If set true, normalisation is (N). <a name="line.1983"></a>
+<span class="sourceLineNo">1984</span>         * @param ddof Default normalisation is (N - 1). If ddof is set, then normalisation is (N - ddof).<a name="line.1984"></a>
+<span class="sourceLineNo">1985</span>         * @return covariance array of a concatenated with b<a name="line.1985"></a>
+<span class="sourceLineNo">1986</span>         * @since 2.0<a name="line.1986"></a>
+<span class="sourceLineNo">1987</span>         */<a name="line.1987"></a>
+<span class="sourceLineNo">1988</span>        public static Dataset covariance (final Dataset a, final Dataset b, <a name="line.1988"></a>
+<span class="sourceLineNo">1989</span>                        boolean rowvar, boolean bias, Integer ddof) {<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span>                <a name="line.1990"></a>
+<span class="sourceLineNo">1991</span>                //Create a working copy of the dataset &amp; check its rank.<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span>                Dataset vars = a.clone();<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span>                if (a.getRank() == 1) {<a name="line.1993"></a>
+<span class="sourceLineNo">1994</span>                        vars.setShape(1, a.getShapeRef()[0]);<a name="line.1994"></a>
+<span class="sourceLineNo">1995</span>                }<a name="line.1995"></a>
+<span class="sourceLineNo">1996</span>                <a name="line.1996"></a>
+<span class="sourceLineNo">1997</span>                //1D of variables, so consider rows as variables<a name="line.1997"></a>
+<span class="sourceLineNo">1998</span>                if (vars.getShapeRef()[0] == 1) {<a name="line.1998"></a>
+<span class="sourceLineNo">1999</span>                        rowvar = true;<a name="line.1999"></a>
+<span class="sourceLineNo">2000</span>                }<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span>                <a name="line.2001"></a>
+<span class="sourceLineNo">2002</span>                //nr is the number of records; axis is index<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>                int nr, axis;<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>                if (rowvar) {<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span>                        nr = vars.getShapeRef()[1];<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>                        axis = 0;<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>                } else {<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span>                        nr = vars.getShapeRef()[0];<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>                        axis = 1;<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>                //Set the reduced degrees of freedom &amp; normalisation factor<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>                if (ddof == null) {<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>                        if (bias == false) {<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>                                ddof = 1;<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>                        } else {<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span>                                ddof = 0;<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>                        }<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span>                }<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>                double norm_fact = nr - ddof;<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>                if (norm_fact &lt;= 0.) {<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>                        //TODO Some sort of warning here?<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>                        norm_fact = 0.;<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>                //Concatenate additional set of variables with main set<a name="line.2026"></a>
+<span class="sourceLineNo">2027</span>                if (b != null) {<a name="line.2027"></a>
+<span class="sourceLineNo">2028</span>                        //Create a working copy of the dataset &amp; check its rank.<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span>                        Dataset extraVars = b.clone();<a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>                        if (b.getRank() == 1) {<a name="line.2030"></a>
+<span class="sourceLineNo">2031</span>                                extraVars.setShape(1, a.getShapeRef()[0]);<a name="line.2031"></a>
+<span class="sourceLineNo">2032</span>                        }<a name="line.2032"></a>
+<span class="sourceLineNo">2033</span>                        vars = DatasetUtils.concatenate(new Dataset[]{vars, extraVars}, axis);<a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>                }<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>                <a name="line.2035"></a>
+<span class="sourceLineNo">2036</span>                //Calculate deviations &amp; covariance matrix<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>                Dataset varsMean = vars.mean(1-axis, false);<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>                //-vars &amp; varsMean need same shape (this is a hack!)<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span>                int[] meanShape = vars.getShape();<a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>                meanShape[1-axis] = 1;<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>                varsMean.setShape(meanShape);<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>                vars.isubtract(varsMean);<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>                Dataset cov;<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>                if (rowvar) {<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span>                        cov = Maths.divide(LinearAlgebra.dotProduct(vars, Maths.conjugate(vars.transpose())), norm_fact).squeeze();<a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>                } else {<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>                        cov = Maths.divide(LinearAlgebra.dotProduct(vars.transpose(), Maths.conjugate(vars)), norm_fact).squeeze();<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>                }<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>                return cov;<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>        }<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span>}<a name="line.2051"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/StrideIterator.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/StrideIterator.html
new file mode 100644
index 0000000..ea03691
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/StrideIterator.html
@@ -0,0 +1,233 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.Arrays;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>/**<a name="line.18"></a>
+<span class="sourceLineNo">019</span> * Class to run over a contiguous dataset using strides<a name="line.19"></a>
+<span class="sourceLineNo">020</span> */<a name="line.20"></a>
+<span class="sourceLineNo">021</span>public class StrideIterator extends SliceIterator {<a name="line.21"></a>
+<span class="sourceLineNo">022</span>        private int[] stride;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>        private int[] delta;  // reset values<a name="line.23"></a>
+<span class="sourceLineNo">024</span>        private int nstart;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        private int element;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        private boolean zero;<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public StrideIterator(final int[] shape) {<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                this(shape, null, 0);<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        }<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>        public StrideIterator(final int isize, final int[] shape) {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                this(isize, shape, null, 0);<a name="line.33"></a>
+<span class="sourceLineNo">034</span>        }<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>        public StrideIterator(final int[] shape, final int[] strides) {<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                this(shape, strides, 0);<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        public StrideIterator(final int[] shape, final int[] strides, final int offset) {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                this(1, shape, strides, offset);<a name="line.41"></a>
+<span class="sourceLineNo">042</span>        }<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>        public StrideIterator(final int isize, final int[] shape, final int[] strides, final int offset) {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                this(isize, shape, strides, offset, 0);<a name="line.45"></a>
+<span class="sourceLineNo">046</span>        }<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>        public StrideIterator(final int isize, final int[] shape, final int[] strides, final int offset, final int element) {<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                int rank = shape.length;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                start = new int[rank];<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                stop = shape;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                step = new int[rank];<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                Arrays.fill(step, 1);<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                this.sshape = shape;<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>                init(isize, shape, strides, offset, element);<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                reset();<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        public StrideIterator(final int isize, final int[] shape, final int[] start, final int[] stop, final int[] step) {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                this(isize, shape, null, 0, start, stop, step);<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        }<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>        public StrideIterator(final int isize, final int[] shape, final int[] oStrides, final int oOffset, final int[] start, final int[] stop, final int[] step) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                this(isize, shape, oStrides, oOffset, new SliceND(shape, start, stop, step));<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>        public StrideIterator(final int isize, final int[] shape, final int[] strides, final int offset, final SliceND slice) {<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                start = slice.getStart();<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                stop = slice.getStop();<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                step = slice.getStep();<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                this.sshape = slice.getShape();<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>                init(isize, shape, strides, offset, 0);<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                reset();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>        }<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span>        private void init(final int isize, final int[] shape, final int[] strides, int offset, final int element) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                this.isize = isize;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                istep = isize;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                this.shape = shape;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                int rank = shape.length;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                endrank = rank - 1;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                pos = new int[rank];<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                delta = new int[rank];<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                this.element = element;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                if (strides == null) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                        offset = 0;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                        stride = new int[rank];<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                        int s = isize;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                        for (int j = endrank; j &gt;= 0; j--) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                                stride[j] = s;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                                s *= shape[j];<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        }<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                } else {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                        stride = strides.clone();<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                }<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>                for (int j = endrank; j &gt;= 0; j--) {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                        int t = stride[j];<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                        offset += t * start[j];<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                        t *= step[j];<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                        stride[j] = t;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                        int s = sshape[j];<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                        if (!zero) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                zero = s == 0;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                        }<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        delta[j] = s * t;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                }<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span>                nstart = offset;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        }<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>        @Override<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        void calcGap() {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                // do nothing<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>        @Override<a name="line.119"></a>
+<span class="sourceLineNo">120</span>        public boolean hasNext() {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                if (zero) {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                        return false;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                }<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>                // now move on one position<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                int j = endrank;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                if (j &lt; 0) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        index += istep;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        return index &lt; istep;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                }<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                for (; j &gt;= 0; j--) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        index += stride[j];<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                        final int s = step[j];<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        final int p = pos[j] + s;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                        if ((s &gt; 0 &amp;&amp; p &lt; stop[j]) || (s &lt; 0 &amp;&amp; p &gt; stop[j])) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                                pos[j] = p;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                                break;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        }<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                        pos[j] = start[j];<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        index -= delta[j]; // reset this dimension<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                return j &gt;= 0;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>        }<a name="line.143"></a>
+<span class="sourceLineNo">144</span><a name="line.144"></a>
+<span class="sourceLineNo">145</span>        @Override<a name="line.145"></a>
+<span class="sourceLineNo">146</span>        public int[] getPos() {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                return pos;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>        }<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>        @Override<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        public void reset() {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                System.arraycopy(start, 0, pos, 0, start.length);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                if (endrank &gt;= 0) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        pos[endrank] -= step[endrank];<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                        index = nstart - stride[endrank];<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                } else {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        index = -istep;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                }<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                index += element;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>        }<a name="line.160"></a>
+<span class="sourceLineNo">161</span>}<a name="line.161"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/StringDataset.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/StringDataset.html
new file mode 100644
index 0000000..1cae74d
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/StringDataset.html
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.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>                }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                return ds;<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 shape<a name="line.105"></a>
+<span class="sourceLineNo">106</span>         * @return a dataset filled with ones<a name="line.106"></a>
+<span class="sourceLineNo">107</span>         */<a name="line.107"></a>
+<span class="sourceLineNo">108</span>        static StringDataset ones(final int... shape) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 getElementBooleanAbs(int index) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 double getElementDoubleAbs(int index) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 getElementLongAbs(int index) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 getDouble() {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 double getDouble(int i) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 double getDouble(int i, int j) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                throw new UnsupportedOperationException("Unsupported method for class");<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>        @Override<a name="line.142"></a>
+<span class="sourceLineNo">143</span>        public double getDouble(int... pos) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 float getFloat() {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.149"></a>
+<span class="sourceLineNo">150</span>        }<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>        @Override<a name="line.152"></a>
+<span class="sourceLineNo">153</span>        public float getFloat(int i) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>        @Override<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        public float getFloat(int i, int j) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.159"></a>
+<span class="sourceLineNo">160</span>        }<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>        @Override<a name="line.162"></a>
+<span class="sourceLineNo">163</span>        public float getFloat(int... pos) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 long getLong() {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 long getLong(int i) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 long getLong(int i, int j) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 long getLong(int... pos) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 getInt(int i) {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>        @Override<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        public int getInt(int i, int j) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        }<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>        @Override<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        public int getInt(int... pos) {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.199"></a>
+<span class="sourceLineNo">200</span>        }<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>        @Override<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        public short getShort() {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        }<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>        @Override<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        public short getShort(int i) {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 short getShort(int i, int j) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 short getShort(int... pos) {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 byte getByte() {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                throw new UnsupportedOperationException("Unsupported method for 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>        @Override<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        public byte getByte(int i) {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                throw new UnsupportedOperationException("Unsupported method for class");<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>        @Override<a name="line.232"></a>
+<span class="sourceLineNo">233</span>        public byte getByte(int i, int j) {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                throw new UnsupportedOperationException("Unsupported method for class");<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>        @Override<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        public byte getByte(int... pos) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        }<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>        @Override<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        public boolean getBoolean() {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                throw new UnsupportedOperationException("Unsupported method for class");<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>        @Override<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        public boolean getBoolean(int i) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                throw new UnsupportedOperationException("Unsupported method for class");<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>        @Override<a name="line.252"></a>
+<span class="sourceLineNo">253</span>        public boolean getBoolean(int i, int j) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        }<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>        @Override<a name="line.257"></a>
+<span class="sourceLineNo">258</span>        public boolean getBoolean(int... pos) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 String getStringAbs(final int index) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                return stringFormat instanceof MessageFormat ? stringFormat.format(data[index]) :<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                                String.format("%s", data[index]);<a name="line.265"></a>
+<span class="sourceLineNo">266</span>        }<a name="line.266"></a>
+<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">268</span>        @Override<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        public boolean containsInfs() {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                return false;<a name="line.270"></a>
+<span class="sourceLineNo">271</span>        }<a name="line.271"></a>
+<span class="sourceLineNo">272</span><a name="line.272"></a>
+<span class="sourceLineNo">273</span>        @Override<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        public boolean containsNans() {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                return false;<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>        public StringDataset iadd(Object o) {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                throw new UnsupportedOperationException("Unsupported method for class");<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>        @Override<a name="line.283"></a>
+<span class="sourceLineNo">284</span>        public StringDataset isubtract(Object o) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 StringDataset imultiply(Object o) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                throw new UnsupportedOperationException("Unsupported method for class");<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>        @Override<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        public StringDataset idivide(Object o) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                throw new UnsupportedOperationException("Unsupported method for class");<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>        @Override<a name="line.298"></a>
+<span class="sourceLineNo">299</span>        public StringDataset iremainder(Object o) {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                throw new UnsupportedOperationException("Unsupported method for class");<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>        @Override<a name="line.303"></a>
+<span class="sourceLineNo">304</span>        public StringDataset ifloor() {<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                throw new UnsupportedOperationException("Unsupported method for class");<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>        @Override<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        public StringDataset ipower(Object o) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                throw new UnsupportedOperationException("Unsupported method for class");<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>        @Override<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        public double residual(Object o) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                throw new UnsupportedOperationException("Unsupported method for class");<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/StringDatasetBase.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/StringDatasetBase.html
new file mode 100644
index 0000000..30a6d80
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/StringDatasetBase.html
@@ -0,0 +1,1056 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// This is generated from DoubleDataset.java by fromdouble.py<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.ArrayList;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.Arrays;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.List;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.Set;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.TreeSet;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.eclipse.january.metadata.StatisticsMetadata;<a name="line.23"></a>
+<span class="sourceLineNo">024</span><a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>/**<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * Extend dataset for String values // PRIM_TYPE<a name="line.27"></a>
+<span class="sourceLineNo">028</span> */<a name="line.28"></a>
+<span class="sourceLineNo">029</span>public class StringDatasetBase extends AbstractDataset {<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        // pin UID to base class<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>        protected String[] data; // subclass alias // PRIM_TYPE<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>        @Override<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        protected void setData() {<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                data = (String[]) odata; // PRIM_TYPE<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        protected static String[] createArray(final int size) { // PRIM_TYPE<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                String[] array = null; // PRIM_TYPE<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>                try {<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                        array = new String[size]; // PRIM_TYPE<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                } catch (OutOfMemoryError e) {<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                }<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                return array;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        }<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        @Override<a name="line.54"></a>
+<span class="sourceLineNo">055</span>        public int getDType() {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                return STRING; // DATA_TYPE<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        }<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>        /**<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * Create a null dataset<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        StringDatasetBase() {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        }<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>        /**<a name="line.65"></a>
+<span class="sourceLineNo">066</span>         * Create a zero-filled dataset of given shape<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * @param shape<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         */<a name="line.68"></a>
+<span class="sourceLineNo">069</span>        StringDatasetBase(final int... shape) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                if (shape != null) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                        size = ShapeUtils.calcSize(shape);<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        this.shape = shape.clone();<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        try {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                                odata = data = createArray(size);<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        } catch (Throwable t) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                throw new IllegalArgumentException(t);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        }<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                }<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        }<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>        /**<a name="line.83"></a>
+<span class="sourceLineNo">084</span>         * Create a dataset using given data<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         * @param data<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @param shape<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         *            (can be null to create 1D dataset)<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         */<a name="line.88"></a>
+<span class="sourceLineNo">089</span>        StringDatasetBase(final String[] data, int... shape) { // PRIM_TYPE<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                if (data == null) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                        throw new IllegalArgumentException("Data must not be null");<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                }<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                if (shape == null || shape.length == 0) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        shape = new int[] { data.length };<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                }<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                size = ShapeUtils.calcSize(shape);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                if (size != data.length) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                        Arrays.toString(shape), data.length));<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                this.shape = size == 0 ? null : shape.clone();<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>                odata = this.data = data;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>        /**<a name="line.106"></a>
+<span class="sourceLineNo">107</span>         * Copy a dataset<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * @param dataset<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         */<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        StringDatasetBase(final StringDatasetBase dataset) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                copyToView(dataset, this, true, true);<a name="line.111"></a>
+<span class="sourceLineNo">112</span><a name="line.112"></a>
+<span class="sourceLineNo">113</span>                try {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                        if (dataset.stride == null) {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                                if (dataset.data != null) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                        odata = data = dataset.data.clone();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                                }<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                        } else {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                                offset = 0;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                stride = null;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                base = null;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                odata = data = createArray(size);<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>                                IndexIterator iter = dataset.getIterator();<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                for (int i = 0; iter.hasNext(); i++) {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                                        data[i] = dataset.data[iter.index];<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                                }<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                } catch (Throwable t) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        throw new IllegalArgumentException(t);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                }<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        }<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>        /**<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         * Copy and cast a dataset to this class type<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         * @param dataset<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         */<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        StringDatasetBase(final Dataset dataset) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                copyToView(dataset, this, true, false);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                offset = 0;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                stride = null;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                base = null;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                try {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        odata = data = createArray(size);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                } catch (Throwable t) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                        throw new IllegalArgumentException(t);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                }<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                IndexIterator iter = dataset.getIterator();<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                for (int i = 0; iter.hasNext(); i++) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        data[i] = dataset.getStringAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                }<a name="line.153"></a>
+<span class="sourceLineNo">154</span>        }<a name="line.154"></a>
+<span class="sourceLineNo">155</span><a name="line.155"></a>
+<span class="sourceLineNo">156</span>        @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        public boolean equals(Object obj) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                if (this == obj) {<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>                if (obj == null) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                        return false;<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>                if (!getClass().equals(obj.getClass())) {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                        if (getRank() == 0) { // for zero-rank datasets<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                                return obj.equals(getObjectAbs(offset));<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                        }<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                        return false;<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>                StringDatasetBase other = (StringDatasetBase) obj;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                if (size != other.size) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                        return false;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                }<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                if (!Arrays.equals(shape, other.shape)) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        return false;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                }<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                if (data == other.data &amp;&amp; stride == null &amp;&amp; other.stride == null) {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                        return true;<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>                IndexIterator iter = getIterator();<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                IndexIterator oiter = other.getIterator();<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                        if (!data[iter.index].equals(other.data[oiter.index])) { // OBJECT_UNEQUAL<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                                return false;<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>                return true;<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 int hashCode() {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                return super.hashCode();<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 StringDatasetBase clone() {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                return new StringDatasetBase(this);<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 dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.205"></a>
+<span class="sourceLineNo">206</span>         * sequences or arrays are padded with zeros.<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         *<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * @param obj<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * @return dataset with contents given by input<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         */<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        static StringDatasetBase createFromObject(final Object obj) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                StringDatasetBase result = new StringDatasetBase();<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>                if (obj != null) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                        result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                        result.size = ShapeUtils.calcSize(result.shape);<a name="line.216"></a>
+<span class="sourceLineNo">217</span><a name="line.217"></a>
+<span class="sourceLineNo">218</span>                        try {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                                result.odata = result.data = createArray(result.size);<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                        } catch (Throwable t) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(result.shape), t);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                                throw new IllegalArgumentException(t);<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>                        int[] pos = new int[result.shape.length];<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                        result.fillData(obj, 0, pos);<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>                return result;<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>         * @param shape<a name="line.233"></a>
+<span class="sourceLineNo">234</span>         * @return a dataset filled with ones<a name="line.234"></a>
+<span class="sourceLineNo">235</span>         */<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        static StringDatasetBase ones(final int... shape) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                return new StringDatasetBase(shape).fill(1);<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 StringDatasetBase fill(final Object obj) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                setDirty();<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                String dv = obj.toString(); // PRIM_TYPE // FROM_OBJECT<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                IndexIterator iter = getIterator();<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                while (iter.hasNext()) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        data[iter.index] = dv;<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 this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.253"></a>
+<span class="sourceLineNo">254</span>         * @return data buffer as linear array<a name="line.254"></a>
+<span class="sourceLineNo">255</span>         */<a name="line.255"></a>
+<span class="sourceLineNo">256</span>        public String[] getData() { // PRIM_TYPE<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                return data;<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>        protected int getBufferLength() {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                if (data == null)<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        return 0;<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                return data.length;<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 StringDatasetBase getView(boolean deepCopyMetadata) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                StringDatasetBase view = new StringDatasetBase();<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                view.setData();<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                return view;<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>         * 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.276"></a>
+<span class="sourceLineNo">277</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.277"></a>
+<span class="sourceLineNo">278</span>         *<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         * @param index<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         *            absolute index<a name="line.280"></a>
+<span class="sourceLineNo">281</span>         * @return value<a name="line.281"></a>
+<span class="sourceLineNo">282</span>         */<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        public String getAbs(final int index) { // PRIM_TYPE<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                return data[index];<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 boolean getElementBooleanAbs(final int index) {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                return false;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>        }<a name="line.290"></a>
+<span class="sourceLineNo">291</span><a name="line.291"></a>
+<span class="sourceLineNo">292</span>        @Override<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        public double getElementDoubleAbs(final int index) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                return 0;<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 long getElementLongAbs(final int index) {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                return 0;<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 Object getObjectAbs(final int index) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                return data[index];<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 String getStringAbs(final int index) {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                return stringFormat == null ?  data[index] : // FORMAT_STRING<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                        stringFormat.format(data[index]);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        }<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>        /**<a name="line.313"></a>
+<span class="sourceLineNo">314</span>         * Set a value at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.314"></a>
+<span class="sourceLineNo">315</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.315"></a>
+<span class="sourceLineNo">316</span>         *<a name="line.316"></a>
+<span class="sourceLineNo">317</span>         * @param index<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         *            absolute index<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * @param val<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         *            new value<a name="line.320"></a>
+<span class="sourceLineNo">321</span>         */<a name="line.321"></a>
+<span class="sourceLineNo">322</span>        public void setAbs(final int index, final String val) { // PRIM_TYPE<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                setDirty();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                data[index] = val;<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>        @Override<a name="line.327"></a>
+<span class="sourceLineNo">328</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                setDirty();<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                String[] dsrc = (String[]) src; // PRIM_TYPE<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                data[dindex] = dsrc[sindex];<a name="line.331"></a>
+<span class="sourceLineNo">332</span>        }<a name="line.332"></a>
+<span class="sourceLineNo">333</span><a name="line.333"></a>
+<span class="sourceLineNo">334</span>        @Override<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        public void setObjectAbs(final int index, final Object obj) {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                if (index &lt; 0 || index &gt; data.length) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                        throw new IndexOutOfBoundsException("Index given is outside dataset");<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>                setAbs(index, obj.toString()); // FROM_OBJECT<a name="line.340"></a>
+<span class="sourceLineNo">341</span>        }<a name="line.341"></a>
+<span class="sourceLineNo">342</span><a name="line.342"></a>
+<span class="sourceLineNo">343</span>        /**<a name="line.343"></a>
+<span class="sourceLineNo">344</span>         * @return item in first position<a name="line.344"></a>
+<span class="sourceLineNo">345</span>         * @since 2.0<a name="line.345"></a>
+<span class="sourceLineNo">346</span>         */<a name="line.346"></a>
+<span class="sourceLineNo">347</span>        public String get() { // PRIM_TYPE<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                return data[getFirst1DIndex()];<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>         * @param i<a name="line.352"></a>
+<span class="sourceLineNo">353</span>         * @return item in given position<a name="line.353"></a>
+<span class="sourceLineNo">354</span>         */<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        public String get(final int i) { // PRIM_TYPE<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                return data[get1DIndex(i)];<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        }<a name="line.357"></a>
+<span class="sourceLineNo">358</span><a name="line.358"></a>
+<span class="sourceLineNo">359</span>        /**<a name="line.359"></a>
+<span class="sourceLineNo">360</span>         * @param i<a name="line.360"></a>
+<span class="sourceLineNo">361</span>         * @param j<a name="line.361"></a>
+<span class="sourceLineNo">362</span>         * @return item in given position<a name="line.362"></a>
+<span class="sourceLineNo">363</span>         */<a name="line.363"></a>
+<span class="sourceLineNo">364</span>        public String get(final int i, final int j) { // PRIM_TYPE<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                return data[get1DIndex(i, j)];<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 pos<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 String get(final int... pos) { // PRIM_TYPE<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                return data[get1DIndex(pos)];<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 Object getObject() {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                return get(); // CLASS_TYPE<a name="line.378"></a>
+<span class="sourceLineNo">379</span>        }<a name="line.379"></a>
+<span class="sourceLineNo">380</span><a name="line.380"></a>
+<span class="sourceLineNo">381</span>        @Override<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        public Object getObject(final int i) {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                return get(i); // CLASS_TYPE<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        }<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span>        @Override<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        public Object getObject(final int i, final int j) {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                return get(i, j); // CLASS_TYPE<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>        @Override<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        public Object getObject(final int... pos) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                return get(pos); // CLASS_TYPE<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>        @Override<a name="line.396"></a>
+<span class="sourceLineNo">397</span>        public String getString() {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                return getStringAbs(getFirst1DIndex());<a name="line.398"></a>
+<span class="sourceLineNo">399</span>        }<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span>        @Override<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        public String getString(final int i) {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                return getStringAbs(get1DIndex(i));<a name="line.403"></a>
+<span class="sourceLineNo">404</span>        }<a name="line.404"></a>
+<span class="sourceLineNo">405</span><a name="line.405"></a>
+<span class="sourceLineNo">406</span>        @Override<a name="line.406"></a>
+<span class="sourceLineNo">407</span>        public String getString(final int i, final int j) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                return getStringAbs(get1DIndex(i, j));<a name="line.408"></a>
+<span class="sourceLineNo">409</span>        }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>        @Override<a name="line.411"></a>
+<span class="sourceLineNo">412</span>        public String getString(final int... pos) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                return getStringAbs(get1DIndex(pos));<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 getDouble() {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                return 0;<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 double getDouble(final int i) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                return 0;<a name="line.423"></a>
+<span class="sourceLineNo">424</span>        }<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>        @Override<a name="line.426"></a>
+<span class="sourceLineNo">427</span>        public double getDouble(final int i, final int j) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                return 0;<a name="line.428"></a>
+<span class="sourceLineNo">429</span>        }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>        @Override<a name="line.431"></a>
+<span class="sourceLineNo">432</span>        public double getDouble(final int... pos) {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                return 0;<a name="line.433"></a>
+<span class="sourceLineNo">434</span>        }<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span>        @Override<a name="line.436"></a>
+<span class="sourceLineNo">437</span>        public float getFloat() {<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                return 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>        @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>        public float getFloat(final int i) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                return 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 float getFloat(final int i, final int j) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                return 0;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>        }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>        @Override<a name="line.451"></a>
+<span class="sourceLineNo">452</span>        public float getFloat(final int... pos) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                return 0;<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 long getLong() {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                return 0;<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 long getLong(final int i) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                return 0;<a name="line.463"></a>
+<span class="sourceLineNo">464</span>        }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>        @Override<a name="line.466"></a>
+<span class="sourceLineNo">467</span>        public long getLong(final int i, final int j) {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                return 0;<a name="line.468"></a>
+<span class="sourceLineNo">469</span>        }<a name="line.469"></a>
+<span class="sourceLineNo">470</span><a name="line.470"></a>
+<span class="sourceLineNo">471</span>        @Override<a name="line.471"></a>
+<span class="sourceLineNo">472</span>        public long getLong(final int... pos) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                return 0;<a name="line.473"></a>
+<span class="sourceLineNo">474</span>        }<a name="line.474"></a>
+<span class="sourceLineNo">475</span><a name="line.475"></a>
+<span class="sourceLineNo">476</span>        @Override<a name="line.476"></a>
+<span class="sourceLineNo">477</span>        public int getInt() {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                return 0;<a name="line.478"></a>
+<span class="sourceLineNo">479</span>        }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span>        @Override<a name="line.481"></a>
+<span class="sourceLineNo">482</span>        public int getInt(final int i) {<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                return 0;<a name="line.483"></a>
+<span class="sourceLineNo">484</span>        }<a name="line.484"></a>
+<span class="sourceLineNo">485</span><a name="line.485"></a>
+<span class="sourceLineNo">486</span>        @Override<a name="line.486"></a>
+<span class="sourceLineNo">487</span>        public int getInt(final int i, final int j) {<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                return 0;<a name="line.488"></a>
+<span class="sourceLineNo">489</span>        }<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span>        @Override<a name="line.491"></a>
+<span class="sourceLineNo">492</span>        public int getInt(final int... pos) {<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                return 0;<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 short getShort() {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                return 0;<a name="line.498"></a>
+<span class="sourceLineNo">499</span>        }<a name="line.499"></a>
+<span class="sourceLineNo">500</span><a name="line.500"></a>
+<span class="sourceLineNo">501</span>        @Override<a name="line.501"></a>
+<span class="sourceLineNo">502</span>        public short getShort(final int i) {<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                return 0;<a name="line.503"></a>
+<span class="sourceLineNo">504</span>        }<a name="line.504"></a>
+<span class="sourceLineNo">505</span><a name="line.505"></a>
+<span class="sourceLineNo">506</span>        @Override<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        public short getShort(final int i, final int j) {<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                return 0;<a name="line.508"></a>
+<span class="sourceLineNo">509</span>        }<a name="line.509"></a>
+<span class="sourceLineNo">510</span><a name="line.510"></a>
+<span class="sourceLineNo">511</span>        @Override<a name="line.511"></a>
+<span class="sourceLineNo">512</span>        public short getShort(final int... pos) {<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                return 0;<a name="line.513"></a>
+<span class="sourceLineNo">514</span>        }<a name="line.514"></a>
+<span class="sourceLineNo">515</span><a name="line.515"></a>
+<span class="sourceLineNo">516</span>        @Override<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        public byte getByte() {<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                return 0;<a name="line.518"></a>
+<span class="sourceLineNo">519</span>        }<a name="line.519"></a>
+<span class="sourceLineNo">520</span><a name="line.520"></a>
+<span class="sourceLineNo">521</span>        @Override<a name="line.521"></a>
+<span class="sourceLineNo">522</span>        public byte getByte(final int i) {<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                return 0;<a name="line.523"></a>
+<span class="sourceLineNo">524</span>        }<a name="line.524"></a>
+<span class="sourceLineNo">525</span><a name="line.525"></a>
+<span class="sourceLineNo">526</span>        @Override<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        public byte getByte(final int i, final int j) {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                return 0;<a name="line.528"></a>
+<span class="sourceLineNo">529</span>        }<a name="line.529"></a>
+<span class="sourceLineNo">530</span><a name="line.530"></a>
+<span class="sourceLineNo">531</span>        @Override<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        public byte getByte(final int... pos) {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                return 0;<a name="line.533"></a>
+<span class="sourceLineNo">534</span>        }<a name="line.534"></a>
+<span class="sourceLineNo">535</span><a name="line.535"></a>
+<span class="sourceLineNo">536</span>        @Override<a name="line.536"></a>
+<span class="sourceLineNo">537</span>        public boolean getBoolean() {<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                return false;<a name="line.538"></a>
+<span class="sourceLineNo">539</span>        }<a name="line.539"></a>
+<span class="sourceLineNo">540</span><a name="line.540"></a>
+<span class="sourceLineNo">541</span>        @Override<a name="line.541"></a>
+<span class="sourceLineNo">542</span>        public boolean getBoolean(final int i) {<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                return false;<a name="line.543"></a>
+<span class="sourceLineNo">544</span>        }<a name="line.544"></a>
+<span class="sourceLineNo">545</span><a name="line.545"></a>
+<span class="sourceLineNo">546</span>        @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        public boolean getBoolean(final int i, final int j) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                return false;<a name="line.548"></a>
+<span class="sourceLineNo">549</span>        }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>        @Override<a name="line.551"></a>
+<span class="sourceLineNo">552</span>        public boolean getBoolean(final int... pos) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                return false;<a name="line.553"></a>
+<span class="sourceLineNo">554</span>        }<a name="line.554"></a>
+<span class="sourceLineNo">555</span><a name="line.555"></a>
+<span class="sourceLineNo">556</span>        /**<a name="line.556"></a>
+<span class="sourceLineNo">557</span>         * Sets the value at first point to the passed value. The dataset must not be null<a name="line.557"></a>
+<span class="sourceLineNo">558</span>         *<a name="line.558"></a>
+<span class="sourceLineNo">559</span>         * @param value<a name="line.559"></a>
+<span class="sourceLineNo">560</span>         * @since 2.0<a name="line.560"></a>
+<span class="sourceLineNo">561</span>         */<a name="line.561"></a>
+<span class="sourceLineNo">562</span>        public void setItem(final String value) { // PRIM_TYPE<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                setAbs(getFirst1DIndex(), value);<a name="line.563"></a>
+<span class="sourceLineNo">564</span>        }<a name="line.564"></a>
+<span class="sourceLineNo">565</span><a name="line.565"></a>
+<span class="sourceLineNo">566</span>        /**<a name="line.566"></a>
+<span class="sourceLineNo">567</span>         * Sets the value at a particular point to the passed value. The dataset must be 1D<a name="line.567"></a>
+<span class="sourceLineNo">568</span>         *<a name="line.568"></a>
+<span class="sourceLineNo">569</span>         * @param value<a name="line.569"></a>
+<span class="sourceLineNo">570</span>         * @param i<a name="line.570"></a>
+<span class="sourceLineNo">571</span>         */<a name="line.571"></a>
+<span class="sourceLineNo">572</span>        public void setItem(final String value, final int i) { // PRIM_TYPE<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                setAbs(get1DIndex(i), value);<a name="line.573"></a>
+<span class="sourceLineNo">574</span>        }<a name="line.574"></a>
+<span class="sourceLineNo">575</span><a name="line.575"></a>
+<span class="sourceLineNo">576</span>        /**<a name="line.576"></a>
+<span class="sourceLineNo">577</span>         * Sets the value at a particular point to the passed value. The dataset must be 2D<a name="line.577"></a>
+<span class="sourceLineNo">578</span>         *<a name="line.578"></a>
+<span class="sourceLineNo">579</span>         * @param value<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * @param i<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         * @param j<a name="line.581"></a>
+<span class="sourceLineNo">582</span>         */<a name="line.582"></a>
+<span class="sourceLineNo">583</span>        public void setItem(final String value, final int i, final int j) { // PRIM_TYPE<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                setAbs(get1DIndex(i, j), value);<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>         * Sets the value at a particular point to the passed value<a name="line.588"></a>
+<span class="sourceLineNo">589</span>         *<a name="line.589"></a>
+<span class="sourceLineNo">590</span>         * @param value<a name="line.590"></a>
+<span class="sourceLineNo">591</span>         * @param pos<a name="line.591"></a>
+<span class="sourceLineNo">592</span>         */<a name="line.592"></a>
+<span class="sourceLineNo">593</span>        public void setItem(final String value, final int... pos) { // PRIM_TYPE<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                setAbs(get1DIndex(pos), value);<a name="line.594"></a>
+<span class="sourceLineNo">595</span>        }<a name="line.595"></a>
+<span class="sourceLineNo">596</span><a name="line.596"></a>
+<span class="sourceLineNo">597</span>        @Override<a name="line.597"></a>
+<span class="sourceLineNo">598</span>        public void set(final Object obj) {<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                setItem(obj.toString()); // FROM_OBJECT<a name="line.599"></a>
+<span class="sourceLineNo">600</span>        }<a name="line.600"></a>
+<span class="sourceLineNo">601</span><a name="line.601"></a>
+<span class="sourceLineNo">602</span>        @Override<a name="line.602"></a>
+<span class="sourceLineNo">603</span>        public void set(final Object obj, final int i) {<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                setItem(obj.toString(), i); // FROM_OBJECT<a name="line.604"></a>
+<span class="sourceLineNo">605</span>        }<a name="line.605"></a>
+<span class="sourceLineNo">606</span><a name="line.606"></a>
+<span class="sourceLineNo">607</span>        @Override<a name="line.607"></a>
+<span class="sourceLineNo">608</span>        public void set(final Object obj, final int i, final int j) {<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                setItem(obj.toString(), i, j); // FROM_OBJECT<a name="line.609"></a>
+<span class="sourceLineNo">610</span>        }<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>        @Override<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        public void set(final Object obj, int... pos) {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        pos = new int[shape.length];<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>                setItem(obj.toString(), pos); // FROM_OBJECT<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>        @Override<a name="line.621"></a>
+<span class="sourceLineNo">622</span>        public void resize(int... newShape) {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                setDirty();<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                final IndexIterator iter = getIterator();<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                final int nsize = ShapeUtils.calcSize(newShape);<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                final String[] ndata; // PRIM_TYPE<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                try {<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                        ndata = createArray(nsize);<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                } catch (Throwable t) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                        throw new IllegalArgumentException(t);<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                }<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                for (int i = 0; iter.hasNext() &amp;&amp; i &lt; nsize; i++) {<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                        ndata[i] = data[iter.index];<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                }<a name="line.635"></a>
+<span class="sourceLineNo">636</span><a name="line.636"></a>
+<span class="sourceLineNo">637</span>                odata = data = ndata;<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                size = nsize;<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                shape = newShape;<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                stride = null;<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                offset = 0;<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                base = null;<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 StringDatasetBase sort(Integer axis) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                setDirty();<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                if (axis == null) {<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                        if (stride == null) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                                Arrays.sort(data);<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                        } else {<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                                StringDatasetBase ads = clone().sort(null);<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                                setSlicedView(getView(false), ads);<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                        }<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                } else {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                        axis = checkAxis(axis);<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                        <a name="line.657"></a>
+<span class="sourceLineNo">658</span>                        StringDatasetBase ads = new StringDatasetBase(shape[axis]);<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                        PositionIterator pi = getPositionIterator(axis);<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        int[] pos = pi.getPos();<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                        boolean[] hit = pi.getOmit();<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                        while (pi.hasNext()) {<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                                copyItemsFromAxes(pos, hit, ads);<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                                Arrays.sort(ads.data);<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                                setItemsOnAxes(pos, hit, ads.data);<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>                return this;<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                // throw new UnsupportedOperationException("Cannot sort dataset"); // BOOLEAN_USE<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 getUniqueItems() {<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                Set&lt;String&gt; set = new TreeSet&lt;String&gt;(); // CLASS_TYPE<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                IndexIterator it = getIterator();<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                while (it.hasNext()) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                        set.add(data[it.index]);<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>                StringDataset u = new StringDataset(set.size()); // CLASS_TYPE<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                int i = 0;<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                String[] udata = u.getData(); // PRIM_TYPE<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                for (String v : set) { // CLASS_TYPE<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                        udata[i++] = v;<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                }<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                return u;<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>        @Override<a name="line.689"></a>
+<span class="sourceLineNo">690</span>        public StringDatasetBase getSlice(final SliceIterator siter) {<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                StringDatasetBase result = new StringDatasetBase(siter.getShape());<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                String[] rdata = result.data; // PRIM_TYPE<a name="line.692"></a>
+<span class="sourceLineNo">693</span><a name="line.693"></a>
+<span class="sourceLineNo">694</span>                for (int i = 0; siter.hasNext(); i++)<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                        rdata[i] = data[siter.index];<a name="line.695"></a>
+<span class="sourceLineNo">696</span><a name="line.696"></a>
+<span class="sourceLineNo">697</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                return result;<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>        @Override<a name="line.701"></a>
+<span class="sourceLineNo">702</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                IndexIterator riter = result.getIterator();<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                result.setDirty();<a name="line.704"></a>
+<span class="sourceLineNo">705</span><a name="line.705"></a>
+<span class="sourceLineNo">706</span>                String[] rdata = ((StringDatasetBase) result).data; // PRIM_TYPE<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                        rdata[riter.index] = data[iter.index];<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                }<a name="line.710"></a>
+<span class="sourceLineNo">711</span>        }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>        @Override<a name="line.713"></a>
+<span class="sourceLineNo">714</span>        public StringDatasetBase setByBoolean(final Object obj, Dataset selection) {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                setDirty();<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                if (obj instanceof Dataset) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                        final Dataset ds = (Dataset) obj;<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                        if (length != ds.getSize()) {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                                throw new IllegalArgumentException(<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.725"></a>
+<span class="sourceLineNo">726</span><a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        while (biter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                                data[biter.index] = ds.getStringAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                        }<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                } else {<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                        final String dv = obj.toString(); // PRIM_TYPE // FROM_OBJECT<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.732"></a>
+<span class="sourceLineNo">733</span><a name="line.733"></a>
+<span class="sourceLineNo">734</span>                        while (biter.hasNext()) {<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                                data[biter.index] = dv;<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                        }<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                }<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                return this;<a name="line.738"></a>
+<span class="sourceLineNo">739</span>        }<a name="line.739"></a>
+<span class="sourceLineNo">740</span><a name="line.740"></a>
+<span class="sourceLineNo">741</span>        @Override<a name="line.741"></a>
+<span class="sourceLineNo">742</span>        public StringDatasetBase setBy1DIndex(final Object obj, final Dataset index) {<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                setDirty();<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                if (obj instanceof Dataset) {<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                        final Dataset ds = (Dataset) obj;<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        if (index.getSize() != ds.getSize()) {<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                                throw new IllegalArgumentException(<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                                                "Number of items in index dataset does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                        final IntegerIterator iter = new IntegerIterator(index, size);<a name="line.752"></a>
+<span class="sourceLineNo">753</span><a name="line.753"></a>
+<span class="sourceLineNo">754</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                                data[iter.index] = ds.getStringAbs(oiter.index); // GET_ELEMENT_WITH_CAST<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>                        final String dv = obj.toString(); // PRIM_TYPE // FROM_OBJECT<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                        IntegerIterator iter = new IntegerIterator(index, size);<a name="line.759"></a>
+<span class="sourceLineNo">760</span><a name="line.760"></a>
+<span class="sourceLineNo">761</span>                        while (iter.hasNext()) {<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                                data[iter.index] = dv;<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>                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 StringDatasetBase setByIndexes(final Object obj, final Object... indexes) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                setDirty();<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                final int[] pos = iter.getPos();<a name="line.772"></a>
+<span class="sourceLineNo">773</span><a name="line.773"></a>
+<span class="sourceLineNo">774</span>                if (obj instanceof Dataset) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        final Dataset ds = (Dataset) obj;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                                throw new IllegalArgumentException(<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                                                "Number of items in index datasets does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                                setItem(ds.getStringAbs(oiter.index), pos); // GET_ELEMENT_WITH_CAST<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        }<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                } else {<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                        final String dv = obj.toString(); // PRIM_TYPE // FROM_OBJECT<a name="line.787"></a>
+<span class="sourceLineNo">788</span><a name="line.788"></a>
+<span class="sourceLineNo">789</span>                        while (iter.hasNext()) {<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                setItem(dv, pos);<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>                return this;<a name="line.793"></a>
+<span class="sourceLineNo">794</span>        }<a name="line.794"></a>
+<span class="sourceLineNo">795</span><a name="line.795"></a>
+<span class="sourceLineNo">796</span>        @Override<a name="line.796"></a>
+<span class="sourceLineNo">797</span>        StringDatasetBase setSlicedView(Dataset view, Dataset d) {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                setDirty();<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.799"></a>
+<span class="sourceLineNo">800</span><a name="line.800"></a>
+<span class="sourceLineNo">801</span>                while (it.hasNext()) {<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        data[it.aIndex] = d.getStringAbs(it.bIndex);<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                }<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                return this;<a name="line.804"></a>
+<span class="sourceLineNo">805</span>        }<a name="line.805"></a>
+<span class="sourceLineNo">806</span><a name="line.806"></a>
+<span class="sourceLineNo">807</span>        @Override<a name="line.807"></a>
+<span class="sourceLineNo">808</span>        public StringDatasetBase setSlice(final Object obj, final IndexIterator siter) {<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                setDirty();<a name="line.809"></a>
+<span class="sourceLineNo">810</span><a name="line.810"></a>
+<span class="sourceLineNo">811</span>                if (obj instanceof IDataset) {<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                        final IDataset ds = (IDataset) obj;<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                        final int[] oshape = ds.getShape();<a name="line.813"></a>
+<span class="sourceLineNo">814</span><a name="line.814"></a>
+<span class="sourceLineNo">815</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                                throw new IllegalArgumentException(String.format(<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                                                Arrays.toString(siter.getShape())));<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>                        if (ds instanceof Dataset) {<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                                final Dataset ads = (Dataset) ds;<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                                final IndexIterator oiter = ads.getIterator();<a name="line.823"></a>
+<span class="sourceLineNo">824</span><a name="line.824"></a>
+<span class="sourceLineNo">825</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                                        data[siter.index] = ads.getStringAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                        } else {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                                final int[] pos = oiter.getPos();<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                        data[siter.index] = ds.getString(pos); // PRIM_TYPE<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>                        try {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                String v = obj.toString(); // PRIM_TYPE // FROM_OBJECT<a name="line.836"></a>
+<span class="sourceLineNo">837</span><a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                while (siter.hasNext())<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                        data[siter.index] = v;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                        } catch (IllegalArgumentException e) {<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<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 this;<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>        @Override<a name="line.847"></a>
+<span class="sourceLineNo">848</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                String[] ddata = (String[]) dest.getBuffer(); // PRIM_TYPE<a name="line.849"></a>
+<span class="sourceLineNo">850</span><a name="line.850"></a>
+<span class="sourceLineNo">851</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.852"></a>
+<span class="sourceLineNo">853</span><a name="line.853"></a>
+<span class="sourceLineNo">854</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.854"></a>
+<span class="sourceLineNo">855</span><a name="line.855"></a>
+<span class="sourceLineNo">856</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<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>                dest.setDirty();<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                        ddata[diter.index] = data[siter.index];<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                }<a name="line.863"></a>
+<span class="sourceLineNo">864</span>        }<a name="line.864"></a>
+<span class="sourceLineNo">865</span><a name="line.865"></a>
+<span class="sourceLineNo">866</span>        @Override<a name="line.866"></a>
+<span class="sourceLineNo">867</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                setDirty();<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                String[] sdata = (String[]) src; // PRIM_TYPE<a name="line.869"></a>
+<span class="sourceLineNo">870</span><a name="line.870"></a>
+<span class="sourceLineNo">871</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.871"></a>
+<span class="sourceLineNo">872</span><a name="line.872"></a>
+<span class="sourceLineNo">873</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                        throw new IllegalArgumentException("destination array is not large enough");<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>                for (int i = 0; siter.hasNext(); i++) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                        data[siter.index] = sdata[i];<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><a name="line.881"></a>
+<span class="sourceLineNo">882</span>        private List&lt;int[]&gt; findPositions(final String value) { // PRIM_TYPE<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                IndexIterator iter = getIterator(true);<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                List&lt;int[]&gt; posns = new ArrayList&lt;int[]&gt;();<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                int[] pos = iter.getPos();<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>                        while (iter.hasNext()) {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                                if (data[iter.index] == value) {<a name="line.889"></a>
+<span class="sourceLineNo">890</span>                                        posns.add(pos.clone());<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>                }<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                return posns;<a name="line.894"></a>
+<span class="sourceLineNo">895</span>        }<a name="line.895"></a>
+<span class="sourceLineNo">896</span><a name="line.896"></a>
+<span class="sourceLineNo">897</span>        @Override<a name="line.897"></a>
+<span class="sourceLineNo">898</span>        public int[] maxPos(boolean... ignoreInvalids) {<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                List&lt;int[]&gt; max = md.getMaximumPositions(ignoreInvalids);<a name="line.901"></a>
+<span class="sourceLineNo">902</span><a name="line.902"></a>
+<span class="sourceLineNo">903</span>                if (max == null) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                        max = findPositions(md.getMaximum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.905"></a>
+<span class="sourceLineNo">906</span><a name="line.906"></a>
+<span class="sourceLineNo">907</span>                        md.setMaximumPositions(max);<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 max.get(0); // first maximum<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[] minPos(boolean... ignoreInvalids) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                List&lt;int[]&gt; min = md.getMinimumPositions(ignoreInvalids);<a name="line.917"></a>
+<span class="sourceLineNo">918</span><a name="line.918"></a>
+<span class="sourceLineNo">919</span>                if (min == null) {<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                        min = findPositions(md.getMinimum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.921"></a>
+<span class="sourceLineNo">922</span><a name="line.922"></a>
+<span class="sourceLineNo">923</span>                        md.setMinimumPositions(min);<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 min.get(0); // first minimum<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>        @Override<a name="line.929"></a>
+<span class="sourceLineNo">930</span>        public boolean containsNans() {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                return false;<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 boolean containsInfs() {<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                return false;<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>        @Override<a name="line.939"></a>
+<span class="sourceLineNo">940</span>        public boolean containsInvalidNumbers() {<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                return false;<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>        @Override<a name="line.944"></a>
+<span class="sourceLineNo">945</span>        public StringDatasetBase iadd(final Object b) {<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                return this;<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 StringDatasetBase isubtract(final Object b) {<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 StringDatasetBase imultiply(final Object b) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                return this;<a name="line.956"></a>
+<span class="sourceLineNo">957</span>        }<a name="line.957"></a>
+<span class="sourceLineNo">958</span><a name="line.958"></a>
+<span class="sourceLineNo">959</span>        @Override<a name="line.959"></a>
+<span class="sourceLineNo">960</span>        public StringDatasetBase idivide(final Object b) {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                return this;<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>        @Override<a name="line.964"></a>
+<span class="sourceLineNo">965</span>        public StringDatasetBase ifloor() {<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                return this;<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 StringDatasetBase iremainder(final Object b) {<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                return this;<a name="line.971"></a>
+<span class="sourceLineNo">972</span>        }<a name="line.972"></a>
+<span class="sourceLineNo">973</span><a name="line.973"></a>
+<span class="sourceLineNo">974</span>        @Override<a name="line.974"></a>
+<span class="sourceLineNo">975</span>        public StringDatasetBase ipower(final Object b) {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                return this;<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>        @Override<a name="line.979"></a>
+<span class="sourceLineNo">980</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                double sum = 0;<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                return sum;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/UnaryOperation.Stub.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/UnaryOperation.Stub.html
new file mode 100644
index 0000000..f477f16
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/UnaryOperation.Stub.html
@@ -0,0 +1,163 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>/**<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * Interface to represent a unary operation for implementations over different output domains<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * @since 2.0<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>public interface UnaryOperation extends IOperation {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        /**<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * @param a<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * @return op(a)<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         */<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        boolean booleanOperate(long a);<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>        /**<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * @param a<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         * @return op(a)<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         */<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        long longOperate(long a);<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>        /**<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * @param a<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * @return op(a)a<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         */<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        double doubleOperate(double a);<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>        /**<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * @param out holds op(ra, ia)<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * @param ra<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @param ia<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         */<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        void complexOperate(double[] out, double ra, double ia);<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>        /**<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         * @param a<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @return string to represent output<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        String toString(String a);<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span>        /**<a name="line.52"></a>
+<span class="sourceLineNo">053</span>         * Stub class where only two methods need to be overridden:<a name="line.53"></a>
+<span class="sourceLineNo">054</span>         *  {@link #complexOperate(double[], double, double)},<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         *  {@link #toString(String)}<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        public static class Stub implements UnaryOperation {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                double[] z = new double[2];<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>                @Override<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                public double doubleOperate(double a) {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                        complexOperate(z, a, 0);<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                        return z[0];<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                }<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>                @Override<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                public boolean booleanOperate(long a) {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        return doubleOperate(a) != 0;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                }<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>                @Override<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                public long longOperate(long a) {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        return DTypeUtils.toLong(doubleOperate(a));<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                }<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>                /**<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                 * Override this<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                 */<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                @Override<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                public void complexOperate(double[] out, double ra, double ia) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                }<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>                /**<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                 * Override this<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                 */<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                @Override<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                public String toString(String a) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                        return null;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                }<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        }<a name="line.90"></a>
+<span class="sourceLineNo">091</span>}<a name="line.91"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/dataset/UnaryOperation.html b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/UnaryOperation.html
new file mode 100644
index 0000000..f477f16
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/dataset/UnaryOperation.html
@@ -0,0 +1,163 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>/**<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * Interface to represent a unary operation for implementations over different output domains<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * @since 2.0<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>public interface UnaryOperation extends IOperation {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        /**<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * @param a<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * @return op(a)<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         */<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        boolean booleanOperate(long a);<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>        /**<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * @param a<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         * @return op(a)<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         */<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        long longOperate(long a);<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>        /**<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * @param a<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * @return op(a)a<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         */<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        double doubleOperate(double a);<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>        /**<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * @param out holds op(ra, ia)<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * @param ra<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @param ia<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         */<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        void complexOperate(double[] out, double ra, double ia);<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>        /**<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         * @param a<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @return string to represent output<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        String toString(String a);<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span>        /**<a name="line.52"></a>
+<span class="sourceLineNo">053</span>         * Stub class where only two methods need to be overridden:<a name="line.53"></a>
+<span class="sourceLineNo">054</span>         *  {@link #complexOperate(double[], double, double)},<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         *  {@link #toString(String)}<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        public static class Stub implements UnaryOperation {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                double[] z = new double[2];<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>                @Override<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                public double doubleOperate(double a) {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                        complexOperate(z, a, 0);<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                        return z[0];<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                }<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>                @Override<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                public boolean booleanOperate(long a) {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        return doubleOperate(a) != 0;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                }<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>                @Override<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                public long longOperate(long a) {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        return DTypeUtils.toLong(doubleOperate(a));<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                }<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>                /**<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                 * Override this<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                 */<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                @Override<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                public void complexOperate(double[] out, double ra, double ia) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                }<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>                /**<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                 * Override this<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                 */<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                @Override<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                public String toString(String a) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                        return null;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                }<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        }<a name="line.90"></a>
+<span class="sourceLineNo">091</span>}<a name="line.91"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/io/IDataAnalysisObject.html b/apidocs/2.3.0/src-html/org/eclipse/january/io/IDataAnalysisObject.html
new file mode 100644
index 0000000..0e2801c
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/io/ILazyAsyncSaver.html b/apidocs/2.3.0/src-html/org/eclipse/january/io/ILazyAsyncSaver.html
new file mode 100644
index 0000000..53e46fe
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/io/ILazyDynamicLoader.html b/apidocs/2.3.0/src-html/org/eclipse/january/io/ILazyDynamicLoader.html
new file mode 100644
index 0000000..950c6c2
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/io/ILazyLoader.html b/apidocs/2.3.0/src-html/org/eclipse/january/io/ILazyLoader.html
new file mode 100644
index 0000000..c8e137b
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/io/ILazySaver.html b/apidocs/2.3.0/src-html/org/eclipse/january/io/ILazySaver.html
new file mode 100644
index 0000000..61a2895
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/io/IMetaLoader.html b/apidocs/2.3.0/src-html/org/eclipse/january/io/IMetaLoader.html
new file mode 100644
index 0000000..607734e
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/metadata/ARPESMetadata.html b/apidocs/2.3.0/src-html/org/eclipse/january/metadata/ARPESMetadata.html
new file mode 100644
index 0000000..4eb9313
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/metadata/AxesMetadata.html b/apidocs/2.3.0/src-html/org/eclipse/january/metadata/AxesMetadata.html
new file mode 100644
index 0000000..6dbef44
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/metadata/AxesMetadata.html
@@ -0,0 +1,147 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.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 axisDim, ILazyDataset axisData);<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>         * Add axis data to given dimension. This dataset must be one dimensional or match rank<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * with the associating dataset<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         * @param primaryAxisDim dimension (n.b. this is zero-based)<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         * @param axisData dataset for axis<a name="line.64"></a>
+<span class="sourceLineNo">065</span>         * @param dimMapping indicates where each axis dimension maps to in the dataset dimensions  <a name="line.65"></a>
+<span class="sourceLineNo">066</span>         */<a name="line.66"></a>
+<span class="sourceLineNo">067</span>        public void addAxis(int primaryAxisDim, ILazyDataset axisData, int... dimMapping);<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>         * Refresh with given shape<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         * @param shape<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         * @return new shape<a name="line.72"></a>
+<span class="sourceLineNo">073</span>         */<a name="line.73"></a>
+<span class="sourceLineNo">074</span>        int[] refresh(int[] shape);<a name="line.74"></a>
+<span class="sourceLineNo">075</span>}<a name="line.75"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/metadata/DimensionMetadata.html b/apidocs/2.3.0/src-html/org/eclipse/january/metadata/DimensionMetadata.html
new file mode 100644
index 0000000..eab90e7
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/metadata/Dirtiable.html b/apidocs/2.3.0/src-html/org/eclipse/january/metadata/Dirtiable.html
new file mode 100644
index 0000000..c6a9779
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/metadata/DynamicConnectionInfo.html b/apidocs/2.3.0/src-html/org/eclipse/january/metadata/DynamicConnectionInfo.html
new file mode 100644
index 0000000..e8e4305
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/metadata/DynamicMetadataUtils.html b/apidocs/2.3.0/src-html/org/eclipse/january/metadata/DynamicMetadataUtils.html
new file mode 100644
index 0000000..ecbed93
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/metadata/ErrorMetadata.html b/apidocs/2.3.0/src-html/org/eclipse/january/metadata/ErrorMetadata.html
new file mode 100644
index 0000000..d4d8073
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/metadata/ErrorMetadata.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.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>         * @param error<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @since 2.2<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public void initialize(ILazyDataset error);<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 error dataset<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * @return error dataset<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         */<a name="line.33"></a>
+<span class="sourceLineNo">034</span>        public ILazyDataset getError();<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>         * Set the error<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         * @param error<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         */<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        public void setError(ILazyDataset error);<a name="line.40"></a>
+<span class="sourceLineNo">041</span>}<a name="line.41"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/metadata/IExtendedMetadata.html b/apidocs/2.3.0/src-html/org/eclipse/january/metadata/IExtendedMetadata.html
new file mode 100644
index 0000000..c5a80e7
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/metadata/IMetadata.html b/apidocs/2.3.0/src-html/org/eclipse/january/metadata/IMetadata.html
new file mode 100644
index 0000000..6335389
--- /dev/null
+++ b/apidocs/2.3.0/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 name, 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; metadata);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>}<a name="line.119"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/metadata/MaskMetadata.html b/apidocs/2.3.0/src-html/org/eclipse/january/metadata/MaskMetadata.html
new file mode 100644
index 0000000..1abf8a0
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/metadata/Metadata.html b/apidocs/2.3.0/src-html/org/eclipse/january/metadata/Metadata.html
new file mode 100644
index 0000000..3d001a5
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/metadata/Metadata.html
@@ -0,0 +1,262 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.metadata;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.io.ByteArrayInputStream;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.io.ByteArrayOutputStream;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.io.ObjectInputStream;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.io.ObjectOutputStream;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.io.Serializable;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.Collection;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.Collections;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import java.util.HashMap;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import java.util.LinkedHashMap;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import java.util.Map;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.util.Map.Entry;<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.eclipse.january.MetadataException;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.eclipse.january.dataset.ShapeUtils;<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span>/**<a name="line.31"></a>
+<span class="sourceLineNo">032</span> * Basic implementation of metadata<a name="line.32"></a>
+<span class="sourceLineNo">033</span> */<a name="line.33"></a>
+<span class="sourceLineNo">034</span>public class Metadata implements IMetadata {<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        private static final long serialVersionUID = IMetadata.serialVersionUID;<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>        private Map&lt;String, ? extends Serializable&gt; metadata;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        // NOTE shapes is LinkedHashMap here because the names collection<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        // maintained order. Now that we do not need this collection but if we<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        // do not keep the shapes in a LinkedHashMap, we lose order.<a name="line.40"></a>
+<span class="sourceLineNo">041</span>        private Map&lt;String,int[]&gt; shapes = new LinkedHashMap&lt;String,int[]&gt;(7);<a name="line.41"></a>
+<span class="sourceLineNo">042</span>        private Collection&lt;Serializable&gt; userObjects;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>        private String filePath;<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>        public Metadata() {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        }<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>        public Metadata(Map&lt;String, ? extends Serializable&gt; metadata) {<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                initialize(metadata);<a name="line.50"></a>
+<span class="sourceLineNo">051</span>        }<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>        @Override<a name="line.53"></a>
+<span class="sourceLineNo">054</span>        public void initialize(Map&lt;String, ? extends Serializable&gt; metadata) {<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                this.metadata = metadata;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        }<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>        @Override<a name="line.58"></a>
+<span class="sourceLineNo">059</span>        public void addNames(Collection&lt;String&gt; names) {<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                if (names != null) {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                        for (String n : names) {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                                shapes.put(n, null);<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                        }<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                }<a name="line.64"></a>
+<span class="sourceLineNo">065</span>        }<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>        /**<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         * Set metadata map<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         * @param metadata<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         */<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        @Override<a name="line.71"></a>
+<span class="sourceLineNo">072</span>        public void setMetadata(Map&lt;String, ? extends Serializable&gt; metadata) {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                this.metadata = metadata;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>        }<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>        /**<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         * Internal use only<a name="line.77"></a>
+<span class="sourceLineNo">078</span>         * @return metadata map<a name="line.78"></a>
+<span class="sourceLineNo">079</span>         */<a name="line.79"></a>
+<span class="sourceLineNo">080</span>        protected Map&lt;String, ? extends Serializable&gt; getInternalMetadata() {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                return metadata;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>        /**<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         * Set user objects<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @param objects<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         */<a name="line.87"></a>
+<span class="sourceLineNo">088</span>        public void setUserObjects(Collection&lt;Serializable&gt; objects) {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                userObjects = objects;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        }<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>        public void addDataInfo(String name, int... shape) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                shapes.put(name, shape);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>        }<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>        @Override<a name="line.96"></a>
+<span class="sourceLineNo">097</span>        public Collection&lt;String&gt; getDataNames() {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                return Collections.unmodifiableCollection(shapes.keySet());<a name="line.98"></a>
+<span class="sourceLineNo">099</span>        }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>        @Override<a name="line.101"></a>
+<span class="sourceLineNo">102</span>        public Map&lt;String, int[]&gt; getDataShapes() {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                return Collections.unmodifiableMap(shapes);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>        @Override<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        public Map&lt;String, Integer&gt; getDataSizes() {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                Map&lt;String, Integer&gt; sizes = new HashMap&lt;String, Integer&gt;(1);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                for (Entry&lt;String, int[]&gt; e : shapes.entrySet()) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                        int[] shape = e.getValue();<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                        if (shape != null &amp;&amp; shape.length &gt; 1)<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                                sizes.put(e.getKey(), ShapeUtils.calcSize(shape));<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                        else<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                                sizes.put(e.getKey(), null);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                }<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                if (sizes.size() &gt; 0) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                        return Collections.unmodifiableMap(sizes);<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                }<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                return null;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>        }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>        @Override<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        public Serializable getMetaValue(String key) throws MetadataException {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                return metadata == null ? null : metadata.get(key);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>        }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>        @SuppressWarnings("unchecked")<a name="line.127"></a>
+<span class="sourceLineNo">128</span>        @Override<a name="line.128"></a>
+<span class="sourceLineNo">129</span>        public Collection&lt;String&gt; getMetaNames() throws MetadataException {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                return metadata == null ? (Collection&lt;String&gt;) Collections.EMPTY_SET : Collections.unmodifiableCollection(metadata.keySet());<a name="line.130"></a>
+<span class="sourceLineNo">131</span>        }<a name="line.131"></a>
+<span class="sourceLineNo">132</span><a name="line.132"></a>
+<span class="sourceLineNo">133</span>        @Override<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        public Collection&lt;Serializable&gt; getUserObjects() {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                return userObjects;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>        }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>        @Override<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        public IMetadata clone() {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                Metadata c = null;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                try {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                        c = (Metadata) super.clone();<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                        if (metadata != null) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                                HashMap&lt;String, Serializable&gt; md = new HashMap&lt;String, Serializable&gt;();<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                                c.metadata = md;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                                ByteArrayOutputStream os = new ByteArrayOutputStream(512);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                                for (String k : metadata.keySet()) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                                        Serializable v = metadata.get(k);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                                        if (v != null) {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                                                try (ObjectOutputStream oos = new ObjectOutputStream(os)) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                                                        oos.writeObject(v);<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                                                        try (ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(os.toByteArray()))) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                                                                Serializable nv = (Serializable) ois.readObject();<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                                                                md.put(k, nv);<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                                                        }<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                                                }<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                                                os.reset();<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                                        } else {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                                                md.put(k, null);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                                        }<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                                }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        }<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                        c.shapes = new HashMap&lt;String, int[]&gt;(1);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        for (Entry&lt;String, int[]&gt; e : shapes.entrySet()) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                                int[] s = e.getValue();<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                                c.shapes.put(e.getKey(), s == null ? null : s.clone());<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                        }<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                } catch (CloneNotSupportedException e) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                        // Allowed for some objects not to be cloned.<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                } catch (Throwable e) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        if (e instanceof ClassNotFoundException) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                                // Fix to http://jira.diamond.ac.uk/browse/SCI-1644<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                                // Happens when cloning meta data with GridPreferences<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                        } if (e instanceof RuntimeException ) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                           throw (RuntimeException)e;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                        }<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                }<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                return c;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>        }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>        @Override<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        public String getFilePath() {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                return filePath;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>        @Override<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        public void setFilePath(String filePath) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                this.filePath = filePath;<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        }<a name="line.189"></a>
+<span class="sourceLineNo">190</span>}<a name="line.190"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/metadata/MetadataFactory.html b/apidocs/2.3.0/src-html/org/eclipse/january/metadata/MetadataFactory.html
new file mode 100644
index 0000000..90f99b7
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/metadata/MetadataFactory.html
@@ -0,0 +1,181 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.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.ArrayList;<a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.HashMap;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.List;<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.dataset.LazyDatasetBase;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.eclipse.january.metadata.internal.AxesMetadataImpl;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.eclipse.january.metadata.internal.DimensionMetadataImpl;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.eclipse.january.metadata.internal.ErrorMetadataImpl;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.eclipse.january.metadata.internal.MaskMetadataImpl;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.eclipse.january.metadata.internal.OriginMetadataImpl;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.eclipse.january.metadata.internal.PeemMetadataImpl;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.eclipse.january.metadata.internal.StatisticsMetadataImpl;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.eclipse.january.metadata.internal.UnitMetadataImpl;<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>public class MetadataFactory {<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>        private MetadataFactory() {<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>        static Map&lt;Class&lt;? extends MetadataType&gt;, Class&lt;? extends MetadataType&gt;&gt; metadataClasses = createMap();<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        private static Map&lt;Class&lt;? extends MetadataType&gt;, Class&lt;? extends MetadataType&gt;&gt; createMap() {<a name="line.36"></a>
+<span class="sourceLineNo">037</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.37"></a>
+<span class="sourceLineNo">038</span>                map.put(IMetadata.class, Metadata.class);<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                map.put(ErrorMetadata.class, ErrorMetadataImpl.class);<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                map.put(AxesMetadata.class, AxesMetadataImpl.class);<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                map.put(DimensionMetadata.class, DimensionMetadataImpl.class);<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                map.put(MaskMetadata.class, MaskMetadataImpl.class);<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                map.put(OriginMetadata.class, OriginMetadataImpl.class);<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                map.put(PeemMetadata.class, PeemMetadataImpl.class);<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                map.put(StatisticsMetadata.class, StatisticsMetadataImpl.class);<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                map.put(UnitMetadata.class, UnitMetadataImpl.class);<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                return map;<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>        <a name="line.50"></a>
+<span class="sourceLineNo">051</span>        /**<a name="line.51"></a>
+<span class="sourceLineNo">052</span>         * Create a metadata object of given class with given arguments<a name="line.52"></a>
+<span class="sourceLineNo">053</span>         * @param &lt;T&gt; metadata type<a name="line.53"></a>
+<span class="sourceLineNo">054</span>         * @param clazz<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         * @param arguments these must match the arguments given in the initialize method specified in the class<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * @return metadata object or null if type not available<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * @throws MetadataException if the class cannot be instantiated, the initialize method does not exist, or<a name="line.57"></a>
+<span class="sourceLineNo">058</span>         *  the initialize method could not be called successfully<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         */<a name="line.59"></a>
+<span class="sourceLineNo">060</span>        public static &lt;T extends MetadataType&gt; T createMetadata(Class&lt;T&gt; clazz, Object... arguments) throws MetadataException {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                @SuppressWarnings("unchecked")<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                Class&lt;T&gt; mdClass = (Class&lt;T&gt;) metadataClasses.get(clazz);<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                if (mdClass == null) {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                        return null;<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>                T obj = null;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                try {<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                        obj = mdClass.newInstance();<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                } catch (Exception e) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                        throw new MetadataException("Could not create metadata object", e);<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>                List&lt;Method&gt; inits = new ArrayList&lt;Method&gt;();<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                for (Method m : mdClass.getMethods()) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        if (m.getName().equals("initialize")) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                                inits.add(m);<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>                if (inits.isEmpty()) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        return obj;<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>                int n = arguments == null ? 0 : arguments.length;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                try {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        for (Method m : inits) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                                if (m.getParameterTypes().length == n) {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                                        m.invoke(obj, arguments);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                                        return obj;<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>                } catch (Exception e) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        throw new MetadataException("Could not initialize object", e);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                }<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                throw new MetadataException("Could not find initialize method that allows the given number of arguments");<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>         * Register metadata class<a name="line.100"></a>
+<span class="sourceLineNo">101</span>         * @param &lt;T&gt; metadata type<a name="line.101"></a>
+<span class="sourceLineNo">102</span>         * @param clazz<a name="line.102"></a>
+<span class="sourceLineNo">103</span>         */<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        public static &lt;T extends MetadataType&gt; void registerClass(Class&lt;T&gt; clazz) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                Class&lt;? extends MetadataType&gt; iClass = LazyDatasetBase.findMetadataTypeSubInterfaces(clazz);<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>                metadataClasses.put(iClass, clazz);<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/metadata/MetadataType.html b/apidocs/2.3.0/src-html/org/eclipse/january/metadata/MetadataType.html
new file mode 100644
index 0000000..75dddf7
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/metadata/OriginMetadata.html b/apidocs/2.3.0/src-html/org/eclipse/january/metadata/OriginMetadata.html
new file mode 100644
index 0000000..4051bd1
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/metadata/PeemMetadata.html b/apidocs/2.3.0/src-html/org/eclipse/january/metadata/PeemMetadata.html
new file mode 100644
index 0000000..3244f74
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/metadata/Reshapeable.html b/apidocs/2.3.0/src-html/org/eclipse/january/metadata/Reshapeable.html
new file mode 100644
index 0000000..2bff739
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/metadata/Sliceable.html b/apidocs/2.3.0/src-html/org/eclipse/january/metadata/Sliceable.html
new file mode 100644
index 0000000..7723920
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/metadata/StatisticsMetadata.html b/apidocs/2.3.0/src-html/org/eclipse/january/metadata/StatisticsMetadata.html
new file mode 100644
index 0000000..31f31ee
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/metadata/StatisticsMetadata.html
@@ -0,0 +1,321 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.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 dataset dataset whose statistics is stored by this metadata<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @return true if dataset has been modified<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * @since 2.2<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         */<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        public boolean isDirty(Dataset dataset);<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 hash the hash to set<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         */<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        public void setHash(int hash);<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 the hash<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         */<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        public int getHash(int[] 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>         * @param ignoreInvalids - Can be null, one boolean, or two booleans. By default, both are false. If<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * the first boolean is true, will ignore NaNs and ignore infinities. Use the second boolean to<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         * ignore infinities separately.<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         * @return the maximum<a name="line.64"></a>
+<span class="sourceLineNo">065</span>         */<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        public T getMaximum(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 maximum the maximum to set<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         * @param minimum the minimum to set<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         * @param ignoreInvalids see {@link #getMaximum(boolean...)} for explanation<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         */<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        @Deprecated<a name="line.73"></a>
+<span class="sourceLineNo">074</span>        public void setMaximumMinimum(T maximum, T minimum, boolean... ignoreInvalids);<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>         * @param maximum the maximum to set<a name="line.77"></a>
+<span class="sourceLineNo">078</span>         * @param minimum the minimum to set<a name="line.78"></a>
+<span class="sourceLineNo">079</span>         * @param sum the sum to set<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         * @param ignoreInvalids see {@link #getMaximum(boolean...)} for explanation<a name="line.80"></a>
+<span class="sourceLineNo">081</span>         * @since 2.1<a name="line.81"></a>
+<span class="sourceLineNo">082</span>         */<a name="line.82"></a>
+<span class="sourceLineNo">083</span>        public void setMaximumMinimumSum(T maximum, T minimum, T sum, boolean... ignoreInvalids);<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 maximumPositions the maximum positions to set<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>         */<a name="line.88"></a>
+<span class="sourceLineNo">089</span>        public void setMaximumPositions(List&lt;int[]&gt; maximumPositions, boolean... ignoreInvalids);<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>         * @param minimumPositions the minimum positions to set<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>         */<a name="line.94"></a>
+<span class="sourceLineNo">095</span>        public void setMinimumPositions(List&lt;int[]&gt; minimumPositions, boolean... ignoreInvalids);<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>         * @param ignoreInvalids see {@link #getMaximum(boolean...)} for explanation<a name="line.98"></a>
+<span class="sourceLineNo">099</span>         * @return the maximum positions<a name="line.99"></a>
+<span class="sourceLineNo">100</span>         */<a name="line.100"></a>
+<span class="sourceLineNo">101</span>        public List&lt;int[]&gt; getMaximumPositions(boolean... ignoreInvalids);<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 ignoreInvalids see {@link #getMaximum(boolean...)} for explanation<a name="line.104"></a>
+<span class="sourceLineNo">105</span>         * @return the minimum<a name="line.105"></a>
+<span class="sourceLineNo">106</span>         */<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        public T getMinimum(boolean... ignoreInvalids);<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 ignoreInvalids see {@link #getMaximum(boolean...)} for explanation<a name="line.110"></a>
+<span class="sourceLineNo">111</span>         * @return the minimum positions<a name="line.111"></a>
+<span class="sourceLineNo">112</span>         */<a name="line.112"></a>
+<span class="sourceLineNo">113</span>        public List&lt;int[]&gt; getMinimumPositions(boolean... ignoreInvalids);<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>         * @param ignoreInvalids see {@link #getMaximum(boolean...)} for explanation<a name="line.116"></a>
+<span class="sourceLineNo">117</span>         * @return the number of samples<a name="line.117"></a>
+<span class="sourceLineNo">118</span>         */<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        public long getCount(boolean... ignoreInvalids);<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 ignoreInvalids see {@link #getMaximum(boolean...)} for explanation<a name="line.122"></a>
+<span class="sourceLineNo">123</span>         * @return the mean of samples<a name="line.123"></a>
+<span class="sourceLineNo">124</span>         */<a name="line.124"></a>
+<span class="sourceLineNo">125</span>        public T getMean(boolean... ignoreInvalids);<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>         * @param ignoreInvalids see {@link #getMaximum(boolean...)} for explanation<a name="line.128"></a>
+<span class="sourceLineNo">129</span>         * @return the sum of samples<a name="line.129"></a>
+<span class="sourceLineNo">130</span>         */<a name="line.130"></a>
+<span class="sourceLineNo">131</span>        public T getSum(boolean... ignoreInvalids);<a name="line.131"></a>
+<span class="sourceLineNo">132</span><a name="line.132"></a>
+<span class="sourceLineNo">133</span>        /**<a name="line.133"></a>
+<span class="sourceLineNo">134</span>         * @param isWholePopulation<a name="line.134"></a>
+<span class="sourceLineNo">135</span>         * @param ignoreInvalids see {@link #getMaximum(boolean...)} for explanation<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         * @return the variance of samples<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         */<a name="line.137"></a>
+<span class="sourceLineNo">138</span>        public double getVariance(boolean isWholePopulation, boolean... ignoreInvalids);<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>         * @param axis<a name="line.141"></a>
+<span class="sourceLineNo">142</span>         * @param ignoreInvalids see {@link #getMaximum(boolean...)} for explanation<a name="line.142"></a>
+<span class="sourceLineNo">143</span>         * @return the argument at which the maximum first occurs<a name="line.143"></a>
+<span class="sourceLineNo">144</span>         */<a name="line.144"></a>
+<span class="sourceLineNo">145</span>        public Dataset getArgMaximum(int axis, boolean... ignoreInvalids);<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>        /**<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         * @param axis<a name="line.148"></a>
+<span class="sourceLineNo">149</span>         * @param ignoreInvalids see {@link #getMaximum(boolean...)} for explanation<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         * @return the argument at which the minimum first occurs<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         */<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        public Dataset getArgMinimum(int axis, boolean... ignoreInvalids);<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 axis<a name="line.155"></a>
+<span class="sourceLineNo">156</span>         * @param ignoreInvalids - Can be null, one boolean, or two booleans. By default, both are false. If<a name="line.156"></a>
+<span class="sourceLineNo">157</span>         * the first boolean is true, will ignore NaNs and ignore infinities. Use the second boolean to<a name="line.157"></a>
+<span class="sourceLineNo">158</span>         * ignore infinities separately.<a name="line.158"></a>
+<span class="sourceLineNo">159</span>         * @return the maximum<a name="line.159"></a>
+<span class="sourceLineNo">160</span>         */<a name="line.160"></a>
+<span class="sourceLineNo">161</span>        public Dataset getMaximum(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>         * @param axis<a name="line.164"></a>
+<span class="sourceLineNo">165</span>         * @param ignoreInvalids see {@link #getMaximum(boolean...)} for explanation<a name="line.165"></a>
+<span class="sourceLineNo">166</span>         * @return the minimum<a name="line.166"></a>
+<span class="sourceLineNo">167</span>         */<a name="line.167"></a>
+<span class="sourceLineNo">168</span>        public Dataset getMinimum(int axis, boolean... ignoreInvalids);<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 axis<a name="line.171"></a>
+<span class="sourceLineNo">172</span>         * @param ignoreInvalids see {@link #getMaximum(boolean...)} for explanation<a name="line.172"></a>
+<span class="sourceLineNo">173</span>         * @return the number of samples<a name="line.173"></a>
+<span class="sourceLineNo">174</span>         */<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        public Dataset getCount(int axis, boolean... ignoreInvalids);<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 axis<a name="line.178"></a>
+<span class="sourceLineNo">179</span>         * @param ignoreInvalids see {@link #getMaximum(boolean...)} for explanation<a name="line.179"></a>
+<span class="sourceLineNo">180</span>         * @return the mean of samples<a name="line.180"></a>
+<span class="sourceLineNo">181</span>         */<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        public Dataset getMean(int axis, boolean... ignoreInvalids);<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>         * @param axis<a name="line.185"></a>
+<span class="sourceLineNo">186</span>         * @param ignoreInvalids see {@link #getMaximum(boolean...)} for explanation<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         * @return the sum of samples<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         */<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        public Dataset getSum(int axis, boolean... ignoreInvalids);<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>         * @param axis<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         * @param isWholePopulation<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         * @param ignoreInvalids see {@link #getMaximum(boolean...)} for explanation<a name="line.194"></a>
+<span class="sourceLineNo">195</span>         * @return the variance of samples<a name="line.195"></a>
+<span class="sourceLineNo">196</span>         */<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        public Dataset getVariance(int axis, boolean isWholePopulation, boolean... ignoreInvalids);<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>         * @param axes<a name="line.200"></a>
+<span class="sourceLineNo">201</span>         * @param ignoreInvalids - Can be null, one boolean, or two booleans. By default, both are false. If<a name="line.201"></a>
+<span class="sourceLineNo">202</span>         * the first boolean is true, will ignore NaNs and ignore infinities. Use the second boolean to<a name="line.202"></a>
+<span class="sourceLineNo">203</span>         * ignore infinities separately.<a name="line.203"></a>
+<span class="sourceLineNo">204</span>         * @return the maximum<a name="line.204"></a>
+<span class="sourceLineNo">205</span>         * @since 2.2<a name="line.205"></a>
+<span class="sourceLineNo">206</span>         */<a name="line.206"></a>
+<span class="sourceLineNo">207</span>        public Dataset getMaximum(int[] axes, boolean... ignoreInvalids);<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>         * @param axes<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         * @param ignoreInvalids see {@link #getMaximum(boolean...)} for explanation<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         * @return the minimum<a name="line.212"></a>
+<span class="sourceLineNo">213</span>         * @since 2.2<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         */<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        public Dataset getMinimum(int[] axes, boolean... ignoreInvalids);<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>         * @param axes<a name="line.218"></a>
+<span class="sourceLineNo">219</span>         * @param ignoreInvalids see {@link #getMaximum(boolean...)} for explanation<a name="line.219"></a>
+<span class="sourceLineNo">220</span>         * @return the number of samples<a name="line.220"></a>
+<span class="sourceLineNo">221</span>         * @since 2.2<a name="line.221"></a>
+<span class="sourceLineNo">222</span>         */<a name="line.222"></a>
+<span class="sourceLineNo">223</span>        public Dataset getCount(int[] axes, boolean... ignoreInvalids);<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 axes<a name="line.226"></a>
+<span class="sourceLineNo">227</span>         * @param ignoreInvalids see {@link #getMaximum(boolean...)} for explanation<a name="line.227"></a>
+<span class="sourceLineNo">228</span>         * @return the mean of samples<a name="line.228"></a>
+<span class="sourceLineNo">229</span>         * @since 2.2<a name="line.229"></a>
+<span class="sourceLineNo">230</span>         */<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        public Dataset getMean(int[] axes, boolean... ignoreInvalids);<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>         * @param axes<a name="line.234"></a>
+<span class="sourceLineNo">235</span>         * @param ignoreInvalids see {@link #getMaximum(boolean...)} for explanation<a name="line.235"></a>
+<span class="sourceLineNo">236</span>         * @return the sum of samples<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         * @since 2.2<a name="line.237"></a>
+<span class="sourceLineNo">238</span>         */<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        public Dataset getSum(int[] axes, boolean... ignoreInvalids);<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>         * @param axes<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         * @param isWholePopulation<a name="line.243"></a>
+<span class="sourceLineNo">244</span>         * @param ignoreInvalids see {@link #getMaximum(boolean...)} for explanation<a name="line.244"></a>
+<span class="sourceLineNo">245</span>         * @return the variance of samples<a name="line.245"></a>
+<span class="sourceLineNo">246</span>         * @since 2.2<a name="line.246"></a>
+<span class="sourceLineNo">247</span>         */<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        public Dataset getVariance(int[] axes, boolean isWholePopulation, boolean... ignoreInvalids);<a name="line.248"></a>
+<span class="sourceLineNo">249</span>}<a name="line.249"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/src-html/org/eclipse/january/metadata/Transposable.html b/apidocs/2.3.0/src-html/org/eclipse/january/metadata/Transposable.html
new file mode 100644
index 0000000..6029e6f
--- /dev/null
+++ b/apidocs/2.3.0/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.3.0/src-html/org/eclipse/january/metadata/UnitMetadata.html b/apidocs/2.3.0/src-html/org/eclipse/january/metadata/UnitMetadata.html
new file mode 100644
index 0000000..692c1ca
--- /dev/null
+++ b/apidocs/2.3.0/src-html/org/eclipse/january/metadata/UnitMetadata.html
@@ -0,0 +1,106 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.metadata;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import javax.measure.Unit;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>/**<a name="line.17"></a>
+<span class="sourceLineNo">018</span> * This metadata describes the unit associated with the quantity stored in a dataset<a name="line.18"></a>
+<span class="sourceLineNo">019</span> * @since 2.1<a name="line.19"></a>
+<span class="sourceLineNo">020</span> */<a name="line.20"></a>
+<span class="sourceLineNo">021</span>public interface UnitMetadata extends MetadataType {<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>        /**<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * Initialize unit metadata with given unit<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * @param unit<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         */<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        public void initialize(Unit&lt;?&gt; unit);<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>         * Get unit<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         * @return unit of dataset<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         */<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        public Unit&lt;?&gt; getUnit();<a name="line.33"></a>
+<span class="sourceLineNo">034</span>}<a name="line.34"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.3.0/stylesheet.css b/apidocs/2.3.0/stylesheet.css
new file mode 100644
index 0000000..98055b2
--- /dev/null
+++ b/apidocs/2.3.0/stylesheet.css
@@ -0,0 +1,574 @@
+/* Javadoc style sheet */
+/*
+Overall document style
+*/
+
+@import url('resources/fonts/dejavu.css');
+
+body {
+    background-color:#ffffff;
+    color:#353833;
+    font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
+    font-size:14px;
+    margin:0;
+}
+a:link, a:visited {
+    text-decoration:none;
+    color:#4A6782;
+}
+a:hover, a:focus {
+    text-decoration:none;
+    color:#bb7a2a;
+}
+a:active {
+    text-decoration:none;
+    color:#4A6782;
+}
+a[name] {
+    color:#353833;
+}
+a[name]:hover {
+    text-decoration:none;
+    color:#353833;
+}
+pre {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+}
+h1 {
+    font-size:20px;
+}
+h2 {
+    font-size:18px;
+}
+h3 {
+    font-size:16px;
+    font-style:italic;
+}
+h4 {
+    font-size:13px;
+}
+h5 {
+    font-size:12px;
+}
+h6 {
+    font-size:11px;
+}
+ul {
+    list-style-type:disc;
+}
+code, tt {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    padding-top:4px;
+    margin-top:8px;
+    line-height:1.4em;
+}
+dt code {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    padding-top:4px;
+}
+table tr td dt code {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    vertical-align:top;
+    padding-top:4px;
+}
+sup {
+    font-size:8px;
+}
+/*
+Document title and Copyright styles
+*/
+.clear {
+    clear:both;
+    height:0px;
+    overflow:hidden;
+}
+.aboutLanguage {
+    float:right;
+    padding:0px 21px;
+    font-size:11px;
+    z-index:200;
+    margin-top:-9px;
+}
+.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;
+    color:#ffffff;
+    padding:8px;
+    width:5em;
+    font-weight:bold;
+}
+/*
+Navigation bar styles
+*/
+.bar {
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    padding:.8em .5em .4em .8em;
+    height:auto;/*height:1.8em;*/
+    font-size:11px;
+    margin:0;
+}
+.topNav {
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+    font-size:12px; 
+}
+.bottomNav {
+    margin-top:10px;
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+    font-size:12px;
+}
+.subNav {
+    background-color:#dee3e9;
+    float:left;
+    width:100%;
+    overflow:hidden;
+    font-size:12px;
+}
+.subNav div {
+    clear:left;
+    float:left;
+    padding:0 0 5px 6px;
+    text-transform:uppercase;
+}
+ul.navList, ul.subNavList {
+    float:left;
+    margin:0 25px 0 0;
+    padding:0;
+}
+ul.navList li{
+    list-style:none;
+    float:left;
+    padding: 5px 6px;
+    text-transform:uppercase;
+}
+ul.subNavList li{
+    list-style:none;
+    float:left;
+}
+.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
+    color:#FFFFFF;
+    text-decoration:none;
+    text-transform:uppercase;
+}
+.topNav a:hover, .bottomNav a:hover {
+    text-decoration:none;
+    color:#bb7a2a;
+    text-transform:uppercase;
+}
+.navBarCell1Rev {
+    background-color:#F8981D;
+    color:#253441;
+    margin: auto 5px;
+}
+.skipNav {
+    position:absolute;
+    top:auto;
+    left:-9999px;
+    overflow:hidden;
+}
+/*
+Page header and footer styles
+*/
+.header, .footer {
+    clear:both;
+    margin:0 20px;
+    padding:5px 0 0 0;
+}
+.indexHeader {
+    margin:10px;
+    position:relative;
+}
+.indexHeader span{
+    margin-right:15px;
+}
+.indexHeader h1 {
+    font-size:13px;
+}
+.title {
+    color:#2c4557;
+    margin:10px 0;
+}
+.subTitle {
+    margin:5px 0 0 0;
+}
+.header ul {
+    margin:0 0 15px 0;
+    padding:0;
+}
+.footer ul {
+    margin:20px 0 5px 0;
+}
+.header ul li, .footer ul li {
+    list-style:none;
+    font-size:13px;
+}
+/*
+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:1px solid #d0d9e0;
+    margin:0 0 6px -8px;
+    padding:7px 5px;
+}
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+    background-color:#dee3e9;
+    border:1px solid #d0d9e0;
+    margin:0 0 6px -8px;
+    padding:7px 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:12px;
+}
+.indexContainer h2 {
+    font-size:13px;
+    padding:0 0 3px 0;
+}
+.indexContainer ul {
+    margin:0;
+    padding:0;
+}
+.indexContainer ul li {
+    list-style:none;
+    padding-top:2px;
+}
+.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
+    font-size:12px;
+    font-weight:bold;
+    margin:10px 0 0 0;
+    color:#4E4E4E;
+}
+.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
+    margin:5px 0 10px 0px;
+    font-size:14px;
+    font-family:'DejaVu Sans Mono',monospace;
+}
+.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:15px;
+    line-height:1.4;
+}
+ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
+    padding:0px 20px 5px 10px;
+    border:1px solid #ededed; 
+    background-color:#f8f8f8;
+}
+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:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
+    margin-left:0;
+    padding-left:0;
+    padding-bottom:15px;
+    border:none;
+}
+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
+*/
+.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary {
+    width:100%;
+    border-left:1px solid #EEE; 
+    border-right:1px solid #EEE; 
+    border-bottom:1px solid #EEE; 
+}
+.overviewSummary, .memberSummary  {
+    padding:0px;
+}
+.overviewSummary caption, .memberSummary caption, .typeSummary caption,
+.useSummary caption, .constantsSummary caption, .deprecatedSummary caption {
+    position:relative;
+    text-align:left;
+    background-repeat:no-repeat;
+    color:#253441;
+    font-weight:bold;
+    clear:none;
+    overflow:hidden;
+    padding:0px;
+    padding-top:10px;
+    padding-left:1px;
+    margin:0px;
+    white-space:pre;
+}
+.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
+.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link,
+.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
+.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
+.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
+.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active,
+.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
+.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited {
+    color:#FFFFFF;
+}
+.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
+.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    padding-bottom:7px;
+    display:inline-block;
+    float:left;
+    background-color:#F8981D;
+    border: none;
+    height:16px;
+}
+.memberSummary caption span.activeTableTab span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    margin-right:3px;
+    display:inline-block;
+    float:left;
+    background-color:#F8981D;
+    height:16px;
+}
+.memberSummary caption span.tableTab span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    margin-right:3px;
+    display:inline-block;
+    float:left;
+    background-color:#4D7A97;
+    height:16px;
+}
+.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab {
+    padding-top:0px;
+    padding-left:0px;
+    padding-right:0px;
+    background-image:none;
+    float:none;
+    display:inline;
+}
+.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
+.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd {
+    display:none;
+    width:5px;
+    position:relative;
+    float:left;
+    background-color:#F8981D;
+}
+.memberSummary .activeTableTab .tabEnd {
+    display:none;
+    width:5px;
+    margin-right:3px;
+    position:relative; 
+    float:left;
+    background-color:#F8981D;
+}
+.memberSummary .tableTab .tabEnd {
+    display:none;
+    width:5px;
+    margin-right:3px;
+    position:relative;
+    background-color:#4D7A97;
+    float:left;
+
+}
+.overviewSummary td, .memberSummary td, .typeSummary td,
+.useSummary td, .constantsSummary td, .deprecatedSummary td {
+    text-align:left;
+    padding:0px 0px 12px 10px;
+}
+th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th,
+td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{
+    vertical-align:top;
+    padding-right:0px;
+    padding-top:8px;
+    padding-bottom:3px;
+}
+th.colFirst, th.colLast, th.colOne, .constantsSummary th {
+    background:#dee3e9;
+    text-align:left;
+    padding:8px 3px 3px 7px;
+}
+td.colFirst, th.colFirst {
+    white-space:nowrap;
+    font-size:13px;
+}
+td.colLast, th.colLast {
+    font-size:13px;
+}
+td.colOne, th.colOne {
+    font-size:13px;
+}
+.overviewSummary td.colFirst, .overviewSummary th.colFirst,
+.useSummary td.colFirst, .useSummary th.colFirst,
+.overviewSummary td.colOne, .overviewSummary th.colOne,
+.memberSummary td.colFirst, .memberSummary th.colFirst,
+.memberSummary td.colOne, .memberSummary th.colOne,
+.typeSummary td.colFirst{
+    width:25%;
+    vertical-align:top;
+}
+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;
+}
+.tableSubHeadingColor {
+    background-color:#EEEEFF;
+}
+.altColor {
+    background-color:#FFFFFF;
+}
+.rowColor {
+    background-color:#EEEEEF;
+}
+/*
+Content styles
+*/
+.description pre {
+    margin-top:0;
+}
+.deprecatedContent {
+    margin:0;
+    padding:10px 0;
+}
+.docSummary {
+    padding:0;
+}
+
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+    font-style:normal;
+}
+
+div.block {
+    font-size:14px;
+    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+}
+
+td.colLast div {
+    padding-top:0px;
+}
+
+
+td.colLast a {
+    padding-bottom:3px;
+}
+/*
+Formatting effect styles
+*/
+.sourceLineNo {
+    color:green;
+    padding:0 30px 0 0;
+}
+h1.hidden {
+    visibility:hidden;
+    overflow:hidden;
+    font-size:10px;
+}
+.block {
+    display:block;
+    margin:3px 10px 2px 0px;
+    color:#474747;
+}
+.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink,
+.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel,
+.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink {
+    font-weight:bold;
+}
+.deprecationComment, .emphasizedPhrase, .interfaceName {
+    font-style:italic;
+}
+
+div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase,
+div.block div.block span.interfaceName {
+    font-style:normal;
+}
+
+div.contentContainer ul.blockList li.blockList h2{
+    padding-bottom:0px;
+}
diff --git a/apidocs/index.php b/apidocs/index.php
index 2174035..7f38a22 100644
--- a/apidocs/index.php
+++ b/apidocs/index.php
@@ -1 +1 @@
-<?php header('Location: 2.2.0'); exit(); ?>
+<?php header('Location: 2.3.0'); exit(); ?>
diff --git a/index.html b/index.html
index 5dbac00..773fa98 100644
--- a/index.html
+++ b/index.html
@@ -230,8 +230,8 @@
 									<p>
                     <b>Update Sites:</b>
                     <br>
-                    <a href="https://download.eclipse.org/january/releases/2.2.2/repository">Eclipse January 2.2.2</a>
-										(<a href="https://download.eclipse.org/january/releases/2.2.2/repository.zip">zip</a>)
+                    <a href="https://download.eclipse.org/january/releases/2.3/repository">Eclipse January 2.3.0</a>
+										(<a href="https://download.eclipse.org/january/releases/2.3/repository.zip">zip</a>)
 										<br><br>
 										<b>Want more?</b>
 	                  <br>